Search in sources :

Example 1 with TaskHolder

use of com.walmartlabs.concord.runtime.common.injector.TaskHolder in project concord by walmartlabs.

the class InjectorFactory method create.

public Injector create() {
    List<Module> l = new ArrayList<>();
    l.add(new ConfigurationModule(workDir, runnerCfg, processConfigurationProvider));
    l.add(new CurrentClasspathModule());
    com.google.inject.Module tasks = new AbstractModule() {

        @Override
        protected void configure() {
            TaskHolder<Task> holder = new TaskHolder<>();
            bindListener(InjectorUtils.subClassesOf(Task.class), InjectorUtils.taskClassesListener(holder));
            bind(new TypeLiteral<TaskHolder<Task>>() {
            }).annotatedWith(V2.class).toInstance(holder);
        }
    };
    l.add(tasks);
    if (modules != null) {
        l.addAll(Arrays.asList(modules));
    }
    com.google.inject.Module m = new WireModule(l);
    return Guice.createInjector(m);
}
Also used : Module(com.google.inject.Module) Task(com.walmartlabs.concord.runtime.v2.sdk.Task) WireModule(org.eclipse.sisu.wire.WireModule) TaskHolder(com.walmartlabs.concord.runtime.common.injector.TaskHolder) ArrayList(java.util.ArrayList) CurrentClasspathModule(com.walmartlabs.concord.runtime.v2.runner.guice.CurrentClasspathModule) AbstractModule(com.google.inject.AbstractModule) Module(com.google.inject.Module) CurrentClasspathModule(com.walmartlabs.concord.runtime.v2.runner.guice.CurrentClasspathModule) WireModule(org.eclipse.sisu.wire.WireModule) ProcessDependenciesModule(com.walmartlabs.concord.runtime.v2.runner.guice.ProcessDependenciesModule) DefaultRunnerModule(com.walmartlabs.concord.runtime.v2.runner.guice.DefaultRunnerModule) AbstractModule(com.google.inject.AbstractModule) V2(com.walmartlabs.concord.runtime.v2.runner.tasks.V2)

Aggregations

AbstractModule (com.google.inject.AbstractModule)1 Module (com.google.inject.Module)1 TaskHolder (com.walmartlabs.concord.runtime.common.injector.TaskHolder)1 CurrentClasspathModule (com.walmartlabs.concord.runtime.v2.runner.guice.CurrentClasspathModule)1 DefaultRunnerModule (com.walmartlabs.concord.runtime.v2.runner.guice.DefaultRunnerModule)1 ProcessDependenciesModule (com.walmartlabs.concord.runtime.v2.runner.guice.ProcessDependenciesModule)1 V2 (com.walmartlabs.concord.runtime.v2.runner.tasks.V2)1 Task (com.walmartlabs.concord.runtime.v2.sdk.Task)1 ArrayList (java.util.ArrayList)1 WireModule (org.eclipse.sisu.wire.WireModule)1