killbill-memoizeit
Changes
payment/src/main/java/org/killbill/billing/payment/core/PluginRoutingPaymentProcessor.java 222(+109 -113)
payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentEnteringStateCallback.java 2(+1 -1)
payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentLeavingStateCallback.java 2(+1 -1)
payment/src/main/java/org/killbill/billing/payment/core/sm/PluginRoutingPaymentAutomatonRunner.java 24(+9 -15)
Details
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/PluginRoutingPaymentProcessor.java b/payment/src/main/java/org/killbill/billing/payment/core/PluginRoutingPaymentProcessor.java
index a1c4e75..79be2f0 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/PluginRoutingPaymentProcessor.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/PluginRoutingPaymentProcessor.java
@@ -17,6 +17,7 @@
package org.killbill.billing.payment.core;
import java.math.BigDecimal;
+import java.util.Collection;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.ExecutorService;
@@ -88,124 +89,123 @@ public class PluginRoutingPaymentProcessor extends ProcessorBase {
}
public Payment createAuthorization(final boolean isApiPayment, final Account account, final UUID paymentMethodId, @Nullable final UUID paymentId, final BigDecimal amount, final Currency currency, final String paymentExternalKey, final String transactionExternalKey,
- final Iterable<PluginProperty> properties, final List<String> paymentControlPluginNames, final CallContext callContext, final InternalCallContext internalCallContext) throws PaymentApiException {
+ final Iterable<PluginProperty> properties, final List<String> paymentControlPluginNames, final CallContext callContext, final InternalCallContext internalCallContext) throws PaymentApiException {
return pluginControlledPaymentAutomatonRunner.run(isApiPayment,
- TransactionType.AUTHORIZE,
- account,
- paymentMethodId,
- paymentId,
- paymentExternalKey,
- transactionExternalKey,
- amount,
- currency,
- properties,
- paymentControlPluginNames,
- callContext, internalCallContext);
+ TransactionType.AUTHORIZE,
+ account,
+ paymentMethodId,
+ paymentId,
+ paymentExternalKey,
+ transactionExternalKey,
+ amount,
+ currency,
+ properties,
+ paymentControlPluginNames,
+ callContext, internalCallContext);
}
public Payment createCapture(final boolean isApiPayment, final Account account, final UUID paymentId, final BigDecimal amount, final Currency currency,
- final String transactionExternalKey,
- final Iterable<PluginProperty> properties, final List<String> paymentControlPluginNames,
- final CallContext callContext, final InternalCallContext internalCallContext) throws PaymentApiException {
+ final String transactionExternalKey,
+ final Iterable<PluginProperty> properties, final List<String> paymentControlPluginNames,
+ final CallContext callContext, final InternalCallContext internalCallContext) throws PaymentApiException {
return pluginControlledPaymentAutomatonRunner.run(isApiPayment,
- TransactionType.CAPTURE,
- account,
- null,
- paymentId,
- null,
- transactionExternalKey,
- amount,
- currency,
- properties,
- paymentControlPluginNames,
- callContext, internalCallContext);
+ TransactionType.CAPTURE,
+ account,
+ null,
+ paymentId,
+ null,
+ transactionExternalKey,
+ amount,
+ currency,
+ properties,
+ paymentControlPluginNames,
+ callContext, internalCallContext);
}
public Payment createPurchase(final boolean isApiPayment, final Account account, final UUID paymentMethodId, final UUID paymentId, final BigDecimal amount, final Currency currency,
- final String paymentExternalKey, final String transactionExternalKey, final Iterable<PluginProperty> properties,
- final List<String> paymentControlPluginNames, final CallContext callContext, final InternalCallContext internalCallContext) throws PaymentApiException {
+ final String paymentExternalKey, final String transactionExternalKey, final Iterable<PluginProperty> properties,
+ final List<String> paymentControlPluginNames, final CallContext callContext, final InternalCallContext internalCallContext) throws PaymentApiException {
return pluginControlledPaymentAutomatonRunner.run(isApiPayment,
- TransactionType.PURCHASE,
- account,
- paymentMethodId,
- paymentId,
- paymentExternalKey,
- transactionExternalKey,
- amount,
- currency,
- properties,
- paymentControlPluginNames,
- callContext, internalCallContext);
+ TransactionType.PURCHASE,
+ account,
+ paymentMethodId,
+ paymentId,
+ paymentExternalKey,
+ transactionExternalKey,
+ amount,
+ currency,
+ properties,
+ paymentControlPluginNames,
+ callContext, internalCallContext);
}
public Payment createVoid(final boolean isApiPayment, final Account account, final UUID paymentId, final String transactionExternalKey,
- final Iterable<PluginProperty> properties, final CallContext callContext, final InternalCallContext internalCallContext) throws PaymentApiException {
+ final Iterable<PluginProperty> properties, final CallContext callContext, final InternalCallContext internalCallContext) throws PaymentApiException {
return pluginControlledPaymentAutomatonRunner.run(isApiPayment,
- TransactionType.VOID,
- account,
- null,
- paymentId,
- null,
- transactionExternalKey,
- null,
- null,
- properties,
- null,
- callContext, internalCallContext);
+ TransactionType.VOID,
+ account,
+ null,
+ paymentId,
+ null,
+ transactionExternalKey,
+ null,
+ null,
+ properties,
+ null,
+ callContext, internalCallContext);
}
public Payment createRefund(final boolean isApiPayment, final Account account, final UUID paymentId, final BigDecimal amount, final Currency currency, final String transactionExternalKey,
- final Iterable<PluginProperty> properties, final List<String> paymentControlPluginNames, final CallContext callContext, final InternalCallContext internalCallContext) throws PaymentApiException {
+ final Iterable<PluginProperty> properties, final List<String> paymentControlPluginNames, final CallContext callContext, final InternalCallContext internalCallContext) throws PaymentApiException {
return pluginControlledPaymentAutomatonRunner.run(isApiPayment,
- TransactionType.REFUND,
- account,
- null,
- paymentId,
- null,
- transactionExternalKey,
- amount,
- currency,
- properties,
- paymentControlPluginNames,
- callContext, internalCallContext);
+ TransactionType.REFUND,
+ account,
+ null,
+ paymentId,
+ null,
+ transactionExternalKey,
+ amount,
+ currency,
+ properties,
+ paymentControlPluginNames,
+ callContext, internalCallContext);
}
public Payment createCredit(final boolean isApiPayment, final Account account, final UUID paymentMethodId, final UUID paymentId, final BigDecimal amount, final Currency currency, final String paymentExternalKey,
- final String transactionExternalKey, final Iterable<PluginProperty> properties, final List<String> paymentControlPluginNames, final CallContext callContext, final InternalCallContext internalCallContext) throws PaymentApiException {
+ final String transactionExternalKey, final Iterable<PluginProperty> properties, final List<String> paymentControlPluginNames, final CallContext callContext, final InternalCallContext internalCallContext) throws PaymentApiException {
return pluginControlledPaymentAutomatonRunner.run(isApiPayment,
- TransactionType.CREDIT,
- account,
- paymentMethodId,
- paymentId,
- paymentExternalKey,
- transactionExternalKey,
- amount,
- currency,
- properties,
- paymentControlPluginNames,
- callContext, internalCallContext);
+ TransactionType.CREDIT,
+ account,
+ paymentMethodId,
+ paymentId,
+ paymentExternalKey,
+ transactionExternalKey,
+ amount,
+ currency,
+ properties,
+ paymentControlPluginNames,
+ callContext, internalCallContext);
}
public Payment createChargeback(final Account account, final UUID paymentId, final String transactionExternalKey, final BigDecimal amount, final Currency currency,
- final List<String> paymentControlPluginNames, final CallContext callContext, final InternalCallContext internalCallContext) throws PaymentApiException {
+ final List<String> paymentControlPluginNames, final CallContext callContext, final InternalCallContext internalCallContext) throws PaymentApiException {
return pluginControlledPaymentAutomatonRunner.run(true,
- TransactionType.CHARGEBACK,
- account,
- null,
- paymentId,
- null,
- transactionExternalKey,
- amount,
- currency,
- ImmutableList.<PluginProperty>of(),
- paymentControlPluginNames,
- callContext, internalCallContext);
+ TransactionType.CHARGEBACK,
+ account,
+ null,
+ paymentId,
+ null,
+ transactionExternalKey,
+ amount,
+ currency,
+ ImmutableList.<PluginProperty>of(),
+ paymentControlPluginNames,
+ callContext, internalCallContext);
}
public void retryPaymentTransaction(final UUID attemptId, final List<String> paymentControlPluginNames, final InternalCallContext internalCallContext) {
try {
-
final PaymentAttemptModelDao attempt = paymentDao.getPaymentAttempt(attemptId, internalCallContext);
final PaymentModelDao payment = paymentDao.getPaymentByExternalKey(attempt.getPaymentExternalKey(), internalCallContext);
final UUID paymentId = payment != null ? payment.getId() : null;
@@ -217,39 +217,35 @@ public class PluginRoutingPaymentProcessor extends ProcessorBase {
final State state = retrySMHelper.getState(attempt.getStateName());
pluginControlledPaymentAutomatonRunner.run(state,
- false,
- attempt.getTransactionType(),
- account,
- attempt.getPaymentMethodId(),
- paymentId,
- attempt.getPaymentExternalKey(),
- attempt.getTransactionExternalKey(),
- attempt.getAmount(),
- attempt.getCurrency(),
- pluginProperties,
- paymentControlPluginNames,
- callContext,
- internalCallContext);
-
- } catch (AccountApiException e) {
+ false,
+ attempt.getTransactionType(),
+ account,
+ attempt.getPaymentMethodId(),
+ paymentId,
+ attempt.getPaymentExternalKey(),
+ attempt.getTransactionExternalKey(),
+ attempt.getAmount(),
+ attempt.getCurrency(),
+ pluginProperties,
+ paymentControlPluginNames,
+ callContext,
+ internalCallContext);
+
+ } catch (final AccountApiException e) {
log.warn("Failed to retry attempt " + attemptId + toPluginNamesOnError(" for plugins ", paymentControlPluginNames), e);
- } catch (PaymentApiException e) {
+ } catch (final PaymentApiException e) {
log.warn("Failed to retry attempt " + attemptId + toPluginNamesOnError(" for plugins ", paymentControlPluginNames), e);
- } catch (PluginPropertySerializerException e) {
+ } catch (final PluginPropertySerializerException e) {
log.warn("Failed to retry attempt " + attemptId + toPluginNamesOnError(" for plugins ", paymentControlPluginNames), e);
- } catch (MissingEntryException e) {
+ } catch (final MissingEntryException e) {
log.warn("Failed to retry attempt " + attemptId + toPluginNamesOnError(" for plugins ", paymentControlPluginNames), e);
}
}
- private String toPluginNamesOnError(final String prefixMessage, final List<String> paymentControlPluginNames) {
- if (paymentControlPluginNames == null || paymentControlPluginNames.size() == 0) {
+ private String toPluginNamesOnError(final String prefixMessage, final Collection<String> paymentControlPluginNames) {
+ if (paymentControlPluginNames == null || paymentControlPluginNames.isEmpty()) {
return "";
}
- final StringBuilder tmp = new StringBuilder(prefixMessage)
- .append("(")
- .append(JOINER.join(paymentControlPluginNames))
- .append(")");
- return tmp.toString();
+ return prefixMessage + "(" + JOINER.join(paymentControlPluginNames) + ")";
}
}
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/sm/ChargebackOperation.java b/payment/src/main/java/org/killbill/billing/payment/core/sm/ChargebackOperation.java
index 04afc77..d328dd3 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/sm/ChargebackOperation.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/sm/ChargebackOperation.java
@@ -68,13 +68,13 @@ public class ChargebackOperation extends PaymentOperation {
status = PaymentPluginStatus.PROCESSED;
}
return new DefaultNoOpPaymentInfoPlugin(paymentStateContext.getPaymentId(),
- paymentStateContext.getTransactionId(),
- TransactionType.CHARGEBACK,
- paymentStateContext.getAmount(),
- paymentStateContext.getCurrency(),
- null,
- null,
- status,
- null);
+ paymentStateContext.getTransactionId(),
+ TransactionType.CHARGEBACK,
+ paymentStateContext.getAmount(),
+ paymentStateContext.getCurrency(),
+ null,
+ null,
+ status,
+ null);
}
}
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentAutomatonDAOHelper.java b/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentAutomatonDAOHelper.java
index 55fcb3f..4f72dae 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentAutomatonDAOHelper.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentAutomatonDAOHelper.java
@@ -25,17 +25,11 @@ import javax.annotation.Nullable;
import org.joda.time.DateTime;
import org.killbill.billing.ErrorCode;
-import org.killbill.billing.account.api.Account;
import org.killbill.billing.callcontext.InternalCallContext;
import org.killbill.billing.catalog.api.Currency;
-import org.killbill.billing.events.BusInternalEvent;
import org.killbill.billing.osgi.api.OSGIServiceRegistration;
-import org.killbill.billing.payment.api.DefaultPaymentErrorEvent;
-import org.killbill.billing.payment.api.DefaultPaymentInfoEvent;
-import org.killbill.billing.payment.api.DefaultPaymentPluginErrorEvent;
import org.killbill.billing.payment.api.PaymentApiException;
import org.killbill.billing.payment.api.TransactionStatus;
-import org.killbill.billing.payment.api.TransactionType;
import org.killbill.billing.payment.dao.PaymentDao;
import org.killbill.billing.payment.dao.PaymentMethodModelDao;
import org.killbill.billing.payment.dao.PaymentModelDao;
@@ -43,11 +37,9 @@ import org.killbill.billing.payment.dao.PaymentTransactionModelDao;
import org.killbill.billing.payment.plugin.api.PaymentPluginApi;
import org.killbill.billing.payment.plugin.api.PaymentTransactionInfoPlugin;
import org.killbill.bus.api.PersistentBus;
-import org.killbill.bus.api.PersistentBus.EventBusException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
public class PaymentAutomatonDAOHelper {
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentAutomatonRunner.java b/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentAutomatonRunner.java
index 7d79cfb..aed47f5 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentAutomatonRunner.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentAutomatonRunner.java
@@ -45,11 +45,11 @@ import org.killbill.billing.osgi.api.OSGIServiceRegistration;
import org.killbill.billing.payment.api.PaymentApiException;
import org.killbill.billing.payment.api.PluginProperty;
import org.killbill.billing.payment.api.TransactionType;
-import org.killbill.billing.payment.invoice.InvoicePaymentRoutingPluginApi;
import org.killbill.billing.payment.dao.PaymentDao;
import org.killbill.billing.payment.dao.PaymentModelDao;
import org.killbill.billing.payment.dispatcher.PluginDispatcher;
import org.killbill.billing.payment.glue.PaymentModule;
+import org.killbill.billing.payment.invoice.InvoicePaymentRoutingPluginApi;
import org.killbill.billing.payment.plugin.api.PaymentPluginApi;
import org.killbill.billing.util.callcontext.CallContext;
import org.killbill.billing.util.config.PaymentConfig;
@@ -102,7 +102,6 @@ public class PaymentAutomatonRunner {
@Nullable final BigDecimal amount, @Nullable final Currency currency,
final boolean shouldLockAccount, final OperationResult overridePluginOperationResult, final Iterable<PluginProperty> properties,
final CallContext callContext, final InternalCallContext internalCallContext) throws PaymentApiException {
-
final DateTime utcNow = clock.getUTCNow();
final PaymentStateContext paymentStateContext = new PaymentStateContext(isApiPayment, paymentId, transactionId, attemptId, paymentExternalKey, paymentTransactionExternalKey, transactionType,
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentEnteringStateCallback.java b/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentEnteringStateCallback.java
index e31416e..f3a81f7 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentEnteringStateCallback.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentEnteringStateCallback.java
@@ -82,7 +82,7 @@ public abstract class PaymentEnteringStateCallback implements EnteringStateCallb
// and decides to return null; in all cases this is seen as a PLUGIN_FAILURE
//
if (paymentInfoPlugin == null || paymentInfoPlugin.getStatus() == null) {
- return TransactionStatus.PLUGIN_FAILURE;
+ return TransactionStatus.PLUGIN_FAILURE;
}
//
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentLeavingStateCallback.java b/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentLeavingStateCallback.java
index 898669e..aa3a58b 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentLeavingStateCallback.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentLeavingStateCallback.java
@@ -54,7 +54,7 @@ public abstract class PaymentLeavingStateCallback implements LeavingStateCallbac
if (paymentStateContext.getTransactionId() == null) {
daoHelper.createNewPaymentTransaction();
} else {
- final PaymentTransactionModelDao transactionModelDao = daoHelper.paymentDao.getPaymentTransaction(paymentStateContext.getTransactionId(), paymentStateContext.getInternalCallContext());
+ final PaymentTransactionModelDao transactionModelDao = daoHelper.paymentDao.getPaymentTransaction(paymentStateContext.getTransactionId(), paymentStateContext.getInternalCallContext());
paymentStateContext.setPaymentTransactionModelDao(transactionModelDao);
}
} catch (PaymentApiException e) {
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentStateMachineHelper.java b/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentStateMachineHelper.java
index bc58d65..dfea014 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentStateMachineHelper.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/sm/PaymentStateMachineHelper.java
@@ -121,7 +121,6 @@ public class PaymentStateMachineHelper {
}
}
-
public String getErroredStateForTransaction(final TransactionType transactionType) {
switch (transactionType) {
case AUTHORIZE:
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/sm/PluginRoutingPaymentAutomatonRunner.java b/payment/src/main/java/org/killbill/billing/payment/core/sm/PluginRoutingPaymentAutomatonRunner.java
index 00e4435..1731335 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/sm/PluginRoutingPaymentAutomatonRunner.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/sm/PluginRoutingPaymentAutomatonRunner.java
@@ -71,7 +71,7 @@ public class PluginRoutingPaymentAutomatonRunner extends PaymentAutomatonRunner
@Inject
public PluginRoutingPaymentAutomatonRunner(@Named(PaymentModule.STATE_MACHINE_PAYMENT) final StateMachineConfig stateMachineConfig, final PaymentDao paymentDao, final GlobalLocker locker, final OSGIServiceRegistration<PaymentPluginApi> pluginRegistry,
final OSGIServiceRegistration<PaymentRoutingPluginApi> retryPluginRegistry, final Clock clock, final PaymentProcessor paymentProcessor, @Named(RETRYABLE_NAMED) final RetryServiceScheduler retryServiceScheduler,
- final PaymentConfig paymentConfig, @com.google.inject.name.Named(PLUGIN_EXECUTOR_NAMED) final ExecutorService executor, PaymentStateMachineHelper paymentSMHelper, RetryStateMachineHelper retrySMHelper, final PersistentBus eventBus) {
+ final PaymentConfig paymentConfig, @com.google.inject.name.Named(PLUGIN_EXECUTOR_NAMED) final ExecutorService executor, final PaymentStateMachineHelper paymentSMHelper, final RetryStateMachineHelper retrySMHelper, final PersistentBus eventBus) {
super(stateMachineConfig, paymentConfig, paymentDao, locker, pluginRegistry, clock, executor, eventBus, paymentSMHelper);
this.paymentProcessor = paymentProcessor;
this.paymentControlPluginRegistry = retryPluginRegistry;
@@ -93,23 +93,20 @@ public class PluginRoutingPaymentAutomatonRunner extends PaymentAutomatonRunner
@Nullable final BigDecimal amount, @Nullable final Currency currency,
final Iterable<PluginProperty> properties, @Nullable final List<String> paymentControlPluginNames,
final CallContext callContext, final InternalCallContext internalCallContext) throws PaymentApiException {
-
final RetryablePaymentStateContext paymentStateContext = createContext(isApiPayment, transactionType, account, paymentMethodId,
- paymentId, paymentExternalKey,
- paymentTransactionExternalKey,
- amount, currency,
- properties, paymentControlPluginNames, callContext, internalCallContext);
+ paymentId, paymentExternalKey,
+ paymentTransactionExternalKey,
+ amount, currency,
+ properties, paymentControlPluginNames, callContext, internalCallContext);
try {
-
final OperationCallback callback = createOperationCallback(transactionType, paymentStateContext);
final LeavingStateCallback leavingStateCallback = new RetryLeavingStateCallback(this, paymentStateContext, paymentDao, retrySMHelper.getInitialState(), retrySMHelper.getRetriedState(), transactionType);
final EnteringStateCallback enteringStateCallback = new RetryEnteringStateCallback(this, paymentStateContext, retryServiceScheduler);
state.runOperation(retrySMHelper.getRetryOperation(), callback, enteringStateCallback, leavingStateCallback);
-
- } catch (MissingEntryException e) {
+ } catch (final MissingEntryException e) {
throw new PaymentApiException(e.getCause(), ErrorCode.PAYMENT_INTERNAL_ERROR, Objects.firstNonNull(e.getMessage(), ""));
- } catch (OperationException e) {
+ } catch (final OperationException e) {
if (e.getCause() == null) {
// Unclear if we should check whether there is a result that was set and return that result.
throw new PaymentApiException(e, ErrorCode.PAYMENT_INTERNAL_ERROR, Objects.firstNonNull(e.getMessage(), ""));
@@ -123,18 +120,15 @@ public class PluginRoutingPaymentAutomatonRunner extends PaymentAutomatonRunner
}
public Payment completeRun(final RetryablePaymentStateContext paymentStateContext) throws PaymentApiException {
-
try {
-
final OperationCallback callback = new RetryCompletionOperationCallback(locker, paymentPluginDispatcher, paymentStateContext, paymentProcessor, paymentControlPluginRegistry);
final LeavingStateCallback leavingStateCallback = new RetryNoopLeavingStateCallback();
final EnteringStateCallback enteringStateCallback = new RetryEnteringStateCallback(this, paymentStateContext, retryServiceScheduler);
retrySMHelper.getInitialState().runOperation(retrySMHelper.getRetryOperation(), callback, enteringStateCallback, leavingStateCallback);
-
- } catch (MissingEntryException e) {
+ } catch (final MissingEntryException e) {
throw new PaymentApiException(e.getCause(), ErrorCode.PAYMENT_INTERNAL_ERROR, Objects.firstNonNull(e.getMessage(), ""));
- } catch (OperationException e) {
+ } catch (final OperationException e) {
if (e.getCause() == null) {
throw new PaymentApiException(e, ErrorCode.PAYMENT_INTERNAL_ERROR, Objects.firstNonNull(e.getMessage(), ""));
} else if (e.getCause() instanceof PaymentApiException) {
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/sm/PurchaseOperation.java b/payment/src/main/java/org/killbill/billing/payment/core/sm/PurchaseOperation.java
index 38757f5..446ca21 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/sm/PurchaseOperation.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/sm/PurchaseOperation.java
@@ -40,12 +40,12 @@ public class PurchaseOperation extends PaymentOperation {
protected PaymentTransactionInfoPlugin doCallSpecificOperationCallback() throws PaymentPluginApiException {
logger.debug("Starting PURCHASE for payment {} ({} {})", paymentStateContext.getPaymentId(), paymentStateContext.getAmount(), paymentStateContext.getCurrency());
return plugin.purchasePayment(paymentStateContext.getAccount().getId(),
- paymentStateContext.getPaymentId(),
- paymentStateContext.getTransactionId(),
- paymentStateContext.getPaymentMethodId(),
- paymentStateContext.getAmount(),
- paymentStateContext.getCurrency(),
- paymentStateContext.getProperties(),
- paymentStateContext.getCallContext());
+ paymentStateContext.getPaymentId(),
+ paymentStateContext.getTransactionId(),
+ paymentStateContext.getPaymentMethodId(),
+ paymentStateContext.getAmount(),
+ paymentStateContext.getCurrency(),
+ paymentStateContext.getProperties(),
+ paymentStateContext.getCallContext());
}
}
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryCaptureOperationCallback.java b/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryCaptureOperationCallback.java
index 1e5454e..e9d3a28 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryCaptureOperationCallback.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryCaptureOperationCallback.java
@@ -34,15 +34,15 @@ public class RetryCaptureOperationCallback extends RetryOperationCallback {
@Override
protected Payment doCallSpecificOperationCallback() throws PaymentApiException {
return paymentProcessor.createCapture(retryablePaymentStateContext.isApiPayment(),
- retryablePaymentStateContext.getAttemptId(),
- retryablePaymentStateContext.getAccount(),
- retryablePaymentStateContext.getPaymentMethodId(),
- retryablePaymentStateContext.getAmount(),
- retryablePaymentStateContext.getCurrency(),
- retryablePaymentStateContext.getPaymentTransactionExternalKey(),
- false,
- retryablePaymentStateContext.getProperties(),
- retryablePaymentStateContext.getCallContext(),
- retryablePaymentStateContext.getInternalCallContext());
+ retryablePaymentStateContext.getAttemptId(),
+ retryablePaymentStateContext.getAccount(),
+ retryablePaymentStateContext.getPaymentMethodId(),
+ retryablePaymentStateContext.getAmount(),
+ retryablePaymentStateContext.getCurrency(),
+ retryablePaymentStateContext.getPaymentTransactionExternalKey(),
+ false,
+ retryablePaymentStateContext.getProperties(),
+ retryablePaymentStateContext.getCallContext(),
+ retryablePaymentStateContext.getInternalCallContext());
}
}
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryEnteringStateCallback.java b/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryEnteringStateCallback.java
index d0247b6..d2d0ce3 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryEnteringStateCallback.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryEnteringStateCallback.java
@@ -42,7 +42,6 @@ public class RetryEnteringStateCallback implements EnteringStateCallback {
@Override
public void enteringState(final State state, final OperationCallback operationCallback, final OperationResult operationResult, final LeavingStateCallback leavingStateCallback) {
-
final PaymentAttemptModelDao attempt = retryablePaymentAutomatonRunner.paymentDao.getPaymentAttempt(paymentStateContext.getAttemptId(), paymentStateContext.internalCallContext);
final UUID transactionId = paymentStateContext.getCurrentTransaction() != null ?
paymentStateContext.getCurrentTransaction().getId() :
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 c118d18..f25fe62 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
@@ -176,7 +176,7 @@ public abstract class RetryOperationCallback extends OperationCallbackBase<Payme
}
protected void onCompletion(final List<String> paymentControlPluginNames, final PaymentRoutingContext paymentControlContext) {
- for (String pluginName : paymentControlPluginNames) {
+ for (final String pluginName : paymentControlPluginNames) {
final PaymentRoutingPluginApi plugin = paymentControlPluginRegistry.getServiceForName(pluginName);
if (plugin != null) {
try {
@@ -209,17 +209,16 @@ public abstract class RetryOperationCallback extends OperationCallbackBase<Payme
}
private PriorPaymentRoutingResult getPluginResult(final List<String> paymentControlPluginNames, final PaymentRoutingContext paymentControlContextArg) throws PaymentRoutingApiException {
-
// Return as soon as the first plugin aborts, or the last result for the last plugin
PriorPaymentRoutingResult prevResult = null;
PaymentRoutingContext inputPaymentRoutingContext = paymentControlContextArg;
- for (String pluginName : paymentControlPluginNames) {
+ for (final String pluginName : paymentControlPluginNames) {
final PaymentRoutingPluginApi plugin = paymentControlPluginRegistry.getServiceForName(pluginName);
if (plugin == null) {
// First call to plugin, we log warn, if plugin is not registered
- logger.warn("Skipping payment plugin invoice {} when fetching results", pluginName);
+ logger.warn("Skipping unknown payment control plugin {} when fetching results", pluginName);
continue;
}
prevResult = plugin.priorCall(inputPaymentRoutingContext, paymentStateContext.getProperties());
@@ -255,7 +254,7 @@ public abstract class RetryOperationCallback extends OperationCallbackBase<Payme
private DateTime getNextRetryDate(final List<String> paymentControlPluginNames, final PaymentRoutingContext paymentControlContext) {
DateTime candidate = null;
- for (String pluginName : paymentControlPluginNames) {
+ for (final String pluginName : paymentControlPluginNames) {
final PaymentRoutingPluginApi plugin = paymentControlPluginRegistry.getServiceForName(pluginName);
if (plugin != null) {
try {
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryStateMachineHelper.java b/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryStateMachineHelper.java
index 0f261cc..30bb1ed 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryStateMachineHelper.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/sm/RetryStateMachineHelper.java
@@ -37,7 +37,6 @@ public class RetryStateMachineHelper {
private static final String INIT_STATE_NAME = "INIT";
private static final String RETRIED_STATE_NAME = "RETRIED";
-
private final StateMachineConfig retryStateMachineConfig;
private final StateMachine retryStateMachine;
private final Operation retryOperation;
diff --git a/payment/src/main/java/org/killbill/billing/payment/dao/PaymentAttemptModelDao.java b/payment/src/main/java/org/killbill/billing/payment/dao/PaymentAttemptModelDao.java
index 85d218a..dfbb709 100644
--- a/payment/src/main/java/org/killbill/billing/payment/dao/PaymentAttemptModelDao.java
+++ b/payment/src/main/java/org/killbill/billing/payment/dao/PaymentAttemptModelDao.java
@@ -24,7 +24,6 @@ import javax.annotation.Nullable;
import org.joda.time.DateTime;
import org.killbill.billing.catalog.api.Currency;
-import org.killbill.billing.entity.EntityBase;
import org.killbill.billing.payment.api.TransactionType;
import org.killbill.billing.util.dao.TableName;
import org.killbill.billing.util.entity.Entity;
@@ -48,13 +47,13 @@ public class PaymentAttemptModelDao extends EntityModelDaoBase implements Entity
private BigDecimal amount;
private Currency currency;
private String pluginName;
- private byte [] pluginProperties;
+ private byte[] pluginProperties;
public PaymentAttemptModelDao() { /* For the DAO mapper */ }
public PaymentAttemptModelDao(final UUID accountId, final UUID paymentMethodId, final UUID id, @Nullable final DateTime createdDate, @Nullable final DateTime updatedDate,
final String paymentExternalKey, final UUID transactionId, final String transactionExternalKey, final TransactionType transactionType,
- final String stateName, final BigDecimal amount, final Currency currency, final String pluginName, final byte [] pluginProperties) {
+ final String stateName, final BigDecimal amount, final Currency currency, final String pluginName, final byte[] pluginProperties) {
super(id, createdDate, updatedDate);
this.accountId = accountId;
this.paymentMethodId = paymentMethodId;
@@ -71,7 +70,7 @@ public class PaymentAttemptModelDao extends EntityModelDaoBase implements Entity
public PaymentAttemptModelDao(final UUID accountId, final UUID paymentMethodId, @Nullable final DateTime createdDate, @Nullable final DateTime updatedDate,
final String paymentExternalKey, final UUID transactionId, final String transactionExternalKey, final TransactionType transactionType, final String stateName,
- final BigDecimal amount, final Currency currency, final List<String> paymentControlPluginNames, final byte [] pluginProperties) {
+ final BigDecimal amount, final Currency currency, final List<String> paymentControlPluginNames, final byte[] pluginProperties) {
this(accountId, paymentMethodId, UUID.randomUUID(), createdDate, updatedDate, paymentExternalKey, transactionId, transactionExternalKey, transactionType, stateName,
amount, currency, toPluginNames(paymentControlPluginNames), pluginProperties);
}
@@ -116,11 +115,11 @@ public class PaymentAttemptModelDao extends EntityModelDaoBase implements Entity
this.pluginName = pluginName;
}
- public byte [] getPluginProperties() {
+ public byte[] getPluginProperties() {
return pluginProperties;
}
- public void setPluginProperties(final byte [] pluginProperties) {
+ public void setPluginProperties(final byte[] pluginProperties) {
this.pluginProperties = pluginProperties;
}
@@ -168,7 +167,7 @@ public class PaymentAttemptModelDao extends EntityModelDaoBase implements Entity
if (pluginName == null) {
return ImmutableList.<String>of();
}
- final String [] parts = pluginName.split(",");
+ final String[] parts = pluginName.split(",");
return ImmutableList.<String>copyOf(parts);
}
diff --git a/payment/src/main/java/org/killbill/billing/payment/dao/PaymentModelDao.java b/payment/src/main/java/org/killbill/billing/payment/dao/PaymentModelDao.java
index 1fffb07..a670f23 100644
--- a/payment/src/main/java/org/killbill/billing/payment/dao/PaymentModelDao.java
+++ b/payment/src/main/java/org/killbill/billing/payment/dao/PaymentModelDao.java
@@ -21,7 +21,6 @@ import java.util.UUID;
import javax.annotation.Nullable;
import org.joda.time.DateTime;
-import org.killbill.billing.entity.EntityBase;
import org.killbill.billing.payment.api.Payment;
import org.killbill.billing.util.dao.TableName;
import org.killbill.billing.util.entity.dao.EntityModelDao;
@@ -40,7 +39,6 @@ public class PaymentModelDao extends EntityModelDaoBase implements EntityModelDa
private String stateName;
private String lastSuccessStateName;
-
public PaymentModelDao() { /* For the DAO mapper */ }
public PaymentModelDao(final UUID id, @Nullable final DateTime createdDate, @Nullable final DateTime updatedDate, final UUID accountId,
diff --git a/payment/src/test/java/org/killbill/billing/payment/api/TestPaymentApi.java b/payment/src/test/java/org/killbill/billing/payment/api/TestPaymentApi.java
index e0fc119..b795594 100644
--- a/payment/src/test/java/org/killbill/billing/payment/api/TestPaymentApi.java
+++ b/payment/src/test/java/org/killbill/billing/payment/api/TestPaymentApi.java
@@ -296,7 +296,7 @@ public class TestPaymentApi extends PaymentTestSuiteWithEmbeddedDB {
paymentApi.createPurchaseWithPaymentControl(account, account.getPaymentMethodId(), null, requestedAmount, Currency.USD, paymentExternalKey, transactionExternalKey,
createPropertiesForInvoice(invoice), INVOICE_PAYMENT, callContext);
Assert.fail("Unexpected success");
- } catch (PaymentApiException e) {
+ } catch (final PaymentApiException e) {
assertTrue(e.getCause() instanceof PaymentRoutingApiException);
}
}
@@ -377,7 +377,7 @@ public class TestPaymentApi extends PaymentTestSuiteWithEmbeddedDB {
try {
paymentApi.createRefundWithPaymentControl(account, payment.getId(), BigDecimal.TEN, Currency.USD, transactionExternalKey2,
refundProperties, INVOICE_PAYMENT, callContext);
- } catch (PaymentApiException e) {
+ } catch (final PaymentApiException e) {
assertTrue(e.getCause() instanceof PaymentRoutingApiException);
}
}
@@ -472,7 +472,7 @@ public class TestPaymentApi extends PaymentTestSuiteWithEmbeddedDB {
paymentApi.createPurchase(account, account.getPaymentMethodId(), payment.getId(), requestedAmount, Currency.AED, paymentExternalKey, transactionExternalKey,
ImmutableList.<PluginProperty>of(), callContext);
Assert.fail("Purchase not succeed after a chargeback");
- } catch (PaymentApiException e) {
+ } catch (final PaymentApiException e) {
Assert.assertTrue(true);
}
}
@@ -532,7 +532,7 @@ public class TestPaymentApi extends PaymentTestSuiteWithEmbeddedDB {
try {
paymentApi.createCapture(account, UUID.randomUUID(), requestedAmount, account.getCurrency(), UUID.randomUUID().toString(), ImmutableList.<PluginProperty>of(), callContext);
Assert.fail("Expected capture to fail...");
- } catch (PaymentApiException e) {
+ } catch (final PaymentApiException e) {
Assert.assertEquals(e.getCode(), ErrorCode.PAYMENT_NO_SUCH_PAYMENT.getCode());
final Payment latestPayment = paymentApi.getPayment(initialPayment.getId(), false, ImmutableList.<PluginProperty>of(), callContext);
@@ -552,7 +552,7 @@ public class TestPaymentApi extends PaymentTestSuiteWithEmbeddedDB {
try {
paymentApi.createCapture(account, initialPayment.getId(), requestedAmount, Currency.AMD, UUID.randomUUID().toString(), ImmutableList.<PluginProperty>of(), callContext);
Assert.fail("Expected capture to fail...");
- } catch (PaymentApiException e) {
+ } catch (final PaymentApiException e) {
Assert.assertEquals(e.getCode(), ErrorCode.PAYMENT_INVALID_PARAMETER.getCode());
final Payment latestPayment = paymentApi.getPayment(initialPayment.getId(), false, ImmutableList.<PluginProperty>of(), callContext);
@@ -574,13 +574,13 @@ public class TestPaymentApi extends PaymentTestSuiteWithEmbeddedDB {
// Hack the Database to make it look like it was a failure
paymentDao.updatePaymentAndTransactionOnCompletion(account.getId(), payment.getId(), TransactionType.AUTHORIZE, "AUTH_ERRORED", null,
payment.getTransactions().get(0).getId(), TransactionStatus.PLUGIN_FAILURE, null, null, null, null, internalCallContext);
- PaymentSqlDao paymentSqlDao = dbi.onDemand(PaymentSqlDao.class);
+ final PaymentSqlDao paymentSqlDao = dbi.onDemand(PaymentSqlDao.class);
paymentSqlDao.updateLastSuccessPaymentStateName(payment.getId().toString(), "AUTH_ERRORED", null, internalCallContext);
try {
paymentApi.createCapture(account, payment.getId(), requestedAmount, Currency.EUR, "tetard", ImmutableList.<PluginProperty>of(), callContext);
Assert.fail("Unexpected success");
- } catch (PaymentApiException e){
+ } catch (final PaymentApiException e){
Assert.assertEquals(e.getCode(), ErrorCode.PAYMENT_INVALID_OPERATION.getCode());
}
}