killbill-memoizeit
Changes
entitlement/src/main/java/com/ning/billing/entitlement/api/billing/DefaultEntitlementBillingApi.java 10(+7 -3)
entitlement/src/main/java/com/ning/billing/entitlement/api/user/DefaultEntitlementUserApi.java 12(+7 -5)
entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementSqlDao.java 40(+22 -18)
entitlement/src/test/java/com/ning/billing/entitlement/api/billing/TestDefaultEntitlementBillingApi.java 10(+5 -5)
Details
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/api/billing/DefaultEntitlementBillingApi.java b/entitlement/src/main/java/com/ning/billing/entitlement/api/billing/DefaultEntitlementBillingApi.java
index aaaaa94..cd876d5 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/api/billing/DefaultEntitlementBillingApi.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/api/billing/DefaultEntitlementBillingApi.java
@@ -51,6 +51,7 @@ import com.ning.billing.catalog.api.Product;
import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.entitlement.api.user.SubscriptionBundle;
import com.ning.billing.entitlement.api.user.SubscriptionData;
+import com.ning.billing.entitlement.api.user.SubscriptionFactory;
import com.ning.billing.entitlement.api.user.SubscriptionFactory.SubscriptionBuilder;
import com.ning.billing.entitlement.api.user.SubscriptionTransition;
import com.ning.billing.entitlement.api.user.SubscriptionTransition.SubscriptionTransitionType;
@@ -65,11 +66,14 @@ public class DefaultEntitlementBillingApi implements EntitlementBillingApi {
private final EntitlementDao entitlementDao;
private final AccountUserApi accountApi;
private final CatalogService catalogService;
+ private final SubscriptionFactory subscriptionFactory;
+
@Inject
- public DefaultEntitlementBillingApi(final CallContextFactory factory, final EntitlementDao dao, final AccountUserApi accountApi, final CatalogService catalogService) {
+ public DefaultEntitlementBillingApi(final CallContextFactory factory, final SubscriptionFactory subscriptionFactory, final EntitlementDao dao, final AccountUserApi accountApi, final CatalogService catalogService) {
super();
this.factory = factory;
+ this.subscriptionFactory = subscriptionFactory;
this.entitlementDao = dao;
this.accountApi = accountApi;
this.catalogService = catalogService;
@@ -83,7 +87,7 @@ public class DefaultEntitlementBillingApi implements EntitlementBillingApi {
List<SubscriptionBundle> bundles = entitlementDao.getSubscriptionBundleForAccount(accountId);
SortedSet<BillingEvent> result = new TreeSet<BillingEvent>();
for (final SubscriptionBundle bundle: bundles) {
- List<Subscription> subscriptions = entitlementDao.getSubscriptions(bundle.getId());
+ List<Subscription> subscriptions = entitlementDao.getSubscriptions(subscriptionFactory, bundle.getId());
for (final Subscription subscription: subscriptions) {
for (final SubscriptionTransition transition : ((SubscriptionData) subscription).getBillingTransitions()) {
@@ -182,7 +186,7 @@ public class DefaultEntitlementBillingApi implements EntitlementBillingApi {
@Override
public void setChargedThroughDate(final UUID subscriptionId, final DateTime ctd) {
- SubscriptionData subscription = (SubscriptionData) entitlementDao.getSubscriptionFromId(subscriptionId);
+ SubscriptionData subscription = (SubscriptionData) entitlementDao.getSubscriptionFromId(subscriptionFactory, subscriptionId);
SubscriptionBuilder builder = new SubscriptionBuilder(subscription)
.setChargedThroughDate(ctd)
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/DefaultEntitlementUserApi.java b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/DefaultEntitlementUserApi.java
index baf45f1..8324237 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/DefaultEntitlementUserApi.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/DefaultEntitlementUserApi.java
@@ -44,16 +44,18 @@ public class DefaultEntitlementUserApi implements EntitlementUserApi {
private final CatalogService catalogService;
private final SubscriptionApiService apiService;
private final AddonUtils addonUtils;
+ private final SubscriptionFactory subscriptionFactory;
@Inject
public DefaultEntitlementUserApi(Clock clock, EntitlementDao dao, CatalogService catalogService,
- SubscriptionApiService apiService, AddonUtils addonUtils) {
+ SubscriptionApiService apiService, final SubscriptionFactory subscriptionFactory, AddonUtils addonUtils) {
super();
this.clock = clock;
this.apiService = apiService;
this.dao = dao;
this.catalogService = catalogService;
this.addonUtils = addonUtils;
+ this.subscriptionFactory = subscriptionFactory;
}
@Override
@@ -63,7 +65,7 @@ public class DefaultEntitlementUserApi implements EntitlementUserApi {
@Override
public Subscription getSubscriptionFromId(UUID id) {
- return dao.getSubscriptionFromId(id);
+ return dao.getSubscriptionFromId(subscriptionFactory, id);
}
@Override
@@ -78,12 +80,12 @@ public class DefaultEntitlementUserApi implements EntitlementUserApi {
@Override
public List<Subscription> getSubscriptionsForKey(String bundleKey) {
- return dao.getSubscriptionsForKey(bundleKey);
+ return dao.getSubscriptionsForKey(subscriptionFactory, bundleKey);
}
@Override
public List<Subscription> getSubscriptionsForBundle(UUID bundleId) {
- return dao.getSubscriptions(bundleId);
+ return dao.getSubscriptions(subscriptionFactory, bundleId);
}
@Override
@@ -119,7 +121,7 @@ public class DefaultEntitlementUserApi implements EntitlementUserApi {
}
DateTime bundleStartDate = null;
- SubscriptionData baseSubscription = (SubscriptionData) dao.getBaseSubscription(bundleId);
+ SubscriptionData baseSubscription = (SubscriptionData) dao.getBaseSubscription(subscriptionFactory, bundleId);
switch(plan.getProduct().getCategory()) {
case BASE:
if (baseSubscription != null) {
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/engine/core/Engine.java b/entitlement/src/main/java/com/ning/billing/entitlement/engine/core/Engine.java
index 55ea2cf..ac8953f 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/engine/core/Engine.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/engine/core/Engine.java
@@ -43,6 +43,7 @@ import com.ning.billing.entitlement.api.migration.EntitlementMigrationApi;
import com.ning.billing.entitlement.api.user.DefaultEntitlementUserApi;
import com.ning.billing.entitlement.api.user.EntitlementUserApi;
import com.ning.billing.entitlement.api.user.Subscription;
+import com.ning.billing.entitlement.api.user.SubscriptionFactory;
import com.ning.billing.entitlement.api.user.Subscription.SubscriptionState;
import com.ning.billing.entitlement.api.user.SubscriptionData;
import com.ning.billing.entitlement.engine.addon.AddonUtils;
@@ -84,6 +85,7 @@ public class Engine implements EventListener, EntitlementService {
private final EntitlementConfig config;
private final NotificationQueueService notificationQueueService;
+ private final SubscriptionFactory subscriptionFactory;
private NotificationQueue subscriptionEventQueue;
@@ -92,6 +94,7 @@ public class Engine implements EventListener, EntitlementService {
EntitlementConfig config, DefaultEntitlementUserApi userApi,
DefaultEntitlementBillingApi billingApi,
DefaultEntitlementMigrationApi migrationApi, AddonUtils addonUtils, Bus eventBus,
+ final SubscriptionFactory subscriptionFactory,
NotificationQueueService notificationQueueService) {
super();
this.clock = clock;
@@ -104,6 +107,7 @@ public class Engine implements EventListener, EntitlementService {
this.config = config;
this.eventBus = eventBus;
this.notificationQueueService = notificationQueueService;
+ this.subscriptionFactory = subscriptionFactory;
}
@Override
@@ -185,7 +189,7 @@ public class Engine implements EventListener, EntitlementService {
if (!event.isActive()) {
return;
}
- SubscriptionData subscription = (SubscriptionData) dao.getSubscriptionFromId(event.getSubscriptionId());
+ SubscriptionData subscription = (SubscriptionData) dao.getSubscriptionFromId(subscriptionFactory, event.getSubscriptionId());
if (subscription == null) {
log.warn("Failed to retrieve subscription for id %s", event.getSubscriptionId());
return;
@@ -229,7 +233,7 @@ public class Engine implements EventListener, EntitlementService {
Product baseProduct = (baseSubscription.getState() == SubscriptionState.CANCELLED ) ?
null : baseSubscription.getCurrentPlan().getProduct();
- List<Subscription> subscriptions = dao.getSubscriptions(baseSubscription.getBundleId());
+ List<Subscription> subscriptions = dao.getSubscriptions(subscriptionFactory, baseSubscription.getBundleId());
Iterator<Subscription> it = subscriptions.iterator();
while (it.hasNext()) {
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementDao.java b/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementDao.java
index 6ca1c15..77da73c 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementDao.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementDao.java
@@ -26,58 +26,59 @@ import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.entitlement.api.user.SubscriptionBundle;
import com.ning.billing.entitlement.api.user.SubscriptionBundleData;
import com.ning.billing.entitlement.api.user.SubscriptionData;
+import com.ning.billing.entitlement.api.user.SubscriptionFactory;
import com.ning.billing.entitlement.events.EntitlementEvent;
public interface EntitlementDao {
// Bundle apis
- public List<SubscriptionBundle> getSubscriptionBundleForAccount(UUID accountId);
+ public List<SubscriptionBundle> getSubscriptionBundleForAccount(final UUID accountId);
- public SubscriptionBundle getSubscriptionBundleFromKey(String bundleKey);
+ public SubscriptionBundle getSubscriptionBundleFromKey(final String bundleKey);
- public SubscriptionBundle getSubscriptionBundleFromId(UUID bundleId);
+ public SubscriptionBundle getSubscriptionBundleFromId(final UUID bundleId);
- public SubscriptionBundle createSubscriptionBundle(SubscriptionBundleData bundle);
+ public SubscriptionBundle createSubscriptionBundle(final SubscriptionBundleData bundle);
- public Subscription getSubscriptionFromId(UUID subscriptionId);
+ public Subscription getSubscriptionFromId(final SubscriptionFactory factory, final UUID subscriptionId);
// Account retrieval
public UUID getAccountIdFromSubscriptionId(UUID subscriptionId);
// Subscription retrieval
- public Subscription getBaseSubscription(UUID bundleId);
+ public Subscription getBaseSubscription(final SubscriptionFactory factory, final UUID bundleId);
- public List<Subscription> getSubscriptions(UUID bundleId);
+ public List<Subscription> getSubscriptions(final SubscriptionFactory factory, final UUID bundleId);
- public List<Subscription> getSubscriptionsForKey(String bundleKey);
+ public List<Subscription> getSubscriptionsForKey(final SubscriptionFactory factory, final String bundleKey);
// Update
- public void updateSubscription(SubscriptionData subscription);
+ public void updateSubscription(final SubscriptionData subscription);
// Event apis
- public void createNextPhaseEvent(UUID subscriptionId, EntitlementEvent nextPhase);
+ public void createNextPhaseEvent(final UUID subscriptionId, final EntitlementEvent nextPhase);
- public EntitlementEvent getEventById(UUID eventId);
+ public EntitlementEvent getEventById(final UUID eventId);
- public List<EntitlementEvent> getEventsForSubscription(UUID subscriptionId);
+ public List<EntitlementEvent> getEventsForSubscription(final UUID subscriptionId);
- public List<EntitlementEvent> getPendingEventsForSubscription(UUID subscriptionId);
+ public List<EntitlementEvent> getPendingEventsForSubscription(final UUID subscriptionId);
// Subscription creation, cancellation, changePlan apis
- public void createSubscription(SubscriptionData subscription, List<EntitlementEvent> initialEvents);
+ public void createSubscription(final SubscriptionData subscription, final List<EntitlementEvent> initialEvents);
- public void recreateSubscription(UUID subscriptionId, List<EntitlementEvent> recreateEvents);
+ public void recreateSubscription(final UUID subscriptionId, final List<EntitlementEvent> recreateEvents);
- public void cancelSubscription(UUID subscriptionId, EntitlementEvent cancelEvent);
+ public void cancelSubscription(final UUID subscriptionId, final EntitlementEvent cancelEvent);
- public void uncancelSubscription(UUID subscriptionId, List<EntitlementEvent> uncancelEvents);
+ public void uncancelSubscription(final UUID subscriptionId, final List<EntitlementEvent> uncancelEvents);
- public void changePlan(UUID subscriptionId, List<EntitlementEvent> changeEvents);
+ public void changePlan(final UUID subscriptionId, final List<EntitlementEvent> changeEvents);
- public void migrate(UUID accountId, AccountMigrationData data);
+ public void migrate(final UUID accountId, final AccountMigrationData data);
- public void undoMigration(UUID accountId);
+ public void undoMigration(final UUID accountId);
// Custom Fields
- public void saveCustomFields(SubscriptionData subscription, CallContext context);
+ public void saveCustomFields(final SubscriptionData subscription, final CallContext context);
}
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementSqlDao.java b/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementSqlDao.java
index cd688d3..e722c2c 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementSqlDao.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementSqlDao.java
@@ -76,17 +76,21 @@ public class EntitlementSqlDao implements EntitlementDao {
private final SubscriptionSqlDao subscriptionsDao;
private final BundleSqlDao bundlesDao;
private final EventSqlDao eventsDao;
- private final SubscriptionFactory factory;
private final NotificationQueueService notificationQueueService;
private final AddonUtils addonUtils;
private final CustomFieldDao customFieldDao;
-
+
+ //
+ // We are not injecting SubscriptionFactory since that creates circular dependencies--
+ // Guice would still work, but this is playing with fire.
+ //
+ // Instead that factory passed through API top to bottom for the call where is it needed-- where we returned fully rehydrated Subscriptions
+ //
@Inject
- public EntitlementSqlDao(final IDBI dbi, final Clock clock, final SubscriptionFactory factory,
+ public EntitlementSqlDao(final IDBI dbi, final Clock clock,
final AddonUtils addonUtils, final NotificationQueueService notificationQueueService,
final CustomFieldDao customFieldDao) {
this.clock = clock;
- this.factory = factory;
this.subscriptionsDao = dbi.onDemand(SubscriptionSqlDao.class);
this.eventsDao = dbi.onDemand(EventSqlDao.class);
this.bundlesDao = dbi.onDemand(BundleSqlDao.class);
@@ -146,27 +150,27 @@ public class EntitlementSqlDao implements EntitlementDao {
}
@Override
- public Subscription getBaseSubscription(final UUID bundleId) {
- return getBaseSubscription(bundleId, true);
+ public Subscription getBaseSubscription(final SubscriptionFactory factory, final UUID bundleId) {
+ return getBaseSubscription(factory, bundleId, true);
}
@Override
- public Subscription getSubscriptionFromId(final UUID subscriptionId) {
- return buildSubscription(subscriptionsDao.getSubscriptionFromId(subscriptionId.toString()));
+ public Subscription getSubscriptionFromId(final SubscriptionFactory factory, final UUID subscriptionId) {
+ return buildSubscription(factory, subscriptionsDao.getSubscriptionFromId(subscriptionId.toString()));
}
@Override
- public List<Subscription> getSubscriptions(UUID bundleId) {
- return buildBundleSubscriptions(subscriptionsDao.getSubscriptionsFromBundleId(bundleId.toString()));
+ public List<Subscription> getSubscriptions(final SubscriptionFactory factory, final UUID bundleId) {
+ return buildBundleSubscriptions(factory, subscriptionsDao.getSubscriptionsFromBundleId(bundleId.toString()));
}
@Override
- public List<Subscription> getSubscriptionsForKey(String bundleKey) {
+ public List<Subscription> getSubscriptionsForKey(final SubscriptionFactory factory, final String bundleKey) {
SubscriptionBundle bundle = bundlesDao.getBundleFromKey(bundleKey);
if (bundle == null) {
return Collections.emptyList();
}
- return getSubscriptions(bundle.getId());
+ return getSubscriptions(factory, bundle.getId());
}
@Override
@@ -414,20 +418,20 @@ public class EntitlementSqlDao implements EntitlementDao {
customFieldDao.saveFields(transactionalDao, subscription.getId(), subscription.getObjectName(), subscription.getFieldList(), context);
}
- private Subscription buildSubscription(Subscription input) {
+ private Subscription buildSubscription(final SubscriptionFactory factory, final Subscription input) {
if (input == null) {
return null;
}
List<Subscription> bundleInput = new ArrayList<Subscription>();
Subscription baseSubscription = null;
if (input.getCategory() == ProductCategory.ADD_ON) {
- baseSubscription = getBaseSubscription(input.getBundleId(), false);
+ baseSubscription = getBaseSubscription(factory, input.getBundleId(), false);
bundleInput.add(baseSubscription);
bundleInput.add(input);
} else {
bundleInput.add(input);
}
- List<Subscription> reloadedSubscriptions = buildBundleSubscriptions(bundleInput);
+ List<Subscription> reloadedSubscriptions = buildBundleSubscriptions(factory, bundleInput);
for (Subscription cur : reloadedSubscriptions) {
if (cur.getId().equals(input.getId())) {
return cur;
@@ -436,7 +440,7 @@ public class EntitlementSqlDao implements EntitlementDao {
throw new EntitlementError(String.format("Unexpected code path in buildSubscription"));
}
- private List<Subscription> buildBundleSubscriptions(List<Subscription> input) {
+ private List<Subscription> buildBundleSubscriptions(final SubscriptionFactory factory, final List<Subscription> input) {
// Make sure BasePlan -- if exists-- is first
Collections.sort(input, new Comparator<Subscription>() {
@Override
@@ -546,11 +550,11 @@ public class EntitlementSqlDao implements EntitlementDao {
}
- public Subscription getBaseSubscription(final UUID bundleId, boolean rebuildSubscription) {
+ private Subscription getBaseSubscription(final SubscriptionFactory factory, final UUID bundleId, boolean rebuildSubscription) {
List<Subscription> subscriptions = subscriptionsDao.getSubscriptionsFromBundleId(bundleId.toString());
for (Subscription cur : subscriptions) {
if (((SubscriptionData)cur).getCategory() == ProductCategory.BASE) {
- return rebuildSubscription ? buildSubscription(cur) : cur;
+ return rebuildSubscription ? buildSubscription(factory, cur) : cur;
}
}
return null;
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/billing/TestDefaultEntitlementBillingApi.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/billing/TestDefaultEntitlementBillingApi.java
index 6e583ed..e940cd8 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/billing/TestDefaultEntitlementBillingApi.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/billing/TestDefaultEntitlementBillingApi.java
@@ -139,7 +139,7 @@ public class TestDefaultEntitlementBillingApi {
((ZombieControl) accountApi).addResult("getAccountById", account);
CallContextFactory factory = new DefaultCallContextFactory(clock);
- DefaultEntitlementBillingApi api = new DefaultEntitlementBillingApi(factory, dao, accountApi, catalogService);
+ DefaultEntitlementBillingApi api = new DefaultEntitlementBillingApi(factory, null, dao, accountApi, catalogService);
SortedSet<BillingEvent> events = api.getBillingEventsForAccount(new UUID(0L,0L));
Assert.assertEquals(events.size(), 0);
}
@@ -161,7 +161,7 @@ public class TestDefaultEntitlementBillingApi {
((ZombieControl)account).addResult("getCurrency", Currency.USD);
((ZombieControl)accountApi).addResult("getAccountById", account);
- DefaultEntitlementBillingApi api = new DefaultEntitlementBillingApi(factory, dao, accountApi, catalogService);
+ DefaultEntitlementBillingApi api = new DefaultEntitlementBillingApi(factory, null, dao, accountApi, catalogService);
SortedSet<BillingEvent> events = api.getBillingEventsForAccount(new UUID(0L,0L));
checkFirstEvent(events, nextPlan, 32, oneId, now, nextPhase, ApiEventType.CREATE.toString());
}
@@ -186,7 +186,7 @@ public class TestDefaultEntitlementBillingApi {
((ZombieControl)accountApi).addResult("getAccountById", account);
CallContextFactory factory = new DefaultCallContextFactory(clock);
- DefaultEntitlementBillingApi api = new DefaultEntitlementBillingApi(factory, dao, accountApi, catalogService);
+ DefaultEntitlementBillingApi api = new DefaultEntitlementBillingApi(factory, null, dao, accountApi, catalogService);
SortedSet<BillingEvent> events = api.getBillingEventsForAccount(new UUID(0L,0L));
checkFirstEvent(events, nextPlan, subscription.getStartDate().getDayOfMonth(), oneId, now, nextPhase, ApiEventType.CREATE.toString());
}
@@ -208,7 +208,7 @@ public class TestDefaultEntitlementBillingApi {
((ZombieControl)account).addResult("getCurrency", Currency.USD);
((ZombieControl)accountApi).addResult("getAccountById", account);
- DefaultEntitlementBillingApi api = new DefaultEntitlementBillingApi(factory, dao,accountApi,catalogService);
+ DefaultEntitlementBillingApi api = new DefaultEntitlementBillingApi(factory, null, dao,accountApi,catalogService);
SortedSet<BillingEvent> events = api.getBillingEventsForAccount(new UUID(0L,0L));
checkFirstEvent(events, nextPlan, 32, oneId, now, nextPhase, ApiEventType.CREATE.toString());
}
@@ -232,7 +232,7 @@ public class TestDefaultEntitlementBillingApi {
((ZombieControl)accountApi).addResult("getAccountById", account);
CallContextFactory factory = new DefaultCallContextFactory(clock);
- DefaultEntitlementBillingApi api = new DefaultEntitlementBillingApi(factory, dao, accountApi, catalogService);
+ DefaultEntitlementBillingApi api = new DefaultEntitlementBillingApi(factory, null, dao, accountApi, catalogService);
SortedSet<BillingEvent> events = api.getBillingEventsForAccount(new UUID(0L,0L));
checkFirstEvent(events, nextPlan, bundles.get(0).getStartDate().getDayOfMonth(), oneId, now, nextPhase, ApiEventType.CREATE.toString());
}
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/engine/dao/MockEntitlementDaoMemory.java b/entitlement/src/test/java/com/ning/billing/entitlement/engine/dao/MockEntitlementDaoMemory.java
index f73e7e0..2336188 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/engine/dao/MockEntitlementDaoMemory.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/engine/dao/MockEntitlementDaoMemory.java
@@ -127,7 +127,7 @@ public class MockEntitlementDaoMemory implements EntitlementDao, MockEntitlement
}
@Override
- public Subscription getSubscriptionFromId(final UUID subscriptionId) {
+ public Subscription getSubscriptionFromId(final SubscriptionFactory factory, final UUID subscriptionId) {
for (final Subscription cur : subscriptions) {
if (cur.getId().equals(subscriptionId)) {
return buildSubscription((SubscriptionData) cur);
@@ -142,11 +142,11 @@ public class MockEntitlementDaoMemory implements EntitlementDao, MockEntitlement
}
@Override
- public List<Subscription> getSubscriptionsForKey(final String bundleKey) {
+ public List<Subscription> getSubscriptionsForKey(final SubscriptionFactory factory, final String bundleKey) {
for (final SubscriptionBundle cur : bundles) {
if (cur.getKey().equals(bundleKey)) {
- return getSubscriptions(cur.getId());
+ return getSubscriptions(factory, cur.getId());
}
}
return Collections.emptyList();
@@ -189,7 +189,7 @@ public class MockEntitlementDaoMemory implements EntitlementDao, MockEntitlement
}
@Override
- public List<Subscription> getSubscriptions(final UUID bundleId) {
+ public List<Subscription> getSubscriptions(final SubscriptionFactory factory, final UUID bundleId) {
List<Subscription> results = new ArrayList<Subscription>();
for (final Subscription cur : subscriptions) {
@@ -230,7 +230,7 @@ public class MockEntitlementDaoMemory implements EntitlementDao, MockEntitlement
@Override
- public Subscription getBaseSubscription(final UUID bundleId) {
+ public Subscription getBaseSubscription(final SubscriptionFactory factory, final UUID bundleId) {
for (final Subscription cur : subscriptions) {
if (cur.getBundleId().equals(bundleId) &&
cur.getCurrentPlan().getProduct().getCategory() == ProductCategory.BASE) {
@@ -309,7 +309,7 @@ public class MockEntitlementDaoMemory implements EntitlementDao, MockEntitlement
private void cancelNextPhaseEvent(final UUID subscriptionId) {
- Subscription curSubscription = getSubscriptionFromId(subscriptionId);
+ Subscription curSubscription = getSubscriptionFromId(null, subscriptionId);
if (curSubscription.getCurrentPhase() == null ||
curSubscription.getCurrentPhase().getDuration().getUnit() == TimeUnit.UNLIMITED) {
return;
@@ -414,7 +414,7 @@ public class MockEntitlementDaoMemory implements EntitlementDao, MockEntitlement
List<SubscriptionBundle> allBundles = getSubscriptionBundleForAccount(accountId);
for (final SubscriptionBundle bundle : allBundles) {
- List<Subscription> allSubscriptions = getSubscriptions(bundle.getId());
+ List<Subscription> allSubscriptions = getSubscriptions(null, bundle.getId());
for (final Subscription subscription : allSubscriptions) {
List<EntitlementEvent> allEvents = getEventsForSubscription(subscription.getId());
for (final EntitlementEvent event : allEvents) {
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/engine/dao/MockEntitlementDaoSql.java b/entitlement/src/test/java/com/ning/billing/entitlement/engine/dao/MockEntitlementDaoSql.java
index 65d8495..4733f4a 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/engine/dao/MockEntitlementDaoSql.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/engine/dao/MockEntitlementDaoSql.java
@@ -36,9 +36,9 @@ public class MockEntitlementDaoSql extends EntitlementSqlDao implements MockEnti
private final ResetSqlDao resetDao;
@Inject
- public MockEntitlementDaoSql(IDBI dbi, Clock clock, SubscriptionFactory factory, AddonUtils addonUtils, NotificationQueueService notificationQueueService,
+ public MockEntitlementDaoSql(IDBI dbi, Clock clock, AddonUtils addonUtils, NotificationQueueService notificationQueueService,
CustomFieldDao customFieldDao) {
- super(dbi, clock, factory, addonUtils, notificationQueueService, customFieldDao);
+ super(dbi, clock, addonUtils, notificationQueueService, customFieldDao);
this.resetDao = dbi.onDemand(ResetSqlDao.class);
}