killbill-memoizeit

Details

diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/CreditJson.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/CreditJson.java
index 124478e..c826fc8 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/CreditJson.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/CreditJson.java
@@ -38,6 +38,7 @@ import io.swagger.annotations.ApiModelProperty;
 @ApiModel(value="Credit", parent = JsonBase.class)
 public class CreditJson extends JsonBase {
 
+    private final UUID creditId;
     @ApiModelProperty(required = true)
     private final BigDecimal creditAmount;
     private final UUID invoiceId;
@@ -50,7 +51,8 @@ public class CreditJson extends JsonBase {
     private final String itemDetails;
 
     @JsonCreator
-    public CreditJson(@JsonProperty("creditAmount") final BigDecimal creditAmount,
+    public CreditJson(@JsonProperty("creditId") final UUID creditId,
+                      @JsonProperty("creditAmount") final BigDecimal creditAmount,
                       @JsonProperty("currency") final Currency currency,
                       @JsonProperty("invoiceId") final UUID invoiceId,
                       @JsonProperty("invoiceNumber") final String invoiceNumber,
@@ -60,6 +62,7 @@ public class CreditJson extends JsonBase {
                       @JsonProperty("itemDetails") final String itemDetails,
                       @JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
         super(auditLogs);
+        this.creditId = creditId;
         this.creditAmount = creditAmount;
         this.currency = currency;
         this.invoiceId = invoiceId;
@@ -72,6 +75,7 @@ public class CreditJson extends JsonBase {
 
     public CreditJson(final Invoice invoice, final InvoiceItem credit, final List<AuditLog> auditLogs) {
         super(toAuditLogJson(auditLogs));
+        this.creditId = credit.getId();
         this.accountId = credit.getAccountId();
         this.creditAmount = credit.getAmount();
         this.currency = credit.getCurrency();
@@ -118,11 +122,16 @@ public class CreditJson extends JsonBase {
         return itemDetails;
     }
 
+    public UUID getCreditId() {
+        return creditId;
+    }
+
     @Override
     public String toString() {
         final StringBuilder sb = new StringBuilder();
         sb.append("CreditJson");
-        sb.append("{creditAmount=").append(creditAmount);
+        sb.append("{creditId=").append(creditId);
+        sb.append(", creditAmount=").append(creditAmount);
         sb.append(", currency=").append(currency);
         sb.append(", invoiceId=").append(invoiceId);
         sb.append(", invoiceNumber='").append(invoiceNumber).append('\'');
@@ -145,6 +154,9 @@ public class CreditJson extends JsonBase {
 
         final CreditJson that = (CreditJson) o;
 
+        if (creditId != null ? !creditId.equals(that.creditId) : that.creditId != null) {
+            return false;
+        }
         if (!((creditAmount == null && that.creditAmount == null) ||
               (creditAmount != null && that.creditAmount != null && creditAmount.compareTo(that.creditAmount) == 0))) {
             return false;
@@ -175,6 +187,7 @@ public class CreditJson extends JsonBase {
     @Override
     public int hashCode() {
         int result = creditAmount != null ? creditAmount.hashCode() : 0;
+        result = 31 * result + (creditId != null ? creditId.hashCode() : 0);
         result = 31 * result + (currency != null ? currency.hashCode() : 0);
         result = 31 * result + (invoiceId != null ? invoiceId.hashCode() : 0);
         result = 31 * result + (description != null ? description.hashCode() : 0);
diff --git a/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestCreditJson.java b/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestCreditJson.java
index e08641d..18f4373 100644
--- a/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestCreditJson.java
+++ b/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestCreditJson.java
@@ -34,6 +34,7 @@ public class TestCreditJson extends JaxrsTestSuiteNoDB {
 
     @Test(groups = "fast")
     public void testJson() throws Exception {
+        final UUID creditId = UUID.randomUUID();
         final BigDecimal creditAmount = BigDecimal.TEN;
         final Currency currency = Currency.AED;
         final UUID invoiceId = UUID.randomUUID();
@@ -41,8 +42,9 @@ public class TestCreditJson extends JaxrsTestSuiteNoDB {
         final LocalDate effectiveDate = clock.getUTCToday();
         final UUID accountId = UUID.randomUUID();
         final List<AuditLogJson> auditLogs = createAuditLogsJson(clock.getUTCNow());
-        final CreditJson creditJson = new CreditJson(creditAmount, currency, invoiceId, invoiceNumber, effectiveDate,
+        final CreditJson creditJson = new CreditJson(creditId, creditAmount, currency, invoiceId, invoiceNumber, effectiveDate,
                                                      accountId, null, null, auditLogs);
+        Assert.assertEquals(creditJson.getCreditId(), creditId);
         Assert.assertEquals(creditJson.getEffectiveDate(), effectiveDate);
         Assert.assertEquals(creditJson.getCreditAmount(), creditAmount);
         Assert.assertEquals(creditJson.getInvoiceId(), invoiceId);
diff --git a/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java b/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java
index 003e52b..2608fe8 100644
--- a/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java
+++ b/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java
@@ -115,11 +115,12 @@ public class TestInvoiceJsonWithBundleKeys extends JaxrsTestSuiteNoDB {
 
     private CreditJson createCreditJson() {
         final BigDecimal creditAmount = BigDecimal.TEN;
+        final UUID creditId = UUID.randomUUID();
         final Currency currency = Currency.USD;
         final UUID invoiceId = UUID.randomUUID();
         final String invoiceNumber = UUID.randomUUID().toString();
         final LocalDate effectiveDate = clock.getUTCToday();
         final UUID accountId = UUID.randomUUID();
-        return new CreditJson(creditAmount, currency, invoiceId, invoiceNumber, effectiveDate,  accountId, null, null, null);
+        return new CreditJson(creditId, creditAmount, currency, invoiceId, invoiceNumber, effectiveDate,  accountId, null, null, null);
     }
 }
diff --git a/profiles/killbill/pom.xml b/profiles/killbill/pom.xml
index 9888d1e..a4436b7 100644
--- a/profiles/killbill/pom.xml
+++ b/profiles/killbill/pom.xml
@@ -263,7 +263,7 @@
         <dependency>
             <groupId>org.kill-bill.billing</groupId>
             <artifactId>killbill-client-java-swagger-gen-exp</artifactId>
-            <version>0.0.8</version>
+            <version>0.0.9</version>
         </dependency>
         <dependency>
             <groupId>org.kill-bill.billing</groupId>