killbill-memoizeit
Changes
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/api/BusinessAccount.java 34(+34 -0)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/api/BusinessSubscriptionTransition.java 4(+2 -2)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/AnalyticsDao.java 4(+2 -2)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsDaoBase.java 2(+1 -1)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsSqlDao.java 28(+13 -15)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessDBIProvider.java 69(+69 -0)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountFieldModelDao.java 2(+2 -0)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountModelDao.java 91(+60 -31)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountTagModelDao.java 2(+2 -0)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessFieldModelDao.java 8(+5 -3)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceAdjustmentModelDao.java 2(+2 -0)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceFieldModelDao.java 4(+3 -1)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemAdjustmentModelDao.java 2(+2 -0)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemBaseModelDao.java 56(+29 -27)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemCreditModelDao.java 2(+2 -0)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemModelDao.java 2(+2 -0)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceModelDao.java 24(+13 -11)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentBaseModelDao.java 38(+20 -18)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentChargebackModelDao.java 2(+2 -0)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentFieldModelDao.java 4(+3 -1)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentModelDao.java 2(+2 -0)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentRefundModelDao.java 2(+2 -0)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentTagModelDao.java 4(+3 -1)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceTagModelDao.java 4(+3 -1)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessModelDaoBase.java 24(+13 -11)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessOverdueStatusModelDao.java 14(+8 -6)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessSubscriptionTransitionModelDao.java 18(+10 -8)
osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessTagModelDao.java 6(+4 -2)
osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/AnalyticsSanitySqlDao.sql.stg 301(+0 -301)
osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessAccountFieldSqlDao.sql.stg 42(+0 -42)
osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessAccountSqlDao.sql.stg 123(+0 -123)
osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessAccountTagSqlDao.sql.stg 39(+0 -39)
osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsSqlDao.sql.stg 981(+981 -0)
osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessInvoiceFieldSqlDao.sql.stg 39(+0 -39)
osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessInvoiceItemSqlDao.sql.stg 141(+0 -141)
osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessInvoicePaymentFieldSqlDao.sql.stg 39(+0 -39)
osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessInvoicePaymentSqlDao.sql.stg 122(+0 -122)
osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessInvoicePaymentTagSqlDao.sql.stg 37(+0 -37)
osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessInvoiceSqlDao.sql.stg 138(+0 -138)
osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessInvoiceTagSqlDao.sql.stg 37(+0 -37)
osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessOverdueStatusSqlDao.sql.stg 50(+0 -50)
osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessSubscriptionTransitionFieldSqlDao.sql.stg 46(+0 -46)
osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessSubscriptionTransitionSqlDao.sql.stg 229(+0 -229)
osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessSubscriptionTransitionTagSqlDao.sql.stg 43(+0 -43)
osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/ddl.sql 2(+1 -1)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteNoDB.java 49(+30 -19)
osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteWithEmbeddedDB.java 5(+3 -2)
Details
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/api/BusinessAccount.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/api/BusinessAccount.java
index e6439c5..bfa4a40 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/api/BusinessAccount.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/api/BusinessAccount.java
@@ -17,6 +17,7 @@
package com.ning.billing.osgi.bundles.analytics.api;
import java.math.BigDecimal;
+import java.util.UUID;
import org.joda.time.DateTime;
import org.joda.time.LocalDate;
@@ -29,6 +30,9 @@ public class BusinessAccount extends BusinessEntityBase {
private final Integer firstNameLength;
private final String currency;
private final Integer billingCycleDayLocal;
+ private final UUID paymentMethodId;
+ private final String timeZone;
+ private final String locale;
private final String address1;
private final String address2;
private final String companyName;
@@ -56,6 +60,9 @@ public class BusinessAccount extends BusinessEntityBase {
this.firstNameLength = businessAccountModelDao.getFirstNameLength();
this.currency = businessAccountModelDao.getCurrency();
this.billingCycleDayLocal = businessAccountModelDao.getBillingCycleDayLocal();
+ this.paymentMethodId = businessAccountModelDao.getPaymentMethodId();
+ this.timeZone = businessAccountModelDao.getTimeZone();
+ this.locale = businessAccountModelDao.getLocale();
this.address1 = businessAccountModelDao.getAddress1();
this.address2 = businessAccountModelDao.getAddress2();
this.companyName = businessAccountModelDao.getCompanyName();
@@ -88,6 +95,18 @@ public class BusinessAccount extends BusinessEntityBase {
return billingCycleDayLocal;
}
+ public UUID getPaymentMethodId() {
+ return paymentMethodId;
+ }
+
+ public String getTimeZone() {
+ return timeZone;
+ }
+
+ public String getLocale() {
+ return locale;
+ }
+
public String getAddress1() {
return address1;
}
@@ -152,6 +171,9 @@ public class BusinessAccount extends BusinessEntityBase {
sb.append(", firstNameLength=").append(firstNameLength);
sb.append(", currency='").append(currency).append('\'');
sb.append(", billingCycleDayLocal=").append(billingCycleDayLocal);
+ sb.append(", paymentMethodId=").append(paymentMethodId);
+ sb.append(", timeZone='").append(timeZone).append('\'');
+ sb.append(", locale='").append(locale).append('\'');
sb.append(", address1='").append(address1).append('\'');
sb.append(", address2='").append(address2).append('\'');
sb.append(", companyName='").append(companyName).append('\'');
@@ -229,6 +251,12 @@ public class BusinessAccount extends BusinessEntityBase {
if (lastPaymentStatus != null ? !lastPaymentStatus.equals(that.lastPaymentStatus) : that.lastPaymentStatus != null) {
return false;
}
+ if (locale != null ? !locale.equals(that.locale) : that.locale != null) {
+ return false;
+ }
+ if (paymentMethodId != null ? !paymentMethodId.equals(that.paymentMethodId) : that.paymentMethodId != null) {
+ return false;
+ }
if (phone != null ? !phone.equals(that.phone) : that.phone != null) {
return false;
}
@@ -238,6 +266,9 @@ public class BusinessAccount extends BusinessEntityBase {
if (stateOrProvince != null ? !stateOrProvince.equals(that.stateOrProvince) : that.stateOrProvince != null) {
return false;
}
+ if (timeZone != null ? !timeZone.equals(that.timeZone) : that.timeZone != null) {
+ return false;
+ }
return true;
}
@@ -249,6 +280,9 @@ public class BusinessAccount extends BusinessEntityBase {
result = 31 * result + (firstNameLength != null ? firstNameLength.hashCode() : 0);
result = 31 * result + (currency != null ? currency.hashCode() : 0);
result = 31 * result + (billingCycleDayLocal != null ? billingCycleDayLocal.hashCode() : 0);
+ result = 31 * result + (paymentMethodId != null ? paymentMethodId.hashCode() : 0);
+ result = 31 * result + (timeZone != null ? timeZone.hashCode() : 0);
+ result = 31 * result + (locale != null ? locale.hashCode() : 0);
result = 31 * result + (address1 != null ? address1.hashCode() : 0);
result = 31 * result + (address2 != null ? address2.hashCode() : 0);
result = 31 * result + (companyName != null ? companyName.hashCode() : 0);
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/api/BusinessSubscriptionTransition.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/api/BusinessSubscriptionTransition.java
index 59799e9..9e0bcd9 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/api/BusinessSubscriptionTransition.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/api/BusinessSubscriptionTransition.java
@@ -96,7 +96,7 @@ public class BusinessSubscriptionTransition extends BusinessEntityBase {
this.prevCurrency = bstModelDao.getPreviousSubscription().getCurrency();
this.prevBusinessActive = bstModelDao.getPreviousSubscription().getBusinessActive();
this.prevStartDate = bstModelDao.getPreviousSubscription().getStartDate();
- this.prevState = bstModelDao.getPreviousSubscription().getState().toString();
+ this.prevState = bstModelDao.getPreviousSubscription().getState();
} else {
this.prevProductName = null;
this.prevProductType = null;
@@ -127,7 +127,7 @@ public class BusinessSubscriptionTransition extends BusinessEntityBase {
this.nextBusinessActive = bstModelDao.getNextSubscription().getBusinessActive();
this.nextStartDate = bstModelDao.getNextSubscription().getStartDate();
this.nextEndDate = bstModelDao.getNextSubscription().getEndDate();
- this.nextState = bstModelDao.getNextSubscription().getState().toString();
+ this.nextState = bstModelDao.getNextSubscription().getState();
} else {
this.nextProductName = null;
this.nextProductType = null;
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/AnalyticsDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/AnalyticsDao.java
index 49bb601..b715a40 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/AnalyticsDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/AnalyticsDao.java
@@ -2,7 +2,7 @@
* Copyright 2010-2013 Ning, Inc.
*
* Ning 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
+ * (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
@@ -53,7 +53,7 @@ public class AnalyticsDao {
protected final BusinessAnalyticsSqlDao sqlDao;
public AnalyticsDao(final OSGIKillbillDataSource osgiKillbillDataSource) {
- final DBI dbi = new DBI(osgiKillbillDataSource.getDataSource());
+ final DBI dbi = BusinessDBIProvider.get(osgiKillbillDataSource.getDataSource());
sqlDao = dbi.onDemand(BusinessAnalyticsSqlDao.class);
}
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsDaoBase.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsDaoBase.java
index 4e72ac9..9395500 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsDaoBase.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsDaoBase.java
@@ -32,7 +32,7 @@ public class BusinessAnalyticsDaoBase extends BusinessAnalyticsBase {
final OSGIKillbillDataSource osgiKillbillDataSource) {
super(logService, osgiKillbillAPI);
- final DBI dbi = new DBI(osgiKillbillDataSource.getDataSource());
+ final DBI dbi = BusinessDBIProvider.get(osgiKillbillDataSource.getDataSource());
sqlDao = dbi.onDemand(BusinessAnalyticsSqlDao.class);
}
}
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsSqlDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsSqlDao.java
index 8fcb937..72cf2f5 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsSqlDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsSqlDao.java
@@ -19,12 +19,11 @@ package com.ning.billing.osgi.bundles.analytics.dao;
import java.util.List;
import org.skife.jdbi.v2.sqlobject.Bind;
-import org.skife.jdbi.v2.sqlobject.BindBean;
import org.skife.jdbi.v2.sqlobject.SqlQuery;
import org.skife.jdbi.v2.sqlobject.SqlUpdate;
import org.skife.jdbi.v2.sqlobject.mixins.Transactional;
-import org.skife.jdbi.v2.sqlobject.stringtemplate.UseStringTemplate3StatementLocator;
+import com.ning.billing.commons.jdbi.binder.SmartBindBean;
import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessAccountModelDao;
import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessFieldModelDao;
import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessInvoiceItemBaseModelDao;
@@ -37,57 +36,56 @@ import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessTagModelDao;
import com.ning.billing.util.callcontext.CallContext;
import com.ning.billing.util.callcontext.TenantContext;
-@UseStringTemplate3StatementLocator
public interface BusinessAnalyticsSqlDao extends Transactional<BusinessAnalyticsSqlDao> {
@SqlUpdate
- public void create(@Bind("tableName") final String tableName,
- @BindBean final BusinessModelDaoBase entity,
- @BindBean final CallContext callContext);
+ public void create(final String tableName,
+ @SmartBindBean final BusinessModelDaoBase entity,
+ @SmartBindBean final CallContext callContext);
@SqlUpdate
public void deleteByAccountRecordId(@Bind("tableName") final String tableName,
@Bind("accountRecordId") final Long accountRecordId,
@Bind("tenantRecordId") final Long tenantRecordId,
- @BindBean final CallContext callContext);
+ @SmartBindBean final CallContext callContext);
@SqlQuery
public BusinessAccountModelDao getAccountByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
@Bind("tenantRecordId") final Long tenantRecordId,
- @BindBean final TenantContext tenantContext);
+ @SmartBindBean final TenantContext tenantContext);
@SqlQuery
public List<BusinessSubscriptionTransitionModelDao> getSubscriptionTransitionsByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
@Bind("tenantRecordId") final Long tenantRecordId,
- @BindBean final TenantContext tenantContext);
+ @SmartBindBean final TenantContext tenantContext);
@SqlQuery
public List<BusinessOverdueStatusModelDao> getOverdueStatusesByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
@Bind("tenantRecordId") final Long tenantRecordId,
- @BindBean final TenantContext tenantContext);
+ @SmartBindBean final TenantContext tenantContext);
@SqlQuery
public List<BusinessInvoiceModelDao> getInvoicesByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
@Bind("tenantRecordId") final Long tenantRecordId,
- @BindBean final TenantContext tenantContext);
+ @SmartBindBean final TenantContext tenantContext);
@SqlQuery
public List<BusinessInvoiceItemBaseModelDao> getInvoiceItemsByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
@Bind("tenantRecordId") final Long tenantRecordId,
- @BindBean final TenantContext tenantContext);
+ @SmartBindBean final TenantContext tenantContext);
@SqlQuery
public List<BusinessInvoicePaymentBaseModelDao> getInvoicePaymentsByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
@Bind("tenantRecordId") final Long tenantRecordId,
- @BindBean final TenantContext tenantContext);
+ @SmartBindBean final TenantContext tenantContext);
@SqlQuery
public List<BusinessFieldModelDao> getFieldsByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
@Bind("tenantRecordId") final Long tenantRecordId,
- @BindBean final TenantContext tenantContext);
+ @SmartBindBean final TenantContext tenantContext);
@SqlQuery
public List<BusinessTagModelDao> getTagsByAccountRecordId(@Bind("accountRecordId") final Long accountRecordId,
@Bind("tenantRecordId") final Long tenantRecordId,
- @BindBean final TenantContext tenantContext);
+ @SmartBindBean final TenantContext tenantContext);
}
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessDBIProvider.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessDBIProvider.java
new file mode 100644
index 0000000..09e89c9
--- /dev/null
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessDBIProvider.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2010-2013 Ning, Inc.
+ *
+ * Ning 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:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.ning.billing.osgi.bundles.analytics.dao;
+
+import javax.sql.DataSource;
+
+import org.skife.jdbi.v2.Binding;
+import org.skife.jdbi.v2.DBI;
+import org.skife.jdbi.v2.StatementContext;
+import org.skife.jdbi.v2.sqlobject.stringtemplate.StringTemplate3StatementLocator;
+import org.skife.jdbi.v2.tweak.Argument;
+
+import com.ning.billing.commons.jdbi.mapper.LowerToCamelBeanMapperFactory;
+import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessAccountModelDao;
+
+import com.google.common.base.CaseFormat;
+
+public class BusinessDBIProvider {
+
+ private BusinessDBIProvider() {}
+
+ public static DBI get(final DataSource dataSource) {
+ final DBI dbi = new DBI(dataSource);
+
+ dbi.registerMapper(new LowerToCamelBeanMapperFactory(BusinessAccountModelDao.class));
+ dbi.setStatementLocator(new AnalyticsStatementLocator());
+
+ return dbi;
+ }
+
+ private static final class AnalyticsStatementLocator extends StringTemplate3StatementLocator {
+
+ public AnalyticsStatementLocator() {
+ super(BusinessAnalyticsSqlDao.class, true, true);
+ }
+
+ @Override
+ public String locate(final String name, final StatementContext ctx) throws Exception {
+ // Rewrite create to createBac, createBin, createBiia, etc.
+ if ("create".equals(name)) {
+ final Binding binding = ctx.getBinding();
+ if (binding != null) {
+ final Argument tableNameArgument = binding.forName("tableName");
+ if (tableNameArgument != null) {
+ // Lame, rely on toString
+ final String tableName = tableNameArgument.toString();
+ final String newQueryName = name + CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, tableName);
+ return super.locate(newQueryName, ctx);
+ }
+ }
+ }
+ return super.locate(name, ctx);
+ }
+ }
+}
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountFieldModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountFieldModelDao.java
index a3167e3..44dbbbf 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountFieldModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountFieldModelDao.java
@@ -22,6 +22,8 @@ import com.ning.billing.util.customfield.CustomField;
public class BusinessAccountFieldModelDao extends BusinessFieldModelDao {
+ public BusinessAccountFieldModelDao() { /* When reading from the database */ }
+
public BusinessAccountFieldModelDao(final Account account,
final Long accountRecordId,
final CustomField customField,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountModelDao.java
index 24f2c8f..2a746d1 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountModelDao.java
@@ -33,27 +33,29 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
private static final String ACCOUNTS_TABLE_NAME = "bac";
- private final String email;
- private final Integer firstNameLength;
- private final String currency;
- private final Integer billingCycleDayLocal;
- private final UUID paymentMethodId;
- private final String timeZone;
- private final String locale;
- private final String address1;
- private final String address2;
- private final String companyName;
- private final String city;
- private final String stateOrProvince;
- private final String country;
- private final String postalCode;
- private final String phone;
- private final Boolean isMigrated;
- private final Boolean isNotifiedForInvoices;
- private final BigDecimal balance;
- private final LocalDate lastInvoiceDate;
- private final DateTime lastPaymentDate;
- private final String lastPaymentStatus;
+ private String email;
+ private Integer firstNameLength;
+ private String currency;
+ private Integer billingCycleDayLocal;
+ private UUID paymentMethodId;
+ private String timeZone;
+ private String locale;
+ private String address1;
+ private String address2;
+ private String companyName;
+ private String city;
+ private String stateOrProvince;
+ private String country;
+ private String postalCode;
+ private String phone;
+ private Boolean migrated;
+ private Boolean notifiedForInvoices;
+ private BigDecimal balance;
+ private LocalDate lastInvoiceDate;
+ private DateTime lastPaymentDate;
+ private String lastPaymentStatus;
+
+ public BusinessAccountModelDao() { /* When reading from the database */ }
public BusinessAccountModelDao(final String email,
final Integer firstNameLength,
@@ -109,8 +111,8 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
this.country = country;
this.postalCode = postalCode;
this.phone = phone;
- this.isMigrated = isMigrated;
- this.isNotifiedForInvoices = notifiedForInvoices;
+ this.migrated = isMigrated;
+ this.notifiedForInvoices = notifiedForInvoices;
this.balance = balance;
this.lastInvoiceDate = lastInvoiceDate;
this.lastPaymentDate = lastPaymentDate;
@@ -177,6 +179,18 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
return billingCycleDayLocal;
}
+ public UUID getPaymentMethodId() {
+ return paymentMethodId;
+ }
+
+ public String getTimeZone() {
+ return timeZone;
+ }
+
+ public String getLocale() {
+ return locale;
+ }
+
public String getAddress1() {
return address1;
}
@@ -210,11 +224,11 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
}
public Boolean getMigrated() {
- return isMigrated;
+ return migrated;
}
public Boolean getNotifiedForInvoices() {
- return isNotifiedForInvoices;
+ return notifiedForInvoices;
}
public BigDecimal getBalance() {
@@ -241,6 +255,9 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
sb.append(", firstNameLength=").append(firstNameLength);
sb.append(", currency='").append(currency).append('\'');
sb.append(", billingCycleDayLocal=").append(billingCycleDayLocal);
+ sb.append(", paymentMethodId=").append(paymentMethodId);
+ sb.append(", timeZone='").append(timeZone).append('\'');
+ sb.append(", locale='").append(locale).append('\'');
sb.append(", address1='").append(address1).append('\'');
sb.append(", address2='").append(address2).append('\'');
sb.append(", companyName='").append(companyName).append('\'');
@@ -249,8 +266,8 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
sb.append(", country='").append(country).append('\'');
sb.append(", postalCode='").append(postalCode).append('\'');
sb.append(", phone='").append(phone).append('\'');
- sb.append(", isMigrated=").append(isMigrated);
- sb.append(", isNotifiedForInvoices=").append(isNotifiedForInvoices);
+ sb.append(", migrated=").append(migrated);
+ sb.append(", notifiedForInvoices=").append(notifiedForInvoices);
sb.append(", balance=").append(balance);
sb.append(", lastInvoiceDate=").append(lastInvoiceDate);
sb.append(", lastPaymentDate=").append(lastPaymentDate);
@@ -303,10 +320,10 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
if (firstNameLength != null ? !firstNameLength.equals(that.firstNameLength) : that.firstNameLength != null) {
return false;
}
- if (isMigrated != null ? !isMigrated.equals(that.isMigrated) : that.isMigrated != null) {
+ if (migrated != null ? !migrated.equals(that.migrated) : that.migrated != null) {
return false;
}
- if (isNotifiedForInvoices != null ? !isNotifiedForInvoices.equals(that.isNotifiedForInvoices) : that.isNotifiedForInvoices != null) {
+ if (notifiedForInvoices != null ? !notifiedForInvoices.equals(that.notifiedForInvoices) : that.notifiedForInvoices != null) {
return false;
}
if (lastInvoiceDate != null ? !lastInvoiceDate.equals(that.lastInvoiceDate) : that.lastInvoiceDate != null) {
@@ -318,6 +335,12 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
if (lastPaymentStatus != null ? !lastPaymentStatus.equals(that.lastPaymentStatus) : that.lastPaymentStatus != null) {
return false;
}
+ if (locale != null ? !locale.equals(that.locale) : that.locale != null) {
+ return false;
+ }
+ if (paymentMethodId != null ? !paymentMethodId.equals(that.paymentMethodId) : that.paymentMethodId != null) {
+ return false;
+ }
if (phone != null ? !phone.equals(that.phone) : that.phone != null) {
return false;
}
@@ -327,6 +350,9 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
if (stateOrProvince != null ? !stateOrProvince.equals(that.stateOrProvince) : that.stateOrProvince != null) {
return false;
}
+ if (timeZone != null ? !timeZone.equals(that.timeZone) : that.timeZone != null) {
+ return false;
+ }
return true;
}
@@ -338,6 +364,9 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
result = 31 * result + (firstNameLength != null ? firstNameLength.hashCode() : 0);
result = 31 * result + (currency != null ? currency.hashCode() : 0);
result = 31 * result + (billingCycleDayLocal != null ? billingCycleDayLocal.hashCode() : 0);
+ result = 31 * result + (paymentMethodId != null ? paymentMethodId.hashCode() : 0);
+ result = 31 * result + (timeZone != null ? timeZone.hashCode() : 0);
+ result = 31 * result + (locale != null ? locale.hashCode() : 0);
result = 31 * result + (address1 != null ? address1.hashCode() : 0);
result = 31 * result + (address2 != null ? address2.hashCode() : 0);
result = 31 * result + (companyName != null ? companyName.hashCode() : 0);
@@ -346,8 +375,8 @@ public class BusinessAccountModelDao extends BusinessModelDaoBase {
result = 31 * result + (country != null ? country.hashCode() : 0);
result = 31 * result + (postalCode != null ? postalCode.hashCode() : 0);
result = 31 * result + (phone != null ? phone.hashCode() : 0);
- result = 31 * result + (isMigrated != null ? isMigrated.hashCode() : 0);
- result = 31 * result + (isNotifiedForInvoices != null ? isNotifiedForInvoices.hashCode() : 0);
+ result = 31 * result + (migrated != null ? migrated.hashCode() : 0);
+ result = 31 * result + (notifiedForInvoices != null ? notifiedForInvoices.hashCode() : 0);
result = 31 * result + (balance != null ? balance.hashCode() : 0);
result = 31 * result + (lastInvoiceDate != null ? lastInvoiceDate.hashCode() : 0);
result = 31 * result + (lastPaymentDate != null ? lastPaymentDate.hashCode() : 0);
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountTagModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountTagModelDao.java
index 3c81637..884a8a8 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountTagModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessAccountTagModelDao.java
@@ -23,6 +23,8 @@ import com.ning.billing.util.tag.TagDefinition;
public class BusinessAccountTagModelDao extends BusinessTagModelDao {
+ public BusinessAccountTagModelDao() { /* When reading from the database */ }
+
public BusinessAccountTagModelDao(final Account account,
final Long accountRecordId,
final Tag tag,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessFieldModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessFieldModelDao.java
index 6fa7be5..e8d8245 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessFieldModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessFieldModelDao.java
@@ -33,9 +33,9 @@ public abstract class BusinessFieldModelDao extends BusinessModelDaoBase {
public static final String[] ALL_FIELDS_TABLE_NAMES = new String[]{ACCOUNT_FIELDS_TABLE_NAME, INVOICE_FIELDS_TABLE_NAME, INVOICE_PAYMENT_FIELDS_TABLE_NAME};
- private final Long customFieldRecordId;
- private final String name;
- private final String value;
+ private Long customFieldRecordId;
+ private String name;
+ private String value;
public static BusinessFieldModelDao create(final Account account,
final Long accountRecordId,
@@ -70,6 +70,8 @@ public abstract class BusinessFieldModelDao extends BusinessModelDaoBase {
}
}
+ public BusinessFieldModelDao() { /* When reading from the database */ }
+
public BusinessFieldModelDao(final Long customFieldRecordId,
final String name,
final String value,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceAdjustmentModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceAdjustmentModelDao.java
index ef81a6f..54eda07 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceAdjustmentModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceAdjustmentModelDao.java
@@ -28,6 +28,8 @@ import com.ning.billing.util.audit.AuditLog;
public class BusinessInvoiceAdjustmentModelDao extends BusinessInvoiceItemBaseModelDao {
+ public BusinessInvoiceAdjustmentModelDao() { /* When reading from the database */ }
+
public BusinessInvoiceAdjustmentModelDao(final Account account,
final Long accountRecordId,
final Invoice invoice,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceFieldModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceFieldModelDao.java
index 3654423..21af660 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceFieldModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceFieldModelDao.java
@@ -24,7 +24,9 @@ import com.ning.billing.util.customfield.CustomField;
public class BusinessInvoiceFieldModelDao extends BusinessFieldModelDao {
- private final UUID invoiceId;
+ private UUID invoiceId;
+
+ public BusinessInvoiceFieldModelDao() { /* When reading from the database */ }
public BusinessInvoiceFieldModelDao(final Account account,
final Long accountRecordId,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemAdjustmentModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemAdjustmentModelDao.java
index 0ea1e84..ab5ff93 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemAdjustmentModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemAdjustmentModelDao.java
@@ -28,6 +28,8 @@ import com.ning.billing.util.audit.AuditLog;
public class BusinessInvoiceItemAdjustmentModelDao extends BusinessInvoiceItemBaseModelDao {
+ public BusinessInvoiceItemAdjustmentModelDao() { /* When reading from the database */ }
+
public BusinessInvoiceItemAdjustmentModelDao(final Account account,
final Long accountRecordId,
final Invoice invoice,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemBaseModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemBaseModelDao.java
index fcbf0e5..e192184 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemBaseModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemBaseModelDao.java
@@ -42,33 +42,33 @@ public abstract class BusinessInvoiceItemBaseModelDao extends BusinessModelDaoBa
public static final String[] ALL_INVOICE_ITEMS_TABLE_NAMES = new String[]{INVOICE_ADJUSTMENTS_TABLE_NAME, INVOICE_ITEMS_TABLE_NAME, INVOICE_ITEM_ADJUSTMENTS_TABLE_NAME, ACCOUNT_CREDITS_TABLE_NAME};
- private final Long invoiceItemRecordId;
- private final UUID itemId;
- private final UUID invoiceId;
- private final Integer invoiceNumber;
- private final DateTime invoiceCreatedDate;
- private final LocalDate invoiceDate;
- private final LocalDate invoiceTargetDate;
- private final String invoiceCurrency;
- private final BigDecimal invoiceBalance;
- private final BigDecimal invoiceAmountPaid;
- private final BigDecimal invoiceAmountCharged;
- private final BigDecimal invoiceOriginalAmountCharged;
- private final BigDecimal invoiceAmountCredited;
- private final String itemType;
- private final Boolean revenueRecognizable;
- private final String bundleExternalKey;
- private final String productName;
- private final String productType;
- private final String productCategory;
- private final String slug;
- private final String phase;
- private final String billingPeriod;
- private final LocalDate startDate;
- private final LocalDate endDate;
- private final BigDecimal amount;
- private final String currency;
- private final UUID linkedItemId;
+ private Long invoiceItemRecordId;
+ private UUID itemId;
+ private UUID invoiceId;
+ private Integer invoiceNumber;
+ private DateTime invoiceCreatedDate;
+ private LocalDate invoiceDate;
+ private LocalDate invoiceTargetDate;
+ private String invoiceCurrency;
+ private BigDecimal invoiceBalance;
+ private BigDecimal invoiceAmountPaid;
+ private BigDecimal invoiceAmountCharged;
+ private BigDecimal invoiceOriginalAmountCharged;
+ private BigDecimal invoiceAmountCredited;
+ private String itemType;
+ private Boolean revenueRecognizable;
+ private String bundleExternalKey;
+ private String productName;
+ private String productType;
+ private String productCategory;
+ private String slug;
+ private String phase;
+ private String billingPeriod;
+ private LocalDate startDate;
+ private LocalDate endDate;
+ private BigDecimal amount;
+ private String currency;
+ private UUID linkedItemId;
public static BusinessInvoiceItemBaseModelDao create(final Account account,
final Long accountRecordId,
@@ -133,6 +133,8 @@ public abstract class BusinessInvoiceItemBaseModelDao extends BusinessModelDaoBa
}
}
+ public BusinessInvoiceItemBaseModelDao() { /* When reading from the database */ }
+
public BusinessInvoiceItemBaseModelDao(final Long invoiceItemRecordId,
final UUID itemId,
final UUID invoiceId,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemCreditModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemCreditModelDao.java
index 818550b..2dba9a5 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemCreditModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemCreditModelDao.java
@@ -28,6 +28,8 @@ import com.ning.billing.util.audit.AuditLog;
public class BusinessInvoiceItemCreditModelDao extends BusinessInvoiceItemBaseModelDao {
+ public BusinessInvoiceItemCreditModelDao() { /* When reading from the database */ }
+
public BusinessInvoiceItemCreditModelDao(final Account account,
final Long accountRecordId,
final Invoice invoice,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemModelDao.java
index 121a1f6..cb9f231 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceItemModelDao.java
@@ -28,6 +28,8 @@ import com.ning.billing.util.audit.AuditLog;
public class BusinessInvoiceItemModelDao extends BusinessInvoiceItemBaseModelDao {
+ public BusinessInvoiceItemModelDao() { /* When reading from the database */ }
+
public BusinessInvoiceItemModelDao(final Account account,
final Long accountRecordId,
final Invoice invoice,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceModelDao.java
index 408394d..f505795 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceModelDao.java
@@ -30,17 +30,19 @@ public class BusinessInvoiceModelDao extends BusinessModelDaoBase {
public static final String INVOICES_TABLE_NAME = "bin";
- private final Long invoiceRecordId;
- private final UUID invoiceId;
- private final Integer invoiceNumber;
- private final LocalDate invoiceDate;
- private final LocalDate targetDate;
- private final String currency;
- private final BigDecimal balance;
- private final BigDecimal amountPaid;
- private final BigDecimal amountCharged;
- private final BigDecimal originalAmountCharged;
- private final BigDecimal amountCredited;
+ private Long invoiceRecordId;
+ private UUID invoiceId;
+ private Integer invoiceNumber;
+ private LocalDate invoiceDate;
+ private LocalDate targetDate;
+ private String currency;
+ private BigDecimal balance;
+ private BigDecimal amountPaid;
+ private BigDecimal amountCharged;
+ private BigDecimal originalAmountCharged;
+ private BigDecimal amountCredited;
+
+ public BusinessInvoiceModelDao() { /* When reading from the database */ }
public BusinessInvoiceModelDao(final Long invoiceRecordId,
final UUID invoiceId,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentBaseModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentBaseModelDao.java
index 44ecc85..2ab40d8 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentBaseModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentBaseModelDao.java
@@ -38,24 +38,24 @@ public abstract class BusinessInvoicePaymentBaseModelDao extends BusinessModelDa
public static final String[] ALL_INVOICE_PAYMENTS_TABLE_NAMES = new String[]{INVOICE_PAYMENTS_TABLE_NAME, INVOICE_PAYMENT_REFUNDS_TABLE_NAME, INVOICE_PAYMENT_CHARGEBACKS_TABLE_NAME};
- private final Long invoicePaymentRecordId;
- private final UUID invoicePaymentId;
- private final UUID invoiceId;
- private final Integer invoiceNumber;
- private final DateTime invoiceCreatedDate;
- private final LocalDate invoiceDate;
- private final LocalDate invoiceTargetDate;
- private final String invoiceCurrency;
- private final BigDecimal invoiceBalance;
- private final BigDecimal invoiceAmountPaid;
- private final BigDecimal invoiceAmountCharged;
- private final BigDecimal invoiceOriginalAmountCharged;
- private final BigDecimal invoiceAmountCredited;
- private final String invoicePaymentType;
- private final Long paymentNumber;
- private final UUID linkedInvoicePaymentId;
- private final BigDecimal amount;
- private final String currency;
+ private Long invoicePaymentRecordId;
+ private UUID invoicePaymentId;
+ private UUID invoiceId;
+ private Integer invoiceNumber;
+ private DateTime invoiceCreatedDate;
+ private LocalDate invoiceDate;
+ private LocalDate invoiceTargetDate;
+ private String invoiceCurrency;
+ private BigDecimal invoiceBalance;
+ private BigDecimal invoiceAmountPaid;
+ private BigDecimal invoiceAmountCharged;
+ private BigDecimal invoiceOriginalAmountCharged;
+ private BigDecimal invoiceAmountCredited;
+ private String invoicePaymentType;
+ private Long paymentNumber;
+ private UUID linkedInvoicePaymentId;
+ private BigDecimal amount;
+ private String currency;
public static BusinessInvoicePaymentBaseModelDao create(final Account account,
final Long accountRecordId,
@@ -99,6 +99,8 @@ public abstract class BusinessInvoicePaymentBaseModelDao extends BusinessModelDa
}
}
+ public BusinessInvoicePaymentBaseModelDao() { /* When reading from the database */ }
+
public BusinessInvoicePaymentBaseModelDao(final Long invoicePaymentRecordId,
final UUID invoicePaymentId,
final UUID invoiceId,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentChargebackModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentChargebackModelDao.java
index 4d81922..3883659 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentChargebackModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentChargebackModelDao.java
@@ -25,6 +25,8 @@ import com.ning.billing.util.audit.AuditLog;
public class BusinessInvoicePaymentChargebackModelDao extends BusinessInvoicePaymentBaseModelDao {
+ public BusinessInvoicePaymentChargebackModelDao() { /* When reading from the database */ }
+
public BusinessInvoicePaymentChargebackModelDao(final Account account,
final Long accountRecordId,
final Invoice invoice,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentFieldModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentFieldModelDao.java
index c4ae693..351c9d6 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentFieldModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentFieldModelDao.java
@@ -24,7 +24,9 @@ import com.ning.billing.util.customfield.CustomField;
public class BusinessInvoicePaymentFieldModelDao extends BusinessFieldModelDao {
- private final UUID invoicePaymentId;
+ private UUID invoicePaymentId;
+
+ public BusinessInvoicePaymentFieldModelDao() { /* When reading from the database */ }
public BusinessInvoicePaymentFieldModelDao(final Account account,
final Long accountRecordId,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentModelDao.java
index 5c249c2..fd6c482 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentModelDao.java
@@ -25,6 +25,8 @@ import com.ning.billing.util.audit.AuditLog;
public class BusinessInvoicePaymentModelDao extends BusinessInvoicePaymentBaseModelDao {
+ public BusinessInvoicePaymentModelDao() { /* When reading from the database */ }
+
public BusinessInvoicePaymentModelDao(final Account account,
final Long accountRecordId,
final Invoice invoice,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentRefundModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentRefundModelDao.java
index b6a18af..87df20f 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentRefundModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentRefundModelDao.java
@@ -25,6 +25,8 @@ import com.ning.billing.util.audit.AuditLog;
public class BusinessInvoicePaymentRefundModelDao extends BusinessInvoicePaymentBaseModelDao {
+ public BusinessInvoicePaymentRefundModelDao() { /* When reading from the database */ }
+
public BusinessInvoicePaymentRefundModelDao(final Account account,
final Long accountRecordId,
final Invoice invoice,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentTagModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentTagModelDao.java
index eca5ad5..716b67d 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentTagModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoicePaymentTagModelDao.java
@@ -25,7 +25,9 @@ import com.ning.billing.util.tag.TagDefinition;
public class BusinessInvoicePaymentTagModelDao extends BusinessTagModelDao {
- private final UUID invoicePaymentId;
+ private UUID invoicePaymentId;
+
+ public BusinessInvoicePaymentTagModelDao() { /* When reading from the database */ }
public BusinessInvoicePaymentTagModelDao(final Account account,
final Long accountRecordId,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceTagModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceTagModelDao.java
index a94c5e7..ed97e47 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceTagModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessInvoiceTagModelDao.java
@@ -25,7 +25,9 @@ import com.ning.billing.util.tag.TagDefinition;
public class BusinessInvoiceTagModelDao extends BusinessTagModelDao {
- private final UUID invoiceId;
+ private UUID invoiceId;
+
+ public BusinessInvoiceTagModelDao() { /* When reading from the database */ }
public BusinessInvoiceTagModelDao(final Account account,
final Long accountRecordId,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessModelDaoBase.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessModelDaoBase.java
index 628a961..b5afefd 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessModelDaoBase.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessModelDaoBase.java
@@ -22,17 +22,19 @@ import org.joda.time.DateTime;
public abstract class BusinessModelDaoBase {
- protected final Long recordId;
-
- protected final DateTime createdDate;
- protected final String createdBy;
- protected final String createdReasonCode;
- protected final String createdComments;
- protected final UUID accountId;
- protected final String accountName;
- protected final String accountExternalKey;
- protected final Long accountRecordId;
- protected final Long tenantRecordId;
+ protected Long recordId;
+
+ protected DateTime createdDate;
+ protected String createdBy;
+ protected String createdReasonCode;
+ protected String createdComments;
+ protected UUID accountId;
+ protected String accountName;
+ protected String accountExternalKey;
+ protected Long accountRecordId;
+ protected Long tenantRecordId;
+
+ public BusinessModelDaoBase() { /* When reading from the database */ }
public BusinessModelDaoBase(final DateTime createdDate, final String createdBy, final String createdReasonCode,
final String createdComments, final UUID accountId, final String accountName,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessOverdueStatusModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessOverdueStatusModelDao.java
index c839f3a..e1808af 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessOverdueStatusModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessOverdueStatusModelDao.java
@@ -29,12 +29,14 @@ public class BusinessOverdueStatusModelDao extends BusinessModelDaoBase {
private static final String OVERDUE_STATUS_TABLE_NAME = "bos";
- private final Long blockingStateRecordId;
- private final UUID bundleId;
- private final String bundleExternalKey;
- private final String status;
- private final DateTime startDate;
- private final DateTime endDate;
+ private Long blockingStateRecordId;
+ private UUID bundleId;
+ private String bundleExternalKey;
+ private String status;
+ private DateTime startDate;
+ private DateTime endDate;
+
+ public BusinessOverdueStatusModelDao() { /* When reading from the database */ }
public BusinessOverdueStatusModelDao(final Long blockingStateRecordId,
final UUID bundleId,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessSubscriptionTransitionModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessSubscriptionTransitionModelDao.java
index e18a8c5..e0dea82 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessSubscriptionTransitionModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessSubscriptionTransitionModelDao.java
@@ -32,14 +32,16 @@ public class BusinessSubscriptionTransitionModelDao extends BusinessModelDaoBase
private static final String SUBSCRIPTION_TABLE_NAME = "bst";
- private final Long subscriptionEventRecordId;
- private final UUID bundleId;
- private final String bundleExternalKey;
- private final UUID subscriptionId;
- private final DateTime requestedTimestamp;
- private final BusinessSubscriptionEvent event;
- private final BusinessSubscription previousSubscription;
- private final BusinessSubscription nextSubscription;
+ private Long subscriptionEventRecordId;
+ private UUID bundleId;
+ private String bundleExternalKey;
+ private UUID subscriptionId;
+ private DateTime requestedTimestamp;
+ private BusinessSubscriptionEvent event;
+ private BusinessSubscription previousSubscription;
+ private BusinessSubscription nextSubscription;
+
+ public BusinessSubscriptionTransitionModelDao() { /* When reading from the database */ }
public BusinessSubscriptionTransitionModelDao(final Long subscriptionEventRecordId,
final UUID bundleId,
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessTagModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessTagModelDao.java
index 852d6d3..b3b767d 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessTagModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessTagModelDao.java
@@ -34,8 +34,8 @@ public abstract class BusinessTagModelDao extends BusinessModelDaoBase {
public static final String[] ALL_TAGS_TABLE_NAMES = new String[]{ACCOUNT_TAGS_TABLE_NAME, INVOICE_PAYMENT_TAGS_TABLE_NAME, INVOICE_TAGS_TABLE_NAME};
- private final Long tagRecordId;
- private final String name;
+ private Long tagRecordId;
+ private String name;
public static BusinessTagModelDao create(final Account account,
final Long accountRecordId,
@@ -74,6 +74,8 @@ public abstract class BusinessTagModelDao extends BusinessModelDaoBase {
}
}
+ public BusinessTagModelDao() { /* When reading from the database */ }
+
public BusinessTagModelDao(final Long tagRecordId,
final String name,
final DateTime createdDate,
diff --git a/osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsSqlDao.sql.stg b/osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsSqlDao.sql.stg
new file mode 100644
index 0000000..ebe3174
--- /dev/null
+++ b/osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/dao/BusinessAnalyticsSqlDao.sql.stg
@@ -0,0 +1,981 @@
+group BusinessAnalyticsSqlDao;
+
+createBst() ::= <<
+insert into bst (
+ subscription_event_record_id
+, bundle_id
+, bundle_external_key
+, subscription_id
+, requested_timestamp
+, event
+, prev_product_name
+, prev_product_type
+, prev_product_category
+, prev_slug
+, prev_phase
+, prev_billing_period
+, prev_price
+, prev_price_list
+, prev_mrr
+, prev_currency
+, prev_state
+, prev_business_active
+, prev_start_date
+, next_product_name
+, next_product_type
+, next_product_category
+, next_slug
+, next_phase
+, next_billing_period
+, next_price
+, next_price_list
+, next_mrr
+, next_currency
+, next_state
+, next_business_active
+, next_start_date
+, next_end_date
+, created_date
+, created_by
+, created_reason_code
+, created_comments
+, account_id
+, account_name
+, account_external_key
+, account_record_id
+, tenant_record_id
+) values (
+ :subscriptionEventRecordId
+, :bundleId
+, :bundleExternalKey
+, :subscriptionId
+, :requestedTimestamp
+, :event
+, :prevProductName
+, :prevProductType
+, :prevProductCategory
+, :prevSlug
+, :prevPhase
+, :prevBillingPeriod
+, :prevPrice
+, :prevPriceList
+, :prevMrr
+, :prevCurrency
+, :prevState
+, :prevBusinessActive
+, :prevStartDate
+, :nextProductName
+, :nextProductType
+, :nextProductCategory
+, :nextSlug
+, :nextPhase
+, :nextBillingPeriod
+, :nextPrice
+, :nextPriceList
+, :nextMrr
+, :nextCurrency
+, :nextState
+, :nextBusinessActive
+, :nextStartDate
+, :nextEndDate
+, :createdDate
+, :createdBy
+, :createdReasonCode
+, :createdComments
+, :accountId
+, :accountName
+, :accountExternalKey
+, :accountRecordId
+, :tenantRecordId
+);
+>>
+
+createBac() ::= <<
+insert into bac (
+ email
+, first_name_length
+, currency
+, billing_cycle_day_local
+, payment_method_id
+, time_zone
+, locale
+, address1
+, address2
+, company_name
+, city
+, state_or_province
+, country
+, postal_code
+, phone
+, migrated
+, notified_for_invoices
+, balance
+, last_invoice_date
+, last_payment_date
+, last_payment_status
+, created_date
+, created_by
+, created_reason_code
+, created_comments
+, updated_date
+, account_id
+, account_name
+, account_external_key
+, account_record_id
+, tenant_record_id
+) values (
+ :email
+, :firstNameLength
+, :currency
+, :billingCycleDayLocal
+, :paymentMethodId
+, :timeZone
+, :locale
+, :address1
+, :address2
+, :companyName
+, :city
+, :stateOrProvince
+, :country
+, :postalCode
+, :phone
+, :migrated
+, :notifiedForInvoices
+, :balance
+, :lastInvoiceDate
+, :lastPaymentDate
+, :lastPaymentStatus
+, :createdDate
+, :createdBy
+, :createdReasonCode
+, :createdComments
+, :updatedDate
+, :accountId
+, :accountName
+, :accountExternalKey
+, :accountRecordId
+, :tenantRecordId
+);
+>>
+
+createBin() ::= <<
+insert into bin (
+ invoice_record_id
+, invoice_id
+, invoice_number
+, invoice_date
+, target_date
+, currency
+, balance
+, amount_paid
+, amount_charged
+, original_amount_charged
+, amount_credited
+, created_date
+, created_by
+, created_reason_code
+, created_comments
+, account_id
+, account_name
+, account_external_key
+, account_record_id
+) values (
+ :invoiceRecordId
+, :invoiceId
+, :invoiceNumber
+, :invoiceDate
+, :targetDate
+, :currency
+, :balance
+, :amountPaid
+, :amountCharged
+, :originalAmountCharged
+, :amountCredited
+, :createdDate
+, :createdBy
+, :createdReasonCode
+, :createdComments
+, :accountId
+, :accountName
+, :accountExternalKey
+, :accountRecordId
+);
+>>
+
+createBia() ::= <<
+insert into bia (
+, invoice_item_record_id
+, item_id
+, invoice_id
+, invoice_number
+, invoice_created_date
+, invoice_date
+, invoice_target_date
+, invoice_currency
+, invoice_balance
+, invoice_amount_paid
+, invoice_amount_charged
+, invoice_original_amount_charged
+, invoice_amount_credited
+, item_type
+, revenue_recognizable
+, bundle_external_key
+, product_name
+, product_type
+, product_category
+, slug
+, phase
+, billing_period
+, start_date
+, end_date
+, amount
+, currency
+, linked_item_id
+, created_date
+, created_by
+, created_reason_code
+, created_comments
+, account_id
+, account_name
+, account_external_key
+, account_record_id
+, tenant_record_id
+) values (
+ :invoiceItemRecordId
+, :itemId
+, :invoiceId
+, :invoiceNumber
+, :invoiceCreatedDate
+, :invoiceDate
+, :invoiceTargetDate
+, :invoiceCurrency
+, :invoiceBalance
+, :invoiceAmountPaid
+, :invoiceAmountCharged
+, :invoiceOriginalAmountCharged
+, :invoiceAmountCredited
+, :itemType
+, :revenueRecognizable
+, :bundleExternalKey
+, :productName
+, :productType
+, :productCategory
+, :slug
+, :phase
+, :billingPeriod
+, :startDate
+, :endDate
+, :amount
+, :currency
+, :linkedItemId
+, :createdDate
+, :createdBy
+, :createdReasonCode
+, :createdComments
+, :accountId
+, :accountName
+, :accountExternalKey
+, :accountRecordId
+, :tenantRecordId
+);
+>>
+
+createBii() ::= <<
+insert into bii (
+ invoice_item_record_id
+, item_id
+, invoice_id
+, invoice_number
+, invoice_created_date
+, invoice_date
+, invoice_target_date
+, invoice_currency
+, invoice_balance
+, invoice_amount_paid
+, invoice_amount_charged
+, invoice_original_amount_charged
+, invoice_amount_credited
+, item_type
+, revenue_recognizable
+, bundle_external_key
+, product_name
+, product_type
+, product_category
+, slug
+, phase
+, billing_period
+, start_date
+, end_date
+, amount
+, currency
+, linked_item_id
+, created_date
+, created_by
+, created_reason_code
+, created_comments
+, account_id
+, account_name
+, account_external_key
+, account_record_id
+, tenant_record_id
+) values (
+ :invoiceItemRecordId
+, :itemId
+, :invoiceId
+, :invoiceNumber
+, :invoiceCreatedDate
+, :invoiceDate
+, :invoiceTargetDate
+, :invoiceCurrency
+, :invoiceBalance
+, :invoiceAmountPaid
+, :invoiceAmountCharged
+, :invoiceOriginalAmountCharged
+, :invoiceAmountCredited
+, :itemType
+, :revenueRecognizable
+, :bundleExternalKey
+, :productName
+, :productType
+, :productCategory
+, :slug
+, :phase
+, :billingPeriod
+, :startDate
+, :endDate
+, :amount
+, :currency
+, :linkedItemId
+, :createdDate
+, :createdBy
+, :createdReasonCode
+, :createdComments
+, :accountId
+, :accountName
+, :accountExternalKey
+, :accountRecordId
+, :tenantRecordId
+);
+>>
+
+createBiia() ::= <<
+insert into biia (
+ invoice_item_record_id
+, item_id
+, invoice_id
+, invoice_number
+, invoice_created_date
+, invoice_date
+, invoice_target_date
+, invoice_currency
+, invoice_balance
+, invoice_amount_paid
+, invoice_amount_charged
+, invoice_original_amount_charged
+, invoice_amount_credited
+, item_type
+, revenue_recognizable
+, bundle_external_key
+, product_name
+, product_type
+, product_category
+, slug
+, phase
+, billing_period
+, start_date
+, end_date
+, amount
+, currency
+, linked_item_id
+, created_date
+, created_by
+, created_reason_code
+, created_comments
+, account_id
+, account_name
+, account_external_key
+, account_record_id
+, tenant_record_id
+) values (
+ :invoiceItemRecordId
+, :itemId
+, :invoiceId
+, :invoiceNumber
+, :invoiceCreatedDate
+, :invoiceDate
+, :invoiceTargetDate
+, :invoiceCurrency
+, :invoiceBalance
+, :invoiceAmountPaid
+, :invoiceAmountCharged
+, :invoiceOriginalAmountCharged
+, :invoiceAmountCredited
+, :itemType
+, :revenueRecognizable
+, :bundleExternalKey
+, :productName
+, :productType
+, :productCategory
+, :slug
+, :phase
+, :billingPeriod
+, :startDate
+, :endDate
+, :amount
+, :currency
+, :linkedItemId
+, :createdDate
+, :createdBy
+, :createdReasonCode
+, :createdComments
+, :accountId
+, :accountName
+, :accountExternalKey
+, :accountRecordId
+, :tenantRecordId
+);
+>>
+
+createBiic() ::= <<
+insert into biic (
+ invoice_item_record_id
+, item_id
+, invoice_id
+, invoice_number
+, invoice_created_date
+, invoice_date
+, invoice_target_date
+, invoice_currency
+, invoice_balance
+, invoice_amount_paid
+, invoice_amount_charged
+, invoice_original_amount_charged
+, invoice_amount_credited
+, item_type
+, revenue_recognizable
+, bundle_external_key
+, product_name
+, product_type
+, product_category
+, slug
+, phase
+, billing_period
+, start_date
+, end_date
+, amount
+, currency
+, linked_item_id
+, created_date
+, created_by
+, created_reason_code
+, created_comments
+, account_id
+, account_name
+, account_external_key
+, account_record_id
+, tenant_record_id
+) values (
+ :invoiceItemRecordId
+, :itemId
+, :invoiceId
+, :invoiceNumber
+, :invoiceCreatedDate
+, :invoiceDate
+, :invoiceTargetDate
+, :invoiceCurrency
+, :invoiceBalance
+, :invoiceAmountPaid
+, :invoiceAmountCharged
+, :invoiceOriginalAmountCharged
+, :invoiceAmountCredited
+, :itemType
+, :revenueRecognizable
+, :bundleExternalKey
+, :productName
+, :productType
+, :productCategory
+, :slug
+, :phase
+, :billingPeriod
+, :startDate
+, :endDate
+, :amount
+, :currency
+, :linkedItemId
+, :createdDate
+, :createdBy
+, :createdReasonCode
+, :createdComments
+, :accountId
+, :accountName
+, :accountExternalKey
+, :accountRecordId
+, :tenantRecordId
+);
+>>
+
+createBip() ::= <<
+insert into bip (
+ invoice_payment_record_id
+, invoice_payment_id
+, invoice_id
+, invoice_number
+, invoice_created_date
+, invoice_date
+, invoice_target_date
+, invoice_currency
+, invoice_balance
+, invoice_amount_paid
+, invoice_amount_charged
+, invoice_original_amount_charged
+, invoice_amount_credited
+, invoice_payment_type
+, payment_number
+, linked_invoice_payment_id
+, amount
+, currency
+, created_date
+, created_by
+, created_reason_code
+, created_comments
+, account_id
+, account_name
+, account_external_key
+, account_record_id
+, tenant_record_id
+) values (
+ :invoicePaymentRecordId
+, :invoicePaymentId
+, :invoiceId
+, :invoiceNumber
+, :invoiceCreatedDate
+, :invoiceDate
+, :invoiceTargetDate
+, :invoiceCurrency
+, :invoiceBalance
+, :invoiceAmountPaid
+, :invoiceAmountCharged
+, :invoiceOriginalAmountCharged
+, :invoiceAmountCredited
+, :invoicePaymentType
+, :paymentNumber
+, :linkedInvoicePaymentId
+, :amount
+, :currency
+, :createdDate
+, :createdBy
+, :createdReasonCode
+, :createdComments
+, :accountId
+, :accountName
+, :accountExternalKey
+, :accountRecordId
+, :tenantRecordId
+);
+>>
+
+createBipr() ::= <<
+insert into bipr (
+ invoice_payment_record_id
+, invoice_payment_id
+, invoice_id
+, invoice_number
+, invoice_created_date
+, invoice_date
+, invoice_target_date
+, invoice_currency
+, invoice_balance
+, invoice_amount_paid
+, invoice_amount_charged
+, invoice_original_amount_charged
+, invoice_amount_credited
+, invoice_payment_type
+, payment_number
+, linked_invoice_payment_id
+, amount
+, currency
+, created_date
+, created_by
+, created_reason_code
+, created_comments
+, account_id
+, account_name
+, account_external_key
+, account_record_id
+, tenant_record_id
+) values (
+ :invoicePaymentRecordId
+, :invoicePaymentId
+, :invoiceId
+, :invoiceNumber
+, :invoiceCreatedDate
+, :invoiceDate
+, :invoiceTargetDate
+, :invoiceCurrency
+, :invoiceBalance
+, :invoiceAmountPaid
+, :invoiceAmountCharged
+, :invoiceOriginalAmountCharged
+, :invoiceAmountCredited
+, :invoicePaymentType
+, :paymentNumber
+, :linkedInvoicePaymentId
+, :amount
+, :currency
+, :createdDate
+, :createdBy
+, :createdReasonCode
+, :createdComments
+, :accountId
+, :accountName
+, :accountExternalKey
+, :accountRecordId
+, :tenantRecordId
+);
+>>
+
+createBipc() ::= <<
+insert into bipc (
+ invoice_payment_record_id
+, invoice_payment_id
+, invoice_id
+, invoice_number
+, invoice_created_date
+, invoice_date
+, invoice_target_date
+, invoice_currency
+, invoice_balance
+, invoice_amount_paid
+, invoice_amount_charged
+, invoice_original_amount_charged
+, invoice_amount_credited
+, invoice_payment_type
+, payment_number
+, linked_invoice_payment_id
+, amount
+, currency
+, created_date
+, created_by
+, created_reason_code
+, created_comments
+, account_id
+, account_name
+, account_external_key
+, account_record_id
+, tenant_record_id
+) values (
+ :invoicePaymentRecordId
+, :invoicePaymentId
+, :invoiceId
+, :invoiceNumber
+, :invoiceCreatedDate
+, :invoiceDate
+, :invoiceTargetDate
+, :invoiceCurrency
+, :invoiceBalance
+, :invoiceAmountPaid
+, :invoiceAmountCharged
+, :invoiceOriginalAmountCharged
+, :invoiceAmountCredited
+, :invoicePaymentType
+, :paymentNumber
+, :linkedInvoicePaymentId
+, :amount
+, :currency
+, :createdDate
+, :createdBy
+, :createdReasonCode
+, :createdComments
+, :accountId
+, :accountName
+, :accountExternalKey
+, :accountRecordId
+, :tenantRecordId
+);
+>>
+
+createBos() ::= <<
+insert into bos (
+ blocking_state_record_id
+, bundle_id
+, bundle_external_key
+, status
+, start_date
+, end_date
+, created_date
+, created_by
+, created_reason_code
+, created_comments
+, account_id
+, account_name
+, account_external_key
+, account_record_id
+, tenant_record_id
+) values (
+ :blockingStateRecordId
+, :bundleId
+, :bundleExternalKey
+, :status
+, :startDate
+, :endDate
+, :createdDate
+, :createdBy
+, :createdReasonCode
+, :createdComments
+, :accountId
+, :accountName
+, :accountExternalKey
+, :accountRecordId
+, :tenantRecordId
+);
+>>
+
+createBacTags() ::= <<
+insert into bac_tags (
+ tag_record_id
+, name
+, created_date
+, created_by
+, created_reason_code
+, created_comments
+, account_id
+, account_name
+, account_external_key
+, account_record_id
+, tenant_record_id
+) values (
+ :tagRecordId
+, :name
+, :createdDate
+, :createdBy
+, :createdReasonCode
+, :createdComments
+, :accountId
+, :accountName
+, :accountExternalKey
+, :accountRecordId
+, :tenantRecordId
+);
+>>
+
+createBinTags() ::= <<
+insert into bin_tags (
+ tag_record_id
+, invoice_id
+, name
+, created_date
+, created_by
+, created_reason_code
+, created_comments
+, account_id
+, account_name
+, account_external_key
+, account_record_id
+, tenant_record_id
+) values (
+ :tagRecordId
+, :invoiceId
+, :name
+, :createdDate
+, :createdBy
+, :createdReasonCode
+, :createdComments
+, :accountId
+, :accountName
+, :accountExternalKey
+, :accountRecordId
+, :tenantRecordId
+);
+>>
+
+createBipTags() ::= <<
+insert into bip_tags (
+ tag_record_id
+, invoice_payment_id
+, name
+, created_date
+, created_by
+, created_reason_code
+, created_comments
+, account_id
+, account_name
+, account_external_key
+, account_record_id
+, tenant_record_id
+) values (
+ :tagRecordId
+, :invoicePaymentId
+, :name
+, :createdDate
+, :createdBy
+, :createdReasonCode
+, :createdComments
+, :accountId
+, :accountName
+, :accountExternalKey
+, :accountRecordId
+, :tenantRecordId
+);
+>>
+
+createBacFields() ::= <<
+insert into bac_fields (
+ custom_field_record_id
+, name
+, value
+, created_date
+, created_by
+, created_reason_code
+, created_comments
+, account_id
+, account_name
+, account_external_key
+, account_record_id
+, tenant_record_id
+) values (
+ :customFieldRecordId
+, :name
+, :value
+, :createdDate
+, :createdBy
+, :createdReasonCode
+, :createdComments
+, :accountId
+, :accountName
+, :accountExternalKey
+, :accountRecordId
+, :tenantRecordId
+);
+>>
+
+createBinFields() ::= <<
+insert into bin_fields (
+ custom_field_record_id
+, invoice_id
+, name
+, value
+, created_date
+, created_by
+, created_reason_code
+, created_comments
+, account_id
+, account_name
+, account_external_key
+, account_record_id
+, tenant_record_id
+) values (
+ :customFieldRecordId
+, :invoiceId
+, :name
+, :value
+, :createdDate
+, :createdBy
+, :createdReasonCode
+, :createdComments
+, :accountId
+, :accountName
+, :accountExternalKey
+, :accountRecordId
+, :tenantRecordId
+);
+>>
+
+createBipFields() ::= <<
+insert into bip_fields (
+, custom_field_record_id
+, invoice_payment_id
+, name
+, value
+, created_date
+, created_by
+, created_reason_code
+, created_comments
+, account_id
+, account_name
+, account_external_key
+, account_record_id
+, tenant_record_id
+) values (
+, :customFieldRecordId
+, :invoicePaymentId
+, :name
+, :value
+, :createdDate
+, :createdBy
+, :createdReasonCode
+, :createdComments
+, :accountId
+, :accountName
+, :accountExternalKey
+, :accountRecordId
+, :tenantRecordId
+);
+>>
+
+CHECK_TENANT_AND_ACCOUNT(prefix) ::= <<
+ <prefix>tenant_record_id = :tenantRecordId
+and <prefix>account_record_id = :accountRecordId
+>>
+
+SELECT_STAR_FROM_TABLE(table) ::= <<
+select *
+from <table> t
+where <CHECK_TENANT_AND_ACCOUNT("t.")>
+;
+>>
+
+deleteByAccountRecordId() ::= <<
+delete from :tableName t
+where <CHECK_TENANT_AND_ACCOUNT("t.")>
+;
+>>
+
+getAccountByAccountRecordId() ::= <<
+<SELECT_STAR_FROM_TABLE("bac")>
+>>
+
+getSubscriptionTransitionsByAccountRecordId() ::= <<
+<SELECT_STAR_FROM_TABLE("bst")>
+>>
+
+getOverdueStatusesByAccountRecordId() ::= <<
+<SELECT_STAR_FROM_TABLE("bos")>
+>>
+
+getInvoicesByAccountRecordId() ::= <<
+<SELECT_STAR_FROM_TABLE("bin")>
+>>
+
+getInvoiceItemsByAccountRecordId() ::= <<
+<SELECT_STAR_FROM_TABLE("bia")>
+union all
+<SELECT_STAR_FROM_TABLE("bii")>
+union all
+<SELECT_STAR_FROM_TABLE("biia")>
+union all
+<SELECT_STAR_FROM_TABLE("biic")>
+>>
+
+getInvoicePaymentsByAccountRecordId() ::= <<
+<SELECT_STAR_FROM_TABLE("bip")>
+union all
+<SELECT_STAR_FROM_TABLE("bipr")>
+union all
+<SELECT_STAR_FROM_TABLE("bipc")>
+>>
+
+getFieldsByAccountRecordId() ::= <<
+<SELECT_STAR_FROM_TABLE("bac_fields")>
+union all
+<SELECT_STAR_FROM_TABLE("bin_fiels")>
+union all
+<SELECT_STAR_FROM_TABLE("bip_fiels")>
+>>
+
+getTagsByAccountRecordId() ::= <<
+<SELECT_STAR_FROM_TABLE("bac_tags")>
+union all
+<SELECT_STAR_FROM_TABLE("bin_tags")>
+union all
+<SELECT_STAR_FROM_TABLE("bip_tags")>
+>>
diff --git a/osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/ddl.sql b/osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/ddl.sql
index 5fc8c5f..674554d 100644
--- a/osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/ddl.sql
+++ b/osgi-bundles/bundles/analytics/src/main/resources/com/ning/billing/osgi/bundles/analytics/ddl.sql
@@ -73,7 +73,7 @@ create table bac (
, postal_code varchar(16) default null
, phone varchar(25) default null
, migrated bool default false
-, is_notified_for_invoices boolean not null
+, notified_for_invoices boolean not null
, balance numeric(10, 4) default 0
, last_invoice_date date default null
, last_payment_date datetime not null
diff --git a/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteNoDB.java b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteNoDB.java
index b4ae0e5..a3583f0 100644
--- a/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteNoDB.java
+++ b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteNoDB.java
@@ -48,6 +48,7 @@ import com.ning.billing.invoice.api.InvoicePayment.InvoicePaymentType;
import com.ning.billing.junction.api.Blockable.Type;
import com.ning.billing.junction.api.BlockingState;
import com.ning.billing.osgi.bundles.analytics.api.BusinessEntityBase;
+import com.ning.billing.osgi.bundles.analytics.dao.TestCallContext;
import com.ning.billing.osgi.bundles.analytics.dao.model.BusinessModelDaoBase;
import com.ning.billing.payment.api.Payment;
import com.ning.billing.payment.api.Payment.PaymentAttempt;
@@ -136,22 +137,24 @@ public abstract class AnalyticsTestSuiteNoDB {
Mockito.when(account.getCurrency()).thenReturn(Currency.BRL);
Mockito.when(account.getPaymentMethodId()).thenReturn(UUID.randomUUID());
Mockito.when(account.getTimeZone()).thenReturn(DateTimeZone.forID("Europe/London"));
- Mockito.when(account.getLocale()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(account.getLocale()).thenReturn(UUID.randomUUID().toString().substring(0, 5));
Mockito.when(account.getAddress1()).thenReturn(UUID.randomUUID().toString());
Mockito.when(account.getAddress2()).thenReturn(UUID.randomUUID().toString());
Mockito.when(account.getCompanyName()).thenReturn(UUID.randomUUID().toString());
Mockito.when(account.getCity()).thenReturn(UUID.randomUUID().toString());
Mockito.when(account.getStateOrProvince()).thenReturn(UUID.randomUUID().toString());
- Mockito.when(account.getPostalCode()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(account.getPostalCode()).thenReturn(UUID.randomUUID().toString().substring(0, 16));
Mockito.when(account.getCountry()).thenReturn(UUID.randomUUID().toString());
- Mockito.when(account.getPhone()).thenReturn(UUID.randomUUID().toString());
+ Mockito.when(account.getPhone()).thenReturn(UUID.randomUUID().toString().substring(0, 25));
Mockito.when(account.isMigrated()).thenReturn(true);
Mockito.when(account.isNotifiedForInvoices()).thenReturn(true);
+ final UUID accountId = account.getId();
bundle = Mockito.mock(SubscriptionBundle.class);
Mockito.when(bundle.getId()).thenReturn(UUID.randomUUID());
- Mockito.when(bundle.getAccountId()).thenReturn(account.getId());
+ Mockito.when(bundle.getAccountId()).thenReturn(accountId);
Mockito.when(bundle.getExternalKey()).thenReturn(UUID.randomUUID().toString());
+ final UUID bundleId = bundle.getId();
final Product product = Mockito.mock(Product.class);
Mockito.when(product.getName()).thenReturn(UUID.randomUUID().toString());
@@ -165,12 +168,14 @@ public abstract class AnalyticsTestSuiteNoDB {
Mockito.when(plan.isRetired()).thenReturn(true);
Mockito.when(plan.getBillingPeriod()).thenReturn(BillingPeriod.QUARTERLY);
Mockito.when(plan.getEffectiveDateForExistingSubscriptons()).thenReturn(new DateTime(2016, 1, 22, 10, 56, 59, DateTimeZone.UTC).toDate());
+ final String planName = plan.getName();
phase = Mockito.mock(PlanPhase.class);
Mockito.when(phase.getBillingPeriod()).thenReturn(BillingPeriod.QUARTERLY);
Mockito.when(phase.getName()).thenReturn(UUID.randomUUID().toString());
Mockito.when(phase.getPlan()).thenReturn(plan);
Mockito.when(phase.getPhaseType()).thenReturn(PhaseType.DISCOUNT);
+ final String phaseName = phase.getName();
priceList = Mockito.mock(PriceList.class);
Mockito.when(priceList.getName()).thenReturn(UUID.randomUUID().toString());
@@ -178,7 +183,7 @@ public abstract class AnalyticsTestSuiteNoDB {
subscriptionTransition = Mockito.mock(SubscriptionTransition.class);
Mockito.when(subscriptionTransition.getSubscriptionId()).thenReturn(UUID.randomUUID());
- Mockito.when(subscriptionTransition.getBundleId()).thenReturn(bundle.getId());
+ Mockito.when(subscriptionTransition.getBundleId()).thenReturn(bundleId);
Mockito.when(subscriptionTransition.getNextState()).thenReturn(SubscriptionState.ACTIVE);
Mockito.when(subscriptionTransition.getNextPlan()).thenReturn(plan);
Mockito.when(subscriptionTransition.getNextPhase()).thenReturn(phase);
@@ -186,10 +191,11 @@ public abstract class AnalyticsTestSuiteNoDB {
Mockito.when(subscriptionTransition.getRequestedTransitionTime()).thenReturn(new DateTime(2010, 1, 2, 3, 4, 5, DateTimeZone.UTC));
Mockito.when(subscriptionTransition.getEffectiveTransitionTime()).thenReturn(new DateTime(2011, 2, 3, 4, 5, 6, DateTimeZone.UTC));
Mockito.when(subscriptionTransition.getTransitionType()).thenReturn(SubscriptionTransitionType.CREATE);
+ final UUID subscriptionId = subscriptionTransition.getSubscriptionId();
blockingState = Mockito.mock(BlockingState.class);
Mockito.when(blockingState.getId()).thenReturn(UUID.randomUUID());
- Mockito.when(blockingState.getBlockedId()).thenReturn(bundle.getId());
+ Mockito.when(blockingState.getBlockedId()).thenReturn(bundleId);
Mockito.when(blockingState.getStateName()).thenReturn(UUID.randomUUID().toString());
Mockito.when(blockingState.getType()).thenReturn(Type.SUBSCRIPTION_BUNDLE);
Mockito.when(blockingState.getTimestamp()).thenReturn(new DateTime(2010, 2, 2, 4, 22, 22, DateTimeZone.UTC));
@@ -209,18 +215,20 @@ public abstract class AnalyticsTestSuiteNoDB {
Mockito.when(invoiceItem.getAmount()).thenReturn(new BigDecimal("12000"));
Mockito.when(invoiceItem.getCurrency()).thenReturn(Currency.EUR);
Mockito.when(invoiceItem.getDescription()).thenReturn(UUID.randomUUID().toString());
- Mockito.when(invoiceItem.getBundleId()).thenReturn(bundle.getId());
- Mockito.when(invoiceItem.getSubscriptionId()).thenReturn(subscriptionTransition.getSubscriptionId());
- Mockito.when(invoiceItem.getPlanName()).thenReturn(plan.getName());
- Mockito.when(invoiceItem.getPhaseName()).thenReturn(phase.getName());
+ Mockito.when(invoiceItem.getBundleId()).thenReturn(bundleId);
+ Mockito.when(invoiceItem.getSubscriptionId()).thenReturn(subscriptionId);
+ Mockito.when(invoiceItem.getPlanName()).thenReturn(planName);
+ Mockito.when(invoiceItem.getPhaseName()).thenReturn(phaseName);
Mockito.when(invoiceItem.getRate()).thenReturn(new BigDecimal("1203"));
Mockito.when(invoiceItem.getLinkedItemId()).thenReturn(UUID.randomUUID());
+ final UUID invoiceId = UUID.randomUUID();
+
invoicePayment = Mockito.mock(InvoicePayment.class);
Mockito.when(invoicePayment.getId()).thenReturn(UUID.randomUUID());
Mockito.when(invoicePayment.getPaymentId()).thenReturn(UUID.randomUUID());
Mockito.when(invoicePayment.getType()).thenReturn(InvoicePaymentType.ATTEMPT);
- Mockito.when(invoicePayment.getInvoiceId()).thenReturn(invoice.getId());
+ Mockito.when(invoicePayment.getInvoiceId()).thenReturn(invoiceId);
Mockito.when(invoicePayment.getPaymentDate()).thenReturn(new DateTime(2003, 4, 12, 3, 34, 52, DateTimeZone.UTC));
Mockito.when(invoicePayment.getAmount()).thenReturn(BigDecimal.ONE);
Mockito.when(invoicePayment.getCurrency()).thenReturn(Currency.MXN);
@@ -228,12 +236,12 @@ public abstract class AnalyticsTestSuiteNoDB {
Mockito.when(invoicePayment.getPaymentCookieId()).thenReturn(UUID.randomUUID());
invoice = Mockito.mock(Invoice.class);
- Mockito.when(invoice.getId()).thenReturn(UUID.randomUUID());
+ Mockito.when(invoice.getId()).thenReturn(invoiceId);
Mockito.when(invoice.getInvoiceItems()).thenReturn(ImmutableList.<InvoiceItem>of(invoiceItem));
Mockito.when(invoice.getNumberOfItems()).thenReturn(1);
Mockito.when(invoice.getPayments()).thenReturn(ImmutableList.<InvoicePayment>of(invoicePayment));
Mockito.when(invoice.getNumberOfPayments()).thenReturn(1);
- Mockito.when(invoice.getAccountId()).thenReturn(account.getId());
+ Mockito.when(invoice.getAccountId()).thenReturn(accountId);
Mockito.when(invoice.getInvoiceNumber()).thenReturn(42);
Mockito.when(invoice.getInvoiceDate()).thenReturn(new LocalDate(1954, 12, 1));
Mockito.when(invoice.getTargetDate()).thenReturn(new LocalDate(2017, 3, 4));
@@ -261,16 +269,17 @@ public abstract class AnalyticsTestSuiteNoDB {
paymentMethod = Mockito.mock(PaymentMethod.class);
Mockito.when(paymentMethod.getId()).thenReturn(UUID.randomUUID());
- Mockito.when(paymentMethod.getAccountId()).thenReturn(account.getId());
+ Mockito.when(paymentMethod.getAccountId()).thenReturn(accountId);
Mockito.when(paymentMethod.isActive()).thenReturn(true);
Mockito.when(paymentMethod.getPluginName()).thenReturn(UUID.randomUUID().toString());
Mockito.when(paymentMethod.getPluginDetail()).thenReturn(paymentMethodPlugin);
+ final UUID paymentMethodId = paymentMethod.getId();
payment = Mockito.mock(Payment.class);
Mockito.when(payment.getId()).thenReturn(UUID.randomUUID());
- Mockito.when(payment.getAccountId()).thenReturn(account.getId());
- Mockito.when(payment.getInvoiceId()).thenReturn(invoice.getId());
- Mockito.when(payment.getPaymentMethodId()).thenReturn(paymentMethod.getId());
+ Mockito.when(payment.getAccountId()).thenReturn(accountId);
+ Mockito.when(payment.getInvoiceId()).thenReturn(invoiceId);
+ Mockito.when(payment.getPaymentMethodId()).thenReturn(paymentMethodId);
Mockito.when(payment.getPaymentNumber()).thenReturn(1);
Mockito.when(payment.getAmount()).thenReturn(new BigDecimal("199999"));
Mockito.when(payment.getPaidAmount()).thenReturn(new BigDecimal("199998"));
@@ -304,12 +313,14 @@ public abstract class AnalyticsTestSuiteNoDB {
Mockito.when(auditLog.getId()).thenReturn(UUID.randomUUID());
Mockito.when(auditLog.getChangeType()).thenReturn(ChangeType.INSERT);
Mockito.when(auditLog.getUserName()).thenReturn(UUID.randomUUID().toString());
- Mockito.when(auditLog.getCreatedDate()).thenReturn(new DateTime(2012, 31, 31, 23, 59, 59, DateTimeZone.UTC));
+ Mockito.when(auditLog.getCreatedDate()).thenReturn(new DateTime(2012, 12, 31, 23, 59, 59, DateTimeZone.UTC));
Mockito.when(auditLog.getReasonCode()).thenReturn(UUID.randomUUID().toString());
Mockito.when(auditLog.getUserToken()).thenReturn(UUID.randomUUID().toString());
Mockito.when(auditLog.getComment()).thenReturn(UUID.randomUUID().toString());
- callContext = Mockito.mock(CallContext.class);
+ // Real class for the binding to work with JDBI
+ callContext = new TestCallContext();
+
killbillAPI = Mockito.mock(OSGIKillbillAPI.class);
killbillDataSource = Mockito.mock(OSGIKillbillDataSource.class);
}
diff --git a/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteWithEmbeddedDB.java b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteWithEmbeddedDB.java
index 5a94a46..d417d52 100644
--- a/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteWithEmbeddedDB.java
+++ b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteWithEmbeddedDB.java
@@ -30,6 +30,7 @@ import org.testng.annotations.BeforeMethod;
import com.ning.billing.commons.embeddeddb.h2.H2EmbeddedDB;
import com.ning.billing.osgi.bundles.analytics.dao.BusinessAnalyticsSqlDao;
+import com.ning.billing.osgi.bundles.analytics.dao.BusinessDBIProvider;
import com.ning.billing.util.io.IOUtils;
import com.ning.killbill.osgi.libs.killbill.OSGIKillbillDataSource;
@@ -55,10 +56,10 @@ public abstract class AnalyticsTestSuiteWithEmbeddedDB extends AnalyticsTestSuit
killbillDataSource = new AnalyticsOSGIKillbillDataSource();
- final String ddl = IOUtils.toString(Resources.getResource("com/ning/billing/osgi/bundles/analytics").openStream());
+ final String ddl = IOUtils.toString(Resources.getResource("com/ning/billing/osgi/bundles/analytics/ddl.sql").openStream());
embeddedDB.executeScript(ddl);
- dbi = new DBI(embeddedDB.getDataSource());
+ dbi = BusinessDBIProvider.get(embeddedDB.getDataSource());
analyticsSqlDao = dbi.onDemand(BusinessAnalyticsSqlDao.class);
}
diff --git a/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestBusinessAnalyticsSqlDao.java b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestBusinessAnalyticsSqlDao.java
index 83ba49b..f7564e6 100644
--- a/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestBusinessAnalyticsSqlDao.java
+++ b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestBusinessAnalyticsSqlDao.java
@@ -30,7 +30,7 @@ public class TestBusinessAnalyticsSqlDao extends AnalyticsTestSuiteWithEmbeddedD
public void testSqlDao() throws Exception {
final BusinessAccountModelDao accountModelDao = new BusinessAccountModelDao(account,
accountRecordId,
- BigDecimal.ONE,
+ new BigDecimal("1.2345"),
invoice,
payment,
auditLog,
diff --git a/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestCallContext.java b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestCallContext.java
new file mode 100644
index 0000000..d1e27f3
--- /dev/null
+++ b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/dao/TestCallContext.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright 2010-2013 Ning, Inc.
+ *
+ * Ning 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:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.ning.billing.osgi.bundles.analytics.dao;
+
+import java.util.UUID;
+
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+
+import com.ning.billing.util.callcontext.CallContext;
+import com.ning.billing.util.callcontext.CallOrigin;
+import com.ning.billing.util.callcontext.UserType;
+
+public class TestCallContext implements CallContext {
+
+ @Override
+ public UUID getUserToken() {
+ return UUID.randomUUID();
+ }
+
+ @Override
+ public String getUserName() {
+ return UUID.randomUUID().toString();
+ }
+
+ @Override
+ public CallOrigin getCallOrigin() {
+ return CallOrigin.TEST;
+ }
+
+ @Override
+ public UserType getUserType() {
+ return UserType.TEST;
+ }
+
+ @Override
+ public String getReasonCode() {
+ return UUID.randomUUID().toString();
+ }
+
+ @Override
+ public String getComments() {
+ return UUID.randomUUID().toString();
+ }
+
+ @Override
+ public DateTime getCreatedDate() {
+ return new DateTime(2010, 2, 4, 6, 8, 10, DateTimeZone.UTC);
+ }
+
+ @Override
+ public DateTime getUpdatedDate() {
+ return new DateTime(2011, 3, 5, 7, 9, 11, DateTimeZone.UTC);
+ }
+
+ @Override
+ public UUID getTenantId() {
+ return UUID.randomUUID();
+ }
+}