Details
diff --git a/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java b/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java
index 813c3a4..b567464 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/api/TestAnalyticsService.java
@@ -157,14 +157,7 @@ public class TestAnalyticsService {
private CatalogService catalogService;
private Catalog catalog;
-
- @BeforeMethod(groups = "slow")
- public void cleanup() throws Exception
- {
- helper.cleanupAllTables();
- }
-
-
+
@BeforeClass(groups = "slow")
public void startMysql() throws IOException, ClassNotFoundException, SQLException, EntitlementUserApiException {
@@ -175,6 +168,8 @@ public class TestAnalyticsService {
// Killbill generic setup
setupBusAndMySQL();
+ helper.cleanupAllTables();
+
tagDao.create(TAG_ONE, context);
tagDao.create(TAG_TWO, context);
@@ -296,35 +291,7 @@ public class TestAnalyticsService {
helper.stopMysql();
}
- // STEPH Test cannot pass, as we never insert things on disk befopre sending events:
- // TODO check with Pierre
- /*
- * SEVERE: Could not dispatch event: com.ning.billing.entitlement.api.user.DefaultSubscriptionEvent@6b67496c to handler [wrapper public void com.ning.billing.analytics.AnalyticsListener.handleSubscriptionTransitionChange(com.ning.billing.entitlement.api.user.SubscriptionEvent) throws com.ning.billing.account.api.AccountApiException,com.ning.billing.entitlement.api.user.EntitlementUserApiException]
-java.lang.reflect.InvocationTargetException
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
- at java.lang.reflect.Method.invoke(Method.java:597)
- at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:68)
- at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
- at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
- at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
- at com.google.common.eventbus.EventBus.post(EventBus.java:264)
- at com.ning.billing.util.bus.PersistentBus.doProcessEvents(PersistentBus.java:205)
- at com.ning.billing.util.bus.PersistentBus.access$200(PersistentBus.java:46)
- at com.ning.billing.util.bus.PersistentBus$2.run(PersistentBus.java:144)
- at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
- at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
- at java.lang.Thread.run(Thread.java:680)
-Caused by: java.lang.IllegalArgumentException: An event must have an key
- at com.ning.billing.analytics.BusinessSubscriptionTransition.<init>(BusinessSubscriptionTransition.java:44)
- at com.ning.billing.analytics.BusinessSubscriptionTransitionRecorder.record(BusinessSubscriptionTransitionRecorder.java:149)
- at com.ning.billing.analytics.BusinessSubscriptionTransitionRecorder.recordTransition(BusinessSubscriptionTransitionRecorder.java:143)
- at com.ning.billing.analytics.BusinessSubscriptionTransitionRecorder.subscriptionCreated(BusinessSubscriptionTransitionRecorder.java:59)
- at com.ning.billing.analytics.AnalyticsListener.handleSubscriptionTransitionChange(AnalyticsListener.java:46)
- ... 15 more
- */
- @Test(groups = "slow", enabled=false)
+ @Test(groups = "slow", enabled=true)
public void testRegisterForNotifications() throws Exception {
// Make sure the service has been instantiated
Assert.assertEquals(service.getName(), "analytics-service");
@@ -340,9 +307,6 @@ Caused by: java.lang.IllegalArgumentException: An event must have an key
// Send events and wait for the async part...
bus.post(transition);
-
- Thread.sleep(5000000);
-
bus.post(accountCreationNotification);
Thread.sleep(5000);
diff --git a/analytics/src/test/java/com/ning/billing/analytics/dao/TestAnalyticsDao.java b/analytics/src/test/java/com/ning/billing/analytics/dao/TestAnalyticsDao.java
index 55aa5d9..3e24a39 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/dao/TestAnalyticsDao.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/dao/TestAnalyticsDao.java
@@ -263,10 +263,8 @@ public class TestAnalyticsDao
Assert.assertEquals(transitions.get(0).getKey(), transition.getKey());
Assert.assertEquals(transitions.get(0).getRequestedTimestamp(), transition.getRequestedTimestamp());
Assert.assertEquals(transitions.get(0).getEvent(), transition.getEvent());
- // Null Plan and Phase doesn't make sense so we turn the subscription into a null
- // STEPH not sure why that fails ?
- //Assert.assertNull(transitions.get(0).getPreviousSubscription());
- //Assert.assertNull(transitions.get(0).getNextSubscription());
+ Assert.assertNull(transitions.get(0).getPreviousSubscription());
+ Assert.assertNull(transitions.get(0).getNextSubscription());
}
@Test(groups = "slow")
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/AccountResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/AccountResource.java
index 18c6dd4..29883f1 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/AccountResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/AccountResource.java
@@ -108,7 +108,6 @@ public class AccountResource implements BaseJaxrsResource {
AccountJson json = new AccountJson(account);
return Response.status(Status.OK).entity(json).build();
} catch (AccountApiException e) {
- log.warn("Failed to find account.", e);
return Response.status(Status.NO_CONTENT).build();
}
@@ -131,7 +130,6 @@ public class AccountResource implements BaseJaxrsResource {
});
return Response.status(Status.OK).entity(result).build();
} catch (AccountApiException e) {
- log.warn("Failed to find account.", e);
return Response.status(Status.NO_CONTENT).build();
}
}
@@ -151,7 +149,6 @@ public class AccountResource implements BaseJaxrsResource {
AccountJson json = new AccountJson(account);
return Response.status(Status.OK).entity(json).build();
} catch (AccountApiException e) {
- log.warn("Failed to find account.", e);
return Response.status(Status.NO_CONTENT).build();
}
}
@@ -242,7 +239,6 @@ public class AccountResource implements BaseJaxrsResource {
AccountTimelineJson json = new AccountTimelineJson(account, invoices, payments, bundlesTimeline);
return Response.status(Status.OK).entity(json).build();
} catch (AccountApiException e) {
- log.warn("Failed to find account.", e);
return Response.status(Status.NO_CONTENT).build();
} catch (EntitlementRepairException e) {
log.error(e.getMessage());
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/SubscriptionResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/SubscriptionResource.java
index 09db7f9..259fe9f 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/SubscriptionResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/SubscriptionResource.java
@@ -74,8 +74,6 @@ public class SubscriptionResource implements BaseJaxrsResource {
private final JaxrsUriBuilder uriBuilder;
private final KillbillEventHandler killbillHandler;
-
-
@Inject
public SubscriptionResource(final JaxrsUriBuilder uriBuilder, final EntitlementUserApi entitlementApi,
final Clock clock, final Context context, final KillbillEventHandler killbillHandler) {
@@ -239,7 +237,6 @@ public class SubscriptionResource implements BaseJaxrsResource {
return Response.status(Status.OK).build();
} catch (EntitlementUserApiException e) {
if(e.getCode() == ErrorCode.ENT_INVALID_SUBSCRIPTION_ID.getCode()) {
- log.info(String.format("Failed to find subscription %s", subscriptionId), e);
return Response.status(Status.NO_CONTENT).build();
} else {
log.info(String.format("Failed to uncancel plan for subscription %s", subscriptionId), e);
@@ -274,7 +271,6 @@ public class SubscriptionResource implements BaseJaxrsResource {
return Response.status(Status.OK).build();
} catch (EntitlementUserApiException e) {
if(e.getCode() == ErrorCode.ENT_INVALID_SUBSCRIPTION_ID.getCode()) {
- log.info(String.format("Failed to find subscription %s", subscriptionId), e);
return Response.status(Status.NO_CONTENT).build();
} else {
throw e;
diff --git a/util/src/main/java/com/ning/billing/util/bus/PersistentBus.java b/util/src/main/java/com/ning/billing/util/bus/PersistentBus.java
index e60c79e..a556028 100644
--- a/util/src/main/java/com/ning/billing/util/bus/PersistentBus.java
+++ b/util/src/main/java/com/ning/billing/util/bus/PersistentBus.java
@@ -16,7 +16,6 @@
package com.ning.billing.util.bus;
-import java.lang.reflect.InvocationTargetException;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -104,7 +103,6 @@ public class PersistentBus implements Bus {
}
-
@Override
public void start() {
@@ -112,8 +110,9 @@ public class PersistentBus implements Bus {
curActiveThreads = 0;
final PersistentBus thePersistentBus = this;
-
final CountDownLatch doneInitialization = new CountDownLatch(NB_BUS_THREADS);
+
+ log.info("Starting Persistent BUS with {} threads, countDownLatch = {}", NB_BUS_THREADS, doneInitialization.getCount());
for (int i = 0; i < NB_BUS_THREADS; i++) {
executor.execute(new Runnable() {
@@ -127,7 +126,7 @@ public class PersistentBus implements Bus {
synchronized(thePersistentBus) {
curActiveThreads++;
}
-
+
doneInitialization.countDown();
try {
@@ -173,7 +172,12 @@ public class PersistentBus implements Bus {
});
}
try {
- doneInitialization.await(TIMEOUT_MSEC, TimeUnit.SECONDS);
+ boolean success = doneInitialization.await(TIMEOUT_MSEC, TimeUnit.MILLISECONDS);
+ if (!success) {
+ log.warn("Failed to wait for all threads to be started, got {}/{}", doneInitialization.getCount(), NB_BUS_THREADS);
+ } else {
+ log.info("Done waiting for all threads to be started, got {}/{}", doneInitialization.getCount(), NB_BUS_THREADS);
+ }
} catch (InterruptedException e) {
log.warn("PersistentBus start sequence got interrupted...");
}
diff --git a/util/src/main/resources/com/ning/billing/util/ddl.sql b/util/src/main/resources/com/ning/billing/util/ddl.sql
index 2162500..9a241a0 100644
--- a/util/src/main/resources/com/ning/billing/util/ddl.sql
+++ b/util/src/main/resources/com/ning/billing/util/ddl.sql
@@ -126,7 +126,7 @@ DROP TABLE IF EXISTS bus_events;
CREATE TABLE bus_events (
id int(11) unsigned NOT NULL AUTO_INCREMENT,
class_name varchar(128) NOT NULL,
- event_json varchar(1024) NOT NULL,
+ event_json varchar(2048) NOT NULL,
created_dt datetime NOT NULL,
processing_owner char(50) DEFAULT NULL,
processing_available_dt datetime DEFAULT NULL,