diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index e1996073d..ded637592 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -47,6 +47,13 @@ + + io.ebean + ebean-ddlgen + 12.4.1 + provided + + io.ebean ebean-api diff --git a/ebean-core/src/test/java/io/ebean/config/dbplatform/HanaPlatformTest.java b/ebean-core/src/test/java/io/ebean/config/dbplatform/HanaPlatformTest.java index f9dbd4173..1c7600861 100644 --- a/ebean-core/src/test/java/io/ebean/config/dbplatform/HanaPlatformTest.java +++ b/ebean-core/src/test/java/io/ebean/config/dbplatform/HanaPlatformTest.java @@ -2,8 +2,6 @@ package io.ebean.config.dbplatform; import io.ebean.config.PlatformConfig; import io.ebean.config.dbplatform.hana.HanaPlatform; -import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl; -import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; @@ -12,37 +10,6 @@ public class HanaPlatformTest { HanaPlatform platform = new HanaPlatform(); - @Test - public void testTypeConversion() { - - PlatformDdl ddl = PlatformDdlBuilder.create(platform); - - assertThat(ddl.convert("clob")).isEqualTo("nclob"); - assertThat(ddl.convert("blob")).isEqualTo("blob"); - assertThat(ddl.convert("json")).isEqualTo("nclob"); - assertThat(ddl.convert("jsonb")).isEqualTo("nclob"); - assertThat(ddl.convert("jsonvarchar")).isEqualTo("nvarchar(255)"); - - assertThat(ddl.convert("double")).isEqualTo("double"); - assertThat(ddl.convert("varchar(20)")).isEqualTo("nvarchar(20)"); - assertThat(ddl.convert("decimal(10)")).isEqualTo("decimal(10)"); - assertThat(ddl.convert("decimal(8,4)")).isEqualTo("decimal(8,4)"); - assertThat(ddl.convert("decimal")).isEqualTo("decimal(16,3)"); - assertThat(ddl.convert("boolean")).isEqualTo("boolean"); - assertThat(ddl.convert("bit")).isEqualTo("smallint"); - assertThat(ddl.convert("tinyint")).isEqualTo("smallint"); - assertThat(ddl.convert("binary")).isEqualTo("varbinary(255)"); - assertThat(ddl.convert("binary(16)")).isEqualTo("varbinary(16)"); - - assertThat(ddl.convert("point")).isEqualTo("st_point"); - - assertThat(ddl.convert("multilinestring")).isEqualTo("st_geometry"); - assertThat(ddl.convert("multipolygon")).isEqualTo("st_geometry"); - assertThat(ddl.convert("multipoint")).isEqualTo("st_geometry"); - assertThat(ddl.convert("linestring")).isEqualTo("st_geometry"); - assertThat(ddl.convert("polygon")).isEqualTo("st_geometry"); - } - @Test public void uuid_default() { diff --git a/ebean-core/src/test/java/io/ebean/config/dbplatform/MySqlPlatformTest.java b/ebean-core/src/test/java/io/ebean/config/dbplatform/MySqlPlatformTest.java index 1860dd477..676566e85 100644 --- a/ebean-core/src/test/java/io/ebean/config/dbplatform/MySqlPlatformTest.java +++ b/ebean-core/src/test/java/io/ebean/config/dbplatform/MySqlPlatformTest.java @@ -2,28 +2,12 @@ package io.ebean.config.dbplatform; import io.ebean.config.PlatformConfig; import io.ebean.config.dbplatform.mysql.MySqlPlatform; -import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl; -import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; public class MySqlPlatformTest { - MySqlPlatform mySqlPlatform = new MySqlPlatform(); - - @Test - public void testTypeConversion() { - PlatformDdl ddl = PlatformDdlBuilder.create(mySqlPlatform); - assertThat(ddl.convert("clob")).isEqualTo("longtext"); - assertThat(ddl.convert("json")).isEqualTo("json"); - assertThat(ddl.convert("jsonb")).isEqualTo("json"); - assertThat(ddl.convert("varchar(20)")).isEqualTo("varchar(20)"); - assertThat(ddl.convert("boolean")).isEqualTo("tinyint(1)"); - assertThat(ddl.convert("bit")).isEqualTo("tinyint(1)"); - assertThat(ddl.convert("decimal")).isEqualTo("decimal(16,3)"); - } - @Test public void uuid_default() { diff --git a/ebean-core/src/test/java/io/ebean/config/dbplatform/OraclePlatformTest.java b/ebean-core/src/test/java/io/ebean/config/dbplatform/OraclePlatformTest.java index 46171d129..667a5960b 100644 --- a/ebean-core/src/test/java/io/ebean/config/dbplatform/OraclePlatformTest.java +++ b/ebean-core/src/test/java/io/ebean/config/dbplatform/OraclePlatformTest.java @@ -2,37 +2,12 @@ package io.ebean.config.dbplatform; import io.ebean.config.PlatformConfig; import io.ebean.config.dbplatform.oracle.OraclePlatform; -import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl; -import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; public class OraclePlatformTest { - OraclePlatform platform = new OraclePlatform(); - - @Test - public void testTypeConversion() { - - PlatformDdl ddl = PlatformDdlBuilder.create(platform); - - assertThat(ddl.convert("clob")).isEqualTo("clob"); - assertThat(ddl.convert("blob")).isEqualTo("blob"); - assertThat(ddl.convert("json")).isEqualTo("clob"); - assertThat(ddl.convert("jsonb")).isEqualTo("clob"); - - assertThat(ddl.convert("double")).isEqualTo("number(19,4)"); - assertThat(ddl.convert("varchar(20)")).isEqualTo("varchar2(20)"); - assertThat(ddl.convert("decimal(10)")).isEqualTo("number(10)"); - assertThat(ddl.convert("decimal(8,4)")).isEqualTo("number(8,4)"); - assertThat(ddl.convert("decimal")).isEqualTo("number(16,3)"); - assertThat(ddl.convert("boolean")).isEqualTo("number(1)"); - assertThat(ddl.convert("bit")).isEqualTo("bit"); - assertThat(ddl.convert("tinyint")).isEqualTo("number(3)"); - assertThat(ddl.convert("binary(16)")).isEqualTo("raw(16)"); - } - @Test public void uuid_default() { diff --git a/ebean-core/src/test/java/io/ebean/config/dbplatform/PostgresPlatformTest.java b/ebean-core/src/test/java/io/ebean/config/dbplatform/PostgresPlatformTest.java index 72ce32455..95d7a1e23 100644 --- a/ebean-core/src/test/java/io/ebean/config/dbplatform/PostgresPlatformTest.java +++ b/ebean-core/src/test/java/io/ebean/config/dbplatform/PostgresPlatformTest.java @@ -2,37 +2,12 @@ package io.ebean.config.dbplatform; import io.ebean.config.PlatformConfig; import io.ebean.config.dbplatform.postgres.PostgresPlatform; -import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl; -import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; public class PostgresPlatformTest { - - @Test - public void testTypeConversion() { - - PostgresPlatform platform = new PostgresPlatform(); - PlatformDdl ddl = PlatformDdlBuilder.create(platform); - - assertThat(ddl.convert("clob")).isEqualTo("text"); - assertThat(ddl.convert("blob")).isEqualTo("bytea"); - assertThat(ddl.convert("json")).isEqualTo("json"); - assertThat(ddl.convert("jsonb")).isEqualTo("jsonb"); - assertThat(ddl.convert("hstore")).isEqualTo("hstore"); - assertThat(ddl.convert("double")).isEqualTo("float"); - assertThat(ddl.convert("tinyint")).isEqualTo("smallint"); - assertThat(ddl.convert("double")).isEqualTo("float"); - assertThat(ddl.convert("varchar(20)")).isEqualTo("varchar(20)"); - assertThat(ddl.convert("decimal")).isEqualTo("decimal(16,3)"); - assertThat(ddl.convert("decimal(10)")).isEqualTo("decimal(10)"); - assertThat(ddl.convert("decimal(8,4)")).isEqualTo("decimal(8,4)"); - assertThat(ddl.convert("boolean")).isEqualTo("boolean"); - assertThat(ddl.convert("bit")).isEqualTo("bit"); - } - @Test public void testUuidType() { diff --git a/ebean-core/src/test/java/io/ebean/config/dbplatform/SqlserverPlatformTest.java b/ebean-core/src/test/java/io/ebean/config/dbplatform/SqlserverPlatformTest.java index 54596cb71..306032f50 100644 --- a/ebean-core/src/test/java/io/ebean/config/dbplatform/SqlserverPlatformTest.java +++ b/ebean-core/src/test/java/io/ebean/config/dbplatform/SqlserverPlatformTest.java @@ -2,8 +2,6 @@ package io.ebean.config.dbplatform; import io.ebean.config.PlatformConfig; import io.ebean.config.dbplatform.sqlserver.SqlServer17Platform; -import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl; -import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; @@ -12,27 +10,6 @@ public class SqlserverPlatformTest { SqlServer17Platform platform = new SqlServer17Platform(); - @Test - public void testTypeConversion() { - - PlatformDdl ddl = PlatformDdlBuilder.create(platform); - - assertThat(ddl.convert("clob")).isEqualTo("nvarchar(max)"); - assertThat(ddl.convert("blob")).isEqualTo("image"); - assertThat(ddl.convert("json")).isEqualTo("nvarchar(max)"); - assertThat(ddl.convert("jsonb")).isEqualTo("nvarchar(max)"); - - assertThat(ddl.convert("double")).isEqualTo("float(32)"); - assertThat(ddl.convert("varchar(20)")).isEqualTo("nvarchar(20)"); - assertThat(ddl.convert("decimal(10)")).isEqualTo("numeric(10)"); - assertThat(ddl.convert("decimal(8,4)")).isEqualTo("numeric(8,4)"); - assertThat(ddl.convert("decimal")).isEqualTo("numeric(16,3)"); - assertThat(ddl.convert("boolean")).isEqualTo("bit"); - assertThat(ddl.convert("bit")).isEqualTo("bit"); - assertThat(ddl.convert("tinyint")).isEqualTo("smallint"); - assertThat(ddl.convert("binary(16)")).isEqualTo("binary(16)"); - } - @Test public void uuid_default() { diff --git a/ebean-core/src/test/java/io/ebeaninternal/api/TDSpiEbeanServer.java b/ebean-core/src/test/java/io/ebeaninternal/api/TDSpiEbeanServer.java index 71e5494d1..e76cf88f9 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/api/TDSpiEbeanServer.java +++ b/ebean-core/src/test/java/io/ebeaninternal/api/TDSpiEbeanServer.java @@ -45,7 +45,6 @@ import io.ebean.plugin.Property; import io.ebean.plugin.SpiServer; import io.ebean.text.csv.CsvReader; import io.ebean.text.json.JsonContext; -import io.ebeaninternal.dbmigration.ddlgeneration.DdlHandler; import io.ebeaninternal.server.core.SpiResultSet; import io.ebeaninternal.server.core.timezone.DataTimeZone; import io.ebeaninternal.server.deploy.BeanDescriptor; diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest-history/R__multi_comments.sql b/ebean-core/src/test/resources/dbmigration/migrationtest-history/R__multi_comments.sql deleted file mode 100644 index 0ede0c9eb..000000000 --- a/ebean-core/src/test/resources/dbmigration/migrationtest-history/R__multi_comments.sql +++ /dev/null @@ -1,3 +0,0 @@ - - -- h2 and postgres script - \ No newline at end of file diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest-history/R__order_views.sql b/ebean-core/src/test/resources/dbmigration/migrationtest-history/R__order_views.sql deleted file mode 100644 index ccf30a2c6..000000000 --- a/ebean-core/src/test/resources/dbmigration/migrationtest-history/R__order_views.sql +++ /dev/null @@ -1,7 +0,0 @@ - - create or replace view order_agg_vw as - select d.order_id, sum(d.order_qty * d.unit_price) as order_total, - sum(d.ship_qty * d.unit_price) as ship_total - from o_order_detail d - group by d.order_id - \ No newline at end of file diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/db2/R__order_views.sql b/ebean-core/src/test/resources/dbmigration/migrationtest/db2/R__order_views.sql deleted file mode 100644 index ccf30a2c6..000000000 --- a/ebean-core/src/test/resources/dbmigration/migrationtest/db2/R__order_views.sql +++ /dev/null @@ -1,7 +0,0 @@ - - create or replace view order_agg_vw as - select d.order_id, sum(d.order_qty * d.unit_price) as order_total, - sum(d.ship_qty * d.unit_price) as ship_total - from o_order_detail d - group by d.order_id - \ No newline at end of file diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/h2/R__multi_comments.sql b/ebean-core/src/test/resources/dbmigration/migrationtest/h2/R__multi_comments.sql deleted file mode 100644 index 0ede0c9eb..000000000 --- a/ebean-core/src/test/resources/dbmigration/migrationtest/h2/R__multi_comments.sql +++ /dev/null @@ -1,3 +0,0 @@ - - -- h2 and postgres script - \ No newline at end of file diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/h2/R__order_views.sql b/ebean-core/src/test/resources/dbmigration/migrationtest/h2/R__order_views.sql deleted file mode 100644 index ccf30a2c6..000000000 --- a/ebean-core/src/test/resources/dbmigration/migrationtest/h2/R__order_views.sql +++ /dev/null @@ -1,7 +0,0 @@ - - create or replace view order_agg_vw as - select d.order_id, sum(d.order_qty * d.unit_price) as order_total, - sum(d.ship_qty * d.unit_price) as ship_total - from o_order_detail d - group by d.order_id - \ No newline at end of file diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/hana/R__order_views_hana.sql b/ebean-core/src/test/resources/dbmigration/migrationtest/hana/R__order_views_hana.sql deleted file mode 100644 index 85b1dce9f..000000000 --- a/ebean-core/src/test/resources/dbmigration/migrationtest/hana/R__order_views_hana.sql +++ /dev/null @@ -1,7 +0,0 @@ - - create view order_agg_vw as - select d.order_id, sum(d.order_qty * d.unit_price) as order_total, - sum(d.ship_qty * d.unit_price) as ship_total - from o_order_detail d - group by d.order_id; - \ No newline at end of file diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/hsqldb/R__order_views_hsqldb.sql b/ebean-core/src/test/resources/dbmigration/migrationtest/hsqldb/R__order_views_hsqldb.sql deleted file mode 100644 index 5f7ba1784..000000000 --- a/ebean-core/src/test/resources/dbmigration/migrationtest/hsqldb/R__order_views_hsqldb.sql +++ /dev/null @@ -1,8 +0,0 @@ - - drop view order_agg_vw if exists ; - create view order_agg_vw as - select d.order_id, sum(d.order_qty * d.unit_price) as order_total, - sum(d.ship_qty * d.unit_price) as ship_total - from o_order_detail d - group by d.order_id; - \ No newline at end of file diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/mysql/R__order_views.sql b/ebean-core/src/test/resources/dbmigration/migrationtest/mysql/R__order_views.sql deleted file mode 100644 index ccf30a2c6..000000000 --- a/ebean-core/src/test/resources/dbmigration/migrationtest/mysql/R__order_views.sql +++ /dev/null @@ -1,7 +0,0 @@ - - create or replace view order_agg_vw as - select d.order_id, sum(d.order_qty * d.unit_price) as order_total, - sum(d.ship_qty * d.unit_price) as ship_total - from o_order_detail d - group by d.order_id - \ No newline at end of file diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/mysql55/R__order_views.sql b/ebean-core/src/test/resources/dbmigration/migrationtest/mysql55/R__order_views.sql deleted file mode 100644 index ccf30a2c6..000000000 --- a/ebean-core/src/test/resources/dbmigration/migrationtest/mysql55/R__order_views.sql +++ /dev/null @@ -1,7 +0,0 @@ - - create or replace view order_agg_vw as - select d.order_id, sum(d.order_qty * d.unit_price) as order_total, - sum(d.ship_qty * d.unit_price) as ship_total - from o_order_detail d - group by d.order_id - \ No newline at end of file diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/oracle/R__oracle_only_views.sql b/ebean-core/src/test/resources/dbmigration/migrationtest/oracle/R__oracle_only_views.sql deleted file mode 100644 index 1140e5361..000000000 --- a/ebean-core/src/test/resources/dbmigration/migrationtest/oracle/R__oracle_only_views.sql +++ /dev/null @@ -1,4 +0,0 @@ - - -- oracle only script - select * from dual; - \ No newline at end of file diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/oracle/R__order_views.sql b/ebean-core/src/test/resources/dbmigration/migrationtest/oracle/R__order_views.sql deleted file mode 100644 index ccf30a2c6..000000000 --- a/ebean-core/src/test/resources/dbmigration/migrationtest/oracle/R__order_views.sql +++ /dev/null @@ -1,7 +0,0 @@ - - create or replace view order_agg_vw as - select d.order_id, sum(d.order_qty * d.unit_price) as order_total, - sum(d.ship_qty * d.unit_price) as ship_total - from o_order_detail d - group by d.order_id - \ No newline at end of file diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/postgres/R__multi_comments.sql b/ebean-core/src/test/resources/dbmigration/migrationtest/postgres/R__multi_comments.sql deleted file mode 100644 index 0ede0c9eb..000000000 --- a/ebean-core/src/test/resources/dbmigration/migrationtest/postgres/R__multi_comments.sql +++ /dev/null @@ -1,3 +0,0 @@ - - -- h2 and postgres script - \ No newline at end of file diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/postgres/R__order_views.sql b/ebean-core/src/test/resources/dbmigration/migrationtest/postgres/R__order_views.sql deleted file mode 100644 index ccf30a2c6..000000000 --- a/ebean-core/src/test/resources/dbmigration/migrationtest/postgres/R__order_views.sql +++ /dev/null @@ -1,7 +0,0 @@ - - create or replace view order_agg_vw as - select d.order_id, sum(d.order_qty * d.unit_price) as order_total, - sum(d.ship_qty * d.unit_price) as ship_total - from o_order_detail d - group by d.order_id - \ No newline at end of file diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/postgres/R__pg_indexes.sql b/ebean-core/src/test/resources/dbmigration/migrationtest/postgres/R__pg_indexes.sql deleted file mode 100644 index fa0bab998..000000000 --- a/ebean-core/src/test/resources/dbmigration/migrationtest/postgres/R__pg_indexes.sql +++ /dev/null @@ -1,4 +0,0 @@ - - -- postgres specific indexes - create index ix_ebasic_jmjb_gin2 on ebasic_json_map_json_b using gin(content jsonb_path_ops); - \ No newline at end of file diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/sqlite/R__order_views_sqlite.sql b/ebean-core/src/test/resources/dbmigration/migrationtest/sqlite/R__order_views_sqlite.sql deleted file mode 100644 index 9572b5c26..000000000 --- a/ebean-core/src/test/resources/dbmigration/migrationtest/sqlite/R__order_views_sqlite.sql +++ /dev/null @@ -1,8 +0,0 @@ - - drop view if exists order_agg_vw; - create view order_agg_vw as - select d.order_id, sum(d.order_qty * d.unit_price) as order_total, - sum(d.ship_qty * d.unit_price) as ship_total - from o_order_detail d - group by d.order_id; - \ No newline at end of file diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/sqlserver17/R__order_views_mssql.sql b/ebean-core/src/test/resources/dbmigration/migrationtest/sqlserver17/R__order_views_mssql.sql deleted file mode 100644 index 3b90ebb2d..000000000 --- a/ebean-core/src/test/resources/dbmigration/migrationtest/sqlserver17/R__order_views_mssql.sql +++ /dev/null @@ -1,10 +0,0 @@ - - IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'order_agg_vw') - DROP VIEW order_agg_vw; - - create view order_agg_vw as - select d.order_id, sum(d.order_qty * d.unit_price) as order_total, - sum(d.ship_qty * d.unit_price) as ship_total - from o_order_detail d - group by d.order_id; - \ No newline at end of file diff --git a/ebean-ddlgen/pom.xml b/ebean-ddlgen/pom.xml new file mode 100644 index 000000000..af062bf7a --- /dev/null +++ b/ebean-ddlgen/pom.xml @@ -0,0 +1,75 @@ + + + + ebean-parent + io.ebean + 12.4.3-SNAPSHOT + + 4.0.0 + + ebean-ddlgen + + + + + + io.ebean + ebean-api + 12.4.3-SNAPSHOT + + + + io.ebean + ebean-core + 12.4.3-SNAPSHOT + + + + + org.glassfish.jaxb + jaxb-runtime + 2.3.2 + provided + + + + + org.avaje.composite + junit + 1.1 + test + + + + javax.validation + validation-api + 1.1.0.Final + test + + + + + + + + io.ebean + ebean-maven-plugin + 12.4.2 + + + test + process-test-classes + + debug=0 + + + testEnhance + + + + + + + diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/DdlGeneratorProvider.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/DdlGeneratorProvider.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/DdlGeneratorProvider.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/DdlGeneratorProvider.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/LastMigration.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/LastMigration.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/LastMigration.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/LastMigration.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/UnknownResourcePathException.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/UnknownResourcePathException.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/UnknownResourcePathException.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/UnknownResourcePathException.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandler.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandler.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandler.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandler.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/ColumnDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/ColumnDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/ColumnDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/ColumnDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlBuffer.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlBuffer.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlBuffer.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlBuffer.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlHandler.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlHandler.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlHandler.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlHandler.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlOptions.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlOptions.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlOptions.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlOptions.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/DdlWrite.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/PlatformDdlBuilder.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/PlatformDdlBuilder.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/PlatformDdlBuilder.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/PlatformDdlBuilder.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/TableDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/TableDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/TableDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/TableDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/AbstractHanaDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseDdlBuffer.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDbArray.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDbArray.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDbArray.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDbArray.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdlHandler.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdlHandler.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdlHandler.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDdlHandler.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseTableDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseTableDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseTableDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseTableDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/CockroachDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/CockroachDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/CockroachDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/CockroachDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DB2Ddl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DB2Ddl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DB2Ddl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DB2Ddl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerBasedHistoryDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerUpdate.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerUpdate.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerUpdate.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbTriggerUpdate.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DdlHelp.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DdlHelp.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DdlHelp.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DdlHelp.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DdlIdentity.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DdlIdentity.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DdlIdentity.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DdlIdentity.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DefaultConstraintMaxLength.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DefaultConstraintMaxLength.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DefaultConstraintMaxLength.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DefaultConstraintMaxLength.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2Ddl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2Ddl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2Ddl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2Ddl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaColumnStoreDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaColumnStoreDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaColumnStoreDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaColumnStoreDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlHandler.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlHandler.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlHandler.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlHandler.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaHistoryDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaRowStoreDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaRowStoreDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaRowStoreDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaRowStoreDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaTableDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HistoryTableUpdate.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HistoryTableUpdate.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HistoryTableUpdate.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HistoryTableUpdate.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HsqldbDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HsqldbDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HsqldbDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HsqldbDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbHistoryDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbHistoryDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbHistoryDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MariaDbHistoryDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlHistoryDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlHistoryDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlHistoryDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlHistoryDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NativeDbArray.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NativeDbArray.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NativeDbArray.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NativeDbArray.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NoHistorySupportDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbHistoryDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbHistoryDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbHistoryDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NuoDbHistoryDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/OracleDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/OracleDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/OracleDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/OracleDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformHistoryDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/Postgres9Ddl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/Postgres9Ddl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/Postgres9Ddl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/Postgres9Ddl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresHistoryDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SQLiteDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SQLiteDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SQLiteDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SQLiteDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SplitColumns.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SplitColumns.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SplitColumns.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SplitColumns.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/WriteCreateIndex.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/WriteCreateIndex.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/WriteCreateIndex.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/WriteCreateIndex.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/WriteForeignKey.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/WriteForeignKey.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/WriteForeignKey.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/WriteForeignKey.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/WriteUniqueConstraint.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/WriteUniqueConstraint.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/WriteUniqueConstraint.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/WriteUniqueConstraint.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/IndexColumns.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/IndexColumns.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/IndexColumns.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/IndexColumns.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/IndexSet.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/IndexSet.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/IndexSet.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/IndexSet.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/PlatformTypeConverter.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/PlatformTypeConverter.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/PlatformTypeConverter.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/PlatformTypeConverter.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/VowelRemover.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/VowelRemover.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/VowelRemover.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/VowelRemover.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/AddColumn.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/AddColumn.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/AddColumn.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/AddColumn.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/AddHistoryTable.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/AddHistoryTable.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/AddHistoryTable.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/AddHistoryTable.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/AddTableComment.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/AddTableComment.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/AddTableComment.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/AddTableComment.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/AddUniqueConstraint.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/AddUniqueConstraint.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/AddUniqueConstraint.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/AddUniqueConstraint.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/AlterColumn.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/AlterColumn.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/AlterColumn.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/AlterColumn.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/AlterForeignKey.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/AlterForeignKey.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/AlterForeignKey.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/AlterForeignKey.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/AlterHistoryTable.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/AlterHistoryTable.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/AlterHistoryTable.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/AlterHistoryTable.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/Application.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/Application.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/Application.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/Application.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/Applications.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/Applications.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/Applications.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/Applications.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/Apply.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/Apply.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/Apply.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/Apply.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/ChangeSet.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/ChangeSet.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/ChangeSet.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/ChangeSet.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/ChangeSetType.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/ChangeSetType.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/ChangeSetType.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/ChangeSetType.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/Column.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/Column.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/Column.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/Column.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/Configuration.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/Configuration.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/Configuration.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/Configuration.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/CreateIndex.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/CreateIndex.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/CreateIndex.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/CreateIndex.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/CreateTable.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/CreateTable.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/CreateTable.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/CreateTable.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/DdlScript.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/DdlScript.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/DdlScript.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/DdlScript.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/DefaultTablespace.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/DefaultTablespace.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/DefaultTablespace.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/DefaultTablespace.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/DropColumn.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/DropColumn.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/DropColumn.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/DropColumn.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/DropHistoryTable.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/DropHistoryTable.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/DropHistoryTable.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/DropHistoryTable.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/DropIndex.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/DropIndex.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/DropIndex.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/DropIndex.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/DropTable.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/DropTable.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/DropTable.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/DropTable.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/ForeignKey.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/ForeignKey.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/ForeignKey.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/ForeignKey.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/IdentityType.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/IdentityType.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/IdentityType.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/IdentityType.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/Migration.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/Migration.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/Migration.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/Migration.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/ObjectFactory.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/ObjectFactory.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/ObjectFactory.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/ObjectFactory.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/RenameColumn.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/RenameColumn.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/RenameColumn.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/RenameColumn.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/RenameTable.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/RenameTable.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/RenameTable.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/RenameTable.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/Rollback.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/Rollback.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/Rollback.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/Rollback.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/Sql.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/Sql.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/Sql.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/Sql.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/UniqueConstraint.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/UniqueConstraint.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/UniqueConstraint.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/UniqueConstraint.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/package-info.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/package-info.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migration/package-info.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migration/package-info.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlReader.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlReader.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlReader.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlReader.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlWriter.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlWriter.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlWriter.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlWriter.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/MColumn.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/MColumn.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/MColumn.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/MColumn.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/MCompoundForeignKey.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/MCompoundForeignKey.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/MCompoundForeignKey.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/MCompoundForeignKey.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/MCompoundUniqueConstraint.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/MCompoundUniqueConstraint.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/MCompoundUniqueConstraint.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/MCompoundUniqueConstraint.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/MConfiguration.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/MConfiguration.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/MConfiguration.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/MConfiguration.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/MIndex.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/MIndex.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/MIndex.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/MIndex.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/MTable.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/MTable.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/MTable.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/MTable.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/MTableIdentity.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/MTableIdentity.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/MTableIdentity.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/MTableIdentity.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/MigrationModel.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/MigrationModel.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/MigrationModel.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/MigrationModel.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/MigrationResource.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/MigrationResource.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/MigrationResource.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/MigrationResource.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/ModelContainer.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/ModelContainer.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/ModelContainer.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/ModelContainer.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/ModelDiff.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/ModelDiff.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/ModelDiff.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/ModelDiff.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/PendingDrops.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/PendingDrops.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/PendingDrops.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/PendingDrops.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildBeanVisitor.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildBeanVisitor.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildBeanVisitor.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildBeanVisitor.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildContext.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildContext.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildContext.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildContext.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildElementTable.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildElementTable.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildElementTable.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildElementTable.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildIntersectionTable.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildIntersectionTable.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildIntersectionTable.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildIntersectionTable.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildPropertyVisitor.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/visitor/BeanVisitor.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/visitor/BeanVisitor.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/visitor/BeanVisitor.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/visitor/BeanVisitor.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/visitor/VisitAllUsing.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/visitor/VisitAllUsing.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/model/visitor/VisitAllUsing.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/model/visitor/VisitAllUsing.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/dbmigration/package-info.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/package-info.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/dbmigration/package-info.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/package-info.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/extraddl/model/DdlScript.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/extraddl/model/DdlScript.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/extraddl/model/DdlScript.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/extraddl/model/DdlScript.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdl.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdl.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdl.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdl.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/extraddl/model/ObjectFactory.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/extraddl/model/ObjectFactory.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/extraddl/model/ObjectFactory.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/extraddl/model/ObjectFactory.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/extraddl/model/package-info.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/extraddl/model/package-info.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/extraddl/model/package-info.java rename to ebean-ddlgen/src/main/java/io/ebeaninternal/extraddl/model/package-info.java diff --git a/ebean-core/src/main/resources/META-INF/services/io.ebean.dbmigration.DbMigration b/ebean-ddlgen/src/main/resources/META-INF/services/io.ebean.dbmigration.DbMigration similarity index 100% rename from ebean-core/src/main/resources/META-INF/services/io.ebean.dbmigration.DbMigration rename to ebean-ddlgen/src/main/resources/META-INF/services/io.ebean.dbmigration.DbMigration diff --git a/ebean-core/src/main/resources/META-INF/services/io.ebeaninternal.api.SpiDdlGeneratorProvider b/ebean-ddlgen/src/main/resources/META-INF/services/io.ebeaninternal.api.SpiDdlGeneratorProvider similarity index 100% rename from ebean-core/src/main/resources/META-INF/services/io.ebeaninternal.api.SpiDdlGeneratorProvider rename to ebean-ddlgen/src/main/resources/META-INF/services/io.ebeaninternal.api.SpiDdlGeneratorProvider diff --git a/ebean-core/src/main/resources/ebean-dbmigration-1.0.xsd b/ebean-ddlgen/src/main/resources/ebean-dbmigration-1.0.xsd similarity index 100% rename from ebean-core/src/main/resources/ebean-dbmigration-1.0.xsd rename to ebean-ddlgen/src/main/resources/ebean-dbmigration-1.0.xsd diff --git a/ebean-core/src/main/resources/ebean-extraddl-1.0.xsd b/ebean-ddlgen/src/main/resources/ebean-extraddl-1.0.xsd similarity index 100% rename from ebean-core/src/main/resources/ebean-extraddl-1.0.xsd rename to ebean-ddlgen/src/main/resources/ebean-extraddl-1.0.xsd diff --git a/ebean-core/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl-partitioning.xml b/ebean-ddlgen/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl-partitioning.xml similarity index 100% rename from ebean-core/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl-partitioning.xml rename to ebean-ddlgen/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl-partitioning.xml diff --git a/ebean-core/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml b/ebean-ddlgen/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml similarity index 100% rename from ebean-core/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml rename to ebean-ddlgen/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml diff --git a/ebean-ddlgen/src/test/java/io/ebean/BaseTestCase.java b/ebean-ddlgen/src/test/java/io/ebean/BaseTestCase.java new file mode 100644 index 000000000..3abf51366 --- /dev/null +++ b/ebean-ddlgen/src/test/java/io/ebean/BaseTestCase.java @@ -0,0 +1,297 @@ +package io.ebean; + +import io.ebean.annotation.PersistBatch; +import io.ebean.annotation.Platform; +import io.ebean.cache.ServerCacheStatistics; +import io.ebean.config.dbplatform.IdType; +import io.ebean.meta.MetaTimedMetric; +import io.ebean.meta.ServerMetrics; +import io.ebean.util.StringHelper; +import io.ebeaninternal.api.SpiEbeanServer; +import io.ebeaninternal.api.SpiQuery; +import io.ebeaninternal.api.SpiTransaction; +import io.ebeaninternal.server.core.OrmQueryRequest; +import io.ebeaninternal.server.deploy.BeanDescriptor; +import io.ebeaninternal.server.expression.platform.DbExpressionHandler; +import io.ebeaninternal.server.expression.platform.DbExpressionHandlerFactory; +import io.ebeaninternal.server.transaction.TransactionScopeManager; +import org.assertj.core.api.AbstractCharSequenceAssert; +import org.junit.After; +import org.junit.Rule; +import org.junit.rules.TestName; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.sql.Types; +import java.util.List; +import java.util.stream.Collectors; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.fail; + +@RunWith(ConditionalTestRunner.class) +public abstract class BaseTestCase { + + protected static Logger logger = LoggerFactory.getLogger(BaseTestCase.class); + + @Rule public TestName name = new TestName(); + + @After + public void checkForLeak() { + TransactionScopeManager scope = spiEbeanServer().getTransactionManager().scope(); + SpiTransaction trans = scope.getInScope(); + if (trans != null) { + String msg = getClass().getSimpleName() + "." + name.getMethodName() + " did not clear threadScope:" + trans; + scope.clearExternal(); // clear for next test + fail(msg); + } + } + + + /** + * this is the clock delta that may occur between testing machine and db server. + * If the clock delta of DB server is in future, an "asOf" query may not find the + * correct entry. + * + * Note: That some tests may use a Thread.sleep to wait, so that the local system clock + * can catch up. So don't set that to a too high value. + */ + public static final int DB_CLOCK_DELTA; + + static { + String s = System.getProperty("dbClockDelta"); + if (s != null && !s.isEmpty()) { + DB_CLOCK_DELTA = Integer.parseInt(s); + } else { + DB_CLOCK_DELTA = 100; + } + try { + // First try, if we get the default server. If this fails, all tests will fail. + DB.getDefault(); + } catch (Throwable e) { + logger.error("Fatal error while getting ebean-server. Exiting...", e); + System.exit(1); + } + } + + protected void clearAllL2Cache() { + server().getServerCacheManager().clearAll(); + } + + protected void resetAllMetrics() { + server().getMetaInfoManager().resetAllMetrics(); + } + + protected ServerMetrics collectMetrics() { + return server().getMetaInfoManager().collectMetrics(); + } + + protected List visitTimedMetrics() { + return collectMetrics().getTimedMetrics(); + } + + protected List sqlMetrics() { + List timedMetrics = visitTimedMetrics(); + + return timedMetrics.stream() + .filter((it) -> it.getName().startsWith("sql.") || it.getName().startsWith("orm.")) + .collect(Collectors.toList()); + } + + protected SpiTransaction getInScopeTransaction() { + return spiEbeanServer().getTransactionManager().scope().getInScope(); + } + + /** + * Return the generated sql trimming column alias if required. + */ + protected String sqlOf(Query query) { + return trimSql(query.getGeneratedSql()); + } + + /** + * Return the generated sql trimming column alias if required. + */ + protected String sqlOf(Query query, int columns) { + return trimSql(query.getGeneratedSql(), columns); + } + + protected void assertSqlBind(String sql) { + assertThat(sql).contains("-- bind"); + } + + protected void assertSqlBind(List sql, int i) { + assertThat(sql.get(i)).contains("-- bind"); + } + + protected void assertSqlBind(List sql, int from, int to) { + for (int i = from; i <= to; i++) { + assertThat(sql.get(i)).contains("-- bind"); + } + } + + protected AbstractCharSequenceAssert assertSql(Query query, int count) { + return org.assertj.core.api.Assertions.assertThat(sqlOf(query, count)); + } + + protected AbstractCharSequenceAssert assertSql(Query query) { + return org.assertj.core.api.Assertions.assertThat(sqlOf(query)); + } + + protected AbstractCharSequenceAssert assertSql(String sql) { + return org.assertj.core.api.Assertions.assertThat(trimSql(sql)); + } + + protected String trimSql(String sql) { + if (sql.contains(" c0,") || sql.contains(" c0 ") || sql.contains(" c1,") || sql.contains(" c1 ")) { + // for oracle we include column alias so lets remove those + return trimSql(sql, 10); + } + return sql;//trimSql(sql, 0); + } + + /** + * Trim out column alias if required from the generated sql. + */ + protected String trimSql(String sql, int columns) { + for (int i = 0; i <= columns; i++) { + sql = StringHelper.replace(sql, " c" + i + ",", ","); + } + for (int i = 0; i <= columns; i++) { + sql = StringHelper.replace(sql, " c" + i + " ", " "); + } + return sql; + } + + public boolean isPlatformCaseSensitive() { + return spiEbeanServer().getDatabasePlatform().isCaseSensitiveCollation(); + } + + /** + * MS SQL Server does not allow setting explicit values on identity columns + * so tests that do this need to be skipped for SQL Server. + */ + public boolean isSqlServer() { + return Platform.SQLSERVER == platform(); + } + + public boolean isH2() { + return Platform.H2 == platform(); + } + + public boolean isHSqlDb() { + return Platform.HSQLDB == platform(); + } + + public boolean isOracle() { + return Platform.ORACLE == platform(); + } + + public boolean isNuoDb() { + return Platform.NUODB == platform(); + } + + public boolean isDb2() { + return Platform.DB2 == platform(); + } + + public boolean isPostgres() { + return Platform.POSTGRES == platform().base(); + } + + public boolean isMySql() { + return Platform.MYSQL == platform(); + } + + public boolean isMariaDB() { + return Platform.MARIADB == platform(); + } + + public boolean isHana() { + return Platform.HANA == platform(); + } + + public boolean isPlatformBooleanNative() { + return Types.BOOLEAN == spiEbeanServer().getDatabasePlatform().getBooleanDbType(); + } + + public boolean isPlatformOrderNullsSupport() { + return isH2() || isPostgres(); + } + + public boolean isPlatformSupportsDeleteTableAlias() { + return spiEbeanServer().getDatabasePlatform().isSupportsDeleteTableAlias(); + } + + public boolean isPersistBatchOnCascade() { + return spiEbeanServer().getDatabasePlatform().getPersistBatchOnCascade() != PersistBatch.NONE; + } + + /** + * Wait for the L2 cache to propagate changes post-commit. + */ + protected void awaitL2Cache() { + // do nothing, used to thread sleep + } + + protected BeanDescriptor getBeanDescriptor(Class cls) { + return spiEbeanServer().getBeanDescriptor(cls); + } + + protected ServerCacheStatistics getBeanCacheStats(Class cls, boolean reset) { + return server().getServerCacheManager().getBeanCache(cls).getStatistics(reset); + } + + protected Platform platform() { + return spiEbeanServer().getDatabasePlatform().getPlatform().base(); + } + + protected IdType idType() { + return spiEbeanServer().getDatabasePlatform().getDbIdentity().getIdType(); + } + + protected SpiEbeanServer spiEbeanServer() { + return (SpiEbeanServer) DB.getDefault(); + } + + protected EbeanServer server() { + return Ebean.getDefaultServer(); + } + + /** + * Platform specific IN clause assert. + */ + protected void platformAssertIn(String sql, String containsIn) { + if (isPostgres()) { + assertThat(sql).contains(containsIn+" = any("); + } else { + assertThat(sql).contains(containsIn+" in "); + } + // H2 contains("where t0.name in (select * from table(x varchar = ?)"); + } + + /** + * Platform specific NOT IN clause assert. + */ + protected void platformAssertNotIn(String sql, String containsIn) { + if (isPostgres()) { + assertThat(sql).contains(containsIn+" != all("); + } else { + assertThat(sql).contains(containsIn+" not in "); + } + } + + /** + * Platform specific CONCAT clause. + */ + protected String concat(String property0, String separator, String property1) { + return concat(property0, separator, property1, null); + } + + protected String concat(String property0, String separator, String property1, String suffix) { + DbExpressionHandler dbExpressionHandler = DbExpressionHandlerFactory.from(spiEbeanServer().getDatabasePlatform()); + return dbExpressionHandler.concat(property0, separator, property1, suffix); + } + +} diff --git a/ebean-ddlgen/src/test/java/io/ebean/ConditionalTestRunner.java b/ebean-ddlgen/src/test/java/io/ebean/ConditionalTestRunner.java new file mode 100644 index 000000000..4adf007d8 --- /dev/null +++ b/ebean-ddlgen/src/test/java/io/ebean/ConditionalTestRunner.java @@ -0,0 +1,48 @@ +package io.ebean; + +import io.ebean.annotation.ForPlatform; +import io.ebean.annotation.IgnorePlatform; +import io.ebean.annotation.Platform; +import org.junit.runner.notification.RunNotifier; +import org.junit.runners.BlockJUnit4ClassRunner; +import org.junit.runners.model.FrameworkMethod; +import org.junit.runners.model.InitializationError; + +/** + * This testrunner checks for an {@link IgnorePlatform} annotation and ignores the test. + * + * @author Roland Praml, FOCONIS AG + */ +public class ConditionalTestRunner extends BlockJUnit4ClassRunner { + public ConditionalTestRunner(Class klass) throws InitializationError { + super(klass); + } + @Override + public void runChild(FrameworkMethod method, RunNotifier notifier) { + ForPlatform forPlatform = method.getAnnotation(ForPlatform.class); + if (forPlatform != null) { + if (!platformMath(forPlatform.value())) { + notifier.fireTestIgnored(describeChild(method)); + return; + } + } + + IgnorePlatform ignore = method.getAnnotation(IgnorePlatform.class); + + if (ignore == null || !platformMath(ignore.value())) { + super.runChild(method, notifier); + } else { + notifier.fireTestIgnored(describeChild(method)); + } + + } + private boolean platformMath(Platform[] platforms) { + Platform basePlatform = DB.getDefault().getPlatform().base(); + for (Platform platform : platforms) { + if (platform.equals(basePlatform)) { + return true; + } + } + return false; + } +} diff --git a/ebean-ddlgen/src/test/java/io/ebean/annotation/ForPlatform.java b/ebean-ddlgen/src/test/java/io/ebean/annotation/ForPlatform.java new file mode 100644 index 000000000..a69c42e9a --- /dev/null +++ b/ebean-ddlgen/src/test/java/io/ebean/annotation/ForPlatform.java @@ -0,0 +1,16 @@ +package io.ebean.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation to run a test for a certain platform. + * @author Roland Praml, FOCONIS AG + */ +@Target(ElementType.METHOD ) +@Retention(RetentionPolicy.RUNTIME) +public @interface ForPlatform { + Platform[] value(); +} diff --git a/ebean-ddlgen/src/test/java/io/ebean/annotation/IgnorePlatform.java b/ebean-ddlgen/src/test/java/io/ebean/annotation/IgnorePlatform.java new file mode 100644 index 000000000..6fafc4852 --- /dev/null +++ b/ebean-ddlgen/src/test/java/io/ebean/annotation/IgnorePlatform.java @@ -0,0 +1,16 @@ +package io.ebean.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation to ignore a test for a certain platform. + * @author Roland Praml, FOCONIS AG + */ +@Target(ElementType.METHOD ) +@Retention(RetentionPolicy.RUNTIME) +public @interface IgnorePlatform { + Platform[] value(); +} diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/DbMigrationDropHistoryTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/DbMigrationDropHistoryTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/DbMigrationDropHistoryTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/DbMigrationDropHistoryTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java diff --git a/ebean-core/src/test/java/io/ebean/config/dbplatform/H2PlatformTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/H2PlatformTest.java similarity index 96% rename from ebean-core/src/test/java/io/ebean/config/dbplatform/H2PlatformTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/H2PlatformTest.java index 3e187505c..8f68a49d9 100644 --- a/ebean-core/src/test/java/io/ebean/config/dbplatform/H2PlatformTest.java +++ b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/H2PlatformTest.java @@ -1,8 +1,8 @@ -package io.ebean.config.dbplatform; +package io.ebeaninternal.dbmigration; import io.ebean.config.dbplatform.h2.H2Platform; -import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl; import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder; +import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; diff --git a/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/HanaPlatformTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/HanaPlatformTest.java new file mode 100644 index 000000000..bd0dea4c5 --- /dev/null +++ b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/HanaPlatformTest.java @@ -0,0 +1,69 @@ +package io.ebeaninternal.dbmigration; + +import io.ebean.config.PlatformConfig; +import io.ebean.config.dbplatform.DbPlatformType; +import io.ebean.config.dbplatform.hana.HanaPlatform; +import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder; +import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl; +import org.junit.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class HanaPlatformTest { + + HanaPlatform platform = new HanaPlatform(); + + @Test + public void testTypeConversion() { + + PlatformDdl ddl = PlatformDdlBuilder.create(platform); + + assertThat(ddl.convert("clob")).isEqualTo("nclob"); + assertThat(ddl.convert("blob")).isEqualTo("blob"); + assertThat(ddl.convert("json")).isEqualTo("nclob"); + assertThat(ddl.convert("jsonb")).isEqualTo("nclob"); + assertThat(ddl.convert("jsonvarchar")).isEqualTo("nvarchar(255)"); + + assertThat(ddl.convert("double")).isEqualTo("double"); + assertThat(ddl.convert("varchar(20)")).isEqualTo("nvarchar(20)"); + assertThat(ddl.convert("decimal(10)")).isEqualTo("decimal(10)"); + assertThat(ddl.convert("decimal(8,4)")).isEqualTo("decimal(8,4)"); + assertThat(ddl.convert("decimal")).isEqualTo("decimal(16,3)"); + assertThat(ddl.convert("boolean")).isEqualTo("boolean"); + assertThat(ddl.convert("bit")).isEqualTo("smallint"); + assertThat(ddl.convert("tinyint")).isEqualTo("smallint"); + assertThat(ddl.convert("binary")).isEqualTo("varbinary(255)"); + assertThat(ddl.convert("binary(16)")).isEqualTo("varbinary(16)"); + + assertThat(ddl.convert("point")).isEqualTo("st_point"); + + assertThat(ddl.convert("multilinestring")).isEqualTo("st_geometry"); + assertThat(ddl.convert("multipolygon")).isEqualTo("st_geometry"); + assertThat(ddl.convert("multipoint")).isEqualTo("st_geometry"); + assertThat(ddl.convert("linestring")).isEqualTo("st_geometry"); + assertThat(ddl.convert("polygon")).isEqualTo("st_geometry"); + } + + @Test + public void uuid_default() { + + HanaPlatform platform = new HanaPlatform(); + platform.configure(new PlatformConfig()); + DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + + assertThat(dbType.renderType(0, 0)).isEqualTo("varchar(40)"); + } + + @Test + public void uuid_as_binary() { + + HanaPlatform platform = new HanaPlatform(); + PlatformConfig config = new PlatformConfig(); + config.setDbUuid(PlatformConfig.DbUuid.AUTO_BINARY); + + platform.configure(config); + + DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + assertThat(dbType.renderType(0, 0)).isEqualTo("varbinary(16)"); + } +} diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/LastMigrationTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/LastMigrationTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/LastMigrationTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/LastMigrationTest.java diff --git a/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/MySqlPlatformTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/MySqlPlatformTest.java new file mode 100644 index 000000000..69486c4c7 --- /dev/null +++ b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/MySqlPlatformTest.java @@ -0,0 +1,26 @@ +package io.ebeaninternal.dbmigration; + +import io.ebean.config.dbplatform.mysql.MySqlPlatform; +import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder; +import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl; +import org.junit.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class MySqlPlatformTest { + + MySqlPlatform mySqlPlatform = new MySqlPlatform(); + + @Test + public void testTypeConversion() { + PlatformDdl ddl = PlatformDdlBuilder.create(mySqlPlatform); + assertThat(ddl.convert("clob")).isEqualTo("longtext"); + assertThat(ddl.convert("json")).isEqualTo("json"); + assertThat(ddl.convert("jsonb")).isEqualTo("json"); + assertThat(ddl.convert("varchar(20)")).isEqualTo("varchar(20)"); + assertThat(ddl.convert("boolean")).isEqualTo("tinyint(1)"); + assertThat(ddl.convert("bit")).isEqualTo("tinyint(1)"); + assertThat(ddl.convert("decimal")).isEqualTo("decimal(16,3)"); + } + +} diff --git a/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/OraclePlatformTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/OraclePlatformTest.java new file mode 100644 index 000000000..ff7472eb5 --- /dev/null +++ b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/OraclePlatformTest.java @@ -0,0 +1,35 @@ +package io.ebeaninternal.dbmigration; + +import io.ebean.config.dbplatform.oracle.OraclePlatform; +import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder; +import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl; +import org.junit.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class OraclePlatformTest { + + OraclePlatform platform = new OraclePlatform(); + + @Test + public void testTypeConversion() { + + PlatformDdl ddl = PlatformDdlBuilder.create(platform); + + assertThat(ddl.convert("clob")).isEqualTo("clob"); + assertThat(ddl.convert("blob")).isEqualTo("blob"); + assertThat(ddl.convert("json")).isEqualTo("clob"); + assertThat(ddl.convert("jsonb")).isEqualTo("clob"); + + assertThat(ddl.convert("double")).isEqualTo("number(19,4)"); + assertThat(ddl.convert("varchar(20)")).isEqualTo("varchar2(20)"); + assertThat(ddl.convert("decimal(10)")).isEqualTo("number(10)"); + assertThat(ddl.convert("decimal(8,4)")).isEqualTo("number(8,4)"); + assertThat(ddl.convert("decimal")).isEqualTo("number(16,3)"); + assertThat(ddl.convert("boolean")).isEqualTo("number(1)"); + assertThat(ddl.convert("bit")).isEqualTo("bit"); + assertThat(ddl.convert("tinyint")).isEqualTo("number(3)"); + assertThat(ddl.convert("binary(16)")).isEqualTo("raw(16)"); + } + +} diff --git a/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/PostgresPlatformTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/PostgresPlatformTest.java new file mode 100644 index 000000000..c18e224cf --- /dev/null +++ b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/PostgresPlatformTest.java @@ -0,0 +1,34 @@ +package io.ebeaninternal.dbmigration; + +import io.ebean.config.dbplatform.postgres.PostgresPlatform; +import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder; +import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl; +import org.junit.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class PostgresPlatformTest { + + @Test + public void testTypeConversion() { + + PostgresPlatform platform = new PostgresPlatform(); + PlatformDdl ddl = PlatformDdlBuilder.create(platform); + + assertThat(ddl.convert("clob")).isEqualTo("text"); + assertThat(ddl.convert("blob")).isEqualTo("bytea"); + assertThat(ddl.convert("json")).isEqualTo("json"); + assertThat(ddl.convert("jsonb")).isEqualTo("jsonb"); + assertThat(ddl.convert("hstore")).isEqualTo("hstore"); + assertThat(ddl.convert("double")).isEqualTo("float"); + assertThat(ddl.convert("tinyint")).isEqualTo("smallint"); + assertThat(ddl.convert("double")).isEqualTo("float"); + assertThat(ddl.convert("varchar(20)")).isEqualTo("varchar(20)"); + assertThat(ddl.convert("decimal")).isEqualTo("decimal(16,3)"); + assertThat(ddl.convert("decimal(10)")).isEqualTo("decimal(10)"); + assertThat(ddl.convert("decimal(8,4)")).isEqualTo("decimal(8,4)"); + assertThat(ddl.convert("boolean")).isEqualTo("boolean"); + assertThat(ddl.convert("bit")).isEqualTo("bit"); + } + +} diff --git a/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/SqlserverPlatformTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/SqlserverPlatformTest.java new file mode 100644 index 000000000..0230b3534 --- /dev/null +++ b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/SqlserverPlatformTest.java @@ -0,0 +1,70 @@ +package io.ebeaninternal.dbmigration; + +import io.ebean.config.PlatformConfig; +import io.ebean.config.dbplatform.DbPlatformType; +import io.ebean.config.dbplatform.sqlserver.SqlServer17Platform; +import io.ebeaninternal.dbmigration.ddlgeneration.PlatformDdlBuilder; +import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl; +import org.junit.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class SqlserverPlatformTest { + + SqlServer17Platform platform = new SqlServer17Platform(); + + @Test + public void testTypeConversion() { + + PlatformDdl ddl = PlatformDdlBuilder.create(platform); + + assertThat(ddl.convert("clob")).isEqualTo("nvarchar(max)"); + assertThat(ddl.convert("blob")).isEqualTo("image"); + assertThat(ddl.convert("json")).isEqualTo("nvarchar(max)"); + assertThat(ddl.convert("jsonb")).isEqualTo("nvarchar(max)"); + + assertThat(ddl.convert("double")).isEqualTo("float(32)"); + assertThat(ddl.convert("varchar(20)")).isEqualTo("nvarchar(20)"); + assertThat(ddl.convert("decimal(10)")).isEqualTo("numeric(10)"); + assertThat(ddl.convert("decimal(8,4)")).isEqualTo("numeric(8,4)"); + assertThat(ddl.convert("decimal")).isEqualTo("numeric(16,3)"); + assertThat(ddl.convert("boolean")).isEqualTo("bit"); + assertThat(ddl.convert("bit")).isEqualTo("bit"); + assertThat(ddl.convert("tinyint")).isEqualTo("smallint"); + assertThat(ddl.convert("binary(16)")).isEqualTo("binary(16)"); + } + + @Test + public void uuid_default() { + + platform.configure(new PlatformConfig()); + DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + + assertThat(dbType.renderType(0, 0)).isEqualTo("uniqueidentifier"); + } + + + @Test + public void uuid_as_binary() { + + PlatformConfig config = new PlatformConfig(); + config.setDbUuid(PlatformConfig.DbUuid.BINARY); + + platform.configure(config); + + DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + assertThat(dbType.renderType(0, 0)).isEqualTo("binary(16)"); + } + + @Test + public void uuid_as_varchar() { + + PlatformConfig config = new PlatformConfig(); + config.setDbUuid(PlatformConfig.DbUuid.VARCHAR); + + platform.configure(config); + + DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + assertThat(dbType.renderType(0, 0)).isEqualTo("nvarchar(40)"); + } +} diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/Helper.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/Helper.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/Helper.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/Helper.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdlTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDbArrayTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDbArrayTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDbArrayTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDbArrayTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbNameNormaliseTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbNameNormaliseTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbNameNormaliseTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DbNameNormaliseTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdlTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdlTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdlTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2HistoryDdlTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HanaDdlTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HistoryTableUpdateTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HistoryTableUpdateTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HistoryTableUpdateTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/HistoryTableUpdateTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/IndexSetTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/IndexSetTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/IndexSetTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/IndexSetTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NativeDbArrayTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NativeDbArrayTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NativeDbArrayTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/NativeDbArrayTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/OracleDdlTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/OracleDdlTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/OracleDdlTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/OracleDdlTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_dropUniqueConstraintTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_dropUniqueConstraintTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_dropUniqueConstraintTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_dropUniqueConstraintTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformTypeConverterTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformTypeConverterTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformTypeConverterTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformTypeConverterTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdlTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdlTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdlTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdlTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdlTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdlTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdlTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/SqlServerHistoryDdlTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/VowelRemoverTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/VowelRemoverTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/VowelRemoverTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/util/VowelRemoverTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlWriterTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlWriterTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlWriterTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlWriterTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/EntryTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/EntryTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/EntryTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/EntryTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/MColumnTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/MColumnTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/MColumnTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/MColumnTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/MTableIdentityTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/MTableIdentityTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/MTableIdentityTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/MTableIdentityTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/MTableTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/MTableTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/MTableTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/MTableTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/MigrationVersionTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/MigrationVersionTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/MigrationVersionTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/MigrationVersionTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/ModelContainerApplyTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/ModelContainerApplyTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/ModelContainerApplyTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/ModelContainerApplyTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/ModelContainerTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/ModelContainerTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/ModelContainerTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/ModelContainerTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/ModelDiffTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/ModelDiffTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/ModelDiffTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/ModelDiffTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/PendingDropsTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/PendingDropsTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/PendingDropsTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/PendingDropsTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuildBeanVisitorTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuildBeanVisitorTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuildBeanVisitorTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuildBeanVisitorTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuild_compoundKeyTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuild_compoundKeyTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuild_compoundKeyTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuild_compoundKeyTest.java diff --git a/ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuild_explicitSequencesTest.java b/ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuild_explicitSequencesTest.java similarity index 100% rename from ebean-core/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuild_explicitSequencesTest.java rename to ebean-ddlgen/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuild_explicitSequencesTest.java diff --git a/ebean-ddlgen/src/test/java/misc/migration/history/v1_0/EHistory7.java b/ebean-ddlgen/src/test/java/misc/migration/history/v1_0/EHistory7.java new file mode 100644 index 000000000..28ca8c5de --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/history/v1_0/EHistory7.java @@ -0,0 +1,24 @@ +package misc.migration.history.v1_0; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import io.ebean.annotation.History; + +/** + * detects a bug where dropHistoryTable is not applied correctly + * + * @author Roland Praml, FOCONIS AG + * + */ +@Entity +@Table(name = "migtest_e_history7") +@History +public class EHistory7 { + + @Id + Integer id; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/history/v1_1/EHistory7.java b/ebean-ddlgen/src/test/java/misc/migration/history/v1_1/EHistory7.java new file mode 100644 index 000000000..7b658368c --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/history/v1_1/EHistory7.java @@ -0,0 +1,21 @@ +package misc.migration.history.v1_1; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +/** + * detects a bug where dropHistoryTable is not applied correctly + * + * @author Roland Praml, FOCONIS AG + * + */ +@Entity +@Table(name = "migtest_e_history7") +public class EHistory7 { + + @Id + Integer id; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/CKeyAssoc.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/CKeyAssoc.java new file mode 100644 index 000000000..75f0c7013 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/CKeyAssoc.java @@ -0,0 +1,32 @@ +package misc.migration.v1_0; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_ckey_assoc") +public class CKeyAssoc { + + @Id + Integer id; + + String assocOne; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getAssocOne() { + return assocOne; + } + + public void setAssocOne(String assocOne) { + this.assocOne = assocOne; + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/CKeyDetail.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/CKeyDetail.java new file mode 100644 index 000000000..2d8c7f956 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/CKeyDetail.java @@ -0,0 +1,41 @@ +package misc.migration.v1_0; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_ckey_detail") +public class CKeyDetail { + + @Id + Integer id; + + String something; + + + public CKeyDetail() { + + } + + public CKeyDetail(String something) { + this.something = something; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getSomething() { + return something; + } + + public void setSomething(String something) { + this.something = something; + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/CKeyParent.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/CKeyParent.java new file mode 100644 index 000000000..dacf6febe --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/CKeyParent.java @@ -0,0 +1,44 @@ +package misc.migration.v1_0; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.Table; +import javax.persistence.Version; + +@Entity +@Table(name = "migtest_ckey_parent") +public class CKeyParent { + + @EmbeddedId + CKeyParentId id; + + String name; + + @Version + int version; + + public CKeyParentId getId() { + return id; + } + + public void setId(CKeyParentId id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getVersion() { + return version; + } + + public void setVersion(int version) { + this.version = version; + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/CKeyParentId.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/CKeyParentId.java new file mode 100644 index 000000000..d61d29e7d --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/CKeyParentId.java @@ -0,0 +1,59 @@ +package misc.migration.v1_0; + +import javax.persistence.Embeddable; +import javax.validation.constraints.Size; + +@Embeddable +public class CKeyParentId { + + Integer oneKey; + + @Size(max=127) + String twoKey; + + public CKeyParentId() { + + } + + public CKeyParentId(Integer oneKey, String twoKey) { + this.oneKey = oneKey; + this.twoKey = twoKey; + } + + public Integer getOneKey() { + return oneKey; + } + + public void setOneKey(Integer oneKey) { + this.oneKey = oneKey; + } + + public String getTwoKey() { + return twoKey; + } + + public void setTwoKey(String twoKey) { + this.twoKey = twoKey; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof CKeyParentId)) { + return false; + } + + CKeyParentId otherKey = (CKeyParentId) o; + return otherKey.hashCode() == hashCode(); + } + + @Override + public int hashCode() { + int hc = getClass().getName().hashCode(); + hc = 31 * hc + oneKey; + hc = 31 * hc + twoKey.hashCode(); + return hc; + } +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/DfkCascade.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/DfkCascade.java new file mode 100644 index 000000000..f7b14f321 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/DfkCascade.java @@ -0,0 +1,22 @@ +package misc.migration.v1_0; + +import io.ebean.annotation.ConstraintMode; +import io.ebean.annotation.DbForeignKey; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_fk_cascade") +public class DfkCascade { + + @Id + long id; + + @ManyToOne + @DbForeignKey(onDelete = ConstraintMode.CASCADE) + DfkCascadeOne one; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/DfkCascadeOne.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/DfkCascadeOne.java new file mode 100644 index 000000000..1d57570bf --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/DfkCascadeOne.java @@ -0,0 +1,21 @@ +package misc.migration.v1_0; + +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; + +import java.util.List; + +@Entity +@Table(name = "migtest_fk_cascade_one") +public class DfkCascadeOne { + + @Id + long id; + + @OneToMany(mappedBy = "one", cascade = CascadeType.ALL) + List details; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/DfkNone.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/DfkNone.java new file mode 100644 index 000000000..1c44c06d6 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/DfkNone.java @@ -0,0 +1,21 @@ +package misc.migration.v1_0; + +import io.ebean.annotation.DbForeignKey; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + + +@Entity +@Table(name = "migtest_fk_none") +public class DfkNone { + + @Id + long id; + + @ManyToOne + @DbForeignKey(noConstraint = true) + DfkOne one; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/DfkNoneViaJoin.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/DfkNoneViaJoin.java new file mode 100644 index 000000000..c8147fdcd --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/DfkNoneViaJoin.java @@ -0,0 +1,22 @@ +package misc.migration.v1_0; + +import javax.persistence.ConstraintMode; +import javax.persistence.Entity; +import javax.persistence.ForeignKey; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_fk_none_via_join") +public class DfkNoneViaJoin { + + @Id + long id; + + @ManyToOne + @JoinColumn(name = "one_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) + DfkOne one; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/DfkOne.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/DfkOne.java new file mode 100644 index 000000000..28e2da229 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/DfkOne.java @@ -0,0 +1,13 @@ +package misc.migration.v1_0; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_fk_one") +public class DfkOne { + + @Id + long id; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/DfkSetNull.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/DfkSetNull.java new file mode 100644 index 000000000..6c46d7529 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/DfkSetNull.java @@ -0,0 +1,22 @@ +package misc.migration.v1_0; + +import io.ebean.annotation.ConstraintMode; +import io.ebean.annotation.DbForeignKey; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_fk_set_null") +public class DfkSetNull { + + @Id + long id; + + @ManyToOne + @DbForeignKey(onDelete = ConstraintMode.SET_NULL) + DfkOne one; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/EBasic.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/EBasic.java new file mode 100644 index 000000000..e1c16afd6 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/EBasic.java @@ -0,0 +1,130 @@ +package misc.migration.v1_0; + +import io.ebean.annotation.DbDefault; +import io.ebean.annotation.EnumValue; +import io.ebean.annotation.Index; +import io.ebean.annotation.NotNull; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Table; +import javax.validation.constraints.Size; + +import java.sql.Timestamp; + +@Entity +@Table(name = "migtest_e_basic") +public class EBasic { + + public enum Status { + @EnumValue("N") + NEW, + + @EnumValue("A") + ACTIVE, + + @EnumValue("I") + INACTIVE, + } + + @Id + Integer id; + + Status status; + + @DbDefault("N") + @NotNull + Status status2; + + @Size(max=127) + String name; + + @Size(max=127) + String description; + + Timestamp someDate; + + boolean old_boolean; + + Boolean old_boolean2; + + @ManyToOne + ERef eref; + + + // test add & remove indices + @Index + @Size(max=127) + String indextest1; + + @Index(unique = true) + @Size(max=127) + String indextest2; + + @Size(max=127) + String indextest3; + + @Size(max=127) + String indextest4; + + @Index(unique = false) + @Size(max=127) + String indextest5; + + @Index(unique = true) + @Size(max=127) + String indextest6; + + @NotNull + int user_id; + + public EBasic() { + + } + + public EBasic(String name) { + this.name = name; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Status getStatus() { + return status; + } + + public void setStatus(Status status) { + this.status = status; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Timestamp getSomeDate() { + return someDate; + } + + public void setSomeDate(Timestamp someDate) { + this.someDate = someDate; + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/EEnum.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/EEnum.java new file mode 100644 index 000000000..f2db733e7 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/EEnum.java @@ -0,0 +1,29 @@ +package misc.migration.v1_0; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import io.ebean.annotation.EnumValue; + +@Entity +@Table(name = "migtest_e_enum") +public class EEnum { + + public enum Status { + @EnumValue("N") + NEW, + + @EnumValue("A") + ACTIVE, + + @EnumValue("I") + INACTIVE, + } + + @Id + Integer id; + + Status testStatus; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/EHistory.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/EHistory.java new file mode 100644 index 000000000..fe0bcdfe9 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/EHistory.java @@ -0,0 +1,17 @@ +package misc.migration.v1_0; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_e_history") +public class EHistory { + + @Id + Integer id; + + + String testString; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/EHistory2.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/EHistory2.java new file mode 100644 index 000000000..d8c76df75 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/EHistory2.java @@ -0,0 +1,26 @@ +package misc.migration.v1_0; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import io.ebean.annotation.History; +import io.ebean.annotation.HistoryExclude; + +@Entity +@Table(name = "migtest_e_history2") +@History +public class EHistory2 { + + @Id + Integer id; + + + String testString; + + @HistoryExclude + String obsoleteString1; + + String obsoleteString2; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/EHistory3.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/EHistory3.java new file mode 100644 index 000000000..b5e41db5d --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/EHistory3.java @@ -0,0 +1,21 @@ +package misc.migration.v1_0; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import io.ebean.annotation.History; + + +@Entity +@Table(name = "migtest_e_history3") +@History +public class EHistory3 { + + @Id + Integer id; + + String testString; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/EHistory4.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/EHistory4.java new file mode 100644 index 000000000..aba167995 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/EHistory4.java @@ -0,0 +1,21 @@ +package misc.migration.v1_0; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import io.ebean.annotation.History; + + +@Entity +@Table(name = "migtest_e_history4") +@History +public class EHistory4 { + + @Id + Integer id; + + Integer testNumber; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/EHistory5.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/EHistory5.java new file mode 100644 index 000000000..133a00c3d --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/EHistory5.java @@ -0,0 +1,21 @@ +package misc.migration.v1_0; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import io.ebean.annotation.History; + + +@Entity +@Table(name = "migtest_e_history5") +@History +public class EHistory5 { + + @Id + Integer id; + + Integer testNumber; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/EHistory6.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/EHistory6.java new file mode 100644 index 000000000..c95eb7796 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/EHistory6.java @@ -0,0 +1,24 @@ +package misc.migration.v1_0; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import io.ebean.annotation.History; +import io.ebean.annotation.NotNull; + + +@Entity +@Table(name = "migtest_e_history6") +@History +public class EHistory6 { + + @Id + Integer id; + + Integer testNumber1; + + @NotNull + Integer testNumber2; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/ERef.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/ERef.java new file mode 100644 index 000000000..f4cfdf875 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/ERef.java @@ -0,0 +1,28 @@ +package misc.migration.v1_0; + +import java.util.List; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import javax.validation.constraints.Size; + +import io.ebean.annotation.Index; +import io.ebean.annotation.NotNull; + +@Entity +@Table(name = "migtest_e_ref") +public class ERef { + + @Id + Integer id; + + @OneToMany + List basics; + + @NotNull + @Index(unique = true) + @Size(max=127) + String name; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/ESoftdelete.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/ESoftdelete.java new file mode 100644 index 000000000..58d9a0af0 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/ESoftdelete.java @@ -0,0 +1,17 @@ +package misc.migration.v1_0; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_e_softdelete") +public class ESoftdelete { + + @Id + Integer id; + + + String testString; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/MtmChild.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/MtmChild.java new file mode 100644 index 000000000..c0f9f5918 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/MtmChild.java @@ -0,0 +1,34 @@ +package misc.migration.v1_0; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_mtm_c") +public class MtmChild { + + @Id + Integer id; + + String name; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/MtmMaster.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/MtmMaster.java new file mode 100644 index 000000000..87b23387c --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/MtmMaster.java @@ -0,0 +1,32 @@ +package misc.migration.v1_0; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_mtm_m") +public class MtmMaster { + + @Id + Long id; + + String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/OtoChild.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/OtoChild.java new file mode 100644 index 000000000..23bc8f569 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/OtoChild.java @@ -0,0 +1,39 @@ +package misc.migration.v1_0; + +import io.ebean.annotation.Index; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import static io.ebean.annotation.Platform.POSTGRES; + +@Index(platforms = POSTGRES, name = "idxd_migtest_0", definition = "create index idxd_migtest_0 on migtest_oto_child using hash (upper(name)) where upper(name) = 'JIM'") +@Index(platforms = POSTGRES, columnNames = {"lower(name)","id"}, concurrent = true) +@Index(platforms = POSTGRES, columnNames = "lower(name)") +@Entity +@Table(name = "migtest_oto_child") +public class OtoChild { + + @Id + Integer id; + + String name; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_0/OtoMaster.java b/ebean-ddlgen/src/test/java/misc/migration/v1_0/OtoMaster.java new file mode 100644 index 000000000..770c3e754 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_0/OtoMaster.java @@ -0,0 +1,32 @@ +package misc.migration.v1_0; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_oto_master") +public class OtoMaster { + + @Id + Long id; + + String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/CKeyAssoc.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/CKeyAssoc.java new file mode 100644 index 000000000..847ddc32c --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/CKeyAssoc.java @@ -0,0 +1,32 @@ +package misc.migration.v1_1; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_ckey_assoc") +public class CKeyAssoc { + + @Id + Integer id; + + String assocOne; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getAssocOne() { + return assocOne; + } + + public void setAssocOne(String assocOne) { + this.assocOne = assocOne; + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/CKeyDetail.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/CKeyDetail.java new file mode 100644 index 000000000..2b8655c0b --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/CKeyDetail.java @@ -0,0 +1,57 @@ +package misc.migration.v1_1; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_ckey_detail") +public class CKeyDetail { + + @Id + Integer id; + + String something; + + @ManyToOne +// @JoinColumns({ +// @JoinColumn(name="parent_one_key", referencedColumnName="one_key"), +// @JoinColumn(name="parent_two_key", referencedColumnName="two_key") +// }) + CKeyParent parent; + + public CKeyDetail() { + + } + + public CKeyDetail(String something) { + this.something = something; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getSomething() { + return something; + } + + public void setSomething(String something) { + this.something = something; + } + + public CKeyParent getParent() { + return parent; + } + + public void setParent(CKeyParent parent) { + this.parent = parent; + } + + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/CKeyParent.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/CKeyParent.java new file mode 100644 index 000000000..e331399ed --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/CKeyParent.java @@ -0,0 +1,78 @@ +package misc.migration.v1_1; + +import javax.persistence.CascadeType; +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import javax.persistence.Version; +import java.util.ArrayList; +import java.util.List; + +@Entity +@Table(name = "migtest_ckey_parent") +public class CKeyParent { + + @EmbeddedId + CKeyParentId id; + + String name; + + @Version + int version; + + @ManyToOne(cascade = CascadeType.PERSIST) + CKeyAssoc assoc; + + @OneToMany(cascade = CascadeType.PERSIST, mappedBy = "parent") + List details; + + public CKeyParentId getId() { + return id; + } + + public void setId(CKeyParentId id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getVersion() { + return version; + } + + public void setVersion(int version) { + this.version = version; + } + + public CKeyAssoc getAssoc() { + return assoc; + } + + public void setAssoc(CKeyAssoc assoc) { + this.assoc = assoc; + } + + public List getDetails() { + return details; + } + + public void setDetails(List details) { + this.details = details; + } + + public void add(CKeyDetail detail) { + if (details == null) { + details = new ArrayList<>(); + } + details.add(detail); + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/CKeyParentId.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/CKeyParentId.java new file mode 100644 index 000000000..4d2723166 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/CKeyParentId.java @@ -0,0 +1,59 @@ +package misc.migration.v1_1; + +import javax.persistence.Embeddable; +import javax.validation.constraints.Size; + +@Embeddable +public class CKeyParentId { + + Integer oneKey; + + @Size(max=127) + String twoKey; + + public CKeyParentId() { + + } + + public CKeyParentId(Integer oneKey, String twoKey) { + this.oneKey = oneKey; + this.twoKey = twoKey; + } + + public Integer getOneKey() { + return oneKey; + } + + public void setOneKey(Integer oneKey) { + this.oneKey = oneKey; + } + + public String getTwoKey() { + return twoKey; + } + + public void setTwoKey(String twoKey) { + this.twoKey = twoKey; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof CKeyParentId)) { + return false; + } + + CKeyParentId otherKey = (CKeyParentId) o; + return otherKey.hashCode() == hashCode(); + } + + @Override + public int hashCode() { + int hc = getClass().getName().hashCode(); + hc = 31 * hc + oneKey; + hc = 31 * hc + twoKey.hashCode(); + return hc; + } +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/DfkCascade.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/DfkCascade.java new file mode 100644 index 000000000..22f1c88f8 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/DfkCascade.java @@ -0,0 +1,22 @@ +package misc.migration.v1_1; + +import io.ebean.annotation.ConstraintMode; +import io.ebean.annotation.DbForeignKey; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_fk_cascade") +public class DfkCascade { + + @Id + long id; + + @ManyToOne + @DbForeignKey(onDelete = ConstraintMode.RESTRICT) + DfkCascadeOne one; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/DfkCascadeOne.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/DfkCascadeOne.java new file mode 100644 index 000000000..07a523039 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/DfkCascadeOne.java @@ -0,0 +1,21 @@ +package misc.migration.v1_1; + +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; + +import java.util.List; + +@Entity +@Table(name = "migtest_fk_cascade_one") +public class DfkCascadeOne { + + @Id + long id; + + @OneToMany(mappedBy = "one", cascade = CascadeType.ALL) + List details; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/DfkNone.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/DfkNone.java new file mode 100644 index 000000000..16129121f --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/DfkNone.java @@ -0,0 +1,21 @@ +package misc.migration.v1_1; + +import io.ebean.annotation.DbForeignKey; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + + +@Entity +@Table(name = "migtest_fk_none") +public class DfkNone { + + @Id + long id; + + @ManyToOne + @DbForeignKey(noConstraint = false) + DfkOne one; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/DfkNoneViaJoin.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/DfkNoneViaJoin.java new file mode 100644 index 000000000..dae77dd67 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/DfkNoneViaJoin.java @@ -0,0 +1,22 @@ +package misc.migration.v1_1; + +import javax.persistence.ConstraintMode; +import javax.persistence.Entity; +import javax.persistence.ForeignKey; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_fk_none_via_join") +public class DfkNoneViaJoin { + + @Id + long id; + + @ManyToOne + @JoinColumn(name = "one_id", foreignKey = @ForeignKey(ConstraintMode.CONSTRAINT)) + DfkOne one; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/DfkOne.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/DfkOne.java new file mode 100644 index 000000000..eb04c6d64 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/DfkOne.java @@ -0,0 +1,13 @@ +package misc.migration.v1_1; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_fk_one") +public class DfkOne { + + @Id + long id; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/DfkSetNull.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/DfkSetNull.java new file mode 100644 index 000000000..be199b097 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/DfkSetNull.java @@ -0,0 +1,22 @@ +package misc.migration.v1_1; + +import io.ebean.annotation.ConstraintMode; +import io.ebean.annotation.DbForeignKey; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_fk_set_null") +public class DfkSetNull { + + @Id + long id; + + @ManyToOne + @DbForeignKey(onDelete = ConstraintMode.RESTRICT) + DfkOne one; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/EBasic.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/EBasic.java new file mode 100644 index 000000000..9e5b1742d --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/EBasic.java @@ -0,0 +1,175 @@ +package misc.migration.v1_1; + +import io.ebean.annotation.DbDefault; +import io.ebean.annotation.DbMigration; +import io.ebean.annotation.EnumValue; +import io.ebean.annotation.Index; +import io.ebean.annotation.NotNull; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Table; +import javax.validation.constraints.Size; + +import java.sql.Timestamp; + +@Entity +@Table(name = "migtest_e_basic") +@Index(columnNames = { "status" , "indextest1"}, unique = true) +public class EBasic { + + public enum Status { + @EnumValue("N") + NEW, + + @EnumValue("A") + ACTIVE, + + @EnumValue("I") + INACTIVE, + + @EnumValue("?") + DONT_KNOW, + } + + public enum Progress { + @EnumValue("0") + START, + + @EnumValue("1") + RUN, + + @EnumValue("2") + END + } + + @Id + Integer id; + + @NotNull + @DbDefault("A") + Status status; + + @Size(max=127) + String status2; + + @Index(unique = true) + @Size(max=127) + String name; + + + @DbMigration(preAlter = "-- rename all collisions") + @Column(unique = true) + @Size(max=127) + String description; + + //@NotNull + //@DbDefault("2000-01-01T00:00:00") //- date time literals do not work for each platform yet + //@DbDefault("now") //- now does not work for mariaDb + // MariaDb requires: ALTER TABLE `migtest_e_basic` CHANGE `some_date` `some_date` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP; + Timestamp someDate; + + @NotNull + @DbDefault("foo'bar") + String newStringField; + + @NotNull + @DbDefault("true") + @DbMigration(postAdd = "update ${table} set ${column} = old_boolean") + Boolean newBooleanField; + + @NotNull + @DbDefault("true") + boolean newBooleanField2; + + @Size(max=127) + String indextest1; + + @Size(max=127) + String indextest2; + + @Index + @Size(max=127) + String indextest3; + + @Index(unique = true) + @Size(max=127) + String indextest4; + + @Index(unique = true) + @Size(max=127) + String indextest5; + + @Index(unique = false) + @Size(max=127) + String indextest6; + + @NotNull + @DbDefault("0") + Progress progress; + + @DbDefault("42") + int newInteger; + + @ManyToOne + @DbMigration(preAlter= "insert into migtest_e_user (id) select distinct user_id from migtest_e_basic") // ensure all users exist + EUser user; + + public EBasic() { + + } + + public EBasic(String name) { + this.name = name; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Status getStatus() { + return status; + } + + public void setStatus(Status status) { + this.status = status; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Timestamp getSomeDate() { + return someDate; + } + + public void setSomeDate(Timestamp someDate) { + this.someDate = someDate; + } + + public String getNewStringField() { + return newStringField; + } + + public void setNewStringField(String newStringField) { + this.newStringField = newStringField; + } +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/EEnum.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/EEnum.java new file mode 100644 index 000000000..577ede01d --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/EEnum.java @@ -0,0 +1,18 @@ +package misc.migration.v1_1; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; +import javax.validation.constraints.Size; + +@Entity +@Table(name = "migtest_e_enum") +public class EEnum { + + @Id + Integer id; + + @Size (max = 1) + String testStatus; // change to String from Enum Status +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/EHistory.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/EHistory.java new file mode 100644 index 000000000..9cad6715c --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/EHistory.java @@ -0,0 +1,26 @@ +package misc.migration.v1_1; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import io.ebean.annotation.Platform; +import io.ebean.annotation.DbComment; +import io.ebean.annotation.DbMigration; +import io.ebean.annotation.History; + +@Entity +@Table(name = "migtest_e_history") +@History +@DbComment("We have history now") +public class EHistory { + + @Id + Integer id; + + @DbComment("Column altered to long now") + @DbMigration(platforms = Platform.POSTGRES, + preAlter = "alter table ${table} alter column ${column} TYPE bigint USING (${column}::integer)") + Long testString; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/EHistory2.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/EHistory2.java new file mode 100644 index 000000000..7b05d9fe7 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/EHistory2.java @@ -0,0 +1,35 @@ +package misc.migration.v1_1; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; +import javax.validation.constraints.Size; + +import io.ebean.annotation.DbDefault; +import io.ebean.annotation.History; +import io.ebean.annotation.HistoryExclude; +import io.ebean.annotation.NotNull; + +@Entity +@Table(name = "migtest_e_history2") +@History +public class EHistory2 { + + @Id + Integer id; + + @NotNull + @DbDefault("unknown") + String testString; + + @HistoryExclude + String testString2; + + @NotNull + @DbDefault("unknown") + String testString3; + + @Size(max = 20) + String newColumn; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/EHistory3.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/EHistory3.java new file mode 100644 index 000000000..a3756572a --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/EHistory3.java @@ -0,0 +1,23 @@ +package misc.migration.v1_1; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import io.ebean.annotation.History; +import io.ebean.annotation.HistoryExclude; + + +@Entity +@Table(name = "migtest_e_history3") +@History +public class EHistory3 { + + @Id + Integer id; + + @HistoryExclude + String testString; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/EHistory4.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/EHistory4.java new file mode 100644 index 000000000..ba5628390 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/EHistory4.java @@ -0,0 +1,21 @@ +package misc.migration.v1_1; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import io.ebean.annotation.History; + + +@Entity +@Table(name = "migtest_e_history4") +@History +public class EHistory4 { + + @Id + Integer id; + + Long testNumber; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/EHistory5.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/EHistory5.java new file mode 100644 index 000000000..9bb9aba0b --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/EHistory5.java @@ -0,0 +1,27 @@ +package misc.migration.v1_1; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import io.ebean.annotation.DbDefault; +import io.ebean.annotation.History; +import io.ebean.annotation.NotNull; + + +@Entity +@Table(name = "migtest_e_history5") +@History +public class EHistory5 { + + @Id + Integer id; + + Integer testNumber; + + @NotNull + @DbDefault("false") + Boolean testBoolean; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/EHistory6.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/EHistory6.java new file mode 100644 index 000000000..c05f51a15 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/EHistory6.java @@ -0,0 +1,27 @@ +package misc.migration.v1_1; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import io.ebean.annotation.DbDefault; +import io.ebean.annotation.History; +import io.ebean.annotation.NotNull; + + +@Entity +@Table(name = "migtest_e_history6") +@History +public class EHistory6 { + + @Id + Integer id; + + @NotNull + @DbDefault("42") + Integer testNumber1; + + + Integer testNumber2; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/ESoftdelete.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/ESoftdelete.java new file mode 100644 index 000000000..3213ddcd3 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/ESoftdelete.java @@ -0,0 +1,22 @@ +package misc.migration.v1_1; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import io.ebean.annotation.SoftDelete; + +@Entity +@Table(name = "migtest_e_softdelete") +public class ESoftdelete { + + @Id + Integer id; + + + String testString; + + @SoftDelete + boolean deleted; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/EUser.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/EUser.java new file mode 100644 index 000000000..42b901033 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/EUser.java @@ -0,0 +1,13 @@ +package misc.migration.v1_1; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_e_user") +public class EUser { + + @Id + Integer id; +} \ No newline at end of file diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/MtmChild.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/MtmChild.java new file mode 100644 index 000000000..7cf239f91 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/MtmChild.java @@ -0,0 +1,45 @@ +package misc.migration.v1_1; + +import java.util.List; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToMany; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_mtm_c") +public class MtmChild { + + @Id + Integer id; + + String name; + + @ManyToMany + List masters; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getMasters() { + return masters; + } + + public void setMasters(List masters) { + this.masters = masters; + } +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/MtmMaster.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/MtmMaster.java new file mode 100644 index 000000000..067d396dc --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/MtmMaster.java @@ -0,0 +1,46 @@ +package misc.migration.v1_1; + +import java.util.List; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToMany; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_mtm_m") +public class MtmMaster { + + @Id + Long id; + + String name; + + @ManyToMany + List children; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/OtoChild.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/OtoChild.java new file mode 100644 index 000000000..dd42d0771 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/OtoChild.java @@ -0,0 +1,49 @@ +package misc.migration.v1_1; + +import io.ebean.annotation.Index; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToOne; +import javax.persistence.Table; + +import static io.ebean.annotation.Platform.POSTGRES; + +@Index(columnNames = "name", platforms = POSTGRES) +@Entity +@Table(name = "migtest_oto_child") +public class OtoChild { + + @Id + Integer id; + + String name; + + @OneToOne + OtoMaster master; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public OtoMaster getMaster() { + return master; + } + + public void setMaster(OtoMaster master) { + this.master = master; + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_1/OtoMaster.java b/ebean-ddlgen/src/test/java/misc/migration/v1_1/OtoMaster.java new file mode 100644 index 000000000..f44bbaa9d --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_1/OtoMaster.java @@ -0,0 +1,45 @@ +package misc.migration.v1_1; + +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_oto_master") +public class OtoMaster { + + @Id + Long id; + + String name; + + @OneToOne(cascade = CascadeType.ALL, mappedBy = "master") + OtoChild child; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public OtoChild getChild() { + return child; + } + + public void setChild(OtoChild child) { + this.child = child; + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/CKeyAssoc.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/CKeyAssoc.java new file mode 100644 index 000000000..351bb3ca7 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/CKeyAssoc.java @@ -0,0 +1,32 @@ +package misc.migration.v1_2; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_ckey_assoc") +public class CKeyAssoc { + + @Id + Integer id; + + String assocOne; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getAssocOne() { + return assocOne; + } + + public void setAssocOne(String assocOne) { + this.assocOne = assocOne; + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/CKeyDetail.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/CKeyDetail.java new file mode 100644 index 000000000..c02288f0a --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/CKeyDetail.java @@ -0,0 +1,41 @@ +package misc.migration.v1_2; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_ckey_detail") +public class CKeyDetail { + + @Id + Integer id; + + String something; + + + public CKeyDetail() { + + } + + public CKeyDetail(String something) { + this.something = something; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getSomething() { + return something; + } + + public void setSomething(String something) { + this.something = something; + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/CKeyParent.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/CKeyParent.java new file mode 100644 index 000000000..7c44a42dc --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/CKeyParent.java @@ -0,0 +1,44 @@ +package misc.migration.v1_2; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.Table; +import javax.persistence.Version; + +@Entity +@Table(name = "migtest_ckey_parent") +public class CKeyParent { + + @EmbeddedId + CKeyParentId id; + + String name; + + @Version + int version; + + public CKeyParentId getId() { + return id; + } + + public void setId(CKeyParentId id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getVersion() { + return version; + } + + public void setVersion(int version) { + this.version = version; + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/CKeyParentId.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/CKeyParentId.java new file mode 100644 index 000000000..a2f42926b --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/CKeyParentId.java @@ -0,0 +1,59 @@ +package misc.migration.v1_2; + +import javax.persistence.Embeddable; +import javax.validation.constraints.Size; + +@Embeddable +public class CKeyParentId { + + Integer oneKey; + + @Size(max=127) + String twoKey; + + public CKeyParentId() { + + } + + public CKeyParentId(Integer oneKey, String twoKey) { + this.oneKey = oneKey; + this.twoKey = twoKey; + } + + public Integer getOneKey() { + return oneKey; + } + + public void setOneKey(Integer oneKey) { + this.oneKey = oneKey; + } + + public String getTwoKey() { + return twoKey; + } + + public void setTwoKey(String twoKey) { + this.twoKey = twoKey; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof CKeyParentId)) { + return false; + } + + CKeyParentId otherKey = (CKeyParentId) o; + return otherKey.hashCode() == hashCode(); + } + + @Override + public int hashCode() { + int hc = getClass().getName().hashCode(); + hc = 31 * hc + oneKey; + hc = 31 * hc + twoKey.hashCode(); + return hc; + } +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/DfkCascade.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/DfkCascade.java new file mode 100644 index 000000000..31f91eb2a --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/DfkCascade.java @@ -0,0 +1,22 @@ +package misc.migration.v1_2; + +import io.ebean.annotation.ConstraintMode; +import io.ebean.annotation.DbForeignKey; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_fk_cascade") +public class DfkCascade { + + @Id + long id; + + @ManyToOne + @DbForeignKey(onDelete = ConstraintMode.CASCADE) + DfkCascadeOne one; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/DfkCascadeOne.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/DfkCascadeOne.java new file mode 100644 index 000000000..8cdb2a38a --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/DfkCascadeOne.java @@ -0,0 +1,21 @@ +package misc.migration.v1_2; + +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; + +import java.util.List; + +@Entity +@Table(name = "migtest_fk_cascade_one") +public class DfkCascadeOne { + + @Id + long id; + + @OneToMany(mappedBy = "one", cascade = CascadeType.ALL) + List details; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/DfkNone.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/DfkNone.java new file mode 100644 index 000000000..4bc65eb4d --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/DfkNone.java @@ -0,0 +1,21 @@ +package misc.migration.v1_2; + +import io.ebean.annotation.DbForeignKey; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + + +@Entity +@Table(name = "migtest_fk_none") +public class DfkNone { + + @Id + long id; + + @ManyToOne + @DbForeignKey(noConstraint = true) + DfkOne one; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/DfkNoneViaJoin.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/DfkNoneViaJoin.java new file mode 100644 index 000000000..809b17f76 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/DfkNoneViaJoin.java @@ -0,0 +1,22 @@ +package misc.migration.v1_2; + +import javax.persistence.ConstraintMode; +import javax.persistence.Entity; +import javax.persistence.ForeignKey; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_fk_none_via_join") +public class DfkNoneViaJoin { + + @Id + long id; + + @ManyToOne + @JoinColumn(name = "one_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) + DfkOne one; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/DfkOne.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/DfkOne.java new file mode 100644 index 000000000..f1141d186 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/DfkOne.java @@ -0,0 +1,13 @@ +package misc.migration.v1_2; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_fk_one") +public class DfkOne { + + @Id + long id; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/DfkSetNull.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/DfkSetNull.java new file mode 100644 index 000000000..01b643c99 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/DfkSetNull.java @@ -0,0 +1,22 @@ +package misc.migration.v1_2; + +import io.ebean.annotation.ConstraintMode; +import io.ebean.annotation.DbForeignKey; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_fk_set_null") +public class DfkSetNull { + + @Id + long id; + + @ManyToOne + @DbForeignKey(onDelete = ConstraintMode.SET_NULL) + DfkOne one; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/EBasic.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/EBasic.java new file mode 100644 index 000000000..eb2a16d9e --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/EBasic.java @@ -0,0 +1,131 @@ +package misc.migration.v1_2; + +import io.ebean.annotation.DbDefault; +import io.ebean.annotation.EnumValue; +import io.ebean.annotation.Index; +import io.ebean.annotation.NotNull; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Table; +import javax.validation.constraints.Size; + +import java.sql.Timestamp; + +@Entity +@Table(name = "migtest_e_basic") +public class EBasic { + + public enum Status { + @EnumValue("N") + NEW, + + @EnumValue("A") + ACTIVE, + + @EnumValue("I") + INACTIVE, + } + + @Id + Integer id; + + Status status; + + @DbDefault("N") + @NotNull + Status status2; + + @Size(max=127) + String name; + + @Size(max=127) + String description; + + Timestamp someDate; + + boolean old_boolean; + + Boolean old_boolean2; + + @ManyToOne + ERef eref; + + + // test add & remove indices + @Index + @Size(max=127) + String indextest1; + + @Index(unique = true) + @Size(max=127) + String indextest2; + + @Size(max=127) + String indextest3; + + @Size(max=127) + String indextest4; + + @Index(unique = false) + @Size(max=127) + String indextest5; + + @Index(unique = true) + @Size(max=127) + String indextest6; + + @NotNull + @DbDefault("23") + int user_id; + + public EBasic() { + + } + + public EBasic(String name) { + this.name = name; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Status getStatus() { + return status; + } + + public void setStatus(Status status) { + this.status = status; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Timestamp getSomeDate() { + return someDate; + } + + public void setSomeDate(Timestamp someDate) { + this.someDate = someDate; + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/EEnum.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/EEnum.java new file mode 100644 index 000000000..26f2a5d31 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/EEnum.java @@ -0,0 +1,29 @@ +package misc.migration.v1_2; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import io.ebean.annotation.EnumValue; + +@Entity +@Table(name = "migtest_e_enum") +public class EEnum { + + public enum Status { + @EnumValue("N") + NEW, + + @EnumValue("A") + ACTIVE, + + @EnumValue("I") + INACTIVE, + } + + @Id + Integer id; + + Status testStatus; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/EHistory.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/EHistory.java new file mode 100644 index 000000000..0e166625c --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/EHistory.java @@ -0,0 +1,17 @@ +package misc.migration.v1_2; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_e_history") +public class EHistory { + + @Id + Integer id; + + + Long testString; // keep it as long as history prevents altering +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/EHistory2.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/EHistory2.java new file mode 100644 index 000000000..18a2c17fe --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/EHistory2.java @@ -0,0 +1,26 @@ +package misc.migration.v1_2; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import io.ebean.annotation.History; +import io.ebean.annotation.HistoryExclude; + +@Entity +@Table(name = "migtest_e_history2") +@History +public class EHistory2 { + + @Id + Integer id; + + + String testString; + + @HistoryExclude + String obsoleteString1; + + String obsoleteString2; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/EHistory3.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/EHistory3.java new file mode 100644 index 000000000..f945e6e7b --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/EHistory3.java @@ -0,0 +1,21 @@ +package misc.migration.v1_2; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import io.ebean.annotation.History; + + +@Entity +@Table(name = "migtest_e_history3") +@History +public class EHistory3 { + + @Id + Integer id; + + String testString; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/EHistory4.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/EHistory4.java new file mode 100644 index 000000000..083928e5c --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/EHistory4.java @@ -0,0 +1,21 @@ +package misc.migration.v1_2; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import io.ebean.annotation.History; + + +@Entity +@Table(name = "migtest_e_history4") +@History +public class EHistory4 { + + @Id + Integer id; + + Integer testNumber; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/EHistory5.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/EHistory5.java new file mode 100644 index 000000000..9de9206a0 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/EHistory5.java @@ -0,0 +1,21 @@ +package misc.migration.v1_2; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import io.ebean.annotation.History; + + +@Entity +@Table(name = "migtest_e_history5") +@History +public class EHistory5 { + + @Id + Integer id; + + Integer testNumber; + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/EHistory6.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/EHistory6.java new file mode 100644 index 000000000..1d886ccb2 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/EHistory6.java @@ -0,0 +1,26 @@ +package misc.migration.v1_2; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import io.ebean.annotation.DbDefault; +import io.ebean.annotation.History; +import io.ebean.annotation.NotNull; + + +@Entity +@Table(name = "migtest_e_history6") +@History +public class EHistory6 { + + @Id + Integer id; + + Integer testNumber1; + + @NotNull + @DbDefault("7") + Integer testNumber2; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/ERef.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/ERef.java new file mode 100644 index 000000000..df16ba21c --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/ERef.java @@ -0,0 +1,28 @@ +package misc.migration.v1_2; + +import java.util.List; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import javax.validation.constraints.Size; + +import io.ebean.annotation.Index; +import io.ebean.annotation.NotNull; + +@Entity +@Table(name = "migtest_e_ref") +public class ERef { + + @Id + Integer id; + + @OneToMany + List basics; + + @NotNull + @Index(unique = true) + @Size(max=127) + String name; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/ESoftdelete.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/ESoftdelete.java new file mode 100644 index 000000000..5987135e3 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/ESoftdelete.java @@ -0,0 +1,17 @@ +package misc.migration.v1_2; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_e_softdelete") +public class ESoftdelete { + + @Id + Integer id; + + + String testString; +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/MtmChild.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/MtmChild.java new file mode 100644 index 000000000..de83d8194 --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/MtmChild.java @@ -0,0 +1,34 @@ +package misc.migration.v1_2; + + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_mtm_c") +public class MtmChild { + + @Id + Integer id; + + String name; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/MtmMaster.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/MtmMaster.java new file mode 100644 index 000000000..a1e5e41cf --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/MtmMaster.java @@ -0,0 +1,32 @@ +package misc.migration.v1_2; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "migtest_mtm_m") +public class MtmMaster { + + @Id + Long id; + + String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/OtoChild.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/OtoChild.java new file mode 100644 index 000000000..39b298d8b --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/OtoChild.java @@ -0,0 +1,42 @@ +package misc.migration.v1_2; + +import io.ebean.annotation.Index; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import static io.ebean.annotation.Platform.MYSQL; +import static io.ebean.annotation.Platform.POSTGRES; + +@Index(name = "ix_m12_otoc71", columnNames = "name", platforms = {POSTGRES}) +@Index(name = "ix_m12_otoc72", columnNames = "name", platforms = {MYSQL}) +@Index(unique = true, name = "uq_m12_otoc71", columnNames = "lower(name)", platforms = {POSTGRES}) +@Index(unique = true, name = "uq_m12_otoc72", columnNames = "name", platforms = {MYSQL}) +@Index(columnNames = "name", platforms = POSTGRES) +@Entity +@Table(name = "migtest_oto_child") +public class OtoChild { + + @Id + Integer id; + + String name; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/ebean-ddlgen/src/test/java/misc/migration/v1_2/OtoMaster.java b/ebean-ddlgen/src/test/java/misc/migration/v1_2/OtoMaster.java new file mode 100644 index 000000000..ef7f78cba --- /dev/null +++ b/ebean-ddlgen/src/test/java/misc/migration/v1_2/OtoMaster.java @@ -0,0 +1,40 @@ +package misc.migration.v1_2; + +import io.ebean.annotation.Index; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import static io.ebean.annotation.Platform.MYSQL; +import static io.ebean.annotation.Platform.POSTGRES; + +@Index(columnNames = "name", platforms = {MYSQL}) +@Index(unique = true, columnNames = "lower(name)", platforms = {POSTGRES}) +@Index(unique = true, columnNames = "name", platforms = {MYSQL}) +@Entity +@Table(name = "migtest_oto_master") +public class OtoMaster { + + @Id + Long id; + + String name; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/ebean-ddlgen/src/test/java/org/tests/inheritance/company/domain/AbstractBar.java b/ebean-ddlgen/src/test/java/org/tests/inheritance/company/domain/AbstractBar.java new file mode 100644 index 000000000..0f580744a --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/inheritance/company/domain/AbstractBar.java @@ -0,0 +1,61 @@ +package org.tests.inheritance.company.domain; + +import javax.persistence.DiscriminatorColumn; +import javax.persistence.DiscriminatorType; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; +import javax.persistence.Version; + +/** + * @author Per-Ingemar Andersson, It-huset i Norden AB + */ + +@Entity +@Table(name = "bar") +@Inheritance(strategy = InheritanceType.SINGLE_TABLE) +@DiscriminatorColumn(name = "bar_type", discriminatorType = DiscriminatorType.STRING) +//@MappedSuperclass +public abstract class AbstractBar { + + @Id + @GeneratedValue + private int barId; + + @ManyToOne(optional = false, fetch = FetchType.LAZY) + @JoinColumn(name = "foo_id", nullable = false) + private Foo foo; + + @Version + private int version; + + public void setBarId(int barId) { + this.barId = barId; + } + + public int getBarId() { + return barId; + } + + public Foo getFoo() { + return foo; + } + + public void setFoo(Foo foo) { + this.foo = foo; + } + + public int getVersion() { + return version; + } + + public void setVersion(int version) { + this.version = version; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/inheritance/company/domain/ConcreteBar.java b/ebean-ddlgen/src/test/java/org/tests/inheritance/company/domain/ConcreteBar.java new file mode 100644 index 000000000..b192290cf --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/inheritance/company/domain/ConcreteBar.java @@ -0,0 +1,12 @@ +package org.tests.inheritance.company.domain; + +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; + +/** + * @author Per-Ingemar Andersson, It-huset i Norden AB + */ +@Entity +@DiscriminatorValue("ConcreteBar") +public class ConcreteBar extends AbstractBar { +} diff --git a/ebean-ddlgen/src/test/java/org/tests/inheritance/company/domain/Foo.java b/ebean-ddlgen/src/test/java/org/tests/inheritance/company/domain/Foo.java new file mode 100644 index 000000000..8bc2dbf1a --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/inheritance/company/domain/Foo.java @@ -0,0 +1,47 @@ +package org.tests.inheritance.company.domain; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.Table; +import javax.persistence.Version; + +/** + * @author Per-Ingemar Andersson, It-huset i Norden AB + */ +@Entity +@Table(name = "foo") +public class Foo { + @Id + @GeneratedValue + private int fooId; + + private String importantText; + + @Version + private int version; + + public void setFooId(int fooId) { + this.fooId = fooId; + } + + public int getFooId() { + return fooId; + } + + public String getImportantText() { + return importantText; + } + + public void setImportantText(String importantText) { + this.importantText = importantText; + } + + public int getVersion() { + return version; + } + + public void setVersion(int version) { + this.version = version; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/inheritance/company/domain/TestInheritAbstract.java b/ebean-ddlgen/src/test/java/org/tests/inheritance/company/domain/TestInheritAbstract.java new file mode 100644 index 000000000..4e4e5b64a --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/inheritance/company/domain/TestInheritAbstract.java @@ -0,0 +1,52 @@ +package org.tests.inheritance.company.domain; + +import io.ebean.Ebean; +import io.ebean.EbeanServer; +import junit.framework.TestCase; +import org.junit.Assert; + +import java.util.List; + +public class TestInheritAbstract extends TestCase { + + public void testMe() { + + EbeanServer server = Ebean.getServer(null); + + List list0 = server.find(AbstractBar.class) + .findList(); + + Assert.assertNotNull(list0); + + List list1 = server.find(AbstractBar.class) + .fetch("foo", "importantText") + .findList(); + + Assert.assertNotNull(list1); + + Foo f = new Foo(); + f.setImportantText("blah"); + + server.save(f); + + ConcreteBar cb = new ConcreteBar(); + cb.setFoo(f); + server.save(cb); + + List list2 = server.find(AbstractBar.class) + .fetch("foo", "importantText") + .findList(); + + Assert.assertNotNull(list2); + Assert.assertTrue(!list2.isEmpty()); + + for (AbstractBar abstractBar : list2) { + Foo foo = abstractBar.getFoo(); + String importantText = foo.getImportantText(); + Assert.assertNotNull(importantText); + } + + + } + +} diff --git a/ebean-ddlgen/src/test/java/org/tests/inheritance/model/AbstractBaseClass.java b/ebean-ddlgen/src/test/java/org/tests/inheritance/model/AbstractBaseClass.java new file mode 100644 index 000000000..ae914d0c7 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/inheritance/model/AbstractBaseClass.java @@ -0,0 +1,16 @@ +package org.tests.inheritance.model; + +import javax.persistence.MappedSuperclass; + +@MappedSuperclass +public class AbstractBaseClass { + private String name; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/inheritance/model/CalculationResult.java b/ebean-ddlgen/src/test/java/org/tests/inheritance/model/CalculationResult.java new file mode 100644 index 000000000..9cde2d7f3 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/inheritance/model/CalculationResult.java @@ -0,0 +1,55 @@ +package org.tests.inheritance.model; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToOne; + +@Entity +public class CalculationResult { + + @Id + @Column(name = "id") + private Integer id; + + private double charge; + + @ManyToOne(cascade = CascadeType.PERSIST) + private ProductConfiguration productConfiguration; + + @ManyToOne(cascade = CascadeType.PERSIST) + private GroupConfiguration groupConfiguration; + + public double getCharge() { + return charge; + } + + public void setCharge(double charge) { + this.charge = charge; + } + + public ProductConfiguration getProductConfiguration() { + return productConfiguration; + } + + public void setProductConfiguration(ProductConfiguration productConfiguration) { + this.productConfiguration = productConfiguration; + } + + public GroupConfiguration getGroupConfiguration() { + return groupConfiguration; + } + + public void setGroupConfiguration(GroupConfiguration groupConfiguration) { + this.groupConfiguration = groupConfiguration; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/inheritance/model/Configuration.java b/ebean-ddlgen/src/test/java/org/tests/inheritance/model/Configuration.java new file mode 100644 index 000000000..b0363976d --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/inheritance/model/Configuration.java @@ -0,0 +1,50 @@ +package org.tests.inheritance.model; + +import io.ebean.annotation.Cache; +import io.ebean.annotation.ChangeLog; + +import javax.persistence.Column; +import javax.persistence.DiscriminatorColumn; +import javax.persistence.DiscriminatorType; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; +import javax.persistence.ManyToOne; + +@ChangeLog +@Entity +@Cache(enableQueryCache = true) +@Inheritance(strategy = InheritanceType.SINGLE_TABLE) +@DiscriminatorColumn(name = "type", discriminatorType = DiscriminatorType.STRING, columnDefinition = "varchar(21)") +public class Configuration extends AbstractBaseClass { + + @Id + @Column(name = "id") + private Integer id; + + + @ManyToOne + private Configurations configurations; + + + public Configuration() { + super(); + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Configurations getConfigurations() { + return configurations; + } + + public void setConfigurations(Configurations configurations) { + this.configurations = configurations; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/inheritance/model/Configurations.java b/ebean-ddlgen/src/test/java/org/tests/inheritance/model/Configurations.java new file mode 100644 index 000000000..7afed20a6 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/inheritance/model/Configurations.java @@ -0,0 +1,64 @@ +package org.tests.inheritance.model; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import java.util.List; + +@Entity +public class Configurations { + @Id + @Column(name = "id") + private Integer id; + + private String name; + + @OneToMany + private List groupConfigurations; + + @OneToMany + private List productConfigurations; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getGroupConfigurations() { + return groupConfigurations; + } + + public void setGroupConfigurations(List groupConfigurations) { + this.groupConfigurations = groupConfigurations; + } + + public void addGroupConfiguration(GroupConfiguration groupConfiguration) { + groupConfiguration.setConfigurations(this); + groupConfigurations.add(groupConfiguration); + } + + public List getProductConfigurations() { + return productConfigurations; + } + + public void setProductConfigurations(List productConfigurations) { + this.productConfigurations = productConfigurations; + } + + public void addProductConfiguration(ProductConfiguration productConfiguration) { + productConfiguration.setConfigurations(this); + productConfigurations.add(productConfiguration); + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/inheritance/model/GroupConfiguration.java b/ebean-ddlgen/src/test/java/org/tests/inheritance/model/GroupConfiguration.java new file mode 100644 index 000000000..e1b90aef4 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/inheritance/model/GroupConfiguration.java @@ -0,0 +1,40 @@ +package org.tests.inheritance.model; + +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; +import javax.persistence.OneToMany; +import java.util.List; + +@Entity +@DiscriminatorValue("2") +public class GroupConfiguration extends Configuration { + private String groupName; + + @OneToMany(mappedBy = "groupConfiguration") + private List results; + + public GroupConfiguration() { + super(); + } + + public GroupConfiguration(String name) { + super(); + this.groupName = name; + } + + public String getGroupName() { + return groupName; + } + + public void setGroupName(String groupName) { + this.groupName = groupName; + } + + public List getResults() { + return results; + } + + public void setResults(List results) { + this.results = results; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/inheritance/model/ProductConfiguration.java b/ebean-ddlgen/src/test/java/org/tests/inheritance/model/ProductConfiguration.java new file mode 100644 index 000000000..3ff22d7bb --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/inheritance/model/ProductConfiguration.java @@ -0,0 +1,35 @@ +package org.tests.inheritance.model; + +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; +import javax.persistence.OneToMany; +import java.util.List; + +@Entity +@DiscriminatorValue("1") +public class ProductConfiguration extends Configuration { + private String productName; + + @OneToMany(mappedBy = "productConfiguration") + private List results; + + public ProductConfiguration() { + super(); + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public List getResults() { + return results; + } + + public void setResults(List results) { + this.results = results; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/BaseModel.java b/ebean-ddlgen/src/test/java/org/tests/model/BaseModel.java new file mode 100644 index 000000000..da67d0375 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/BaseModel.java @@ -0,0 +1,59 @@ +package org.tests.model; + +import io.ebean.Model; +import io.ebean.annotation.WhenCreated; +import io.ebean.annotation.WhenModified; + +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; +import javax.persistence.Version; +import java.sql.Timestamp; + +@MappedSuperclass +public class BaseModel extends Model { + + @Id + Long id; + + @Version + Long version; + + @WhenCreated + Timestamp whenCreated; + + @WhenModified + Timestamp whenModified; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getVersion() { + return version; + } + + public void setVersion(Long version) { + this.version = version; + } + + public Timestamp getWhenCreated() { + return whenCreated; + } + + public void setWhenCreated(Timestamp whenCreated) { + this.whenCreated = whenCreated; + } + + public Timestamp getWhenModified() { + return whenModified; + } + + public void setWhenModified(Timestamp whenModified) { + this.whenModified = whenModified; + } + +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/basic/Address.java b/ebean-ddlgen/src/test/java/org/tests/model/basic/Address.java new file mode 100644 index 000000000..c1119456a --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/basic/Address.java @@ -0,0 +1,129 @@ +package org.tests.model.basic; + +import io.ebean.annotation.InvalidateQueryCache; +import org.tests.model.metaannotation.SizeMedium; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; +import javax.persistence.Version; +import javax.validation.constraints.Size; +import java.sql.Timestamp; + +/** + * Address entity bean. + */ +// Address is not L2 cached directly but it is joined to queries that are cached +// What InvalidateQueryCache means is that we propagate a table modification event +// when address is changed ... and cached queries that join to address will be +// invalidated accordingly. +@InvalidateQueryCache +@Entity +@Table(name = "o_address") +public class Address { + + @Id + Integer id; + + @Size(max = 100) + @Column(name = "line_1") + String line1; + + @SizeMedium + @Column(name = "line_2") + String line2; + + @SizeMedium + String city; + + Timestamp cretime; + + @Version + Timestamp updtime; + + /** + * Return id. + */ + public Integer getId() { + return id; + } + + /** + * Set id. + */ + public void setId(Integer id) { + this.id = id; + } + + /** + * Return line 1. + */ + public String getLine1() { + return line1; + } + + /** + * Set line 1. + */ + public void setLine1(String line1) { + this.line1 = line1; + } + + /** + * Return line 2. + */ + public String getLine2() { + return line2; + } + + /** + * Set line 2. + */ + public void setLine2(String line2) { + this.line2 = line2; + } + + /** + * Return city. + */ + public String getCity() { + return city; + } + + /** + * Set city. + */ + public void setCity(String city) { + this.city = city; + } + + /** + * Return cretime. + */ + public Timestamp getCretime() { + return cretime; + } + + /** + * Set cretime. + */ + public void setCretime(Timestamp cretime) { + this.cretime = cretime; + } + + /** + * Return updtime. + */ + public Timestamp getUpdtime() { + return updtime; + } + + /** + * Set updtime. + */ + public void setUpdtime(Timestamp updtime) { + this.updtime = updtime; + } + +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/basic/CKeyAssoc.java b/ebean-ddlgen/src/test/java/org/tests/model/basic/CKeyAssoc.java new file mode 100644 index 000000000..4a71909a8 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/basic/CKeyAssoc.java @@ -0,0 +1,30 @@ +package org.tests.model.basic; + +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class CKeyAssoc { + + @Id + Integer id; + + String assocOne; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getAssocOne() { + return assocOne; + } + + public void setAssocOne(String assocOne) { + this.assocOne = assocOne; + } + +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/basic/CKeyDetail.java b/ebean-ddlgen/src/test/java/org/tests/model/basic/CKeyDetail.java new file mode 100644 index 000000000..aed4a10b9 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/basic/CKeyDetail.java @@ -0,0 +1,55 @@ +package org.tests.model.basic; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.ManyToOne; + +@Entity +public class CKeyDetail { + + @Id + Integer id; + + String something; + + @ManyToOne +// @JoinColumns({ +// @JoinColumn(name="parent_one_key", referencedColumnName="one_key"), +// @JoinColumn(name="parent_two_key", referencedColumnName="two_key") +// }) + CKeyParent parent; + + public CKeyDetail() { + + } + + public CKeyDetail(String something) { + this.something = something; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getSomething() { + return something; + } + + public void setSomething(String something) { + this.something = something; + } + + public CKeyParent getParent() { + return parent; + } + + public void setParent(CKeyParent parent) { + this.parent = parent; + } + + +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/basic/CKeyParent.java b/ebean-ddlgen/src/test/java/org/tests/model/basic/CKeyParent.java new file mode 100644 index 000000000..36ef22ab8 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/basic/CKeyParent.java @@ -0,0 +1,79 @@ +package org.tests.model.basic; + +import io.ebean.annotation.Cache; + +import javax.persistence.CascadeType; +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Version; +import java.util.ArrayList; +import java.util.List; + +@Entity +@Cache +public class CKeyParent { + + @EmbeddedId + CKeyParentId id; + + String name; + + @Version + int version; + + @ManyToOne(cascade = CascadeType.PERSIST) + CKeyAssoc assoc; + + @OneToMany(cascade = CascadeType.PERSIST, mappedBy = "parent") + List details; + + public CKeyParentId getId() { + return id; + } + + public void setId(CKeyParentId id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getVersion() { + return version; + } + + public void setVersion(int version) { + this.version = version; + } + + public CKeyAssoc getAssoc() { + return assoc; + } + + public void setAssoc(CKeyAssoc assoc) { + this.assoc = assoc; + } + + public List getDetails() { + return details; + } + + public void setDetails(List details) { + this.details = details; + } + + public void add(CKeyDetail detail) { + if (details == null) { + details = new ArrayList<>(); + } + details.add(detail); + } + +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/basic/CKeyParentId.java b/ebean-ddlgen/src/test/java/org/tests/model/basic/CKeyParentId.java new file mode 100644 index 000000000..a0d8c828c --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/basic/CKeyParentId.java @@ -0,0 +1,58 @@ +package org.tests.model.basic; + +import javax.persistence.Embeddable; +import javax.validation.constraints.Size; + +@Embeddable +public class CKeyParentId { + + Integer oneKey; + @Size(max = 127) + String twoKey; + + public CKeyParentId() { + + } + + public CKeyParentId(Integer oneKey, String twoKey) { + this.oneKey = oneKey; + this.twoKey = twoKey; + } + + public Integer getOneKey() { + return oneKey; + } + + public void setOneKey(Integer oneKey) { + this.oneKey = oneKey; + } + + public String getTwoKey() { + return twoKey; + } + + public void setTwoKey(String twoKey) { + this.twoKey = twoKey; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof CKeyParentId)) { + return false; + } + + CKeyParentId otherKey = (CKeyParentId) o; + return otherKey.hashCode() == hashCode(); + } + + @Override + public int hashCode() { + int hc = getClass().getName().hashCode(); + hc = 31 * hc + oneKey; + hc = 31 * hc + twoKey.hashCode(); + return hc; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/basic/Person.java b/ebean-ddlgen/src/test/java/org/tests/model/basic/Person.java new file mode 100644 index 000000000..39496a703 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/basic/Person.java @@ -0,0 +1,71 @@ +package org.tests.model.basic; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.SequenceGenerator; +import javax.persistence.Table; +import java.io.Serializable; +import java.util.List; + +@Entity(name = "Person") +@Table(name = "PERSONS") +public class Person implements Serializable { + + private static final long serialVersionUID = 495045977245770183L; + + @Id + @GeneratedValue(strategy = javax.persistence.GenerationType.AUTO) + @SequenceGenerator(name = "PERSONS_SEQ", initialValue = 1000, allocationSize = 40) + @Column(name = "ID", unique = true, nullable = false) + private Long id; + + @Column(name = "SURNAME", nullable = false, unique = false, columnDefinition = "varchar(64)") + private String surname; + + @Column(name = "NAME", nullable = false, unique = false, columnDefinition = "varchar(64)") + private String name; + + @OneToMany(targetEntity = Phone.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "person") + private List phones; + + public Person() { + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getSurname() { + return surname; + } + + public void setSurname(String surname) { + this.surname = surname; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getPhones() { + return phones; + } + + public void setPhones(List phones) { + this.phones = phones; + } + +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/basic/Phone.java b/ebean-ddlgen/src/test/java/org/tests/model/basic/Phone.java new file mode 100644 index 000000000..3ba7b3ebe --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/basic/Phone.java @@ -0,0 +1,61 @@ +package org.tests.model.basic; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +@Entity(name = "Phone") +@Table(name = "PHONES") +public class Phone implements Serializable { + + private static final long serialVersionUID = -326610269092956952L; + + @Id + @GeneratedValue(strategy = javax.persistence.GenerationType.AUTO) + @Column(name = "id", unique = true, nullable = false) + private Long id; + + @Column(name = "phone_number", nullable = false, unique = true, columnDefinition = "varchar(7)") + private String phoneNumber; + + @ManyToOne(targetEntity = Person.class, cascade = CascadeType.ALL, fetch = FetchType.LAZY) + @JoinColumn(name = "person_id", nullable = false) + private Person person; + + public Phone() { + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getPhoneNumber() { + return phoneNumber; + } + + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + + @NotNull + public Person getPerson() { + return person; + } + + public void setPerson(Person person) { + this.person = person; + } + +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/basic/Truck.java b/ebean-ddlgen/src/test/java/org/tests/model/basic/Truck.java new file mode 100644 index 000000000..1c7778734 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/basic/Truck.java @@ -0,0 +1,66 @@ +package org.tests.model.basic; + +import io.ebean.annotation.DbEnumValue; + +import javax.persistence.Column; +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; +import javax.persistence.Inheritance; +import javax.persistence.ManyToOne; + +@Entity +@Inheritance +@DiscriminatorValue("T") +public class Truck extends Vehicle { + private static final long serialVersionUID = 9195535931523211134L; + + public enum Size { + SMALL("S"), + MEDIUM("M"), + LARGE("L"), + HUGE("H"); + + String value; + + Size(String value) { + this.value = value; + } + + @DbEnumValue(length = 3) + public String value() { + return value; + } + } + + @Column(name = "siz") + private Size size; + + @ManyToOne + TruckRef truckRef; + + private Double capacity; + + public Double getCapacity() { + return capacity; + } + + public void setCapacity(Double capacity) { + this.capacity = capacity; + } + + public TruckRef getTruckRef() { + return truckRef; + } + + public void setTruckRef(TruckRef truckRef) { + this.truckRef = truckRef; + } + + public Size getSize() { + return size; + } + + public void setSize(Size size) { + this.size = size; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/basic/TruckRef.java b/ebean-ddlgen/src/test/java/org/tests/model/basic/TruckRef.java new file mode 100644 index 000000000..56cbc171b --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/basic/TruckRef.java @@ -0,0 +1,30 @@ +package org.tests.model.basic; + +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class TruckRef { + + @Id + Integer id; + + String something; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getSomething() { + return something; + } + + public void setSomething(String something) { + this.something = something; + } + +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/basic/Vehicle.java b/ebean-ddlgen/src/test/java/org/tests/model/basic/Vehicle.java new file mode 100644 index 000000000..ae99a871a --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/basic/Vehicle.java @@ -0,0 +1,57 @@ +package org.tests.model.basic; + +import org.tests.model.BaseModel; + +import javax.persistence.DiscriminatorColumn; +import javax.persistence.Entity; +import javax.persistence.Inheritance; +import javax.persistence.ManyToOne; +import java.util.Date; + +@Entity +@Inheritance +@DiscriminatorColumn(length = 3) +public abstract class Vehicle extends BaseModel { + + private String licenseNumber; + + private Date registrationDate; + + // @Transient + private transient String testTransient; + + @ManyToOne + private VehicleLease lease; + + public String getLicenseNumber() { + return licenseNumber; + } + + public void setLicenseNumber(String licenseNumber) { + this.licenseNumber = licenseNumber; + } + + public Date getRegistrationDate() { + return registrationDate; + } + + public void setRegistrationDate(Date registrationDate) { + this.registrationDate = registrationDate; + } + + public String getTestTransient() { + return testTransient; + } + + public void setTestTransient(String testTransient) { + this.testTransient = testTransient; + } + + public VehicleLease getLease() { + return lease; + } + + public void setLease(VehicleLease lease) { + this.lease = lease; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/basic/VehicleDriver.java b/ebean-ddlgen/src/test/java/org/tests/model/basic/VehicleDriver.java new file mode 100644 index 000000000..cb28ad959 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/basic/VehicleDriver.java @@ -0,0 +1,56 @@ +package org.tests.model.basic; + +import org.tests.model.BaseModel; + +import javax.persistence.Entity; +import javax.persistence.ManyToOne; +import java.util.Date; + +@Entity +public class VehicleDriver extends BaseModel { + + private static final long serialVersionUID = 1L; + + private String name; + + @ManyToOne(optional = true) + private Vehicle vehicle; + + @ManyToOne(optional = true) + private Address address; + + private Date licenseIssuedOn; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Vehicle getVehicle() { + return vehicle; + } + + public void setVehicle(Vehicle vehicle) { + this.vehicle = vehicle; + } + + public Address getAddress() { + return address; + } + + public void setAddress(Address address) { + this.address = address; + } + + public Date getLicenseIssuedOn() { + return licenseIssuedOn; + } + + public void setLicenseIssuedOn(Date licenseIssuedOn) { + this.licenseIssuedOn = licenseIssuedOn; + } + +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/basic/VehicleLease.java b/ebean-ddlgen/src/test/java/org/tests/model/basic/VehicleLease.java new file mode 100644 index 000000000..1aa7b703d --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/basic/VehicleLease.java @@ -0,0 +1,64 @@ +package org.tests.model.basic; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Inheritance; +import javax.persistence.Version; +import java.time.LocalDate; + +@Entity +@Inheritance +public abstract class VehicleLease { + + @Id + long id; + + String name; + + LocalDate activeStart; + + LocalDate activeEnd; + + @Version + long version; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public long getVersion() { + return version; + } + + public void setVersion(long version) { + this.version = version; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public LocalDate getActiveStart() { + return activeStart; + } + + public void setActiveStart(LocalDate activeStart) { + this.activeStart = activeStart; + } + + public LocalDate getActiveEnd() { + return activeEnd; + } + + public void setActiveEnd(LocalDate activeEnd) { + this.activeEnd = activeEnd; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/basic/VehicleLeaseLong.java b/ebean-ddlgen/src/test/java/org/tests/model/basic/VehicleLeaseLong.java new file mode 100644 index 000000000..4af74793f --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/basic/VehicleLeaseLong.java @@ -0,0 +1,32 @@ +package org.tests.model.basic; + +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; +import javax.persistence.Inheritance; +import java.math.BigDecimal; + +@Entity +@Inheritance +@DiscriminatorValue("LONG") +public class VehicleLeaseLong extends VehicleLease { + + BigDecimal bond; + + int minDuration; + + public BigDecimal getBond() { + return bond; + } + + public void setBond(BigDecimal bond) { + this.bond = bond; + } + + public int getMinDuration() { + return minDuration; + } + + public void setMinDuration(int minDuration) { + this.minDuration = minDuration; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/basic/VehicleLeaseShort.java b/ebean-ddlgen/src/test/java/org/tests/model/basic/VehicleLeaseShort.java new file mode 100644 index 000000000..6e5ccbee5 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/basic/VehicleLeaseShort.java @@ -0,0 +1,33 @@ +package org.tests.model.basic; + +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; +import javax.persistence.Inheritance; +import java.math.BigDecimal; + +@Entity +@Inheritance +@DiscriminatorValue("SHORT") +public class VehicleLeaseShort extends VehicleLease { + + + BigDecimal dayRate; + + Integer maxDays; + + public BigDecimal getDayRate() { + return dayRate; + } + + public void setDayRate(BigDecimal dayRate) { + this.dayRate = dayRate; + } + + public Integer getMaxDays() { + return maxDays; + } + + public void setMaxDays(Integer maxDays) { + this.maxDays = maxDays; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/AuditInfo.java b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/AuditInfo.java new file mode 100644 index 000000000..4d3403519 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/AuditInfo.java @@ -0,0 +1,49 @@ +package org.tests.model.compositekeys; + +import javax.persistence.Embeddable; +import java.util.Date; + +@Embeddable +public class AuditInfo { + private Date lastUpdated; + private Date created; + private String updatedBy; + private String createdBy; + + public AuditInfo() { + created = new Date(); + createdBy = "dummy"; + } + + public Date getLastUpdated() { + return lastUpdated; + } + + public void setLastUpdated(Date lastUpdated) { + this.lastUpdated = lastUpdated; + } + + public Date getCreated() { + return created; + } + + public void setCreated(Date created) { + this.created = created; + } + + public String getUpdatedBy() { + return updatedBy; + } + + public void setUpdatedBy(String updatedBy) { + this.updatedBy = updatedBy; + } + + public String getCreatedBy() { + return createdBy; + } + + public void setCreatedBy(String createdBy) { + this.createdBy = createdBy; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/Item.java b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/Item.java new file mode 100644 index 000000000..30873ff54 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/Item.java @@ -0,0 +1,112 @@ +package org.tests.model.compositekeys; + +import javax.persistence.AttributeOverride; +import javax.persistence.Column; +import javax.persistence.Embedded; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Version; + +@Entity +public class Item { + @Id + private ItemKey key; + + private String description; + + private String units; + + private int type; + + private int region; + + @Embedded + @AttributeOverride(name = "lastUpdated", column = @Column(name = "date_modified")) + @AttributeOverride(name = "created", column = @Column(name = "date_created")) + @AttributeOverride(name = "updatedBy", column = @Column(name = "modified_by")) + @AttributeOverride(name = "createdBy", column = @Column(name = "created_by")) + private AuditInfo auditInfo = new AuditInfo(); + + @Version + private Long version; + + @ManyToOne + @JoinColumn(name = "customer", referencedColumnName = "customer", insertable = false, updatable = false) + @JoinColumn(name = "type", referencedColumnName = "type", insertable = false, updatable = false) + private Type eType; + + @ManyToOne + @JoinColumn(name = "customer", referencedColumnName = "customer", insertable = false, updatable = false) + @JoinColumn(name = "region", referencedColumnName = "type", insertable = false, updatable = false) + private Region eRegion; + + public ItemKey getKey() { + return key; + } + + public void setKey(ItemKey key) { + this.key = key; + } + + public String getUnits() { + return units; + } + + public void setUnits(String units) { + this.units = units; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public int getRegion() { + return region; + } + + public void setRegion(int region) { + this.region = region; + } + + public Long getVersion() { + return version; + } + + public Type getEType() { + return eType; + } + + public Region getERegion() { + return eRegion; + } + + public void setVersion(Long version) { + this.version = version; + } + + public void setEType(Type eType) { + this.eType = eType; + } + + public void setERegion(Region eRegion) { + this.eRegion = eRegion; + } + + public AuditInfo getAuditInfo() { + return auditInfo; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/ItemKey.java b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/ItemKey.java new file mode 100644 index 000000000..99b7c1018 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/ItemKey.java @@ -0,0 +1,60 @@ +package org.tests.model.compositekeys; + +import javax.persistence.Column; +import javax.persistence.Embeddable; +import javax.validation.constraints.Size; + + +@Embeddable +public class ItemKey { + + private int customer; + + @Column(name = "itemnumber") + @Size(max = 127) + private String itemNumber; + + public int getCustomer() { + return customer; + } + + public void setCustomer(int customer) { + this.customer = customer; + } + + public String getItemNumber() { + return itemNumber; + } + + public void setItemNumber(String itemNumber) { + this.itemNumber = itemNumber; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof ItemKey)) { + return false; + } + + ItemKey itemKey = (ItemKey) o; + + if (customer != itemKey.customer) { + return false; + } + if (!itemNumber.equals(itemKey.itemNumber)) { + return false; + } + + return true; + } + + @Override + public int hashCode() { + int result = customer; + result = 31 * result + itemNumber.hashCode(); + return result; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/Parcel.java b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/Parcel.java new file mode 100644 index 000000000..070c353aa --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/Parcel.java @@ -0,0 +1,30 @@ +package org.tests.model.compositekeys; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class Parcel { + @Id + @Column(name = "parcelid") + private Long parcelId; + + private String description; + + public Long getParcelId() { + return parcelId; + } + + public void setParcelId(Long parcelId) { + this.parcelId = parcelId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/ParcelLocation.java b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/ParcelLocation.java new file mode 100644 index 000000000..3ee5c1d48 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/ParcelLocation.java @@ -0,0 +1,45 @@ +package org.tests.model.compositekeys; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; + +@Entity +public class ParcelLocation { + @Id + @Column(name = "parcellocid") + private Long parcelLocId; + + private String location; + + @OneToOne + @JoinColumn(name = "parcelid", referencedColumnName = "parcelid") + private Parcel parcel; + + public Long getParcelLocId() { + return parcelLocId; + } + + public void setParcelLocId(Long parcelLocId) { + this.parcelLocId = parcelLocId; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + + public Parcel getParcel() { + return parcel; + } + + public void setParcel(Parcel parcel) { + this.parcel = parcel; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/Region.java b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/Region.java new file mode 100644 index 000000000..ad6e7270f --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/Region.java @@ -0,0 +1,55 @@ +package org.tests.model.compositekeys; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.JoinColumns; +import javax.persistence.OneToMany; +import javax.persistence.Version; +import java.util.List; + +@Entity +public class Region { + @Id + private RegionKey key; + + private String description; + + @Version + private Long version; + + @OneToMany + @JoinColumns({ + @JoinColumn(name = "customer", referencedColumnName = "customer", insertable = false, updatable = false), + @JoinColumn(name = "region", referencedColumnName = "type", insertable = false, updatable = false) + }) + private List items; + + public RegionKey getKey() { + return key; + } + + public void setKey(RegionKey key) { + this.key = key; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Long getVersion() { + return version; + } + + public void setVersion(Long version) { + this.version = version; + } + + public List getItems() { + return items; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/RegionKey.java b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/RegionKey.java new file mode 100644 index 000000000..dc92408aa --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/RegionKey.java @@ -0,0 +1,45 @@ +package org.tests.model.compositekeys; + +import javax.persistence.Embeddable; + +@Embeddable +public class RegionKey { + private int customer; + + private int type; + + public int getCustomer() { + return customer; + } + + public void setCustomer(int customer) { + this.customer = customer; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + @Override + public int hashCode() { + int hc = 31 * 7 + customer; + hc = 31 * hc + type; + return hc; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o instanceof RegionKey) { + RegionKey k = (RegionKey) o; + return k.customer == customer && k.type == type; + } + return false; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/SubType.java b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/SubType.java new file mode 100644 index 000000000..22d6b1253 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/SubType.java @@ -0,0 +1,45 @@ +package org.tests.model.compositekeys; + +import io.ebean.annotation.Identity; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.Version; + +import static io.ebean.annotation.IdentityGenerated.BY_DEFAULT; + +@Identity(generated = BY_DEFAULT) +@Entity +public class SubType { + @EmbeddedId + private SubTypeKey key; + + private String description; + + @Version + private Long version; + + public SubTypeKey getKey() { + return key; + } + + public void setKey(SubTypeKey key) { + this.key = key; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Long getVersion() { + return version; + } + + public void setVersion(Long version) { + this.version = version; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/SubTypeKey.java b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/SubTypeKey.java new file mode 100644 index 000000000..6de6159ad --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/SubTypeKey.java @@ -0,0 +1,33 @@ +package org.tests.model.compositekeys; + +import javax.persistence.Embeddable; + +@Embeddable +public class SubTypeKey { + private int subTypeId; + + public int getSubTypeId() { + return subTypeId; + } + + public void setSubTypeId(int subTypeId) { + this.subTypeId = subTypeId; + } + + @Override + public int hashCode() { + return 31 * 7 + subTypeId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof SubTypeKey)) { + return false; + } + return subTypeId == ((SubTypeKey) o).subTypeId; + } + +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/Type.java b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/Type.java new file mode 100644 index 000000000..a650c5c0e --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/Type.java @@ -0,0 +1,69 @@ +package org.tests.model.compositekeys; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.JoinColumns; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import javax.persistence.Version; +import java.util.List; + +@Entity +@Table(name="`type`") // needs to be quoted because it's a keyword on HANA +public class Type { + @Id + private TypeKey key; + + private String description; + + @Version + private Long version; + + @OneToMany + @JoinColumns({ + @JoinColumn(name = "customer", referencedColumnName = "customer", insertable = false, updatable = false), + @JoinColumn(name = "type", referencedColumnName = "type", insertable = false, updatable = false) + }) + private List items; + + @ManyToOne + private SubType subType; + + public TypeKey getKey() { + return key; + } + + public void setKey(TypeKey key) { + this.key = key; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Long getVersion() { + return version; + } + + public void setVersion(Long version) { + this.version = version; + } + + public List getItems() { + return items; + } + + public SubType getSubType() { + return subType; + } + + public void setSubType(SubType subType) { + this.subType = subType; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/TypeKey.java b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/TypeKey.java new file mode 100644 index 000000000..a5b8f07d0 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/compositekeys/TypeKey.java @@ -0,0 +1,45 @@ +package org.tests.model.compositekeys; + +import javax.persistence.Embeddable; + +@Embeddable +public class TypeKey { + private int customer; + + private int type; + + public int getCustomer() { + return customer; + } + + public void setCustomer(int customer) { + this.customer = customer; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + @Override + public int hashCode() { + int hc = 31 + customer; + hc = hc * 31 + type; + return hc; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o instanceof TypeKey) { + TypeKey k = (TypeKey) o; + return k.customer == customer && k.type == type; + } + return false; + } +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/converstation/Conversation.java b/ebean-ddlgen/src/test/java/org/tests/model/converstation/Conversation.java new file mode 100644 index 000000000..7fe9bcfdf --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/converstation/Conversation.java @@ -0,0 +1,66 @@ +package org.tests.model.converstation; + +import io.ebean.annotation.FetchPreference; +import org.tests.model.BaseModel; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import java.util.List; + +@Entity +@Table(name = "c_conversation") +public class Conversation extends BaseModel { + + String title; + + @Column(name = "isopen") + boolean open; + + @ManyToOne + Group group; + + @FetchPreference(1) + @OneToMany(mappedBy = "conversation") + List participants; + + @FetchPreference(2) + @OneToMany(mappedBy = "conversation") + List messages; + + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public boolean isOpen() { + return open; + } + + public void setOpen(boolean open) { + this.open = open; + } + + public Group getGroup() { + return group; + } + + public void setGroup(Group group) { + this.group = group; + } + + public List getMessages() { + return messages; + } + + public void setMessages(List messages) { + this.messages = messages; + } + +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/converstation/Group.java b/ebean-ddlgen/src/test/java/org/tests/model/converstation/Group.java new file mode 100644 index 000000000..eee84f8a7 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/converstation/Group.java @@ -0,0 +1,45 @@ +package org.tests.model.converstation; + +import org.tests.model.BaseModel; + +import javax.persistence.Entity; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import java.util.List; + +@Entity +@Table(name = "c_group") +public class Group extends BaseModel { + + boolean inactive; + + String name; + + @OneToMany(mappedBy = "group") + List users; + + public boolean isInactive() { + return inactive; + } + + public void setInactive(boolean inactive) { + this.inactive = inactive; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getUsers() { + return users; + } + + public void setUsers(List users) { + this.users = users; + } + +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/converstation/Message.java b/ebean-ddlgen/src/test/java/org/tests/model/converstation/Message.java new file mode 100644 index 000000000..51379a940 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/converstation/Message.java @@ -0,0 +1,56 @@ +package org.tests.model.converstation; + +import org.tests.model.BaseModel; + +import javax.persistence.Entity; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "c_message") +public class Message extends BaseModel { + + String title; + + String body; + + @ManyToOne + Conversation conversation; + + @ManyToOne + User user; + + + public Conversation getConversation() { + return conversation; + } + + public void setConversation(Conversation conversation) { + this.conversation = conversation; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getBody() { + return body; + } + + public void setBody(String body) { + this.body = body; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/converstation/Participation.java b/ebean-ddlgen/src/test/java/org/tests/model/converstation/Participation.java new file mode 100644 index 000000000..dae00e2d5 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/converstation/Participation.java @@ -0,0 +1,60 @@ +package org.tests.model.converstation; + +import org.tests.model.BaseModel; + +import javax.persistence.Entity; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@Entity +@Table(name = "c_participation") +public class Participation extends BaseModel { + + public enum Type { + Moderator, + Member + } + + Integer rating; + + Type type; + + @ManyToOne(optional = false) + Conversation conversation; + + @ManyToOne(optional = false) + User user; + + public Conversation getConversation() { + return conversation; + } + + public void setConversation(Conversation conversation) { + this.conversation = conversation; + } + + public Type getType() { + return type; + } + + public void setType(Type type) { + this.type = type; + } + + public Integer getRating() { + return rating; + } + + public void setRating(Integer rating) { + this.rating = rating; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/converstation/User.java b/ebean-ddlgen/src/test/java/org/tests/model/converstation/User.java new file mode 100644 index 000000000..f921fd85e --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/converstation/User.java @@ -0,0 +1,71 @@ +package org.tests.model.converstation; + +import io.ebean.annotation.History; +import io.ebean.annotation.HistoryExclude; +import org.tests.model.BaseModel; + +import javax.persistence.Entity; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +@History +@Entity +@Table(name = "c_user") +public class User extends BaseModel { + + boolean inactive; + + String name; + + String email; + + @HistoryExclude + String passwordHash; + + @ManyToOne + Group group; + + public User() { + } + + public boolean isInactive() { + return inactive; + } + + public void setInactive(boolean inactive) { + this.inactive = inactive; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Group getGroup() { + return group; + } + + public void setGroup(Group group) { + this.group = group; + } + + public String getPasswordHash() { + return passwordHash; + } + + public void setPasswordHash(String passwordHash) { + this.passwordHash = passwordHash; + } + +} diff --git a/ebean-ddlgen/src/test/java/org/tests/model/metaannotation/SizeMedium.java b/ebean-ddlgen/src/test/java/org/tests/model/metaannotation/SizeMedium.java new file mode 100644 index 000000000..7de8cd867 --- /dev/null +++ b/ebean-ddlgen/src/test/java/org/tests/model/metaannotation/SizeMedium.java @@ -0,0 +1,20 @@ +package org.tests.model.metaannotation; + +import javax.validation.constraints.Size; +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Meta-Annotation that defines @Size(max=100) + * + * @author Roland Praml, FOCONIS AG + */ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Size(max = 100) +public @interface SizeMedium { +} diff --git a/ebean-ddlgen/src/test/resources/application-test.properties b/ebean-ddlgen/src/test/resources/application-test.properties new file mode 100644 index 000000000..dfcb052ab --- /dev/null +++ b/ebean-ddlgen/src/test/resources/application-test.properties @@ -0,0 +1,36 @@ +ebean.ddl.header=-- Generated by ebean ${version} at ${timestamp} +ebean.ddl.generate=true +ebean.ddl.run=true +datasource.default=h2 + +datasource.h2.username=sa +datasource.h2.password= +datasource.h2.url=jdbc:h2:mem:h2AutoTune + +datasource.pg.username=sa +datasource.pg.password= +datasource.pg.url=jdbc:h2:mem:h2AutoTune + +# parameters for migration test +datasource.migrationtest.username=SA +datasource.migrationtest.password=SA +datasource.migrationtest.url=jdbc:h2:mem:migration +ebean.migrationtest.applyPrefix=V +ebean.migrationtest.ddl.generate=false +ebean.migrationtest.ddl.run=false +ebean.migrationtest.ddl.header=-- Migrationscripts for ebean unittest +ebean.migrationtest.migration.appName=migrationtest +ebean.migrationtest.migration.migrationPath=dbmigration/migrationtest +ebean.migrationtest.migration.strict=true + +# parameters for migration test +datasource.migrationtest-history.username=SA +datasource.migrationtest-history.password=SA +datasource.migrationtest-history.url=jdbc:h2:mem:migration +ebean.migrationtest-history.applyPrefix=V +ebean.migrationtest-history.ddl.generate=false +ebean.migrationtest-history.ddl.run=false +ebean.migrationtest-history.ddl.header=-- Migrationscripts for ebean unittest DbMigrationDropHistoryTest +ebean.migrationtest-history.migration.appName=migrationtest-history +ebean.migrationtest-history.migration.migrationPath=dbmigration/migrationtest-history +ebean.migrationtest-history.migration.strict=true diff --git a/ebean-core/src/test/resources/assert/BaseDdlHandlerTest/baseApply.sql b/ebean-ddlgen/src/test/resources/assert/BaseDdlHandlerTest/baseApply.sql similarity index 100% rename from ebean-core/src/test/resources/assert/BaseDdlHandlerTest/baseApply.sql rename to ebean-ddlgen/src/test/resources/assert/BaseDdlHandlerTest/baseApply.sql diff --git a/ebean-core/src/test/resources/assert/BaseDdlHandlerTest/baseDropAll.sql b/ebean-ddlgen/src/test/resources/assert/BaseDdlHandlerTest/baseDropAll.sql similarity index 100% rename from ebean-core/src/test/resources/assert/BaseDdlHandlerTest/baseDropAll.sql rename to ebean-ddlgen/src/test/resources/assert/BaseDdlHandlerTest/baseDropAll.sql diff --git a/ebean-core/src/test/resources/assert/BaseTableDdlTest/createTable-apply.txt b/ebean-ddlgen/src/test/resources/assert/BaseTableDdlTest/createTable-apply.txt similarity index 100% rename from ebean-core/src/test/resources/assert/BaseTableDdlTest/createTable-apply.txt rename to ebean-ddlgen/src/test/resources/assert/BaseTableDdlTest/createTable-apply.txt diff --git a/ebean-core/src/test/resources/assert/BaseTableDdlTest/createTable-applyLast.txt b/ebean-ddlgen/src/test/resources/assert/BaseTableDdlTest/createTable-applyLast.txt similarity index 100% rename from ebean-core/src/test/resources/assert/BaseTableDdlTest/createTable-applyLast.txt rename to ebean-ddlgen/src/test/resources/assert/BaseTableDdlTest/createTable-applyLast.txt diff --git a/ebean-core/src/test/resources/assert/BaseTableDdlTest/createTable-rollback.txt b/ebean-ddlgen/src/test/resources/assert/BaseTableDdlTest/createTable-rollback.txt similarity index 100% rename from ebean-core/src/test/resources/assert/BaseTableDdlTest/createTable-rollback.txt rename to ebean-ddlgen/src/test/resources/assert/BaseTableDdlTest/createTable-rollback.txt diff --git a/ebean-core/src/test/resources/assert/BaseTableDdlTest/createTable-rollbackFirst.txt b/ebean-ddlgen/src/test/resources/assert/BaseTableDdlTest/createTable-rollbackFirst.txt similarity index 100% rename from ebean-core/src/test/resources/assert/BaseTableDdlTest/createTable-rollbackFirst.txt rename to ebean-ddlgen/src/test/resources/assert/BaseTableDdlTest/createTable-rollbackFirst.txt diff --git a/ebean-core/src/test/resources/assert/ModelBuild_compoundKeyTest/apply.sql b/ebean-ddlgen/src/test/resources/assert/ModelBuild_compoundKeyTest/apply.sql similarity index 100% rename from ebean-core/src/test/resources/assert/ModelBuild_compoundKeyTest/apply.sql rename to ebean-ddlgen/src/test/resources/assert/ModelBuild_compoundKeyTest/apply.sql diff --git a/ebean-core/src/test/resources/assert/ModelBuild_explicitSequencesTest/apply.sql b/ebean-ddlgen/src/test/resources/assert/ModelBuild_explicitSequencesTest/apply.sql similarity index 100% rename from ebean-core/src/test/resources/assert/ModelBuild_explicitSequencesTest/apply.sql rename to ebean-ddlgen/src/test/resources/assert/ModelBuild_explicitSequencesTest/apply.sql diff --git a/ebean-core/src/test/resources/assert/ModelBuild_explicitSequencesTest/pg-apply.sql b/ebean-ddlgen/src/test/resources/assert/ModelBuild_explicitSequencesTest/pg-apply.sql similarity index 100% rename from ebean-core/src/test/resources/assert/ModelBuild_explicitSequencesTest/pg-apply.sql rename to ebean-ddlgen/src/test/resources/assert/ModelBuild_explicitSequencesTest/pg-apply.sql diff --git a/ebean-core/src/test/resources/assert/changeset-apply.txt b/ebean-ddlgen/src/test/resources/assert/changeset-apply.txt similarity index 100% rename from ebean-core/src/test/resources/assert/changeset-apply.txt rename to ebean-ddlgen/src/test/resources/assert/changeset-apply.txt diff --git a/ebean-core/src/test/resources/assert/changeset-dropAll.txt b/ebean-ddlgen/src/test/resources/assert/changeset-dropAll.txt similarity index 100% rename from ebean-core/src/test/resources/assert/changeset-dropAll.txt rename to ebean-ddlgen/src/test/resources/assert/changeset-dropAll.txt diff --git a/ebean-core/src/test/resources/assert/changeset-pg-apply.sql b/ebean-ddlgen/src/test/resources/assert/changeset-pg-apply.sql similarity index 100% rename from ebean-core/src/test/resources/assert/changeset-pg-apply.sql rename to ebean-ddlgen/src/test/resources/assert/changeset-pg-apply.sql diff --git a/ebean-core/src/test/resources/assert/changeset-pg-applyLast.sql b/ebean-ddlgen/src/test/resources/assert/changeset-pg-applyLast.sql similarity index 100% rename from ebean-core/src/test/resources/assert/changeset-pg-applyLast.sql rename to ebean-ddlgen/src/test/resources/assert/changeset-pg-applyLast.sql diff --git a/ebean-core/src/test/resources/assert/changeset-pg-rollbackFirst.sql b/ebean-ddlgen/src/test/resources/assert/changeset-pg-rollbackFirst.sql similarity index 100% rename from ebean-core/src/test/resources/assert/changeset-pg-rollbackFirst.sql rename to ebean-ddlgen/src/test/resources/assert/changeset-pg-rollbackFirst.sql diff --git a/ebean-core/src/test/resources/assert/changeset-pg-rollbackLast.sql b/ebean-ddlgen/src/test/resources/assert/changeset-pg-rollbackLast.sql similarity index 100% rename from ebean-core/src/test/resources/assert/changeset-pg-rollbackLast.sql rename to ebean-ddlgen/src/test/resources/assert/changeset-pg-rollbackLast.sql diff --git a/ebean-core/src/test/resources/assert/create-column-table.txt b/ebean-ddlgen/src/test/resources/assert/create-column-table.txt similarity index 100% rename from ebean-core/src/test/resources/assert/create-column-table.txt rename to ebean-ddlgen/src/test/resources/assert/create-column-table.txt diff --git a/ebean-core/src/test/resources/assert/create-table.txt b/ebean-ddlgen/src/test/resources/assert/create-table.txt similarity index 100% rename from ebean-core/src/test/resources/assert/create-table.txt rename to ebean-ddlgen/src/test/resources/assert/create-table.txt diff --git a/ebean-core/src/test/resources/container/test-alter-table.xml b/ebean-ddlgen/src/test/resources/container/test-alter-table.xml similarity index 100% rename from ebean-core/src/test/resources/container/test-alter-table.xml rename to ebean-ddlgen/src/test/resources/container/test-alter-table.xml diff --git a/ebean-core/src/test/resources/container/test-compoundkey.xml b/ebean-ddlgen/src/test/resources/container/test-compoundkey.xml similarity index 100% rename from ebean-core/src/test/resources/container/test-compoundkey.xml rename to ebean-ddlgen/src/test/resources/container/test-compoundkey.xml diff --git a/ebean-core/src/test/resources/container/test-create-table.xml b/ebean-ddlgen/src/test/resources/container/test-create-table.xml similarity index 100% rename from ebean-core/src/test/resources/container/test-create-table.xml rename to ebean-ddlgen/src/test/resources/container/test-create-table.xml diff --git a/ebean-core/src/test/resources/dbmigration/app2/v1.0__one.sql b/ebean-ddlgen/src/test/resources/dbmigration/app2/v1.0__one.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/app2/v1.0__one.sql rename to ebean-ddlgen/src/test/resources/dbmigration/app2/v1.0__one.sql diff --git a/ebean-core/src/test/resources/dbmigration/app2/v1.1__one.sql b/ebean-ddlgen/src/test/resources/dbmigration/app2/v1.1__one.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/app2/v1.1__one.sql rename to ebean-ddlgen/src/test/resources/dbmigration/app2/v1.1__one.sql diff --git a/ebean-core/src/test/resources/dbmigration/app2/v3.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/app2/v3.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/app2/v3.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/app2/v3.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/app3/model_larger/v4.1__foo.model.xml b/ebean-ddlgen/src/test/resources/dbmigration/app3/model_larger/v4.1__foo.model.xml similarity index 100% rename from ebean-core/src/test/resources/dbmigration/app3/model_larger/v4.1__foo.model.xml rename to ebean-ddlgen/src/test/resources/dbmigration/app3/model_larger/v4.1__foo.model.xml diff --git a/ebean-core/src/test/resources/dbmigration/app3/model_smaller/v2.0.model.xml b/ebean-ddlgen/src/test/resources/dbmigration/app3/model_smaller/v2.0.model.xml similarity index 100% rename from ebean-core/src/test/resources/dbmigration/app3/model_smaller/v2.0.model.xml rename to ebean-ddlgen/src/test/resources/dbmigration/app3/model_smaller/v2.0.model.xml diff --git a/ebean-core/src/test/resources/dbmigration/app3/model_smaller/v2.1__foo.model.xml b/ebean-ddlgen/src/test/resources/dbmigration/app3/model_smaller/v2.1__foo.model.xml similarity index 100% rename from ebean-core/src/test/resources/dbmigration/app3/model_smaller/v2.1__foo.model.xml rename to ebean-ddlgen/src/test/resources/dbmigration/app3/model_smaller/v2.1__foo.model.xml diff --git a/ebean-core/src/test/resources/dbmigration/app3/v1.0__one.sql b/ebean-ddlgen/src/test/resources/dbmigration/app3/v1.0__one.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/app3/v1.0__one.sql rename to ebean-ddlgen/src/test/resources/dbmigration/app3/v1.0__one.sql diff --git a/ebean-core/src/test/resources/dbmigration/app3/v1.1__one.sql b/ebean-ddlgen/src/test/resources/dbmigration/app3/v1.1__one.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/app3/v1.1__one.sql rename to ebean-ddlgen/src/test/resources/dbmigration/app3/v1.1__one.sql diff --git a/ebean-core/src/test/resources/dbmigration/app3/v3.1.2__foo.sql b/ebean-ddlgen/src/test/resources/dbmigration/app3/v3.1.2__foo.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/app3/v3.1.2__foo.sql rename to ebean-ddlgen/src/test/resources/dbmigration/app3/v3.1.2__foo.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest-history/1.0__initial.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest-history/1.0__initial.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest-history/1.0__initial.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest-history/1.0__initial.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest-history/1.2__dropsFor_1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest-history/1.2__dropsFor_1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest-history/1.2__dropsFor_1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest-history/1.2__dropsFor_1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest-history/model/1.0__initial.model.xml b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest-history/model/1.0__initial.model.xml similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest-history/model/1.0__initial.model.xml rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest-history/model/1.0__initial.model.xml diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest-history/model/1.1.model.xml b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest-history/model/1.1.model.xml similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest-history/model/1.1.model.xml rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest-history/model/1.1.model.xml diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest-history/model/1.2__dropsFor_1.1.model.xml b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest-history/model/1.2__dropsFor_1.1.model.xml similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest-history/model/1.2__dropsFor_1.1.model.xml rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest-history/model/1.2__dropsFor_1.1.model.xml diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/db2/1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/db2/1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/db2/1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/db2/1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/db2/1.2__dropsFor_1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/db2/1.2__dropsFor_1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/db2/1.2__dropsFor_1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/db2/1.2__dropsFor_1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/db2/1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/db2/1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/db2/1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/db2/1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/db2/1.4__dropsFor_1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/db2/1.4__dropsFor_1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/db2/1.4__dropsFor_1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/db2/1.4__dropsFor_1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/h2/1.0__initial.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/h2/1.0__initial.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/h2/1.0__initial.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/h2/1.0__initial.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/h2/1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/h2/1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/h2/1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/h2/1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/h2/1.2__dropsFor_1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/h2/1.2__dropsFor_1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/h2/1.2__dropsFor_1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/h2/1.2__dropsFor_1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/h2/1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/h2/1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/h2/1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/h2/1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/h2/1.4__dropsFor_1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/h2/1.4__dropsFor_1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/h2/1.4__dropsFor_1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/h2/1.4__dropsFor_1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/hana/1.0__initial.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hana/1.0__initial.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/hana/1.0__initial.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hana/1.0__initial.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/hana/1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hana/1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/hana/1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hana/1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/hana/1.2__dropsFor_1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hana/1.2__dropsFor_1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/hana/1.2__dropsFor_1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hana/1.2__dropsFor_1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/hana/1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hana/1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/hana/1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hana/1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/hana/1.4__dropsFor_1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hana/1.4__dropsFor_1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/hana/1.4__dropsFor_1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hana/1.4__dropsFor_1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/hsqldb/1.0__initial.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hsqldb/1.0__initial.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/hsqldb/1.0__initial.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hsqldb/1.0__initial.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/hsqldb/1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hsqldb/1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/hsqldb/1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hsqldb/1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/hsqldb/1.2__dropsFor_1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hsqldb/1.2__dropsFor_1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/hsqldb/1.2__dropsFor_1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hsqldb/1.2__dropsFor_1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/hsqldb/1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hsqldb/1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/hsqldb/1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hsqldb/1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/hsqldb/1.4__dropsFor_1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hsqldb/1.4__dropsFor_1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/hsqldb/1.4__dropsFor_1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/hsqldb/1.4__dropsFor_1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/model/1.0__initial.model.xml b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/model/1.0__initial.model.xml similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/model/1.0__initial.model.xml rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/model/1.0__initial.model.xml diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/model/1.1.model.xml b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/model/1.1.model.xml similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/model/1.1.model.xml rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/model/1.1.model.xml diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/model/1.2__dropsFor_1.1.model.xml b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/model/1.2__dropsFor_1.1.model.xml similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/model/1.2__dropsFor_1.1.model.xml rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/model/1.2__dropsFor_1.1.model.xml diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/model/1.3.model.xml b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/model/1.3.model.xml similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/model/1.3.model.xml rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/model/1.3.model.xml diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/model/1.4__dropsFor_1.3.model.xml b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/model/1.4__dropsFor_1.3.model.xml similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/model/1.4__dropsFor_1.3.model.xml rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/model/1.4__dropsFor_1.3.model.xml diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/mysql/1.0__initial.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql/1.0__initial.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/mysql/1.0__initial.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql/1.0__initial.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/mysql/1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql/1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/mysql/1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql/1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/mysql/1.2__dropsFor_1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql/1.2__dropsFor_1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/mysql/1.2__dropsFor_1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql/1.2__dropsFor_1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/mysql/1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql/1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/mysql/1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql/1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/mysql/1.4__dropsFor_1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql/1.4__dropsFor_1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/mysql/1.4__dropsFor_1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql/1.4__dropsFor_1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/mysql55/1.0__initial.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql55/1.0__initial.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/mysql55/1.0__initial.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql55/1.0__initial.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/mysql55/1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql55/1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/mysql55/1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql55/1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/mysql55/1.2__dropsFor_1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql55/1.2__dropsFor_1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/mysql55/1.2__dropsFor_1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql55/1.2__dropsFor_1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/mysql55/1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql55/1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/mysql55/1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql55/1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/mysql55/1.4__dropsFor_1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql55/1.4__dropsFor_1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/mysql55/1.4__dropsFor_1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/mysql55/1.4__dropsFor_1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/oracle/1.0__initial.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/oracle/1.0__initial.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/oracle/1.0__initial.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/oracle/1.0__initial.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/oracle/1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/oracle/1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/oracle/1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/oracle/1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/oracle/1.2__dropsFor_1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/oracle/1.2__dropsFor_1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/oracle/1.2__dropsFor_1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/oracle/1.2__dropsFor_1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/oracle/1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/oracle/1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/oracle/1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/oracle/1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/oracle/1.4__dropsFor_1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/oracle/1.4__dropsFor_1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/oracle/1.4__dropsFor_1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/oracle/1.4__dropsFor_1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/postgres/1.0__initial.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/postgres/1.0__initial.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/postgres/1.0__initial.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/postgres/1.0__initial.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/postgres/1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/postgres/1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/postgres/1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/postgres/1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/postgres/1.2__dropsFor_1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/postgres/1.2__dropsFor_1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/postgres/1.2__dropsFor_1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/postgres/1.2__dropsFor_1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/postgres/1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/postgres/1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/postgres/1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/postgres/1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/postgres/1.4__dropsFor_1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/postgres/1.4__dropsFor_1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/postgres/1.4__dropsFor_1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/postgres/1.4__dropsFor_1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/sqlite/1.0__initial.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlite/1.0__initial.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/sqlite/1.0__initial.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlite/1.0__initial.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/sqlite/1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlite/1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/sqlite/1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlite/1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/sqlite/1.2__dropsFor_1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlite/1.2__dropsFor_1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/sqlite/1.2__dropsFor_1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlite/1.2__dropsFor_1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/sqlite/1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlite/1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/sqlite/1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlite/1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/sqlite/1.4__dropsFor_1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlite/1.4__dropsFor_1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/sqlite/1.4__dropsFor_1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlite/1.4__dropsFor_1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/sqlserver17/1.0__initial.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlserver17/1.0__initial.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/sqlserver17/1.0__initial.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlserver17/1.0__initial.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/sqlserver17/1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlserver17/1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/sqlserver17/1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlserver17/1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/sqlserver17/1.2__dropsFor_1.1.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlserver17/1.2__dropsFor_1.1.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/sqlserver17/1.2__dropsFor_1.1.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlserver17/1.2__dropsFor_1.1.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/sqlserver17/1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlserver17/1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/sqlserver17/1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlserver17/1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/sqlserver17/1.4__dropsFor_1.3.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlserver17/1.4__dropsFor_1.3.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/sqlserver17/1.4__dropsFor_1.3.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlserver17/1.4__dropsFor_1.3.sql diff --git a/ebean-core/src/test/resources/dbmigration/migrationtest/sqlserver17/I__create_procs.sql b/ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlserver17/I__create_procs.sql similarity index 100% rename from ebean-core/src/test/resources/dbmigration/migrationtest/sqlserver17/I__create_procs.sql rename to ebean-ddlgen/src/test/resources/dbmigration/migrationtest/sqlserver17/I__create_procs.sql diff --git a/ebean-core/src/test/resources/dbmigration/myapp/v1.0.xml b/ebean-ddlgen/src/test/resources/dbmigration/myapp/v1.0.xml similarity index 100% rename from ebean-core/src/test/resources/dbmigration/myapp/v1.0.xml rename to ebean-ddlgen/src/test/resources/dbmigration/myapp/v1.0.xml diff --git a/ebean-core/src/test/resources/dbmigration/myapp/v2.0.xml b/ebean-ddlgen/src/test/resources/dbmigration/myapp/v2.0.xml similarity index 100% rename from ebean-core/src/test/resources/dbmigration/myapp/v2.0.xml rename to ebean-ddlgen/src/test/resources/dbmigration/myapp/v2.0.xml diff --git a/ebean-ddlgen/src/test/resources/ebean.mf b/ebean-ddlgen/src/test/resources/ebean.mf new file mode 100644 index 000000000..c18791604 --- /dev/null +++ b/ebean-ddlgen/src/test/resources/ebean.mf @@ -0,0 +1,6 @@ +agent-use-only: true +profile-location: true +entity-packages: org,misc +transactional-packages: org +querybean-packages: none + diff --git a/ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/1.0.model.xml b/ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/1.0.model.xml similarity index 100% rename from ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/1.0.model.xml rename to ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/1.0.model.xml diff --git a/ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/1.1.model.xml b/ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/1.1.model.xml similarity index 100% rename from ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/1.1.model.xml rename to ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/1.1.model.xml diff --git a/ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/1.1_2__drops.model.xml b/ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/1.1_2__drops.model.xml similarity index 100% rename from ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/1.1_2__drops.model.xml rename to ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/1.1_2__drops.model.xml diff --git a/ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/2.0.model.xml b/ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/2.0.model.xml similarity index 100% rename from ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/2.0.model.xml rename to ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/2.0.model.xml diff --git a/ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/2.1.model.xml b/ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/2.1.model.xml similarity index 100% rename from ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/2.1.model.xml rename to ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/2.1.model.xml diff --git a/ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/2.2__drops.model.xml b/ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/2.2__drops.model.xml similarity index 100% rename from ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/2.2__drops.model.xml rename to ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/2.2__drops.model.xml diff --git a/ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/3.0__rawSql.model.xml b/ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/3.0__rawSql.model.xml similarity index 100% rename from ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/3.0__rawSql.model.xml rename to ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/3.0__rawSql.model.xml diff --git a/ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/4.0__alterForeignKey.model.xml b/ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/4.0__alterForeignKey.model.xml similarity index 100% rename from ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/4.0__alterForeignKey.model.xml rename to ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/4.0__alterForeignKey.model.xml diff --git a/ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/5.0__dropTable.model.xml b/ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/5.0__dropTable.model.xml similarity index 100% rename from ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/5.0__dropTable.model.xml rename to ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/5.0__dropTable.model.xml diff --git a/ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/6.0__renameColumn.model.xml b/ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/6.0__renameColumn.model.xml similarity index 100% rename from ebean-core/src/test/resources/io/ebeaninternal/dbmigration/model/6.0__renameColumn.model.xml rename to ebean-ddlgen/src/test/resources/io/ebeaninternal/dbmigration/model/6.0__renameColumn.model.xml diff --git a/ebean-ddlgen/src/test/resources/logback-test.xml b/ebean-ddlgen/src/test/resources/logback-test.xml new file mode 100644 index 000000000..8d97efd24 --- /dev/null +++ b/ebean-ddlgen/src/test/resources/logback-test.xml @@ -0,0 +1,21 @@ + + + + TRACE + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + + + + + + + diff --git a/ebean-ddlgen/src/test/resources/scripts/test-script-2.sql b/ebean-ddlgen/src/test/resources/scripts/test-script-2.sql new file mode 100644 index 000000000..977ee0ec4 --- /dev/null +++ b/ebean-ddlgen/src/test/resources/scripts/test-script-2.sql @@ -0,0 +1,4 @@ +delete from ${tableName}; + +-- some other comment, tableName is replaced +select count(*) from ${tableName}; diff --git a/ebean-ddlgen/src/test/resources/scripts/test-script.sql b/ebean-ddlgen/src/test/resources/scripts/test-script.sql new file mode 100644 index 000000000..6118a0454 --- /dev/null +++ b/ebean-ddlgen/src/test/resources/scripts/test-script.sql @@ -0,0 +1,4 @@ +delete from e_basic; + +-- some comment, select not useful here +select count(*) from e_basic; diff --git a/ebean-core/src/test/resources/test-dbmigration/1.1.sql b/ebean-ddlgen/src/test/resources/test-dbmigration/1.1.sql similarity index 100% rename from ebean-core/src/test/resources/test-dbmigration/1.1.sql rename to ebean-ddlgen/src/test/resources/test-dbmigration/1.1.sql diff --git a/ebean-core/src/test/resources/test-dbmigration/1.2.sql b/ebean-ddlgen/src/test/resources/test-dbmigration/1.2.sql similarity index 100% rename from ebean-core/src/test/resources/test-dbmigration/1.2.sql rename to ebean-ddlgen/src/test/resources/test-dbmigration/1.2.sql diff --git a/ebean-core/src/test/resources/test-dbmigration/2.1.sql b/ebean-ddlgen/src/test/resources/test-dbmigration/2.1.sql similarity index 100% rename from ebean-core/src/test/resources/test-dbmigration/2.1.sql rename to ebean-ddlgen/src/test/resources/test-dbmigration/2.1.sql diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index cf4562efb..2902f8c56 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -29,6 +29,13 @@ provided + + io.ebean + ebean-ddlgen + ${project.version} + provided + + io.ebean querybean-generator diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index df6cf1b4b..067bc76c7 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -34,6 +34,12 @@ provided + + io.ebean + ebean-ddlgen + ${project.version} + + io.ebean.test ebean-test-docker diff --git a/ebean/pom.xml b/ebean/pom.xml index bebbeffd7..a1546cbe7 100644 --- a/ebean/pom.xml +++ b/ebean/pom.xml @@ -12,23 +12,39 @@ ebean + + io.ebean + ebean-api + ${project.version} + + io.ebean ebean-core ${project.version} + + + io.ebean + ebean-querybean + ${project.version} + + + + + io.ebean + ebean-ddlgen + ${project.version} + + + io.ebean ebean-autotune ${project.version} - - io.ebean - ebean-querybean - ${project.version} - diff --git a/pom.xml b/pom.xml index 90b68a70b..7d9511325 100644 --- a/pom.xml +++ b/pom.xml @@ -41,6 +41,7 @@ ebean-api ebean-bom ebean-core + ebean-ddlgen ebean-autotune ebean-test querybean-generator