diff --git a/scm-webapp/src/main/java/sonia/scm/ScmContextListener.java b/scm-webapp/src/main/java/sonia/scm/ScmContextListener.java index 4fdf343e20..aeda5c6ddf 100644 --- a/scm-webapp/src/main/java/sonia/scm/ScmContextListener.java +++ b/scm-webapp/src/main/java/sonia/scm/ScmContextListener.java @@ -185,7 +185,7 @@ public class ScmContextListener extends GuiceServletContextListener List moduleList = Lists.newArrayList(); moduleList.add(new ScmInitializerModule()); - moduleList.add(new ScmSubscriberModule()); + moduleList.add(new ScmEventBusModule()); moduleList.add(new EagerSingletonModule()); moduleList.add(ShiroWebModule.guiceFilterModule()); moduleList.add(main); diff --git a/scm-webapp/src/main/java/sonia/scm/ScmSubscriberModule.java b/scm-webapp/src/main/java/sonia/scm/ScmEventBusModule.java similarity index 57% rename from scm-webapp/src/main/java/sonia/scm/ScmSubscriberModule.java rename to scm-webapp/src/main/java/sonia/scm/ScmEventBusModule.java index 9d15ce4186..934df3088f 100644 --- a/scm-webapp/src/main/java/sonia/scm/ScmSubscriberModule.java +++ b/scm-webapp/src/main/java/sonia/scm/ScmEventBusModule.java @@ -30,14 +30,14 @@ */ + package sonia.scm; //~--- non-JDK imports -------------------------------------------------------- import com.google.inject.AbstractModule; import com.google.inject.TypeLiteral; -import com.google.inject.matcher.AbstractMatcher; -import com.google.inject.matcher.Matcher; +import com.google.inject.matcher.Matchers; import com.google.inject.spi.InjectionListener; import com.google.inject.spi.TypeEncounter; import com.google.inject.spi.TypeListener; @@ -46,24 +46,19 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import sonia.scm.event.ScmEventBus; -import sonia.scm.event.Subscriber; - -//~--- JDK imports ------------------------------------------------------------ - -import java.lang.annotation.Annotation; /** * * @author Sebastian Sdorra */ -public class ScmSubscriberModule extends AbstractModule +public class ScmEventBusModule extends AbstractModule { /** * the logger for ScmSubscriberModule */ private static final Logger logger = - LoggerFactory.getLogger(ScmSubscriberModule.class); + LoggerFactory.getLogger(ScmEventBusModule.class); //~--- methods -------------------------------------------------------------- @@ -74,12 +69,11 @@ public class ScmSubscriberModule extends AbstractModule @Override protected void configure() { - bindListener(annotatedWith(Subscriber.class), new TypeListener() + bindListener(Matchers.any(), new TypeListener() { @Override - public void hear(TypeLiteral type, - final TypeEncounter encounter) + public void hear(TypeLiteral type, TypeEncounter encounter) { encounter.register(new InjectionListener() { @@ -91,83 +85,11 @@ public class ScmSubscriberModule extends AbstractModule logger.trace("register subscriber {}", object.getClass()); } - Subscriber subscriber = - object.getClass().getAnnotation(Subscriber.class); - - - ScmEventBus.getInstance().register(object, subscriber.async()); + ScmEventBus.getInstance().register(object); } }); } }); } - - /** - * Method description - * - * - * @param aClass - * - * @return - */ - private Matcher> annotatedWith( - Class aClass) - { - return new AnnotatedWith(aClass); - } - - //~--- inner classes -------------------------------------------------------- - - /** - * Class description - * - * - * @version Enter version here..., 12/12/07 - * @author Enter your name here... - */ - private static class AnnotatedWith extends AbstractMatcher> - { - - /** - * Constructs ... - * - * - * @param baseClass - */ - private AnnotatedWith(Class baseClass) - { - this.baseClass = baseClass; - } - - //~--- methods ------------------------------------------------------------ - - /** - * Method description - * - * - * @param t - * - * @return - */ - @Override - public boolean matches(TypeLiteral t) - { - try - { - return t.getRawType().isAnnotationPresent(baseClass); - } - catch (Exception e) - { - - // LOG e - return false; - } - } - - //~--- fields ------------------------------------------------------------- - - /** Field description */ - private final Class baseClass; - } }