killbill-aplcache
Changes
payment/src/main/java/org/killbill/billing/payment/provider/DefaultNoOpPaymentProviderPlugin.java 289(+0 -289)
payment/src/main/java/org/killbill/billing/payment/provider/ExternalPaymentProviderPlugin.java 14(+5 -9)
payment/src/main/java/org/killbill/billing/payment/provider/NoOpPaymentProviderPluginModule.java 42(+0 -42)
Details
diff --git a/payment/src/main/java/org/killbill/billing/payment/provider/ExternalPaymentProviderPlugin.java b/payment/src/main/java/org/killbill/billing/payment/provider/ExternalPaymentProviderPlugin.java
index 788bb28..840defd 100644
--- a/payment/src/main/java/org/killbill/billing/payment/provider/ExternalPaymentProviderPlugin.java
+++ b/payment/src/main/java/org/killbill/billing/payment/provider/ExternalPaymentProviderPlugin.java
@@ -29,11 +29,11 @@ import org.killbill.billing.payment.api.PluginProperty;
import org.killbill.billing.payment.api.TransactionType;
import org.killbill.billing.payment.plugin.api.GatewayNotification;
import org.killbill.billing.payment.plugin.api.HostedPaymentPageFormDescriptor;
-import org.killbill.billing.payment.plugin.api.PaymentTransactionInfoPlugin;
import org.killbill.billing.payment.plugin.api.PaymentMethodInfoPlugin;
import org.killbill.billing.payment.plugin.api.PaymentPluginApi;
import org.killbill.billing.payment.plugin.api.PaymentPluginApiException;
import org.killbill.billing.payment.plugin.api.PaymentPluginStatus;
+import org.killbill.billing.payment.plugin.api.PaymentTransactionInfoPlugin;
import org.killbill.billing.util.callcontext.CallContext;
import org.killbill.billing.util.callcontext.TenantContext;
import org.killbill.billing.util.entity.DefaultPagination;
@@ -41,14 +41,11 @@ import org.killbill.billing.util.entity.Pagination;
import org.killbill.clock.Clock;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterators;
+import com.google.common.collect.ImmutableSet;
import com.google.inject.Inject;
/**
* Special plugin used to record external payments (i.e. payments not issued by Killbill), such as checks.
- * <p/>
- * The implementation is very similar to the no-op plugin, which it extends. This can potentially be an issue
- * if Killbill is processing a lot of external payments as they are all kept in memory.
*/
public class ExternalPaymentProviderPlugin implements PaymentPluginApi {
@@ -88,18 +85,17 @@ public class ExternalPaymentProviderPlugin implements PaymentPluginApi {
@Override
public List<PaymentTransactionInfoPlugin> getPaymentInfo(final UUID kbAccountId, final UUID kbPaymentId, final Iterable<PluginProperty> properties, final TenantContext context) throws PaymentPluginApiException {
- // TODO broken...
return ImmutableList.of();
}
@Override
public Pagination<PaymentTransactionInfoPlugin> searchPayments(final String searchKey, final Long offset, final Long limit, final Iterable<PluginProperty> properties, final TenantContext tenantContext) throws PaymentPluginApiException {
- return new DefaultPagination<PaymentTransactionInfoPlugin>(offset, limit, 0L, 0L, Iterators.<PaymentTransactionInfoPlugin>emptyIterator());
+ return new DefaultPagination<PaymentTransactionInfoPlugin>(offset, limit, 0L, 0L, ImmutableSet.<PaymentTransactionInfoPlugin>of().iterator());
}
@Override
public PaymentTransactionInfoPlugin refundPayment(final UUID kbAccountId, final UUID kbPaymentId, final UUID kbTransactionId, final UUID kbPaymentMethodId, final BigDecimal refundAmount, final Currency currency, final Iterable<PluginProperty> properties, final CallContext context) throws PaymentPluginApiException {
- return new DefaultNoOpPaymentInfoPlugin(kbPaymentId, kbTransactionId, TransactionType.REFUND, BigDecimal.ZERO, currency, clock.getUTCNow(), clock.getUTCNow(), PaymentPluginStatus.PROCESSED, null);
+ return new DefaultNoOpPaymentInfoPlugin(kbPaymentId, kbTransactionId, TransactionType.REFUND, refundAmount, currency, clock.getUTCNow(), clock.getUTCNow(), PaymentPluginStatus.PROCESSED, null);
}
@Override
@@ -126,7 +122,7 @@ public class ExternalPaymentProviderPlugin implements PaymentPluginApi {
@Override
public Pagination<PaymentMethodPlugin> searchPaymentMethods(final String searchKey, final Long offset, final Long limit, final Iterable<PluginProperty> properties, final TenantContext tenantContext) throws PaymentPluginApiException {
- return new DefaultPagination<PaymentMethodPlugin>(offset, limit, 0L, 0L, Iterators.<PaymentMethodPlugin>emptyIterator());
+ return new DefaultPagination<PaymentMethodPlugin>(offset, limit, 0L, 0L, ImmutableSet.<PaymentMethodPlugin>of().iterator());
}
@Override
diff --git a/payment/src/test/java/org/killbill/billing/payment/provider/MockPaymentProviderPlugin.java b/payment/src/test/java/org/killbill/billing/payment/provider/MockPaymentProviderPlugin.java
index f3b7088..102097d 100644
--- a/payment/src/test/java/org/killbill/billing/payment/provider/MockPaymentProviderPlugin.java
+++ b/payment/src/test/java/org/killbill/billing/payment/provider/MockPaymentProviderPlugin.java
@@ -34,8 +34,8 @@ import org.killbill.billing.payment.api.TestPaymentMethodPlugin;
import org.killbill.billing.payment.api.TransactionType;
import org.killbill.billing.payment.plugin.api.GatewayNotification;
import org.killbill.billing.payment.plugin.api.HostedPaymentPageFormDescriptor;
-import org.killbill.billing.payment.plugin.api.NoOpPaymentPluginApi;
import org.killbill.billing.payment.plugin.api.PaymentMethodInfoPlugin;
+import org.killbill.billing.payment.plugin.api.PaymentPluginApi;
import org.killbill.billing.payment.plugin.api.PaymentPluginApiException;
import org.killbill.billing.payment.plugin.api.PaymentPluginStatus;
import org.killbill.billing.payment.plugin.api.PaymentTransactionInfoPlugin;
@@ -54,7 +54,7 @@ import com.google.inject.Inject;
* This MockPaymentProviderPlugin only works for a single accounts as we don't specify the accountId
* for operations such as addPaymentMethod.
*/
-public class MockPaymentProviderPlugin implements NoOpPaymentPluginApi {
+public class MockPaymentProviderPlugin implements PaymentPluginApi {
public static final String PLUGIN_PROPERTY_PAYMENT_PLUGIN_STATUS_OVERRIDE = "paymentPluginStatusOverride";
@@ -182,7 +182,6 @@ public class MockPaymentProviderPlugin implements NoOpPaymentPluginApi {
clear();
}
- @Override
public void clear() {
makeNextInvoiceFailWithException.set(false);
makeAllInvoicesFailWithError.set(false);
@@ -193,22 +192,18 @@ public class MockPaymentProviderPlugin implements NoOpPaymentPluginApi {
paymentMethodsInfo.clear();
}
- @Override
public void makeNextPaymentFailWithError() {
makeNextInvoiceFailWithError.set(true);
}
- @Override
public void makeNextPaymentFailWithException() {
makeNextInvoiceFailWithException.set(true);
}
- @Override
public void makeAllInvoicesFailWithError(final boolean failure) {
makeAllInvoicesFailWithError.set(failure);
}
- @Override
public void updatePaymentTransactions(final UUID paymentId, final List<PaymentTransactionInfoPlugin> newTransactions) {
if (paymentTransactions.containsKey(paymentId.toString())) {
paymentTransactions.put (paymentId.toString(), newTransactions);