diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/DB2Platform.java b/src/main/java/com/avaje/ebean/config/dbplatform/db2/DB2Platform.java
similarity index 81%
rename from src/main/java/com/avaje/ebean/config/dbplatform/DB2Platform.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/db2/DB2Platform.java
index ed30fa2f4..e0a575259 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/DB2Platform.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/db2/DB2Platform.java
@@ -1,6 +1,10 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.db2;
import com.avaje.ebean.BackgroundExecutor;
+import com.avaje.ebean.config.dbplatform.DatabasePlatform;
+import com.avaje.ebean.config.dbplatform.DbPlatformType;
+import com.avaje.ebean.config.dbplatform.DbType;
+import com.avaje.ebean.config.dbplatform.PlatformIdGenerator;
import com.avaje.ebean.dbmigration.ddlgeneration.platform.DB2Ddl;
import javax.sql.DataSource;
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/DB2SequenceIdGenerator.java b/src/main/java/com/avaje/ebean/config/dbplatform/db2/DB2SequenceIdGenerator.java
similarity index 88%
rename from src/main/java/com/avaje/ebean/config/dbplatform/DB2SequenceIdGenerator.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/db2/DB2SequenceIdGenerator.java
index fdc24a0f6..7523f7c45 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/DB2SequenceIdGenerator.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/db2/DB2SequenceIdGenerator.java
@@ -1,6 +1,7 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.db2;
import com.avaje.ebean.BackgroundExecutor;
+import com.avaje.ebean.config.dbplatform.SequenceIdGenerator;
import javax.sql.DataSource;
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/Db2SqlLimiter.java b/src/main/java/com/avaje/ebean/config/dbplatform/db2/Db2SqlLimiter.java
similarity index 73%
rename from src/main/java/com/avaje/ebean/config/dbplatform/Db2SqlLimiter.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/db2/Db2SqlLimiter.java
index c96daef7e..9c5b5a486 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/Db2SqlLimiter.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/db2/Db2SqlLimiter.java
@@ -1,4 +1,8 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.db2;
+
+import com.avaje.ebean.config.dbplatform.SqlLimitRequest;
+import com.avaje.ebean.config.dbplatform.SqlLimitResponse;
+import com.avaje.ebean.config.dbplatform.SqlLimiter;
public class Db2SqlLimiter implements SqlLimiter {
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/H2DbEncrypt.java b/src/main/java/com/avaje/ebean/config/dbplatform/h2/H2DbEncrypt.java
similarity index 88%
rename from src/main/java/com/avaje/ebean/config/dbplatform/H2DbEncrypt.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/h2/H2DbEncrypt.java
index 8641b159e..53be57dc8 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/H2DbEncrypt.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/h2/H2DbEncrypt.java
@@ -1,4 +1,7 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.h2;
+
+import com.avaje.ebean.config.dbplatform.AbstractDbEncrypt;
+import com.avaje.ebean.config.dbplatform.DbEncryptFunction;
/**
* H2 encryption support via encrypt decrypt function.
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/H2HistorySupport.java b/src/main/java/com/avaje/ebean/config/dbplatform/h2/H2HistorySupport.java
similarity index 50%
rename from src/main/java/com/avaje/ebean/config/dbplatform/H2HistorySupport.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/h2/H2HistorySupport.java
index b8aa4a023..5cb1662ad 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/H2HistorySupport.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/h2/H2HistorySupport.java
@@ -1,4 +1,6 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.h2;
+
+import com.avaje.ebean.config.dbplatform.DbViewHistorySupport;
/**
* Runtime support for @History with H2.
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/H2HistoryTrigger.java b/src/main/java/com/avaje/ebean/config/dbplatform/h2/H2HistoryTrigger.java
similarity index 98%
rename from src/main/java/com/avaje/ebean/config/dbplatform/H2HistoryTrigger.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/h2/H2HistoryTrigger.java
index 1eb4a459b..830471c2c 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/H2HistoryTrigger.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/h2/H2HistoryTrigger.java
@@ -1,4 +1,4 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.h2;
import org.h2.api.Trigger;
import org.slf4j.Logger;
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/H2Platform.java b/src/main/java/com/avaje/ebean/config/dbplatform/h2/H2Platform.java
similarity index 81%
rename from src/main/java/com/avaje/ebean/config/dbplatform/H2Platform.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/h2/H2Platform.java
index 05d841088..09739e7f6 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/H2Platform.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/h2/H2Platform.java
@@ -1,6 +1,11 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.h2;
import com.avaje.ebean.BackgroundExecutor;
+import com.avaje.ebean.config.dbplatform.DatabasePlatform;
+import com.avaje.ebean.config.dbplatform.DbPlatformType;
+import com.avaje.ebean.config.dbplatform.DbType;
+import com.avaje.ebean.config.dbplatform.IdType;
+import com.avaje.ebean.config.dbplatform.PlatformIdGenerator;
import com.avaje.ebean.dbmigration.ddlgeneration.platform.H2Ddl;
import javax.sql.DataSource;
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/H2SequenceIdGenerator.java b/src/main/java/com/avaje/ebean/config/dbplatform/h2/H2SequenceIdGenerator.java
similarity index 88%
rename from src/main/java/com/avaje/ebean/config/dbplatform/H2SequenceIdGenerator.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/h2/H2SequenceIdGenerator.java
index 4b234bb8b..07c435aec 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/H2SequenceIdGenerator.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/h2/H2SequenceIdGenerator.java
@@ -1,6 +1,7 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.h2;
import com.avaje.ebean.BackgroundExecutor;
+import com.avaje.ebean.config.dbplatform.SequenceIdGenerator;
import javax.sql.DataSource;
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/HsqldbPlatform.java b/src/main/java/com/avaje/ebean/config/dbplatform/hsqldb/HsqldbPlatform.java
similarity index 65%
rename from src/main/java/com/avaje/ebean/config/dbplatform/HsqldbPlatform.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/hsqldb/HsqldbPlatform.java
index 8ae8ad499..454fc6b35 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/HsqldbPlatform.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/hsqldb/HsqldbPlatform.java
@@ -1,6 +1,13 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.hsqldb;
import com.avaje.ebean.BackgroundExecutor;
+import com.avaje.ebean.config.dbplatform.DatabasePlatform;
+import com.avaje.ebean.config.dbplatform.DbPlatformType;
+import com.avaje.ebean.config.dbplatform.DbType;
+import com.avaje.ebean.config.dbplatform.IdType;
+import com.avaje.ebean.config.dbplatform.PlatformIdGenerator;
+import com.avaje.ebean.config.dbplatform.h2.H2DbEncrypt;
+import com.avaje.ebean.config.dbplatform.h2.H2SequenceIdGenerator;
import com.avaje.ebean.dbmigration.ddlgeneration.platform.HsqldbDdl;
import javax.sql.DataSource;
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/MySqlBlob.java b/src/main/java/com/avaje/ebean/config/dbplatform/mysql/MySqlBlob.java
similarity index 86%
rename from src/main/java/com/avaje/ebean/config/dbplatform/MySqlBlob.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/mysql/MySqlBlob.java
index b3482b30b..9f50d53a7 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/MySqlBlob.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/mysql/MySqlBlob.java
@@ -1,4 +1,6 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.mysql;
+
+import com.avaje.ebean.config.dbplatform.DbPlatformType;
/**
* Support for blob, mediumblob or longblob selection based on the deployment
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/MySqlClob.java b/src/main/java/com/avaje/ebean/config/dbplatform/mysql/MySqlClob.java
similarity index 86%
rename from src/main/java/com/avaje/ebean/config/dbplatform/MySqlClob.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/mysql/MySqlClob.java
index 9fbb61cdd..fb06c15b9 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/MySqlClob.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/mysql/MySqlClob.java
@@ -1,4 +1,6 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.mysql;
+
+import com.avaje.ebean.config.dbplatform.DbPlatformType;
/**
* Support for text, mediumtext or longtext selection based on the deployment
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/MySqlDbEncrypt.java b/src/main/java/com/avaje/ebean/config/dbplatform/mysql/MySqlDbEncrypt.java
similarity index 84%
rename from src/main/java/com/avaje/ebean/config/dbplatform/MySqlDbEncrypt.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/mysql/MySqlDbEncrypt.java
index 474d06b0a..355f8d203 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/MySqlDbEncrypt.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/mysql/MySqlDbEncrypt.java
@@ -1,4 +1,7 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.mysql;
+
+import com.avaje.ebean.config.dbplatform.AbstractDbEncrypt;
+import com.avaje.ebean.config.dbplatform.DbEncryptFunction;
/**
* MySql aes_encrypt aes_decrypt based encryption support.
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/MySqlHistorySupport.java b/src/main/java/com/avaje/ebean/config/dbplatform/mysql/MySqlHistorySupport.java
similarity index 51%
rename from src/main/java/com/avaje/ebean/config/dbplatform/MySqlHistorySupport.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/mysql/MySqlHistorySupport.java
index f3cac58c5..8a06b24a3 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/MySqlHistorySupport.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/mysql/MySqlHistorySupport.java
@@ -1,4 +1,6 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.mysql;
+
+import com.avaje.ebean.config.dbplatform.DbViewHistorySupport;
/**
* Runtime support for @History with MySql.
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/MySqlPlatform.java b/src/main/java/com/avaje/ebean/config/dbplatform/mysql/MySqlPlatform.java
similarity index 85%
rename from src/main/java/com/avaje/ebean/config/dbplatform/MySqlPlatform.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/mysql/MySqlPlatform.java
index 718da4e19..c08ea9b52 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/MySqlPlatform.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/mysql/MySqlPlatform.java
@@ -1,6 +1,11 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.mysql;
import com.avaje.ebean.BackgroundExecutor;
+import com.avaje.ebean.config.dbplatform.DatabasePlatform;
+import com.avaje.ebean.config.dbplatform.DbPlatformType;
+import com.avaje.ebean.config.dbplatform.DbType;
+import com.avaje.ebean.config.dbplatform.IdType;
+import com.avaje.ebean.config.dbplatform.PlatformIdGenerator;
import com.avaje.ebean.dbmigration.ddlgeneration.platform.MySqlDdl;
import javax.sql.DataSource;
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/OracleDbEncrypt.java b/src/main/java/com/avaje/ebean/config/dbplatform/oracle/OracleDbEncrypt.java
similarity index 95%
rename from src/main/java/com/avaje/ebean/config/dbplatform/OracleDbEncrypt.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/oracle/OracleDbEncrypt.java
index 01208bf15..0f4c18d1f 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/OracleDbEncrypt.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/oracle/OracleDbEncrypt.java
@@ -1,4 +1,7 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.oracle;
+
+import com.avaje.ebean.config.dbplatform.AbstractDbEncrypt;
+import com.avaje.ebean.config.dbplatform.DbEncryptFunction;
/**
* Oracle encryption support.
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/OracleDbHistorySupport.java b/src/main/java/com/avaje/ebean/config/dbplatform/oracle/OracleDbHistorySupport.java
similarity index 87%
rename from src/main/java/com/avaje/ebean/config/dbplatform/OracleDbHistorySupport.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/oracle/OracleDbHistorySupport.java
index e81263aa8..43cec229e 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/OracleDbHistorySupport.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/oracle/OracleDbHistorySupport.java
@@ -1,4 +1,6 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.oracle;
+
+import com.avaje.ebean.config.dbplatform.DbStandardHistorySupport;
/**
* Oracle Total recall based history support.
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/OraclePlatform.java b/src/main/java/com/avaje/ebean/config/dbplatform/oracle/OraclePlatform.java
similarity index 83%
rename from src/main/java/com/avaje/ebean/config/dbplatform/OraclePlatform.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/oracle/OraclePlatform.java
index 5f60dc8ac..f2439ba6f 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/OraclePlatform.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/oracle/OraclePlatform.java
@@ -1,6 +1,13 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.oracle;
import com.avaje.ebean.BackgroundExecutor;
+import com.avaje.ebean.config.dbplatform.BasicSqlAnsiLimiter;
+import com.avaje.ebean.config.dbplatform.DatabasePlatform;
+import com.avaje.ebean.config.dbplatform.DbPlatformType;
+import com.avaje.ebean.config.dbplatform.DbType;
+import com.avaje.ebean.config.dbplatform.IdType;
+import com.avaje.ebean.config.dbplatform.PlatformIdGenerator;
+import com.avaje.ebean.config.dbplatform.RownumSqlLimiter;
import com.avaje.ebean.dbmigration.ddlgeneration.platform.Oracle10Ddl;
import javax.sql.DataSource;
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/OracleSequenceIdGenerator.java b/src/main/java/com/avaje/ebean/config/dbplatform/oracle/OracleSequenceIdGenerator.java
similarity index 85%
rename from src/main/java/com/avaje/ebean/config/dbplatform/OracleSequenceIdGenerator.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/oracle/OracleSequenceIdGenerator.java
index 67992900b..aee6b3508 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/OracleSequenceIdGenerator.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/oracle/OracleSequenceIdGenerator.java
@@ -1,6 +1,7 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.oracle;
import com.avaje.ebean.BackgroundExecutor;
+import com.avaje.ebean.config.dbplatform.SequenceIdGenerator;
import javax.sql.DataSource;
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/Postgres8Platform.java b/src/main/java/com/avaje/ebean/config/dbplatform/postgres/Postgres8Platform.java
similarity index 81%
rename from src/main/java/com/avaje/ebean/config/dbplatform/Postgres8Platform.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/postgres/Postgres8Platform.java
index a2e1ba6b8..ad971d1b1 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/Postgres8Platform.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/postgres/Postgres8Platform.java
@@ -1,4 +1,6 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.postgres;
+
+import com.avaje.ebean.config.dbplatform.IdType;
/**
* Postgres v8.3 specific platform.
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/PostgresDbEncrypt.java b/src/main/java/com/avaje/ebean/config/dbplatform/postgres/PostgresDbEncrypt.java
similarity index 84%
rename from src/main/java/com/avaje/ebean/config/dbplatform/PostgresDbEncrypt.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/postgres/PostgresDbEncrypt.java
index ad53ef00d..35daa691a 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/PostgresDbEncrypt.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/postgres/PostgresDbEncrypt.java
@@ -1,4 +1,7 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.postgres;
+
+import com.avaje.ebean.config.dbplatform.AbstractDbEncrypt;
+import com.avaje.ebean.config.dbplatform.DbEncryptFunction;
/**
* Postgres pgp_sym_encrypt pgp_sym_decrypt based encryption support.
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/PostgresHistorySupport.java b/src/main/java/com/avaje/ebean/config/dbplatform/postgres/PostgresHistorySupport.java
similarity index 90%
rename from src/main/java/com/avaje/ebean/config/dbplatform/PostgresHistorySupport.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/postgres/PostgresHistorySupport.java
index 347cc7954..940e7696d 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/PostgresHistorySupport.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/postgres/PostgresHistorySupport.java
@@ -1,4 +1,6 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.postgres;
+
+import com.avaje.ebean.config.dbplatform.DbViewHistorySupport;
/**
* Postgres support for history features.
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/PostgresPlatform.java b/src/main/java/com/avaje/ebean/config/dbplatform/postgres/PostgresPlatform.java
similarity index 91%
rename from src/main/java/com/avaje/ebean/config/dbplatform/PostgresPlatform.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/postgres/PostgresPlatform.java
index 085654868..c96cb9b82 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/PostgresPlatform.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/postgres/PostgresPlatform.java
@@ -1,7 +1,12 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.postgres;
import com.avaje.ebean.BackgroundExecutor;
import com.avaje.ebean.config.ServerConfig;
+import com.avaje.ebean.config.dbplatform.DatabasePlatform;
+import com.avaje.ebean.config.dbplatform.DbPlatformType;
+import com.avaje.ebean.config.dbplatform.DbType;
+import com.avaje.ebean.config.dbplatform.IdType;
+import com.avaje.ebean.config.dbplatform.PlatformIdGenerator;
import com.avaje.ebean.dbmigration.ddlgeneration.DdlHandler;
import com.avaje.ebean.dbmigration.ddlgeneration.platform.PostgresDdl;
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/PostgresSequenceIdGenerator.java b/src/main/java/com/avaje/ebean/config/dbplatform/postgres/PostgresSequenceIdGenerator.java
similarity index 85%
rename from src/main/java/com/avaje/ebean/config/dbplatform/PostgresSequenceIdGenerator.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/postgres/PostgresSequenceIdGenerator.java
index 20942eb0f..77c619077 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/PostgresSequenceIdGenerator.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/postgres/PostgresSequenceIdGenerator.java
@@ -1,6 +1,7 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.postgres;
import com.avaje.ebean.BackgroundExecutor;
+import com.avaje.ebean.config.dbplatform.SequenceIdGenerator;
import javax.sql.DataSource;
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/SqlAnywhereLimiter.java b/src/main/java/com/avaje/ebean/config/dbplatform/sqlanywhere/SqlAnywhereLimiter.java
similarity index 79%
rename from src/main/java/com/avaje/ebean/config/dbplatform/SqlAnywhereLimiter.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/sqlanywhere/SqlAnywhereLimiter.java
index 069fa05ec..805027994 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/SqlAnywhereLimiter.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/sqlanywhere/SqlAnywhereLimiter.java
@@ -1,4 +1,8 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.sqlanywhere;
+
+import com.avaje.ebean.config.dbplatform.SqlLimitRequest;
+import com.avaje.ebean.config.dbplatform.SqlLimitResponse;
+import com.avaje.ebean.config.dbplatform.SqlLimiter;
/**
* Use top xx and start at xx to limit sql results.
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/SqlAnywherePlatform.java b/src/main/java/com/avaje/ebean/config/dbplatform/sqlanywhere/SqlAnywherePlatform.java
similarity index 82%
rename from src/main/java/com/avaje/ebean/config/dbplatform/SqlAnywherePlatform.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/sqlanywhere/SqlAnywherePlatform.java
index 8a89e3c49..b925c7a99 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/SqlAnywherePlatform.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/sqlanywhere/SqlAnywherePlatform.java
@@ -1,4 +1,9 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.sqlanywhere;
+
+import com.avaje.ebean.config.dbplatform.DatabasePlatform;
+import com.avaje.ebean.config.dbplatform.DbPlatformType;
+import com.avaje.ebean.config.dbplatform.DbType;
+import com.avaje.ebean.config.dbplatform.IdType;
/**
* Sybase SQL Anywhere specific platform.
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/SQLitePlatform.java b/src/main/java/com/avaje/ebean/config/dbplatform/sqlite/SQLitePlatform.java
similarity index 75%
rename from src/main/java/com/avaje/ebean/config/dbplatform/SQLitePlatform.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/sqlite/SQLitePlatform.java
index 415d50109..735d8c48a 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/SQLitePlatform.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/sqlite/SQLitePlatform.java
@@ -1,5 +1,9 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.sqlite;
+import com.avaje.ebean.config.dbplatform.DatabasePlatform;
+import com.avaje.ebean.config.dbplatform.DbPlatformType;
+import com.avaje.ebean.config.dbplatform.DbType;
+import com.avaje.ebean.config.dbplatform.IdType;
import com.avaje.ebean.dbmigration.ddlgeneration.platform.SQLiteDdl;
import java.sql.Types;
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/SqlServer2005Platform.java b/src/main/java/com/avaje/ebean/config/dbplatform/sqlserver/SqlServer2005Platform.java
similarity index 81%
rename from src/main/java/com/avaje/ebean/config/dbplatform/SqlServer2005Platform.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/sqlserver/SqlServer2005Platform.java
index 8d631acb3..d8d4f6168 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/SqlServer2005Platform.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/sqlserver/SqlServer2005Platform.java
@@ -1,4 +1,4 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.sqlserver;
/**
* SQL Server platform using the older ROW_NUMBER() mechanism.
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/SqlServer2005SqlLimiter.java b/src/main/java/com/avaje/ebean/config/dbplatform/sqlserver/SqlServer2005SqlLimiter.java
similarity index 89%
rename from src/main/java/com/avaje/ebean/config/dbplatform/SqlServer2005SqlLimiter.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/sqlserver/SqlServer2005SqlLimiter.java
index be7b7d640..4d98787d2 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/SqlServer2005SqlLimiter.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/sqlserver/SqlServer2005SqlLimiter.java
@@ -1,4 +1,8 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.sqlserver;
+
+import com.avaje.ebean.config.dbplatform.SqlLimitRequest;
+import com.avaje.ebean.config.dbplatform.SqlLimitResponse;
+import com.avaje.ebean.config.dbplatform.SqlLimiter;
/**
* Use top and row_number() function to limit sql results.
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/SqlServer2012SqlLimiter.java b/src/main/java/com/avaje/ebean/config/dbplatform/sqlserver/SqlServer2012SqlLimiter.java
similarity index 83%
rename from src/main/java/com/avaje/ebean/config/dbplatform/SqlServer2012SqlLimiter.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/sqlserver/SqlServer2012SqlLimiter.java
index 9eb9104f0..10b717a83 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/SqlServer2012SqlLimiter.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/sqlserver/SqlServer2012SqlLimiter.java
@@ -1,4 +1,8 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.sqlserver;
+
+import com.avaje.ebean.config.dbplatform.SqlLimitRequest;
+import com.avaje.ebean.config.dbplatform.SqlLimitResponse;
+import com.avaje.ebean.config.dbplatform.SqlLimiter;
/**
* Use ANSI offset rows syntax or top n.
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/SqlServerBasicSqlLimiter.java b/src/main/java/com/avaje/ebean/config/dbplatform/sqlserver/SqlServerBasicSqlLimiter.java
similarity index 84%
rename from src/main/java/com/avaje/ebean/config/dbplatform/SqlServerBasicSqlLimiter.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/sqlserver/SqlServerBasicSqlLimiter.java
index 245fcc449..6ae371f3d 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/SqlServerBasicSqlLimiter.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/sqlserver/SqlServerBasicSqlLimiter.java
@@ -1,4 +1,6 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.sqlserver;
+
+import com.avaje.ebean.config.dbplatform.BasicSqlLimiter;
/**
* SQL Server 2012 style limiter for raw sql.
diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/SqlServerPlatform.java b/src/main/java/com/avaje/ebean/config/dbplatform/sqlserver/SqlServerPlatform.java
similarity index 87%
rename from src/main/java/com/avaje/ebean/config/dbplatform/SqlServerPlatform.java
rename to src/main/java/com/avaje/ebean/config/dbplatform/sqlserver/SqlServerPlatform.java
index a31dca29a..91ecb0b6a 100644
--- a/src/main/java/com/avaje/ebean/config/dbplatform/SqlServerPlatform.java
+++ b/src/main/java/com/avaje/ebean/config/dbplatform/sqlserver/SqlServerPlatform.java
@@ -1,6 +1,10 @@
-package com.avaje.ebean.config.dbplatform;
+package com.avaje.ebean.config.dbplatform.sqlserver;
import com.avaje.ebean.config.PersistBatch;
+import com.avaje.ebean.config.dbplatform.DatabasePlatform;
+import com.avaje.ebean.config.dbplatform.DbPlatformType;
+import com.avaje.ebean.config.dbplatform.DbType;
+import com.avaje.ebean.config.dbplatform.IdType;
import com.avaje.ebean.dbmigration.ddlgeneration.platform.MsSqlServerDdl;
/**
diff --git a/src/main/java/com/avaje/ebean/dbmigration/DbMigration.java b/src/main/java/com/avaje/ebean/dbmigration/DbMigration.java
index eb19e0103..64aed50e0 100644
--- a/src/main/java/com/avaje/ebean/dbmigration/DbMigration.java
+++ b/src/main/java/com/avaje/ebean/dbmigration/DbMigration.java
@@ -6,14 +6,14 @@ import com.avaje.ebean.config.DbConstraintNaming;
import com.avaje.ebean.config.DbMigrationConfig;
import com.avaje.ebean.config.Platform;
import com.avaje.ebean.config.ServerConfig;
-import com.avaje.ebean.config.dbplatform.DB2Platform;
+import com.avaje.ebean.config.dbplatform.db2.DB2Platform;
import com.avaje.ebean.config.dbplatform.DatabasePlatform;
-import com.avaje.ebean.config.dbplatform.H2Platform;
-import com.avaje.ebean.config.dbplatform.SqlServerPlatform;
-import com.avaje.ebean.config.dbplatform.MySqlPlatform;
-import com.avaje.ebean.config.dbplatform.OraclePlatform;
-import com.avaje.ebean.config.dbplatform.PostgresPlatform;
-import com.avaje.ebean.config.dbplatform.SQLitePlatform;
+import com.avaje.ebean.config.dbplatform.h2.H2Platform;
+import com.avaje.ebean.config.dbplatform.sqlserver.SqlServerPlatform;
+import com.avaje.ebean.config.dbplatform.mysql.MySqlPlatform;
+import com.avaje.ebean.config.dbplatform.oracle.OraclePlatform;
+import com.avaje.ebean.config.dbplatform.postgres.PostgresPlatform;
+import com.avaje.ebean.config.dbplatform.sqlite.SQLitePlatform;
import com.avaje.ebean.dbmigration.ddlgeneration.DdlWrite;
import com.avaje.ebean.dbmigration.migration.Migration;
import com.avaje.ebean.dbmigration.migrationreader.MigrationXmlWriter;
diff --git a/src/main/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/H2HistoryDdl.java b/src/main/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/H2HistoryDdl.java
index dde2ed843..c19d57d88 100644
--- a/src/main/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/H2HistoryDdl.java
+++ b/src/main/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/H2HistoryDdl.java
@@ -1,6 +1,6 @@
package com.avaje.ebean.dbmigration.ddlgeneration.platform;
-import com.avaje.ebean.config.dbplatform.H2HistoryTrigger;
+import com.avaje.ebean.config.dbplatform.h2.H2HistoryTrigger;
import com.avaje.ebean.dbmigration.ddlgeneration.DdlBuffer;
import com.avaje.ebean.dbmigration.ddlgeneration.DdlWrite;
import com.avaje.ebean.dbmigration.model.MTable;
diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/DatabasePlatformFactory.java b/src/main/java/com/avaje/ebeaninternal/server/core/DatabasePlatformFactory.java
index 7918d2178..02ef1a7b7 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/core/DatabasePlatformFactory.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/core/DatabasePlatformFactory.java
@@ -1,17 +1,17 @@
package com.avaje.ebeaninternal.server.core;
import com.avaje.ebean.config.ServerConfig;
-import com.avaje.ebean.config.dbplatform.DB2Platform;
+import com.avaje.ebean.config.dbplatform.db2.DB2Platform;
import com.avaje.ebean.config.dbplatform.DatabasePlatform;
-import com.avaje.ebean.config.dbplatform.H2Platform;
-import com.avaje.ebean.config.dbplatform.HsqldbPlatform;
-import com.avaje.ebean.config.dbplatform.SqlServerPlatform;
-import com.avaje.ebean.config.dbplatform.MySqlPlatform;
-import com.avaje.ebean.config.dbplatform.OraclePlatform;
-import com.avaje.ebean.config.dbplatform.Postgres8Platform;
-import com.avaje.ebean.config.dbplatform.PostgresPlatform;
-import com.avaje.ebean.config.dbplatform.SQLitePlatform;
-import com.avaje.ebean.config.dbplatform.SqlAnywherePlatform;
+import com.avaje.ebean.config.dbplatform.h2.H2Platform;
+import com.avaje.ebean.config.dbplatform.hsqldb.HsqldbPlatform;
+import com.avaje.ebean.config.dbplatform.sqlserver.SqlServerPlatform;
+import com.avaje.ebean.config.dbplatform.mysql.MySqlPlatform;
+import com.avaje.ebean.config.dbplatform.oracle.OraclePlatform;
+import com.avaje.ebean.config.dbplatform.postgres.Postgres8Platform;
+import com.avaje.ebean.config.dbplatform.postgres.PostgresPlatform;
+import com.avaje.ebean.config.dbplatform.sqlite.SQLitePlatform;
+import com.avaje.ebean.config.dbplatform.sqlanywhere.SqlAnywherePlatform;
import com.avaje.ebean.dbmigration.DbOffline;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/DefaultContainer.java b/src/main/java/com/avaje/ebeaninternal/server/core/DefaultContainer.java
index 9ba0050d5..c1263f2df 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/core/DefaultContainer.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/core/DefaultContainer.java
@@ -11,7 +11,7 @@ import com.avaje.ebean.config.ServerConfig;
import com.avaje.ebean.config.TenantMode;
import com.avaje.ebean.config.UnderscoreNamingConvention;
import com.avaje.ebean.config.dbplatform.DatabasePlatform;
-import com.avaje.ebean.config.dbplatform.H2Platform;
+import com.avaje.ebean.config.dbplatform.h2.H2Platform;
import com.avaje.ebean.dbmigration.DbOffline;
import com.avaje.ebeaninternal.api.SpiBackgroundExecutor;
import com.avaje.ebeaninternal.api.SpiEbeanServer;
diff --git a/src/test/java/com/avaje/Main.java b/src/test/java/com/avaje/Main.java
new file mode 100644
index 000000000..0b3ad39a6
--- /dev/null
+++ b/src/test/java/com/avaje/Main.java
@@ -0,0 +1,29 @@
+package com.avaje;
+
+import com.avaje.ebean.Ebean;
+import com.avaje.ebean.EbeanServer;
+
+import javax.sql.DataSource;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+public class Main {
+
+ public static void main(String[] args) throws SQLException {
+
+
+ EbeanServer ms = Ebean.getServer("ms");
+ DataSource dataSource = ms.getPluginApi().getDataSource();
+
+ Connection connection = dataSource.getConnection();
+ PreparedStatement statement = connection.prepareStatement("select next VALUE for j2_seq");
+ ResultSet resultSet = statement.executeQuery();
+ if (resultSet.next()) {
+ Object val = resultSet.getObject(1);
+ System.out.println(""+val);
+ }
+ connection.close();
+ }
+}
diff --git a/src/test/java/com/avaje/ebean/EbeanServerFactory_MultiTenancy_Test.java b/src/test/java/com/avaje/ebean/EbeanServerFactory_MultiTenancy_Test.java
index 591f5caf7..921b6f4e0 100644
--- a/src/test/java/com/avaje/ebean/EbeanServerFactory_MultiTenancy_Test.java
+++ b/src/test/java/com/avaje/ebean/EbeanServerFactory_MultiTenancy_Test.java
@@ -5,8 +5,8 @@ import com.avaje.ebean.config.ServerConfig;
import com.avaje.ebean.config.TenantDataSourceProvider;
import com.avaje.ebean.config.TenantMode;
import com.avaje.ebean.config.TenantSchemaProvider;
-import com.avaje.ebean.config.dbplatform.MySqlPlatform;
-import com.avaje.ebean.config.dbplatform.PostgresPlatform;
+import com.avaje.ebean.config.dbplatform.mysql.MySqlPlatform;
+import com.avaje.ebean.config.dbplatform.postgres.PostgresPlatform;
import org.junit.Test;
import org.mockito.Mockito;
diff --git a/src/test/java/com/avaje/ebean/config/dbplatform/DatabasePlatformTest.java b/src/test/java/com/avaje/ebean/config/dbplatform/DatabasePlatformTest.java
index e185b7413..687c0385e 100644
--- a/src/test/java/com/avaje/ebean/config/dbplatform/DatabasePlatformTest.java
+++ b/src/test/java/com/avaje/ebean/config/dbplatform/DatabasePlatformTest.java
@@ -2,6 +2,8 @@ package com.avaje.ebean.config.dbplatform;
import com.avaje.ebean.config.DbTypeConfig;
import com.avaje.ebean.config.Platform;
+import com.avaje.ebean.config.dbplatform.h2.H2Platform;
+import com.avaje.ebean.config.dbplatform.postgres.PostgresPlatform;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
diff --git a/src/test/java/com/avaje/ebean/config/dbplatform/DbTypeMapTest.java b/src/test/java/com/avaje/ebean/config/dbplatform/DbTypeMapTest.java
index be909c483..9572820f9 100644
--- a/src/test/java/com/avaje/ebean/config/dbplatform/DbTypeMapTest.java
+++ b/src/test/java/com/avaje/ebean/config/dbplatform/DbTypeMapTest.java
@@ -1,5 +1,6 @@
package com.avaje.ebean.config.dbplatform;
+import com.avaje.ebean.config.dbplatform.postgres.PostgresPlatform;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
diff --git a/src/test/java/com/avaje/ebean/config/dbplatform/H2PlatformTest.java b/src/test/java/com/avaje/ebean/config/dbplatform/H2PlatformTest.java
index 317fd2751..b0a15a4ca 100644
--- a/src/test/java/com/avaje/ebean/config/dbplatform/H2PlatformTest.java
+++ b/src/test/java/com/avaje/ebean/config/dbplatform/H2PlatformTest.java
@@ -1,5 +1,6 @@
package com.avaje.ebean.config.dbplatform;
+import com.avaje.ebean.config.dbplatform.h2.H2Platform;
import com.avaje.ebean.dbmigration.ddlgeneration.platform.PlatformDdl;
import org.junit.Test;
@@ -22,4 +23,4 @@ public class H2PlatformTest {
assertThat(ddl.convert("bit", false)).isEqualTo("bit");
}
-}
\ No newline at end of file
+}
diff --git a/src/test/java/com/avaje/ebean/config/dbplatform/MySqlHistorySupportTest.java b/src/test/java/com/avaje/ebean/config/dbplatform/MySqlHistorySupportTest.java
index deae7ebab..cb92df997 100644
--- a/src/test/java/com/avaje/ebean/config/dbplatform/MySqlHistorySupportTest.java
+++ b/src/test/java/com/avaje/ebean/config/dbplatform/MySqlHistorySupportTest.java
@@ -1,6 +1,7 @@
package com.avaje.ebean.config.dbplatform;
+import com.avaje.ebean.config.dbplatform.mysql.MySqlHistorySupport;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
diff --git a/src/test/java/com/avaje/ebean/config/dbplatform/MySqlPlatformTest.java b/src/test/java/com/avaje/ebean/config/dbplatform/MySqlPlatformTest.java
index df2c16960..31c8ea0bb 100644
--- a/src/test/java/com/avaje/ebean/config/dbplatform/MySqlPlatformTest.java
+++ b/src/test/java/com/avaje/ebean/config/dbplatform/MySqlPlatformTest.java
@@ -2,6 +2,7 @@ package com.avaje.ebean.config.dbplatform;
import com.avaje.ebean.config.DbTypeConfig;
import com.avaje.ebean.config.ServerConfig;
+import com.avaje.ebean.config.dbplatform.mysql.MySqlPlatform;
import com.avaje.ebean.dbmigration.ddlgeneration.platform.PlatformDdl;
import org.junit.Test;
diff --git a/src/test/java/com/avaje/ebean/config/dbplatform/OraclePlatformTest.java b/src/test/java/com/avaje/ebean/config/dbplatform/OraclePlatformTest.java
index 3633fc2e0..1508a5861 100644
--- a/src/test/java/com/avaje/ebean/config/dbplatform/OraclePlatformTest.java
+++ b/src/test/java/com/avaje/ebean/config/dbplatform/OraclePlatformTest.java
@@ -2,6 +2,7 @@ package com.avaje.ebean.config.dbplatform;
import com.avaje.ebean.config.DbTypeConfig;
import com.avaje.ebean.config.ServerConfig;
+import com.avaje.ebean.config.dbplatform.oracle.OraclePlatform;
import com.avaje.ebean.dbmigration.ddlgeneration.platform.PlatformDdl;
import org.junit.Test;
diff --git a/src/test/java/com/avaje/ebean/config/dbplatform/PostgresHistorySupportTest.java b/src/test/java/com/avaje/ebean/config/dbplatform/PostgresHistorySupportTest.java
index 5f022f3db..37e70a8d0 100644
--- a/src/test/java/com/avaje/ebean/config/dbplatform/PostgresHistorySupportTest.java
+++ b/src/test/java/com/avaje/ebean/config/dbplatform/PostgresHistorySupportTest.java
@@ -1,5 +1,6 @@
package com.avaje.ebean.config.dbplatform;
+import com.avaje.ebean.config.dbplatform.postgres.PostgresHistorySupport;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
diff --git a/src/test/java/com/avaje/ebean/config/dbplatform/PostgresPlatformTest.java b/src/test/java/com/avaje/ebean/config/dbplatform/PostgresPlatformTest.java
index 1f73168cf..de87db647 100644
--- a/src/test/java/com/avaje/ebean/config/dbplatform/PostgresPlatformTest.java
+++ b/src/test/java/com/avaje/ebean/config/dbplatform/PostgresPlatformTest.java
@@ -1,6 +1,7 @@
package com.avaje.ebean.config.dbplatform;
import com.avaje.ebean.config.DbTypeConfig;
+import com.avaje.ebean.config.dbplatform.postgres.PostgresPlatform;
import com.avaje.ebean.dbmigration.ddlgeneration.platform.PlatformDdl;
import org.junit.Test;
diff --git a/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/BaseDdlHandlerTest.java b/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/BaseDdlHandlerTest.java
index 61f0e757b..517b92c50 100644
--- a/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/BaseDdlHandlerTest.java
+++ b/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/BaseDdlHandlerTest.java
@@ -3,8 +3,8 @@ package com.avaje.ebean.dbmigration.ddlgeneration;
import com.avaje.ebean.BaseTestCase;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.config.ServerConfig;
-import com.avaje.ebean.config.dbplatform.H2Platform;
-import com.avaje.ebean.config.dbplatform.PostgresPlatform;
+import com.avaje.ebean.config.dbplatform.h2.H2Platform;
+import com.avaje.ebean.config.dbplatform.postgres.PostgresPlatform;
import com.avaje.ebean.dbmigration.migration.ChangeSet;
import com.avaje.ebean.dbmigration.model.CurrentModel;
import com.avaje.ebeaninternal.api.SpiEbeanServer;
@@ -142,4 +142,4 @@ public class BaseDdlHandlerTest extends BaseTestCase {
assertThat(write.dropAll().getBuffer()).isEqualTo(rollbackLast);
}
-}
\ No newline at end of file
+}
diff --git a/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java b/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java
index 74af93921..89f13f2c9 100644
--- a/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java
+++ b/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java
@@ -2,8 +2,8 @@ package com.avaje.ebean.dbmigration.ddlgeneration.platform;
import com.avaje.ebean.config.ServerConfig;
-import com.avaje.ebean.config.dbplatform.H2Platform;
-import com.avaje.ebean.config.dbplatform.OraclePlatform;
+import com.avaje.ebean.config.dbplatform.h2.H2Platform;
+import com.avaje.ebean.config.dbplatform.oracle.OraclePlatform;
import com.avaje.ebean.dbmigration.ddlgeneration.DdlWrite;
import com.avaje.ebean.dbmigration.ddlgeneration.Helper;
import com.avaje.ebean.dbmigration.migration.AddTableComment;
@@ -146,4 +146,4 @@ public class BaseTableDdlTest {
return createTable;
}
-}
\ No newline at end of file
+}
diff --git a/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/H2HistoryDdlTest.java b/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/H2HistoryDdlTest.java
index 9c267aa12..174a8fe32 100644
--- a/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/H2HistoryDdlTest.java
+++ b/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/H2HistoryDdlTest.java
@@ -1,7 +1,7 @@
package com.avaje.ebean.dbmigration.ddlgeneration.platform;
import com.avaje.ebean.Ebean;
-import com.avaje.ebean.config.dbplatform.H2Platform;
+import com.avaje.ebean.config.dbplatform.h2.H2Platform;
import com.avaje.ebean.dbmigration.ddlgeneration.DdlWrite;
import com.avaje.ebean.dbmigration.model.CurrentModel;
import com.avaje.ebean.dbmigration.model.MConfiguration;
diff --git a/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java b/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java
index 3d1d63704..845f927a8 100644
--- a/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java
+++ b/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java
@@ -1,10 +1,10 @@
package com.avaje.ebean.dbmigration.ddlgeneration.platform;
-import com.avaje.ebean.config.dbplatform.H2Platform;
-import com.avaje.ebean.config.dbplatform.SqlServerPlatform;
-import com.avaje.ebean.config.dbplatform.MySqlPlatform;
-import com.avaje.ebean.config.dbplatform.OraclePlatform;
-import com.avaje.ebean.config.dbplatform.PostgresPlatform;
+import com.avaje.ebean.config.dbplatform.h2.H2Platform;
+import com.avaje.ebean.config.dbplatform.sqlserver.SqlServerPlatform;
+import com.avaje.ebean.config.dbplatform.mysql.MySqlPlatform;
+import com.avaje.ebean.config.dbplatform.oracle.OraclePlatform;
+import com.avaje.ebean.config.dbplatform.postgres.PostgresPlatform;
import com.avaje.ebean.dbmigration.migration.AlterColumn;
import org.junit.Test;
diff --git a/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/PlatformDdl_dropUniqueConstraintTest.java b/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/PlatformDdl_dropUniqueConstraintTest.java
index b39f44734..7c77c3ccd 100644
--- a/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/PlatformDdl_dropUniqueConstraintTest.java
+++ b/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/PlatformDdl_dropUniqueConstraintTest.java
@@ -1,10 +1,10 @@
package com.avaje.ebean.dbmigration.ddlgeneration.platform;
-import com.avaje.ebean.config.dbplatform.H2Platform;
-import com.avaje.ebean.config.dbplatform.SqlServerPlatform;
-import com.avaje.ebean.config.dbplatform.MySqlPlatform;
-import com.avaje.ebean.config.dbplatform.OraclePlatform;
-import com.avaje.ebean.config.dbplatform.PostgresPlatform;
+import com.avaje.ebean.config.dbplatform.h2.H2Platform;
+import com.avaje.ebean.config.dbplatform.sqlserver.SqlServerPlatform;
+import com.avaje.ebean.config.dbplatform.mysql.MySqlPlatform;
+import com.avaje.ebean.config.dbplatform.oracle.OraclePlatform;
+import com.avaje.ebean.config.dbplatform.postgres.PostgresPlatform;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
diff --git a/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/PlatformTypeConverterTest.java b/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/PlatformTypeConverterTest.java
index bdf7cb6cd..03c48b11e 100644
--- a/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/PlatformTypeConverterTest.java
+++ b/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/PlatformTypeConverterTest.java
@@ -1,8 +1,8 @@
package com.avaje.ebean.dbmigration.ddlgeneration.platform;
import com.avaje.ebean.config.dbplatform.DbPlatformTypeMapping;
-import com.avaje.ebean.config.dbplatform.H2Platform;
-import com.avaje.ebean.config.dbplatform.PostgresPlatform;
+import com.avaje.ebean.config.dbplatform.h2.H2Platform;
+import com.avaje.ebean.config.dbplatform.postgres.PostgresPlatform;
import com.avaje.ebean.dbmigration.ddlgeneration.platform.util.PlatformTypeConverter;
import org.junit.Test;
@@ -94,4 +94,4 @@ public class PlatformTypeConverterTest {
assertThat(converter.convert("json")).isEqualTo("clob");
assertThat(converter.convert("jsonb")).isEqualTo("clob");
}
-}
\ No newline at end of file
+}
diff --git a/src/test/java/com/avaje/ebean/server/type/TestTypeManager.java b/src/test/java/com/avaje/ebean/server/type/TestTypeManager.java
index 7bd67fd56..5cc5372e3 100644
--- a/src/test/java/com/avaje/ebean/server/type/TestTypeManager.java
+++ b/src/test/java/com/avaje/ebean/server/type/TestTypeManager.java
@@ -2,7 +2,7 @@ package com.avaje.ebean.server.type;
import com.avaje.ebean.BaseTestCase;
import com.avaje.ebean.config.ServerConfig;
-import com.avaje.ebean.config.dbplatform.H2Platform;
+import com.avaje.ebean.config.dbplatform.h2.H2Platform;
import com.avaje.ebeaninternal.server.core.bootup.BootupClasses;
import com.avaje.ebeaninternal.server.type.DefaultTypeManager;
import com.avaje.ebeaninternal.server.type.RsetDataReader;
diff --git a/src/test/java/com/avaje/ebeaninternal/server/type/DefaultTypeManagerTest.java b/src/test/java/com/avaje/ebeaninternal/server/type/DefaultTypeManagerTest.java
index 013f4b017..55d2fb231 100644
--- a/src/test/java/com/avaje/ebeaninternal/server/type/DefaultTypeManagerTest.java
+++ b/src/test/java/com/avaje/ebeaninternal/server/type/DefaultTypeManagerTest.java
@@ -1,7 +1,7 @@
package com.avaje.ebeaninternal.server.type;
import com.avaje.ebean.config.ServerConfig;
-import com.avaje.ebean.config.dbplatform.PostgresPlatform;
+import com.avaje.ebean.config.dbplatform.postgres.PostgresPlatform;
import com.avaje.ebeaninternal.server.core.bootup.BootupClasses;
import org.junit.Test;
diff --git a/src/test/java/com/avaje/tests/basic/MainDbBoolean.java b/src/test/java/com/avaje/tests/basic/MainDbBoolean.java
index a4fe53a0f..d0e9905a4 100644
--- a/src/test/java/com/avaje/tests/basic/MainDbBoolean.java
+++ b/src/test/java/com/avaje/tests/basic/MainDbBoolean.java
@@ -5,7 +5,7 @@ import com.avaje.ebean.EbeanServerFactory;
import com.avaje.ebean.Query;
import com.avaje.ebean.SqlRow;
import com.avaje.ebean.config.ServerConfig;
-import com.avaje.ebean.config.dbplatform.PostgresPlatform;
+import com.avaje.ebean.config.dbplatform.postgres.PostgresPlatform;
import com.avaje.tests.model.basic.TOne;
import com.avaje.tests.model.basic.TSDetail;
import com.avaje.tests.model.basic.TSMaster;
diff --git a/src/test/java/com/avaje/tests/query/TestQueryFindPagedList.java b/src/test/java/com/avaje/tests/query/TestQueryFindPagedList.java
index ef4812e8b..8f8729a32 100644
--- a/src/test/java/com/avaje/tests/query/TestQueryFindPagedList.java
+++ b/src/test/java/com/avaje/tests/query/TestQueryFindPagedList.java
@@ -247,6 +247,6 @@ public class TestQueryFindPagedList extends BaseTestCase {
assertEquals(2, loggedSql.size());
assertThat(loggedSql.get(0)).contains("select count(*) from o_order b where b.id > 0");
- assertThat(trimSql(loggedSql.get(1), 3)).contains("select b.id, b.status, b.order_date");
+ assertThat(trimSql(loggedSql.get(1), 3)).contains(" b.id, b.status, b.order_date");
}
}
diff --git a/src/test/java/com/avaje/tests/query/other/TestQueryRowCountWithMany.java b/src/test/java/com/avaje/tests/query/other/TestQueryRowCountWithMany.java
index 6546411ee..239af301f 100644
--- a/src/test/java/com/avaje/tests/query/other/TestQueryRowCountWithMany.java
+++ b/src/test/java/com/avaje/tests/query/other/TestQueryRowCountWithMany.java
@@ -89,5 +89,6 @@ public class TestQueryRowCountWithMany extends BaseTestCase {
Assert.assertEquals(1, sqlLogged.size());
Assert.assertTrue(trimSql(sqlLogged.get(0), 1).contains("select count(*) from ( select distinct t0.id from o_order t0 join o_order_detail u1 on u1.order_id = t0.id where u1.product_id = ? )"));
+ query.findList();
}
}
diff --git a/src/test/resources/ebean.properties b/src/test/resources/ebean.properties
index dd244ee25..754a5d285 100644
--- a/src/test/resources/ebean.properties
+++ b/src/test/resources/ebean.properties
@@ -16,8 +16,8 @@ ebean.encryptKeyManager=com.avaje.tests.basic.encrypt.BasicEncyptKeyManager
#ebean.autotune.profilingUpdateFrequency=5
ebean.ddl.generate=true
-ebean.ddl.run=true
-datasource.default=h2
+#ebean.ddl.run=true
+datasource.default=ms
#ebean.persistBatch=NONE
@@ -120,9 +120,10 @@ datasource.pg.password=unit
datasource.pg.databaseUrl=jdbc:postgresql://127.0.0.1:5432/unit
datasource.pg.databaseDriver=org.postgresql.Driver
-datasource.ms.username=test
-datasource.ms.password=test
-datasource.ms.databaseUrl=jdbc:sqlserver://192.168.1.67:1433;databaseName=test
+datasource.ms.username=sqladmin@rbygrave
+datasource.ms.password=Manager123
+#datasource.ms.databaseUrl=jdbc:sqlserver://192.168.1.67:1433;databaseName=test
+datasource.ms.databaseUrl=jdbc:sqlserver://rbygrave.database.windows.net:1433;database=test;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;
datasource.ms.databaseDriver=com.microsoft.sqlserver.jdbc.SQLServerDriver
#datasource.ms.databaseUrl=jdbc:jtds:sqlserver://192.168.1.67:1433/test
#datasource.ms.databaseDriver=net.sourceforge.jtds.jdbc.Driver
diff --git a/src/test/resources/logback-test.xml b/src/test/resources/logback-test.xml
index 9685de045..d56df31bc 100644
--- a/src/test/resources/logback-test.xml
+++ b/src/test/resources/logback-test.xml
@@ -73,8 +73,8 @@
-
-
+
+