View Javadoc

1   package com.atlassian.event.inject;
2   
3   import com.atlassian.event.api.EventPublisher;
4   import com.atlassian.event.config.EventThreadPoolConfiguration;
5   import com.atlassian.event.config.ListenerHandlersConfiguration;
6   import com.atlassian.event.internal.AsynchronousAbleEventDispatcher;
7   import com.atlassian.event.internal.DirectEventExecutorFactory;
8   import com.atlassian.event.internal.EventPublisherImpl;
9   import com.atlassian.event.internal.EventThreadPoolConfigurationImpl;
10  import com.atlassian.event.internal.ListenerHandlerConfigurationImpl;
11  import com.atlassian.event.spi.EventDispatcher;
12  import com.atlassian.event.spi.EventExecutorFactory;
13  import com.atlassian.inject.AbstractModule;
14  
15  public final class AtlassianEventModule extends AbstractModule {
16      public static final String EVENT_PUBLISHER = "eventPublisher";
17  
18      protected void configure() {
19          bind(EventPublisher.class).to(EventPublisherImpl.class).named(EVENT_PUBLISHER).availableToPlugins();
20          bind(EventDispatcher.class).to(AsynchronousAbleEventDispatcher.class);
21          bind(EventExecutorFactory.class).to(DirectEventExecutorFactory.class);
22  
23          // override those following binding to customise this module
24          bind(EventThreadPoolConfiguration.class).to(EventThreadPoolConfigurationImpl.class);
25          bind(ListenerHandlersConfiguration.class).to(ListenerHandlerConfigurationImpl.class);
26      }
27  }