diff --git a/scm-webapp/src/main/java/sonia/scm/BindingExtensionProcessor.java b/scm-webapp/src/main/java/sonia/scm/BindingExtensionProcessor.java index 877008d8f6..d573c597a5 100644 --- a/scm-webapp/src/main/java/sonia/scm/BindingExtensionProcessor.java +++ b/scm-webapp/src/main/java/sonia/scm/BindingExtensionProcessor.java @@ -63,6 +63,8 @@ import sonia.scm.web.security.XmlAuthenticationHandler; import java.util.HashSet; import java.util.Set; +import sonia.scm.repository.FileObjectPreProcessor; +import sonia.scm.repository.FileObjectPreProcessorFactory; /** * @@ -105,12 +107,20 @@ public class BindingExtensionProcessor implements ExtensionProcessor Multibinder.newSetBinder(binder, AuthenticationHandler.class); Multibinder resourceHandler = Multibinder.newSetBinder(binder, ResourceHandler.class); + Multibinder repositoryHookBinder = + Multibinder.newSetBinder(binder, RepositoryHook.class); + + // changeset pre processor Multibinder changesetPreProcessorBinder = Multibinder.newSetBinder(binder, ChangesetPreProcessor.class); Multibinder changesetPreProcessorFactoryBinder = Multibinder.newSetBinder(binder, ChangesetPreProcessorFactory.class); - Multibinder repositoryHookBinder = - Multibinder.newSetBinder(binder, RepositoryHook.class); + + // fileobject pre processor + Multibinder fileObjectPreProcessorBinder = + Multibinder.newSetBinder(binder, FileObjectPreProcessor.class); + Multibinder fileObjectPreProcessorFactoryBinder = + Multibinder.newSetBinder(binder, FileObjectPreProcessorFactory.class); // listeners Multibinder repositoryListenerBinder = @@ -233,6 +243,27 @@ public class BindingExtensionProcessor implements ExtensionProcessor changesetPreProcessorFactoryBinder.addBinding().to(extensionClass); } + else if (FileObjectPreProcessor.class.isAssignableFrom(extensionClass)) + { + if (logger.isInfoEnabled()) + { + logger.info("bind FileObjectPreProcessor {}", + extensionClass.getName()); + } + + fileObjectPreProcessorBinder.addBinding().to(extensionClass); + } + else if (FileObjectPreProcessorFactory.class.isAssignableFrom( + extensionClass)) + { + if (logger.isInfoEnabled()) + { + logger.info("bind FileObjectPreProcessorFactory {}", + extensionClass.getName()); + } + + fileObjectPreProcessorFactoryBinder.addBinding().to(extensionClass); + } else if (RepositoryHook.class.isAssignableFrom(extensionClass)) { if (logger.isInfoEnabled())