package com.lmitsoftware.ctf.model.poc;
import mobi.jenkinsci.model.AbstractNode;
import mobi.jenkinsci.net.UrlPath;
import mobi.jenkinsci.plugin.PluginConfig;
import org.apache.log4j.Logger;
import com.google.inject.AbstractModule;
import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.Provider;
import com.google.inject.assistedinject.Assisted;
import com.lmitsoftware.ctf.CTFPluginNodesModule;
public class PocNodesProvider implements Provider<AbstractNode> {
private static final Logger log = Logger.getLogger(PocNodesProvider.class);
private Injector injector;
private PluginConfig config;
private UrlPath pathHelper;
public interface Factory {
public PocNodesProvider create(UrlPath pathHelper, PluginConfig config);
}
@Inject
public PocNodesProvider(Injector injector, @Assisted UrlPath pathHelper,
@Assisted PluginConfig config) {
this.pathHelper = pathHelper;
this.injector = injector;
this.config = config;
}
@Override
public AbstractNode get() {
Injector childInjector = injector.createChildInjector(new AbstractModule() {
@Override
protected void configure() {
bind(UrlPath.class).toInstance(pathHelper);
install(new CTFPluginNodesModule(config));
}
});
return childInjector.getInstance(ProjectsSprintPlan.class);
}
}