Use injector

This commit is contained in:
René Pfeuffer
2020-11-30 17:52:25 +01:00
parent 12fb2db0da
commit 8cd2c3f493
4 changed files with 8 additions and 36 deletions

View File

@@ -27,11 +27,8 @@ package sonia.scm.repository.spi;
import com.google.common.collect.ImmutableSet;
import com.google.inject.AbstractModule;
import com.google.inject.Injector;
import sonia.scm.event.ScmEventBus;
import sonia.scm.repository.Feature;
import sonia.scm.repository.api.Command;
import sonia.scm.repository.api.HookContextFactory;
import sonia.scm.security.GPG;
import java.util.EnumSet;
import java.util.Set;
@@ -65,18 +62,12 @@ public class GitRepositoryServiceProvider extends RepositoryServiceProvider
protected static final Set<Feature> FEATURES = EnumSet.of(Feature.INCOMING_REVISION);
private final GitContext context;
private final GPG gpg;
private final HookContextFactory hookContextFactory;
private final ScmEventBus eventBus;
private final Injector commandInjector;
//~--- constructors ---------------------------------------------------------
GitRepositoryServiceProvider(Injector injector, GitContext context, GPG gpg, HookContextFactory hookContextFactory, ScmEventBus eventBus) {
GitRepositoryServiceProvider(Injector injector, GitContext context) {
this.context = context;
this.gpg = gpg;
this.hookContextFactory = hookContextFactory;
this.eventBus = eventBus;
commandInjector = injector.createChildInjector(new AbstractModule() {
@Override
protected void configure() {
@@ -152,12 +143,12 @@ public class GitRepositoryServiceProvider extends RepositoryServiceProvider
@Override
public TagsCommand getTagsCommand() {
return new GitTagsCommand(context, gpg);
return commandInjector.getInstance(GitTagsCommand.class);
}
@Override
public TagCommand getTagCommand() {
return new GitTagCommand(context, gpg, hookContextFactory, eventBus);
return commandInjector.getInstance(GitTagCommand.class);
}
@Override

View File

@@ -28,12 +28,9 @@ package sonia.scm.repository.spi;
import com.google.inject.Inject;
import com.google.inject.Injector;
import sonia.scm.event.ScmEventBus;
import sonia.scm.plugin.Extension;
import sonia.scm.repository.GitRepositoryHandler;
import sonia.scm.repository.Repository;
import sonia.scm.repository.api.HookContextFactory;
import sonia.scm.security.GPG;
/**
*
@@ -44,23 +41,17 @@ public class GitRepositoryServiceResolver implements RepositoryServiceResolver {
private final Injector injector;
private final GitContextFactory contextFactory;
private final GPG gpg;
private final HookContextFactory hookContextFactory;
private final ScmEventBus scmEventBus;
@Inject
public GitRepositoryServiceResolver(Injector injector, GitContextFactory contextFactory, GPG gpg, HookContextFactory hookContextFactory) {
public GitRepositoryServiceResolver(Injector injector, GitContextFactory contextFactory) {
this.injector = injector;
this.contextFactory = contextFactory;
this.gpg = gpg;
this.hookContextFactory = hookContextFactory;
this.scmEventBus = ScmEventBus.getInstance();
}
@Override
public GitRepositoryServiceProvider resolve(Repository repository) {
if (GitRepositoryHandler.TYPE_NAME.equalsIgnoreCase(repository.getType())) {
return new GitRepositoryServiceProvider(injector, contextFactory.create(repository), gpg, hookContextFactory, scmEventBus);
return new GitRepositoryServiceProvider(injector, contextFactory.create(repository));
}
return null;
}

View File

@@ -43,6 +43,7 @@ import sonia.scm.repository.Signature;
import sonia.scm.repository.Tag;
import sonia.scm.security.GPG;
import javax.inject.Inject;
import java.io.IOException;
import java.util.List;
import java.util.Optional;
@@ -61,6 +62,7 @@ public class GitTagsCommand extends AbstractGitCommand implements TagsCommand {
*
* @param context
*/
@Inject
public GitTagsCommand(GitContext context, GPG gpp) {
super(context);
this.gpg = gpp;