diff --git a/.github/workflows/jdk-18-ea.yml b/.github/workflows/jdk-18-ea.yml index 73121f1d4..b814c77c9 100644 --- a/.github/workflows/jdk-18-ea.yml +++ b/.github/workflows/jdk-18-ea.yml @@ -3,8 +3,8 @@ name: JDK 18-ea on: workflow_dispatch: -# schedule: -# - cron: '30 6 * * *' + schedule: + - cron: '30 6 * * 1,3,5' jobs: build: diff --git a/.github/workflows/mariadb-10.6.yml b/.github/workflows/mariadb-10.6.yml index 797e948ff..cae97ac27 100644 --- a/.github/workflows/mariadb-10.6.yml +++ b/.github/workflows/mariadb-10.6.yml @@ -1,7 +1,10 @@ name: MariaDB 10.6 -on: [workflow_dispatch] +on: + workflow_dispatch: + schedule: + - cron: '10 7 * * 1,4' jobs: build: diff --git a/.github/workflows/sqlserver-2017-latest.yml b/.github/workflows/sqlserver-2017-latest.yml index 83649d080..6c72d8980 100644 --- a/.github/workflows/sqlserver-2017-latest.yml +++ b/.github/workflows/sqlserver-2017-latest.yml @@ -1,7 +1,10 @@ name: SqlServer 2017 latest -on: [workflow_dispatch] +on: + workflow_dispatch: + schedule: + - cron: '10 7 * * 2,5' jobs: build: diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml index a27749023..ca0b583c5 100644 --- a/ebean-api/pom.xml +++ b/ebean-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT ebean api @@ -27,7 +27,7 @@ io.avaje avaje-config - 1.5 + 1.7 @@ -26,7 +26,7 @@ io.ebean ebean-core - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT provided diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index de70b12e4..47f0f4ce4 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT ebean bom @@ -71,88 +71,88 @@ io.ebean ebean - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT io.ebean ebean-api - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT io.ebean ebean-core - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT io.ebean ebean-core-type - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT io.ebean ebean-ddl-generator - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT io.ebean ebean-externalmapping-api - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT io.ebean ebean-externalmapping-xml - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT io.ebean ebean-autotune - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT io.ebean ebean-querybean - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT io.ebean querybean-generator - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT provided io.ebean kotlin-querybean-generator - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT provided io.ebean ebean-test - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT test io.ebean ebean-postgis - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT io.ebean ebean-redis - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index 0e4062b6f..9eb1859c9 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index 08752f040..89aa0e6e5 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT ebean-core @@ -41,19 +41,19 @@ io.ebean ebean-api - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT io.ebean ebean-core-type - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT io.ebean ebean-externalmapping-api - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java index f2c56db74..701b76402 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java @@ -333,6 +333,13 @@ public final class DefaultPersister implements Persister { * Recursively delete the bean. This calls back to the EbeanServer. */ private int deleteRecurse(EntityBean detailBean, Transaction t, DeleteMode deleteMode) { + return deleteRequest(createDeleteCascade(detailBean, t, deleteMode.persistType())); + } + + /** + * Delete without being a cascade. + */ + private int delete(EntityBean detailBean, Transaction t, DeleteMode deleteMode) { return deleteRequest(createDeleteRequest(detailBean, t, deleteMode.persistType())); } @@ -560,7 +567,7 @@ public final class DefaultPersister implements Persister { } } - private void deleteList(List beanList, SpiTransaction t, DeleteMode deleteMode, boolean children) { + private void deleteCascade(List beanList, SpiTransaction t, DeleteMode deleteMode, boolean children) { if (children) { t.depth(-1); t.checkBatchEscalationOnCollection(); @@ -604,7 +611,7 @@ public final class DefaultPersister implements Persister { for (Object id : ids) { EntityBean bean = descriptor.createEntityBean(); descriptor.convertSetId(id, bean); - int rowCount = deleteRecurse(bean, transaction, deleteMode); + int rowCount = delete(bean, transaction, deleteMode); if (rowCount == -1) { total = -1; } else if (total != -1) { @@ -656,7 +663,7 @@ public final class DefaultPersister implements Persister { t.logSummary("-- DeleteById of " + descriptor.name() + " ids[" + idList + "] requires fetch of foreign key values"); } List beanList = server.findList(q, t); - deleteList(beanList, t, deleteMode, false); + deleteCascade(beanList, t, deleteMode, false); return beanList.size(); } else { @@ -994,6 +1001,8 @@ public final class DefaultPersister implements Persister { executeSqlUpdate(sqlDelete, t); } else { + // TODO: Review first checking if many property is loaded and using the loaded beans + // ... and only using findIdsByParentId() when the many property isn't loaded // Delete recurse using the Id values of the children Object parentId = desc.getId(parentBean); List idsByParentId = many.findIdsByParentId(parentId, null, t, excludeDetailIds, deleteMode.isHard()); @@ -1017,7 +1026,7 @@ public final class DefaultPersister implements Persister { for (Object id : childIds) { refList.add(targetDesc.createReference(id, null)); } - deleteList(refList, t, deleteMode, true); + deleteCascade(refList, t, deleteMode, true); } else { // perform delete by statement if possible delete(targetDesc, null, childIds, t, deleteMode); @@ -1157,6 +1166,10 @@ public final class DefaultPersister implements Persister { return createDeleteRequest(bean, t, type, Flags.ZERO); } + private PersistRequestBean createDeleteCascade(EntityBean bean, Transaction t, Type type) { + return createDeleteRequest(bean, t, type, Flags.RECURSE); + } + @SuppressWarnings({"unchecked"}) private PersistRequestBean createDeleteRequest(Object bean, Transaction t, PersistRequest.Type type, int flags) { BeanManager mgr = beanManager(bean.getClass()); @@ -1167,7 +1180,7 @@ public final class DefaultPersister implements Persister { type = Type.DELETE_SOFT; } - PersistRequestBean request = new PersistRequestBean<>(server, (T)bean, null, mgr, (SpiTransaction) t, persistExecute, type, flags); + PersistRequestBean request = new PersistRequestBean<>(server, (T) bean, null, mgr, (SpiTransaction) t, persistExecute, type, flags); request.initForSoftDelete(); return request; } @@ -1186,7 +1199,7 @@ public final class DefaultPersister implements Persister { */ @SuppressWarnings("unchecked") private BeanManager beanManager(Class cls) { - BeanManager mgr = (BeanManager)beanDescriptorManager.beanManager(cls); + BeanManager mgr = (BeanManager) beanDescriptorManager.beanManager(cls); if (mgr == null) { throw new PersistenceException(errNotRegistered(cls)); } diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index 4a189ed69..6d009ead8 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT provided io.ebean ebean-core - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT provided diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index 0566534a9..1f7620729 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 5a651b9dc..d9727054a 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT @@ -33,7 +33,7 @@ io.ebean ebean-externalmapping-api - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT @@ -59,14 +59,14 @@ io.ebean ebean-core - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT test io.ebean ebean-ddl-generator - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT test diff --git a/ebean-kotlin/pom.xml b/ebean-kotlin/pom.xml index 22fafea6c..b9a3e50c4 100644 --- a/ebean-kotlin/pom.xml +++ b/ebean-kotlin/pom.xml @@ -5,7 +5,7 @@ ebean-parent io.ebean - 12.13.2-SNAPSHOT + 12.14.1-SNAPSHOT 4.0.0 @@ -29,7 +29,7 @@ io.ebean ebean-core - 12.13.2-SNAPSHOT + 12.14.1-SNAPSHOT provided @@ -51,7 +51,7 @@ io.ebean ebean-test - 12.13.2-SNAPSHOT + 12.14.1-SNAPSHOT test diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 0862a5696..3e6e22ede 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT ebean postgis @@ -23,7 +23,7 @@ io.ebean ebean-core - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT provided @@ -74,7 +74,7 @@ io.ebean ebean-test - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index a6e2507d7..e04cb19ea 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT provided @@ -56,21 +56,21 @@ io.ebean ebean-ddl-generator - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT test io.ebean querybean-generator - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT test io.ebean ebean-test - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index dca810bd2..5acd9874b 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT ebean-redis @@ -16,41 +16,41 @@ redis.clients jedis - 3.6.3 + 3.8.0 io.ebean ebean-api - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT provided io.ebean ebean-core - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT provided io.ebean ebean-querybean - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT test io.ebean querybean-generator - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT test io.ebean ebean-test - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 98d355e3d..4a2cdf3be 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT ebean test @@ -29,14 +29,14 @@ io.ebean ebean-core - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT provided io.ebean ebean-ddl-generator - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT @@ -226,7 +226,7 @@ ch.qos.logback logback-classic - 1.2.3 + 1.2.9 test diff --git a/ebean-test/src/main/java/io/ebean/test/config/platform/SqlServerSetup.java b/ebean-test/src/main/java/io/ebean/test/config/platform/SqlServerSetup.java index 2dc68b5d7..09b76323e 100644 --- a/ebean-test/src/main/java/io/ebean/test/config/platform/SqlServerSetup.java +++ b/ebean-test/src/main/java/io/ebean/test/config/platform/SqlServerSetup.java @@ -13,7 +13,7 @@ class SqlServerSetup implements PlatformSetup { config.setDefaultPort(1433); config.setUsernameDefault(); config.setPassword("SqlS3rv#r"); - config.setUrl("jdbc:sqlserver://localhost:${port};databaseName=${databaseName}"); + config.setUrl("jdbc:sqlserver://localhost:${port};databaseName=${databaseName};sendTimeAsDateTime=false"); config.setDriver("com.microsoft.sqlserver.jdbc.SQLServerDriver"); config.datasourceDefaults(); diff --git a/ebean-test/src/test/java/org/tests/basic/event/TestPreInsertValidation.java b/ebean-test/src/test/java/org/tests/basic/event/TestPreInsertValidation.java index c67e63c4a..8b86b1f87 100644 --- a/ebean-test/src/test/java/org/tests/basic/event/TestPreInsertValidation.java +++ b/ebean-test/src/test/java/org/tests/basic/event/TestPreInsertValidation.java @@ -6,6 +6,7 @@ import io.ebean.DB; import org.junit.jupiter.api.Test; import org.tests.model.basic.TWithPreInsert; import org.tests.model.basic.TWithPreInsertChild; +import org.tests.model.basic.event.TWithPreInsertPersistAdapter; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -27,6 +28,7 @@ class TestPreInsertValidation extends BaseTestCase { assertThat(e.requestCascadeState()).isEqualTo(2); TWithPreInsert e1 = DB.find(TWithPreInsert.class, e.getId()); + assert e1 != null; e1.setTitle("Missus"); DB.save(e1); @@ -54,11 +56,21 @@ class TestPreInsertValidation extends BaseTestCase { assert e1 != null; e1.setTitle("ParentCascading-changed"); - e1.children().get(0).setName("Child0-changed"); + TWithPreInsertChild childBean = e1.children().get(0); + childBean.setName("Child0-changed"); DB.save(e1); assertThat(e1.requestCascadeState()).isEqualTo(12); - assertThat(e1.children().get(0).requestCascadeState()).isEqualTo(11); + assertThat(childBean.requestCascadeState()).isEqualTo(11); + + DB.delete(e1); + + assertThat(e1.requestCascadeState()).isEqualTo(22); + + // assert that isCascade() was true for the child bean + assertThat(TWithPreInsertPersistAdapter.cascadeDelete).hasSize(1); + String deleteCascade = TWithPreInsertPersistAdapter.cascadeDelete.get(0); + assertThat(deleteCascade).isEqualTo("class org.tests.model.basic.TWithPreInsertChild:1"); } @Test diff --git a/ebean-test/src/test/java/org/tests/idkeys/TestGeneratedKeys.java b/ebean-test/src/test/java/org/tests/idkeys/TestGeneratedKeys.java index 56245930c..8f57569a0 100644 --- a/ebean-test/src/test/java/org/tests/idkeys/TestGeneratedKeys.java +++ b/ebean-test/src/test/java/org/tests/idkeys/TestGeneratedKeys.java @@ -14,6 +14,8 @@ import org.tests.idkeys.db.GenKeySeqB; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assumptions.assumeTrue; @@ -24,6 +26,7 @@ public class TestGeneratedKeys extends BaseTestCase { @ForPlatform(Platform.H2) // readSequenceValue is H2 specific public void testGenKeySeqA() throws SQLException { assumeTrue(idType() == IdType.SEQUENCE); + SpiEbeanServer server = spiEbeanServer(); try (Transaction tx = server.beginTransaction()) { @@ -69,20 +72,34 @@ public class TestGeneratedKeys extends BaseTestCase { } private long readSequenceValue(Transaction tx, String sequence) throws SQLException { - Statement stm = null; - try { - stm = tx.connection().createStatement(); - ResultSet rs = stm.executeQuery("select currval('" + sequence + "')"); - rs.next(); + String sql; + switch (spiEbeanServer().databasePlatform().getPlatform().base()) { + case H2 : + sql = "select currval('" + sequence + "')"; + break; + case DB2 : + sql = "values previous value for " + sequence; + + break; + case SQLSERVER : + sql = "select current_value from sys.sequences where name = '" + sequence + "'"; + break; + + case MARIADB : + throw new UnsupportedOperationException("reading sequence value outside of the current connection is not supported. " + + "See https://mariadb.com/kb/en/previous-value-for-sequence_name/#description"); + + default : + throw new UnsupportedOperationException("reading sequence value from " + + spiEbeanServer().databasePlatform().getPlatform() + + " is not supported."); + + } + try (Statement stm = tx.connection().createStatement()) { + ResultSet rs = stm.executeQuery(sql); + rs.next(); return rs.getLong(1); - } finally { - if (stm != null) { - try { - stm.close(); - } catch (SQLException e) { - } - } } } @@ -109,5 +126,25 @@ public class TestGeneratedKeys extends BaseTestCase { assertNotNull(al.getId()); } } + + @Test + @ForPlatform({Platform.H2, Platform.MARIADB, Platform.SQLSERVER, Platform.DB2}) + public void testGeneratedKeys() throws SQLException { + assumeTrue(idType() == IdType.SEQUENCE); + + SpiEbeanServer server = spiEbeanServer(); + List idList = new ArrayList<>(52); + + try (Transaction tx = server.beginTransaction()) { + // bigger than increment + for (int i = 1; i < 52; i++) { + GenKeySeqA gks = new GenKeySeqA(); + gks.setDescription("my description " + i); + server.save(gks); + assertFalse(idList.contains(gks.getId())); + idList.add(gks.getId()); + } + } + } } diff --git a/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsert.java b/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsert.java index 21398bc7a..acfffce20 100644 --- a/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsert.java +++ b/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsert.java @@ -7,7 +7,7 @@ import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; -import static javax.persistence.CascadeType.PERSIST; +import static javax.persistence.CascadeType.ALL; @Entity public class TWithPreInsert implements TWithPreInsertCommon { @@ -20,7 +20,7 @@ public class TWithPreInsert implements TWithPreInsertCommon { private String title; - @OneToMany(cascade = PERSIST) + @OneToMany(cascade = ALL) private List children = new ArrayList<>(); /** diff --git a/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsertCommon.java b/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsertCommon.java index dc61e28ba..632c7ade9 100644 --- a/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsertCommon.java +++ b/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsertCommon.java @@ -2,6 +2,8 @@ package org.tests.model.basic; public interface TWithPreInsertCommon { + Integer getId(); + String getName(); void setName(String name); diff --git a/ebean-test/src/test/java/org/tests/model/basic/event/TWithPreInsertPersistAdapter.java b/ebean-test/src/test/java/org/tests/model/basic/event/TWithPreInsertPersistAdapter.java index 03143d385..ffc87e00a 100644 --- a/ebean-test/src/test/java/org/tests/model/basic/event/TWithPreInsertPersistAdapter.java +++ b/ebean-test/src/test/java/org/tests/model/basic/event/TWithPreInsertPersistAdapter.java @@ -4,8 +4,13 @@ import io.ebean.event.BeanPersistAdapter; import io.ebean.event.BeanPersistRequest; import org.tests.model.basic.TWithPreInsertCommon; +import java.util.ArrayList; +import java.util.List; + public class TWithPreInsertPersistAdapter extends BeanPersistAdapter { + public static List cascadeDelete = new ArrayList<>(); + @Override public boolean isRegisterFor(Class cls) { return TWithPreInsertCommon.class.isAssignableFrom(cls); @@ -32,4 +37,14 @@ public class TWithPreInsertPersistAdapter extends BeanPersistAdapter { return super.preUpdate(request); } + @Override + public boolean preDelete(BeanPersistRequest request) { + TWithPreInsertCommon bean = (TWithPreInsertCommon) request.bean(); + if (request.isCascade()) { + cascadeDelete.add(bean.getClass() + ":" + bean.getId()); + } else { + bean.requestCascadeState(22); + } + return true; + } } diff --git a/ebean-test/src/test/java/org/tests/text/csv/TestCsvReader.java b/ebean-test/src/test/java/org/tests/text/csv/TestCsvReader.java index 313f5017c..5658d3263 100644 --- a/ebean-test/src/test/java/org/tests/text/csv/TestCsvReader.java +++ b/ebean-test/src/test/java/org/tests/text/csv/TestCsvReader.java @@ -10,6 +10,7 @@ import org.tests.model.basic.ResetBasicData; import java.io.File; import java.io.FileReader; import java.net.URL; +import java.util.Locale; public class TestCsvReader extends TransactionalTestCase { @@ -32,7 +33,7 @@ public class TestCsvReader extends TransactionalTestCase { // csvReader.addProperty("id"); csvReader.addProperty("status"); csvReader.addProperty("name"); - csvReader.addDateTime("anniversary", "dd-MMM-yyyy"); + csvReader.addDateTime("anniversary", "dd-MMM-yyyy", Locale.ENGLISH); csvReader.addProperty("billingAddress.line1"); csvReader.addProperty("billingAddress.city"); csvReader.addProperty("billingAddress.country.code"); diff --git a/ebean-test/src/test/java/org/tests/text/csv/TestCsvReaderWithCallback.java b/ebean-test/src/test/java/org/tests/text/csv/TestCsvReaderWithCallback.java index ef6bfd8c7..bd620401e 100644 --- a/ebean-test/src/test/java/org/tests/text/csv/TestCsvReaderWithCallback.java +++ b/ebean-test/src/test/java/org/tests/text/csv/TestCsvReaderWithCallback.java @@ -10,6 +10,7 @@ import org.tests.model.basic.Customer; import java.io.File; import java.io.FileReader; import java.net.URL; +import java.util.Locale; import static org.assertj.core.api.Assertions.assertThat; @@ -32,7 +33,7 @@ public class TestCsvReaderWithCallback extends TransactionalTestCase { // csvReader.addProperty("id"); csvReader.addProperty("status"); csvReader.addProperty("name"); - csvReader.addDateTime("anniversary", "dd-MMM-yyyy"); + csvReader.addDateTime("anniversary", "dd-MMM-yyyy", Locale.ENGLISH); csvReader.addProperty("billingAddress.line1"); csvReader.addProperty("billingAddress.city"); // processor.addReference("billingAddress.country.code"); diff --git a/ebean/pom.xml b/ebean/pom.xml index 2c3dacdf5..751a7d829 100644 --- a/ebean/pom.xml +++ b/ebean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT ebean composite @@ -22,20 +22,20 @@ io.ebean ebean-api - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT io.ebean ebean-core - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT io.ebean ebean-querybean - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index e897804e2..da44acb28 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT test @@ -43,7 +43,7 @@ io.ebean ebean-core - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT test @@ -64,7 +64,7 @@ io.ebean ebean-ddl-generator - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT test @@ -106,7 +106,7 @@ io.ebean kotlin-querybean-generator - 12.8.2 + 12.13.0 diff --git a/pom.xml b/pom.xml index 1b48a5474..9d8573072 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ io.ebean ebean-parent - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT pom ebean parent @@ -61,7 +61,7 @@ ch.qos.logback logback-classic - 1.2.3 + 1.2.9 test diff --git a/querybean-generator/pom.xml b/querybean-generator/pom.xml index ef25adaa8..3e50a4758 100644 --- a/querybean-generator/pom.xml +++ b/querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.3-SNAPSHOT + 12.14.1-SNAPSHOT querybean generator diff --git a/tests/test-java16/pom.xml b/tests/test-java16/pom.xml index 0f4927da5..302af2a2f 100644 --- a/tests/test-java16/pom.xml +++ b/tests/test-java16/pom.xml @@ -20,19 +20,19 @@ io.ebean ebean - 12.13.2-SNAPSHOT + 12.14.1-SNAPSHOT ch.qos.logback logback-classic - 1.2.3 + 1.2.9 io.ebean ebean-test - 12.13.2-SNAPSHOT + 12.14.1-SNAPSHOT test @@ -58,7 +58,7 @@ io.ebean querybean-generator - 12.13.2-SNAPSHOT + 12.14.1-SNAPSHOT diff --git a/tests/test-kotlin/pom.xml b/tests/test-kotlin/pom.xml index 3ab10cdf5..5e65046dd 100644 --- a/tests/test-kotlin/pom.xml +++ b/tests/test-kotlin/pom.xml @@ -36,21 +36,21 @@ io.ebean ebean-test - 12.13.2-SNAPSHOT + 12.14.1-SNAPSHOT test io.ebean ebean-core - 12.13.2-SNAPSHOT + 12.14.1-SNAPSHOT test ch.qos.logback logback-classic - 1.2.3 + 1.2.9 test