killbill-uncached

Add missing external bus events

4/5/2013 3:01:00 PM

Details

diff --git a/api/src/main/java/com/ning/billing/beatrix/bus/api/ExtBusEventType.java b/api/src/main/java/com/ning/billing/beatrix/bus/api/ExtBusEventType.java
index 940e34b..ac4fe08 100644
--- a/api/src/main/java/com/ning/billing/beatrix/bus/api/ExtBusEventType.java
+++ b/api/src/main/java/com/ning/billing/beatrix/bus/api/ExtBusEventType.java
@@ -16,8 +16,9 @@
 package com.ning.billing.beatrix.bus.api;
 
 /**
- * The enum {@code ExtBusEventType} rerpesents the user visible bus event types.
+ * The enum {@code ExtBusEventType} represents the user visible bus event types.
  */
+
 public enum ExtBusEventType {
     ACCOUNT_CREATION,
     ACCOUNT_CHANGE,
@@ -26,6 +27,11 @@ public enum ExtBusEventType {
     SUBSCRIPTION_CANCEL,
     OVERDUE_CHANGE,
     INVOICE_CREATION,
+    INVOICE_ADJUSTMENT,
     PAYMENT_SUCCESS,
-    PAYMENT_FAILED
+    PAYMENT_FAILED,
+    TAG_CREATION,
+    TAG_DELETION,
+    CUSTOM_FIELD_CREATION,
+    CUSTOM_FIELD_DELETION
 }
diff --git a/beatrix/src/main/java/com/ning/billing/beatrix/extbus/BeatrixListener.java b/beatrix/src/main/java/com/ning/billing/beatrix/extbus/BeatrixListener.java
index 2f87e4a..4ffc2bb 100644
--- a/beatrix/src/main/java/com/ning/billing/beatrix/extbus/BeatrixListener.java
+++ b/beatrix/src/main/java/com/ning/billing/beatrix/extbus/BeatrixListener.java
@@ -35,7 +35,16 @@ import com.ning.billing.util.callcontext.UserType;
 import com.ning.billing.util.events.AccountChangeInternalEvent;
 import com.ning.billing.util.events.AccountCreationInternalEvent;
 import com.ning.billing.util.events.BusInternalEvent;
+import com.ning.billing.util.events.ControlTagCreationInternalEvent;
+import com.ning.billing.util.events.ControlTagDeletionInternalEvent;
+import com.ning.billing.util.events.CustomFieldCreationEvent;
+import com.ning.billing.util.events.CustomFieldDeletionEvent;
+import com.ning.billing.util.events.InvoiceAdjustmentInternalEvent;
+import com.ning.billing.util.events.InvoiceCreationInternalEvent;
+import com.ning.billing.util.events.InvoiceInternalEvent;
 import com.ning.billing.util.events.OverdueChangeInternalEvent;
+import com.ning.billing.util.events.PaymentErrorInternalEvent;
+import com.ning.billing.util.events.PaymentInfoInternalEvent;
 import com.ning.billing.util.events.SubscriptionInternalEvent;
 import com.ning.billing.util.svcsapi.bus.InternalBus.EventBusException;
 
@@ -59,24 +68,6 @@ public class BeatrixListener {
 
     @Subscribe
     public void handleAllInternalKillbillEvents(final BusInternalEvent event) {
-        switch(event.getBusEventType()) {
-            case ACCOUNT_CREATE:
-                break;
-            case ACCOUNT_CHANGE:
-                break;
-            case SUBSCRIPTION_TRANSITION:
-                break;
-            case INVOICE_CREATION:
-                break;
-            case PAYMENT_INFO:
-                break;
-            case PAYMENT_ERROR:
-                break;
-            case OVERDUE_CHANGE:
-                break;
-            default:
-                // Ignore for now.
-        }
         final ExtBusEventEntry externalEvent = computeExtBusEventEntryFromBusInternalEvent(event);
         try {
 
@@ -89,6 +80,7 @@ public class BeatrixListener {
         }
     }
 
+
     private ExtBusEventEntry computeExtBusEventEntryFromBusInternalEvent(final BusInternalEvent event) {
 
         ObjectType objectType  = null;
@@ -122,14 +114,36 @@ public class BeatrixListener {
             } else if (realEventST.getTransitionType() == SubscriptionTransitionType.CHANGE) {
                 eventBusType = ExtBusEventType.SUBSCRIPTION_CHANGE;
             }
-
             break;
+
         case INVOICE_CREATION:
+            InvoiceCreationInternalEvent realEventInv = (InvoiceCreationInternalEvent) event;
+            objectType = ObjectType.INVOICE;
+            objectId = realEventInv.getInvoiceId();
+            eventBusType = ExtBusEventType.INVOICE_CREATION;
+            break;
+
+        case INVOICE_ADJUSTMENT:
+            InvoiceAdjustmentInternalEvent realEventInvAdj = (InvoiceAdjustmentInternalEvent) event;
+            objectType = ObjectType.INVOICE;
+            objectId = realEventInvAdj.getInvoiceId();
+            eventBusType = ExtBusEventType.INVOICE_ADJUSTMENT;
             break;
+
         case PAYMENT_INFO:
+            PaymentInfoInternalEvent realEventPay = (PaymentInfoInternalEvent) event;
+            objectType = ObjectType.PAYMENT;
+            objectId = realEventPay.getPaymentId();
+            eventBusType = ExtBusEventType.PAYMENT_SUCCESS;
             break;
+
         case PAYMENT_ERROR:
+            PaymentErrorInternalEvent realEventPayErr = (PaymentErrorInternalEvent) event;
+            objectType = ObjectType.PAYMENT;
+            objectId = realEventPayErr.getPaymentId();
+            eventBusType = ExtBusEventType.PAYMENT_FAILED;
             break;
+
         case OVERDUE_CHANGE:
             OverdueChangeInternalEvent realEventOC = (OverdueChangeInternalEvent) event;
             // TODO When Killbil supports more than overdue for bundle, this will break...
@@ -137,6 +151,37 @@ public class BeatrixListener {
             objectId = realEventOC.getOverdueObjectId();
             eventBusType = ExtBusEventType.OVERDUE_CHANGE;
             break;
+
+       case USER_TAG_CREATION:
+       case CONTROL_TAG_CREATION:
+           ControlTagCreationInternalEvent realTagEventCr = (ControlTagCreationInternalEvent) event;
+           objectType = ObjectType.TAG;
+           objectId = realTagEventCr.getTagId();
+           eventBusType = ExtBusEventType.TAG_CREATION;
+            break;
+
+       case USER_TAG_DELETION:
+       case CONTROL_TAG_DELETION:
+           ControlTagDeletionInternalEvent realTagEventDel = (ControlTagDeletionInternalEvent) event;
+           objectType = ObjectType.TAG;
+           objectId = realTagEventDel.getTagId();
+           eventBusType = ExtBusEventType.TAG_DELETION;
+           break;
+
+       case CUSTOM_FIELD_CREATION:
+           CustomFieldCreationEvent realCustomEveventCr = (CustomFieldCreationEvent) event;
+           objectType = ObjectType.CUSTOM_FIELD;
+           objectId = realCustomEveventCr.getCustomFieldId();
+           eventBusType = ExtBusEventType.CUSTOM_FIELD_CREATION;
+           break;
+
+       case CUSTOM_FIELD_DELETION:
+           CustomFieldDeletionEvent realCustomEveventDel = (CustomFieldDeletionEvent) event;
+           objectType = ObjectType.CUSTOM_FIELD;
+           objectId = realCustomEveventDel.getCustomFieldId();
+           eventBusType = ExtBusEventType.CUSTOM_FIELD_DELETION;
+           break;
+
         default:
         }
         return eventBusType != null ?