killbill-memoizeit

Merge remote-tracking branch 'origin/work-for-release-0.17.x'

7/1/2016 11:03:20 PM

Details

diff --git a/invoice/src/main/java/org/killbill/billing/invoice/config/MultiTenantInvoiceConfig.java b/invoice/src/main/java/org/killbill/billing/invoice/config/MultiTenantInvoiceConfig.java
index 9ab5ba3..65f339f 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/config/MultiTenantInvoiceConfig.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/config/MultiTenantInvoiceConfig.java
@@ -40,14 +40,23 @@ public class MultiTenantInvoiceConfig extends MultiTenantConfigBase implements I
     }
 
     @Override
-    public int getNumberOfMonthsInFuture(final InternalTenantContext tenantContext) {
+    public int getNumberOfMonthsInFuture() {
+        return staticConfig.getNumberOfMonthsInFuture();
+    }
 
+    @Override
+    public int getNumberOfMonthsInFuture(final InternalTenantContext tenantContext) {
         final Method method = new Object(){}.getClass().getEnclosingMethod();
         final String result = getStringTenantConfig(method.getName(), tenantContext);
         if (result != null) {
             return Integer.parseInt(result);
         }
-        return staticConfig.getNumberOfMonthsInFuture(tenantContext);
+        return getNumberOfMonthsInFuture();
+    }
+
+    @Override
+    public TimeSpan getDryRunNotificationSchedule() {
+        return staticConfig.getDryRunNotificationSchedule();
     }
 
     @Override
@@ -57,7 +66,12 @@ public class MultiTenantInvoiceConfig extends MultiTenantConfigBase implements I
         if (result != null) {
             return new TimeSpan(result);
         }
-        return staticConfig.getDryRunNotificationSchedule(tenantContext);
+        return getDryRunNotificationSchedule();
+    }
+
+    @Override
+    public int getMaxRawUsagePreviousPeriod() {
+        return staticConfig.getMaxRawUsagePreviousPeriod();
     }
 
     @Override
@@ -67,7 +81,7 @@ public class MultiTenantInvoiceConfig extends MultiTenantConfigBase implements I
         if (result != null) {
             return Integer.parseInt(result);
         }
-        return staticConfig.getMaxRawUsagePreviousPeriod(tenantContext);
+        return getMaxRawUsagePreviousPeriod();
     }
 
     @Override
diff --git a/invoice/src/test/java/org/killbill/billing/invoice/generator/TestDefaultInvoiceGenerator.java b/invoice/src/test/java/org/killbill/billing/invoice/generator/TestDefaultInvoiceGenerator.java
index 358a78a..8c9c8c5 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/generator/TestDefaultInvoiceGenerator.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/generator/TestDefaultInvoiceGenerator.java
@@ -110,27 +110,43 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
         super.beforeClass();
         final Clock clock = new DefaultClock();
         final InvoiceConfig invoiceConfig = new InvoiceConfig() {
+
             @Override
-            public int getNumberOfMonthsInFuture(final InternalTenantContext context) {
+            public int getNumberOfMonthsInFuture() {
                 return 36;
             }
 
             @Override
+            public int getNumberOfMonthsInFuture(final InternalTenantContext context) {
+                return getNumberOfMonthsInFuture();
+            }
+
+            @Override
             public boolean isEmailNotificationsEnabled() {
                 return false;
             }
 
             @Override
-            public TimeSpan getDryRunNotificationSchedule(final InternalTenantContext context) {
+            public TimeSpan getDryRunNotificationSchedule() {
                 return new TimeSpan("0s");
             }
 
             @Override
-            public int getMaxRawUsagePreviousPeriod(final InternalTenantContext context) {
+            public TimeSpan getDryRunNotificationSchedule(final InternalTenantContext context) {
+                return getDryRunNotificationSchedule();
+            }
+
+            @Override
+            public int getMaxRawUsagePreviousPeriod() {
                 return -1;
             }
 
             @Override
+            public int getMaxRawUsagePreviousPeriod(final InternalTenantContext context) {
+                return getMaxRawUsagePreviousPeriod();
+            }
+
+            @Override
             public int getMaxGlobalLockRetries() {
                 return 10;
             }
diff --git a/payment/src/main/java/org/killbill/billing/payment/config/MultiTenantPaymentConfig.java b/payment/src/main/java/org/killbill/billing/payment/config/MultiTenantPaymentConfig.java
index 2c0e421..bbf365f 100644
--- a/payment/src/main/java/org/killbill/billing/payment/config/MultiTenantPaymentConfig.java
+++ b/payment/src/main/java/org/killbill/billing/payment/config/MultiTenantPaymentConfig.java
@@ -42,6 +42,11 @@ public class MultiTenantPaymentConfig extends MultiTenantConfigBase implements P
     }
 
     @Override
+    public List<Integer> getPaymentFailureRetryDays() {
+        return staticConfig.getPaymentFailureRetryDays();
+    }
+
+    @Override
     public List<Integer> getPaymentFailureRetryDays(@Param("dummy") final InternalTenantContext tenantContext) {
         // There is no good way to achieve that in java; this solution is expensive (we could consider hardcoding the method name each time instead)
         final Method method = new Object() {}.getClass().getEnclosingMethod();
@@ -49,7 +54,12 @@ public class MultiTenantPaymentConfig extends MultiTenantConfigBase implements P
         if (result != null) {
             return convertToListInteger(result, method.getName());
         }
-        return staticConfig.getPaymentFailureRetryDays(tenantContext);
+        return getPaymentFailureRetryDays();
+    }
+
+    @Override
+    public int getPluginFailureInitialRetryInSec() {
+        return staticConfig.getPluginFailureInitialRetryInSec();
     }
 
     @Override
@@ -59,7 +69,12 @@ public class MultiTenantPaymentConfig extends MultiTenantConfigBase implements P
         if (result != null) {
             return Integer.parseInt(result);
         }
-        return staticConfig.getPluginFailureInitialRetryInSec(tenantContext);
+        return getPluginFailureInitialRetryInSec();
+    }
+
+    @Override
+    public int getPluginFailureRetryMultiplier() {
+        return staticConfig.getPluginFailureRetryMultiplier();
     }
 
     @Override
@@ -70,7 +85,12 @@ public class MultiTenantPaymentConfig extends MultiTenantConfigBase implements P
         if (result != null) {
             return Integer.parseInt(result);
         }
-        return staticConfig.getPluginFailureRetryMultiplier(tenantContext);
+        return getPluginFailureRetryMultiplier();
+    }
+
+    @Override
+    public List<TimeSpan> getIncompleteTransactionsRetries() {
+        return staticConfig.getIncompleteTransactionsRetries();
     }
 
     @Override
@@ -81,31 +101,39 @@ public class MultiTenantPaymentConfig extends MultiTenantConfigBase implements P
         if (result != null) {
             return convertToListTimeSpan(result, method.getName());
         }
-        return staticConfig.getIncompleteTransactionsRetries(tenantContext);
+        return getIncompleteTransactionsRetries();
     }
 
     @Override
-    public int getPluginFailureRetryMaxAttempts(@Param("dummy") final InternalTenantContext tenantContext) {
+    public int getPluginFailureRetryMaxAttempts() {
+        return staticConfig.getPluginFailureRetryMaxAttempts();
+    }
 
+    @Override
+    public int getPluginFailureRetryMaxAttempts(@Param("dummy") final InternalTenantContext tenantContext) {
         final Method method = new Object() {}.getClass().getEnclosingMethod();
 
         final String result = getStringTenantConfig(method.getName(), tenantContext);
         if (result != null) {
             return Integer.parseInt(result);
         }
-        return staticConfig.getPluginFailureRetryMaxAttempts(tenantContext);
+        return getPluginFailureRetryMaxAttempts();
     }
 
     @Override
-    public List<String> getPaymentControlPluginNames(@Param("dummy") final InternalTenantContext tenantContext) {
+    public List<String> getPaymentControlPluginNames() {
+        return staticConfig.getPaymentControlPluginNames();
+    }
 
+    @Override
+    public List<String> getPaymentControlPluginNames(@Param("dummy") final InternalTenantContext tenantContext) {
         final Method method = new Object() {}.getClass().getEnclosingMethod();
 
         final String result = getStringTenantConfig(method.getName(), tenantContext);
         if (result != null) {
             return convertToListString(result, method.getName());
         }
-        return staticConfig.getPaymentControlPluginNames(tenantContext);
+        return getPaymentControlPluginNames();
     }
 
     @Override
@@ -146,5 +174,4 @@ public class MultiTenantPaymentConfig extends MultiTenantConfigBase implements P
             throw new RuntimeException(e);
         }
     }
-
 }
diff --git a/util/src/main/java/org/killbill/billing/util/config/definition/InvoiceConfig.java b/util/src/main/java/org/killbill/billing/util/config/definition/InvoiceConfig.java
index 7fda63b..5e05cad 100644
--- a/util/src/main/java/org/killbill/billing/util/config/definition/InvoiceConfig.java
+++ b/util/src/main/java/org/killbill/billing/util/config/definition/InvoiceConfig.java
@@ -29,16 +29,31 @@ public interface InvoiceConfig extends KillbillConfig {
     @Config("org.killbill.invoice.maxNumberOfMonthsInFuture")
     @Default("36")
     @Description("Maximum target date to consider when generating an invoice")
+    int getNumberOfMonthsInFuture();
+
+    @Config("org.killbill.invoice.maxNumberOfMonthsInFuture")
+    @Default("36")
+    @Description("Maximum target date to consider when generating an invoice")
     int getNumberOfMonthsInFuture(@Param("dummy") final InternalTenantContext tenantContext);
 
     @Config("org.killbill.invoice.dryRunNotificationSchedule")
     @Default("0s")
     @Description("DryRun invoice notification time before targetDate (ignored if set to 0s)")
+    TimeSpan getDryRunNotificationSchedule();
+
+    @Config("org.killbill.invoice.dryRunNotificationSchedule")
+    @Default("0s")
+    @Description("DryRun invoice notification time before targetDate (ignored if set to 0s)")
     TimeSpan getDryRunNotificationSchedule(@Param("dummy") final InternalTenantContext tenantContext);
 
     @Config("org.killbill.invoice.readMaxRawUsagePreviousPeriod")
     @Default("2")
     @Description("Maximum number of past billing periods we use to fetch raw usage data (usage optimization)")
+    int getMaxRawUsagePreviousPeriod();
+
+    @Config("org.killbill.invoice.readMaxRawUsagePreviousPeriod")
+    @Default("2")
+    @Description("Maximum number of past billing periods we use to fetch raw usage data (usage optimization)")
     int getMaxRawUsagePreviousPeriod(@Param("dummy") final InternalTenantContext tenantContext);
 
     @Config("org.killbill.invoice.globalLock.retries")
@@ -50,5 +65,4 @@ public interface InvoiceConfig extends KillbillConfig {
     @Default("false")
     @Description("Whether to send email notifications on invoice creation (for configured accounts)")
     boolean isEmailNotificationsEnabled();
-
 }
diff --git a/util/src/main/java/org/killbill/billing/util/config/definition/PaymentConfig.java b/util/src/main/java/org/killbill/billing/util/config/definition/PaymentConfig.java
index 35b06d5..97a018f 100644
--- a/util/src/main/java/org/killbill/billing/util/config/definition/PaymentConfig.java
+++ b/util/src/main/java/org/killbill/billing/util/config/definition/PaymentConfig.java
@@ -31,31 +31,61 @@ public interface PaymentConfig extends KillbillConfig {
     @Config("org.killbill.payment.retry.days")
     @Default("8,8,8")
     @Description("Specify the number of payment retries along with the interval in days between payment retries when payment failures occur")
+    List<Integer> getPaymentFailureRetryDays();
+
+    @Config("org.killbill.payment.retry.days")
+    @Default("8,8,8")
+    @Description("Specify the number of payment retries along with the interval in days between payment retries when payment failures occur")
     List<Integer> getPaymentFailureRetryDays(@Param("dummy") final InternalTenantContext tenantContext);
 
     @Config("org.killbill.payment.failure.retry.start.sec")
     @Default("300")
     @Description("Specify the interval of time in seconds before retrying a payment that failed due to a plugin failure (gateway is down, transient error, ...)")
+    int getPluginFailureInitialRetryInSec();
+
+    @Config("org.killbill.payment.failure.retry.start.sec")
+    @Default("300")
+    @Description("Specify the interval of time in seconds before retrying a payment that failed due to a plugin failure (gateway is down, transient error, ...)")
     int getPluginFailureInitialRetryInSec(@Param("dummy") final InternalTenantContext tenantContext);
 
     @Config("org.killbill.payment.failure.retry.multiplier")
     @Default("2")
     @Description("Specify the multiplier to apply between in retry before retrying a payment that failed due to a plugin failure (gateway is down, transient error, ...)")
+    int getPluginFailureRetryMultiplier();
+
+    @Config("org.killbill.payment.failure.retry.multiplier")
+    @Default("2")
+    @Description("Specify the multiplier to apply between in retry before retrying a payment that failed due to a plugin failure (gateway is down, transient error, ...)")
     int getPluginFailureRetryMultiplier(@Param("dummy") final InternalTenantContext tenantContext);
 
     @Config("org.killbill.payment.janitor.transactions.retries")
     @Default("15s,1m,3m,1h,1d,1d,1d,1d,1d")
     @Description("Delay before which unresolved transactions should be retried")
+    List<TimeSpan> getIncompleteTransactionsRetries();
+
+    @Config("org.killbill.payment.janitor.transactions.retries")
+    @Default("15s,1m,3m,1h,1d,1d,1d,1d,1d")
+    @Description("Delay before which unresolved transactions should be retried")
     List<TimeSpan> getIncompleteTransactionsRetries(@Param("dummy") final InternalTenantContext tenantContext);
 
     @Config("org.killbill.payment.failure.retry.max.attempts")
     @Default("8")
     @Description("Specify the max number of attempts before retrying a payment that failed due to a plugin failure (gateway is down, transient error, ...)")
+    int getPluginFailureRetryMaxAttempts();
+
+    @Config("org.killbill.payment.failure.retry.max.attempts")
+    @Default("8")
+    @Description("Specify the max number of attempts before retrying a payment that failed due to a plugin failure (gateway is down, transient error, ...)")
     int getPluginFailureRetryMaxAttempts(@Param("dummy") final InternalTenantContext tenantContext);
 
     @Config("org.killbill.payment.invoice.plugin")
     @Default("")
     @Description("Default payment control plugin names")
+    List<String> getPaymentControlPluginNames();
+
+    @Config("org.killbill.payment.invoice.plugin")
+    @Default("")
+    @Description("Default payment control plugin names")
     List<String> getPaymentControlPluginNames(@Param("dummy") final InternalTenantContext tenantContext);
 
     @Config("org.killbill.payment.janitor.rate")
@@ -88,5 +118,4 @@ public interface PaymentConfig extends KillbillConfig {
     @Default("50")
     @Description("Maximum number of times the system will retry to grab global lock (with a 100ms wait each time)")
     int getMaxGlobalLockRetries();
-
 }