killbill-uncached
Changes
entitlement/src/main/java/com/ning/billing/entitlement/api/billing/DefaultEntitlementBillingApi.java 2(+1 -1)
entitlement/src/main/java/com/ning/billing/entitlement/api/user/DefaultEntitlementUserApi.java 6(+2 -4)
entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionApiService.java 7(+1 -6)
entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionFactory.java 201(+115 -86)
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 15442ed..1704a0a 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
@@ -24,8 +24,8 @@ import org.joda.time.DateTime;
import com.google.inject.Inject;
import com.ning.billing.account.api.IAccount;
-import com.ning.billing.entitlement.api.user.SubscriptionBuilder;
import com.ning.billing.entitlement.api.user.SubscriptionData;
+import com.ning.billing.entitlement.api.user.SubscriptionFactory.SubscriptionBuilder;
import com.ning.billing.entitlement.engine.dao.EntitlementDao;
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 16e3de5..3600027 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
@@ -34,6 +34,7 @@ import com.ning.billing.entitlement.alignment.PlanAligner;
import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.entitlement.api.user.SubscriptionBundle;
import com.ning.billing.entitlement.api.user.EntitlementUserApi;
+import com.ning.billing.entitlement.api.user.SubscriptionFactory.SubscriptionBuilder;
import com.ning.billing.entitlement.engine.dao.EntitlementDao;
import com.ning.billing.entitlement.exceptions.EntitlementError;
import com.ning.billing.util.clock.DefaultClock;
@@ -43,18 +44,15 @@ public class DefaultEntitlementUserApi implements EntitlementUserApi {
private final Clock clock;
private final EntitlementDao dao;
- private final PlanAligner planAligner;
private final ICatalogService catalogService;
private final SubscriptionApiService apiService;
@Inject
- public DefaultEntitlementUserApi(Clock clock, PlanAligner planAligner,
- EntitlementDao dao, ICatalogService catalogService, SubscriptionApiService apiService) {
+ public DefaultEntitlementUserApi(Clock clock, EntitlementDao dao, ICatalogService catalogService, SubscriptionApiService apiService) {
super();
this.clock = clock;
this.apiService = apiService;
this.dao = dao;
- this.planAligner = planAligner;
this.catalogService = catalogService;
}
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionApiService.java b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionApiService.java
index 334d066..86483d1 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionApiService.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionApiService.java
@@ -37,6 +37,7 @@ import com.ning.billing.catalog.api.PlanSpecifier;
import com.ning.billing.entitlement.alignment.PlanAligner;
import com.ning.billing.entitlement.alignment.TimedPhase;
import com.ning.billing.entitlement.api.user.Subscription.SubscriptionState;
+import com.ning.billing.entitlement.api.user.SubscriptionFactory.SubscriptionBuilder;
import com.ning.billing.entitlement.engine.dao.EntitlementDao;
import com.ning.billing.entitlement.events.EntitlementEvent;
import com.ning.billing.entitlement.events.phase.PhaseEvent;
@@ -66,12 +67,6 @@ public class SubscriptionApiService {
- public SubscriptionData createFromExisting(SubscriptionBuilder builder, List<EntitlementEvent> events) {
- SubscriptionData subscription = new SubscriptionData(builder, this, clock);
- subscription.rebuildTransitions(events, catalogService.getCatalog());
- return subscription;
- }
-
public SubscriptionData create(SubscriptionBuilder builder, IPlan plan, String realPriceList,
DateTime requestedDate, DateTime effectiveDate, DateTime processedDate) {
SubscriptionData subscription = new SubscriptionData(builder, this, clock);
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionData.java b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionData.java
index 8b27f6c..9f39dcb 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionData.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/SubscriptionData.java
@@ -34,6 +34,7 @@ import com.ning.billing.catalog.api.ICatalog;
import com.ning.billing.catalog.api.IPlan;
import com.ning.billing.catalog.api.IPlanPhase;
import com.ning.billing.catalog.api.ProductCategory;
+import com.ning.billing.entitlement.api.user.SubscriptionFactory.SubscriptionBuilder;
import com.ning.billing.entitlement.events.EntitlementEvent;
import com.ning.billing.entitlement.events.EntitlementEvent.EventType;
import com.ning.billing.entitlement.events.phase.PhaseEvent;
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 7f80704..15f1e8c 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
@@ -30,15 +30,14 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.inject.Inject;
-import com.ning.billing.catalog.api.ICatalogService;
import com.ning.billing.catalog.api.ProductCategory;
import com.ning.billing.config.EntitlementConfig;
import com.ning.billing.entitlement.api.user.Subscription;
-import com.ning.billing.entitlement.api.user.SubscriptionApiService;
import com.ning.billing.entitlement.api.user.SubscriptionBundle;
-import com.ning.billing.entitlement.api.user.SubscriptionData;
-import com.ning.billing.entitlement.api.user.SubscriptionBuilder;
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.api.user.SubscriptionFactory.SubscriptionBuilder;
import com.ning.billing.entitlement.events.EntitlementEvent;
import com.ning.billing.entitlement.events.EntitlementEvent.EventType;
import com.ning.billing.entitlement.events.user.ApiEventType;
@@ -51,19 +50,19 @@ public class EntitlementSqlDao implements EntitlementDao {
private final static Logger log = LoggerFactory.getLogger(EntitlementSqlDao.class);
- private final SubscriptionApiService apiService;
private final Clock clock;
private final SubscriptionSqlDao subscriptionsDao;
private final BundleSqlDao bundlesDao;
private final EventSqlDao eventsDao;
private final EntitlementConfig config;
private final String hostname;
+ private final SubscriptionFactory factory;
@Inject
- public EntitlementSqlDao(DBI dbi, Clock clock, EntitlementConfig config, SubscriptionApiService apiService) {
+ public EntitlementSqlDao(DBI dbi, Clock clock, EntitlementConfig config, SubscriptionFactory factory) {
this.clock = clock;
this.config = config;
- this.apiService = apiService;
+ this.factory = factory;
this.subscriptionsDao = dbi.onDemand(SubscriptionSqlDao.class);
this.eventsDao = dbi.onDemand(EventSqlDao.class);
this.bundlesDao = dbi.onDemand(BundleSqlDao.class);
@@ -335,7 +334,7 @@ public class EntitlementSqlDao implements EntitlementDao {
List<Subscription> result = new ArrayList<Subscription>(input.size());
for (Subscription cur : input) {
List<EntitlementEvent> events = eventsDao.getEventsForSubscription(cur.getId().toString());
- Subscription reloaded = apiService.createFromExisting(new SubscriptionBuilder((SubscriptionData) cur), events);
+ Subscription reloaded = factory.createSubscription(new SubscriptionBuilder((SubscriptionData) cur), events);
result.add(reloaded);
}
return result;
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/SubscriptionSqlDao.java b/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/SubscriptionSqlDao.java
index 79c9f49..4a5312c 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/SubscriptionSqlDao.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/SubscriptionSqlDao.java
@@ -41,7 +41,7 @@ import org.skife.jdbi.v2.tweak.ResultSetMapper;
import com.ning.billing.catalog.api.ProductCategory;
import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.entitlement.api.user.SubscriptionData;
-import com.ning.billing.entitlement.api.user.SubscriptionBuilder;
+import com.ning.billing.entitlement.api.user.SubscriptionFactory.SubscriptionBuilder;
@ExternalizedSqlViaStringTemplate3()
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 c799dfc..d378dcb 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
@@ -39,8 +39,9 @@ import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.entitlement.api.user.SubscriptionApiService;
import com.ning.billing.entitlement.api.user.SubscriptionBundle;
import com.ning.billing.entitlement.api.user.SubscriptionData;
-import com.ning.billing.entitlement.api.user.SubscriptionBuilder;
import com.ning.billing.entitlement.api.user.SubscriptionBundleData;
+import com.ning.billing.entitlement.api.user.SubscriptionFactory;
+import com.ning.billing.entitlement.api.user.SubscriptionFactory.SubscriptionBuilder;
import com.ning.billing.entitlement.events.EntitlementEvent;
import com.ning.billing.entitlement.events.EntitlementEvent.EventType;
import com.ning.billing.entitlement.events.EventLifecycle.EventLifecycleState;
@@ -57,16 +58,16 @@ public class MockEntitlementDaoMemory implements EntitlementDao, MockEntitlement
private final TreeSet<EntitlementEvent> events;
private final Clock clock;
private final EntitlementConfig config;
- private final SubscriptionApiService apiService;
+ private final SubscriptionFactory factory;
@Inject
- public MockEntitlementDaoMemory(Clock clock, EntitlementConfig config, SubscriptionApiService apiService) {
+ public MockEntitlementDaoMemory(Clock clock, EntitlementConfig config, SubscriptionFactory factory) {
super();
this.clock = clock;
this.config = config;
- this.apiService = apiService;
+ this.factory = factory;
this.bundles = new ArrayList<SubscriptionBundle>();
this.subscriptions = new ArrayList<Subscription>();
this.events = new TreeSet<EntitlementEvent>();
@@ -232,7 +233,7 @@ public class MockEntitlementDaoMemory implements EntitlementDao, MockEntitlement
}
private Subscription buildSubscription(SubscriptionData in) {
- return apiService.createFromExisting(new SubscriptionBuilder(in), getEventsForSubscription(in.getId()));
+ return factory.createSubscription(new SubscriptionBuilder(in), getEventsForSubscription(in.getId()));
}
@Override
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 118174b..253ef45 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
@@ -28,6 +28,7 @@ import com.ning.billing.catalog.api.ICatalog;
import com.ning.billing.catalog.api.ICatalogService;
import com.ning.billing.config.EntitlementConfig;
import com.ning.billing.entitlement.api.user.SubscriptionApiService;
+import com.ning.billing.entitlement.api.user.SubscriptionFactory;
import com.ning.billing.util.clock.Clock;
public class MockEntitlementDaoSql extends EntitlementSqlDao implements MockEntitlementDao {
@@ -35,8 +36,8 @@ public class MockEntitlementDaoSql extends EntitlementSqlDao implements MockEnti
private final ResetSqlDao resetDao;
@Inject
- public MockEntitlementDaoSql(DBI dbi, Clock clock, EntitlementConfig config, SubscriptionApiService apiService ) {
- super(dbi, clock, config, apiService);
+ public MockEntitlementDaoSql(DBI dbi, Clock clock, EntitlementConfig config, SubscriptionFactory factory) {
+ super(dbi, clock, config, factory);
this.resetDao = dbi.onDemand(ResetSqlDao.class);
}