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
24 bind(EventThreadPoolConfiguration.class).to(EventThreadPoolConfigurationImpl.class);
25 bind(ListenerHandlersConfiguration.class).to(ListenerHandlerConfigurationImpl.class);
26 }
27 }