killbill-memoizeit
Changes
account/pom.xml 2(+1 -1)
api/pom.xml 2(+1 -1)
beatrix/pom.xml 2(+1 -1)
catalog/pom.xml 2(+1 -1)
currency/pom.xml 2(+1 -1)
entitlement/pom.xml 2(+1 -1)
invoice/pom.xml 2(+1 -1)
jaxrs/pom.xml 2(+1 -1)
junction/pom.xml 2(+1 -1)
NEWS 13(+11 -2)
overdue/pom.xml 2(+1 -1)
payment/pom.xml 2(+1 -1)
pom.xml 4(+2 -2)
profiles/killbill/pom.xml 2(+1 -1)
profiles/killbill/src/main/resources/update-checker/killbill-server-update-list.properties 43(+29 -14)
profiles/killpay/pom.xml 2(+1 -1)
profiles/killpay/src/main/resources/update-checker/killbill-server-update-list.properties 26(+23 -3)
profiles/pom.xml 2(+1 -1)
subscription/pom.xml 2(+1 -1)
tenant/pom.xml 2(+1 -1)
usage/pom.xml 2(+1 -1)
util/pom.xml 2(+1 -1)
Details
account/pom.xml 2(+1 -1)
diff --git a/account/pom.xml b/account/pom.xml
index 803f964..2bc7a7b 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.11.9-SNAPSHOT</version>
+ <version>0.11.10-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 cb31f40..9129b20 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.11.9-SNAPSHOT</version>
+ <version>0.11.10-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 3c4f78c..d6f1f37 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.11.9-SNAPSHOT</version>
+ <version>0.11.10-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 8326c73..129e5df 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.11.9-SNAPSHOT</version>
+ <version>0.11.10-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 ec7bca9..1e5edc2 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.11.9-SNAPSHOT</version>
+ <version>0.11.10-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>killbill-currency</artifactId>
entitlement/pom.xml 2(+1 -1)
diff --git a/entitlement/pom.xml b/entitlement/pom.xml
index acf371a..30db7f4 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.11.9-SNAPSHOT</version>
+ <version>0.11.10-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 a3bfd4a..d68dee7 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.11.9-SNAPSHOT</version>
+ <version>0.11.10-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 9c978f0..14bc6ed 100644
--- a/jaxrs/pom.xml
+++ b/jaxrs/pom.xml
@@ -19,7 +19,7 @@
<parent>
<artifactId>killbill</artifactId>
<groupId>org.kill-bill.billing</groupId>
- <version>0.11.9-SNAPSHOT</version>
+ <version>0.11.10-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 b945744..0fd4150 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.11.9-SNAPSHOT</version>
+ <version>0.11.10-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>killbill-junction</artifactId>
NEWS 13(+11 -2)
diff --git a/NEWS b/NEWS
index 59cc6c7..767f9ea 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,15 @@
+0.11.9
+ payment: rework Janitor shutdown sequence
+ jdbc: integrate log4jdbc-log4j2
+ profiling: add support for JAX-RS and EhCache
+ Shiro integration bugfixes
+ Fix tests failures on H2
+ https://github.com/killbill/killbill/issues/204
+ Update killbill-oss-parent to 0.7.20
+
0.11.8
- Add suppport for profiling data
- Harden code to fix sporadic failure in intergation tests
+ Add support for profiling data
+ Harden code to fix sporadic failure in integration tests
0.11.6
Payment subsystem (complete merge payment and direct payment, and does renaming)
overdue/pom.xml 2(+1 -1)
diff --git a/overdue/pom.xml b/overdue/pom.xml
index ecd620f..788e1f8 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.11.9-SNAPSHOT</version>
+ <version>0.11.10-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 8c23988..8cc8597 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.11.9-SNAPSHOT</version>
+ <version>0.11.10-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>killbill-payment</artifactId>
diff --git a/payment/src/main/java/org/killbill/billing/payment/api/DefaultPaymentErrorEvent.java b/payment/src/main/java/org/killbill/billing/payment/api/DefaultPaymentErrorEvent.java
index 82afcb7..d81ebad 100644
--- a/payment/src/main/java/org/killbill/billing/payment/api/DefaultPaymentErrorEvent.java
+++ b/payment/src/main/java/org/killbill/billing/payment/api/DefaultPaymentErrorEvent.java
@@ -74,6 +74,17 @@ public class DefaultPaymentErrorEvent extends BusEventBase implements PaymentErr
}
@Override
+ public String toString() {
+ final StringBuilder sb = new StringBuilder("DefaultPaymentErrorEvent{");
+ sb.append("message='").append(message).append('\'');
+ sb.append(", accountId=").append(accountId);
+ sb.append(", paymentId=").append(paymentId);
+ sb.append(", transactionType=").append(transactionType);
+ sb.append('}');
+ return sb.toString();
+ }
+
+ @Override
public boolean equals(final Object o) {
if (this == o) {
return true;
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/PaymentProcessor.java b/payment/src/main/java/org/killbill/billing/payment/core/PaymentProcessor.java
index 377da1f..f848cf0 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/PaymentProcessor.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/PaymentProcessor.java
@@ -68,7 +68,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.base.Function;
-import com.google.common.base.Preconditions;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
@@ -314,7 +313,7 @@ public class PaymentProcessor extends ProcessorBase {
@Nullable final String paymentExternalKey, @Nullable final String paymentTransactionExternalKey,
final boolean shouldLockAccountAndDispatch, @Nullable final OperationResult overridePluginOperationResult,
final Iterable<PluginProperty> properties,
- final CallContext callContext,final InternalCallContext internalCallContext) throws PaymentApiException {
+ final CallContext callContext, final InternalCallContext internalCallContext) throws PaymentApiException {
validateUniqueTransactionExternalKey(paymentTransactionExternalKey, internalCallContext);
final UUID nonNullPaymentId = paymentAutomatonRunner.run(isApiPayment,
@@ -357,7 +356,7 @@ public class PaymentProcessor extends ProcessorBase {
return toPayment(paymentModelDao, transactionsForPayment, pluginInfo);
}
- private Payment toPayment(final PaymentModelDao curPaymentModelDao, final Iterable<PaymentTransactionModelDao> transactionsModelDao, @Nullable final List<PaymentTransactionInfoPlugin> pluginTransactions) {
+ private Payment toPayment(final PaymentModelDao curPaymentModelDao, final Iterable<PaymentTransactionModelDao> transactionsModelDao, @Nullable final Iterable<PaymentTransactionInfoPlugin> pluginTransactions) {
final Ordering<PaymentTransaction> perPaymentTransactionOrdering = Ordering.<PaymentTransaction>from(new Comparator<PaymentTransaction>() {
@Override
public int compare(final PaymentTransaction o1, final PaymentTransaction o2) {
@@ -374,20 +373,19 @@ public class PaymentProcessor extends ProcessorBase {
final Iterable<PaymentTransaction> transactions = Iterables.transform(filteredTransactions, new Function<PaymentTransactionModelDao, PaymentTransaction>() {
@Override
- public PaymentTransaction apply(final PaymentTransactionModelDao input) {
-
- final PaymentTransactionInfoPlugin info = pluginTransactions != null ?
- Iterables.tryFind(pluginTransactions, new Predicate<PaymentTransactionInfoPlugin>() {
- @Override
- public boolean apply(final PaymentTransactionInfoPlugin input) {
- return input.getKbTransactionPaymentId().equals(input.getKbTransactionPaymentId());
- }
- }).orNull() : null;
-
- return new DefaultPaymentTransaction(input.getId(), input.getAttemptId(), input.getTransactionExternalKey(), input.getCreatedDate(), input.getUpdatedDate(), input.getPaymentId(),
- input.getTransactionType(), input.getEffectiveDate(), input.getTransactionStatus(), input.getAmount(), input.getCurrency(),
- input.getProcessedAmount(), input.getProcessedCurrency(),
- input.getGatewayErrorCode(), input.getGatewayErrorMsg(), info);
+ public PaymentTransaction apply(final PaymentTransactionModelDao paymentTransactionModelDao) {
+ final PaymentTransactionInfoPlugin paymentTransactionInfoPlugin = pluginTransactions != null ?
+ Iterables.tryFind(pluginTransactions, new Predicate<PaymentTransactionInfoPlugin>() {
+ @Override
+ public boolean apply(final PaymentTransactionInfoPlugin paymentTransactionInfoPlugin) {
+ return paymentTransactionModelDao.getId().equals(paymentTransactionInfoPlugin.getKbTransactionPaymentId());
+ }
+ }).orNull() : null;
+
+ return new DefaultPaymentTransaction(paymentTransactionModelDao.getId(), paymentTransactionModelDao.getAttemptId(), paymentTransactionModelDao.getTransactionExternalKey(), paymentTransactionModelDao.getCreatedDate(), paymentTransactionModelDao.getUpdatedDate(), paymentTransactionModelDao.getPaymentId(),
+ paymentTransactionModelDao.getTransactionType(), paymentTransactionModelDao.getEffectiveDate(), paymentTransactionModelDao.getTransactionStatus(), paymentTransactionModelDao.getAmount(), paymentTransactionModelDao.getCurrency(),
+ paymentTransactionModelDao.getProcessedAmount(), paymentTransactionModelDao.getProcessedCurrency(),
+ paymentTransactionModelDao.getGatewayErrorCode(), paymentTransactionModelDao.getGatewayErrorMsg(), paymentTransactionInfoPlugin);
}
});
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/sm/OperationCallbackBase.java b/payment/src/main/java/org/killbill/billing/payment/core/sm/OperationCallbackBase.java
index d4da958..6a81f1d 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/sm/OperationCallbackBase.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/sm/OperationCallbackBase.java
@@ -32,7 +32,7 @@ import org.killbill.commons.locker.GlobalLocker;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public abstract class OperationCallbackBase {
+public abstract class OperationCallbackBase<CallbackOperationResult, CallbackOperationException extends Exception> {
protected final Logger logger = LoggerFactory.getLogger(OperationCallbackBase.class);
@@ -60,8 +60,8 @@ public abstract class OperationCallbackBase {
try {
final Callable<PluginDispatcherReturnType<OperationResult>> task = new CallableWithAccountLock<OperationResult, ExceptionType>(locker,
- account.getExternalKey(),
- callback);
+ account.getExternalKey(),
+ callback);
final OperationResult operationResult = paymentPluginDispatcher.dispatchWithTimeout(task);
logger.debug("Successful plugin call for account {} with result {}", account.getExternalKey(), operationResult);
return operationResult;
@@ -81,8 +81,7 @@ public abstract class OperationCallbackBase {
// There is a base glue code that is common to all calls and shared in a base class and then a per call specific operation
// using the doCallSpecificOperationCallback method below.
//
- protected abstract <CallbackOperationResult, CallbackOperationException extends Exception> CallbackOperationResult doCallSpecificOperationCallback()
- throws CallbackOperationException;
+ protected abstract CallbackOperationResult doCallSpecificOperationCallback() throws CallbackOperationException;
//
// The methods below allow to convert the exceptions thrown back by the Executor into an appropriate OperationException
@@ -92,5 +91,4 @@ public abstract class OperationCallbackBase {
protected abstract OperationException wrapTimeoutException(final PaymentStateContext paymentStateContext, final TimeoutException e);
protected abstract OperationException wrapInterruptedException(final PaymentStateContext paymentStateContext, final InterruptedException e);
-
}
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentOperation.java b/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentOperation.java
index 556fb42..e2b2a65 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentOperation.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentOperation.java
@@ -26,7 +26,6 @@ import org.killbill.automaton.Operation.OperationCallback;
import org.killbill.automaton.OperationException;
import org.killbill.automaton.OperationResult;
import org.killbill.billing.ErrorCode;
-import org.killbill.billing.osgi.api.OSGIServiceRegistration;
import org.killbill.billing.payment.api.PaymentApiException;
import org.killbill.billing.payment.api.TransactionStatus;
import org.killbill.billing.payment.api.TransactionType;
@@ -43,14 +42,12 @@ import org.killbill.commons.locker.GlobalLocker;
import org.killbill.commons.locker.LockFailedException;
import com.google.common.base.Objects;
-
-import com.google.common.base.Objects;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
// Encapsulates the payment specific logic
-public abstract class PaymentOperation extends OperationCallbackBase implements OperationCallback {
+public abstract class PaymentOperation extends OperationCallbackBase<PaymentTransactionInfoPlugin, PaymentPluginApiException> implements OperationCallback {
protected final PaymentAutomatonDAOHelper daoHelper;
protected PaymentPluginApi plugin;
@@ -63,12 +60,9 @@ public abstract class PaymentOperation extends OperationCallbackBase implements
this.daoHelper = daoHelper;
}
-
@Override
public OperationResult doOperationCallback() throws OperationException {
-
try {
-
this.plugin = daoHelper.getPaymentProviderPlugin();
if (paymentStateContext.shouldLockAccountAndDispatch()) {
@@ -76,7 +70,7 @@ public abstract class PaymentOperation extends OperationCallbackBase implements
} else {
return doSimpleOperationCallback();
}
- } catch (PaymentApiException e) {
+ } catch (final PaymentApiException e) {
throw new OperationException(e, OperationResult.EXCEPTION);
}
}
@@ -126,7 +120,7 @@ public abstract class PaymentOperation extends OperationCallbackBase implements
protected BigDecimal getSumAmount(final Iterable<PaymentTransactionModelDao> transactions) {
BigDecimal result = BigDecimal.ZERO;
- Iterator<PaymentTransactionModelDao> iterator = transactions.iterator();
+ final Iterator<PaymentTransactionModelDao> iterator = transactions.iterator();
while (iterator.hasNext()) {
result = result.add(iterator.next().getAmount());
}
@@ -148,7 +142,7 @@ public abstract class PaymentOperation extends OperationCallbackBase implements
return doOperation();
} catch (final PaymentApiException e) {
throw new OperationException(e, OperationResult.FAILURE);
- } catch (RuntimeException e) {
+ } catch (final RuntimeException e) {
throw new OperationException(e, OperationResult.EXCEPTION);
}
}
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryOperationCallback.java b/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryOperationCallback.java
index d73d022..0e44d5c 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryOperationCallback.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryOperationCallback.java
@@ -32,8 +32,8 @@ import org.killbill.billing.callcontext.DefaultCallContext;
import org.killbill.billing.catalog.api.Currency;
import org.killbill.billing.osgi.api.OSGIServiceRegistration;
import org.killbill.billing.payment.api.Payment;
-import org.killbill.billing.payment.api.PaymentTransaction;
import org.killbill.billing.payment.api.PaymentApiException;
+import org.killbill.billing.payment.api.PaymentTransaction;
import org.killbill.billing.payment.api.PluginProperty;
import org.killbill.billing.payment.api.TransactionStatus;
import org.killbill.billing.payment.api.TransactionType;
@@ -52,14 +52,13 @@ import org.killbill.commons.locker.LockFailedException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public abstract class RetryOperationCallback extends OperationCallbackBase implements OperationCallback {
+public abstract class RetryOperationCallback extends OperationCallbackBase<Payment, PaymentApiException> implements OperationCallback {
private final OSGIServiceRegistration<PaymentControlPluginApi> paymentControlPluginRegistry;
protected final PaymentProcessor paymentProcessor;
protected final RetryablePaymentStateContext retryablePaymentStateContext;
-
private final Logger logger = LoggerFactory.getLogger(RetryOperationCallback.class);
protected RetryOperationCallback(final GlobalLocker locker, final PluginDispatcher<OperationResult> paymentPluginDispatcher, final RetryablePaymentStateContext paymentStateContext, final PaymentProcessor paymentProcessor, final OSGIServiceRegistration<PaymentControlPluginApi> retryPluginRegistry) {
@@ -69,7 +68,6 @@ public abstract class RetryOperationCallback extends OperationCallbackBase imple
this.retryablePaymentStateContext = paymentStateContext;
}
-
@Override
protected abstract Payment doCallSpecificOperationCallback() throws PaymentApiException;
@@ -101,12 +99,12 @@ public abstract class RetryOperationCallback extends OperationCallbackBase imple
// Transition to ABORTED
return PluginDispatcher.createPluginDispatcherReturnType(OperationResult.EXCEPTION);
}
- } catch (PaymentControlApiException e) {
+ } catch (final PaymentControlApiException e) {
// Transition to ABORTED and throw PaymentControlApiException to caller.
throw new OperationException(e, OperationResult.EXCEPTION);
}
- boolean success;
+ final boolean success;
try {
// Adjust amount with value returned by plugin if necessary
if (paymentStateContext.getAmount() == null ||
@@ -141,10 +139,10 @@ public abstract class RetryOperationCallback extends OperationCallbackBase imple
} else {
throw new OperationException(null, getOperationResultAndSetContext(retryablePaymentStateContext, paymentControlContext));
}
- } catch (PaymentApiException e) {
+ } catch (final PaymentApiException e) {
// Wrap PaymentApiException, and throw a new OperationException with an ABORTED/FAILURE state based on the retry result.
throw new OperationException(e, getOperationResultAndSetContext(retryablePaymentStateContext, paymentControlContext));
- } catch (RuntimeException e) {
+ } catch (final RuntimeException e) {
// Attempts to set the retry date in context if needed.
getOperationResultAndSetContext(retryablePaymentStateContext, paymentControlContext);
throw e;
@@ -183,7 +181,7 @@ public abstract class RetryOperationCallback extends OperationCallbackBase imple
final PaymentControlPluginApi plugin = paymentControlPluginRegistry.getServiceForName(pluginName);
try {
plugin.onSuccessCall(paymentControlContext);
- } catch (PaymentControlApiException e) {
+ } catch (final PaymentControlApiException e) {
logger.warn("Plugin " + pluginName + " failed to complete onCompletion call for " + paymentControlContext.getPaymentExternalKey(), e);
}
}
@@ -195,7 +193,6 @@ public abstract class RetryOperationCallback extends OperationCallbackBase imple
}
private PriorPaymentControlResult getPluginResult(final String pluginName, final PaymentControlContext paymentControlContext) throws PaymentControlApiException {
-
final PaymentControlPluginApi plugin = paymentControlPluginRegistry.getServiceForName(pluginName);
final PriorPaymentControlResult result = plugin.priorCall(paymentControlContext);
return result;
@@ -216,13 +213,12 @@ public abstract class RetryOperationCallback extends OperationCallbackBase imple
final PaymentControlPluginApi plugin = paymentControlPluginRegistry.getServiceForName(pluginName);
final FailureCallResult result = plugin.onFailureCall(paymentControlContext);
return result.getNextRetryDate();
- } catch (PaymentControlApiException e) {
+ } catch (final PaymentControlApiException e) {
logger.warn("Plugin " + pluginName + " failed to return next retryDate for payment " + paymentControlContext.getPaymentExternalKey(), e);
return null;
}
}
-
public static class DefaultPaymentControlContext extends DefaultCallContext implements PaymentControlContext {
private final Account account;
@@ -324,12 +320,10 @@ public abstract class RetryOperationCallback extends OperationCallbackBase imple
return isApiPayment;
}
-
public UUID getTransactionId() {
return transactionId;
}
-
@Override
public Iterable<PluginProperty> getPluginProperties() {
return properties;
pom.xml 4(+2 -2)
diff --git a/pom.xml b/pom.xml
index 4151d5c..4648d6d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,10 +20,10 @@
<parent>
<artifactId>killbill-oss-parent</artifactId>
<groupId>org.kill-bill.billing</groupId>
- <version>0.7.20-SNAPSHOT</version>
+ <version>0.7.20</version>
</parent>
<artifactId>killbill</artifactId>
- <version>0.11.9-SNAPSHOT</version>
+ <version>0.11.10-SNAPSHOT</version>
<packaging>pom</packaging>
<name>killbill</name>
<description>Library for managing recurring subscriptions and the associated billing</description>
profiles/killbill/pom.xml 2(+1 -1)
diff --git a/profiles/killbill/pom.xml b/profiles/killbill/pom.xml
index c7d415b..0277ed7 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.11.9-SNAPSHOT</version>
+ <version>0.11.10-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>killbill-profiles-killbill</artifactId>
diff --git a/profiles/killbill/src/main/resources/logback.xml b/profiles/killbill/src/main/resources/logback.xml
index 9bab6a4..b146654 100644
--- a/profiles/killbill/src/main/resources/logback.xml
+++ b/profiles/killbill/src/main/resources/logback.xml
@@ -177,7 +177,7 @@
</logger>
<!-- Silence verbose loggers in DEBUG mode -->
- <logger name="com.dmurph" level="INFO"/>
+ <logger name="com.dmurph" level="OFF"/>
<logger name="org.killbill.billing.notificationq" level="INFO"/>
<logger name="org.killbill.billing.queue" level="INFO"/>
<logger name="org.killbill.billing.server.updatechecker" level="INFO"/>
diff --git a/profiles/killbill/src/main/resources/update-checker/killbill-server-update-list.properties b/profiles/killbill/src/main/resources/update-checker/killbill-server-update-list.properties
index dab32ca..f04e249 100644
--- a/profiles/killbill/src/main/resources/update-checker/killbill-server-update-list.properties
+++ b/profiles/killbill/src/main/resources/update-checker/killbill-server-update-list.properties
@@ -3,34 +3,49 @@
### 0.11.x series ###
-## 0.11.7 -- latest unstable release
-0.11.7.updates =
-0.11.7.notices = This is the latest dev release.
+## 0.11.9 -- latest unstable release
+0.11.9.updates =
+0.11.9.notices = This is the latest dev release.
+0.11.9.release-notes = http://kill-bill.org
+
+## 0.11.8
+0.11.8.updates = 0.11.9
+0.11.8.notices = We recommend upgrading to 0.11.9, our latest dev release.
+0.11.8.release-notes = http://kill-bill.org
+
+## 0.11.7
+0.11.7.updates = 0.11.9
+0.11.7.notices = We recommend upgrading to 0.11.9, our latest dev release.
0.11.7.release-notes = http://kill-bill.org
-## 0.11.5 -- latest unstable release
-0.11.5.updates = 0.11.7
-0.11.5.notices = This is the latest dev release.
+## 0.11.6
+0.11.6.updates = 0.11.9
+0.11.6.notices = We recommend upgrading to 0.11.9, our latest dev release.
+0.11.6.release-notes = http://kill-bill.org
+
+## 0.11.5
+0.11.5.updates = 0.11.9
+0.11.5.notices = We recommend upgrading to 0.11.9, our latest dev release.
0.11.5.release-notes = http://kill-bill.org
## 0.11.4
-0.11.4.updates = 0.11.7
-0.11.4.notices = We recommend upgrading to 0.11.7, our latest dev release.
+0.11.4.updates = 0.11.9
+0.11.4.notices = We recommend upgrading to 0.11.9, our latest dev release.
0.11.4.release-notes = http://kill-bill.org
## 0.11.3
-0.11.3.updates = 0.11.7
-0.11.3.notices = We recommend upgrading to 0.11.7, our latest dev release.
+0.11.3.updates = 0.11.9
+0.11.3.notices = We recommend upgrading to 0.11.9, our latest dev release.
0.11.3.release-notes = http://kill-bill.org
## 0.11.2
-0.11.2.updates = 0.11.7
-0.11.2.notices = We recommend upgrading to 0.11.7, our latest dev release.
+0.11.2.updates = 0.11.9
+0.11.2.notices = We recommend upgrading to 0.11.9, our latest dev release.
0.11.2.release-notes = http://kill-bill.org
## 0.11.1
-0.11.1.updates = 0.11.7
-0.11.1.notices = We recommend upgrading to 0.11.7, our latest dev release.
+0.11.1.updates = 0.11.9
+0.11.1.notices = We recommend upgrading to 0.11.9, our latest dev release.
0.11.1.release-notes = http://kill-bill.org
### 0.10.x series ###
profiles/killpay/pom.xml 2(+1 -1)
diff --git a/profiles/killpay/pom.xml b/profiles/killpay/pom.xml
index bf56d50..4024de5 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.11.9-SNAPSHOT</version>
+ <version>0.11.10-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>killbill-profiles-killpay</artifactId>
diff --git a/profiles/killpay/src/main/resources/update-checker/killbill-server-update-list.properties b/profiles/killpay/src/main/resources/update-checker/killbill-server-update-list.properties
index 8b7b2a4..a56bcc5 100644
--- a/profiles/killpay/src/main/resources/update-checker/killbill-server-update-list.properties
+++ b/profiles/killpay/src/main/resources/update-checker/killbill-server-update-list.properties
@@ -3,7 +3,27 @@
### 0.11.x series ###
-## 0.11.5 -- latest unstable release
-0.11.5.updates =
-0.11.5.notices = This is the latest dev release.
+## 0.11.9 -- latest unstable release
+0.11.9.updates =
+0.11.9.notices = This is the latest dev release.
+0.11.9.release-notes = http://kill-bill.org
+
+## 0.11.8
+0.11.8.updates = 0.11.9
+0.11.8.notices = We recommend upgrading to 0.11.9, our latest dev release.
+0.11.8.release-notes = http://kill-bill.org
+
+## 0.11.7
+0.11.7.updates = 0.11.9
+0.11.7.notices = We recommend upgrading to 0.11.9, our latest dev release.
+0.11.7.release-notes = http://kill-bill.org
+
+## 0.11.6
+0.11.6.updates = 0.11.9
+0.11.6.notices = We recommend upgrading to 0.11.9, our latest dev release.
+0.11.6.release-notes = http://kill-bill.org
+
+## 0.11.5
+0.11.5.updates = 0.11.9
+0.11.5.notices = We recommend upgrading to 0.11.9, our latest dev release.
0.11.5.release-notes = http://kill-bill.org
profiles/pom.xml 2(+1 -1)
diff --git a/profiles/pom.xml b/profiles/pom.xml
index 0f6d190..7e8d594 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.11.9-SNAPSHOT</version>
+ <version>0.11.10-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>killbill-profiles</artifactId>
subscription/pom.xml 2(+1 -1)
diff --git a/subscription/pom.xml b/subscription/pom.xml
index 9b43ffe..1b46563 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.11.9-SNAPSHOT</version>
+ <version>0.11.10-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 02b3d0f..13b6f60 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.11.9-SNAPSHOT</version>
+ <version>0.11.10-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 24def5c..0d62d1a 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.11.9-SNAPSHOT</version>
+ <version>0.11.10-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 2d4c8a8..71477c8 100644
--- a/util/pom.xml
+++ b/util/pom.xml
@@ -12,7 +12,7 @@
<parent>
<artifactId>killbill</artifactId>
<groupId>org.kill-bill.billing</groupId>
- <version>0.11.9-SNAPSHOT</version>
+ <version>0.11.10-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>killbill-util</artifactId>
diff --git a/util/src/main/java/org/killbill/billing/util/customfield/api/DefaultCustomFieldCreationEvent.java b/util/src/main/java/org/killbill/billing/util/customfield/api/DefaultCustomFieldCreationEvent.java
index 97e131d..a2572b6 100644
--- a/util/src/main/java/org/killbill/billing/util/customfield/api/DefaultCustomFieldCreationEvent.java
+++ b/util/src/main/java/org/killbill/billing/util/customfield/api/DefaultCustomFieldCreationEvent.java
@@ -67,6 +67,16 @@ public class DefaultCustomFieldCreationEvent extends BusEventBase implements Cus
}
@Override
+ public String toString() {
+ final StringBuilder sb = new StringBuilder("DefaultCustomFieldCreationEvent{");
+ sb.append("customFieldId=").append(customFieldId);
+ sb.append(", objectId=").append(objectId);
+ sb.append(", objectType=").append(objectType);
+ sb.append('}');
+ return sb.toString();
+ }
+
+ @Override
public boolean equals(final Object o) {
if (this == o) {
return true;
diff --git a/util/src/main/java/org/killbill/billing/util/security/api/DefaultSecurityApi.java b/util/src/main/java/org/killbill/billing/util/security/api/DefaultSecurityApi.java
index a699084..5d0bc2b 100644
--- a/util/src/main/java/org/killbill/billing/util/security/api/DefaultSecurityApi.java
+++ b/util/src/main/java/org/killbill/billing/util/security/api/DefaultSecurityApi.java
@@ -40,9 +40,16 @@ public class DefaultSecurityApi implements SecurityApi {
private static final String[] allPermissions = new String[Permission.values().length];
@Override
- public void login(final Object principal, final Object credentials) {
+ public synchronized void login(final Object principal, final Object credentials) {
final Subject currentUser = SecurityUtils.getSubject();
+ // Workaround for https://issues.apache.org/jira/browse/SHIRO-510
+ // TODO Not sure if it's a good fix?
+ if (principal.equals(currentUser.getPrincipal()) &&
+ currentUser.isAuthenticated()) {
+ return;
+ }
+
// UsernamePasswordToken is hardcoded in AuthenticatingRealm
if (principal instanceof String && credentials instanceof String) {
currentUser.login(new UsernamePasswordToken((String) principal, (String) credentials));