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 90bf49c..4a5d032 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
@@ -109,27 +109,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();
-
}