killbill-memoizeit

Merge branch 'work-for-release-0.19.x' of github.com:killbill/killbill

2/21/2018 4:32:08 PM

Details

account/pom.xml 2(+1 -1)

diff --git a/account/pom.xml b/account/pom.xml
index a4f8c17..696355e 100644
--- a/account/pom.xml
+++ b/account/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <artifactId>killbill</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.19.3-SNAPSHOT</version>
+        <version>0.19.4-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>killbill-account</artifactId>

api/pom.xml 2(+1 -1)

diff --git a/api/pom.xml b/api/pom.xml
index e96dd58..bda9e6d 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <artifactId>killbill</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.19.3-SNAPSHOT</version>
+        <version>0.19.4-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>killbill-internal-api</artifactId>

beatrix/pom.xml 2(+1 -1)

diff --git a/beatrix/pom.xml b/beatrix/pom.xml
index f49d2e3..3e167cf 100644
--- a/beatrix/pom.xml
+++ b/beatrix/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <artifactId>killbill</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.19.3-SNAPSHOT</version>
+        <version>0.19.4-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>killbill-beatrix</artifactId>

catalog/pom.xml 2(+1 -1)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index 3a18e32..2fdbd1a 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <artifactId>killbill</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.19.3-SNAPSHOT</version>
+        <version>0.19.4-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>killbill-catalog</artifactId>

currency/pom.xml 2(+1 -1)

diff --git a/currency/pom.xml b/currency/pom.xml
index 7eeba61..53f0d55 100644
--- a/currency/pom.xml
+++ b/currency/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <artifactId>killbill</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.19.3-SNAPSHOT</version>
+        <version>0.19.4-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>killbill-currency</artifactId>
diff --git a/entitlement/pom.xml b/entitlement/pom.xml
index ac0f627..4983880 100644
--- a/entitlement/pom.xml
+++ b/entitlement/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <artifactId>killbill</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.19.3-SNAPSHOT</version>
+        <version>0.19.4-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>killbill-entitlement</artifactId>

invoice/pom.xml 2(+1 -1)

diff --git a/invoice/pom.xml b/invoice/pom.xml
index 6d2bfe1..bd22931 100644
--- a/invoice/pom.xml
+++ b/invoice/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <artifactId>killbill</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.19.3-SNAPSHOT</version>
+        <version>0.19.4-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>killbill-invoice</artifactId>

jaxrs/pom.xml 2(+1 -1)

diff --git a/jaxrs/pom.xml b/jaxrs/pom.xml
index 5d8b159..f1ea5ee 100644
--- a/jaxrs/pom.xml
+++ b/jaxrs/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>killbill</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.19.3-SNAPSHOT</version>
+        <version>0.19.4-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>killbill-jaxrs</artifactId>

junction/pom.xml 2(+1 -1)

diff --git a/junction/pom.xml b/junction/pom.xml
index d6aa036..17d22cd 100644
--- a/junction/pom.xml
+++ b/junction/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <artifactId>killbill</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.19.3-SNAPSHOT</version>
+        <version>0.19.4-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>killbill-junction</artifactId>

NEWS 12(+12 -0)

diff --git a/NEWS b/NEWS
index 1be25b9..5350c99 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,12 @@
+0.19.3
+    Fix issue with tag idempotency. Fixes #857
+    Fix JDBC connection leak in pagination API. Fixes #853
+    Fix limitation where catalog plan name cannot end with an number. Fixes #842
+    Reduce log level of InvoiceItemGeneratorLogger. Fixes #851
+    Usage detail/aggregate mode. Fixes #839 
+    Add metadata detail field to external charges. Fixes #843
+    Add ability to void invoices. Fixes #833
+
 0.19.2
     Fix issue with STANDALONE plans (#840)
     Fix connection leak (#558)
@@ -5,6 +14,9 @@
     Fix missing Invoice Notification when we have future billing events (#846)
     Reduce log level of InvoiceItemGeneratorLogger (#851)
 
+0.18.18
+    See https://github.com/killbill/killbill/releases/tag/killbill-0.18.18
+
 0.18.17
     Relax sanity checks for STANDALONE subscriptions #840
     Fix JDBC connection leak in pagination API #853

overdue/pom.xml 2(+1 -1)

diff --git a/overdue/pom.xml b/overdue/pom.xml
index d9807da..88191cf 100644
--- a/overdue/pom.xml
+++ b/overdue/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <artifactId>killbill</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.19.3-SNAPSHOT</version>
+        <version>0.19.4-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>killbill-overdue</artifactId>

payment/pom.xml 2(+1 -1)

diff --git a/payment/pom.xml b/payment/pom.xml
index a7f8504..1b75542 100644
--- a/payment/pom.xml
+++ b/payment/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <artifactId>killbill</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.19.3-SNAPSHOT</version>
+        <version>0.19.4-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>killbill-payment</artifactId>

pom.xml 4(+2 -2)

diff --git a/pom.xml b/pom.xml
index d86685d..e4dee05 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,10 +21,10 @@
     <parent>
         <artifactId>killbill-oss-parent</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.141.33</version>
+        <version>0.141.34</version>
     </parent>
     <artifactId>killbill</artifactId>
-    <version>0.19.3-SNAPSHOT</version>
+    <version>0.19.4-SNAPSHOT</version>
     <packaging>pom</packaging>
     <name>killbill</name>
     <description>Library for managing recurring subscriptions and the associated billing</description>
diff --git a/profiles/killbill/pom.xml b/profiles/killbill/pom.xml
index 220dfb6..4ddc355 100644
--- a/profiles/killbill/pom.xml
+++ b/profiles/killbill/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>killbill-profiles</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.19.3-SNAPSHOT</version>
+        <version>0.19.4-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>killbill-profiles-killbill</artifactId>
diff --git a/profiles/killbill/src/main/java/org/killbill/billing/server/listeners/CleanupListener.java b/profiles/killbill/src/main/java/org/killbill/billing/server/listeners/CleanupListener.java
index d79edbe..d393cb8 100644
--- a/profiles/killbill/src/main/java/org/killbill/billing/server/listeners/CleanupListener.java
+++ b/profiles/killbill/src/main/java/org/killbill/billing/server/listeners/CleanupListener.java
@@ -53,7 +53,8 @@ public class CleanupListener implements ServletContextListener {
         // See https://mariadb.atlassian.net/browse/CONJ-61
         try {
             Class.forName("org.mariadb.jdbc.Driver");
-            org.mariadb.jdbc.Driver.unloadDriver();
+            // Removed by https://github.com/MariaDB/mariadb-connector-j/commit/ff91ae0bb4f5c49beaba7475b76883b426a51cd4#diff-7d2a758f3b306f512cd12ad68eeb0137
+            //org.mariadb.jdbc.Driver.unloadDriver();
         } catch (final ClassNotFoundException ignored) {
             // MariaDB driver not used
         }
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestEntitlement.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestEntitlement.java
index 50e27ca..899ca00 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestEntitlement.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestEntitlement.java
@@ -1,7 +1,7 @@
 /*
  * Copyright 2010-2013 Ning, Inc.
- * Copyright 2014-2017 Groupon, Inc
- * Copyright 2014-2017 The Billing Project, LLC
+ * Copyright 2014-2018 Groupon, Inc
+ * Copyright 2014-2018 The Billing Project, LLC
  *
  * The Billing Project 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
@@ -27,6 +27,7 @@ import java.util.regex.Pattern;
 import org.joda.time.DateTime;
 import org.joda.time.Interval;
 import org.joda.time.LocalDate;
+import org.killbill.billing.api.FlakyRetryAnalyzer;
 import org.killbill.billing.catalog.DefaultPriceListSet;
 import org.killbill.billing.catalog.api.BillingActionPolicy;
 import org.killbill.billing.catalog.api.BillingPeriod;
@@ -392,7 +393,8 @@ public class TestEntitlement extends TestJaxrsBase {
         assertEquals(killBillClient.getInvoiceTags(invoicesAfterClose.get(0).getInvoiceId(), requestOptions).size(), 1);
     }
 
-    @Test(groups = "slow", description = "Create a bulk of base entitlement and addOns under the same transaction")
+    // Flaky, see https://github.com/killbill/killbill/issues/860
+    @Test(groups = "slow", description = "Create a bulk of base entitlement and addOns under the same transaction", retryAnalyzer = FlakyRetryAnalyzer.class)
     public void testCreateEntitlementsWithAddOnsThenCloseAccountWithItemAdjustment() throws Exception {
         final DateTime initialDate = new DateTime(2012, 4, 25, 0, 3, 42, 0);
         clock.setDeltaFromReality(initialDate.getMillis() - clock.getUTCNow().getMillis());
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoiceVoid.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoiceVoid.java
index 9d85e84..ed56795 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoiceVoid.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoiceVoid.java
@@ -24,6 +24,7 @@ import java.util.UUID;
 import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
 import org.joda.time.LocalDate;
+import org.killbill.billing.api.FlakyRetryAnalyzer;
 import org.killbill.billing.catalog.api.BillingPeriod;
 import org.killbill.billing.catalog.api.ProductCategory;
 import org.killbill.billing.client.KillBillClientException;
@@ -146,8 +147,8 @@ public class TestInvoiceVoid extends TestJaxrsBase {
 
     }
 
-
-    @Test(groups = "slow", description = "Void a child invoice")
+    // Flaky, see https://github.com/killbill/killbill/issues/860
+    @Test(groups = "slow", description = "Void a child invoice", retryAnalyzer = FlakyRetryAnalyzer.class)
     public void testChildVoidInvoice() throws Exception {
         final DateTime initialDate = new DateTime(2012, 4, 25, 0, 3, 42, 0);
         final LocalDate triggeredDate = new LocalDate(2012, 5, 26);
@@ -187,7 +188,8 @@ public class TestInvoiceVoid extends TestJaxrsBase {
         assertEquals(child1Invoices.size(), 2);
     }
 
-    @Test(groups = "slow", description = "Void a parent invoice")
+    // Flaky, see https://github.com/killbill/killbill/issues/860
+    @Test(groups = "slow", description = "Void a parent invoice", retryAnalyzer = FlakyRetryAnalyzer.class)
     public void testParentVoidInvoice() throws Exception {
         final DateTime initialDate = new DateTime(2012, 4, 25, 0, 3, 42, 0);
         final LocalDate triggeredDate = new LocalDate(2012, 5, 26);
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestJaxrsBase.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestJaxrsBase.java
index 01cc712..83e3d47 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestJaxrsBase.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestJaxrsBase.java
@@ -1,7 +1,7 @@
 /*
  * Copyright 2010-2013 Ning, Inc.
- * Copyright 2014-2017 Groupon, Inc
- * Copyright 2014-2017 The Billing Project, LLC
+ * Copyright 2014-2018 Groupon, Inc
+ * Copyright 2014-2018 The Billing Project, LLC
  *
  * The Billing Project 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
@@ -60,6 +60,7 @@ import org.killbill.billing.util.config.definition.PaymentConfig;
 import org.killbill.billing.util.config.definition.SecurityConfig;
 import org.killbill.bus.api.PersistentBus;
 import org.killbill.commons.jdbi.guice.DaoConfig;
+import org.killbill.notificationq.api.NotificationQueueService;
 import org.skife.config.ConfigurationObjectFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -105,6 +106,9 @@ public class TestJaxrsBase extends KillbillClient {
     protected TestApiListener busHandler;
 
     @Inject
+    protected NotificationQueueService notificationQueueService;
+
+    @Inject
     @Named(KillbillServerModule.SHIRO_DATA_SOURCE_ID)
     protected DataSource shiroDataSource;
 
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPushNotification.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPushNotification.java
index 5c53689..17cae7a 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPushNotification.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPushNotification.java
@@ -21,23 +21,37 @@ package org.killbill.billing.jaxrs;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.util.UUID;
+import java.util.concurrent.Callable;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicReference;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.awaitility.Awaitility;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.servlet.ServletContextHandler;
 import org.eclipse.jetty.servlet.ServletHolder;
+import org.joda.time.DateTime;
+import org.killbill.CreatorName;
 import org.killbill.billing.api.FlakyRetryAnalyzer;
 import org.killbill.billing.client.KillBillClientException;
 import org.killbill.billing.client.model.TenantKey;
 import org.killbill.billing.jaxrs.json.NotificationJson;
 import org.killbill.billing.notification.plugin.api.ExtBusEventType;
+import org.killbill.billing.server.DefaultServerService;
+import org.killbill.billing.server.notifications.PushNotificationKey;
 import org.killbill.billing.server.notifications.PushNotificationListener;
 import org.killbill.billing.tenant.api.TenantKV;
+import org.killbill.notificationq.NotificationQueueDispatcher;
+import org.killbill.notificationq.api.NotificationEvent;
+import org.killbill.notificationq.api.NotificationQueue;
+import org.killbill.notificationq.api.NotificationQueueService.NotificationQueueHandler;
+import org.killbill.notificationq.dao.NotificationEventModelDao;
+import org.killbill.queue.QueueObjectMapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testng.Assert;
@@ -45,6 +59,8 @@ import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.io.CharStreams;
 
@@ -126,6 +142,72 @@ public class TestPushNotification extends TestJaxrsBase {
         unregisterTenantForCallback(callback);
     }
 
+    @Test(groups = "slow", description = "https://github.com/killbill/killbill/issues/726")
+    public void testVerify726Backport() throws Exception {
+        // Record an event without the metadata field
+        final PushNotificationKeyPre726 key = new PushNotificationKeyPre726(UUID.randomUUID(),
+                                                                            UUID.randomUUID(),
+                                                                            UUID.randomUUID().toString(),
+                                                                            UUID.randomUUID().toString(),
+                                                                            UUID.randomUUID(),
+                                                                            1,
+                                                                            UUID.randomUUID().toString());
+        final String eventJson = QueueObjectMapper.get().writeValueAsString(key);
+        // Need to serialize it manually, to reflect the correct class name
+        final NotificationEventModelDao notificationEventModelDao = new NotificationEventModelDao(CreatorName.get(),
+                                                                                                  clock.getUTCNow(),
+                                                                                                  PushNotificationKey.class.getName(),
+                                                                                                  eventJson,
+                                                                                                  UUID.randomUUID(),
+                                                                                                  internalCallContext.getAccountRecordId(),
+                                                                                                  internalCallContext.getTenantRecordId(),
+                                                                                                  UUID.randomUUID(),
+                                                                                                  clock.getUTCNow(),
+                                                                                                  DefaultServerService.SERVER_SERVICE + ":testVerify726Backport");
+
+        final AtomicReference<PushNotificationKey> notification = new AtomicReference<PushNotificationKey>();
+        // Need to create a custom queue to extract the deserialized event
+        final NotificationQueue notificationQueue = notificationQueueService.createNotificationQueue(DefaultServerService.SERVER_SERVICE,
+                                                                                                     "testVerify726Backport",
+                                                                                                     new NotificationQueueHandler() {
+                                                                                                         @Override
+                                                                                                         public void handleReadyNotification(final NotificationEvent notificationKey, final DateTime eventDateTime, final UUID userToken, final Long accountRecordId, final Long tenantRecordId) {
+                                                                                                             if (!(notificationKey instanceof PushNotificationKey)) {
+                                                                                                                 Assert.fail();
+                                                                                                                 return;
+                                                                                                             }
+                                                                                                             final PushNotificationKey key = (PushNotificationKey) notificationKey;
+                                                                                                             notification.set(key);
+                                                                                                         }
+                                                                                                     }
+                                                                                                    );
+        try {
+            notificationQueue.startQueue();
+            ((NotificationQueueDispatcher) notificationQueueService).getDao().insertEntry(notificationEventModelDao);
+            Awaitility.await()
+                      .atMost(10, TimeUnit.SECONDS)
+                      .until(new Callable<Boolean>() {
+                          @Override
+                          public Boolean call() {
+                              return notification.get() != null;
+                          }
+                      });
+        } finally {
+            notificationQueue.stopQueue();
+        }
+
+        final PushNotificationKey retrievedKey = notification.get();
+        Assert.assertEquals(retrievedKey.getTenantId(), key.tenantId);
+        Assert.assertEquals(retrievedKey.getAccountId(), key.accountId);
+        Assert.assertEquals(retrievedKey.getEventType(), key.eventType);
+        Assert.assertEquals(retrievedKey.getObjectType(), key.objectType);
+        Assert.assertEquals(retrievedKey.getObjectId(), key.objectId);
+        Assert.assertEquals(retrievedKey.getAttemptNumber(), (Integer) key.attemptNumber);
+        Assert.assertEquals(retrievedKey.getUrl(), key.url);
+        // New NULL field
+        Assert.assertNull(retrievedKey.getMetaData());
+    }
+
     private void unregisterTenantForCallback(final String callback) throws KillBillClientException {
         final TenantKey result = killBillClient.getCallbackNotificationForTenant(requestOptions);
         Assert.assertEquals(result.getKey(), TenantKV.TenantKey.PUSH_NOTIFICATION_CB.toString());
@@ -377,6 +459,33 @@ public class TestPushNotification extends TestJaxrsBase {
                 test.setCompleted(withError);
             }
         }
+    }
 
+    public static final class PushNotificationKeyPre726 implements NotificationEvent {
+
+        public UUID tenantId;
+        public UUID accountId;
+        public String eventType;
+        public String objectType;
+        public UUID objectId;
+        public int attemptNumber;
+        public String url;
+
+        @JsonCreator
+        public PushNotificationKeyPre726(@JsonProperty("tenantId") final UUID tenantId,
+                                         @JsonProperty("accountId") final UUID accountId,
+                                         @JsonProperty("eventType") final String eventType,
+                                         @JsonProperty("objectType") final String objectType,
+                                         @JsonProperty("objectId") final UUID objectId,
+                                         @JsonProperty("attemptNumber") final int attemptNumber,
+                                         @JsonProperty("url") final String url) {
+            this.tenantId = tenantId;
+            this.accountId = accountId;
+            this.eventType = eventType;
+            this.objectType = objectType;
+            this.objectId = objectId;
+            this.attemptNumber = attemptNumber;
+            this.url = url;
+        }
     }
 }
diff --git a/profiles/killpay/pom.xml b/profiles/killpay/pom.xml
index 2149fa1..e167bac 100644
--- a/profiles/killpay/pom.xml
+++ b/profiles/killpay/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>killbill-profiles</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.19.3-SNAPSHOT</version>
+        <version>0.19.4-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>killbill-profiles-killpay</artifactId>

profiles/pom.xml 2(+1 -1)

diff --git a/profiles/pom.xml b/profiles/pom.xml
index 4cde946..493b06b 100644
--- a/profiles/pom.xml
+++ b/profiles/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <artifactId>killbill</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.19.3-SNAPSHOT</version>
+        <version>0.19.4-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>killbill-profiles</artifactId>
diff --git a/subscription/pom.xml b/subscription/pom.xml
index b5f562c..259f3c5 100644
--- a/subscription/pom.xml
+++ b/subscription/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <artifactId>killbill</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.19.3-SNAPSHOT</version>
+        <version>0.19.4-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>killbill-subscription</artifactId>

tenant/pom.xml 2(+1 -1)

diff --git a/tenant/pom.xml b/tenant/pom.xml
index 00eab18..16b0d58 100644
--- a/tenant/pom.xml
+++ b/tenant/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <artifactId>killbill</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.19.3-SNAPSHOT</version>
+        <version>0.19.4-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>killbill-tenant</artifactId>

usage/pom.xml 2(+1 -1)

diff --git a/usage/pom.xml b/usage/pom.xml
index 3f4caca..66b582b 100644
--- a/usage/pom.xml
+++ b/usage/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <artifactId>killbill</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.19.3-SNAPSHOT</version>
+        <version>0.19.4-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>killbill-usage</artifactId>

util/pom.xml 2(+1 -1)

diff --git a/util/pom.xml b/util/pom.xml
index dd2a99b..8e81ddb 100644
--- a/util/pom.xml
+++ b/util/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>killbill</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.19.3-SNAPSHOT</version>
+        <version>0.19.4-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>killbill-util</artifactId>