Search in sources :

Example 1 with CommandManager

use of net.robinfriedli.aiode.command.CommandManager in project aiode by robinfriedli.

the class SpringBootstrap method run.

@Override
public void run(String... args) {
    Logger logger = LoggerFactory.getLogger(SpringBootstrap.class);
    logger.info("Using java version " + System.getProperty("java.runtime.version"));
    try {
        Aiode aiode = Aiode.get();
        CommandManager commandManager = aiode.getCommandManager();
        HttpServerManager serverManager = aiode.getHttpServerManager();
        JxpBackend jxpBackend = aiode.getJxpBackend();
        CronJobService cronJobService = aiode.getCronJobService();
        commandManager.initializeInterceptorChain();
        serverManager.start();
        // run startup tasks
        InputStream startupTasksFile = getClass().getResourceAsStream("/xml-contributions/startupTasks.xml");
        Context context = jxpBackend.createContext(startupTasksFile);
        for (StartupTaskContribution element : context.getInstancesOf(StartupTaskContribution.class)) {
            if (!aiode.isMainInstance() && element.getAttribute("mainInstanceOnly").getBool()) {
                continue;
            }
            if (!element.getAttribute("runForEachShard").getBool()) {
                element.instantiate().runTask(null);
            }
        }
        cronJobService.scheduleAll();
        Aiode.registerListeners();
        logger.info("All starters done");
    } catch (Throwable e) {
        logger.error("Exception in starter. Application will terminate.", e);
        System.exit(1);
    }
}
Also used : CronJobService(net.robinfriedli.aiode.cron.CronJobService) Context(net.robinfriedli.jxp.persist.Context) CommandManager(net.robinfriedli.aiode.command.CommandManager) InputStream(java.io.InputStream) JxpBackend(net.robinfriedli.jxp.api.JxpBackend) StartupTaskContribution(net.robinfriedli.aiode.entities.xml.StartupTaskContribution) Logger(org.slf4j.Logger) Aiode(net.robinfriedli.aiode.Aiode) HttpServerManager(net.robinfriedli.aiode.servers.HttpServerManager)

Aggregations

InputStream (java.io.InputStream)1 Aiode (net.robinfriedli.aiode.Aiode)1 CommandManager (net.robinfriedli.aiode.command.CommandManager)1 CronJobService (net.robinfriedli.aiode.cron.CronJobService)1 StartupTaskContribution (net.robinfriedli.aiode.entities.xml.StartupTaskContribution)1 HttpServerManager (net.robinfriedli.aiode.servers.HttpServerManager)1 JxpBackend (net.robinfriedli.jxp.api.JxpBackend)1 Context (net.robinfriedli.jxp.persist.Context)1 Logger (org.slf4j.Logger)1