killbill-uncached
Changes
api/src/main/java/com/ning/billing/entitlement/api/migration/EntitlementMigrationApi.java 16(+14 -2)
entitlement/src/main/java/com/ning/billing/entitlement/api/migration/DefaultEntitlementMigrationApi.java 6(+6 -0)
Details
diff --git a/analytics/src/test/java/com/ning/billing/analytics/MockIEntitlementUserApi.java b/analytics/src/test/java/com/ning/billing/analytics/MockIEntitlementUserApi.java
index cb8955c..b0ab9e8 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/MockIEntitlementUserApi.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/MockIEntitlementUserApi.java
@@ -17,9 +17,7 @@
package com.ning.billing.analytics;
import com.ning.billing.account.api.IAccount;
-import com.ning.billing.catalog.api.BillingPeriod;
-import com.ning.billing.catalog.api.PhaseType;
-import com.ning.billing.entitlement.api.ProductSpecifier;
+import com.ning.billing.catalog.api.PlanPhaseSpecifier;
import com.ning.billing.entitlement.api.user.EntitlementUserApiException;
import com.ning.billing.entitlement.api.user.EntitlementUserApi;
import com.ning.billing.entitlement.api.user.Subscription;
@@ -106,7 +104,7 @@ public class MockIEntitlementUserApi implements EntitlementUserApi
}
@Override
- public Subscription createSubscription(UUID bundleId, ProductSpecifier spec,
+ public Subscription createSubscription(UUID bundleId, PlanPhaseSpecifier spec,
DateTime requestedDate) throws EntitlementUserApiException {
throw new UnsupportedOperationException();
}
diff --git a/api/src/main/java/com/ning/billing/entitlement/api/migration/EntitlementMigrationApi.java b/api/src/main/java/com/ning/billing/entitlement/api/migration/EntitlementMigrationApi.java
index c1b5433..7d41f08 100644
--- a/api/src/main/java/com/ning/billing/entitlement/api/migration/EntitlementMigrationApi.java
+++ b/api/src/main/java/com/ning/billing/entitlement/api/migration/EntitlementMigrationApi.java
@@ -20,8 +20,8 @@ import java.util.UUID;
import org.joda.time.DateTime;
+import com.ning.billing.catalog.api.PlanPhaseSpecifier;
import com.ning.billing.catalog.api.ProductCategory;
-import com.ning.billing.entitlement.api.ProductSpecifier;
public interface EntitlementMigrationApi {
@@ -41,9 +41,14 @@ public interface EntitlementMigrationApi {
public EntitlementSubscriptionMigrationCase [] getSubscriptionCases();
}
+ /**
+ *
+ * Each case is either a PHASE or a different PlanSpecifer
+ */
public interface EntitlementSubscriptionMigrationCase {
- public ProductSpecifier getProductSpecifier();
+ public PlanPhaseSpecifier getPlanPhaseSpecifer();
public DateTime getEffectiveDate();
+ public DateTime getCancelledDate();
}
@@ -57,4 +62,11 @@ public interface EntitlementMigrationApi {
*/
public void migrate(EntitlementAccountMigration toBeMigrated);
+ /**
+ * Remove all the data pertaining to that acount
+ *
+ * @param accountKey
+ */
+ public void undoMigration(UUID accountKey);
+
}
diff --git a/api/src/main/java/com/ning/billing/entitlement/api/user/EntitlementUserApi.java b/api/src/main/java/com/ning/billing/entitlement/api/user/EntitlementUserApi.java
index abc0577..ebea02d 100644
--- a/api/src/main/java/com/ning/billing/entitlement/api/user/EntitlementUserApi.java
+++ b/api/src/main/java/com/ning/billing/entitlement/api/user/EntitlementUserApi.java
@@ -22,7 +22,7 @@ import java.util.UUID;
import org.joda.time.DateTime;
import com.ning.billing.account.api.IAccount;
-import com.ning.billing.entitlement.api.ProductSpecifier;
+import com.ning.billing.catalog.api.PlanPhaseSpecifier;
public interface EntitlementUserApi {
@@ -41,7 +41,7 @@ public interface EntitlementUserApi {
throws EntitlementUserApiException;
- public Subscription createSubscription(UUID bundleId, ProductSpecifier spec, DateTime requestedDate)
+ public Subscription createSubscription(UUID bundleId, PlanPhaseSpecifier spec, DateTime requestedDate)
throws EntitlementUserApiException;
}
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/api/migration/DefaultEntitlementMigrationApi.java b/entitlement/src/main/java/com/ning/billing/entitlement/api/migration/DefaultEntitlementMigrationApi.java
index 8b5ecf9..a5595e6 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/api/migration/DefaultEntitlementMigrationApi.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/api/migration/DefaultEntitlementMigrationApi.java
@@ -16,9 +16,15 @@
package com.ning.billing.entitlement.api.migration;
+import java.util.UUID;
+
public class DefaultEntitlementMigrationApi implements EntitlementMigrationApi {
@Override
public void migrate(EntitlementAccountMigration toBeMigrated) {
}
+
+ @Override
+ public void undoMigration(UUID accountKey) {
+ }
}
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 93d8cc9..0864112 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
@@ -28,8 +28,8 @@ import com.ning.billing.catalog.api.CatalogApiException;
import com.ning.billing.catalog.api.CatalogService;
import com.ning.billing.catalog.api.Plan;
import com.ning.billing.catalog.api.PlanPhase;
+import com.ning.billing.catalog.api.PlanPhaseSpecifier;
import com.ning.billing.catalog.api.PriceListSet;
-import com.ning.billing.entitlement.api.ProductSpecifier;
import com.ning.billing.entitlement.api.user.Subscription;
import com.ning.billing.entitlement.api.user.SubscriptionBundle;
import com.ning.billing.entitlement.api.user.EntitlementUserApi;
@@ -89,10 +89,10 @@ public class DefaultEntitlementUserApi implements EntitlementUserApi {
}
@Override
- public Subscription createSubscription(UUID bundleId, ProductSpecifier spec, DateTime requestedDate) throws EntitlementUserApiException {
+ public Subscription createSubscription(UUID bundleId, PlanPhaseSpecifier spec, DateTime requestedDate) throws EntitlementUserApiException {
try {
- String realPriceList = (spec.getPriceList() == null) ? PriceListSet.DEFAULT_PRICELIST_NAME : spec.getPriceList();
+ String realPriceList = (spec.getPriceListName() == null) ? PriceListSet.DEFAULT_PRICELIST_NAME : spec.getPriceListName();
DateTime now = clock.getUTCNow();
requestedDate = (requestedDate != null) ? DefaultClock.truncateMs(requestedDate) : now;
if (requestedDate != null && requestedDate.isAfter(now)) {
@@ -142,7 +142,7 @@ public class DefaultEntitlementUserApi implements EntitlementUserApi {
.setCategory(plan.getProduct().getCategory())
.setBundleStartDate(bundleStartDate)
.setStartDate(effectiveDate),
- plan, spec.getInitialPhaseType(), realPriceList, requestedDate, effectiveDate, now);
+ plan, spec.getPhaseType(), realPriceList, requestedDate, effectiveDate, now);
return subscription;
} catch (CatalogApiException e) {
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/events/EventBase.java b/entitlement/src/main/java/com/ning/billing/entitlement/events/EventBase.java
index d7a578c..7a9f1bf 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/events/EventBase.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/events/EventBase.java
@@ -40,7 +40,7 @@ public abstract class EventBase implements EntitlementEvent {
private DateTime nextAvailableProcessingTime;
private EventLifecycleState processingState;
- public EventBase(EventBaseBuilder builder) {
+ public EventBase(EventBaseBuilder<?> builder) {
this.uuid = builder.getUuid();
this.subscriptionId = builder.getSubscriptionId();
this.requestedDate = builder.getRequestedDate();
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiBase.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiBase.java
index be4fcf1..8bb1659 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiBase.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/user/TestUserApiBase.java
@@ -24,7 +24,6 @@ import com.ning.billing.config.EntitlementConfig;
import com.ning.billing.entitlement.api.ApiTestListener;
import com.ning.billing.entitlement.api.ApiTestListener.NextEvent;
import com.ning.billing.entitlement.api.EntitlementService;
-import com.ning.billing.entitlement.api.ProductSpecifier;
import com.ning.billing.entitlement.api.billing.EntitlementBillingApi;
import com.ning.billing.entitlement.engine.core.Engine;
import com.ning.billing.entitlement.engine.dao.EntitlementDao;
@@ -194,25 +193,7 @@ public abstract class TestUserApiBase {
protected SubscriptionData createSubscription(final String productName, final BillingPeriod term, final String planSet) throws EntitlementUserApiException {
testListener.pushExpectedEvent(NextEvent.CREATE);
SubscriptionData subscription = (SubscriptionData) entitlementApi.createSubscription(bundle.getId(),
- new ProductSpecifier() {
- @Override
- public BillingPeriod getBillingPeriod() {
- return term;
- }
- @Override
- public PhaseType getInitialPhaseType() {
- return null;
- }
- @Override
- public String getPriceList() {
- return planSet;
- }
- @Override
- public String getProductName() {
- return productName;
- }
-
- },
+ new PlanPhaseSpecifier(productName, ProductCategory.BASE, term, planSet, null),
clock.getUTCNow());
assertNotNull(subscription);
assertTrue(testListener.isCompleted(5000));
@@ -344,25 +325,8 @@ public abstract class TestUserApiBase {
return account;
}
- protected ProductSpecifier getProductSpecifier(final String productName, final String priceList, final BillingPeriod term, final PhaseType phaseType) {
- return new ProductSpecifier() {
- @Override
- public BillingPeriod getBillingPeriod() {
- return term;
- }
- @Override
- public PhaseType getInitialPhaseType() {
- return phaseType;
- }
- @Override
- public String getPriceList() {
- return priceList;
- }
- @Override
- public String getProductName() {
- return productName;
- }
- };
+ protected PlanPhaseSpecifier getProductSpecifier(final String productName, final String priceList, final BillingPeriod term, final PhaseType phaseType) {
+ return new PlanPhaseSpecifier(productName, ProductCategory.BASE, term, priceList, phaseType);
}
protected void printEvents(List<EntitlementEvent> events) {