killbill-memoizeit
Changes
invoice/src/main/java/org/killbill/billing/invoice/generator/FixedAndRecurringInvoiceItemGenerator.java 6(+3 -3)
invoice/src/test/java/org/killbill/billing/invoice/generator/TestFixedAndRecurringInvoiceItemGenerator.java 4(+2 -2)
invoice/src/test/java/org/killbill/billing/invoice/model/TestExternalChargeInvoiceItem.java 8(+5 -3)
invoice/src/test/java/org/killbill/billing/invoice/usage/TestContiguousIntervalConsumableInArrear.java 6(+3 -3)
payment/src/main/java/org/killbill/billing/payment/core/janitor/IncompletePaymentAttemptTask.java 8(+6 -2)
payment/src/main/java/org/killbill/billing/payment/core/janitor/IncompletePaymentTransactionTask.java 8(+6 -2)
pom.xml 2(+1 -1)
profiles/killbill/src/main/java/org/killbill/billing/server/listeners/KillbillGuiceListener.java 16(+1 -15)
Details
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/generator/FixedAndRecurringInvoiceItemGenerator.java b/invoice/src/main/java/org/killbill/billing/invoice/generator/FixedAndRecurringInvoiceItemGenerator.java
index f024a1b..9650e8c 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/generator/FixedAndRecurringInvoiceItemGenerator.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/generator/FixedAndRecurringInvoiceItemGenerator.java
@@ -1,6 +1,6 @@
/*
- * Copyright 2014-2015 Groupon, Inc
- * Copyright 2014-2015 The Billing Project, LLC
+ * Copyright 2014-2016 Groupon, Inc
+ * Copyright 2014-2016 The Billing Project, LLC
*
* The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
@@ -202,7 +202,7 @@ public class FixedAndRecurringInvoiceItemGenerator extends InvoiceItemGenerator
}
final BigDecimal rate = thisEvent.getRecurringPrice();
if (rate != null) {
- final BigDecimal amount = KillBillMoney.of(itemDatum.getNumberOfCycles().multiply(rate), currency);
+ final BigDecimal amount = itemDatum.getNumberOfCycles().multiply(rate);
final RecurringInvoiceItem recurringItem = new RecurringInvoiceItem(invoiceId,
accountId,
thisEvent.getSubscription().getBundleId(),
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/model/InvoiceItemBase.java b/invoice/src/main/java/org/killbill/billing/invoice/model/InvoiceItemBase.java
index b3f12d8..f143825 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/model/InvoiceItemBase.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/model/InvoiceItemBase.java
@@ -1,7 +1,9 @@
/*
- * Copyright 2010-2013 Ning, Inc.
+ * Copyright 2010-2014 Ning, Inc.
+ * Copyright 2014-2016 Groupon, Inc
+ * Copyright 2014-2016 The Billing Project, LLC
*
- * Ning licenses this file to you under the Apache License, version 2.0
+ * The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
*
@@ -27,6 +29,7 @@ import org.killbill.billing.catalog.api.Currency;
import org.killbill.billing.entity.EntityBase;
import org.killbill.billing.invoice.api.InvoiceItem;
import org.killbill.billing.invoice.api.InvoiceItemType;
+import org.killbill.billing.util.currency.KillBillMoney;
public abstract class InvoiceItemBase extends EntityBase implements InvoiceItem {
@@ -109,7 +112,7 @@ public abstract class InvoiceItemBase extends EntityBase implements InvoiceItem
this.usageName = usageName;
this.startDate = startDate;
this.endDate = endDate;
- this.amount = amount;
+ this.amount = amount == null || currency == null ? amount : KillBillMoney.of(amount, currency);
this.currency = currency;
this.rate = rate;
this.linkedItemId = reversedItemId;
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/tree/Item.java b/invoice/src/main/java/org/killbill/billing/invoice/tree/Item.java
index f164b76..c5dd0d3 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/tree/Item.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/tree/Item.java
@@ -128,13 +128,13 @@ public class Item {
.multiply(amount) : amount;
if (action == ItemAction.ADD) {
- return new RecurringInvoiceItem(id, createdDate, invoiceId, accountId, bundleId, subscriptionId, planName, phaseName, newStartDate, newEndDate, KillBillMoney.of(positiveAmount, currency), rate, currency);
+ return new RecurringInvoiceItem(id, createdDate, invoiceId, accountId, bundleId, subscriptionId, planName, phaseName, newStartDate, newEndDate, positiveAmount, rate, currency);
} else {
// We first compute the maximum amount after adjustment and that sets the amount limit of how much can be repaired.
final BigDecimal maxAvailableAmountAfterAdj = amount.subtract(adjustedAmount);
final BigDecimal maxAvailableAmountForRepair = maxAvailableAmountAfterAdj.subtract(currentRepairedAmount);
final BigDecimal positiveAmountForRepair = positiveAmount.compareTo(maxAvailableAmountForRepair) <= 0 ? positiveAmount : maxAvailableAmountForRepair;
- return positiveAmountForRepair.compareTo(BigDecimal.ZERO) > 0 ? new RepairAdjInvoiceItem(targetInvoiceId, accountId, newStartDate, newEndDate, KillBillMoney.of(positiveAmountForRepair.negate(), currency), currency, linkedId) : null;
+ return positiveAmountForRepair.compareTo(BigDecimal.ZERO) > 0 ? new RepairAdjInvoiceItem(targetInvoiceId, accountId, newStartDate, newEndDate, positiveAmountForRepair.negate(), currency, linkedId) : null;
}
}
diff --git a/invoice/src/test/java/org/killbill/billing/invoice/dao/TestInvoiceItemDao.java b/invoice/src/test/java/org/killbill/billing/invoice/dao/TestInvoiceItemDao.java
index 99e777e..20c682e 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/dao/TestInvoiceItemDao.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/dao/TestInvoiceItemDao.java
@@ -1,7 +1,9 @@
/*
- * Copyright 2010-2013 Ning, Inc.
+ * Copyright 2010-2014 Ning, Inc.
+ * Copyright 2014-2016 Groupon, Inc
+ * Copyright 2014-2016 The Billing Project, LLC
*
- * Ning licenses this file to you under the Apache License, version 2.0
+ * The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
*
@@ -193,9 +195,8 @@ public class TestInvoiceItemDao extends InvoiceTestSuiteWithEmbeddedDB {
@Test(groups = "slow")
public void testExternalChargeForVariousCurrenciesInvoiceSqlDao() throws Exception {
- // 1 decimal place
+ // 0 decimal place
createAndVerifyExternalCharge(new BigDecimal("10"), Currency.VND);
- createAndVerifyExternalCharge(new BigDecimal("10.1"), Currency.VND);
// 2 decimal places
createAndVerifyExternalCharge(new BigDecimal("10"), Currency.USD);
createAndVerifyExternalCharge(new BigDecimal("10.1"), Currency.USD);
@@ -215,6 +216,8 @@ public class TestInvoiceItemDao extends InvoiceTestSuiteWithEmbeddedDB {
createAndVerifyExternalCharge(new BigDecimal("10.000001"), Currency.BTC);
createAndVerifyExternalCharge(new BigDecimal("10.0000001"), Currency.BTC);
createAndVerifyExternalCharge(new BigDecimal("10.00000001"), Currency.BTC);
+ // Malagasy ariary is subdivided into 5 iraimbilanja
+ createAndVerifyExternalCharge(new BigDecimal("10.2"), Currency.MGA);
}
private void createAndVerifyExternalCharge(final BigDecimal amount, final Currency currency) throws EntityPersistenceException {
diff --git a/invoice/src/test/java/org/killbill/billing/invoice/generator/TestFixedAndRecurringInvoiceItemGenerator.java b/invoice/src/test/java/org/killbill/billing/invoice/generator/TestFixedAndRecurringInvoiceItemGenerator.java
index 706d61b..a42f7de 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/generator/TestFixedAndRecurringInvoiceItemGenerator.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/generator/TestFixedAndRecurringInvoiceItemGenerator.java
@@ -228,7 +228,7 @@ public class TestFixedAndRecurringInvoiceItemGenerator extends InvoiceTestSuiteN
fixedAndRecurringInvoiceItemGenerator.processFixedBillingEvents(invoiceId, account.getId(), events, targetDate, Currency.USD, proposedItems);
assertEquals(proposedItems.size(), 1);
assertEquals(proposedItems.get(0).getInvoiceItemType(), InvoiceItemType.FIXED);
- assertEquals(proposedItems.get(0).getAmount(), fixedPriceAmount);
+ assertEquals(proposedItems.get(0).getAmount().compareTo(fixedPriceAmount), 0);
}
@@ -283,7 +283,7 @@ public class TestFixedAndRecurringInvoiceItemGenerator extends InvoiceTestSuiteN
fixedAndRecurringInvoiceItemGenerator.processFixedBillingEvents(invoiceId, account.getId(), events, targetDate, Currency.USD, proposedItems);
assertEquals(proposedItems.size(), 1);
assertEquals(proposedItems.get(0).getInvoiceItemType(), InvoiceItemType.FIXED);
- assertEquals(proposedItems.get(0).getAmount(), fixedPriceAmount3);
+ assertEquals(proposedItems.get(0).getAmount().compareTo(fixedPriceAmount3), 0);
}
}
diff --git a/invoice/src/test/java/org/killbill/billing/invoice/model/TestExternalChargeInvoiceItem.java b/invoice/src/test/java/org/killbill/billing/invoice/model/TestExternalChargeInvoiceItem.java
index 35f50a9..67ff4f8 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/model/TestExternalChargeInvoiceItem.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/model/TestExternalChargeInvoiceItem.java
@@ -1,7 +1,9 @@
/*
- * Copyright 2010-2013 Ning, Inc.
+ * Copyright 2010-2014 Ning, Inc.
+ * Copyright 2014-2016 Groupon, Inc
+ * Copyright 2014-2016 The Billing Project, LLC
*
- * Ning licenses this file to you under the Apache License, version 2.0
+ * The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
*
@@ -41,7 +43,7 @@ public class TestExternalChargeInvoiceItem extends InvoiceTestSuiteNoDB {
final ExternalChargeInvoiceItem item = new ExternalChargeInvoiceItem(id, invoiceId, accountId, bundleId, description,
effectiveDate, amount, currency);
Assert.assertEquals(item.getAccountId(), accountId);
- Assert.assertEquals(item.getAmount(), amount);
+ Assert.assertEquals(item.getAmount().compareTo(amount), 0);
Assert.assertEquals(item.getBundleId(), bundleId);
Assert.assertEquals(item.getCurrency(), currency);
Assert.assertEquals(item.getInvoiceItemType(), InvoiceItemType.EXTERNAL_CHARGE);
diff --git a/invoice/src/test/java/org/killbill/billing/invoice/TestInvoiceDispatcher.java b/invoice/src/test/java/org/killbill/billing/invoice/TestInvoiceDispatcher.java
index 0695857..f5eeeaa 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/TestInvoiceDispatcher.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/TestInvoiceDispatcher.java
@@ -1,7 +1,7 @@
/*
* Copyright 2010-2013 Ning, Inc.
- * Copyright 2014-2015 Groupon, Inc
- * Copyright 2014-2015 The Billing Project, LLC
+ * Copyright 2014-2016 Groupon, Inc
+ * Copyright 2014-2016 The Billing Project, LLC
*
* The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
@@ -152,7 +152,7 @@ public class TestInvoiceDispatcher extends InvoiceTestSuiteWithEmbeddedDB {
Assert.assertEquals(invoiceItems.get(0).getInvoiceItemType(), InvoiceItemType.FIXED);
Assert.assertEquals(invoiceItems.get(0).getStartDate(), new LocalDate("2012-05-01"));
Assert.assertNull(invoiceItems.get(0).getEndDate());
- Assert.assertEquals(invoiceItems.get(0).getAmount(), BigDecimal.ZERO);
+ Assert.assertEquals(invoiceItems.get(0).getAmount().compareTo(BigDecimal.ZERO), 0);
Assert.assertNull(invoiceItems.get(0).getRate());
Assert.assertEquals(invoiceItems.get(1).getInvoiceItemType(), InvoiceItemType.RECURRING);
diff --git a/invoice/src/test/java/org/killbill/billing/invoice/tree/TestSubscriptionItemTree.java b/invoice/src/test/java/org/killbill/billing/invoice/tree/TestSubscriptionItemTree.java
index f9a86d1..102f9c7 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/tree/TestSubscriptionItemTree.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/tree/TestSubscriptionItemTree.java
@@ -1,7 +1,7 @@
/*
* Copyright 2010-2014 Ning, Inc.
- * Copyright 2014-2015 Groupon, Inc
- * Copyright 2014-2015 The Billing Project, LLC
+ * Copyright 2014-2016 Groupon, Inc
+ * Copyright 2014-2016 The Billing Project, LLC
*
* The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
@@ -34,7 +34,6 @@ import org.killbill.billing.invoice.model.ItemAdjInvoiceItem;
import org.killbill.billing.invoice.model.RecurringInvoiceItem;
import org.killbill.billing.invoice.model.RepairAdjInvoiceItem;
import org.killbill.billing.util.jackson.ObjectMapper;
-import org.testng.Assert;
import org.testng.annotations.Test;
import com.google.common.collect.Lists;
@@ -826,8 +825,7 @@ public class TestSubscriptionItemTree extends InvoiceTestSuiteNoDB {
}
@Test(groups = "fast")
- public void verifyJson() {
-
+ public void verifyJson() throws IOException {
final SubscriptionItemTree tree = new SubscriptionItemTree(subscriptionId, invoiceId);
final UUID id1 = UUID.fromString("e8ba6ce7-9bd4-417d-af53-70951ecaa99f");
final InvoiceItem yearly1 = new RecurringInvoiceItem(id1, new DateTime(), invoiceId, accountId, bundleId, subscriptionId, planName, phaseName, new LocalDate("2014-01-01"), new LocalDate("2015-01-01"), BigDecimal.TEN, BigDecimal.TEN, currency);
@@ -842,17 +840,12 @@ public class TestSubscriptionItemTree extends InvoiceTestSuiteNoDB {
tree.addItem(repair);
final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- try {
- tree.getRoot().jsonSerializeTree(new ObjectMapper(), outputStream);
-
- final String json = outputStream.toString("UTF-8");
- final String expectedJson = "[{\"start\":\"2014-01-01\",\"end\":\"2015-01-01\",\"items\":[{\"id\":\"e8ba6ce7-9bd4-417d-af53-70951ecaa99f\",\"startDate\":\"2014-01-01\",\"endDate\":\"2015-01-01\",\"amount\":10,\"currency\":\"USD\",\"linkedId\":null,\"action\":\"ADD\"}]},[{\"start\":\"2014-08-01\",\"end\":\"2015-01-01\",\"items\":[{\"id\":\"48db1317-9a6e-4666-bcc5-fc7d3d0defc8\",\"startDate\":\"2014-08-01\",\"endDate\":\"2015-01-01\",\"amount\":1,\"currency\":\"USD\",\"linkedId\":null,\"action\":\"ADD\"},{\"id\":\"02ec57f5-2723-478b-86ba-ebeaedacb9db\",\"startDate\":\"2014-08-01\",\"endDate\":\"2015-01-01\",\"amount\":10,\"currency\":\"USD\",\"linkedId\":\"e8ba6ce7-9bd4-417d-af53-70951ecaa99f\",\"action\":\"CANCEL\"}]}]]";
+ tree.getRoot().jsonSerializeTree(new ObjectMapper(), outputStream);
- assertEquals(json, expectedJson);
+ final String json = outputStream.toString("UTF-8");
+ final String expectedJson = "[{\"start\":\"2014-01-01\",\"end\":\"2015-01-01\",\"items\":[{\"id\":\"e8ba6ce7-9bd4-417d-af53-70951ecaa99f\",\"startDate\":\"2014-01-01\",\"endDate\":\"2015-01-01\",\"amount\":10.00,\"currency\":\"USD\",\"linkedId\":null,\"action\":\"ADD\"}]},[{\"start\":\"2014-08-01\",\"end\":\"2015-01-01\",\"items\":[{\"id\":\"48db1317-9a6e-4666-bcc5-fc7d3d0defc8\",\"startDate\":\"2014-08-01\",\"endDate\":\"2015-01-01\",\"amount\":1.00,\"currency\":\"USD\",\"linkedId\":null,\"action\":\"ADD\"},{\"id\":\"02ec57f5-2723-478b-86ba-ebeaedacb9db\",\"startDate\":\"2014-08-01\",\"endDate\":\"2015-01-01\",\"amount\":10.00,\"currency\":\"USD\",\"linkedId\":\"e8ba6ce7-9bd4-417d-af53-70951ecaa99f\",\"action\":\"CANCEL\"}]}]]";
- } catch (final IOException e) {
- Assert.fail(e.getMessage());
- }
+ assertEquals(json, expectedJson);
}
@Test(groups = "fast", description = "https://github.com/killbill/killbill/issues/286")
diff --git a/invoice/src/test/java/org/killbill/billing/invoice/usage/TestContiguousIntervalConsumableInArrear.java b/invoice/src/test/java/org/killbill/billing/invoice/usage/TestContiguousIntervalConsumableInArrear.java
index dd025c0..b7436b8 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/usage/TestContiguousIntervalConsumableInArrear.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/usage/TestContiguousIntervalConsumableInArrear.java
@@ -1,7 +1,7 @@
/*
* Copyright 2010-2013 Ning, Inc.
- * Copyright 2014 Groupon, Inc
- * Copyright 2014 The Billing Project, LLC
+ * Copyright 2014-2016 Groupon, Inc
+ * Copyright 2014-2016 The Billing Project, LLC
*
* The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
@@ -112,7 +112,7 @@ public class TestContiguousIntervalConsumableInArrear extends TestUsageInArrearB
existingUsage.add(ii5);
final BigDecimal result = intervalConsumableInArrear.computeBilledUsage(intervalConsumableInArrear.getBilledItems(startDate, endDate, existingUsage));
- assertEquals(result, BigDecimal.TEN.add(BigDecimal.TEN));
+ assertEquals(result.compareTo(BigDecimal.TEN.add(BigDecimal.TEN)), 0);
}
@Test(groups = "fast")
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/janitor/CompletionTaskBase.java b/payment/src/main/java/org/killbill/billing/payment/core/janitor/CompletionTaskBase.java
index 6a86654..0444d7f 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/janitor/CompletionTaskBase.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/janitor/CompletionTaskBase.java
@@ -1,6 +1,6 @@
/*
- * Copyright 2014-2015 Groupon, Inc
- * Copyright 2014-2015 The Billing Project, LLC
+ * Copyright 2014-2016 Groupon, Inc
+ * Copyright 2014-2016 The Billing Project, LLC
*
* The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
@@ -48,7 +48,7 @@ import org.slf4j.LoggerFactory;
abstract class CompletionTaskBase<T> implements Runnable {
- protected Logger log = LoggerFactory.getLogger(CompletionTaskBase.class);
+ private static final Logger log = LoggerFactory.getLogger(CompletionTaskBase.class);
protected final PaymentConfig paymentConfig;
protected final Clock clock;
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/janitor/IncompletePaymentAttemptTask.java b/payment/src/main/java/org/killbill/billing/payment/core/janitor/IncompletePaymentAttemptTask.java
index ee44e8b..0e96443 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/janitor/IncompletePaymentAttemptTask.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/janitor/IncompletePaymentAttemptTask.java
@@ -1,6 +1,6 @@
/*
- * Copyright 2014-2015 Groupon, Inc
- * Copyright 2014-2015 The Billing Project, LLC
+ * Copyright 2014-2016 Groupon, Inc
+ * Copyright 2014-2016 The Billing Project, LLC
*
* The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
@@ -48,6 +48,8 @@ import org.killbill.billing.util.entity.Pagination;
import org.killbill.clock.Clock;
import org.killbill.commons.locker.GlobalLocker;
import org.killbill.notificationq.api.NotificationQueue;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
@@ -61,6 +63,8 @@ import com.google.common.collect.Iterables;
*/
public class IncompletePaymentAttemptTask extends CompletionTaskBase<PaymentAttemptModelDao> {
+ private static final Logger log = LoggerFactory.getLogger(IncompletePaymentAttemptTask.class);
+
//
// Each paymentAttempt *should* transition to a new state, so fetching a limited size will still allow us to progress (as opposed to fetching the same entries over and over)
// We also don't expect to see too many entries in the INIT state.
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/janitor/IncompletePaymentTransactionTask.java b/payment/src/main/java/org/killbill/billing/payment/core/janitor/IncompletePaymentTransactionTask.java
index 3be1735..29a722e 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/janitor/IncompletePaymentTransactionTask.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/janitor/IncompletePaymentTransactionTask.java
@@ -1,6 +1,6 @@
/*
- * Copyright 2014-2015 Groupon, Inc
- * Copyright 2014-2015 The Billing Project, LLC
+ * Copyright 2014-2016 Groupon, Inc
+ * Copyright 2014-2016 The Billing Project, LLC
*
* The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
@@ -54,6 +54,8 @@ import org.killbill.commons.locker.GlobalLocker;
import org.killbill.notificationq.api.NotificationEvent;
import org.killbill.notificationq.api.NotificationQueue;
import org.skife.config.TimeSpan;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
@@ -64,6 +66,8 @@ import com.google.common.collect.Iterables;
public class IncompletePaymentTransactionTask extends CompletionTaskBase<PaymentTransactionModelDao> {
+ private static final Logger log = LoggerFactory.getLogger(IncompletePaymentTransactionTask.class);
+
private static final ImmutableList<TransactionStatus> TRANSACTION_STATUSES_TO_CONSIDER = ImmutableList.<TransactionStatus>builder()
.add(TransactionStatus.PENDING)
.add(TransactionStatus.UNKNOWN)
diff --git a/payment/src/test/java/org/killbill/billing/payment/logging/SpyLogger.java b/payment/src/test/java/org/killbill/billing/payment/logging/SpyLogger.java
index 62efbe4..56270cd 100644
--- a/payment/src/test/java/org/killbill/billing/payment/logging/SpyLogger.java
+++ b/payment/src/test/java/org/killbill/billing/payment/logging/SpyLogger.java
@@ -1,6 +1,6 @@
/*
- * Copyright 2014-2015 Groupon, Inc
- * Copyright 2014-2015 The Billing Project, LLC
+ * Copyright 2014-2016 Groupon, Inc
+ * Copyright 2014-2016 The Billing Project, LLC
*
* The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
@@ -14,12 +14,15 @@
* License for the specific language governing permissions and limitations
* under the License.
*/
+
package org.killbill.billing.payment.logging;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.LinkedBlockingQueue;
import java.util.regex.Pattern;
+import org.slf4j.event.SubstituteLoggingEvent;
import org.slf4j.helpers.FormattingTuple;
import org.slf4j.helpers.MessageFormatter;
import org.slf4j.helpers.SubstituteLogger;
@@ -28,10 +31,10 @@ import com.google.common.base.Optional;
public class SpyLogger extends SubstituteLogger {
- private List<LogMessage> logMessageList = new ArrayList<LogMessage>();
+ private final List<LogMessage> logMessageList = new ArrayList<LogMessage>();
public SpyLogger(String loggerName) {
- super(loggerName);
+ super(loggerName, new LinkedBlockingQueue<SubstituteLoggingEvent>(), false);
}
public static final String LOG_LEVEL_TRACE = "TRACE";
pom.xml 2(+1 -1)
diff --git a/pom.xml b/pom.xml
index 1c0e5ff..76d2dcb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
<parent>
<artifactId>killbill-oss-parent</artifactId>
<groupId>org.kill-bill.billing</groupId>
- <version>0.86</version>
+ <version>0.88</version>
</parent>
<artifactId>killbill</artifactId>
<version>0.16.4-SNAPSHOT</version>
diff --git a/profiles/killbill/src/main/java/org/killbill/billing/server/listeners/KillbillGuiceListener.java b/profiles/killbill/src/main/java/org/killbill/billing/server/listeners/KillbillGuiceListener.java
index 5ec3889..51a2a75 100644
--- a/profiles/killbill/src/main/java/org/killbill/billing/server/listeners/KillbillGuiceListener.java
+++ b/profiles/killbill/src/main/java/org/killbill/billing/server/listeners/KillbillGuiceListener.java
@@ -35,11 +35,9 @@ import org.killbill.billing.server.modules.KillbillServerModule;
import org.killbill.billing.server.security.TenantFilter;
import org.killbill.bus.api.PersistentBus;
import org.killbill.commons.skeleton.modules.BaseServerModuleBuilder;
-import org.slf4j.ILoggerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.helpers.MDCInsertingServletFilter;
import com.google.common.collect.ImmutableMap;
import com.google.inject.Module;
@@ -69,7 +67,7 @@ public class KillbillGuiceListener extends KillbillPlatformGuiceListener {
builder.addJerseyFilter(RequestDataFilter.class.getName());
// Logback default MDC
- builder.addJerseyFilter(MDCInsertingServletFilter.class.getName());
+ builder.addFilter("/*", MDCInsertingServletFilter.class);
// Kill Bill specific MDC
builder.addJerseyFilter(KillbillMDCInsertingServletFilter.class.getName());
@@ -114,18 +112,6 @@ public class KillbillGuiceListener extends KillbillPlatformGuiceListener {
}
@Override
- protected void startLifecycleStage1() {
- super.startLifecycleStage1();
-
- // Work-around for http://jira.qos.ch/browse/LOGBACK-730
- final ILoggerFactory iLoggerFactory = LoggerFactory.getILoggerFactory();
- if (iLoggerFactory instanceof LoggerContext) {
- final LoggerContext lc = (LoggerContext) iLoggerFactory;
- lc.setPackagingDataEnabled(false);
- }
- }
-
- @Override
protected void startLifecycleStage2() {
killbilleventHandler = injector.getInstance(KillbillEventHandler.class);
diff --git a/profiles/killbill/src/main/java/org/killbill/billing/server/modules/KillbillServerModule.java b/profiles/killbill/src/main/java/org/killbill/billing/server/modules/KillbillServerModule.java
index 9b2a102..c8c94c2 100644
--- a/profiles/killbill/src/main/java/org/killbill/billing/server/modules/KillbillServerModule.java
+++ b/profiles/killbill/src/main/java/org/killbill/billing/server/modules/KillbillServerModule.java
@@ -90,6 +90,7 @@ import org.killbill.commons.jdbi.mapper.LowerToCamelBeanMapperFactory;
import org.skife.jdbi.v2.ResultSetMapperFactory;
import org.skife.jdbi.v2.tweak.ResultSetMapper;
+import ch.qos.logback.classic.helpers.MDCInsertingServletFilter;
import com.google.inject.multibindings.Multibinder;
public class KillbillServerModule extends KillbillPlatformModule {
@@ -200,6 +201,7 @@ public class KillbillServerModule extends KillbillPlatformModule {
protected void configureFilters() {
bind(ResponseCorsFilter.class).asEagerSingleton();
+ bind(MDCInsertingServletFilter.class).asEagerSingleton();
}
protected void configurePushNotification() {
diff --git a/profiles/killbill/src/main/resources/logback.xml b/profiles/killbill/src/main/resources/logback.xml
index 2625e87..75cf715 100644
--- a/profiles/killbill/src/main/resources/logback.xml
+++ b/profiles/killbill/src/main/resources/logback.xml
@@ -43,7 +43,7 @@
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
- <pattern>%date [%thread] %maskedMsg%n%ex</pattern>
+ <pattern>%date [%thread] %maskedMsg%n</pattern>
</encoder>
</appender>
</sift>
@@ -64,7 +64,7 @@
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
- <pattern>%date [%thread] %maskedMsg%n%ex</pattern>
+ <pattern>%date [%thread] %maskedMsg%n</pattern>
</encoder>
</appender>
</sift>
@@ -85,7 +85,7 @@
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
- <pattern>%date [%thread] %maskedMsg%n%ex</pattern>
+ <pattern>%date [%thread] %maskedMsg%n</pattern>
</encoder>
</appender>
</sift>
@@ -106,7 +106,7 @@
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
- <pattern>%date [%thread] %maskedMsg%n%ex</pattern>
+ <pattern>%date [%thread] %maskedMsg%n</pattern>
</encoder>
</appender>
</sift>
@@ -127,7 +127,7 @@
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
- <pattern>%date [%thread] %maskedMsg%n%ex</pattern>
+ <pattern>%date [%thread] %maskedMsg%n</pattern>
</encoder>
</appender>
</sift>
@@ -148,7 +148,7 @@
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
- <pattern>%date [%thread] %maskedMsg%n%ex</pattern>
+ <pattern>%date [%thread] %maskedMsg%n</pattern>
</encoder>
</appender>
</sift>
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoice.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoice.java
index 712ce3b..7606915 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoice.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestInvoice.java
@@ -164,7 +164,7 @@ public class TestInvoice extends TestJaxrsBase {
" <td>shotgun-monthly-trial</td>\n" +
" <td>Monthly shotgun plan</td>\n" +
" <td>25 avr. 2012</td>\n" +
- " <td>USD 0E-9</td>\n" +
+ " <td>USD 0.00</td>\n" +
" </tr>\n" +
" \n" +
" <tr>\n" +
@@ -410,7 +410,7 @@ public class TestInvoice extends TestJaxrsBase {
assertEquals(invoiceItem.getAmount().compareTo(BigDecimal.ZERO), 1);
// Adjust partially the item
- final BigDecimal adjustedAmount = invoiceItem.getAmount().divide(BigDecimal.TEN);
+ final BigDecimal adjustedAmount = invoiceItem.getAmount().divide(BigDecimal.TEN, BigDecimal.ROUND_HALF_UP);
final InvoiceItem adjustmentInvoiceItem = new InvoiceItem();
adjustmentInvoiceItem.setAccountId(accountJson.getAccountId());
adjustmentInvoiceItem.setInvoiceId(invoice.getInvoiceId());