killbill-aplcache

Merge branch 'integration' of github.com:ning/killbill

2/27/2012 3:42:22 PM

Details

diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBusHandler.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBusHandler.java
index 57a0d6e..edc38a1 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBusHandler.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBusHandler.java
@@ -167,20 +167,22 @@ public class TestBusHandler {
 
     private void assertEqualsNicely(NextEvent received) {
 
-        boolean foundIt = false;
-        Iterator<NextEvent> it = nextExpectedEvent.iterator();
-        while (it.hasNext()) {
-            NextEvent ev = it.next();
-            if (ev == received) {
-                it.remove();
-                foundIt = true;
-                break;
+        synchronized(this) {
+            boolean foundIt = false;
+            Iterator<NextEvent> it = nextExpectedEvent.iterator();
+            while (it.hasNext()) {
+                NextEvent ev = it.next();
+                if (ev == received) {
+                    it.remove();
+                    foundIt = true;
+                    break;
+                }
+            }
+            if (!foundIt) {
+                Joiner joiner = Joiner.on(" ");
+                log.error("TestBusHandler Received event " + received + "; expected " + joiner.join(nextExpectedEvent));
+                Assert.fail();
             }
-        }
-        if (!foundIt) {
-            Joiner joiner = Joiner.on(" ");
-            log.error("TestBusHandler Received event " + received + "; expected " + joiner.join(nextExpectedEvent));
-            Assert.fail();
         }
     }
 }
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
index 3b27fa6..9b475d1 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
@@ -28,13 +28,11 @@ import org.joda.time.DateTime;
 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;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.inject.Inject;
 import com.ning.billing.entitlement.api.billing.EntitlementBillingApi;
-import com.ning.billing.invoice.api.DefaultInvoiceService;
 import com.ning.billing.invoice.api.Invoice;
 import com.ning.billing.invoice.api.InvoiceCreationNotification;
 import com.ning.billing.invoice.api.InvoiceItem;
@@ -42,13 +40,8 @@ import com.ning.billing.invoice.api.InvoicePayment;
 import com.ning.billing.invoice.api.user.DefaultInvoiceCreationNotification;
 import com.ning.billing.invoice.model.FixedPriceInvoiceItem;
 import com.ning.billing.invoice.model.RecurringInvoiceItem;
-import com.ning.billing.invoice.notification.DefaultNextBillingDateNotifier;
 import com.ning.billing.invoice.notification.NextBillingDatePoster;
 import com.ning.billing.util.bus.Bus;
-import com.ning.billing.util.notificationq.NotificationKey;
-import com.ning.billing.util.notificationq.NotificationQueue;
-import com.ning.billing.util.notificationq.NotificationQueueService;
-import com.ning.billing.util.notificationq.NotificationQueueService.NoSuchNotificationQueue;
 
 public class DefaultInvoiceDao implements InvoiceDao {
     private final static Logger log = LoggerFactory.getLogger(DefaultInvoiceDao.class);
@@ -174,17 +167,22 @@ public class DefaultInvoiceDao implements InvoiceDao {
                     List<InvoicePayment> invoicePayments = invoice.getPayments();
                     InvoicePaymentSqlDao invoicePaymentSqlDao = invoiceDao.become(InvoicePaymentSqlDao.class);
                     invoicePaymentSqlDao.batchCreateFromTransaction(invoicePayments);
-
-                    InvoiceCreationNotification event;
-                    event = new DefaultInvoiceCreationNotification(invoice.getId(), invoice.getAccountId(),
-                                                                  invoice.getBalance(), invoice.getCurrency(),
-                                                                  invoice.getInvoiceDate());
-                    eventBus.postFromTransaction(event, invoiceDao);
                 }
 
                 return null;
             }
         });
+
+        // TODO: move this inside the transaction once the bus is persistent
+        InvoiceCreationNotification event;
+        event = new DefaultInvoiceCreationNotification(invoice.getId(), invoice.getAccountId(),
+                                                      invoice.getBalance(), invoice.getCurrency(),
+                                                      invoice.getInvoiceDate());
+        try {
+            eventBus.post(event);
+        } catch (Bus.EventBusException e) {
+            throw new RuntimeException(e);
+        }
     }
 
     @Override