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 f0e9c0e..6ca7414 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/AnalyticsListener.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/AnalyticsListener.java
@@ -41,6 +41,7 @@ public class AnalyticsListener
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)
@@ -49,6 +50,7 @@ public class AnalyticsListener
this.entitlementApi = entitlementApi;
this.accountApi = accountApi;
this.eventBus = eventBus;
+ this.bstRecorder = new BusinessSubscriptionTransitionRecorder(dao);
}
@Subscribe
@@ -158,21 +160,6 @@ public class AnalyticsListener
final BusinessSubscription prevSubscription = new BusinessSubscription(transition.getPreviousPlan(), transition.getPreviousPhase(), currency, previousEffectiveTransitionTime, transition.getPreviousState(), transition.getSubscriptionId(), transition.getBundleId());
final BusinessSubscription nextSubscription = new BusinessSubscription(transition.getNextPlan(), transition.getNextPhase(), currency, transition.getEffectiveTransitionTime(), transition.getNextState(), transition.getSubscriptionId(), transition.getBundleId());
- recordTransition(transitionKey, transition.getRequestedTransitionTime(), event, prevSubscription, nextSubscription);
- }
-
- // Public for now for internal reasons
- public void recordTransition(final String key, final DateTime requestedDateTime, final BusinessSubscriptionEvent event, final BusinessSubscription prevSubscription, final BusinessSubscription nextSubscription)
- {
- final BusinessSubscriptionTransition transition = new BusinessSubscriptionTransition(
- key,
- requestedDateTime,
- event,
- prevSubscription,
- nextSubscription
- );
-
- log.info(transition.getEvent() + " " + transition);
- dao.createTransition(transition);
+ bstRecorder.record(transitionKey, transition.getRequestedTransitionTime(), event, prevSubscription, nextSubscription);
}
}
diff --git a/analytics/src/main/java/com/ning/billing/analytics/BusinessSubscriptionTransitionRecorder.java b/analytics/src/main/java/com/ning/billing/analytics/BusinessSubscriptionTransitionRecorder.java
new file mode 100644
index 0000000..781926b
--- /dev/null
+++ b/analytics/src/main/java/com/ning/billing/analytics/BusinessSubscriptionTransitionRecorder.java
@@ -0,0 +1,48 @@
+/*
+ * 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;
+
+import com.ning.billing.analytics.dao.BusinessSubscriptionTransitionDao;
+import org.joda.time.DateTime;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class BusinessSubscriptionTransitionRecorder
+{
+ private static final Logger log = LoggerFactory.getLogger(BusinessSubscriptionTransitionRecorder.class);
+
+ private final BusinessSubscriptionTransitionDao dao;
+
+ public BusinessSubscriptionTransitionRecorder(final BusinessSubscriptionTransitionDao dao)
+ {
+ this.dao = dao;
+ }
+
+ public void record(final String key, final DateTime requestedDateTime, final BusinessSubscriptionEvent event, final BusinessSubscription prevSubscription, final BusinessSubscription nextSubscription)
+ {
+ final BusinessSubscriptionTransition transition = new BusinessSubscriptionTransition(
+ key,
+ requestedDateTime,
+ event,
+ prevSubscription,
+ nextSubscription
+ );
+
+ log.info(transition.getEvent() + " " + transition);
+ dao.createTransition(transition);
+ }
+}