killbill-memoizeit
Changes
pom.xml 1(+1 -0)
Details
diff --git a/analytics/src/test/java/com/ning/billing/analytics/AnalyticsTestModule.java b/analytics/src/test/java/com/ning/billing/analytics/AnalyticsTestModule.java
index 3c3de7e..6ec95b9 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/AnalyticsTestModule.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/AnalyticsTestModule.java
@@ -22,6 +22,7 @@ import com.ning.billing.catalog.glue.CatalogModule;
import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.entitlement.glue.EntitlementModule;
import com.ning.billing.util.glue.EventBusModule;
+import com.ning.billing.util.glue.NotificationQueueModule;
import com.ning.billing.util.glue.TagStoreModule;
import org.skife.jdbi.v2.DBI;
import org.skife.jdbi.v2.IDBI;
@@ -39,6 +40,7 @@ public class AnalyticsTestModule extends AnalyticsModule
install(new EventBusModule());
install(new EntitlementModule());
install(new TagStoreModule());
+ install(new NotificationQueueModule());
// Install the Dao layer
final MysqlTestingHelper helper = new MysqlTestingHelper();
pom.xml 1(+1 -0)
diff --git a/pom.xml b/pom.xml
index 7b8944a..eb22569 100644
--- a/pom.xml
+++ b/pom.xml
@@ -370,6 +370,7 @@
<exclude>**/.project</exclude>
<exclude>.git/**</exclude>
<exclude>.gitignore</exclude>
+ <exclude>ignore/**</exclude>
<exclude>API.txt</exclude>
<exclude>RELEASE.sh</exclude>
<exclude>deploy.sh</exclude>
diff --git a/util/src/main/java/com/ning/billing/util/notificationq/DefaultNotificationQueue.java b/util/src/main/java/com/ning/billing/util/notificationq/DefaultNotificationQueue.java
index 80f7385..16d28b2 100644
--- a/util/src/main/java/com/ning/billing/util/notificationq/DefaultNotificationQueue.java
+++ b/util/src/main/java/com/ning/billing/util/notificationq/DefaultNotificationQueue.java
@@ -23,6 +23,7 @@ import java.util.List;
import org.joda.time.DateTime;
import org.skife.jdbi.v2.DBI;
+import org.skife.jdbi.v2.IDBI;
import org.skife.jdbi.v2.Transaction;
import org.skife.jdbi.v2.TransactionStatus;
import org.skife.jdbi.v2.sqlobject.mixins.Transmogrifier;
@@ -35,7 +36,7 @@ public class DefaultNotificationQueue extends NotificationQueueBase {
protected final NotificationSqlDao dao;
- public DefaultNotificationQueue(final DBI dbi, final Clock clock, final String svcName, final String queueName, final NotificationQueueHandler handler, final NotificationConfig config) {
+ public DefaultNotificationQueue(final IDBI dbi, final Clock clock, final String svcName, final String queueName, final NotificationQueueHandler handler, final NotificationConfig config) {
super(clock, svcName, queueName, handler, config);
this.dao = dbi.onDemand(NotificationSqlDao.class);
}
diff --git a/util/src/main/java/com/ning/billing/util/notificationq/DefaultNotificationQueueService.java b/util/src/main/java/com/ning/billing/util/notificationq/DefaultNotificationQueueService.java
index 5181113..fe18ead 100644
--- a/util/src/main/java/com/ning/billing/util/notificationq/DefaultNotificationQueueService.java
+++ b/util/src/main/java/com/ning/billing/util/notificationq/DefaultNotificationQueueService.java
@@ -16,17 +16,17 @@
package com.ning.billing.util.notificationq;
-import org.skife.jdbi.v2.DBI;
+import org.skife.jdbi.v2.IDBI;
import com.google.inject.Inject;
import com.ning.billing.util.clock.Clock;
public class DefaultNotificationQueueService extends NotificationQueueServiceBase {
- private final DBI dbi;
+ private final IDBI dbi;
@Inject
- public DefaultNotificationQueueService(final DBI dbi, final Clock clock) {
+ public DefaultNotificationQueueService(final IDBI dbi, final Clock clock) {
super(clock);
this.dbi = dbi;
}
diff --git a/util/src/test/java/com/ning/billing/util/notificationq/MockNotificationQueue.java b/util/src/test/java/com/ning/billing/util/notificationq/MockNotificationQueue.java
index 11721c8..b141310 100644
--- a/util/src/test/java/com/ning/billing/util/notificationq/MockNotificationQueue.java
+++ b/util/src/test/java/com/ning/billing/util/notificationq/MockNotificationQueue.java
@@ -63,20 +63,31 @@ public class MockNotificationQueue extends NotificationQueueBase implements Noti
protected void doProcessEvents(int sequenceId) {
List<Notification> processedNotifications = new ArrayList<Notification>();
+ List<Notification> oldNotifications = new ArrayList<Notification>();
+
+ List<Notification> readyNotifications = new ArrayList<Notification>();
synchronized(notifications) {
Iterator<Notification> it = notifications.iterator();
while (it.hasNext()) {
Notification cur = it.next();
if (cur.isAvailableForProcessing(clock.getUTCNow())) {
- handler.handleReadyNotification(cur.getNotificationKey());
- DefaultNotification processedNotification = new DefaultNotification(cur.getId(), hostname, clock.getUTCNow().plus(config.getDaoClaimTimeMs()), NotificationLifecycleState.PROCESSED, cur.getNotificationKey(), cur.getEffectiveDate());
- it.remove();
- processedNotifications.add(processedNotification);
+ readyNotifications.add(cur);
}
}
+ for (Notification cur : readyNotifications) {
+ handler.handleReadyNotification(cur.getNotificationKey());
+ DefaultNotification processedNotification = new DefaultNotification(cur.getId(), hostname, clock.getUTCNow().plus(config.getDaoClaimTimeMs()), NotificationLifecycleState.PROCESSED, cur.getNotificationKey(), cur.getEffectiveDate());
+ oldNotifications.add(cur);
+ processedNotifications.add(processedNotification);
+
+ }
+ if (oldNotifications.size() > 0) {
+ notifications.removeAll(oldNotifications);
+ }
if (processedNotifications.size() > 0) {
notifications.addAll(processedNotifications);
}
}
+
}
}
diff --git a/util/src/test/java/com/ning/billing/util/tag/TagStoreModuleMock.java b/util/src/test/java/com/ning/billing/util/tag/TagStoreModuleMock.java
index 9fc4c78..7bf9572 100644
--- a/util/src/test/java/com/ning/billing/util/tag/TagStoreModuleMock.java
+++ b/util/src/test/java/com/ning/billing/util/tag/TagStoreModuleMock.java
@@ -17,7 +17,9 @@
package com.ning.billing.util.tag;
import java.io.IOException;
+
import org.skife.jdbi.v2.IDBI;
+
import com.ning.billing.dbi.MysqlTestingHelper;
import com.ning.billing.util.glue.TagStoreModule;