Details
diff --git a/account/src/main/java/com/ning/billing/account/api/AccountUserApi.java b/account/src/main/java/com/ning/billing/account/api/AccountUserApi.java
index 804812c..d488eb1 100644
--- a/account/src/main/java/com/ning/billing/account/api/AccountUserApi.java
+++ b/account/src/main/java/com/ning/billing/account/api/AccountUserApi.java
@@ -33,7 +33,7 @@ public class AccountUserApi implements IAccountUserApi {
@Override
public IAccount createAccount(IAccountData data) {
- return dao.createAccount((IAccount) data);
+ return dao.createAccount(data);
}
@Override
diff --git a/account/src/main/java/com/ning/billing/account/dao/AccountDao.java b/account/src/main/java/com/ning/billing/account/dao/AccountDao.java
index 7476e44..acc2fb1 100644
--- a/account/src/main/java/com/ning/billing/account/dao/AccountDao.java
+++ b/account/src/main/java/com/ning/billing/account/dao/AccountDao.java
@@ -25,6 +25,7 @@ import org.skife.jdbi.v2.Transaction;
import com.google.inject.Inject;
import com.ning.billing.account.api.Account;
import com.ning.billing.account.api.IAccount;
+import com.ning.billing.account.api.IAccountData;
public class AccountDao implements IAccountDao {
@@ -36,8 +37,8 @@ public class AccountDao implements IAccountDao {
}
@Override
- public IAccount createAccount(IAccount account) {
- IAccount result = new Account(account.getKey());
+ public IAccount createAccount(IAccountData input) {
+ IAccount result = new Account(input.getKey());
dao.insertAccount(result);
return result;
}
diff --git a/account/src/main/java/com/ning/billing/account/dao/IAccountDao.java b/account/src/main/java/com/ning/billing/account/dao/IAccountDao.java
index 8475d42..e044e3b 100644
--- a/account/src/main/java/com/ning/billing/account/dao/IAccountDao.java
+++ b/account/src/main/java/com/ning/billing/account/dao/IAccountDao.java
@@ -20,10 +20,11 @@ import java.util.List;
import java.util.UUID;
import com.ning.billing.account.api.IAccount;
+import com.ning.billing.account.api.IAccountData;
public interface IAccountDao {
- public IAccount createAccount(IAccount account);
+ public IAccount createAccount(IAccountData account);
public IAccount getAccountByKey(String key);
diff --git a/api/src/main/java/com/ning/billing/entitlement/IEntitlementSystem.java b/api/src/main/java/com/ning/billing/entitlement/IEntitlementSystem.java
new file mode 100644
index 0000000..e6528b8
--- /dev/null
+++ b/api/src/main/java/com/ning/billing/entitlement/IEntitlementSystem.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2010-2011 Ning, Inc.
+ *
+ * Ning licenses this file to you under the Apache License, version 2.0
+ * (the "License"); you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.ning.billing.entitlement;
+
+import java.io.InputStream;
+
+public interface IEntitlementSystem {
+
+ public void initialize();
+
+ public void start();
+
+ public void stop();
+}
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/EntitlementUserApi.java b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/EntitlementUserApi.java
index f85dc49..e664566 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/EntitlementUserApi.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/EntitlementUserApi.java
@@ -49,9 +49,9 @@ public class EntitlementUserApi implements IEntitlementUserApi {
private final Engine engine;
private final IClock clock;
private final IEntitlementDao dao;
- private final ICatalog catalog;
private final IPlanAligner planAligner;
+ private ICatalog catalog;
@Inject
public EntitlementUserApi(Engine engine, IClock clock, IPlanAligner planAligner, IEntitlementDao dao) {
super();
@@ -59,11 +59,12 @@ public class EntitlementUserApi implements IEntitlementUserApi {
this.clock = clock;
this.dao = dao;
this.planAligner = planAligner;
- this.catalog = engine.getCatalog();
+
}
@Override
public void initialize(List<IApiListener> listeners) {
+ this.catalog = engine.getCatalog();
engine.registerApiObservers(listeners);
}
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/engine/core/Engine.java b/entitlement/src/main/java/com/ning/billing/entitlement/engine/core/Engine.java
index 2511884..d0e1b02 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/engine/core/Engine.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/engine/core/Engine.java
@@ -28,6 +28,7 @@ import com.ning.billing.catalog.api.ICatalog;
import com.ning.billing.catalog.api.ICatalogUserApi;
import com.ning.billing.catalog.api.IPlan;
+import com.ning.billing.entitlement.IEntitlementSystem;
import com.ning.billing.entitlement.alignment.IPlanAligner;
import com.ning.billing.entitlement.alignment.IPlanAligner.TimedPhase;
import com.ning.billing.entitlement.alignment.PlanAligner;
@@ -44,7 +45,7 @@ import com.ning.billing.entitlement.events.user.IUserEvent;
import com.ning.billing.entitlement.glue.IEntitlementConfig;
import com.ning.billing.util.clock.IClock;
-public class Engine implements IEventListener {
+public class Engine implements IEventListener, IEntitlementSystem {
private final static Logger log = LoggerFactory.getLogger(Engine.class);
private static Engine instance = null;
@@ -75,10 +76,18 @@ public class Engine implements IEventListener {
((PlanAligner) planAligner).init(catalog);
}
+ @Override
+ public void initialize() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
public void start() {
apiEventProcessor.startNotifications(this);
}
+ @Override
public void stop() {
apiEventProcessor.stopNotifications();
}
@@ -172,4 +181,5 @@ public class Engine implements IEventListener {
return planAligner;
}
+
}
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementDao.java b/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementDao.java
index ddeaf00..8dfc34a 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementDao.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementDao.java
@@ -110,7 +110,7 @@ public class EntitlementDao implements IEntitlementDao {
public void updateSubscription(Subscription subscription) {
Date ctd = (subscription.getChargedThroughDate() != null) ? subscription.getChargedThroughDate().toDate() : null;
Date ptd = (subscription.getPaidThroughDate() != null) ? subscription.getPaidThroughDate().toDate() : null;
- subscriptionsDao.updateSubscription(subscription.getActiveVersion(), ctd, ptd);
+ subscriptionsDao.updateSubscription(subscription.getId().toString(), subscription.getActiveVersion(), ctd, ptd);
}
@Override
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/glue/EntitlementModule.java b/entitlement/src/main/java/com/ning/billing/entitlement/glue/EntitlementModule.java
index ec20630..98a675d 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/glue/EntitlementModule.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/glue/EntitlementModule.java
@@ -21,6 +21,7 @@ import org.skife.config.ConfigurationObjectFactory;
import com.google.inject.AbstractModule;
import com.ning.billing.catalog.CatalogUserApi;
import com.ning.billing.catalog.api.ICatalogUserApi;
+import com.ning.billing.entitlement.IEntitlementSystem;
import com.ning.billing.entitlement.alignment.IPlanAligner;
import com.ning.billing.entitlement.alignment.PlanAligner;
import com.ning.billing.entitlement.api.billing.BillingApi;
@@ -65,7 +66,7 @@ public class EntitlementModule extends AbstractModule {
}
protected void installEntitlementCore() {
- bind(Engine.class).asEagerSingleton();
+ bind(IEntitlementSystem.class).to(Engine.class).asEagerSingleton();
bind(IPlanAligner.class).to(PlanAligner.class).asEagerSingleton();
}
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 6842133..0f9806d 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
@@ -21,7 +21,10 @@ import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;
import static org.testng.Assert.assertFalse;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
import java.io.IOException;
+import java.io.InputStream;
import java.lang.reflect.Method;
import java.net.URL;
import java.util.ArrayList;
@@ -45,6 +48,7 @@ import com.ning.billing.catalog.api.ICatalog;
import com.ning.billing.catalog.api.ICatalogUserApi;
import com.ning.billing.catalog.api.IDuration;
import com.ning.billing.catalog.api.TimeUnit;
+import com.ning.billing.entitlement.IEntitlementSystem;
import com.ning.billing.entitlement.api.ApiTestListener;
import com.ning.billing.entitlement.api.ApiTestListener.NextEvent;
import com.ning.billing.entitlement.api.billing.IEntitlementBillingApi;
@@ -65,6 +69,7 @@ public abstract class TestUserApiBase {
protected static final long DAY_IN_MS = (24 * 3600 * 1000);
+ protected IEntitlementSystem service;
protected Engine engine;
protected IEntitlementUserApi entitlementApi;
protected IEntitlementBillingApi billingApi;
@@ -105,6 +110,7 @@ public abstract class TestUserApiBase {
loadSystemPropertiesFromClasspath("/entitlement.properties");
final Injector g = getInjector();
+ service = g.getInstance(IEntitlementSystem.class);
engine = g.getInstance(Engine.class);
entitlementApi = g.getInstance(IEntitlementUserApi.class);
catalogApi = g.getInstance(ICatalogUserApi.class);
@@ -113,6 +119,8 @@ public abstract class TestUserApiBase {
dao = g.getInstance(IEntitlementDao.class);
clock = (ClockMock) g.getInstance(IClock.class);
try {
+
+ service.initialize();
init();
} catch (EntitlementUserApiException e) {
Assert.fail(e.getMessage());
@@ -149,12 +157,12 @@ public abstract class TestUserApiBase {
Assert.fail(e.getMessage());
}
assertNotNull(bundle);
- engine.start();
+ service.start();
}
@AfterMethod(groups={"setup"})
public void cleanupTest() {
- engine.stop();
+ service.stop();
log.warn("DONE WITH TEST\n");
}