killbill-memoizeit
Changes
analytics/src/main/resources/com/ning/billing/analytics/dao/BusinessOverdueStatusSqlDao.sql.stg 9(+6 -3)
Details
diff --git a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessOverdueStatusBinder.java b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessOverdueStatusBinder.java
index 1e0575e..879b2ee 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessOverdueStatusBinder.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessOverdueStatusBinder.java
@@ -39,6 +39,7 @@ public @interface BusinessOverdueStatusBinder {
return new Binder<BusinessOverdueStatusBinder, BusinessOverdueStatus>() {
public void bind(final SQLStatement q, final BusinessOverdueStatusBinder bind, final BusinessOverdueStatus overdueStatus) {
q.bind("account_key", overdueStatus.getAccountKey());
+ q.bind("bundle_id", overdueStatus.getBundleId().toString());
q.bind("external_key", overdueStatus.getExternalKey());
q.bind("status", overdueStatus.getStatus());
diff --git a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessOverdueStatusMapper.java b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessOverdueStatusMapper.java
index 819c9ab..35ef90e 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessOverdueStatusMapper.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/dao/BusinessOverdueStatusMapper.java
@@ -18,6 +18,7 @@ package com.ning.billing.analytics.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
+import java.util.UUID;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
@@ -29,12 +30,13 @@ import com.ning.billing.analytics.model.BusinessOverdueStatus;
public class BusinessOverdueStatusMapper implements ResultSetMapper<BusinessOverdueStatus> {
@Override
public BusinessOverdueStatus map(final int index, final ResultSet r, final StatementContext ctx) throws SQLException {
- final String externalKey = r.getString(1);
- final String accountKey = r.getString(2);
- final String status = r.getString(3);
- final DateTime startDate = new DateTime(r.getLong(4), DateTimeZone.UTC);
- final DateTime endDate = new DateTime(r.getLong(5), DateTimeZone.UTC);
+ final UUID bundleId = UUID.fromString(r.getString(1));
+ final String externalKey = r.getString(2);
+ final String accountKey = r.getString(3);
+ final String status = r.getString(4);
+ final DateTime startDate = new DateTime(r.getLong(5), DateTimeZone.UTC);
+ final DateTime endDate = new DateTime(r.getLong(6), DateTimeZone.UTC);
- return new BusinessOverdueStatus(accountKey, endDate, externalKey, startDate, status);
+ return new BusinessOverdueStatus(accountKey, bundleId, endDate, externalKey, startDate, status);
}
}
diff --git a/analytics/src/main/java/com/ning/billing/analytics/model/BusinessOverdueStatus.java b/analytics/src/main/java/com/ning/billing/analytics/model/BusinessOverdueStatus.java
index e76a02e..bd74d14 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/model/BusinessOverdueStatus.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/model/BusinessOverdueStatus.java
@@ -16,18 +16,22 @@
package com.ning.billing.analytics.model;
+import java.util.UUID;
+
import org.joda.time.DateTime;
public class BusinessOverdueStatus {
private final String accountKey;
+ private final UUID bundleId;
private final String externalKey;
private final String status;
private final DateTime startDate;
private final DateTime endDate;
- public BusinessOverdueStatus(final String accountKey, final DateTime endDate, final String externalKey,
- final DateTime startDate, final String status) {
+ public BusinessOverdueStatus(final String accountKey, final UUID bundleId, final DateTime endDate,
+ final String externalKey, final DateTime startDate, final String status) {
this.accountKey = accountKey;
+ this.bundleId = bundleId;
this.endDate = endDate;
this.externalKey = externalKey;
this.startDate = startDate;
@@ -38,6 +42,10 @@ public class BusinessOverdueStatus {
return accountKey;
}
+ public UUID getBundleId() {
+ return bundleId;
+ }
+
public DateTime getEndDate() {
return endDate;
}
@@ -59,6 +67,7 @@ public class BusinessOverdueStatus {
final StringBuilder sb = new StringBuilder();
sb.append("BusinessOverdueStatus");
sb.append("{accountKey=").append(accountKey);
+ sb.append(", bundleId='").append(bundleId).append('\'');
sb.append(", endDate='").append(endDate).append('\'');
sb.append(", externalKey='").append(externalKey).append('\'');
sb.append(", status='").append(status).append('\'');
@@ -81,6 +90,9 @@ public class BusinessOverdueStatus {
if (accountKey != null ? !accountKey.equals(that.accountKey) : that.accountKey != null) {
return false;
}
+ if (bundleId != null ? !bundleId.equals(that.bundleId) : that.bundleId != null) {
+ return false;
+ }
if (endDate != null ? !endDate.equals(that.endDate) : that.endDate != null) {
return false;
}
@@ -100,6 +112,7 @@ public class BusinessOverdueStatus {
@Override
public int hashCode() {
int result = accountKey != null ? accountKey.hashCode() : 0;
+ result = 31 * result + (bundleId != null ? bundleId.hashCode() : 0);
result = 31 * result + (externalKey != null ? externalKey.hashCode() : 0);
result = 31 * result + (status != null ? status.hashCode() : 0);
result = 31 * result + (startDate != null ? startDate.hashCode() : 0);
diff --git a/analytics/src/main/resources/com/ning/billing/analytics/dao/BusinessOverdueStatusSqlDao.sql.stg b/analytics/src/main/resources/com/ning/billing/analytics/dao/BusinessOverdueStatusSqlDao.sql.stg
index c1c7140..a785959 100644
--- a/analytics/src/main/resources/com/ning/billing/analytics/dao/BusinessOverdueStatusSqlDao.sql.stg
+++ b/analytics/src/main/resources/com/ning/billing/analytics/dao/BusinessOverdueStatusSqlDao.sql.stg
@@ -2,7 +2,8 @@ group BusinessOverdueStatus;
getOverdueStatusesForBundle(external_key) ::= <<
select
- external_key
+ bundle_id
+, external_key
, account_key
, status
, start_date
@@ -15,13 +16,15 @@ order by start_date asc
createOverdueStatus() ::= <<
insert into bos (
- external_key
+ bundle_id
+, external_key
, account_key
, status
, start_date
, end_date
) values (
- :external_key
+ :bundle_id
+, :external_key
, :account_key
, :status
, :start_date
diff --git a/analytics/src/main/resources/com/ning/billing/analytics/ddl.sql b/analytics/src/main/resources/com/ning/billing/analytics/ddl.sql
index 03c9fda..897ee8e 100644
--- a/analytics/src/main/resources/com/ning/billing/analytics/ddl.sql
+++ b/analytics/src/main/resources/com/ning/billing/analytics/ddl.sql
@@ -125,6 +125,7 @@ create unique index bip_key_index on bip (attempt_id);
drop table if exists bos;
create table bos (
record_id int(11) unsigned not null auto_increment
+, bundle_id char(36) not null
, external_key varchar(50) not null comment 'Bundle external key'
, account_key varchar(50) not null comment 'Account external key'
, status varchar(50) not null
diff --git a/analytics/src/test/java/com/ning/billing/analytics/dao/TestBusinessOverdueStatusSqlDao.java b/analytics/src/test/java/com/ning/billing/analytics/dao/TestBusinessOverdueStatusSqlDao.java
index f21d3af..7153da2 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/dao/TestBusinessOverdueStatusSqlDao.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/dao/TestBusinessOverdueStatusSqlDao.java
@@ -40,8 +40,9 @@ public class TestBusinessOverdueStatusSqlDao extends TestWithEmbeddedDB {
@Test(groups = "slow")
public void testCreate() throws Exception {
final String accountKey = UUID.randomUUID().toString();
+ final UUID bundleId = UUID.randomUUID();
final String externalKey = UUID.randomUUID().toString();
- final BusinessOverdueStatus firstOverdueStatus = createOverdueStatus(accountKey, externalKey);
+ final BusinessOverdueStatus firstOverdueStatus = createOverdueStatus(accountKey, bundleId, externalKey);
// Verify initial state
Assert.assertEquals(overdueStatusSqlDao.getOverdueStatusesForBundle(externalKey).size(), 0);
@@ -54,7 +55,7 @@ public class TestBusinessOverdueStatusSqlDao extends TestWithEmbeddedDB {
Assert.assertEquals(overdueStatusSqlDao.getOverdueStatusesForBundle(externalKey).get(0), firstOverdueStatus);
// Add a second one
- final BusinessOverdueStatus secondOverdueStatus = createOverdueStatus(accountKey, externalKey);
+ final BusinessOverdueStatus secondOverdueStatus = createOverdueStatus(accountKey, bundleId, externalKey);
Assert.assertEquals(overdueStatusSqlDao.createOverdueStatus(secondOverdueStatus), 1);
// Retrieve both
@@ -73,11 +74,11 @@ public class TestBusinessOverdueStatusSqlDao extends TestWithEmbeddedDB {
}
}
- private BusinessOverdueStatus createOverdueStatus(final String accountKey, final String externalKey) {
+ private BusinessOverdueStatus createOverdueStatus(final String accountKey, final UUID bundleId, final String externalKey) {
final DateTime endDate = new DateTime(DateTimeZone.UTC);
final DateTime startDate = new DateTime(DateTimeZone.UTC);
final String status = UUID.randomUUID().toString();
- return new BusinessOverdueStatus(accountKey, endDate, externalKey, startDate, status);
+ return new BusinessOverdueStatus(accountKey, bundleId, endDate, externalKey, startDate, status);
}
}
diff --git a/analytics/src/test/java/com/ning/billing/analytics/model/TestBusinessOverdueStatus.java b/analytics/src/test/java/com/ning/billing/analytics/model/TestBusinessOverdueStatus.java
index 6edcbf9..be467e9 100644
--- a/analytics/src/test/java/com/ning/billing/analytics/model/TestBusinessOverdueStatus.java
+++ b/analytics/src/test/java/com/ning/billing/analytics/model/TestBusinessOverdueStatus.java
@@ -29,21 +29,24 @@ public class TestBusinessOverdueStatus extends AnalyticsTestSuite {
@Test(groups = "fast")
public void testEquals() throws Exception {
final String accountKey = UUID.randomUUID().toString();
+ final UUID bundleId = UUID.randomUUID();
final DateTime endDate = new DateTime(DateTimeZone.UTC);
final String externalKey = UUID.randomUUID().toString();
final DateTime startDate = new DateTime(DateTimeZone.UTC);
final String status = UUID.randomUUID().toString();
- final BusinessOverdueStatus overdueStatus = new BusinessOverdueStatus(accountKey, endDate, externalKey, startDate, status);
+ final BusinessOverdueStatus overdueStatus = new BusinessOverdueStatus(accountKey, bundleId, endDate, externalKey, startDate, status);
Assert.assertSame(overdueStatus, overdueStatus);
Assert.assertEquals(overdueStatus, overdueStatus);
Assert.assertTrue(overdueStatus.equals(overdueStatus));
Assert.assertEquals(overdueStatus.getAccountKey(), accountKey);
+ Assert.assertEquals(overdueStatus.getBundleId(), bundleId);
Assert.assertEquals(overdueStatus.getEndDate(), endDate);
Assert.assertEquals(overdueStatus.getExternalKey(), externalKey);
Assert.assertEquals(overdueStatus.getStartDate(), startDate);
Assert.assertEquals(overdueStatus.getStatus(), status);
final BusinessOverdueStatus otherOverdueStatus = new BusinessOverdueStatus(UUID.randomUUID().toString(),
+ UUID.randomUUID(),
new DateTime(DateTimeZone.UTC),
UUID.randomUUID().toString(),
new DateTime(DateTimeZone.UTC),