Details
diff --git a/analytics/src/main/java/com/ning/billing/analytics/AnalyticsListener.java b/analytics/src/main/java/com/ning/billing/analytics/AnalyticsListener.java
index 6ca7414..f07627a 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/AnalyticsListener.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/AnalyticsListener.java
@@ -40,16 +40,14 @@ public class AnalyticsListener
private final BusinessSubscriptionTransitionDao dao;
private final IEntitlementUserApi entitlementApi;
private final IAccountUserApi accountApi;
- private final IEventBus eventBus;
private final BusinessSubscriptionTransitionRecorder bstRecorder;
@Inject
- public AnalyticsListener(final BusinessSubscriptionTransitionDao dao, final IEntitlementUserApi entitlementApi, final IAccountUserApi accountApi, final IEventBus eventBus)
+ public AnalyticsListener(final BusinessSubscriptionTransitionDao dao, final IEntitlementUserApi entitlementApi, final IAccountUserApi accountApi)
{
this.dao = dao;
this.entitlementApi = entitlementApi;
this.accountApi = accountApi;
- this.eventBus = eventBus;
this.bstRecorder = new BusinessSubscriptionTransitionRecorder(dao);
}
@@ -82,17 +80,6 @@ public class AnalyticsListener
}
}
- @LyfecycleHandlerType(LyfecycleHandlerType.LyfecycleLevel.REGISTER_EVENTS)
- public void registerForNotifications()
- {
- try {
- eventBus.register(this);
- }
- catch (IEventBus.EventBusException e) {
- log.error("Unable to register to the EventBus!", e);
- }
- }
-
private void subscriptionCreated(final ISubscriptionTransition created)
{
final BusinessSubscriptionEvent event = BusinessSubscriptionEvent.subscriptionCreated(created.getNextPlan());
diff --git a/analytics/src/main/java/com/ning/billing/analytics/api/AnalyticsService.java b/analytics/src/main/java/com/ning/billing/analytics/api/AnalyticsService.java
new file mode 100644
index 0000000..b9d989f
--- /dev/null
+++ b/analytics/src/main/java/com/ning/billing/analytics/api/AnalyticsService.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2010-2011 Ning, Inc.
+ *
+ * Ning licenses this file to you under the Apache License, version 2.0
+ * (the "License"); you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.ning.billing.analytics.api;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.inject.Inject;
+import com.ning.billing.analytics.AnalyticsListener;
+import com.ning.billing.lifecycle.LyfecycleHandlerType;
+import com.ning.billing.util.eventbus.IEventBus;
+
+public class AnalyticsService implements IAnalyticsService {
+
+ private static final Logger log = LoggerFactory.getLogger(AnalyticsService.class);
+
+ private static final String ANALYTICS_SERVICE = "analytics-service";
+
+ private final AnalyticsListener listener;
+ private final IEventBus eventBus;
+
+ @Inject
+ public AnalyticsService(AnalyticsListener listener, IEventBus eventBus) {
+ this.listener = listener;
+ this.eventBus = eventBus;
+ }
+
+ @Override
+ public String getName() {
+ return ANALYTICS_SERVICE;
+ }
+
+ @LyfecycleHandlerType(LyfecycleHandlerType.LyfecycleLevel.REGISTER_EVENTS)
+ public void registerForNotifications() {
+ try {
+ eventBus.register(listener);
+ } catch (IEventBus.EventBusException e) {
+ log.error("Unable to register to the EventBus!", e);
+ }
+ }
+}
diff --git a/analytics/src/main/java/com/ning/billing/analytics/setup/AnalyticsModule.java b/analytics/src/main/java/com/ning/billing/analytics/setup/AnalyticsModule.java
index 62a0ed5..11bc356 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/setup/AnalyticsModule.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/setup/AnalyticsModule.java
@@ -19,6 +19,8 @@ package com.ning.billing.analytics.setup;
import com.google.inject.AbstractModule;
import com.ning.billing.analytics.AnalyticsListener;
+import com.ning.billing.analytics.api.AnalyticsService;
+import com.ning.billing.analytics.api.IAnalyticsService;
import com.ning.billing.analytics.dao.BusinessAccountDao;
import com.ning.billing.analytics.dao.BusinessAccountDaoProvider;
import com.ning.billing.analytics.dao.BusinessSubscriptionTransitionDao;
@@ -32,6 +34,6 @@ public class AnalyticsModule extends AbstractModule
bind(BusinessSubscriptionTransitionDao.class).toProvider(BusinessSubscriptionTransitionDaoProvider.class).asEagerSingleton();
bind(BusinessAccountDao.class).toProvider(BusinessAccountDaoProvider.class).asEagerSingleton();
bind(AnalyticsListener.class).asEagerSingleton();
- bind(IAnalyticsService.class).asEagerSingleton();
+ bind(IAnalyticsService.class).to(AnalyticsService.class).asEagerSingleton();
}
}