@SpringBootApplication
public class DemoApplication implements ExitCodeGenerator {
public static void main(String[] args) {
System.exit(SpringApplication
.exit(SpringApplication.run(DemoApplication.class, args)));
}
@Override
public int getExitCode() {
return 42;
}
}
@SpringBootConfiguration
public class ExampleExitCodeGenerator {
@Bean
MyBean myBean() {
return new MyBean();
}
public static void main(String[] args) {
ApplicationContext context = SpringApplication.run(ExampleExitCodeGenerator.class, args);
MyBean myBean = context.getBean(MyBean.class);
myBean.doSomething();
int exitValue = SpringApplication.exit(context);
System.exit(exitValue);
}
private static class MyBean implements ExitCodeGenerator {
public void doSomething() {
System.out.println("in doSomething()");
}
@Override
public int getExitCode() {
return 500;
}
}
}
@SpringBootApplication
public class ExitCodeApplication {
@Bean
public ExitCodeGenerator exitCodeGenerator() {
return () -> 42;
}
public static void main(String[] args) {
System.exit(SpringApplication
.exit(SpringApplication.run(ExitCodeApplication.class, args)));
}
}
@SpringBootApplication
public class Main {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(Main.class, args);
// do something
int exitCode = SpringApplication.exit(context, new ExitCodeGenerator() {
@Override
public int getExitCode() {
return 0;
}
});
System.exit(exitCode);
}
}
@SpringBootApplication
public class SpringBootShutdownApplication {
public static void main(String[] args) {
ConfigurableApplicationContext ctx = SpringApplication.run(SpringBootShutdownApplication.class, args);
exitApplication(ctx);
//ctx.close();
}
public static void exitApplication(ConfigurableApplicationContext ctx) {
int exitCode = SpringApplication.exit(ctx, new ExitCodeGenerator() {
@Override
public int getExitCode() {
// no errors
return 0;
}
});
System.exit(exitCode);
}
}
public static void main(String[] args) throws Exception {
// below is output *before* logging is configured so will appear on console
logVersionInfo();
try {
SpringApplication.exit(new SpringApplicationBuilder(VacuumTool.class)
.properties("spring.config.location:${config:null}")
.properties("spring.profiles.active:" + Modules.REPLICATION)
.properties("instance.home:${user.home}")
.properties("instance.name:${source-catalog.name}_${replica-catalog.name}")
.bannerMode(Mode.OFF)
.registerShutdownHook(true)
.build()
.run(args));
} catch (BeanCreationException e) {
if (e.getMostSpecificCause() instanceof BindException) {
printVacuumToolHelp(((BindException) e.getMostSpecificCause()).getAllErrors());
}
throw e;
}
}
public static void main(String[] args) throws Exception {
ApplicationContext context = SpringApplication.run(FreqTradeApplication.class, args);
FreqTradeExchangeService exchangeService = context.getBean(FreqTradeExchangeService.class);
AnalyzeService analyzeService = context.getBean(AnalyzeService.class);
ZonedDateTime minimumDate = ZonedDateTime.now().minusHours(6);
List<BittrexChartData> rawTickers = exchangeService.fetchRawticker(new CurrencyPair("ETH/BTC"), minimumDate);
TimeSeries tickers = new BittrexDataConverter().parseRawTickers(rawTickers);
boolean buySignal = analyzeService.getBuySignal(tickers);
LOGGER.info("buy signal: {}", buySignal);
SpringApplication.exit(context);
}
public static void main(String[] args) {
SpringApplication app = new SpringApplication(MessageServerApplication.class);
ApplicationContext applicationContext = app.run(args);
try {
applicationContext.getBean(MessageServerStarter.class).start(args);
} catch (Exception e) {
logger.error("Shutdown with errors ", e);
SpringApplication.exit(applicationContext);
} finally {
logger.info("done");
}
}
@AfterClass
public static void shutdown() {
if (shutdownAfterRun) {
logger.info("Stopping Data Flow Shell");
if (dataFlowShell != null) {
dataFlowShell.stop();
}
if (applicationContext != null) {
logger.info("Stopping Data Flow Server");
SpringApplication.exit(applicationContext);
applicationContext = null;
}
}
}
@Async
@Order(Ordered.LOWEST_PRECEDENCE)
@EventListener
void handleSomethingHasFuckedUp(final SomethingHasFuckedUpEvent event) {
// We caught an unrecoverable exception in a thread, we better stop right now.
logger.error("Event SomethingHasFuckedUpEvent caught.", event.getException());
// Stop the application
SpringApplication.exit(appContext, () -> 42);
}