ExitAfterCreatingDDL.java
/*
* Copyright (C) 2023 B3Partners B.V.
*
* SPDX-License-Identifier: MIT
*/
package org.tailormap.api.configuration.ddl;
import jakarta.annotation.PostConstruct;
import java.lang.invoke.MethodHandles;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConditionalOnProperty(name = "tailormap-api.exit-after-creating-ddl", havingValue = "true")
public class ExitAfterCreatingDDL {
private static final Logger logger =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
private final ApplicationContext appContext;
public ExitAfterCreatingDDL(ApplicationContext appContext) {
this.appContext = appContext;
}
@PostConstruct
public void exit() {
logger.info("Created DDL, exiting Spring application");
SpringApplication.exit(appContext, () -> 0);
logger.info("Exiting JVM");
System.exit(0);
}
}