killbill-memoizeit
Changes
entitlement/src/test/java/org/killbill/billing/entitlement/EntitlementTestSuiteWithEmbeddedDB.java 2(+1 -1)
junction/src/main/java/org/killbill/billing/junction/plumbing/billing/BlockingCalculator.java 2(+1 -1)
junction/src/main/java/org/killbill/billing/junction/plumbing/billing/DefaultInternalBillingApi.java 4(+2 -2)
subscription/src/main/java/org/killbill/billing/subscription/api/svcs/DefaultSubscriptionInternalApi.java 10(+5 -5)
subscription/src/main/java/org/killbill/billing/subscription/api/timeline/DefaultSubscriptionBaseTimelineApi.java 2(+1 -1)
subscription/src/main/java/org/killbill/billing/subscription/api/transfer/DefaultSubscriptionBaseTransferApi.java 2(+1 -1)
subscription/src/main/java/org/killbill/billing/subscription/api/user/DefaultSubscriptionBaseApiService.java 20(+10 -10)
subscription/src/main/java/org/killbill/billing/subscription/engine/dao/DefaultSubscriptionDao.java 4(+2 -2)
subscription/src/test/java/org/killbill/billing/subscription/alignment/TestPlanAligner.java 8(+4 -4)
Details
diff --git a/api/src/main/java/org/killbill/billing/catalog/api/CatalogService.java b/api/src/main/java/org/killbill/billing/catalog/api/CatalogService.java
index f461328..b55c64b 100644
--- a/api/src/main/java/org/killbill/billing/catalog/api/CatalogService.java
+++ b/api/src/main/java/org/killbill/billing/catalog/api/CatalogService.java
@@ -27,7 +27,7 @@ import org.killbill.billing.util.callcontext.TenantContext;
*/
public interface CatalogService extends KillbillService {
- public Catalog getFullCatalog(InternalTenantContext context) throws CatalogApiException;
+ public Catalog getFullCatalog(boolean useDefaultCatalog, InternalTenantContext context) throws CatalogApiException;
- public StaticCatalog getCurrentCatalog(InternalTenantContext context) throws CatalogApiException;
+ public StaticCatalog getCurrentCatalog(boolean useDefaultCatalog, InternalTenantContext context) throws CatalogApiException;
}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/api/user/DefaultCatalogUserApi.java b/catalog/src/main/java/org/killbill/billing/catalog/api/user/DefaultCatalogUserApi.java
index 38fcb86..798a508 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/api/user/DefaultCatalogUserApi.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/api/user/DefaultCatalogUserApi.java
@@ -70,13 +70,13 @@ public class DefaultCatalogUserApi implements CatalogUserApi {
@Override
public Catalog getCatalog(final String catalogName, final TenantContext tenantContext) throws CatalogApiException {
final InternalTenantContext internalTenantContext = internalCallContextFactory.createInternalTenantContextWithoutAccountRecordId(tenantContext);
- return catalogService.getFullCatalog(internalTenantContext);
+ return catalogService.getFullCatalog(true, internalTenantContext);
}
@Override
public StaticCatalog getCurrentCatalog(final String catalogName, final TenantContext tenantContext) throws CatalogApiException {
final InternalTenantContext internalTenantContext = createInternalTenantContext(tenantContext);
- return catalogService.getCurrentCatalog(internalTenantContext);
+ return catalogService.getCurrentCatalog(true, internalTenantContext);
}
@Override
@@ -109,7 +109,7 @@ public class DefaultCatalogUserApi implements CatalogUserApi {
final InternalTenantContext internalTenantContext = createInternalTenantContext(callContext);
catalogCache.clearCatalog(internalTenantContext);
- tenantApi.addTenantKeyValue(TenantKey.CATALOG.toString(), catalogUpdater.getCatalogXML(), callContext);
+ tenantApi.updateTenantKeyValue(TenantKey.CATALOG.toString(), catalogUpdater.getCatalogXML(), callContext);
} catch (TenantApiException e) {
throw new CatalogApiException(e);
}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/caching/CatalogCache.java b/catalog/src/main/java/org/killbill/billing/catalog/caching/CatalogCache.java
index 38984c0..379fbb5 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/caching/CatalogCache.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/caching/CatalogCache.java
@@ -25,7 +25,7 @@ public interface CatalogCache {
public void loadDefaultCatalog(final String url) throws CatalogApiException;
- public VersionedCatalog getCatalog(InternalTenantContext tenantContext) throws CatalogApiException;
+ public VersionedCatalog getCatalog(final boolean useDefaultCatalog, InternalTenantContext tenantContext) throws CatalogApiException;
public void clearCatalog(InternalTenantContext tenantContext);
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/caching/EhCacheCatalogCache.java b/catalog/src/main/java/org/killbill/billing/catalog/caching/EhCacheCatalogCache.java
index 5713049..047f824 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/caching/EhCacheCatalogCache.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/caching/EhCacheCatalogCache.java
@@ -81,7 +81,7 @@ public class EhCacheCatalogCache implements CatalogCache {
}
@Override
- public VersionedCatalog getCatalog(final InternalTenantContext tenantContext) throws CatalogApiException {
+ public VersionedCatalog getCatalog(final boolean useDefaultCatalog, final InternalTenantContext tenantContext) throws CatalogApiException {
// STEPH TODO what are the possibilities for caching here ?
final VersionedCatalog pluginVersionedCatalog = getCatalogFromPlugins(tenantContext);
@@ -90,7 +90,7 @@ public class EhCacheCatalogCache implements CatalogCache {
}
if (tenantContext.getTenantRecordId() == InternalCallContextFactory.INTERNAL_TENANT_RECORD_ID) {
- return defaultCatalog;
+ return useDefaultCatalog ? defaultCatalog : null;
}
// The cache loader might choke on some bad xml -- unlikely since we check its validity prior storing it,
// but to be on the safe side;;
@@ -98,7 +98,7 @@ public class EhCacheCatalogCache implements CatalogCache {
VersionedCatalog tenantCatalog = (VersionedCatalog) cacheController.get(tenantContext.getTenantRecordId(), cacheLoaderArgument);
// It means we are using a default catalog in a multi-tenant deployment, that does not really match a real use case, but we want to support it
// for test purpose.
- if (tenantCatalog == null) {
+ if (useDefaultCatalog && tenantCatalog == null) {
tenantCatalog = new VersionedCatalog(defaultCatalog.getClock(), defaultCatalog.getCatalogName(), defaultCatalog.getRecurringBillingMode(), defaultCatalog.getVersions(), tenantContext);
cacheController.add(tenantContext.getTenantRecordId(), tenantCatalog);
}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/DefaultCatalogService.java b/catalog/src/main/java/org/killbill/billing/catalog/DefaultCatalogService.java
index cc12fa6..caba69b 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultCatalogService.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultCatalogService.java
@@ -91,16 +91,16 @@ public class DefaultCatalogService implements KillbillService, CatalogService {
}
@Override
- public Catalog getFullCatalog(final InternalTenantContext context) throws CatalogApiException {
+ public Catalog getFullCatalog(final boolean useDefaultCatalog, final InternalTenantContext context) throws CatalogApiException {
return getCatalog(context);
}
@Override
- public StaticCatalog getCurrentCatalog(final InternalTenantContext context) throws CatalogApiException {
+ public StaticCatalog getCurrentCatalog(final boolean useDefaultCatalog, final InternalTenantContext context) throws CatalogApiException {
return getCatalog(context);
}
private VersionedCatalog getCatalog(final InternalTenantContext context) throws CatalogApiException {
- return catalogCache.getCatalog(context);
+ return catalogCache.getCatalog(true, context);
}
}
diff --git a/catalog/src/test/java/org/killbill/billing/catalog/caching/TestEhCacheCatalogCache.java b/catalog/src/test/java/org/killbill/billing/catalog/caching/TestEhCacheCatalogCache.java
index 4e771ce..726732e 100644
--- a/catalog/src/test/java/org/killbill/billing/catalog/caching/TestEhCacheCatalogCache.java
+++ b/catalog/src/test/java/org/killbill/billing/catalog/caching/TestEhCacheCatalogCache.java
@@ -70,7 +70,7 @@ public class TestEhCacheCatalogCache extends CatalogTestSuiteNoDB {
@Test(groups = "fast")
public void testMissingDefaultCatalog() throws CatalogApiException {
catalogCache.loadDefaultCatalog(null);
- Assert.assertEquals(catalogCache.getCatalog(internalCallContext).getCatalogName(), "EmptyCatalog");
+ Assert.assertEquals(catalogCache.getCatalog(true, internalCallContext).getCatalogName(), "EmptyCatalog");
}
//
@@ -80,17 +80,17 @@ public class TestEhCacheCatalogCache extends CatalogTestSuiteNoDB {
public void testDefaultCatalog() throws CatalogApiException {
catalogCache.loadDefaultCatalog(Resources.getResource("SpyCarBasic.xml").toExternalForm());
- final VersionedCatalog result = catalogCache.getCatalog(internalCallContext);
+ final VersionedCatalog result = catalogCache.getCatalog(true, internalCallContext);
Assert.assertNotNull(result);
final DefaultProduct[] products = result.getProducts(clock.getUTCNow());
Assert.assertEquals(products.length, 3);
// Verify the lookup with other contexts
final VersionedCatalog resultForMultiTenantContext = new VersionedCatalog(result.getClock(), result.getCatalogName(), result.getRecurringBillingMode(), result.getVersions(), multiTenantContext);
- Assert.assertEquals(catalogCache.getCatalog(multiTenantContext).getCatalogName(), resultForMultiTenantContext.getCatalogName());
- Assert.assertEquals(catalogCache.getCatalog(multiTenantContext).getVersions().size(), resultForMultiTenantContext.getVersions().size());
- for (int i = 0; i < catalogCache.getCatalog(multiTenantContext).getVersions().size(); i++) {
- Assert.assertEquals(catalogCache.getCatalog(multiTenantContext).getVersions().get(i).getTenantRecordId(), resultForMultiTenantContext.getVersions().get(i).getTenantRecordId());
+ Assert.assertEquals(catalogCache.getCatalog(true, multiTenantContext).getCatalogName(), resultForMultiTenantContext.getCatalogName());
+ Assert.assertEquals(catalogCache.getCatalog(true, multiTenantContext).getVersions().size(), resultForMultiTenantContext.getVersions().size());
+ for (int i = 0; i < catalogCache.getCatalog(true, multiTenantContext).getVersions().size(); i++) {
+ Assert.assertEquals(catalogCache.getCatalog(true, multiTenantContext).getVersions().get(i).getTenantRecordId(), resultForMultiTenantContext.getVersions().get(i).getTenantRecordId());
}
}
@@ -131,14 +131,14 @@ public class TestEhCacheCatalogCache extends CatalogTestSuiteNoDB {
});
// Verify the lookup for a non-cached tenant. No system config is set yet but EhCacheCatalogCache returns a default empty one
- VersionedCatalog differentResult = catalogCache.getCatalog(differentMultiTenantContext);
+ VersionedCatalog differentResult = catalogCache.getCatalog(true, differentMultiTenantContext);
Assert.assertNotNull(differentResult);
Assert.assertEquals(differentResult.getCatalogName(), "EmptyCatalog");
// Make sure the cache loader isn't invoked, see https://github.com/killbill/killbill/issues/300
shouldThrow.set(true);
- differentResult = catalogCache.getCatalog(differentMultiTenantContext);
+ differentResult = catalogCache.getCatalog(true, differentMultiTenantContext);
Assert.assertNotNull(differentResult);
Assert.assertEquals(differentResult.getCatalogName(), "EmptyCatalog");
@@ -148,13 +148,13 @@ public class TestEhCacheCatalogCache extends CatalogTestSuiteNoDB {
catalogCache.loadDefaultCatalog(Resources.getResource("SpyCarBasic.xml").toExternalForm());
// Verify the lookup for this tenant
- final VersionedCatalog result = catalogCache.getCatalog(multiTenantContext);
+ final VersionedCatalog result = catalogCache.getCatalog(true, multiTenantContext);
Assert.assertNotNull(result);
final DefaultProduct[] products = result.getProducts(clock.getUTCNow());
Assert.assertEquals(products.length, 6);
// Verify the lookup for another tenant
- final VersionedCatalog otherResult = catalogCache.getCatalog(otherMultiTenantContext);
+ final VersionedCatalog otherResult = catalogCache.getCatalog(true, otherMultiTenantContext);
Assert.assertNotNull(otherResult);
final DefaultProduct[] otherProducts = otherResult.getProducts(clock.getUTCNow());
Assert.assertEquals(otherProducts.length, 3);
@@ -162,16 +162,16 @@ public class TestEhCacheCatalogCache extends CatalogTestSuiteNoDB {
shouldThrow.set(true);
// Verify the lookup for this tenant
- final VersionedCatalog result2 = catalogCache.getCatalog(multiTenantContext);
+ final VersionedCatalog result2 = catalogCache.getCatalog(true, multiTenantContext);
Assert.assertEquals(result2, result);
// Verify the lookup with another context for the same tenant
final InternalCallContext sameMultiTenantContext = Mockito.mock(InternalCallContext.class);
Mockito.when(sameMultiTenantContext.getAccountRecordId()).thenReturn(9102L);
Mockito.when(sameMultiTenantContext.getTenantRecordId()).thenReturn(multiTenantRecordId);
- Assert.assertEquals(catalogCache.getCatalog(sameMultiTenantContext), result);
+ Assert.assertEquals(catalogCache.getCatalog(true, sameMultiTenantContext), result);
// Verify the lookup with the other tenant
- Assert.assertEquals(catalogCache.getCatalog(otherMultiTenantContext), otherResult);
+ Assert.assertEquals(catalogCache.getCatalog(true, otherMultiTenantContext), otherResult);
}
}
diff --git a/catalog/src/test/java/org/killbill/billing/catalog/MockCatalogModule.java b/catalog/src/test/java/org/killbill/billing/catalog/MockCatalogModule.java
index f74e9de..417496e 100644
--- a/catalog/src/test/java/org/killbill/billing/catalog/MockCatalogModule.java
+++ b/catalog/src/test/java/org/killbill/billing/catalog/MockCatalogModule.java
@@ -38,8 +38,8 @@ public class MockCatalogModule extends KillBillModule {
final CatalogService catalogService = Mockito.mock(CatalogService.class);
try {
- Mockito.when(catalogService.getCurrentCatalog(Mockito.any(InternalCallContext.class))).thenReturn(new MockCatalog());
- Mockito.when(catalogService.getFullCatalog(Mockito.any(InternalCallContext.class))).thenReturn(catalog);
+ Mockito.when(catalogService.getCurrentCatalog(true, Mockito.any(InternalCallContext.class))).thenReturn(new MockCatalog());
+ Mockito.when(catalogService.getFullCatalog(true, Mockito.any(InternalCallContext.class))).thenReturn(catalog);
bind(CatalogService.class).toInstance(catalogService);
} catch (CatalogApiException e) {
throw new RuntimeException(e);
diff --git a/catalog/src/test/java/org/killbill/billing/catalog/MockCatalogService.java b/catalog/src/test/java/org/killbill/billing/catalog/MockCatalogService.java
index 41b66fa..5e7061b 100644
--- a/catalog/src/test/java/org/killbill/billing/catalog/MockCatalogService.java
+++ b/catalog/src/test/java/org/killbill/billing/catalog/MockCatalogService.java
@@ -40,12 +40,12 @@ public class MockCatalogService extends DefaultCatalogService {
}
@Override
- public Catalog getFullCatalog(InternalTenantContext context) {
+ public Catalog getFullCatalog(final boolean useDefaultCatalog, InternalTenantContext context) {
return catalog;
}
@Override
- public StaticCatalog getCurrentCatalog(InternalTenantContext context) {
+ public StaticCatalog getCurrentCatalog(final boolean useDefaultCatalog, InternalTenantContext context) {
return catalog;
}
diff --git a/catalog/src/test/java/org/killbill/billing/catalog/TestCatalogService.java b/catalog/src/test/java/org/killbill/billing/catalog/TestCatalogService.java
index 2557916..a7365e0 100644
--- a/catalog/src/test/java/org/killbill/billing/catalog/TestCatalogService.java
+++ b/catalog/src/test/java/org/killbill/billing/catalog/TestCatalogService.java
@@ -36,8 +36,8 @@ public class TestCatalogService extends CatalogTestSuiteNoDB {
}, tenantInternalApi, catalogCache, cacheInvalidationCallback);
service.loadCatalog();
- Assert.assertNotNull(service.getFullCatalog(internalCallContext));
- Assert.assertEquals(service.getFullCatalog(internalCallContext).getCatalogName(), "WeaponsHireSmall");
+ Assert.assertNotNull(service.getFullCatalog(true, internalCallContext));
+ Assert.assertEquals(service.getFullCatalog(true, internalCallContext).getCatalogName(), "WeaponsHireSmall");
}
@Test(groups = "fast")
@@ -50,7 +50,7 @@ public class TestCatalogService extends CatalogTestSuiteNoDB {
}, tenantInternalApi, catalogCache, cacheInvalidationCallback);
service.loadCatalog();
- Assert.assertNotNull(service.getFullCatalog(internalCallContext));
- Assert.assertEquals(service.getFullCatalog(internalCallContext).getCatalogName(), "Firearms");
+ Assert.assertNotNull(service.getFullCatalog(true, internalCallContext));
+ Assert.assertEquals(service.getFullCatalog(true, internalCallContext).getCatalogName(), "Firearms");
}
}
diff --git a/entitlement/src/test/java/org/killbill/billing/entitlement/EntitlementTestSuiteWithEmbeddedDB.java b/entitlement/src/test/java/org/killbill/billing/entitlement/EntitlementTestSuiteWithEmbeddedDB.java
index 3ee58a2..bd5d6a6 100644
--- a/entitlement/src/test/java/org/killbill/billing/entitlement/EntitlementTestSuiteWithEmbeddedDB.java
+++ b/entitlement/src/test/java/org/killbill/billing/entitlement/EntitlementTestSuiteWithEmbeddedDB.java
@@ -186,7 +186,7 @@ public class EntitlementTestSuiteWithEmbeddedDB extends GuicyKillbillTestSuiteWi
private Catalog initCatalog(final CatalogService catalogService) throws Exception {
((DefaultCatalogService) catalogService).loadCatalog();
- final Catalog catalog = catalogService.getFullCatalog(internalCallContext);
+ final Catalog catalog = catalogService.getFullCatalog(true, internalCallContext);
assertNotNull(catalog);
return catalog;
}
diff --git a/junction/src/main/java/org/killbill/billing/junction/plumbing/billing/BlockingCalculator.java b/junction/src/main/java/org/killbill/billing/junction/plumbing/billing/BlockingCalculator.java
index f78edf5..98a0b01 100644
--- a/junction/src/main/java/org/killbill/billing/junction/plumbing/billing/BlockingCalculator.java
+++ b/junction/src/main/java/org/killbill/billing/junction/plumbing/billing/BlockingCalculator.java
@@ -197,7 +197,7 @@ public class BlockingCalculator {
protected SortedSet<BillingEvent> createNewEvents(final List<DisabledDuration> disabledDuration, final SortedSet<BillingEvent> billingEvents, final SubscriptionBase subscription, final InternalTenantContext context) throws CatalogApiException {
final SortedSet<BillingEvent> result = new TreeSet<BillingEvent>();
- final Catalog catalog = catalogService.getFullCatalog(context);
+ final Catalog catalog = catalogService.getFullCatalog(true, context);
for (final DisabledDuration duration : disabledDuration) {
// The first one before the blocked duration
diff --git a/junction/src/main/java/org/killbill/billing/junction/plumbing/billing/DefaultInternalBillingApi.java b/junction/src/main/java/org/killbill/billing/junction/plumbing/billing/DefaultInternalBillingApi.java
index 549adf1..ba52d19 100644
--- a/junction/src/main/java/org/killbill/billing/junction/plumbing/billing/DefaultInternalBillingApi.java
+++ b/junction/src/main/java/org/killbill/billing/junction/plumbing/billing/DefaultInternalBillingApi.java
@@ -89,7 +89,7 @@ public class DefaultInternalBillingApi implements BillingInternalApi {
@Override
public BillingEventSet getBillingEventsForAccountAndUpdateAccountBCD(final UUID accountId, final DryRunArguments dryRunArguments, final InternalCallContext context) throws CatalogApiException, AccountApiException {
- final StaticCatalog currentCatalog = catalogService.getCurrentCatalog(context);
+ final StaticCatalog currentCatalog = catalogService.getCurrentCatalog(true, context);
// Check to see if billing is off for the account
final List<Tag> accountTags = tagApi.getTags(accountId, ObjectType.ACCOUNT, context);
@@ -200,7 +200,7 @@ public class DefaultInternalBillingApi implements BillingInternalApi {
return;
}
- final Catalog catalog = catalogService.getFullCatalog(context);
+ final Catalog catalog = catalogService.getFullCatalog(true, context);
Integer overridenBCD = null;
for (final EffectiveSubscriptionInternalEvent transition : billingTransitions) {
diff --git a/junction/src/test/java/org/killbill/billing/junction/JunctionTestSuiteWithEmbeddedDB.java b/junction/src/test/java/org/killbill/billing/junction/JunctionTestSuiteWithEmbeddedDB.java
index 568a786..b8dde33 100644
--- a/junction/src/test/java/org/killbill/billing/junction/JunctionTestSuiteWithEmbeddedDB.java
+++ b/junction/src/test/java/org/killbill/billing/junction/JunctionTestSuiteWithEmbeddedDB.java
@@ -125,7 +125,7 @@ public abstract class JunctionTestSuiteWithEmbeddedDB extends GuicyKillbillTestS
private Catalog initCatalog(final CatalogService catalogService) throws Exception {
((DefaultCatalogService) catalogService).loadCatalog();
- final Catalog catalog = catalogService.getFullCatalog(internalCallContext);
+ final Catalog catalog = catalogService.getFullCatalog(true, internalCallContext);
assertNotNull(catalog);
return catalog;
}
diff --git a/junction/src/test/java/org/killbill/billing/junction/plumbing/billing/TestBillingApi.java b/junction/src/test/java/org/killbill/billing/junction/plumbing/billing/TestBillingApi.java
index 2fc7a4b..e63aa9f 100644
--- a/junction/src/test/java/org/killbill/billing/junction/plumbing/billing/TestBillingApi.java
+++ b/junction/src/test/java/org/killbill/billing/junction/plumbing/billing/TestBillingApi.java
@@ -103,9 +103,9 @@ public class TestBillingApi extends JunctionTestSuiteNoDB {
Mockito.when(subscriptionInternalApi.getBillingTransitions(Mockito.<SubscriptionBase>any(), Mockito.<InternalTenantContext>any())).thenReturn(effectiveSubscriptionTransitions);
Mockito.when(subscriptionInternalApi.getAllTransitions(Mockito.<SubscriptionBase>any(), Mockito.<InternalTenantContext>any())).thenReturn(effectiveSubscriptionTransitions);
- catalog = ((MockCatalog) catalogService.getCurrentCatalog(internalCallContext));
+ catalog = ((MockCatalog) catalogService.getCurrentCatalog(true, internalCallContext));
// TODO The MockCatalog module returns two different things for full vs current catalog
- Mockito.when(catalogService.getFullCatalog(internalCallContext)).thenReturn(catalog);
+ Mockito.when(catalogService.getFullCatalog(true, internalCallContext)).thenReturn(catalog);
// Set a default alignment
catalog.setBillingAlignment(BillingAlignment.ACCOUNT);
diff --git a/subscription/src/main/java/org/killbill/billing/subscription/alignment/PlanAligner.java b/subscription/src/main/java/org/killbill/billing/subscription/alignment/PlanAligner.java
index 551ff4a..5724939 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/alignment/PlanAligner.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/alignment/PlanAligner.java
@@ -195,7 +195,7 @@ public class PlanAligner extends BaseAligner {
final DateTime effectiveDate,
final InternalTenantContext context)
throws CatalogApiException, SubscriptionBaseApiException {
- final Catalog catalog = catalogService.getFullCatalog(context);
+ final Catalog catalog = catalogService.getFullCatalog(true, context);
final PlanSpecifier planSpecifier = new PlanSpecifier(plan.getProduct().getName(),
plan.getRecurringBillingPeriod(),
@@ -250,7 +250,7 @@ public class PlanAligner extends BaseAligner {
final PhaseType originalInitialPhase,
final WhichPhase which,
final InternalTenantContext context) throws CatalogApiException, SubscriptionBaseApiException {
- final Catalog catalog = catalogService.getFullCatalog(context);
+ final Catalog catalog = catalogService.getFullCatalog(true, context);
final ProductCategory currentCategory = currentPlan.getProduct().getCategory();
final PlanPhaseSpecifier fromPlanPhaseSpecifier = new PlanPhaseSpecifier(currentPlan.getProduct().getName(),
currentPlan.getRecurringBillingPeriod(),
diff --git a/subscription/src/main/java/org/killbill/billing/subscription/api/SubscriptionApiBase.java b/subscription/src/main/java/org/killbill/billing/subscription/api/SubscriptionApiBase.java
index e576d0e..e8f62ed 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/api/SubscriptionApiBase.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/api/SubscriptionApiBase.java
@@ -62,7 +62,7 @@ public class SubscriptionApiBase {
protected DefaultSubscriptionBase createSubscriptionForApiUse(SubscriptionBuilder builder, List<SubscriptionBaseEvent> events, final InternalTenantContext context) throws CatalogApiException {
final DefaultSubscriptionBase subscription = new DefaultSubscriptionBase(builder, apiService, clock);
if (events.size() > 0) {
- subscription.rebuildTransitions(events, catalogService.getFullCatalog(context));
+ subscription.rebuildTransitions(events, catalogService.getFullCatalog(true, context));
}
return subscription;
}
diff --git a/subscription/src/main/java/org/killbill/billing/subscription/api/svcs/DefaultSubscriptionInternalApi.java b/subscription/src/main/java/org/killbill/billing/subscription/api/svcs/DefaultSubscriptionInternalApi.java
index db2c5a9..77493b7 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/api/svcs/DefaultSubscriptionInternalApi.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/api/svcs/DefaultSubscriptionInternalApi.java
@@ -156,7 +156,7 @@ public class DefaultSubscriptionInternalApi extends SubscriptionApiBase implemen
*/
final CallContext callContext = internalCallContextFactory.createCallContext(context);
- final Catalog catalog = catalogService.getFullCatalog(context);
+ final Catalog catalog = catalogService.getFullCatalog(true, context);
final PlanPhasePriceOverridesWithCallContext overridesWithContext = new DefaultPlanPhasePriceOverridesWithCallContext(overrides, callContext);
final Plan plan = catalog.createOrFindPlan(new PlanSpecifier(spec.getProductName(), spec.getBillingPeriod(), realPriceList), overridesWithContext, effectiveDate);
@@ -194,7 +194,7 @@ public class DefaultSubscriptionInternalApi extends SubscriptionApiBase implemen
try {
final List<SubscriptionSpecifier> subscriptions = new ArrayList<SubscriptionSpecifier>();
- final Catalog catalog = catalogService.getFullCatalog(context);
+ final Catalog catalog = catalogService.getFullCatalog(true, context);
final CallContext callContext = internalCallContextFactory.createCallContext(context);
final SubscriptionBaseBundle bundle = dao.getSubscriptionBundleFromId(bundleId, context);
@@ -540,7 +540,7 @@ public class DefaultSubscriptionInternalApi extends SubscriptionApiBase implemen
try {
final PlanPhaseSpecifier inputSpec = dryRunArguments.getPlanPhaseSpecifier();
final String realPriceList = (inputSpec != null && inputSpec.getPriceListName() != null) ? inputSpec.getPriceListName() : PriceListSet.DEFAULT_PRICELIST_NAME;
- final Catalog catalog = catalogService.getFullCatalog(context);
+ final Catalog catalog = catalogService.getFullCatalog(true, context);
final PlanPhasePriceOverridesWithCallContext overridesWithContext = null; // TODO not supported to dryRun with custom price
final Plan plan = (inputSpec != null && inputSpec.getProductName() != null && inputSpec.getBillingPeriod() != null) ?
@@ -597,7 +597,7 @@ public class DefaultSubscriptionInternalApi extends SubscriptionApiBase implemen
subscriptionForCancellation.getCurrentPlan().getRecurringBillingPeriod(),
subscriptionForCancellation.getCurrentPriceList().getName(),
subscriptionForCancellation.getCurrentPhase().getPhaseType());
- policy = catalogService.getFullCatalog(context).planCancelPolicy(spec, utcNow);
+ policy = catalogService.getFullCatalog(true, context).planCancelPolicy(spec, utcNow);
}
cancelEffectiveDate = subscriptionForCancellation.getPlanChangeEffectiveDate(policy);
}
@@ -673,7 +673,7 @@ public class DefaultSubscriptionInternalApi extends SubscriptionApiBase implemen
public int getDefaultBillCycleDayLocal(final SubscriptionBase subscription, final SubscriptionBase baseSubscription, final PlanPhaseSpecifier planPhaseSpecifier, final DateTimeZone accountTimeZone, final int accountBillCycleDayLocal, final DateTime effectiveDate, final InternalTenantContext context) throws SubscriptionBaseApiException {
try {
- final Catalog catalog = catalogService.getFullCatalog(context);
+ final Catalog catalog = catalogService.getFullCatalog(true, context);
final BillingAlignment alignment = catalog.billingAlignment(planPhaseSpecifier, effectiveDate);
return BillCycleDayCalculator.calculateBcdForAlignment(subscription, baseSubscription, alignment, accountTimeZone, accountBillCycleDayLocal);
} catch (final CatalogApiException e) {
diff --git a/subscription/src/main/java/org/killbill/billing/subscription/api/timeline/DefaultSubscriptionBaseTimelineApi.java b/subscription/src/main/java/org/killbill/billing/subscription/api/timeline/DefaultSubscriptionBaseTimelineApi.java
index 4dca0a1..49b48fc 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/api/timeline/DefaultSubscriptionBaseTimelineApi.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/api/timeline/DefaultSubscriptionBaseTimelineApi.java
@@ -136,7 +136,7 @@ public class DefaultSubscriptionBaseTimelineApi extends SubscriptionApiBase impl
for (final SubscriptionBase cur : subscriptions) {
if (!repairIds.contains(cur.getId())) {
- result.add(new DefaultSubscriptionBaseTimeline((DefaultSubscriptionBase) cur, catalogService.getFullCatalog(tenantContext)));
+ result.add(new DefaultSubscriptionBaseTimeline((DefaultSubscriptionBase) cur, catalogService.getFullCatalog(true, tenantContext)));
}
}
return result;
diff --git a/subscription/src/main/java/org/killbill/billing/subscription/api/transfer/DefaultSubscriptionBaseTransferApi.java b/subscription/src/main/java/org/killbill/billing/subscription/api/transfer/DefaultSubscriptionBaseTransferApi.java
index ad37b0f..0443fd7 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/api/transfer/DefaultSubscriptionBaseTransferApi.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/api/transfer/DefaultSubscriptionBaseTransferApi.java
@@ -83,7 +83,7 @@ public class DefaultSubscriptionBaseTransferApi extends SubscriptionApiBase impl
SubscriptionBaseEvent newEvent = null;
- final Catalog catalog = catalogService.getFullCatalog(context);
+ final Catalog catalog = catalogService.getFullCatalog(true, context);
final DateTime effectiveDate = existingEvent.getEffectiveDate().isBefore(transferDate) ? transferDate : existingEvent.getEffectiveDate();
diff --git a/subscription/src/main/java/org/killbill/billing/subscription/api/user/DefaultSubscriptionBaseApiService.java b/subscription/src/main/java/org/killbill/billing/subscription/api/user/DefaultSubscriptionBaseApiService.java
index 1560427..ce19dd3 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/api/user/DefaultSubscriptionBaseApiService.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/api/user/DefaultSubscriptionBaseApiService.java
@@ -110,7 +110,7 @@ public class DefaultSubscriptionBaseApiService implements SubscriptionBaseApiSer
final List<SubscriptionBaseEvent> events = getEventsOnCreation(subscription.getBundleId(), subscription.getId(), subscription.getAlignStartDate(), subscription.getBundleStartDate(),
plan, initialPhase, realPriceList, effectiveDate, processedDate, internalCallContext);
dao.createSubscription(subscription, events, internalCallContext);
- subscription.rebuildTransitions(dao.getEventsForSubscription(subscription.getId(), internalCallContext), catalogService.getFullCatalog(internalCallContext));
+ subscription.rebuildTransitions(dao.getEventsForSubscription(subscription.getId(), internalCallContext), catalogService.getFullCatalog(true, internalCallContext));
return subscription;
} catch (final CatalogApiException e) {
throw new SubscriptionBaseApiException(e);
@@ -145,7 +145,7 @@ public class DefaultSubscriptionBaseApiService implements SubscriptionBaseApiSer
final DefaultSubscriptionBase baseSubscription = findBaseSubscription(subscriptionBaseList);
try {
baseSubscription.rebuildTransitions(dao.getEventsForSubscription(baseSubscription.getId(), internalCallContext),
- catalogService.getFullCatalog(internalCallContext));
+ catalogService.getFullCatalog(true, internalCallContext));
for (final DefaultSubscriptionBase input : subscriptionBaseList) {
if (input.getId().equals(baseSubscription.getId())) {
@@ -153,7 +153,7 @@ public class DefaultSubscriptionBaseApiService implements SubscriptionBaseApiSer
}
input.rebuildTransitions(dao.getEventsForSubscription(input.getId(), internalCallContext),
- catalogService.getFullCatalog(internalCallContext));
+ catalogService.getFullCatalog(true, internalCallContext));
}
} catch (CatalogApiException e) {
throw new SubscriptionBaseApiException(e);
@@ -185,7 +185,7 @@ public class DefaultSubscriptionBaseApiService implements SubscriptionBaseApiSer
try {
final InternalCallContext internalCallContext = createCallContextFromBundleId(subscription.getBundleId(), context);
- final BillingActionPolicy policy = catalogService.getFullCatalog(internalCallContext).planCancelPolicy(planPhase, now);
+ final BillingActionPolicy policy = catalogService.getFullCatalog(true, internalCallContext).planCancelPolicy(planPhase, now);
final DateTime effectiveDate = subscription.getPlanChangeEffectiveDate(policy);
return doCancelPlan(ImmutableMap.<DefaultSubscriptionBase, DateTime>of(subscription, effectiveDate), now, internalCallContext);
@@ -252,7 +252,7 @@ public class DefaultSubscriptionBaseApiService implements SubscriptionBaseApiSer
boolean allSubscriptionsCancelled = true;
for (final DefaultSubscriptionBase subscription : subscriptions.keySet()) {
- final Catalog fullCatalog = catalogService.getFullCatalog(internalCallContext);
+ final Catalog fullCatalog = catalogService.getFullCatalog(true, internalCallContext);
subscription.rebuildTransitions(dao.getEventsForSubscription(subscription.getId(), internalCallContext), fullCatalog);
allSubscriptionsCancelled = allSubscriptionsCancelled && (subscription.getState() == EntitlementState.CANCELLED);
}
@@ -289,7 +289,7 @@ public class DefaultSubscriptionBaseApiService implements SubscriptionBaseApiSer
dao.uncancelSubscription(subscription, uncancelEvents, internalCallContext);
try {
- final Catalog fullCatalog = catalogService.getFullCatalog(internalCallContext);
+ final Catalog fullCatalog = catalogService.getFullCatalog(true, internalCallContext);
subscription.rebuildTransitions(dao.getEventsForSubscription(subscription.getId(), internalCallContext), fullCatalog);
return true;
} catch (final CatalogApiException e) {
@@ -380,7 +380,7 @@ public class DefaultSubscriptionBaseApiService implements SubscriptionBaseApiSer
final PlanChangeResult planChangeResult;
try {
final InternalTenantContext internalCallContext = createTenantContextFromBundleId(subscription.getBundleId(), context);
- final Product destProduct = catalogService.getFullCatalog(internalCallContext).findProduct(productName, effectiveDate);
+ final Product destProduct = catalogService.getFullCatalog(true, internalCallContext).findProduct(productName, effectiveDate);
final Plan currentPlan = subscription.getCurrentPlan();
final PriceList currentPriceList = subscription.getCurrentPriceList();
final PlanPhaseSpecifier fromPlanPhase = new PlanPhaseSpecifier(currentPlan.getProduct().getName(),
@@ -391,7 +391,7 @@ public class DefaultSubscriptionBaseApiService implements SubscriptionBaseApiSer
term,
priceList);
- planChangeResult = catalogService.getFullCatalog(internalCallContext).planChange(fromPlanPhase, toPlanPhase, effectiveDate);
+ planChangeResult = catalogService.getFullCatalog(true, internalCallContext).planChange(fromPlanPhase, toPlanPhase, effectiveDate);
} catch (final CatalogApiException e) {
throw new SubscriptionBaseApiException(e);
}
@@ -408,7 +408,7 @@ public class DefaultSubscriptionBaseApiService implements SubscriptionBaseApiSer
final CallContext context) throws SubscriptionBaseApiException, CatalogApiException {
final InternalCallContext internalCallContext = createCallContextFromBundleId(subscription.getBundleId(), context);
final PlanPhasePriceOverridesWithCallContext overridesWithContext = new DefaultPlanPhasePriceOverridesWithCallContext(overrides, context);
- final Plan newPlan = catalogService.getFullCatalog(internalCallContext).createOrFindPlan(new PlanSpecifier(newProductName, newBillingPeriod, newPriceList), overridesWithContext, effectiveDate, subscription.getStartDate());
+ final Plan newPlan = catalogService.getFullCatalog(true, internalCallContext).createOrFindPlan(new PlanSpecifier(newProductName, newBillingPeriod, newPriceList), overridesWithContext, effectiveDate, subscription.getStartDate());
if (newPlan.getProduct().getCategory() != subscription.getCategory()) {
throw new SubscriptionBaseApiException(ErrorCode.SUB_CHANGE_INVALID, subscription.getId());
@@ -420,7 +420,7 @@ public class DefaultSubscriptionBaseApiService implements SubscriptionBaseApiSer
dao.changePlan(subscription, changeEvents, addOnSubscriptionsToBeCancelled, addOnCancelEvents, internalCallContext);
- final Catalog fullCatalog = catalogService.getFullCatalog(internalCallContext);
+ final Catalog fullCatalog = catalogService.getFullCatalog(true, internalCallContext);
subscription.rebuildTransitions(dao.getEventsForSubscription(subscription.getId(), internalCallContext), fullCatalog);
}
diff --git a/subscription/src/main/java/org/killbill/billing/subscription/engine/addon/AddonUtils.java b/subscription/src/main/java/org/killbill/billing/subscription/engine/addon/AddonUtils.java
index 6d5a679..dbac2cd 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/engine/addon/AddonUtils.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/engine/addon/AddonUtils.java
@@ -46,7 +46,7 @@ public class AddonUtils {
throw new SubscriptionBaseApiException(ErrorCode.SUB_CREATE_AO_BP_NON_ACTIVE, targetAddOnPlan.getName());
}
- final Product baseProduct = catalogService.getFullCatalog(context).findProduct(baseSubscription.getCurrentPlan().getProduct().getName(), requestedDate);
+ final Product baseProduct = catalogService.getFullCatalog(true, context).findProduct(baseSubscription.getCurrentPlan().getProduct().getName(), requestedDate);
if (isAddonIncluded(baseProduct, targetAddOnPlan)) {
throw new SubscriptionBaseApiException(ErrorCode.SUB_CREATE_AO_ALREADY_INCLUDED,
targetAddOnPlan.getName(), baseSubscription.getCurrentPlan().getProduct().getName());
@@ -60,7 +60,7 @@ public class AddonUtils {
public boolean isAddonAvailableFromProdName(final String baseProductName, final Plan targetAddOnPlan, final DateTime requestedDate, final InternalTenantContext context) {
try {
- final Product product = catalogService.getFullCatalog(context).findProduct(baseProductName, requestedDate);
+ final Product product = catalogService.getFullCatalog(true, context).findProduct(baseProductName, requestedDate);
return isAddonAvailable(product, targetAddOnPlan);
} catch (CatalogApiException e) {
throw new SubscriptionBaseError(e);
@@ -69,7 +69,7 @@ public class AddonUtils {
public boolean isAddonAvailableFromPlanName(final String basePlanName, final Plan targetAddOnPlan, final DateTime requestedDate, final InternalTenantContext context) {
try {
- final Plan plan = catalogService.getFullCatalog(context).findPlan(basePlanName, requestedDate);
+ final Plan plan = catalogService.getFullCatalog(true, context).findPlan(basePlanName, requestedDate);
final Product product = plan.getProduct();
return isAddonAvailable(product, targetAddOnPlan);
} catch (CatalogApiException e) {
@@ -80,7 +80,7 @@ public class AddonUtils {
public boolean isAddonIncludedFromProdName(final String baseProductName, final Plan targetAddOnPlan, final DateTime requestedDate, final InternalTenantContext context) {
try {
- final Product product = catalogService.getFullCatalog(context).findProduct(baseProductName, requestedDate);
+ final Product product = catalogService.getFullCatalog(true, context).findProduct(baseProductName, requestedDate);
return isAddonIncluded(product, targetAddOnPlan);
} catch (CatalogApiException e) {
throw new SubscriptionBaseError(e);
@@ -90,7 +90,7 @@ public class AddonUtils {
public boolean isAddonIncludedFromPlanName(final String basePlanName, final Plan targetAddOnPlan, final DateTime requestedDate, final InternalTenantContext context) {
try {
- final Plan plan = catalogService.getFullCatalog(context).findPlan(basePlanName, requestedDate);
+ final Plan plan = catalogService.getFullCatalog(true, context).findPlan(basePlanName, requestedDate);
final Product product = plan.getProduct();
return isAddonIncluded(product, targetAddOnPlan);
} catch (CatalogApiException e) {
diff --git a/subscription/src/main/java/org/killbill/billing/subscription/engine/dao/DefaultSubscriptionDao.java b/subscription/src/main/java/org/killbill/billing/subscription/engine/dao/DefaultSubscriptionDao.java
index 9b5b400..730f5cb 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/engine/dao/DefaultSubscriptionDao.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/engine/dao/DefaultSubscriptionDao.java
@@ -940,7 +940,7 @@ public class DefaultSubscriptionDao extends EntityDaoBase<SubscriptionBundleMode
private DefaultSubscriptionBase createSubscriptionForInternalUse(final SubscriptionBase shellSubscription, final List<SubscriptionBaseEvent> events, final InternalTenantContext context) throws CatalogApiException {
final DefaultSubscriptionBase result = new DefaultSubscriptionBase(new SubscriptionBuilder(((DefaultSubscriptionBase) shellSubscription)), null, clock);
if (events.size() > 0) {
- final Catalog fullCatalog = catalogService.getFullCatalog(context);
+ final Catalog fullCatalog = catalogService.getFullCatalog(true, context);
result.rebuildTransitions(events, fullCatalog);
}
return result;
@@ -1064,7 +1064,7 @@ public class DefaultSubscriptionDao extends EntityDaoBase<SubscriptionBundleMode
allEvents.addAll(subscriptionWithNewEvent.getEvents());
}
allEvents.add(newEvent);
- subscriptionWithNewEvent.rebuildTransitions(allEvents, catalogService.getFullCatalog(context));
+ subscriptionWithNewEvent.rebuildTransitions(allEvents, catalogService.getFullCatalog(true, context));
return subscriptionWithNewEvent;
}
diff --git a/subscription/src/test/java/org/killbill/billing/subscription/alignment/TestPlanAligner.java b/subscription/src/test/java/org/killbill/billing/subscription/alignment/TestPlanAligner.java
index 513ddad..bd1a180 100644
--- a/subscription/src/test/java/org/killbill/billing/subscription/alignment/TestPlanAligner.java
+++ b/subscription/src/test/java/org/killbill/billing/subscription/alignment/TestPlanAligner.java
@@ -159,7 +159,7 @@ public class TestPlanAligner extends SubscriptionTestSuiteNoDB {
phaseType,
ApiEventType.CREATE
);
- defaultSubscriptionBase.rebuildTransitions(ImmutableList.<SubscriptionBaseEvent>of(event), catalogService.getFullCatalog(internalCallContext));
+ defaultSubscriptionBase.rebuildTransitions(ImmutableList.<SubscriptionBaseEvent>of(event), catalogService.getFullCatalog(true, internalCallContext));
Assert.assertEquals(defaultSubscriptionBase.getAllTransitions().size(), 1);
Assert.assertNull(defaultSubscriptionBase.getAllTransitions().get(0).getPreviousPhase());
@@ -184,7 +184,7 @@ public class TestPlanAligner extends SubscriptionTestSuiteNoDB {
ApiEventType.CHANGE
);
- defaultSubscriptionBase.rebuildTransitions(ImmutableList.<SubscriptionBaseEvent>of(previousEvent, event), catalogService.getFullCatalog(internalCallContext));
+ defaultSubscriptionBase.rebuildTransitions(ImmutableList.<SubscriptionBaseEvent>of(previousEvent, event), catalogService.getFullCatalog(true, internalCallContext));
final List<SubscriptionBaseTransition> newTransitions = defaultSubscriptionBase.getAllTransitions();
Assert.assertEquals(newTransitions.size(), 2);
@@ -213,7 +213,7 @@ public class TestPlanAligner extends SubscriptionTestSuiteNoDB {
final String newProductName,
final DateTime effectiveChangeDate) throws CatalogApiException, SubscriptionBaseApiException {
// The date is used for different catalog versions - we don't care here
- final Plan newPlan = catalogService.getFullCatalog(internalCallContext).findPlan(newProductName, clock.getUTCNow());
+ final Plan newPlan = catalogService.getFullCatalog(true, internalCallContext).findPlan(newProductName, clock.getUTCNow());
return planAligner.getNextTimedPhaseOnChange(defaultSubscriptionBase, newPlan, priceList, effectiveChangeDate, internalCallContext);
}
@@ -223,7 +223,7 @@ public class TestPlanAligner extends SubscriptionTestSuiteNoDB {
final DefaultSubscriptionBase defaultSubscriptionBase,
final DateTime effectiveDate) throws CatalogApiException, SubscriptionBaseApiException {
// The date is used for different catalog versions - we don't care here
- final Plan plan = catalogService.getFullCatalog(internalCallContext).findPlan(productName, clock.getUTCNow());
+ final Plan plan = catalogService.getFullCatalog(true, internalCallContext).findPlan(productName, clock.getUTCNow());
// Same here for the requested date
final TimedPhase[] phases = planAligner.getCurrentAndNextTimedPhaseOnCreate(defaultSubscriptionBase.getAlignStartDate(), defaultSubscriptionBase.getBundleStartDate(),
diff --git a/subscription/src/test/java/org/killbill/billing/subscription/DefaultSubscriptionTestInitializer.java b/subscription/src/test/java/org/killbill/billing/subscription/DefaultSubscriptionTestInitializer.java
index d723dad..1fd582a 100644
--- a/subscription/src/test/java/org/killbill/billing/subscription/DefaultSubscriptionTestInitializer.java
+++ b/subscription/src/test/java/org/killbill/billing/subscription/DefaultSubscriptionTestInitializer.java
@@ -55,7 +55,7 @@ public class DefaultSubscriptionTestInitializer implements SubscriptionTestIniti
public Catalog initCatalog(final CatalogService catalogService, final InternalTenantContext context) throws Exception {
((DefaultCatalogService) catalogService).loadCatalog();
- final Catalog catalog = catalogService.getFullCatalog(context);
+ final Catalog catalog = catalogService.getFullCatalog(true, context);
assertNotNull(catalog);
return catalog;
}
diff --git a/subscription/src/test/java/org/killbill/billing/subscription/engine/dao/MockSubscriptionDaoMemory.java b/subscription/src/test/java/org/killbill/billing/subscription/engine/dao/MockSubscriptionDaoMemory.java
index 38500c3..d68e122 100644
--- a/subscription/src/test/java/org/killbill/billing/subscription/engine/dao/MockSubscriptionDaoMemory.java
+++ b/subscription/src/test/java/org/killbill/billing/subscription/engine/dao/MockSubscriptionDaoMemory.java
@@ -311,7 +311,7 @@ public class MockSubscriptionDaoMemory extends MockEntityDaoBase<SubscriptionBun
final DefaultSubscriptionBase subscription = new DefaultSubscriptionBase(new SubscriptionBuilder(in), null, clock);
if (events.size() > 0) {
try {
- subscription.rebuildTransitions(getEventsForSubscription(in.getId(), context), catalogService.getFullCatalog(context));
+ subscription.rebuildTransitions(getEventsForSubscription(in.getId(), context), catalogService.getFullCatalog(true, context));
} catch (final CatalogApiException e) {
log.warn("Failed to rebuild subscription", e);
}