killbill-memoizeit

Details

diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/SubscriptionResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/SubscriptionResource.java
index 8cefa75..47f1153 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/SubscriptionResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/SubscriptionResource.java
@@ -1,7 +1,7 @@
 /*
  * Copyright 2010-2013 Ning, Inc.
- * Copyright 2014-2015 Groupon, Inc
- * Copyright 2014-2015 The Billing Project, LLC
+ * Copyright 2014-2017 Groupon, Inc
+ * Copyright 2014-2017 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
@@ -71,6 +71,7 @@ import org.killbill.billing.events.BlockingTransitionInternalEvent;
 import org.killbill.billing.events.EffectiveSubscriptionInternalEvent;
 import org.killbill.billing.events.InvoiceCreationInternalEvent;
 import org.killbill.billing.events.InvoicePaymentErrorInternalEvent;
+import org.killbill.billing.events.InvoicePaymentInfoInternalEvent;
 import org.killbill.billing.events.NullInvoiceInternalEvent;
 import org.killbill.billing.events.PaymentErrorInternalEvent;
 import org.killbill.billing.events.PaymentInfoInternalEvent;
@@ -785,6 +786,12 @@ public class SubscriptionResource extends JaxRsResourceBase {
         }
 
         @Override
+        public void onInvoicePaymentInfo(final InvoicePaymentInfoInternalEvent event) {
+            log.info("Got event InvoicePaymentInfo token='{}'", event.getUserToken());
+            notifyForCompletion();
+        }
+
+        @Override
         public void onInvoicePaymentError(final InvoicePaymentErrorInternalEvent event) {
             log.info("Got event InvoicePaymentError token='{}'", event.getUserToken());
             notifyForCompletion();
diff --git a/util/src/main/java/org/killbill/billing/util/userrequest/CompletionUserRequestBase.java b/util/src/main/java/org/killbill/billing/util/userrequest/CompletionUserRequestBase.java
index f48a2e8..81d6575 100644
--- a/util/src/main/java/org/killbill/billing/util/userrequest/CompletionUserRequestBase.java
+++ b/util/src/main/java/org/killbill/billing/util/userrequest/CompletionUserRequestBase.java
@@ -1,7 +1,7 @@
 /*
- * Copyright 2010-2011 Ning, Inc.
- * Copyright 2014 Groupon, Inc
- * Copyright 2014 The Billing Project, LLC
+ * Copyright 2010-2013 Ning, Inc.
+ * Copyright 2014-2017 Groupon, Inc
+ * Copyright 2014-2017 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
@@ -30,6 +30,7 @@ import org.killbill.billing.events.BusInternalEvent;
 import org.killbill.billing.events.EffectiveSubscriptionInternalEvent;
 import org.killbill.billing.events.InvoiceCreationInternalEvent;
 import org.killbill.billing.events.InvoicePaymentErrorInternalEvent;
+import org.killbill.billing.events.InvoicePaymentInfoInternalEvent;
 import org.killbill.billing.events.NullInvoiceInternalEvent;
 import org.killbill.billing.events.PaymentErrorInternalEvent;
 import org.killbill.billing.events.PaymentInfoInternalEvent;
@@ -132,6 +133,9 @@ public class CompletionUserRequestBase implements CompletionUserRequest {
             case PAYMENT_PLUGIN_ERROR:
                 onPaymentPluginError((PaymentPluginErrorInternalEvent) curEvent);
                 break;
+            case INVOICE_PAYMENT_INFO:
+                onInvoicePaymentInfo((InvoicePaymentInfoInternalEvent) curEvent);
+                break;
             case INVOICE_PAYMENT_ERROR:
                 onInvoicePaymentError((InvoicePaymentErrorInternalEvent) curEvent);
                 break;
@@ -178,6 +182,10 @@ public class CompletionUserRequestBase implements CompletionUserRequest {
     }
 
     @Override
+    public void onInvoicePaymentInfo(final InvoicePaymentInfoInternalEvent curEvent) {
+    }
+
+    @Override
     public void onInvoicePaymentError(final InvoicePaymentErrorInternalEvent curEvent) {
     }
 }
diff --git a/util/src/main/java/org/killbill/billing/util/userrequest/CompletionUserRequestWaiter.java b/util/src/main/java/org/killbill/billing/util/userrequest/CompletionUserRequestWaiter.java
index 6876550..827d2ef 100644
--- a/util/src/main/java/org/killbill/billing/util/userrequest/CompletionUserRequestWaiter.java
+++ b/util/src/main/java/org/killbill/billing/util/userrequest/CompletionUserRequestWaiter.java
@@ -1,7 +1,9 @@
 /*
- * Copyright 2010-2011 Ning, Inc.
+ * Copyright 2010-2013 Ning, Inc.
+ * Copyright 2014-2017 Groupon, Inc
+ * Copyright 2014-2017 The Billing Project, LLC
  *
- * Ning licenses this file to you under the Apache License, version 2.0
+ * 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
  * License.  You may obtain a copy of the License at:
  *
@@ -26,6 +28,7 @@ import org.killbill.billing.events.BusInternalEvent;
 import org.killbill.billing.events.EffectiveSubscriptionInternalEvent;
 import org.killbill.billing.events.InvoiceCreationInternalEvent;
 import org.killbill.billing.events.InvoicePaymentErrorInternalEvent;
+import org.killbill.billing.events.InvoicePaymentInfoInternalEvent;
 import org.killbill.billing.events.NullInvoiceInternalEvent;
 import org.killbill.billing.events.PaymentErrorInternalEvent;
 import org.killbill.billing.events.PaymentInfoInternalEvent;
@@ -53,5 +56,7 @@ public interface CompletionUserRequestWaiter {
 
     public void onPaymentPluginError(final PaymentPluginErrorInternalEvent curEvent);
 
+    public void onInvoicePaymentInfo(final InvoicePaymentInfoInternalEvent curEvent);
+
     public void onInvoicePaymentError(final InvoicePaymentErrorInternalEvent curEvent);
 }
diff --git a/util/src/main/java/org/killbill/billing/util/validation/dao/DatabaseSchemaSqlDao.java b/util/src/main/java/org/killbill/billing/util/validation/dao/DatabaseSchemaSqlDao.java
index e9007fb..78e6d0f 100644
--- a/util/src/main/java/org/killbill/billing/util/validation/dao/DatabaseSchemaSqlDao.java
+++ b/util/src/main/java/org/killbill/billing/util/validation/dao/DatabaseSchemaSqlDao.java
@@ -45,8 +45,8 @@ public interface DatabaseSchemaSqlDao {
         public DefaultColumnInfo map(final int index, final ResultSet r, final StatementContext ctx) throws SQLException {
             final String tableName = r.getString("table_name");
             final String columnName = r.getString("column_name");
-            final Integer scale = r.getInt("numeric_scale");
-            final Integer precision = r.getInt("numeric_precision");
+            final Long scale = r.getLong("numeric_scale");
+            final Long precision = r.getLong("numeric_precision");
 
             // Special handling for PostgreSQL - the implementation of AbstractJdbc2ResultSet#getBoolean doesn't support YES/NO
             final String isNullableString = r.getString("is_nullable");
@@ -59,7 +59,7 @@ public interface DatabaseSchemaSqlDao {
                 isNullable = r.getBoolean("is_nullable");
             }
 
-            final Integer maximumLength = r.getInt("character_maximum_length");
+            final Long maximumLength = r.getLong("character_maximum_length");
             final String dataType = r.getString("data_type");
 
             return new DefaultColumnInfo(tableName, columnName, scale, precision, isNullable, maximumLength, dataType);
diff --git a/util/src/main/java/org/killbill/billing/util/validation/DefaultColumnInfo.java b/util/src/main/java/org/killbill/billing/util/validation/DefaultColumnInfo.java
index 243e89a..44e0b5d 100644
--- a/util/src/main/java/org/killbill/billing/util/validation/DefaultColumnInfo.java
+++ b/util/src/main/java/org/killbill/billing/util/validation/DefaultColumnInfo.java
@@ -1,7 +1,9 @@
 /*
- * Copyright 2010-2011 Ning, Inc.
+ * Copyright 2010-2013 Ning, Inc.
+ * Copyright 2014-2017 Groupon, Inc
+ * Copyright 2014-2017 The Billing Project, LLC
  *
- * Ning licenses this file to you under the Apache License, version 2.0
+ * 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
  * License.  You may obtain a copy of the License at:
  *
@@ -22,14 +24,14 @@ public class DefaultColumnInfo implements ColumnInfo {
 
     private final String tableName;
     private final String columnName;
-    private final int scale;
-    private final int precision;
+    private final Long scale;
+    private final Long precision;
     private final boolean isNullable;
-    private final int maximumLength;
+    private final Long maximumLength;
     private final String dataType;
 
-    public DefaultColumnInfo(final String tableName, final String columnName, final int scale, final int precision,
-                             final boolean nullable, final int maximumLength, final String dataType) {
+    public DefaultColumnInfo(final String tableName, final String columnName, final Long scale, final Long precision,
+                             final boolean nullable, final Long maximumLength, final String dataType) {
         this.tableName = tableName;
         this.columnName = columnName;
         this.scale = scale;
@@ -49,11 +51,11 @@ public class DefaultColumnInfo implements ColumnInfo {
         return columnName;
     }
 
-    public int getScale() {
+    public Long getScale() {
         return scale;
     }
 
-    public int getPrecision() {
+    public Long getPrecision() {
         return precision;
     }
 
@@ -61,7 +63,7 @@ public class DefaultColumnInfo implements ColumnInfo {
         return isNullable;
     }
 
-    public int getMaximumLength() {
+    public Long getMaximumLength() {
         return maximumLength;
     }
 
diff --git a/util/src/test/java/org/killbill/billing/util/export/dao/TestCSVExportOutputStream.java b/util/src/test/java/org/killbill/billing/util/export/dao/TestCSVExportOutputStream.java
index 90a96a4..d76554d 100644
--- a/util/src/test/java/org/killbill/billing/util/export/dao/TestCSVExportOutputStream.java
+++ b/util/src/test/java/org/killbill/billing/util/export/dao/TestCSVExportOutputStream.java
@@ -39,9 +39,9 @@ public class TestCSVExportOutputStream extends UtilTestSuiteNoDB {
         final String tableName = UUID.randomUUID().toString();
         out.newTable(tableName,
                      ImmutableList.<ColumnInfo>of(
-                             new DefaultColumnInfo(tableName, "first_name", 0, 0, true, 0, "varchar"),
-                             new DefaultColumnInfo(tableName, "last_name", 0, 0, true, 0, "varchar"),
-                             new DefaultColumnInfo(tableName, "age", 0, 0, true, 0, "tinyint"))
+                             new DefaultColumnInfo(tableName, "first_name", 0L, 0L, true, 0L, "varchar"),
+                             new DefaultColumnInfo(tableName, "last_name", 0L, 0L, true, 0L, "varchar"),
+                             new DefaultColumnInfo(tableName, "age", 0L, 0L, true, 0L, "tinyint"))
                     );
 
         // Write some data
diff --git a/util/src/test/java/org/killbill/billing/util/validation/TestValidationManager.java b/util/src/test/java/org/killbill/billing/util/validation/TestValidationManager.java
index 064a22b..68f8773 100644
--- a/util/src/test/java/org/killbill/billing/util/validation/TestValidationManager.java
+++ b/util/src/test/java/org/killbill/billing/util/validation/TestValidationManager.java
@@ -56,8 +56,8 @@ public class TestValidationManager extends UtilTestSuiteWithEmbeddedDB {
 
         final DefaultColumnInfo numericColumnInfo = vm.getColumnInfo(TABLE_NAME, "column3");
         assertNotNull(numericColumnInfo);
-        assertEquals(numericColumnInfo.getScale(), 4);
-        assertEquals(numericColumnInfo.getPrecision(), 10);
+        assertEquals(numericColumnInfo.getScale(), (Long) 4L);
+        assertEquals(numericColumnInfo.getPrecision(), (Long) 10L);
     }
 
     @Test(groups = "slow")