All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.pity.bootstrap.AskBootstrapMain Maven / Gradle / Ivy

The newest version!
package io.pity.bootstrap;

import io.pity.api.reporting.CollectionResults;
import io.pity.api.reporting.ReportPublisher;
import io.pity.bootstrap.injection.InjectorCreators;
import io.pity.bootstrap.injection.injectors.InitializationInjector;
import io.pity.bootstrap.injection.injectors.TaskInjector;
import io.pity.bootstrap.provider.cli.CliArgumentProviderImpl;
import io.pity.bootstrap.publish.PublishManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;

public class AskBootstrapMain {
    public static final Logger log = LoggerFactory.getLogger(AskBootstrapMain.class);

    public static void main(String[] args) throws IOException, ClassNotFoundException {
        InjectorCreators instanceInjector = new InjectorCreators();
        InitializationInjector initializationInjector = instanceInjector.createInitializationInjector();

        CliArgumentProviderImpl cliArgumentProvider = new CliArgumentProviderImpl(args, initializationInjector.findCliOptions());
        TaskInjector taskInjector = instanceInjector.findTaskInjectors(cliArgumentProvider);

        if (cliArgumentProvider.isHelp()) {
            System.out.print(taskInjector.getInstance(HelpOutputGenerator.class).getHelpOutput(cliArgumentProvider));
            return;
        }

        log.info("Loading version {}", taskInjector.getPropertyValueProvider().getProperty("pity.version"));

        PublishManager publishManager = new PublishManager(taskInjector.getInstance(ReportPublisher.class));
        if (!publishManager.shouldExecutionContinue()) {
            return;
        }

        taskInjector.getInstance(RootExecutor.class).executeAll();
        publishManager.publishReport(taskInjector.getInstance(CollectionResults.class));
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy