killbill-memoizeit

more Internal API changes

10/10/2012 9:32:09 PM

Changes

Details

diff --git a/analytics/src/main/java/com/ning/billing/analytics/BusinessOverdueStatusRecorder.java b/analytics/src/main/java/com/ning/billing/analytics/BusinessOverdueStatusRecorder.java
index c57fb4e..6b76e43 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/BusinessOverdueStatusRecorder.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/BusinessOverdueStatusRecorder.java
@@ -38,7 +38,7 @@ import com.ning.billing.entitlement.api.user.SubscriptionBundle;
 import com.ning.billing.junction.api.Blockable;
 import com.ning.billing.junction.api.BlockingState;
 import com.ning.billing.util.callcontext.InternalCallContext;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
@@ -50,11 +50,11 @@ public class BusinessOverdueStatusRecorder {
     private final BusinessOverdueStatusSqlDao overdueStatusSqlDao;
     private final AccountUserApi accountApi;
     private final EntitlementUserApi entitlementApi;
-    private final BlockingApi blockingApi;
+    private final BlockingInternalApi blockingApi;
 
     @Inject
     public BusinessOverdueStatusRecorder(final BusinessOverdueStatusSqlDao overdueStatusSqlDao, final AccountUserApi accountApi,
-                                         final EntitlementUserApi entitlementApi, final BlockingApi blockingApi) {
+                                         final EntitlementUserApi entitlementApi, final BlockingInternalApi blockingApi) {
         this.overdueStatusSqlDao = overdueStatusSqlDao;
         this.accountApi = accountApi;
         this.entitlementApi = entitlementApi;
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueBase.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueBase.java
index 0d2c574..aeb1907 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueBase.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/overdue/TestOverdueBase.java
@@ -42,7 +42,7 @@ import com.ning.billing.payment.api.PaymentMethodPlugin;
 import com.ning.billing.payment.provider.MockPaymentProviderPlugin;
 import com.ning.billing.util.clock.ClockMock;
 import com.ning.billing.util.config.XMLLoader;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 
 import com.google.inject.Inject;
 import com.google.inject.name.Named;
@@ -58,7 +58,7 @@ public abstract class TestOverdueBase extends TestIntegrationBase {
     MockPaymentProviderPlugin paymentPlugin;
 
     @Inject
-    protected BlockingApi blockingApi;
+    protected BlockingInternalApi blockingApi;
 
     @Inject
     protected OverdueWrapperFactory overdueWrapperFactory;
diff --git a/junction/src/main/java/com/ning/billing/junction/block/DefaultBlockingChecker.java b/junction/src/main/java/com/ning/billing/junction/block/DefaultBlockingChecker.java
index bf9dbf3..99256c7 100644
--- a/junction/src/main/java/com/ning/billing/junction/block/DefaultBlockingChecker.java
+++ b/junction/src/main/java/com/ning/billing/junction/block/DefaultBlockingChecker.java
@@ -20,7 +20,6 @@ import java.util.UUID;
 
 import com.ning.billing.ErrorCode;
 import com.ning.billing.account.api.Account;
-import com.ning.billing.entitlement.api.user.EntitlementUserApi;
 import com.ning.billing.entitlement.api.user.EntitlementUserApiException;
 import com.ning.billing.entitlement.api.user.Subscription;
 import com.ning.billing.entitlement.api.user.SubscriptionBundle;
@@ -29,6 +28,7 @@ import com.ning.billing.junction.api.BlockingApiException;
 import com.ning.billing.junction.api.BlockingState;
 import com.ning.billing.junction.dao.BlockingStateDao;
 import com.ning.billing.util.callcontext.InternalTenantContext;
+import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
 
 import com.google.inject.Inject;
 
@@ -79,67 +79,69 @@ public class DefaultBlockingChecker implements BlockingChecker {
     private static final Object ACTION_ENTITLEMENT = "Entitlement";
     private static final Object ACTION_BILLING = "Billing";
 
-    // FIX_API
-    // We should use the internal API, however, doing so will return UnsupportedOperationException
-    // as objects will not be BlockingSubscriptioneBundle but SubscriptionBundleData
-    // We could create Blocking API for our internal API and have them return the correct objects
-    //private final EntitlementInternalApi entitlementApi;
-    private final EntitlementUserApi entitlementApi;
+    private final EntitlementInternalApi entitlementApi;
     private final BlockingStateDao dao;
 
     @Inject
-    public DefaultBlockingChecker(final /* EntitlementInternalApi */ EntitlementUserApi entitlementApi, final BlockingStateDao dao) {
+    public DefaultBlockingChecker(final EntitlementInternalApi entitlementApi, final BlockingStateDao dao) {
         this.entitlementApi = entitlementApi;
         this.dao = dao;
     }
 
     private BlockingAggregator getBlockedStateSubscriptionId(final UUID subscriptionId, final InternalTenantContext context) throws EntitlementUserApiException {
-        final Subscription subscription = entitlementApi.getSubscriptionFromId(subscriptionId, context.toTenantContext());
+        final Subscription subscription = entitlementApi.getSubscriptionFromId(subscriptionId, context);
         return getBlockedStateSubscription(subscription, context);
     }
 
     private BlockingAggregator getBlockedStateSubscription(final Subscription subscription, final InternalTenantContext context) throws EntitlementUserApiException {
         final BlockingAggregator result = new BlockingAggregator();
         if (subscription != null) {
-            final BlockingState subscriptionState = subscription.getBlockingState();
+            final BlockingAggregator subscriptionState = getBlockedStateForId(subscription.getId(), context);
             if (subscriptionState != null) {
                 result.or(subscriptionState);
             }
             if (subscription.getBundleId() != null) {
+                // Recursive call to also fetch account state
                 result.or(getBlockedStateBundleId(subscription.getBundleId(), context));
             }
         }
         return result;
     }
 
+
     private BlockingAggregator getBlockedStateBundleId(final UUID bundleId, final InternalTenantContext context) throws EntitlementUserApiException {
-        final SubscriptionBundle bundle = entitlementApi.getBundleFromId(bundleId, context.toTenantContext());
+        final SubscriptionBundle bundle = entitlementApi.getBundleFromId(bundleId, context);
         return getBlockedStateBundle(bundle, context);
     }
 
+
     private BlockingAggregator getBlockedStateBundle(final SubscriptionBundle bundle, final InternalTenantContext context) {
         final BlockingAggregator result = getBlockedStateAccountId(bundle.getAccountId(), context);
-        final BlockingState bundleState = bundle.getBlockingState();
+        final BlockingAggregator bundleState = getBlockedStateForId(bundle.getId(), context);
         if (bundleState != null) {
             result.or(bundleState);
         }
         return result;
     }
 
-    public BlockingAggregator getBlockedStateAccountId(final UUID accountId, final InternalTenantContext context) {
-        final BlockingAggregator result = new BlockingAggregator();
-        if (accountId != null) {
-            final BlockingState accountState = dao.getBlockingStateFor(accountId, context);
-            result.or(accountState);
+    private BlockingAggregator getBlockedStateAccount(final Account account, final InternalTenantContext context) {
+        if (account != null) {
+            return getBlockedStateForId(account.getId(), context);
         }
-        return result;
+        return new BlockingAggregator();
     }
 
-    public BlockingAggregator getBlockedStateAccount(final Account account, final InternalTenantContext context) {
-        if (account != null) {
-            return getBlockedStateAccountId(account.getId(), context);
+    private BlockingAggregator getBlockedStateAccountId(final UUID accountId, final InternalTenantContext context) {
+        return getBlockedStateForId(accountId, context);
+    }
+
+    private BlockingAggregator getBlockedStateForId(final UUID blockableId, final InternalTenantContext context) {
+        final BlockingAggregator result = new BlockingAggregator();
+        if (blockableId != null) {
+            final BlockingState blockableState = dao.getBlockingStateFor(blockableId, context);
+            result.or(blockableState);
         }
-        return new BlockingAggregator();
+        return result;
     }
 
     @Override
diff --git a/junction/src/main/java/com/ning/billing/junction/glue/DefaultJunctionModule.java b/junction/src/main/java/com/ning/billing/junction/glue/DefaultJunctionModule.java
index be2e01b..e7b37bd 100644
--- a/junction/src/main/java/com/ning/billing/junction/glue/DefaultJunctionModule.java
+++ b/junction/src/main/java/com/ning/billing/junction/glue/DefaultJunctionModule.java
@@ -21,7 +21,7 @@ import org.skife.jdbi.v2.IDBI;
 import com.ning.billing.account.api.AccountUserApi;
 import com.ning.billing.entitlement.api.user.EntitlementUserApi;
 import com.ning.billing.glue.JunctionModule;
-import com.ning.billing.junction.api.blocking.DefaultBlockingApi;
+import com.ning.billing.junction.api.svcs.DefaultInternalBlockingApi;
 import com.ning.billing.junction.block.BlockingChecker;
 import com.ning.billing.junction.block.DefaultBlockingChecker;
 import com.ning.billing.junction.dao.BlockingStateDao;
@@ -31,7 +31,7 @@ import com.ning.billing.junction.plumbing.api.BlockingEntitlementUserApi;
 import com.ning.billing.junction.plumbing.billing.BlockingCalculator;
 import com.ning.billing.junction.plumbing.billing.DefaultInternalBillingApi;
 import com.ning.billing.util.svcapi.junction.BillingInternalApi;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Inject;
@@ -75,7 +75,7 @@ public class DefaultJunctionModule extends AbstractModule implements JunctionMod
     }
 
     public void installBlockingApi() {
-        bind(BlockingApi.class).to(DefaultBlockingApi.class).asEagerSingleton();
+        bind(BlockingInternalApi.class).to(DefaultInternalBlockingApi.class).asEagerSingleton();
     }
 
     public void installBlockingCalculator() {
diff --git a/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingAccount.java b/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingAccount.java
index dcd1ddb..7ad95bd 100644
--- a/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingAccount.java
+++ b/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingAccount.java
@@ -26,15 +26,15 @@ import com.ning.billing.account.api.MutableAccountData;
 import com.ning.billing.catalog.api.Currency;
 import com.ning.billing.junction.api.BlockingState;
 import com.ning.billing.util.callcontext.InternalTenantContext;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 
 public class BlockingAccount implements Account {
     private final Account account;
     private final InternalTenantContext context;
     private BlockingState blockingState = null;
-    private final BlockingApi blockingApi;
+    private final BlockingInternalApi blockingApi;
 
-    public BlockingAccount(final Account account, final BlockingApi blockingApi, final InternalTenantContext context) {
+    public BlockingAccount(final Account account, final BlockingInternalApi blockingApi, final InternalTenantContext context) {
         this.account = account;
         this.blockingApi = blockingApi;
         this.context = context;
diff --git a/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingAccountUserApi.java b/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingAccountUserApi.java
index 13cab3a..c9a8171 100644
--- a/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingAccountUserApi.java
+++ b/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingAccountUserApi.java
@@ -30,19 +30,19 @@ import com.ning.billing.util.callcontext.InternalCallContextFactory;
 import com.ning.billing.util.callcontext.InternalTenantContext;
 import com.ning.billing.util.callcontext.TenantContext;
 import com.ning.billing.util.glue.RealImplementation;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 
 import com.google.inject.Inject;
 
 public class BlockingAccountUserApi implements AccountUserApi {
 
     private final AccountUserApi userApi;
-    private final BlockingApi blockingApi;
+    private final BlockingInternalApi blockingApi;
 
     private final InternalCallContextFactory factory;
 
     @Inject
-    public BlockingAccountUserApi(@RealImplementation final AccountUserApi userApi, final BlockingApi blockingApi, final InternalCallContextFactory factory) {
+    public BlockingAccountUserApi(@RealImplementation final AccountUserApi userApi, final BlockingInternalApi blockingApi, final InternalCallContextFactory factory) {
         this.userApi = userApi;
         this.blockingApi = blockingApi;
         this.factory = factory;
diff --git a/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingEntitlementUserApi.java b/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingEntitlementUserApi.java
index 42b49e9..833b84b 100644
--- a/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingEntitlementUserApi.java
+++ b/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingEntitlementUserApi.java
@@ -38,19 +38,19 @@ import com.ning.billing.util.callcontext.InternalCallContextFactory;
 import com.ning.billing.util.callcontext.InternalTenantContext;
 import com.ning.billing.util.callcontext.TenantContext;
 import com.ning.billing.util.glue.RealImplementation;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 
 import com.google.inject.Inject;
 
 public class BlockingEntitlementUserApi implements EntitlementUserApi {
 
     private final EntitlementUserApi entitlementUserApi;
-    private final BlockingApi blockingApi;
+    private final BlockingInternalApi blockingApi;
     private final BlockingChecker checker;
     private final InternalCallContextFactory internalCallContextFactory;
 
     @Inject
-    public BlockingEntitlementUserApi(@RealImplementation final EntitlementUserApi userApi, final BlockingApi blockingApi,
+    public BlockingEntitlementUserApi(@RealImplementation final EntitlementUserApi userApi, final BlockingInternalApi blockingApi,
                                       final BlockingChecker checker, final InternalCallContextFactory internalCallContextFactory) {
         this.entitlementUserApi = userApi;
         this.blockingApi = blockingApi;
diff --git a/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingSubscription.java b/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingSubscription.java
index 635bea0..675ea03 100644
--- a/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingSubscription.java
+++ b/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingSubscription.java
@@ -37,18 +37,18 @@ import com.ning.billing.junction.block.BlockingChecker;
 import com.ning.billing.util.callcontext.CallContext;
 import com.ning.billing.util.callcontext.InternalCallContextFactory;
 import com.ning.billing.util.callcontext.InternalTenantContext;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 
 public class BlockingSubscription implements Subscription {
     private final Subscription subscription;
-    private final BlockingApi blockingApi;
+    private final BlockingInternalApi blockingApi;
     private final BlockingChecker checker;
     private final InternalTenantContext context;
     private final InternalCallContextFactory internalCallContextFactory;
 
     private BlockingState blockingState = null;
 
-    public BlockingSubscription(final Subscription subscription, final BlockingApi blockingApi, final BlockingChecker checker,
+    public BlockingSubscription(final Subscription subscription, final BlockingInternalApi blockingApi, final BlockingChecker checker,
                                 final InternalTenantContext context, final InternalCallContextFactory internalCallContextFactory) {
         this.subscription = subscription;
         this.blockingApi = blockingApi;
diff --git a/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingSubscriptionBundle.java b/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingSubscriptionBundle.java
index 8ba6acd..2fe6543 100644
--- a/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingSubscriptionBundle.java
+++ b/junction/src/main/java/com/ning/billing/junction/plumbing/api/BlockingSubscriptionBundle.java
@@ -22,16 +22,16 @@ import com.ning.billing.entitlement.api.user.SubscriptionBundle;
 import com.ning.billing.junction.api.BlockingState;
 import com.ning.billing.overdue.OverdueState;
 import com.ning.billing.util.callcontext.InternalTenantContext;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 
 public class BlockingSubscriptionBundle implements SubscriptionBundle {
     private final SubscriptionBundle subscriptionBundle;
-    private final BlockingApi blockingApi;
+    private final BlockingInternalApi blockingApi;
     private final InternalTenantContext context;
 
     private BlockingState blockingState = null;
 
-    public BlockingSubscriptionBundle(final SubscriptionBundle subscriptionBundle, final BlockingApi blockingApi, final InternalTenantContext context) {
+    public BlockingSubscriptionBundle(final SubscriptionBundle subscriptionBundle, final BlockingInternalApi blockingApi, final InternalTenantContext context) {
         this.subscriptionBundle = subscriptionBundle;
         this.blockingApi = blockingApi;
         this.context = context;
diff --git a/junction/src/main/java/com/ning/billing/junction/plumbing/billing/BlockingCalculator.java b/junction/src/main/java/com/ning/billing/junction/plumbing/billing/BlockingCalculator.java
index 51e9316..3a3eadd 100644
--- a/junction/src/main/java/com/ning/billing/junction/plumbing/billing/BlockingCalculator.java
+++ b/junction/src/main/java/com/ning/billing/junction/plumbing/billing/BlockingCalculator.java
@@ -40,7 +40,7 @@ import com.ning.billing.junction.api.BlockingState;
 import com.ning.billing.util.callcontext.InternalTenantContext;
 import com.ning.billing.util.svcapi.junction.BillingEvent;
 import com.ning.billing.util.svcapi.junction.BillingModeType;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.inject.Inject;
@@ -49,7 +49,7 @@ public class BlockingCalculator {
 
     private static final AtomicLong globaltotalOrder = new AtomicLong();
 
-    private final BlockingApi blockingApi;
+    private final BlockingInternalApi blockingApi;
 
     protected static class DisabledDuration {
         private final DateTime start;
@@ -71,7 +71,7 @@ public class BlockingCalculator {
     }
 
     @Inject
-    public BlockingCalculator(final BlockingApi blockingApi) {
+    public BlockingCalculator(final BlockingInternalApi blockingApi) {
         this.blockingApi = blockingApi;
     }
 
diff --git a/junction/src/test/java/com/ning/billing/junction/api/blocking/TestBlockingApi.java b/junction/src/test/java/com/ning/billing/junction/api/blocking/TestBlockingApi.java
index 31bd676..106dd61 100644
--- a/junction/src/test/java/com/ning/billing/junction/api/blocking/TestBlockingApi.java
+++ b/junction/src/test/java/com/ning/billing/junction/api/blocking/TestBlockingApi.java
@@ -32,7 +32,7 @@ import com.ning.billing.junction.api.Blockable;
 import com.ning.billing.junction.api.BlockingState;
 import com.ning.billing.mock.glue.MockEntitlementModule;
 import com.ning.billing.util.clock.ClockMock;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 import com.ning.billing.util.svcapi.junction.DefaultBlockingState;
 
 import com.google.inject.Inject;
@@ -40,7 +40,7 @@ import com.google.inject.Inject;
 @Guice(modules = {MockModule.class, MockEntitlementModule.class})
 public class TestBlockingApi extends JunctionTestSuiteWithEmbeddedDB {
     @Inject
-    private BlockingApi api;
+    private BlockingInternalApi api;
 
     @Inject
     private ClockMock clock;
diff --git a/junction/src/test/java/com/ning/billing/junction/api/blocking/TestDefaultBlockingApi.java b/junction/src/test/java/com/ning/billing/junction/api/blocking/TestDefaultBlockingApi.java
index f75ebf2..149ebb5 100644
--- a/junction/src/test/java/com/ning/billing/junction/api/blocking/TestDefaultBlockingApi.java
+++ b/junction/src/test/java/com/ning/billing/junction/api/blocking/TestDefaultBlockingApi.java
@@ -28,6 +28,7 @@ import org.testng.annotations.Test;
 
 import com.ning.billing.junction.JunctionTestSuiteWithEmbeddedDB;
 import com.ning.billing.junction.api.Blockable.Type;
+import com.ning.billing.junction.api.svcs.DefaultInternalBlockingApi;
 import com.ning.billing.junction.api.BlockingState;
 import com.ning.billing.junction.dao.BlockingStateDao;
 import com.ning.billing.junction.dao.BlockingStateSqlDao;
@@ -38,12 +39,12 @@ public class TestDefaultBlockingApi extends JunctionTestSuiteWithEmbeddedDB {
 
     private final ClockMock clock = new ClockMock();
 
-    private DefaultBlockingApi blockingApi;
+    private DefaultInternalBlockingApi blockingApi;
 
     @BeforeMethod(groups = "slow")
     public void setUp() throws Exception {
         final BlockingStateDao blockingStateDao = getMysqlTestingHelper().getDBI().onDemand(BlockingStateSqlDao.class);
-        blockingApi = new DefaultBlockingApi(blockingStateDao, clock);
+        blockingApi = new DefaultInternalBlockingApi(blockingStateDao, clock);
     }
 
     // API_FIX
diff --git a/junction/src/test/java/com/ning/billing/junction/MockBlockingModule.java b/junction/src/test/java/com/ning/billing/junction/MockBlockingModule.java
index 52a8212..16450e1 100644
--- a/junction/src/test/java/com/ning/billing/junction/MockBlockingModule.java
+++ b/junction/src/test/java/com/ning/billing/junction/MockBlockingModule.java
@@ -19,7 +19,7 @@ package com.ning.billing.junction;
 import org.mockito.Mockito;
 
 import com.ning.billing.junction.dao.BlockingStateDao;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 
 import com.google.inject.AbstractModule;
 
@@ -28,7 +28,7 @@ public class MockBlockingModule extends AbstractModule {
     protected void configure() {
         bind(BlockingStateDao.class).toInstance(Mockito.mock(BlockingStateDao.class));
 
-        final BlockingApi blockingApi = Mockito.mock(BlockingApi.class);
-        bind(BlockingApi.class).toInstance(blockingApi);
+        final BlockingInternalApi blockingApi = Mockito.mock(BlockingInternalApi.class);
+        bind(BlockingInternalApi.class).toInstance(blockingApi);
     }
 }
diff --git a/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillingApi.java b/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillingApi.java
index 9ed69d5..998ba8d 100644
--- a/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillingApi.java
+++ b/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBillingApi.java
@@ -76,7 +76,7 @@ import com.ning.billing.util.svcapi.junction.BillingEvent;
 import com.ning.billing.util.svcapi.junction.BillingEventSet;
 import com.ning.billing.util.svcapi.junction.BillingInternalApi;
 import com.ning.billing.util.svcapi.junction.BillingModeType;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 import com.ning.billing.util.svcapi.junction.DefaultBlockingState;
 import com.ning.billing.util.svcapi.tag.TagInternalApi;
 import com.ning.billing.util.tag.ControlTagType;
@@ -227,7 +227,7 @@ public class TestBillingApi extends JunctionTestSuite {
         blockingStates.add(new DefaultBlockingState(bunId, DISABLED_BUNDLE, Blockable.Type.SUBSCRIPTION_BUNDLE, "test", true, true, true, now.plusDays(1)));
         blockingStates.add(new DefaultBlockingState(bunId, CLEAR_BUNDLE, Blockable.Type.SUBSCRIPTION_BUNDLE, "test", false, false, false, now.plusDays(2)));
 
-        final BlockingCalculator blockingCal = new BlockingCalculator(new BlockingApi() {
+        final BlockingCalculator blockingCal = new BlockingCalculator(new BlockingInternalApi() {
             @Override
             public <T extends Blockable> void setBlockingState(final BlockingState state, final InternalCallContext context) {
             }
diff --git a/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBlockingCalculator.java b/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBlockingCalculator.java
index 7769c49..d69a9e1 100644
--- a/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBlockingCalculator.java
+++ b/junction/src/test/java/com/ning/billing/junction/plumbing/billing/TestBlockingCalculator.java
@@ -56,7 +56,7 @@ import com.ning.billing.mock.api.MockBillCycleDay;
 import com.ning.billing.util.clock.ClockMock;
 import com.ning.billing.util.svcapi.junction.BillingEvent;
 import com.ning.billing.util.svcapi.junction.BillingModeType;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 import com.ning.billing.util.svcapi.junction.DefaultBlockingState;
 
 import com.google.inject.AbstractModule;
@@ -68,7 +68,7 @@ public class TestBlockingCalculator extends JunctionTestSuite {
     private static final String DISABLED_BUNDLE = "disabled-bundle";
     private static final String CLEAR_BUNDLE = "clear-bundle";
 
-    private BlockingApi blockingApi;
+    private BlockingInternalApi blockingApi;
     private Account account;
     private Subscription subscription1;
     private Subscription subscription2;
@@ -86,7 +86,7 @@ public class TestBlockingCalculator extends JunctionTestSuite {
         final Injector i = Guice.createInjector(new AbstractModule() {
             @Override
             protected void configure() {
-                blockingApi = Mockito.mock(BlockingApi.class);
+                blockingApi = Mockito.mock(BlockingInternalApi.class);
                 account = Mockito.mock(Account.class);
                 subscription1 = Mockito.mock(Subscription.class);
                 subscription2 = Mockito.mock(Subscription.class);
@@ -103,7 +103,7 @@ public class TestBlockingCalculator extends JunctionTestSuite {
                 Mockito.when(subscription4.getId()).thenReturn(UUID.randomUUID());
 
                 bind(BlockingStateDao.class).toInstance(Mockito.mock(BlockingStateDao.class));
-                bind(BlockingApi.class).toInstance(blockingApi);
+                bind(BlockingInternalApi.class).toInstance(blockingApi);
             }
 
         });
diff --git a/overdue/src/main/java/com/ning/billing/overdue/api/DefaultOverdueUserApi.java b/overdue/src/main/java/com/ning/billing/overdue/api/DefaultOverdueUserApi.java
index 15b359d..9f02691 100644
--- a/overdue/src/main/java/com/ning/billing/overdue/api/DefaultOverdueUserApi.java
+++ b/overdue/src/main/java/com/ning/billing/overdue/api/DefaultOverdueUserApi.java
@@ -37,7 +37,7 @@ import com.ning.billing.util.callcontext.InternalCallContext;
 import com.ning.billing.util.callcontext.InternalCallContextFactory;
 import com.ning.billing.util.callcontext.TenantContext;
 import com.ning.billing.util.dao.ObjectType;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 
 import com.google.inject.Inject;
 
@@ -46,13 +46,13 @@ public class DefaultOverdueUserApi implements OverdueUserApi {
     Logger log = LoggerFactory.getLogger(DefaultOverdueUserApi.class);
 
     private final OverdueWrapperFactory factory;
-    private final BlockingApi accessApi;
+    private final BlockingInternalApi accessApi;
     private final InternalCallContextFactory internalCallContextFactory;
 
     private OverdueConfig overdueConfig;
 
     @Inject
-    public DefaultOverdueUserApi(final OverdueWrapperFactory factory, final BlockingApi accessApi, final InternalCallContextFactory internalCallContextFactory) {
+    public DefaultOverdueUserApi(final OverdueWrapperFactory factory, final BlockingInternalApi accessApi, final InternalCallContextFactory internalCallContextFactory) {
         this.factory = factory;
         this.accessApi = accessApi;
         this.internalCallContextFactory = internalCallContextFactory;
diff --git a/overdue/src/main/java/com/ning/billing/overdue/applicator/OverdueStateApplicator.java b/overdue/src/main/java/com/ning/billing/overdue/applicator/OverdueStateApplicator.java
index 3272f2c..cbf7adc 100644
--- a/overdue/src/main/java/com/ning/billing/overdue/applicator/OverdueStateApplicator.java
+++ b/overdue/src/main/java/com/ning/billing/overdue/applicator/OverdueStateApplicator.java
@@ -54,7 +54,7 @@ import com.ning.billing.util.email.EmailConfig;
 import com.ning.billing.util.email.EmailSender;
 import com.ning.billing.util.svcapi.account.AccountInternalApi;
 import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 import com.ning.billing.util.svcapi.junction.DefaultBlockingState;
 import com.ning.billing.util.svcsapi.bus.Bus;
 
@@ -66,7 +66,7 @@ public class OverdueStateApplicator<T extends Blockable> {
 
     private static final Logger log = LoggerFactory.getLogger(OverdueStateApplicator.class);
 
-    private final BlockingApi blockingApi;
+    private final BlockingInternalApi blockingApi;
     private final Clock clock;
     private final OverdueCheckPoster poster;
     private final Bus bus;
@@ -76,7 +76,7 @@ public class OverdueStateApplicator<T extends Blockable> {
     private final EmailSender emailSender;
 
     @Inject
-    public OverdueStateApplicator(final BlockingApi accessApi, final AccountInternalApi accountApi, final EntitlementInternalApi entitlementUserApi,
+    public OverdueStateApplicator(final BlockingInternalApi accessApi, final AccountInternalApi accountApi, final EntitlementInternalApi entitlementUserApi,
                                   final Clock clock, final OverdueCheckPoster poster, final OverdueEmailGenerator overdueEmailGenerator,
                                   final EmailConfig config, final Bus bus) {
         this.blockingApi = accessApi;
diff --git a/overdue/src/main/java/com/ning/billing/overdue/wrapper/OverdueWrapper.java b/overdue/src/main/java/com/ning/billing/overdue/wrapper/OverdueWrapper.java
index cae6987..d663978 100644
--- a/overdue/src/main/java/com/ning/billing/overdue/wrapper/OverdueWrapper.java
+++ b/overdue/src/main/java/com/ning/billing/overdue/wrapper/OverdueWrapper.java
@@ -27,17 +27,17 @@ import com.ning.billing.overdue.config.api.OverdueStateSet;
 import com.ning.billing.util.callcontext.InternalCallContext;
 import com.ning.billing.util.callcontext.InternalTenantContext;
 import com.ning.billing.util.clock.Clock;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 
 public class OverdueWrapper<T extends Blockable> {
     private final T overdueable;
-    private final BlockingApi api;
+    private final BlockingInternalApi api;
     private final Clock clock;
     private final OverdueStateSet<T> overdueStateSet;
     private final BillingStateCalculator<T> billingStateCalcuator;
     private final OverdueStateApplicator<T> overdueStateApplicator;
 
-    public OverdueWrapper(final T overdueable, final BlockingApi api,
+    public OverdueWrapper(final T overdueable, final BlockingInternalApi api,
                           final OverdueStateSet<T> overdueStateSet,
                           final Clock clock,
                           final BillingStateCalculator<T> billingStateCalcuator,
diff --git a/overdue/src/main/java/com/ning/billing/overdue/wrapper/OverdueWrapperFactory.java b/overdue/src/main/java/com/ning/billing/overdue/wrapper/OverdueWrapperFactory.java
index a1c31df..aebee68 100644
--- a/overdue/src/main/java/com/ning/billing/overdue/wrapper/OverdueWrapperFactory.java
+++ b/overdue/src/main/java/com/ning/billing/overdue/wrapper/OverdueWrapperFactory.java
@@ -35,7 +35,7 @@ import com.ning.billing.overdue.config.api.OverdueStateSet;
 import com.ning.billing.util.callcontext.InternalTenantContext;
 import com.ning.billing.util.clock.Clock;
 import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 
 import com.google.inject.Inject;
 
@@ -45,12 +45,12 @@ public class OverdueWrapperFactory {
     private final EntitlementInternalApi entitlementApi;
     private final BillingStateCalculatorBundle billingStateCalcuatorBundle;
     private final OverdueStateApplicator<SubscriptionBundle> overdueStateApplicatorBundle;
-    private final BlockingApi api;
+    private final BlockingInternalApi api;
     private final Clock clock;
     private OverdueConfig config;
 
     @Inject
-    public OverdueWrapperFactory(final BlockingApi api, final Clock clock,
+    public OverdueWrapperFactory(final BlockingInternalApi api, final Clock clock,
                                  final BillingStateCalculatorBundle billingStateCalcuatorBundle,
                                  final OverdueStateApplicator<SubscriptionBundle> overdueStateApplicatorBundle,
                                  final EntitlementInternalApi entitlementApi) {
diff --git a/overdue/src/test/java/com/ning/billing/overdue/applicator/ApplicatorMockJunctionModule.java b/overdue/src/test/java/com/ning/billing/overdue/applicator/ApplicatorMockJunctionModule.java
index 0b5702a..5366c5f 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/applicator/ApplicatorMockJunctionModule.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/applicator/ApplicatorMockJunctionModule.java
@@ -27,12 +27,12 @@ import com.ning.billing.junction.api.Blockable.Type;
 import com.ning.billing.mock.glue.MockJunctionModule;
 import com.ning.billing.util.callcontext.InternalCallContext;
 import com.ning.billing.util.callcontext.InternalTenantContext;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 import com.ning.billing.util.svcapi.junction.DefaultBlockingState;
 
 public class ApplicatorMockJunctionModule extends MockJunctionModule {
 
-    public static class ApplicatorBlockingApi implements BlockingApi {
+    public static class ApplicatorBlockingApi implements BlockingInternalApi {
 
         private BlockingState blockingState;
 
@@ -112,6 +112,6 @@ public class ApplicatorMockJunctionModule extends MockJunctionModule {
 
     @Override
     public void installBlockingApi() {
-        bind(BlockingApi.class).toInstance(new ApplicatorBlockingApi());
+        bind(BlockingInternalApi.class).toInstance(new ApplicatorBlockingApi());
     }
 }
diff --git a/overdue/src/test/java/com/ning/billing/overdue/OverdueTestBase.java b/overdue/src/test/java/com/ning/billing/overdue/OverdueTestBase.java
index d2c5ca6..78ff704 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/OverdueTestBase.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/OverdueTestBase.java
@@ -64,7 +64,7 @@ import com.ning.billing.util.notificationq.NotificationQueueService.Notification
 import com.ning.billing.util.svcapi.account.AccountInternalApi;
 import com.ning.billing.util.svcapi.entitlement.EntitlementInternalApi;
 import com.ning.billing.util.svcapi.invoice.InvoiceInternalApi;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 import com.ning.billing.util.svcsapi.bus.BusService;
 
 import com.google.inject.Inject;
@@ -123,7 +123,7 @@ public abstract class OverdueTestBase extends OverdueTestSuiteWithEmbeddedDB {
     protected ClockMock clock;
 
     @Inject
-    protected BlockingApi blockingApi;
+    protected BlockingInternalApi blockingApi;
 
     @Inject
     protected OverdueWrapperFactory overdueWrapperFactory;
diff --git a/util/src/test/java/com/ning/billing/mock/glue/MockJunctionModule.java b/util/src/test/java/com/ning/billing/mock/glue/MockJunctionModule.java
index 86f8af4..b4bd66e 100644
--- a/util/src/test/java/com/ning/billing/mock/glue/MockJunctionModule.java
+++ b/util/src/test/java/com/ning/billing/mock/glue/MockJunctionModule.java
@@ -22,13 +22,13 @@ import com.ning.billing.account.api.AccountUserApi;
 import com.ning.billing.entitlement.api.user.EntitlementUserApi;
 import com.ning.billing.glue.JunctionModule;
 import com.ning.billing.util.svcapi.junction.BillingInternalApi;
-import com.ning.billing.util.svcapi.junction.BlockingApi;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
 
 import com.google.inject.AbstractModule;
 
 public class MockJunctionModule extends AbstractModule implements JunctionModule {
     private final BillingInternalApi billingApi = Mockito.mock(BillingInternalApi.class);
-    private final BlockingApi blockingApi = Mockito.mock(BlockingApi.class);
+    private final BlockingInternalApi blockingApi = Mockito.mock(BlockingInternalApi.class);
     private final AccountUserApi userApi = Mockito.mock(AccountUserApi.class);
     private final EntitlementUserApi entUserApi = Mockito.mock(EntitlementUserApi.class);
 
@@ -52,7 +52,7 @@ public class MockJunctionModule extends AbstractModule implements JunctionModule
 
     @Override
     public void installBlockingApi() {
-        bind(BlockingApi.class).toInstance(blockingApi);
+        bind(BlockingInternalApi.class).toInstance(blockingApi);
     }
 
     @Override