diff --git a/scm-webapp/src/main/java/sonia/scm/BindingExtensionProcessor.java b/scm-webapp/src/main/java/sonia/scm/BindingExtensionProcessor.java index e1d8786890..136ed2be25 100644 --- a/scm-webapp/src/main/java/sonia/scm/BindingExtensionProcessor.java +++ b/scm-webapp/src/main/java/sonia/scm/BindingExtensionProcessor.java @@ -47,6 +47,7 @@ import sonia.scm.io.FileSystem; import sonia.scm.plugin.ext.Extension; import sonia.scm.plugin.ext.ExtensionProcessor; import sonia.scm.repository.ChangesetPreProcessor; +import sonia.scm.repository.PostReceiveHook; import sonia.scm.repository.RepositoryHandler; import sonia.scm.repository.RepositoryListener; import sonia.scm.resources.ResourceHandler; @@ -211,6 +212,17 @@ public class BindingExtensionProcessor implements ExtensionProcessor changesetPreProcessorBinder.addBinding().to(extensionClass); } + else if (PostReceiveHook.class.isAssignableFrom(extensionClass)) + { + if (logger.isInfoEnabled()) + { + logger.info("bind PostReceiveHook {}", extensionClass.getName()); + } + + PostReceiveHook hook = (PostReceiveHook) extensionClass.newInstance(); + + postReceiveHooks.add(hook); + } else { if (logger.isInfoEnabled()) @@ -303,6 +315,17 @@ public class BindingExtensionProcessor implements ExtensionProcessor return moduleSet; } + /** + * Method description + * + * + * @return + */ + public Set getPostReceiveHooks() + { + return postReceiveHooks; + } + /** * Method description * @@ -381,6 +404,10 @@ public class BindingExtensionProcessor implements ExtensionProcessor /** Field description */ private Set moduleSet; + /** Field description */ + private Set postReceiveHooks = + new HashSet(); + /** Field description */ private Set repositoryListeners = new HashSet();