diff --git a/scm-webapp/src/main/java/sonia/scm/BindingExtensionProcessor.java b/scm-webapp/src/main/java/sonia/scm/BindingExtensionProcessor.java index c3195ff97c..07df184863 100644 --- a/scm-webapp/src/main/java/sonia/scm/BindingExtensionProcessor.java +++ b/scm-webapp/src/main/java/sonia/scm/BindingExtensionProcessor.java @@ -54,6 +54,7 @@ import sonia.scm.repository.RepositoryHandler; import sonia.scm.repository.RepositoryHook; import sonia.scm.repository.RepositoryListener; import sonia.scm.repository.RepositoryRequestListener; +import sonia.scm.repository.spi.RepositoryServiceResolver; import sonia.scm.resources.ResourceHandler; import sonia.scm.security.EncryptionHandler; import sonia.scm.user.UserListener; @@ -124,6 +125,10 @@ public class BindingExtensionProcessor implements ExtensionProcessor Multibinder fileObjectPreProcessorFactoryBinder = Multibinder.newSetBinder(binder, FileObjectPreProcessorFactory.class); + // repository service resolver + Multibinder repositoryServiceResolverBinder = + Multibinder.newSetBinder(binder, RepositoryServiceResolver.class); + // listeners Multibinder repositoryListenerBinder = Multibinder.newSetBinder(binder, RepositoryListener.class); @@ -297,6 +302,16 @@ public class BindingExtensionProcessor implements ExtensionProcessor servletContextListenerBinder.addBinding().to(extensionClass); } + else if (RepositoryServiceResolver.class.isAssignableFrom(extensionClass)) + { + if (logger.isInfoEnabled()) + { + logger.info("bind RepositoryServiceResolver {}", + extensionClass.getName()); + } + + repositoryServiceResolverBinder.addBinding().to(extensionClass); + } else { if (logger.isInfoEnabled())