killbill-aplcache

Changes

account/pom.xml 5(+5 -0)

Details

account/pom.xml 5(+5 -0)

diff --git a/account/pom.xml b/account/pom.xml
index 8dd4baf..8ac6d09 100644
--- a/account/pom.xml
+++ b/account/pom.xml
@@ -49,6 +49,11 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
+            <groupId>com.jayway.awaitility</groupId>
+            <artifactId>awaitility</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>javax.inject</groupId>
             <artifactId>javax.inject</artifactId>
             <scope>provided</scope>
diff --git a/account/src/main/resources/org/killbill/billing/account/dao/AccountEmailSqlDao.sql.stg b/account/src/main/resources/org/killbill/billing/account/dao/AccountEmailSqlDao.sql.stg
index 49c37e0..fa5d62b 100644
--- a/account/src/main/resources/org/killbill/billing/account/dao/AccountEmailSqlDao.sql.stg
+++ b/account/src/main/resources/org/killbill/billing/account/dao/AccountEmailSqlDao.sql.stg
@@ -38,9 +38,9 @@ and t.is_active
 >>
 
 markEmailAsDeleted() ::= <<
-update <tableName()> t
-set t.is_active = 0
-where <idField("t.")> = :id
-<AND_CHECK_TENANT("t.")>
+update <tableName()>
+set is_active = false
+where <idField("")> = :id
+<AND_CHECK_TENANT("")>
 ;
 >>
diff --git a/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverridePhaseDefinitionSqlDao.sql.stg b/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverridePhaseDefinitionSqlDao.sql.stg
index 7f27b07..e51ae47 100644
--- a/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverridePhaseDefinitionSqlDao.sql.stg
+++ b/catalog/src/main/resources/org/killbill/billing/catalog/dao/CatalogOverridePhaseDefinitionSqlDao.sql.stg
@@ -60,8 +60,8 @@ select <allTableFields()>
 from <tableName()>
 where parent_phase_name = :parentPhaseName
 and currency = :currency
-and (fixed_price = :fixedPrice or (fixed_price is null and :fixedPrice is null))
-and (recurring_price = :recurringPrice or (recurring_price is null and :recurringPrice is null))
+and (fixed_price = :fixedPrice or coalesce(fixed_price, :fixedPrice) is null)
+and (recurring_price = :recurringPrice or coalesce(recurring_price, :recurringPrice) is null)
 and tenant_record_id = :tenantRecordId
 ;
 >>
diff --git a/entitlement/src/main/resources/org/killbill/billing/entitlement/dao/BlockingStateSqlDao.sql.stg b/entitlement/src/main/resources/org/killbill/billing/entitlement/dao/BlockingStateSqlDao.sql.stg
index 62d8de4..feeee40 100644
--- a/entitlement/src/main/resources/org/killbill/billing/entitlement/dao/BlockingStateSqlDao.sql.stg
+++ b/entitlement/src/main/resources/org/killbill/billing/entitlement/dao/BlockingStateSqlDao.sql.stg
@@ -95,7 +95,7 @@ and is_active
 unactiveEvent() ::= <<
 update
 <tableName()>
-set is_active = 0
+set is_active = false
 where id = :id
 <AND_CHECK_TENANT()>
 ;
diff --git a/payment/src/main/java/org/killbill/billing/payment/invoice/dao/InvoicePaymentRoutingDao.java b/payment/src/main/java/org/killbill/billing/payment/invoice/dao/InvoicePaymentRoutingDao.java
index d0fdb1b..e7930ca 100644
--- a/payment/src/main/java/org/killbill/billing/payment/invoice/dao/InvoicePaymentRoutingDao.java
+++ b/payment/src/main/java/org/killbill/billing/payment/invoice/dao/InvoicePaymentRoutingDao.java
@@ -91,7 +91,7 @@ public class InvoicePaymentRoutingDao {
         dbi.withHandle(new HandleCallback<Void>() {
             @Override
             public Void withHandle(final Handle handle) throws Exception {
-                handle.execute("update _invoice_payment_control_plugin_auto_pay_off set is_active = 0 where account_id = ?", accountId.toString());
+                handle.execute("update _invoice_payment_control_plugin_auto_pay_off set is_active = false where account_id = ?", accountId.toString());
                 return null;
             }
         });
diff --git a/payment/src/main/resources/org/killbill/billing/payment/dao/PaymentMethodSqlDao.sql.stg b/payment/src/main/resources/org/killbill/billing/payment/dao/PaymentMethodSqlDao.sql.stg
index aee2984..b5af8b3 100644
--- a/payment/src/main/resources/org/killbill/billing/payment/dao/PaymentMethodSqlDao.sql.stg
+++ b/payment/src/main/resources/org/killbill/billing/payment/dao/PaymentMethodSqlDao.sql.stg
@@ -32,7 +32,7 @@ tableValues() ::= <<
 
 markPaymentMethodAsDeleted(id) ::= <<
 update <tableName()>
-set is_active = 0
+set is_active = false
 , updated_by = :updatedBy
 , updated_date = :createdDate
 where  id = :id
@@ -42,7 +42,7 @@ where  id = :id
 
 unmarkPaymentMethodAsDeleted(id) ::= <<
 update <tableName()>
-set is_active = 1
+set is_active = true
 , updated_by = :updatedBy
 , updated_date = :createdDate
 where  id = :id
@@ -54,7 +54,7 @@ getByExternalKey() ::= <<
 select <allTableFields()>
 from <tableName()>
 where external_key = :externalKey
-and is_active = 1
+and is_active = true
 <AND_CHECK_TENANT()>
 ;
 >>
@@ -79,7 +79,7 @@ select
 <allTableFields()>
 from <tableName()>
 where account_id = :accountId
-and is_active = 1
+and is_active = true
 ;
 >>
 
@@ -103,9 +103,9 @@ select
 <allTableFields("t.")>
 from <tableName()> t
 where t.plugin_name = :pluginName
-and t.is_active = 1
+and t.is_active = true
 order by t.record_id
-limit :offset, :rowCount
+limit :rowCount offset :offset
 ;
 >>
 
@@ -114,6 +114,6 @@ select
   count(1) as count
 from <tableName()> t
 where t.plugin_name = :pluginName
-and t.is_active = 1
+and t.is_active = true
 ;
 >>
diff --git a/payment/src/main/resources/org/killbill/billing/payment/dao/PaymentSqlDao.sql.stg b/payment/src/main/resources/org/killbill/billing/payment/dao/PaymentSqlDao.sql.stg
index 0d8d592..ea1de08 100644
--- a/payment/src/main/resources/org/killbill/billing/payment/dao/PaymentSqlDao.sql.stg
+++ b/payment/src/main/resources/org/killbill/billing/payment/dao/PaymentSqlDao.sql.stg
@@ -89,7 +89,7 @@ from <tableName()> t
 join payment_methods pm on pm.id = t.payment_method_id
 where pm.plugin_name = :pluginName
 order by t.record_id asc
-limit :offset, :rowCount
+limit :rowCount offset :offset
 ;
 >>
 
diff --git a/payment/src/main/resources/org/killbill/billing/payment/dao/RefundSqlDao.sql.stg b/payment/src/main/resources/org/killbill/billing/payment/dao/RefundSqlDao.sql.stg
index f8f94a9..9f618e0 100644
--- a/payment/src/main/resources/org/killbill/billing/payment/dao/RefundSqlDao.sql.stg
+++ b/payment/src/main/resources/org/killbill/billing/payment/dao/RefundSqlDao.sql.stg
@@ -72,7 +72,7 @@ join payments p on p.id = t.payment_id
 join payment_methods pm on pm.id = p.payment_method_id
 where pm.plugin_name = :pluginName
 order by record_id
-limit :offset, :rowCount
+limit :rowCount offset :offset
 ;
 >>
 
diff --git a/subscription/src/main/resources/org/killbill/billing/subscription/engine/dao/SubscriptionEventSqlDao.sql.stg b/subscription/src/main/resources/org/killbill/billing/subscription/engine/dao/SubscriptionEventSqlDao.sql.stg
index c7e915a..db16f4a 100644
--- a/subscription/src/main/resources/org/killbill/billing/subscription/engine/dao/SubscriptionEventSqlDao.sql.stg
+++ b/subscription/src/main/resources/org/killbill/billing/subscription/engine/dao/SubscriptionEventSqlDao.sql.stg
@@ -63,7 +63,7 @@ id = :id
 unactiveEvent() ::= <<
 update <tableName()>
 set
-is_active = 0
+is_active = false
 , updated_by = :createdBy
 , updated_date = :createdDate
 where
@@ -75,7 +75,7 @@ id = :id
 reactiveEvent() ::= <<
 update <tableName()>
 set
-is_active = 1
+is_active = true
 , updated_by = :createdBy
 , updated_date = :createdDate
 where
@@ -92,7 +92,7 @@ select <allTableFields()>
 from <tableName()>
 where
 subscription_id = :subscriptionId
-and is_active = 1
+and is_active = true
 and effective_date > :now
 <AND_CHECK_TENANT()>
 <defaultOrderBy()>
@@ -105,7 +105,7 @@ select <allTableFields()>
 from <tableName()>
 where
 subscription_id = :subscriptionId
-and is_active = 1
+and is_active = true
 <AND_CHECK_TENANT()>
 <defaultOrderBy()>
 ;
@@ -117,7 +117,7 @@ select <allTableFields()>
 from <tableName()>
 where
 account_record_id = :accountRecordId
-and is_active = 1
+and is_active = true
 and effective_date > :now
 <AND_CHECK_TENANT()>
 <defaultOrderBy()>
diff --git a/tenant/src/main/resources/org/killbill/billing/tenant/dao/TenantKVSqlDao.sql.stg b/tenant/src/main/resources/org/killbill/billing/tenant/dao/TenantKVSqlDao.sql.stg
index c42eaca..2895b30 100644
--- a/tenant/src/main/resources/org/killbill/billing/tenant/dao/TenantKVSqlDao.sql.stg
+++ b/tenant/src/main/resources/org/killbill/billing/tenant/dao/TenantKVSqlDao.sql.stg
@@ -40,9 +40,9 @@ and  t.is_active
 >>
 
 markTenantKeyAsDeleted() ::= <<
-update <tableName()> t
-set t.is_active = 0
-where t.id = :id
-<AND_CHECK_TENANT("t.")>
+update <tableName()>
+set is_active = false
+where id = :id
+<AND_CHECK_TENANT("")>
 ;
 >>
diff --git a/usage/src/main/resources/org/killbill/billing/usage/dao/RolledUpUsageSqlDao.sql.stg b/usage/src/main/resources/org/killbill/billing/usage/dao/RolledUpUsageSqlDao.sql.stg
index 7672594..9ff290f 100644
--- a/usage/src/main/resources/org/killbill/billing/usage/dao/RolledUpUsageSqlDao.sql.stg
+++ b/usage/src/main/resources/org/killbill/billing/usage/dao/RolledUpUsageSqlDao.sql.stg
@@ -31,6 +31,7 @@ and record_date >= :startDate
 and record_date \< :endDate
 and unit_type = :unitType
 <AND_CHECK_TENANT()>
+order by <recordIdField()> ASC
 ;
 >>
 
@@ -42,6 +43,7 @@ where subscription_id = :subscriptionId
 and record_date >= :startDate
 and record_date \< :endDate
 <AND_CHECK_TENANT()>
+order by <recordIdField()> ASC
 ;
 >>
 
@@ -53,6 +55,7 @@ where account_record_id = :accountRecordId
 and record_date >= :startDate
 and record_date \< :endDate
 <AND_CHECK_TENANT()>
+order by <recordIdField()> ASC
 ;
 >>
 
diff --git a/util/src/main/java/org/killbill/billing/util/glue/GlobalLockerModule.java b/util/src/main/java/org/killbill/billing/util/glue/GlobalLockerModule.java
index bc1d2b9..be567b6 100644
--- a/util/src/main/java/org/killbill/billing/util/glue/GlobalLockerModule.java
+++ b/util/src/main/java/org/killbill/billing/util/glue/GlobalLockerModule.java
@@ -27,6 +27,7 @@ import org.killbill.commons.embeddeddb.EmbeddedDB;
 import org.killbill.commons.locker.GlobalLocker;
 import org.killbill.commons.locker.memory.MemoryGlobalLocker;
 import org.killbill.commons.locker.mysql.MySqlGlobalLocker;
+import org.killbill.commons.locker.postgresql.PostgreSQLGlobalLocker;
 
 import com.google.inject.Provides;
 import com.google.inject.Singleton;
@@ -43,6 +44,8 @@ public class GlobalLockerModule extends KillBillModule {
     protected GlobalLocker provideGlobalLocker(final DataSource dataSource, final EmbeddedDB embeddedDB) throws IOException {
         if (EmbeddedDB.DBEngine.MYSQL.equals(embeddedDB.getDBEngine())) {
             return new MySqlGlobalLocker(dataSource);
+        } else if (EmbeddedDB.DBEngine.POSTGRESQL.equals(embeddedDB.getDBEngine())) {
+            return new PostgreSQLGlobalLocker(dataSource);
         } else {
             return new MemoryGlobalLocker();
         }
diff --git a/util/src/main/resources/org/killbill/billing/util/customfield/dao/CustomFieldSqlDao.sql.stg b/util/src/main/resources/org/killbill/billing/util/customfield/dao/CustomFieldSqlDao.sql.stg
index 8bc1d99..af3948a 100644
--- a/util/src/main/resources/org/killbill/billing/util/customfield/dao/CustomFieldSqlDao.sql.stg
+++ b/util/src/main/resources/org/killbill/billing/util/customfield/dao/CustomFieldSqlDao.sql.stg
@@ -31,10 +31,10 @@ tableValues() ::= <<
 historyTableName() ::= "custom_field_history"
 
 markTagAsDeleted() ::= <<
-update <tableName()> t
-set t.is_active = 0
-where <idField("t.")> = :id
-<AND_CHECK_TENANT("t.")>
+update <tableName()>
+set is_active = false
+where <idField("")> = :id
+<AND_CHECK_TENANT("")>
 ;
 >>
 
diff --git a/util/src/main/resources/org/killbill/billing/util/entity/dao/EntitySqlDao.sql.stg b/util/src/main/resources/org/killbill/billing/util/entity/dao/EntitySqlDao.sql.stg
index 85031cd..fe9ac05 100644
--- a/util/src/main/resources/org/killbill/billing/util/entity/dao/EntitySqlDao.sql.stg
+++ b/util/src/main/resources/org/killbill/billing/util/entity/dao/EntitySqlDao.sql.stg
@@ -154,7 +154,7 @@ from <tableName()> t
 where <CHECK_TENANT("t.")>
 <andCheckSoftDeletionWithComma("t.")>
 order by t.<orderBy>
-limit :offset, :rowCount
+limit :rowCount offset :offset
 ;
 >>
 
@@ -270,7 +270,7 @@ from <tableName()> t
 where (<searchQuery("t.")>)
 <AND_CHECK_TENANT("t.")>
 order by <recordIdField("t.")> ASC
-limit :offset, :rowCount
+limit :rowCount offset :offset
 ;
 >>
 
diff --git a/util/src/main/resources/org/killbill/billing/util/security/shiro/dao/UserRolesSqlDao.sql.stg b/util/src/main/resources/org/killbill/billing/util/security/shiro/dao/UserRolesSqlDao.sql.stg
index 48b2a92..0c9fe1c 100644
--- a/util/src/main/resources/org/killbill/billing/util/security/shiro/dao/UserRolesSqlDao.sql.stg
+++ b/util/src/main/resources/org/killbill/billing/util/security/shiro/dao/UserRolesSqlDao.sql.stg
@@ -62,7 +62,7 @@ and is_active
 
 invalidate() ::= <<
 update <tableName()>
-set is_active = 0
+set is_active = false
 where
 username = :username
 and role_name = :roleName
diff --git a/util/src/main/resources/org/killbill/billing/util/security/shiro/dao/UsersSqlDao.sql.stg b/util/src/main/resources/org/killbill/billing/util/security/shiro/dao/UsersSqlDao.sql.stg
index 75a832d..07bd4d5 100644
--- a/util/src/main/resources/org/killbill/billing/util/security/shiro/dao/UsersSqlDao.sql.stg
+++ b/util/src/main/resources/org/killbill/billing/util/security/shiro/dao/UsersSqlDao.sql.stg
@@ -75,7 +75,7 @@ and is_active
 
 invalidate() ::= <<
 update <tableName()>
-set is_active = 0
+set is_active = false
 where
 username = :username
 ;
diff --git a/util/src/main/resources/org/killbill/billing/util/tag/dao/TagDefinitionSqlDao.sql.stg b/util/src/main/resources/org/killbill/billing/util/tag/dao/TagDefinitionSqlDao.sql.stg
index e313b15..a1efb99 100644
--- a/util/src/main/resources/org/killbill/billing/util/tag/dao/TagDefinitionSqlDao.sql.stg
+++ b/util/src/main/resources/org/killbill/billing/util/tag/dao/TagDefinitionSqlDao.sql.stg
@@ -31,10 +31,10 @@ accountRecordIdValueWithComma() ::= ""
 historyTableName() ::= "tag_definition_history"
 
 markTagDefinitionAsDeleted() ::= <<
-update <tableName()> t
-set t.is_active = 0
-where <idField("t.")> = :id
-<AND_CHECK_TENANT("t.")>
+update <tableName()>
+set is_active = false
+where <idField("")> = :id
+<AND_CHECK_TENANT("")>
 ;
 >>
 
diff --git a/util/src/main/resources/org/killbill/billing/util/tag/dao/TagSqlDao.sql.stg b/util/src/main/resources/org/killbill/billing/util/tag/dao/TagSqlDao.sql.stg
index efdc434..929d416 100644
--- a/util/src/main/resources/org/killbill/billing/util/tag/dao/TagSqlDao.sql.stg
+++ b/util/src/main/resources/org/killbill/billing/util/tag/dao/TagSqlDao.sql.stg
@@ -29,10 +29,10 @@ tableValues() ::= <<
 historyTableName() ::= "tag_history"
 
 markTagAsDeleted() ::= <<
-update <tableName()> t
-set t.is_active = 0
-where <idField("t.")> = :id
-<AND_CHECK_TENANT("t.")>
+update <tableName()>
+set is_active = false
+where <idField("")> = :id
+<AND_CHECK_TENANT("")>
 ;
 >>
 
@@ -116,7 +116,7 @@ join (<userAndSystemTagDefinitions()>) td on td.id = t.tag_definition_id
 where (<searchQuery(tagAlias="t.", tagDefinitionAlias="td.")>)
 <AND_CHECK_TENANT("t.")>
 order by <recordIdField("t.")> ASC
-limit :offset, :rowCount
+limit :rowCount offset :offset
 ;
 >>
 
diff --git a/util/src/test/java/org/killbill/billing/util/dao/TestNonEntityDao.java b/util/src/test/java/org/killbill/billing/util/dao/TestNonEntityDao.java
index d41bebd..8b9c231 100644
--- a/util/src/test/java/org/killbill/billing/util/dao/TestNonEntityDao.java
+++ b/util/src/test/java/org/killbill/billing/util/dao/TestNonEntityDao.java
@@ -121,7 +121,7 @@ public class TestNonEntityDao extends UtilTestSuiteWithEmbeddedDB {
             public Void withHandle(final Handle handle) throws Exception {
                 // Note: we always create an accounts table, see MysqlTestingHelper
                 handle.execute("insert into tag_definitions (record_id, id, name, description, is_active, created_date, created_by, updated_date, updated_by, tenant_record_id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
-                               tagDefinitionRecordId, tagDefinitionId.toString(), "tagdef", "nothing", 1, new Date(), "i", new Date(), "j", 0);
+                               tagDefinitionRecordId, tagDefinitionId.toString(), "tagdef", "nothing", true, new Date(), "i", new Date(), "j", 0);
                 return null;
             }
         });
@@ -133,7 +133,7 @@ public class TestNonEntityDao extends UtilTestSuiteWithEmbeddedDB {
             public Void withHandle(final Handle handle) throws Exception {
                 // Note: we always create an accounts table, see MysqlTestingHelper
                 handle.execute("insert into tags (record_id, id, tag_definition_id, object_id, object_type, is_active, created_date, created_by, updated_date, updated_by, account_record_id, tenant_record_id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
-                               tagRecordId, tagId.toString(), tagDefinitionId.toString(), accountId.toString(), "ACCOUNT", 1, new Date(), "i", new Date(), "j", accountRecordId, 0);
+                               tagRecordId, tagId.toString(), tagDefinitionId.toString(), accountId.toString(), "ACCOUNT", true, new Date(), "i", new Date(), "j", accountRecordId, 0);
                 return null;
             }
         });
diff --git a/util/src/test/java/org/killbill/billing/util/dao/TestStringTemplateInheritance.java b/util/src/test/java/org/killbill/billing/util/dao/TestStringTemplateInheritance.java
index 149d852..30a5ac4 100644
--- a/util/src/test/java/org/killbill/billing/util/dao/TestStringTemplateInheritance.java
+++ b/util/src/test/java/org/killbill/billing/util/dao/TestStringTemplateInheritance.java
@@ -125,7 +125,7 @@ public class TestStringTemplateInheritance extends UtilTestSuiteNoDB {
                                                                                                                                                           "from kombucha t\r?\n" +
                                                                                                                                                           "where t.tenant_record_id = :tenantRecordId\r?\n" +
                                                                                                                                                           "order by t.record_id\r?\n" +
-                                                                                                                                                          "limit :offset, :rowCount\r?\n" +
+                                                                                                                                                          "limit :rowCount offset :offset\r?\n" +
                                                                                                                                                           ";");
         assertPattern(kombucha.getInstanceOf("test").toString(), "select\r?\n" +
                                                                  "  t.record_id\r?\n" +
diff --git a/util/src/test/java/org/killbill/billing/util/UtilTestSuiteWithEmbeddedDB.java b/util/src/test/java/org/killbill/billing/util/UtilTestSuiteWithEmbeddedDB.java
index 17e8dfb..caff3f8 100644
--- a/util/src/test/java/org/killbill/billing/util/UtilTestSuiteWithEmbeddedDB.java
+++ b/util/src/test/java/org/killbill/billing/util/UtilTestSuiteWithEmbeddedDB.java
@@ -38,6 +38,7 @@ import org.killbill.commons.embeddeddb.EmbeddedDB.DBEngine;
 import org.killbill.commons.locker.GlobalLocker;
 import org.killbill.commons.locker.memory.MemoryGlobalLocker;
 import org.killbill.commons.locker.mysql.MySqlGlobalLocker;
+import org.killbill.commons.locker.postgresql.PostgreSQLGlobalLocker;
 import org.killbill.notificationq.api.NotificationQueueService;
 import org.skife.jdbi.v2.IDBI;
 import org.slf4j.Logger;
@@ -93,6 +94,8 @@ public abstract class UtilTestSuiteWithEmbeddedDB extends GuicyKillbillTestSuite
 
         if (DBEngine.MYSQL.equals(helper.getDBEngine())) {
             Assert.assertTrue(locker instanceof MySqlGlobalLocker);
+        } else if (DBEngine.POSTGRESQL.equals(helper.getDBEngine())) {
+            Assert.assertTrue(locker instanceof PostgreSQLGlobalLocker);
         } else {
             Assert.assertTrue(locker instanceof MemoryGlobalLocker);
         }