From 39a4035f3bc3268172ddf656cb25124e62a8adfb Mon Sep 17 00:00:00 2001 From: Michal Wysocki Date: Tue, 2 Nov 2021 13:25:42 +0100 Subject: [PATCH 01/54] Extra assertions for DBArray in `asDTO` and `sqlUpdate` --- .../tests/model/array/TestDbArray_basic.java | 124 +++++++++++++++++- 1 file changed, 120 insertions(+), 4 deletions(-) diff --git a/ebean-test/src/test/java/org/tests/model/array/TestDbArray_basic.java b/ebean-test/src/test/java/org/tests/model/array/TestDbArray_basic.java index 69328ce15..4afc1d098 100644 --- a/ebean-test/src/test/java/org/tests/model/array/TestDbArray_basic.java +++ b/ebean-test/src/test/java/org/tests/model/array/TestDbArray_basic.java @@ -1,9 +1,6 @@ package org.tests.model.array; -import io.ebean.BaseTestCase; -import io.ebean.DB; -import io.ebean.Query; -import io.ebean.SqlRow; +import io.ebean.*; import io.ebean.annotation.ForPlatform; import io.ebean.annotation.IgnorePlatform; import io.ebean.annotation.Platform; @@ -272,4 +269,123 @@ public class TestDbArray_basic extends BaseTestCase { assertThat(found.getUids()).hasSameElementsAs(uids); assertThat(found.getStatuses()).hasSameElementsAs(statuses); } + + @Test + @ForPlatform(Platform.POSTGRES) + public void asDto_withArray() { + DB.find(EArrayBean.class).delete(); + bean.setName("array in dto test"); + + List phNumbers = bean.getPhoneNumbers(); + phNumbers.add("4321"); + phNumbers.add("9823"); + List doubs = bean.getDoubs(); + doubs.add(1.23); + doubs.add(4.56); + DB.save(bean); + // Data is saved correctly + + LoggedSql.start(); + DtoQuery query = DB.find(EArrayBean.class) + // Interestingly writing `select("id,name,phone_numbers,doubs")` + // generates `select t0.id, t0.name, t0.id, t0.doubs` + // surprisingly changing unknown property to id + .select("id,name,phoneNumbers,doubs") + .asDto(EArrayBeanDto.class) + // Shouldn't be necessary + // But without it I see error + // Unable to map DB column phone_numbers to a property with a setter method on class org.tests.model.array.TestDbArray_basic$EArrayBeanDto + .setRelaxedMode(); + + List dtos = query.findList(); + + List sql = LoggedSql.stop(); + assertSql(sql.get(0)).contains("select t0.id, t0.name, t0.phone_numbers, t0.doubs"); + + for (EArrayBeanDto dto : dtos) { + assertThat(dto.id).isNotNull(); + assertThat(dto.name).isNotNull(); + // Failure: null + assertThat(dto.phoneNumbers).isNotNull(); + // Failure: null + assertThat(dto.doubs).isNotNull(); + } + } + + @Test + @ForPlatform(Platform.POSTGRES) + public void sqlUpdate_withArray() { + DB.find(EArrayBean.class).delete(); + bean.setName("array in sql update test"); + DB.save(bean); + // Data is saved correctly + List phNumbers = new ArrayList<>(); + phNumbers.add("4321"); + phNumbers.add("9823"); + + LoggedSql.start(); + + // Positional param works + SqlUpdate update1 = DB.sqlUpdate("UPDATE earray_bean SET phone_numbers = ?") + .setParameter(1, phNumbers); + update1.execute(); + System.out.println("done"); + + // Named param fails with + // javax.persistence.PersistenceException: + // ERROR: syntax error at or near "$2" + SqlUpdate update2 = DB.sqlUpdate("UPDATE earray_bean SET phone_numbers = :pns") + .setParameter("pns", phNumbers); + update2.execute(); + + found = DB.find(EArrayBean.class, bean.getId()); + System.out.println(found); + assertEquals("array in sql update test", found.getName()); + assertThat(found.getPhoneNumbers()).containsExactly("4321", "9823"); + } + + public static class EArrayBeanDto { + + Integer id; + List phoneNumbers; + List doubs; + String name; + + @Override + public String toString() { + return "id:" + id + " name:" + name + " phoneNumbers:" + phoneNumbers + " doubs:" + doubs; + } + + 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 getPhoneNumbers() { + return phoneNumbers; + } + + public void setPhoneNumbers(List phoneNumbers) { + this.phoneNumbers = phoneNumbers; + } + + public List getDoubs() { + return doubs; + } + + public void setDoubs(List doubs) { + this.doubs = doubs; + } + } } From 08fc7399ecb5d4d930a5cd086e7fe74c6d447609 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 25 Nov 2021 18:30:00 +1300 Subject: [PATCH 02/54] Tidy DefaultTypeManager with enhanced for --- .../java/io/ebeaninternal/server/type/DefaultTypeManager.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java index 5bc51bbb3..ea4a72ab6 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java @@ -591,8 +591,7 @@ public final class DefaultTypeManager implements TypeManager { */ private ScalarTypeEnum createEnumScalarTypeDbValue(Class> enumType, Method method, boolean integerType, int length, boolean withConstraint) { Map nameValueMap = new LinkedHashMap<>(); - Enum[] enumConstants = enumType.getEnumConstants(); - for (Enum enumConstant : enumConstants) { + for (Enum enumConstant : enumType.getEnumConstants()) { try { Object value = method.invoke(enumConstant); nameValueMap.put(enumConstant.name(), value.toString()); From 9af64f61f7386fb54faea3f8d57c78e69a782399 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 26 Nov 2021 14:32:47 +1300 Subject: [PATCH 03/54] #2435 - Fix DBArray is not loaded in asDto Postgres queries --- .../server/dto/DtoMetaBuilder.java | 7 +------ .../server/dto/DtoMetaProperty.java | 19 ++++++++++++++++--- .../server/type/DefaultTypeManager.java | 12 ++++++++++++ .../server/type/TypeManager.java | 7 +++++++ .../server/dto/DtoMetaBuilderTest.java | 6 ++++-- 5 files changed, 40 insertions(+), 11 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaBuilder.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaBuilder.java index f3cced766..0632e89f2 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaBuilder.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaBuilder.java @@ -37,8 +37,7 @@ final class DtoMetaBuilder { if (includeMethod(method)) { try { final String name = propertyName(method.getName()); - final Class propertyType = propertyType(method); - properties.add(new DtoMetaProperty(typeManager, dtoType, method, name, propertyType)); + properties.add(new DtoMetaProperty(typeManager, dtoType, method, name)); } catch (Exception e) { CoreLog.log.debug("exclude on " + dtoType + " method " + method, e); } @@ -46,10 +45,6 @@ final class DtoMetaBuilder { } } - static Class propertyType(Method method) { - return method.getParameterTypes()[0]; - } - static String propertyName(String methodName) { final String name = methodName.substring(3); return Character.toLowerCase(name.charAt(0)) + name.substring(1); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaProperty.java index fe7d794a1..b73500434 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaProperty.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaProperty.java @@ -8,6 +8,7 @@ import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; import java.lang.reflect.Method; +import java.lang.reflect.Type; import java.sql.SQLException; final class DtoMetaProperty implements DtoReadSet { @@ -19,18 +20,30 @@ final class DtoMetaProperty implements DtoReadSet { private final MethodHandle setter; private final ScalarType scalarType; - DtoMetaProperty(TypeManager typeManager, Class dtoType, Method writeMethod, String name, Class propertyType) throws IllegalAccessException, NoSuchMethodException { + DtoMetaProperty(TypeManager typeManager, Class dtoType, Method writeMethod, String name) throws IllegalAccessException, NoSuchMethodException { this.dtoType = dtoType; this.name = name; if (writeMethod != null) { - this.setter = LOOKUP.findVirtual(dtoType, writeMethod.getName(), MethodType.methodType(void.class, propertyType)); - this.scalarType = typeManager.getScalarType(propertyType); + this.setter = lookupMethodHandle(dtoType, writeMethod); + this.scalarType = typeManager.getScalarType(propertyType(writeMethod), propertyClass(writeMethod)); } else { this.scalarType = null; this.setter = null; } } + private static MethodHandle lookupMethodHandle(Class dtoType, Method method) throws NoSuchMethodException, IllegalAccessException { + return LOOKUP.findVirtual(dtoType, method.getName(), MethodType.methodType(method.getReturnType(), method.getParameterTypes())); + } + + static Type propertyType(Method method) { + return method.getParameters()[0].getParameterizedType(); + } + + static Class propertyClass(Method method) { + return method.getParameterTypes()[0]; + } + String getName() { return name; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java index ea4a72ab6..627d7a9ef 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java @@ -251,6 +251,18 @@ public final class DefaultTypeManager implements TypeManager { return nativeMap.get(jdbcType); } + @Override + public ScalarType getScalarType(Type propertyType, Class propertyClass) { + if (propertyType instanceof ParameterizedType) { + ParameterizedType pt = (ParameterizedType)propertyType; + Type rawType = pt.getRawType(); + if (List.class == rawType || Set.class == rawType) { + return getArrayScalarType((Class)rawType, null, propertyType, true); + } + } + return getScalarType(propertyClass); + } + /** * This can return null if no matching ScalarType is found. */ diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeManager.java index 3a7071317..d604ba8b0 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeManager.java @@ -47,6 +47,13 @@ public interface TypeManager { */ ScalarType getScalarType(Class type, int jdbcType); + /** + * Find and return the ScalarType taking into account the property type with generics. + *

+ * For example Array based ScalarType for types like {@code List}. + */ + ScalarType getScalarType(Type propertyType, Class type); + /** * Create a ScalarType for an Enum using a mapping (rather than JPA Ordinal * or String which has limitations). diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/dto/DtoMetaBuilderTest.java b/ebean-test/src/test/java/io/ebeaninternal/server/dto/DtoMetaBuilderTest.java index 3d476132c..bd75d835c 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/dto/DtoMetaBuilderTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/server/dto/DtoMetaBuilderTest.java @@ -34,8 +34,10 @@ public class DtoMetaBuilderTest { Map methods = getIncludedMethodsFor(D0.class); assertThat(methods).hasSize(2); - assertThat(DtoMetaBuilder.propertyType(methods.get("setName"))).isEqualTo(String.class); - assertThat(DtoMetaBuilder.propertyType(methods.get("setId"))).isEqualTo(long.class); + assertThat(DtoMetaProperty.propertyClass(methods.get("setName"))).isEqualTo(String.class); + assertThat(DtoMetaProperty.propertyClass(methods.get("setId"))).isEqualTo(long.class); + assertThat(DtoMetaProperty.propertyType(methods.get("setName"))).isEqualTo(String.class); + assertThat(DtoMetaProperty.propertyType(methods.get("setId"))).isEqualTo(long.class); } @Test From 07f9bf98c39996598f1f1b4ecf0d859c737a5fce Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 26 Nov 2021 14:46:06 +1300 Subject: [PATCH 04/54] #2436 - SQL Update doesn't handle named parameters for array types in Postgres --- .../src/main/java/io/ebean/DtoQuery.java | 9 +++++++++ .../src/main/java/io/ebean/SqlUpdate.java | 9 +++++++++ .../java/io/ebeaninternal/api/BindParams.java | 9 +++++++++ .../java/io/ebeaninternal/api/SpiQuery.java | 6 ++++++ .../server/core/DefaultSqlUpdate.java | 6 ++++++ .../server/querydefn/DefaultDtoQuery.java | 11 ++++++++++ .../server/querydefn/DefaultOrmQuery.java | 11 ++++++++++ .../src/test/java/io/ebean/DtoQueryTest.java | 20 ++++++++++++++++--- .../tests/model/array/TestDbArray_basic.java | 2 +- .../src/test/resources/ebean.properties | 2 +- 10 files changed, 80 insertions(+), 5 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/DtoQuery.java b/ebean-api/src/main/java/io/ebean/DtoQuery.java index 853cfccb6..7de6c2694 100644 --- a/ebean-api/src/main/java/io/ebean/DtoQuery.java +++ b/ebean-api/src/main/java/io/ebean/DtoQuery.java @@ -2,6 +2,8 @@ package io.ebean; import io.avaje.lang.NonNullApi; import io.avaje.lang.Nullable; + +import java.util.Collection; import java.util.List; import java.util.Optional; import java.util.function.Consumer; @@ -127,6 +129,13 @@ public interface DtoQuery extends CancelableQuery { */ DtoQuery setParameter(String name, Object value); + /** + * Bind the named multi-value array parameter which we would use with Postgres ANY. + *

+ * For Postgres this binds an ARRAY rather than expands into multiple bind values. + */ + DtoQuery setArrayParameter(String name, Collection values); + /** * Bind the parameter by its index position (1 based like JDBC). */ diff --git a/ebean-api/src/main/java/io/ebean/SqlUpdate.java b/ebean-api/src/main/java/io/ebean/SqlUpdate.java index 927050d3f..9ce704922 100644 --- a/ebean-api/src/main/java/io/ebean/SqlUpdate.java +++ b/ebean-api/src/main/java/io/ebean/SqlUpdate.java @@ -1,5 +1,7 @@ package io.ebean; +import java.util.Collection; + /** * A SqlUpdate for executing insert update or delete statements. *

@@ -324,6 +326,13 @@ public interface SqlUpdate { */ SqlUpdate setParameter(String name, Object param); + /** + * Bind the named multi-value array parameter which we would use with Postgres ANY. + *

+ * For Postgres this binds an ARRAY rather than expands into multiple bind values. + */ + SqlUpdate setArrayParameter(String name, Collection values); + /** * Set a named parameter that has a null value. Exactly the same as * {@link #setNullParameter(String, int)}. diff --git a/ebean-core/src/main/java/io/ebeaninternal/api/BindParams.java b/ebean-core/src/main/java/io/ebeaninternal/api/BindParams.java index 151a0b899..ca813ae14 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/api/BindParams.java +++ b/ebean-core/src/main/java/io/ebeaninternal/api/BindParams.java @@ -223,6 +223,15 @@ public final class BindParams implements Serializable { return p; } + /** + * Set a named In parameter that is multi-valued. + */ + public Param setArrayParameter(String name, Collection value) { + Param p = getParam(name); + p.setInValue(new MultiValueWrapper(value)); + return p; + } + /** * Set an encryption key as a bind value. *

diff --git a/ebean-core/src/main/java/io/ebeaninternal/api/SpiQuery.java b/ebean-core/src/main/java/io/ebeaninternal/api/SpiQuery.java index 3f2e97893..222f00b9a 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/api/SpiQuery.java +++ b/ebean-core/src/main/java/io/ebeaninternal/api/SpiQuery.java @@ -24,6 +24,7 @@ import io.ebeaninternal.server.querydefn.OrmUpdateProperties; import io.ebeaninternal.server.rawsql.SpiRawSql; import java.sql.Timestamp; +import java.util.Collection; import java.util.List; import java.util.Set; @@ -399,6 +400,11 @@ public interface SpiQuery extends Query, SpiQueryFetch, TxnProfileEventCod List getSoftDeletePredicates(); + /** + * Bind the named multi-value array parameter which we would use with Postgres ANY. + */ + void setArrayParameter(String name, Collection values); + /** * Return a copy of the query. */ diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultSqlUpdate.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultSqlUpdate.java index 8f66ae6eb..756c5665f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultSqlUpdate.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultSqlUpdate.java @@ -331,6 +331,12 @@ public final class DefaultSqlUpdate implements Serializable, SpiSqlUpdate { return this; } + @Override + public SqlUpdate setArrayParameter(String name, Collection values) { + bindParams.setArrayParameter(name, values); + return this; + } + @Override public SqlUpdate setNull(String name, int jdbcType) { bindParams.setNullParameter(name, jdbcType); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultDtoQuery.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultDtoQuery.java index 5b3c49aac..8120aa093 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultDtoQuery.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultDtoQuery.java @@ -14,6 +14,7 @@ import io.ebeaninternal.server.dto.DtoMappingRequest; import io.ebeaninternal.server.dto.DtoQueryPlan; import javax.annotation.Nullable; +import java.util.Collection; import java.util.List; import java.util.Optional; import java.util.function.Consumer; @@ -148,6 +149,16 @@ public final class DefaultDtoQuery extends AbstractQuery implements SpiDtoQue return this; } + @Override + public DtoQuery setArrayParameter(String paramName, Collection values) { + if (ormQuery != null) { + ormQuery.setArrayParameter(paramName, values); + } else { + bindParams.setArrayParameter(paramName, values); + } + return this; + } + @Override public DtoQuery setParameters(Object... values) { if (ormQuery != null) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java index 908490080..5b700d3f6 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java @@ -1586,6 +1586,17 @@ public final class DefaultOrmQuery extends AbstractQuery implements SpiQuery< return this; } + @Override + public void setArrayParameter(String name, Collection values) { + if (namedParams != null) { + throw new IllegalStateException("setArrayParameter() not supported when EQL parsed query"); + } + if (bindParams == null) { + bindParams = new BindParams(); + } + bindParams.setArrayParameter(name, values); + } + @Override public boolean checkPagingOrderBy() { return orderById && !useDocStore; diff --git a/ebean-test/src/test/java/io/ebean/DtoQueryTest.java b/ebean-test/src/test/java/io/ebean/DtoQueryTest.java index 53b2b4ca4..f41928909 100644 --- a/ebean-test/src/test/java/io/ebean/DtoQueryTest.java +++ b/ebean-test/src/test/java/io/ebean/DtoQueryTest.java @@ -208,19 +208,33 @@ public class DtoQueryTest extends BaseTestCase { ResetBasicData.reset(); + LoggedSql.start(); List ids = Arrays.asList(1, 2); - List list = server().findDto(DCust.class, "select id, name from o_customer where id = any(?)") + List list = DB.findDto(DCust.class, "select id, name from o_customer where id = any(?)") .setParameter(ids) .findList(); assertThat(list).isNotEmpty(); - list = server().findDto(DCust.class, "select id, name from o_customer where id in (:idList)") + List list1 = DB.findDto(DCust.class, "select id, name from o_customer where id in (:idList)") .setParameter("idList", ids) .findList(); - assertThat(list).isNotEmpty(); + assertThat(list1).isNotEmpty(); + + + List list2 = DB.findDto(DCust.class, "select id, name from o_customer where id = any(:idList)") + .setArrayParameter("idList", ids) + .findList(); + + assertThat(list2).isNotEmpty(); + + List sql = LoggedSql.stop(); + assertThat(sql).hasSize(3); + assertThat(sql.get(0)).contains(" id = any(?)"); + assertThat(sql.get(1)).contains(" id in (?,?)"); + assertThat(sql.get(2)).contains(" id = any(?)"); } @ForPlatform(Platform.POSTGRES) diff --git a/ebean-test/src/test/java/org/tests/model/array/TestDbArray_basic.java b/ebean-test/src/test/java/org/tests/model/array/TestDbArray_basic.java index 4afc1d098..0a4b1a0fb 100644 --- a/ebean-test/src/test/java/org/tests/model/array/TestDbArray_basic.java +++ b/ebean-test/src/test/java/org/tests/model/array/TestDbArray_basic.java @@ -335,7 +335,7 @@ public class TestDbArray_basic extends BaseTestCase { // javax.persistence.PersistenceException: // ERROR: syntax error at or near "$2" SqlUpdate update2 = DB.sqlUpdate("UPDATE earray_bean SET phone_numbers = :pns") - .setParameter("pns", phNumbers); + .setArrayParameter("pns", phNumbers); update2.execute(); found = DB.find(EArrayBean.class, bean.getId()); diff --git a/ebean-test/src/test/resources/ebean.properties b/ebean-test/src/test/resources/ebean.properties index 0fc9586f9..ffaa4a3d1 100644 --- a/ebean-test/src/test/resources/ebean.properties +++ b/ebean-test/src/test/resources/ebean.properties @@ -22,7 +22,7 @@ ebean.ddl.generate=true ebean.ddl.run=true ebean.ddl.header=-- Generated by ebean ${version} at ${timestamp} ebean.packages=org.tests,org.etest -datasource.default=h2 +datasource.default=pg #datasource.h2.capturestacktrace=true ebean.dumpMetricsOnShutdown=true From d05a77e7550fa93f3cd5efeb477419c58e609752 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 26 Nov 2021 14:48:45 +1300 Subject: [PATCH 05/54] reset test datasource back to h2 --- ebean-test/src/test/resources/ebean.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ebean-test/src/test/resources/ebean.properties b/ebean-test/src/test/resources/ebean.properties index ffaa4a3d1..0fc9586f9 100644 --- a/ebean-test/src/test/resources/ebean.properties +++ b/ebean-test/src/test/resources/ebean.properties @@ -22,7 +22,7 @@ ebean.ddl.generate=true ebean.ddl.run=true ebean.ddl.header=-- Generated by ebean ${version} at ${timestamp} ebean.packages=org.tests,org.etest -datasource.default=pg +datasource.default=h2 #datasource.h2.capturestacktrace=true ebean.dumpMetricsOnShutdown=true From 268146df85039ae3b54ebc36a86858f9d0ef3136 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 26 Nov 2021 14:55:16 +1300 Subject: [PATCH 06/54] Tidy up TypeManager API after #2435 --- .../java/io/ebeaninternal/server/deploy/parse/DeployUtil.java | 2 +- .../java/io/ebeaninternal/server/type/DefaultTypeManager.java | 4 ++-- .../main/java/io/ebeaninternal/server/type/TypeManager.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployUtil.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployUtil.java index 74a7bd5b5..a8cbe5fdf 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployUtil.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployUtil.java @@ -172,7 +172,7 @@ public final class DeployUtil { */ void setDbArray(DeployBeanProperty prop, DbArray dbArray) { Class type = prop.getPropertyType(); - ScalarType scalarType = typeManager.getArrayScalarType(type, dbArray, prop.getGenericType(), prop.isNullable()); + ScalarType scalarType = typeManager.getArrayScalarType(type, prop.getGenericType(), prop.isNullable()); if (scalarType == null) { throw new RuntimeException("No ScalarType for @DbArray type for [" + prop.getFullBeanName() + "]"); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java index 627d7a9ef..544d8433e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java @@ -257,7 +257,7 @@ public final class DefaultTypeManager implements TypeManager { ParameterizedType pt = (ParameterizedType)propertyType; Type rawType = pt.getRawType(); if (List.class == rawType || Set.class == rawType) { - return getArrayScalarType((Class)rawType, null, propertyType, true); + return getArrayScalarType((Class)rawType, propertyType, true); } } return getScalarType(propertyClass); @@ -298,7 +298,7 @@ public final class DefaultTypeManager implements TypeManager { } @Override - public ScalarType getArrayScalarType(Class type, DbArray dbArray, Type genericType, boolean nullable) { + public ScalarType getArrayScalarType(Class type, Type genericType, boolean nullable) { Type valueType = getValueType(genericType); if (type.equals(List.class)) { return getArrayScalarTypeList(valueType, nullable); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeManager.java index d604ba8b0..692e65681 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeManager.java @@ -71,7 +71,7 @@ public interface TypeManager { /** * Return the ScalarType used to handle DB ARRAY. */ - ScalarType getArrayScalarType(Class type, DbArray dbArray, Type genericType, boolean nullable); + ScalarType getArrayScalarType(Class type, Type genericType, boolean nullable); /** * Return the ScalarType used to handle HSTORE (Map). From 63b9b42dc882732421bc51dc16ec2a47bcaf7789 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 26 Nov 2021 16:34:15 +1300 Subject: [PATCH 07/54] #2433 - Postgres JSONB dirty checking - trim json --- .../ebeaninternal/server/type/JsonTrim.java | 9 +++- .../server/type/JsonTrimTest.java | 42 +++++++++++++++++-- 2 files changed, 46 insertions(+), 5 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/JsonTrim.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/JsonTrim.java index 97592fb34..ec0808f14 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/JsonTrim.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/JsonTrim.java @@ -19,8 +19,13 @@ final class JsonTrim { for (int i = 0; i < len; i++) { char c = json.charAt(i); if (c == '\"') { - if (!escaped) quoted = !quoted; - else escaped = false; + if (!escaped) { + quoted = !quoted; + } else { + escaped = false; + } + } else if (escaped) { + escaped = false; } else if (quoted && c == '\\') { escaped = true; } diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/type/JsonTrimTest.java b/ebean-test/src/test/java/io/ebeaninternal/server/type/JsonTrimTest.java index c08ceeab7..a2b3c1cfe 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/type/JsonTrimTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/server/type/JsonTrimTest.java @@ -5,17 +5,53 @@ import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; -public class JsonTrimTest { +class JsonTrimTest { @Test - public void trim_array() { + void trim_array() { final String trimmed = JsonTrim.trim("[{\"name\": \"one\", \"along\": 1, \"timestamp\": 1629609021559}, {\"name\": \"two\", \"along\": 2, \"timestamp\": 1629609021559}]"); assertThat(trimmed).isEqualTo("[{\"name\":\"one\",\"along\":1,\"timestamp\":1629609021559},{\"name\":\"two\",\"along\":2,\"timestamp\":1629609021559}]"); } @Test - public void trim_object() { + void trim_object() { final String trimmed = JsonTrim.trim("{\"name\": \"one\",\t \t \"along\": 1, \"timestamp\": 1629609021559}"); assertThat(trimmed).isEqualTo("{\"name\":\"one\",\"along\":1,\"timestamp\":1629609021559}"); } + + @Test + void trim_object_embeddedEscapeSlash() { + final String trimmed = JsonTrim.trim("{\"a\": \"o\\nf\",\t \t \n \"b\": 1}"); + assertThat(trimmed).isEqualTo("{\"a\":\"o\\nf\",\"b\":1}"); + } + + @Test + void trim_escapedTabNewLine() { + final String trimmed = JsonTrim.trim("{\"a\": \"o\\t\\nf\",\t \t \n \"b\": 1}"); + assertThat(trimmed).isEqualTo("{\"a\":\"o\\t\\nf\",\"b\":1}"); + } + + @Test + void trim_leadingEscapedNewLine() { + final String trimmed = JsonTrim.trim("{\"a\": \"\\no\\t\\nf\\n\",\t \t \n \"b\": 1}"); + assertThat(trimmed).isEqualTo("{\"a\":\"\\no\\t\\nf\\n\",\"b\":1}"); + } + + @Test + void trim_trailingEscapedNewLine() { + final String trimmed = JsonTrim.trim("{\"a\": \"o\\t\\nf\\n\",\t \t \n \"b\": 1}"); + assertThat(trimmed).isEqualTo("{\"a\":\"o\\t\\nf\\n\",\"b\":1}"); + } + + @Test + void trim_trailingEscapedSlash() { + final String trimmed = JsonTrim.trim("{\"a\": \"o\\t\\nf\\\\\",\t \t \n \"b\": 1}"); + assertThat(trimmed).isEqualTo("{\"a\":\"o\\t\\nf\\\\\",\"b\":1}"); + } + + @Test + void trim_object_embeddedEscaped() { + final String trimmed = JsonTrim.trim("{\"name\": \"one\nfoo\nbar\\bazz\tboo\",\t \t \n \"along\": 1}"); + assertThat(trimmed).isEqualTo("{\"name\":\"one\nfoo\nbar\\bazz\tboo\",\"along\":1}"); + } } From a9c6cd15a1975d2bcdffa0dca8c904205631f145 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 26 Nov 2021 16:39:09 +1300 Subject: [PATCH 08/54] #2433 - Postgres JSONB dirty checking - trim json --- .../java/io/ebeaninternal/server/type/JsonTrimTest.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/type/JsonTrimTest.java b/ebean-test/src/test/java/io/ebeaninternal/server/type/JsonTrimTest.java index a2b3c1cfe..27d1ad8f9 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/type/JsonTrimTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/server/type/JsonTrimTest.java @@ -54,4 +54,10 @@ class JsonTrimTest { final String trimmed = JsonTrim.trim("{\"name\": \"one\nfoo\nbar\\bazz\tboo\",\t \t \n \"along\": 1}"); assertThat(trimmed).isEqualTo("{\"name\":\"one\nfoo\nbar\\bazz\tboo\",\"along\":1}"); } + + @Test + void trim_escaped() { + final String trimmed = JsonTrim.trim(" \t \n {\"a\": \n \"\\t1\\t2\\n3\\\\\",\t \n \"b\": \"\\t1\\t2\\n3\\\\\" , \t \n \"c\": \"\\t1\\t2\\n3\\\\\" \t \n }"); + assertThat(trimmed).isEqualTo("{\"a\":\"\\t1\\t2\\n3\\\\\",\"b\":\"\\t1\\t2\\n3\\\\\",\"c\":\"\\t1\\t2\\n3\\\\\"}"); + } } From 83fbfd1b2a33977b31956d148db063a588eadd99 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 26 Nov 2021 20:54:28 +1300 Subject: [PATCH 09/54] No effective change - tidy inline for ImportedIdEmbedded, ImportedIdSimple --- .../io/ebeaninternal/server/deploy/id/ImportedIdEmbedded.java | 3 +-- .../io/ebeaninternal/server/deploy/id/ImportedIdSimple.java | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/ImportedIdEmbedded.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/ImportedIdEmbedded.java index 5776b7ccc..7f6c3d96e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/ImportedIdEmbedded.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/ImportedIdEmbedded.java @@ -35,8 +35,7 @@ public final class ImportedIdEmbedded implements ImportedId { BeanProperty[] embeddedProps = foreignAssocOne.properties(); for (int i = 0; i < imported.length; i++) { String n = name + "." + foreignAssocOne.name() + "." + embeddedProps[i].name(); - BeanFkeyProperty fkey = new BeanFkeyProperty(n, imported[i].localDbColumn, foreignAssocOne.deployOrder()); - owner.descriptor().add(fkey); + owner.descriptor().add(new BeanFkeyProperty(n, imported[i].localDbColumn, foreignAssocOne.deployOrder())); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/ImportedIdSimple.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/ImportedIdSimple.java index df4c3272c..fe3e8ce2e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/ImportedIdSimple.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/id/ImportedIdSimple.java @@ -88,8 +88,7 @@ public final class ImportedIdSimple implements ImportedId, Comparable Date: Fri, 26 Nov 2021 21:10:31 +1300 Subject: [PATCH 10/54] #2444 - exists and findCount queries produce NPE on entity defined with IdClass - SqlTreeProperties.add(SqlTreeProperties.java:38) --- .../server/deploy/BeanDescriptor.java | 22 +++++++ .../server/deploy/BeanDescriptorElement.java | 5 ++ .../server/querydefn/DefaultOrmQuery.java | 4 +- .../tests/model/bridge/TestIdClassScalar.java | 64 +++++++++++++++---- 4 files changed, 80 insertions(+), 15 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java index 325213933..eba1eea95 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java @@ -208,6 +208,7 @@ public class BeanDescriptor implements BeanType, STreeType, SpiBeanType { private final EntityBean prototypeEntityBean; private final IdBinder idBinder; + private final String idSelect; private String idBinderInLHSSql; private String idBinderIdSql; private String deleteByIdSql; @@ -349,6 +350,23 @@ public class BeanDescriptor implements BeanType, STreeType, SpiBeanType { propertiesIndex[i] = propMap.get(ebi.getProperty(i)); } } + idSelect = initIdSelect(); + } + + String initIdSelect() { + if (idProperty != null && !idProperty.name().equals("_idClass")) { + return idProperty.name(); + } else if (entityType == EntityType.EMBEDDED) { + return null; + } else { + StringJoiner sj = new StringJoiner(","); + for (BeanProperty prop : propertiesNonMany) { + if (prop.isImportedPrimaryKey()) { + sj.add(prop.name()); + } + } + return sj.toString().intern(); + } } public boolean isJacksonCorePresent() { @@ -3011,6 +3029,10 @@ public class BeanDescriptor implements BeanType, STreeType, SpiBeanType { return idProperty; } + public String idSelect() { + return idSelect; + } + /** * Return true if this bean should be inserted rather than updated. * diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElement.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElement.java index c69fbb265..938a4c3d4 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElement.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorElement.java @@ -23,6 +23,11 @@ abstract class BeanDescriptorElement extends BeanDescriptor { this.elementHelp = elementHelp; } + @Override + String initIdSelect() { + return null; + } + private String shortName(String name) { int pos = name.lastIndexOf('.'); if (pos > 1) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java index 5b700d3f6..307b2713c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java @@ -586,9 +586,9 @@ public final class DefaultOrmQuery extends AbstractQuery implements SpiQuery< */ @Override public void setSelectId() { - // clear select and fetch joins.. + // clear select and fetch joins detail.clear(); - select(beanDescriptor.idBinder().getIdProperty()); + select(beanDescriptor.idSelect()); } @Override diff --git a/ebean-test/src/test/java/org/tests/model/bridge/TestIdClassScalar.java b/ebean-test/src/test/java/org/tests/model/bridge/TestIdClassScalar.java index 78952eb7a..2cedcc84d 100644 --- a/ebean-test/src/test/java/org/tests/model/bridge/TestIdClassScalar.java +++ b/ebean-test/src/test/java/org/tests/model/bridge/TestIdClassScalar.java @@ -6,18 +6,19 @@ import io.ebean.Transaction; import io.ebean.test.LoggedSql; import org.junit.jupiter.api.Test; +import java.util.Arrays; import java.util.List; import java.util.UUID; import static org.assertj.core.api.Assertions.assertThat; -public class TestIdClassScalar extends BaseTestCase { +class TestIdClassScalar extends BaseTestCase { - private BUser user = new BUser("Fiona"); - private BSite site = new BSite("avaje.io"); + private final BUser user = new BUser("Fiona"); + private final BSite site = new BSite("avaje.io"); @Test - public void testBEmbId_equalsHashcode() { + void testBEmbId_equalsHashcode() { BEmbId a = new BEmbId(UUID.randomUUID(), UUID.randomUUID()); BEmbId b = new BEmbId(a.getSiteId(), a.getUserId()); @@ -35,13 +36,11 @@ public class TestIdClassScalar extends BaseTestCase { assertThat(a).isNotEqualTo(d); assertThat(a.hashCode()).isNotEqualTo(d.hashCode()); - assertThat(a.hashCode()).isEqualTo(a.otherHash()); - } @Test - public void fetchMany() { + void fetchMany() { UUID siteId = UUID.randomUUID(); UUID userId = UUID.randomUUID(); @@ -59,7 +58,7 @@ public class TestIdClassScalar extends BaseTestCase { } @Test - public void insertBatch() { + void insertBatch() { UUID siteId = UUID.randomUUID(); UUID userId = UUID.randomUUID(); @@ -81,11 +80,9 @@ public class TestIdClassScalar extends BaseTestCase { } @Test - public void test() { - + void test() { DB.save(user); DB.save(site); - insertUpdateBridgeD(user, site); insertUpdateBridgeE(user, site); } @@ -94,7 +91,6 @@ public class TestIdClassScalar extends BaseTestCase { * Test where matching by db column naming convention. */ private void insertUpdateBridgeD(BUser user, BSite site) { - LoggedSql.start(); BSiteUserD access = new BSiteUserD(BAccessLevel.ONE, site.id, user.id); @@ -139,7 +135,6 @@ public class TestIdClassScalar extends BaseTestCase { * Test where matching by db column naming convention. */ private void insertUpdateBridgeE(BUser user, BSite site) { - LoggedSql.start(); BSiteUserE access = new BSiteUserE(BAccessLevel.ONE, site, user); @@ -181,4 +176,47 @@ public class TestIdClassScalar extends BaseTestCase { assertSql(sql.get(1)).contains("update bsite_user_e set access_level=? where site_id=? and user_id=?"); } + + @Test + void idClass_existsQuery() { + BUser user = new BUser("JunkUser2"); + BSite site = new BSite("JunkSite2"); + BSiteUserE access = new BSiteUserE(BAccessLevel.ONE, site, user); + + DB.save(user); + DB.save(site); + DB.save(access); + + boolean exists = DB.find(BSiteUserE.class) + .where().eq("user.id", user.id) + .exists(); + + assertThat(exists).isTrue(); + assertThat(DB.find(BSiteUserE.class).where().eq("user.id", user.id).findCount()).isEqualTo(1); + + DB.delete(access); + DB.deleteAll(Arrays.asList(user, site)); + } + + @Test + void idClass_existsQuery_scalarImportedProperties() { + BUser user = new BUser("JunkUser3"); + BSite site = new BSite("JunkSite3"); + DB.save(user); + DB.save(site); + + BSiteUserD access = new BSiteUserD(BAccessLevel.ONE, site.id, user.id); + DB.save(access); + + boolean exists = DB.find(BSiteUserD.class) + .where().eq("userId", user.id) + .exists(); + + assertThat(exists).isTrue(); + assertThat(DB.find(BSiteUserD.class).where().eq("userId", user.id).findCount()).isEqualTo(1); + + DB.delete(access); + DB.deleteAll(Arrays.asList(user, site)); + } + } From 2cad98ad2613b0e25d3015069e76bc75aea6188b Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 26 Nov 2021 21:25:54 +1300 Subject: [PATCH 11/54] Move DetermineManyType into io.ebeaninternal.server.deploy.parse This allows it to be package private --- .../server/deploy/parse/DeployCreateProperties.java | 1 - .../server/deploy/{ => parse}/DetermineManyType.java | 8 +++++--- 2 files changed, 5 insertions(+), 4 deletions(-) rename ebean-core/src/main/java/io/ebeaninternal/server/deploy/{ => parse}/DetermineManyType.java (67%) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployCreateProperties.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployCreateProperties.java index 0ba8ef542..426c92048 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployCreateProperties.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployCreateProperties.java @@ -5,7 +5,6 @@ import io.ebean.annotation.*; import io.ebean.core.type.ScalarType; import io.ebean.util.AnnotationUtil; import io.ebeaninternal.api.CoreLog; -import io.ebeaninternal.server.deploy.DetermineManyType; import io.ebeaninternal.server.deploy.ManyType; import io.ebeaninternal.server.deploy.meta.*; import io.ebeaninternal.server.type.TypeManager; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DetermineManyType.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DetermineManyType.java similarity index 67% rename from ebean-core/src/main/java/io/ebeaninternal/server/deploy/DetermineManyType.java rename to ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DetermineManyType.java index fc1859074..40fc6016b 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DetermineManyType.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DetermineManyType.java @@ -1,4 +1,6 @@ -package io.ebeaninternal.server.deploy; +package io.ebeaninternal.server.deploy.parse; + +import io.ebeaninternal.server.deploy.ManyType; import java.util.List; import java.util.Map; @@ -7,9 +9,9 @@ import java.util.Set; /** * Determine the Many Type for a property. */ -public final class DetermineManyType { +final class DetermineManyType { - public ManyType getManyType(Class type) { + ManyType getManyType(Class type) { if (type.equals(List.class)) { return ManyType.LIST; } From c3e91fed65a630805550b46c3d5c3a00a313c4d9 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 26 Nov 2021 21:33:26 +1300 Subject: [PATCH 12/54] Tidy TestElementCollectionBasicSet only --- .../elementcollection/TestElementCollectionBasicSet.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicSet.java b/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicSet.java index 3f3f8342d..fa99f45da 100644 --- a/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicSet.java +++ b/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicSet.java @@ -10,11 +10,10 @@ import java.util.Set; import static org.assertj.core.api.Assertions.assertThat; -public class TestElementCollectionBasicSet extends BaseTestCase { +class TestElementCollectionBasicSet extends BaseTestCase { @Test - public void test() { - + void test() { LoggedSql.start(); EcsPerson person = new EcsPerson("Fiona021"); @@ -172,8 +171,7 @@ public class TestElementCollectionBasicSet extends BaseTestCase { } @Test - public void json() { - + void json() { EcsPerson person = new EcsPerson("Fiona021"); person.getPhoneNumbers().add("021 1234"); person.getPhoneNumbers().add("021 4321"); From 28d4d07966d7df4ecb0612035a449d3aceed9acf Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 26 Nov 2021 21:52:40 +1300 Subject: [PATCH 13/54] test config only, stop dumping metrics on jvm shutdown --- ebean-test/src/test/resources/ebean.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ebean-test/src/test/resources/ebean.properties b/ebean-test/src/test/resources/ebean.properties index 0fc9586f9..6701fdf38 100644 --- a/ebean-test/src/test/resources/ebean.properties +++ b/ebean-test/src/test/resources/ebean.properties @@ -25,7 +25,7 @@ ebean.packages=org.tests,org.etest datasource.default=h2 #datasource.h2.capturestacktrace=true -ebean.dumpMetricsOnShutdown=true +#ebean.dumpMetricsOnShutdown=true ebean.dumpMetricsOptions=sql,hash,loc #ebean.queryPlan.thresholdMicros=1000 ebean.queryPlan.enable=true From 09115a824d09ff39d4877e2074d9ed65578526a4 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 26 Nov 2021 21:57:04 +1300 Subject: [PATCH 14/54] [maven-release-plugin] prepare release ebean-parent-12.13.1 --- ebean-api/pom.xml | 2 +- ebean-autotune/pom.xml | 6 +++--- ebean-bom/pom.xml | 30 +++++++++++++++--------------- ebean-core-type/pom.xml | 4 ++-- ebean-core/pom.xml | 10 +++++----- ebean-ddl-generator/pom.xml | 6 +++--- ebean-externalmapping-api/pom.xml | 2 +- ebean-externalmapping-xml/pom.xml | 10 +++++----- ebean-postgis/pom.xml | 6 +++--- ebean-querybean/pom.xml | 10 +++++----- ebean-redis/pom.xml | 12 ++++++------ ebean-test/pom.xml | 6 +++--- ebean/pom.xml | 8 ++++---- kotlin-querybean-generator/pom.xml | 8 ++++---- pom.xml | 4 ++-- querybean-generator/pom.xml | 2 +- 16 files changed, 63 insertions(+), 63 deletions(-) diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml index 5e0b9430a..15958d47e 100644 --- a/ebean-api/pom.xml +++ b/ebean-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1-SNAPSHOT + 12.13.1 ebean api diff --git a/ebean-autotune/pom.xml b/ebean-autotune/pom.xml index 71f390c01..a90e8029a 100644 --- a/ebean-autotune/pom.xml +++ b/ebean-autotune/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1-SNAPSHOT + 12.13.1 @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-12.13.1 ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 12.13.1-SNAPSHOT + 12.13.1 provided diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index 34f8c9564..0f2c1e526 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1-SNAPSHOT + 12.13.1 ebean bom @@ -71,88 +71,88 @@ io.ebean ebean - 12.13.1-SNAPSHOT + 12.13.1 io.ebean ebean-api - 12.13.1-SNAPSHOT + 12.13.1 io.ebean ebean-core - 12.13.1-SNAPSHOT + 12.13.1 io.ebean ebean-core-type - 12.13.1-SNAPSHOT + 12.13.1 io.ebean ebean-ddl-generator - 12.13.1-SNAPSHOT + 12.13.1 io.ebean ebean-externalmapping-api - 12.13.1-SNAPSHOT + 12.13.1 io.ebean ebean-externalmapping-xml - 12.13.1-SNAPSHOT + 12.13.1 io.ebean ebean-autotune - 12.13.1-SNAPSHOT + 12.13.1 io.ebean ebean-querybean - 12.13.1-SNAPSHOT + 12.13.1 io.ebean querybean-generator - 12.13.1-SNAPSHOT + 12.13.1 provided io.ebean kotlin-querybean-generator - 12.13.1-SNAPSHOT + 12.13.1 provided io.ebean ebean-test - 12.13.1-SNAPSHOT + 12.13.1 test io.ebean ebean-postgis - 12.13.1-SNAPSHOT + 12.13.1 io.ebean ebean-redis - 12.13.1-SNAPSHOT + 12.13.1 diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index 09009283c..3916d6451 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1-SNAPSHOT + 12.13.1 ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 12.13.1-SNAPSHOT + 12.13.1 diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index ccef24355..5e4c88e23 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 12.13.1-SNAPSHOT + 12.13.1 ebean-core @@ -15,7 +15,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-12.13.1 @@ -41,19 +41,19 @@ io.ebean ebean-api - 12.13.1-SNAPSHOT + 12.13.1 io.ebean ebean-core-type - 12.13.1-SNAPSHOT + 12.13.1 io.ebean ebean-externalmapping-api - 12.13.1-SNAPSHOT + 12.13.1 diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index b2479c256..5c0680f6c 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1-SNAPSHOT + 12.13.1 ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 12.13.1-SNAPSHOT + 12.13.1 provided io.ebean ebean-core - 12.13.1-SNAPSHOT + 12.13.1 provided diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index 16adb312f..606ea9038 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1-SNAPSHOT + 12.13.1 ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 2bab5aa0b..6fa5ab7f5 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1-SNAPSHOT + 12.13.1 @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-12.13.1 ebean external mapping xml @@ -33,7 +33,7 @@ io.ebean ebean-externalmapping-api - 12.13.1-SNAPSHOT + 12.13.1 @@ -59,14 +59,14 @@ io.ebean ebean-core - 12.13.1-SNAPSHOT + 12.13.1 test io.ebean ebean-ddl-generator - 12.13.1-SNAPSHOT + 12.13.1 test diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 74dad99da..6a5a8cb4a 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1-SNAPSHOT + 12.13.1 ebean postgis @@ -23,7 +23,7 @@ io.ebean ebean-core - 12.13.1-SNAPSHOT + 12.13.1 provided @@ -74,7 +74,7 @@ io.ebean ebean-test - 12.13.1-SNAPSHOT + 12.13.1 test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index bc07795b5..02fa78ac3 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1-SNAPSHOT + 12.13.1 ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 12.13.1-SNAPSHOT + 12.13.1 provided @@ -56,21 +56,21 @@ io.ebean ebean-ddl-generator - 12.13.1-SNAPSHOT + 12.13.1 test io.ebean querybean-generator - 12.13.1-SNAPSHOT + 12.13.1 test io.ebean ebean-test - 12.13.1-SNAPSHOT + 12.13.1 test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index 9956949b3..b49d1b8c7 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1-SNAPSHOT + 12.13.1 ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 12.13.1-SNAPSHOT + 12.13.1 provided io.ebean ebean-core - 12.13.1-SNAPSHOT + 12.13.1 provided io.ebean ebean-querybean - 12.13.1-SNAPSHOT + 12.13.1 test io.ebean querybean-generator - 12.13.1-SNAPSHOT + 12.13.1 test io.ebean ebean-test - 12.13.1-SNAPSHOT + 12.13.1 test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 6a2a5679f..5ab05c7aa 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1-SNAPSHOT + 12.13.1 ebean test @@ -29,14 +29,14 @@ io.ebean ebean-core - 12.13.1-SNAPSHOT + 12.13.1 provided io.ebean ebean-ddl-generator - 12.13.1-SNAPSHOT + 12.13.1 diff --git a/ebean/pom.xml b/ebean/pom.xml index 398c3a3a3..aa6e5ad12 100644 --- a/ebean/pom.xml +++ b/ebean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1-SNAPSHOT + 12.13.1 ebean composite @@ -22,20 +22,20 @@ io.ebean ebean-api - 12.13.1-SNAPSHOT + 12.13.1 io.ebean ebean-core - 12.13.1-SNAPSHOT + 12.13.1 io.ebean ebean-querybean - 12.13.1-SNAPSHOT + 12.13.1 diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index b2e022c98..14c6bf03b 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1-SNAPSHOT + 12.13.1 kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 12.13.1-SNAPSHOT + 12.13.1 test @@ -43,7 +43,7 @@ io.ebean ebean-core - 12.13.1-SNAPSHOT + 12.13.1 test @@ -64,7 +64,7 @@ io.ebean ebean-ddl-generator - 12.13.1-SNAPSHOT + 12.13.1 test diff --git a/pom.xml b/pom.xml index f4202a3b6..8233a66fb 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ io.ebean ebean-parent - 12.13.1-SNAPSHOT + 12.13.1 pom ebean parent @@ -18,7 +18,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-12.13.1 diff --git a/querybean-generator/pom.xml b/querybean-generator/pom.xml index 51de4c806..65d28d014 100644 --- a/querybean-generator/pom.xml +++ b/querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1-SNAPSHOT + 12.13.1 querybean generator From 0a71ad624e66c638ab7a7ab6be506679ba200589 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 26 Nov 2021 21:57:10 +1300 Subject: [PATCH 15/54] [maven-release-plugin] prepare for next development iteration --- ebean-api/pom.xml | 2 +- ebean-autotune/pom.xml | 6 +++--- ebean-bom/pom.xml | 30 +++++++++++++++--------------- ebean-core-type/pom.xml | 4 ++-- ebean-core/pom.xml | 10 +++++----- ebean-ddl-generator/pom.xml | 6 +++--- ebean-externalmapping-api/pom.xml | 2 +- ebean-externalmapping-xml/pom.xml | 10 +++++----- ebean-postgis/pom.xml | 6 +++--- ebean-querybean/pom.xml | 10 +++++----- ebean-redis/pom.xml | 12 ++++++------ ebean-test/pom.xml | 6 +++--- ebean/pom.xml | 8 ++++---- kotlin-querybean-generator/pom.xml | 8 ++++---- pom.xml | 4 ++-- querybean-generator/pom.xml | 2 +- 16 files changed, 63 insertions(+), 63 deletions(-) diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml index 15958d47e..1e711bc62 100644 --- a/ebean-api/pom.xml +++ b/ebean-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1 + 12.13.2-SNAPSHOT ebean api diff --git a/ebean-autotune/pom.xml b/ebean-autotune/pom.xml index a90e8029a..dc7b6c0ac 100644 --- a/ebean-autotune/pom.xml +++ b/ebean-autotune/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1 + 12.13.2-SNAPSHOT @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-12.13.1 + HEAD ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 12.13.1 + 12.13.2-SNAPSHOT provided diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index 0f2c1e526..417420c68 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1 + 12.13.2-SNAPSHOT ebean bom @@ -71,88 +71,88 @@ io.ebean ebean - 12.13.1 + 12.13.2-SNAPSHOT io.ebean ebean-api - 12.13.1 + 12.13.2-SNAPSHOT io.ebean ebean-core - 12.13.1 + 12.13.2-SNAPSHOT io.ebean ebean-core-type - 12.13.1 + 12.13.2-SNAPSHOT io.ebean ebean-ddl-generator - 12.13.1 + 12.13.2-SNAPSHOT io.ebean ebean-externalmapping-api - 12.13.1 + 12.13.2-SNAPSHOT io.ebean ebean-externalmapping-xml - 12.13.1 + 12.13.2-SNAPSHOT io.ebean ebean-autotune - 12.13.1 + 12.13.2-SNAPSHOT io.ebean ebean-querybean - 12.13.1 + 12.13.2-SNAPSHOT io.ebean querybean-generator - 12.13.1 + 12.13.2-SNAPSHOT provided io.ebean kotlin-querybean-generator - 12.13.1 + 12.13.2-SNAPSHOT provided io.ebean ebean-test - 12.13.1 + 12.13.2-SNAPSHOT test io.ebean ebean-postgis - 12.13.1 + 12.13.2-SNAPSHOT io.ebean ebean-redis - 12.13.1 + 12.13.2-SNAPSHOT diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index 3916d6451..3d3e11a75 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1 + 12.13.2-SNAPSHOT ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 12.13.1 + 12.13.2-SNAPSHOT diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index 5e4c88e23..b250f7a0a 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 12.13.1 + 12.13.2-SNAPSHOT ebean-core @@ -15,7 +15,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-12.13.1 + HEAD @@ -41,19 +41,19 @@ io.ebean ebean-api - 12.13.1 + 12.13.2-SNAPSHOT io.ebean ebean-core-type - 12.13.1 + 12.13.2-SNAPSHOT io.ebean ebean-externalmapping-api - 12.13.1 + 12.13.2-SNAPSHOT diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index 5c0680f6c..fc0e83a5f 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1 + 12.13.2-SNAPSHOT ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 12.13.1 + 12.13.2-SNAPSHOT provided io.ebean ebean-core - 12.13.1 + 12.13.2-SNAPSHOT provided diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index 606ea9038..72278f50b 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1 + 12.13.2-SNAPSHOT ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 6fa5ab7f5..8155aa728 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1 + 12.13.2-SNAPSHOT @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-12.13.1 + HEAD ebean external mapping xml @@ -33,7 +33,7 @@ io.ebean ebean-externalmapping-api - 12.13.1 + 12.13.2-SNAPSHOT @@ -59,14 +59,14 @@ io.ebean ebean-core - 12.13.1 + 12.13.2-SNAPSHOT test io.ebean ebean-ddl-generator - 12.13.1 + 12.13.2-SNAPSHOT test diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 6a5a8cb4a..3d1fa16d0 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1 + 12.13.2-SNAPSHOT ebean postgis @@ -23,7 +23,7 @@ io.ebean ebean-core - 12.13.1 + 12.13.2-SNAPSHOT provided @@ -74,7 +74,7 @@ io.ebean ebean-test - 12.13.1 + 12.13.2-SNAPSHOT test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 02fa78ac3..5ed7e1669 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1 + 12.13.2-SNAPSHOT ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 12.13.1 + 12.13.2-SNAPSHOT provided @@ -56,21 +56,21 @@ io.ebean ebean-ddl-generator - 12.13.1 + 12.13.2-SNAPSHOT test io.ebean querybean-generator - 12.13.1 + 12.13.2-SNAPSHOT test io.ebean ebean-test - 12.13.1 + 12.13.2-SNAPSHOT test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index b49d1b8c7..7ada5696b 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1 + 12.13.2-SNAPSHOT ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 12.13.1 + 12.13.2-SNAPSHOT provided io.ebean ebean-core - 12.13.1 + 12.13.2-SNAPSHOT provided io.ebean ebean-querybean - 12.13.1 + 12.13.2-SNAPSHOT test io.ebean querybean-generator - 12.13.1 + 12.13.2-SNAPSHOT test io.ebean ebean-test - 12.13.1 + 12.13.2-SNAPSHOT test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 5ab05c7aa..8b5723151 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1 + 12.13.2-SNAPSHOT ebean test @@ -29,14 +29,14 @@ io.ebean ebean-core - 12.13.1 + 12.13.2-SNAPSHOT provided io.ebean ebean-ddl-generator - 12.13.1 + 12.13.2-SNAPSHOT diff --git a/ebean/pom.xml b/ebean/pom.xml index aa6e5ad12..bf039e209 100644 --- a/ebean/pom.xml +++ b/ebean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1 + 12.13.2-SNAPSHOT ebean composite @@ -22,20 +22,20 @@ io.ebean ebean-api - 12.13.1 + 12.13.2-SNAPSHOT io.ebean ebean-core - 12.13.1 + 12.13.2-SNAPSHOT io.ebean ebean-querybean - 12.13.1 + 12.13.2-SNAPSHOT diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index 14c6bf03b..759567f09 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1 + 12.13.2-SNAPSHOT kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 12.13.1 + 12.13.2-SNAPSHOT test @@ -43,7 +43,7 @@ io.ebean ebean-core - 12.13.1 + 12.13.2-SNAPSHOT test @@ -64,7 +64,7 @@ io.ebean ebean-ddl-generator - 12.13.1 + 12.13.2-SNAPSHOT test diff --git a/pom.xml b/pom.xml index 8233a66fb..6cf80ad6e 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ io.ebean ebean-parent - 12.13.1 + 12.13.2-SNAPSHOT pom ebean parent @@ -18,7 +18,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-12.13.1 + HEAD diff --git a/querybean-generator/pom.xml b/querybean-generator/pom.xml index 65d28d014..d61f1d143 100644 --- a/querybean-generator/pom.xml +++ b/querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.1 + 12.13.2-SNAPSHOT querybean generator From 067f4bfdea1cf42d19266d9465625637571ea3e0 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Fri, 26 Nov 2021 14:55:28 +0100 Subject: [PATCH 16/54] ADD JDBC-drivers to POM --- ebean-test/pom.xml | 50 ++++++++++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 17 deletions(-) diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 8b5723151..b015a4544 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -56,7 +56,7 @@ io.ebean ebean-test-docker - 4.2 + 4.3 @@ -187,11 +187,42 @@ com.oracle.database.jdbc - ojdbc10 + + ojdbc8 19.12.0.0 test + + com.ibm.db2 + jcc + 11.5.6.0 + test + + + + org.xerial + sqlite-jdbc + 3.36.0.3 + test + + + + com.nuodb.jdbc + nuodb-jdbc + 22.0.0 + test + + + + ru.yandex.clickhouse + clickhouse-jdbc + 0.3.1-patch + test + + ch.qos.logback logback-classic @@ -208,21 +239,6 @@ - - - db2 - - - - com.ibm.db2 - jcc - 11.5.5.0 - test - - - - - From dfb1d6ab54b35a807b7cf429d8c7e6805b8dcdec Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Fri, 26 Nov 2021 15:01:15 +0100 Subject: [PATCH 17/54] ADD: Db2 container support --- .../config/dbplatform/db2/DB2Platform.java | 6 ++- .../ebean/test/config/platform/Db2Setup.java | 41 +++++++++++++++++++ .../config/platform/PlatformAutoConfig.java | 1 + ebean-test/src/test/java/main/StartDb2.java | 22 ++++++++++ .../src/test/resources/ebean.properties | 6 +-- 5 files changed, 71 insertions(+), 5 deletions(-) create mode 100644 ebean-test/src/main/java/io/ebean/test/config/platform/Db2Setup.java create mode 100644 ebean-test/src/test/java/main/StartDb2.java diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/db2/DB2Platform.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/db2/DB2Platform.java index 0878e7d41..305f38efe 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/db2/DB2Platform.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/db2/DB2Platform.java @@ -20,8 +20,10 @@ public class DB2Platform extends DatabasePlatform { public DB2Platform() { super(); this.platform = Platform.DB2; - this.maxTableNameLength = 18; - this.maxConstraintNameLength = 18; + // Note: DB2 (at least LUW supports length up to 128) + // TOOD: Check if we need to introduce a new platform (DB2_LUW_11 ?) + this.maxTableNameLength = 128; + this.maxConstraintNameLength = 128; this.truncateTable = "truncate table %s reuse storage ignore delete triggers immediate"; this.sqlLimiter = new Db2SqlLimiter(); diff --git a/ebean-test/src/main/java/io/ebean/test/config/platform/Db2Setup.java b/ebean-test/src/main/java/io/ebean/test/config/platform/Db2Setup.java new file mode 100644 index 000000000..fd65472ef --- /dev/null +++ b/ebean-test/src/main/java/io/ebean/test/config/platform/Db2Setup.java @@ -0,0 +1,41 @@ +package io.ebean.test.config.platform; + +import java.util.Properties; + +class Db2Setup implements PlatformSetup { + + @Override + public Properties setup(Config config) { + + config.ddlMode("dropCreate"); + config.setDefaultPort(50000); + config.setUsernameDefault(); + config.setPasswordDefault(); + config.setUrl("jdbc:db2://localhost:${port}/${databaseName}"); + config.setDriver("com.ibm.db2.jcc.DB2Driver"); + config.datasourceDefaults(); + + return dockerProperties(config); + } + + private Properties dockerProperties(Config dbConfig) { + + if (!dbConfig.isUseDocker()) { + return new Properties(); + } + + dbConfig.setDockerVersion("11.5.6.0a"); + return dbConfig.getDockerProperties(); + } + + @Override + public void setupExtraDbDataSource(Config config) { + // not supported yet + } + + @Override + public boolean isLocal() { + return false; + } + +} diff --git a/ebean-test/src/main/java/io/ebean/test/config/platform/PlatformAutoConfig.java b/ebean-test/src/main/java/io/ebean/test/config/platform/PlatformAutoConfig.java index a7da076d5..deefcd0fb 100644 --- a/ebean-test/src/main/java/io/ebean/test/config/platform/PlatformAutoConfig.java +++ b/ebean-test/src/main/java/io/ebean/test/config/platform/PlatformAutoConfig.java @@ -34,6 +34,7 @@ public class PlatformAutoConfig { KNOWN_PLATFORMS.put("clickhouse", new ClickHouseSetup()); KNOWN_PLATFORMS.put("cockroach", new CockroachSetup()); KNOWN_PLATFORMS.put("hana", new HanaSetup()); + KNOWN_PLATFORMS.put("db2", new Db2Setup()); } private final DatabaseConfig config; diff --git a/ebean-test/src/test/java/main/StartDb2.java b/ebean-test/src/test/java/main/StartDb2.java new file mode 100644 index 000000000..dbfd6b38d --- /dev/null +++ b/ebean-test/src/test/java/main/StartDb2.java @@ -0,0 +1,22 @@ +package main; + +import io.ebean.docker.commands.Db2Config; +import io.ebean.docker.commands.Db2Container; + +public class StartDb2 { + + public static void main(String[] args) { + + Db2Config config = new Db2Config("11.5.6.0a"); + config.setDbName("unit"); + config.setUser("unit"); + config.setPassword("unit"); + + // to change collation, charset and other parameters like pagesize: + config.setCreateOptions("USING CODESET UTF-8 TERRITORY DE COLLATE USING IDENTITY PAGESIZE 32768"); + config.setConfigOptions("USING STRING_UNITS CODEUNITS32"); + + Db2Container container = new Db2Container(config); + container.startWithDropCreate(); + } +} diff --git a/ebean-test/src/test/resources/ebean.properties b/ebean-test/src/test/resources/ebean.properties index 6701fdf38..402facaab 100644 --- a/ebean-test/src/test/resources/ebean.properties +++ b/ebean-test/src/test/resources/ebean.properties @@ -181,9 +181,9 @@ datasource.nuodb.password=test datasource.nuodb.url=jdbc:com.nuodb://localhost/testdb #datasource.nuodb.driver=com.nuodb.jdbc.Driver -datasource.db2.username=db2admin -datasource.db2.password=veryverysecret#1234 -datasource.db2.url=jdbc:db2://127.0.0.1:50000/SAMPLE +datasource.db2.username=unit +datasource.db2.password=test +datasource.db2.url=jdbc:db2://127.0.0.1:50000/unit #datasource.db2.driver=com.ibm.db2.jcc.DB2Driver datasource.hana.username=EBEAN_TEST From 331ea90e14118ee7f03202860191c03d47b81ce1 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Fri, 26 Nov 2021 15:02:01 +0100 Subject: [PATCH 18/54] Fix: Support conversion of `varchar[](300)` array type for Clickhouse --- .../ddlgeneration/platform/ClickHouseDbArray.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDbArray.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDbArray.java index ec141d7f0..0bb2f7895 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDbArray.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/ClickHouseDbArray.java @@ -14,6 +14,7 @@ class ClickHouseDbArray { mapping.put("varchar[]", "Array(String)"); mapping.put("integer[]", "Array(UInt32)"); mapping.put("bigint[]", "Array(UInt64)"); + mapping.put("float[]", "Array(Float32)"); } /** @@ -21,6 +22,10 @@ class ClickHouseDbArray { */ static String logicalToNative(String logicalArrayType) { int colonPos = logicalArrayType.indexOf(':'); + int bracketPos = logicalArrayType.indexOf('('); + if (bracketPos > -1 && (bracketPos < colonPos || colonPos == -1)) { + colonPos = bracketPos; + } if (colonPos > -1) { logicalArrayType = logicalArrayType.substring(0, colonPos); } From 2581d82cffafdb6ae9e4567e99bf62ab71de5459 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Fri, 26 Nov 2021 15:02:46 +0100 Subject: [PATCH 19/54] FIX: Sqlite does not support ResultSetConcurrencyModeUpdatable --- .../java/io/ebean/config/dbplatform/sqlite/SQLitePlatform.java | 1 + 1 file changed, 1 insertion(+) diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/sqlite/SQLitePlatform.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/sqlite/SQLitePlatform.java index 09db19312..e936194d5 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/sqlite/SQLitePlatform.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/sqlite/SQLitePlatform.java @@ -24,6 +24,7 @@ public class SQLitePlatform extends DatabasePlatform { this.dbDefaultValue.setFalse("0"); this.dbDefaultValue.setTrue("1"); this.dbDefaultValue.setNow("CURRENT_TIMESTAMP"); + this.supportsResultSetConcurrencyModeUpdatable = false; dbTypeMap.put(DbType.BIT, new DbPlatformType("int")); dbTypeMap.put(DbType.BOOLEAN, new DbPlatformType("int")); From f8253a12524ec97ee2b8e07d119126cbd343ed22 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Fri, 26 Nov 2021 15:32:11 +0100 Subject: [PATCH 20/54] add ebean-test properties for various containers and adjusted documentation --- .../testconfig/ebean-clickhouse.properties | 5 + .../testconfig/ebean-cockroach.properties | 4 + ebean-test/testconfig/ebean-db2.properties | 4 + ebean-test/testconfig/ebean-h2.properties | 3 + .../testconfig/ebean-mariadb-10.3.properties | 8 + .../testconfig/ebean-mariadb.properties | 5 + ebean-test/testconfig/ebean-mysql.properties | 6 + ebean-test/testconfig/ebean-nuodb.properties | 3 + ebean-test/testconfig/ebean-oracle.properties | 3 + .../testconfig/ebean-postgres.properties | 3 + ebean-test/testconfig/ebean-sqlite.properties | 4 + .../testconfig/ebean-sqlserver.properties | 6 + .../testconfig/ebean-sqlserver17.properties | 7 + howto-test.md | 149 ++---------------- 14 files changed, 74 insertions(+), 136 deletions(-) create mode 100644 ebean-test/testconfig/ebean-clickhouse.properties create mode 100644 ebean-test/testconfig/ebean-cockroach.properties create mode 100644 ebean-test/testconfig/ebean-db2.properties create mode 100644 ebean-test/testconfig/ebean-h2.properties create mode 100644 ebean-test/testconfig/ebean-mariadb-10.3.properties create mode 100644 ebean-test/testconfig/ebean-mariadb.properties create mode 100644 ebean-test/testconfig/ebean-mysql.properties create mode 100644 ebean-test/testconfig/ebean-nuodb.properties create mode 100644 ebean-test/testconfig/ebean-oracle.properties create mode 100644 ebean-test/testconfig/ebean-postgres.properties create mode 100644 ebean-test/testconfig/ebean-sqlite.properties create mode 100644 ebean-test/testconfig/ebean-sqlserver.properties create mode 100644 ebean-test/testconfig/ebean-sqlserver17.properties diff --git a/ebean-test/testconfig/ebean-clickhouse.properties b/ebean-test/testconfig/ebean-clickhouse.properties new file mode 100644 index 000000000..46ba2256e --- /dev/null +++ b/ebean-test/testconfig/ebean-clickhouse.properties @@ -0,0 +1,5 @@ +ebean.test.platform=clickhouse +ebean.test.dbName=clickhouse +datasource.default=clickhouse +datasource.clickhouse.autocommit=true + diff --git a/ebean-test/testconfig/ebean-cockroach.properties b/ebean-test/testconfig/ebean-cockroach.properties new file mode 100644 index 000000000..2604e7dcf --- /dev/null +++ b/ebean-test/testconfig/ebean-cockroach.properties @@ -0,0 +1,4 @@ +ebean.test.platform=cockroach +ebean.test.dbName=unit +datasource.default=cockroach + diff --git a/ebean-test/testconfig/ebean-db2.properties b/ebean-test/testconfig/ebean-db2.properties new file mode 100644 index 000000000..2aa2944dd --- /dev/null +++ b/ebean-test/testconfig/ebean-db2.properties @@ -0,0 +1,4 @@ +ebean.test.platform=db2 +ebean.test.dbName=unit +ebean.test.dbPassword=unit +datasource.default=db2-11 diff --git a/ebean-test/testconfig/ebean-h2.properties b/ebean-test/testconfig/ebean-h2.properties new file mode 100644 index 000000000..9d0f47268 --- /dev/null +++ b/ebean-test/testconfig/ebean-h2.properties @@ -0,0 +1,3 @@ +ebean.test.platform=h2 +datasource.default=h2-local +ebean.test.dbName=test \ No newline at end of file diff --git a/ebean-test/testconfig/ebean-mariadb-10.3.properties b/ebean-test/testconfig/ebean-mariadb-10.3.properties new file mode 100644 index 000000000..c7ef279e4 --- /dev/null +++ b/ebean-test/testconfig/ebean-mariadb-10.3.properties @@ -0,0 +1,8 @@ +# This starts an alternative mariadb version on port 7306 +ebean.test.platform=mariadb +ebean.test.dbName=test_ebean +ebean.test.dbPassword=unit +ebean.test.mariadb.version=10.3 +ebean.test.mariadb.containerName=ut_mariadb-10-3 +ebean.test.sqlserver.port = 7306 +datasource.default=mariadb-103 diff --git a/ebean-test/testconfig/ebean-mariadb.properties b/ebean-test/testconfig/ebean-mariadb.properties new file mode 100644 index 000000000..165032895 --- /dev/null +++ b/ebean-test/testconfig/ebean-mariadb.properties @@ -0,0 +1,5 @@ +ebean.test.platform=mariadb +ebean.test.dbName=test_ebean +ebean.test.mariadb.version=10.6 +ebean.test.mariadb.containerName=ut_mariadb-10-6 +datasource.default=mariadb-106 diff --git a/ebean-test/testconfig/ebean-mysql.properties b/ebean-test/testconfig/ebean-mysql.properties new file mode 100644 index 000000000..dfd960fd2 --- /dev/null +++ b/ebean-test/testconfig/ebean-mysql.properties @@ -0,0 +1,6 @@ +# this starts a mysql instance on port 13306 +ebean.test.platform=mysql +ebean.test.dbName=test_ebean +# note: do not conflict with mariadb port +ebean.test.sqlserver.port = 13306 +datasource.default=mysql-docker diff --git a/ebean-test/testconfig/ebean-nuodb.properties b/ebean-test/testconfig/ebean-nuodb.properties new file mode 100644 index 000000000..9bc26267b --- /dev/null +++ b/ebean-test/testconfig/ebean-nuodb.properties @@ -0,0 +1,3 @@ +ebean.test.platform=nuodb +ebean.test.dbName=testdb +ebean.test.nuodb.version=latest \ No newline at end of file diff --git a/ebean-test/testconfig/ebean-oracle.properties b/ebean-test/testconfig/ebean-oracle.properties new file mode 100644 index 000000000..e9d4bf55b --- /dev/null +++ b/ebean-test/testconfig/ebean-oracle.properties @@ -0,0 +1,3 @@ +ebean.test.platform=oracle +ebean.test.dbName=oracle +datasource.default=oracle-docker \ No newline at end of file diff --git a/ebean-test/testconfig/ebean-postgres.properties b/ebean-test/testconfig/ebean-postgres.properties new file mode 100644 index 000000000..09f2dc676 --- /dev/null +++ b/ebean-test/testconfig/ebean-postgres.properties @@ -0,0 +1,3 @@ +ebean.test.platform=postgres +datasource.default=postgres +ebean.test.dbName=unit diff --git a/ebean-test/testconfig/ebean-sqlite.properties b/ebean-test/testconfig/ebean-sqlite.properties new file mode 100644 index 000000000..a59835972 --- /dev/null +++ b/ebean-test/testconfig/ebean-sqlite.properties @@ -0,0 +1,4 @@ +ebean.test.platform=sqlite +datasource.default=sqlite-local +ebean.test.dbName=test.sqlite +ebean.autoReadOnlyDataSource=false \ No newline at end of file diff --git a/ebean-test/testconfig/ebean-sqlserver.properties b/ebean-test/testconfig/ebean-sqlserver.properties new file mode 100644 index 000000000..f754250af --- /dev/null +++ b/ebean-test/testconfig/ebean-sqlserver.properties @@ -0,0 +1,6 @@ +ebean.test.platform=sqlserver +ebean.test.dbName=test_ebean +ebean.test.sqlserver.version=2019-latest +ebean.test.sqlserver.containerName=ut_sqlserver2019 +datasource.default=sqlserver2019 +ebean.sqlserver2019.databasePlatformName=sqlserver17 \ No newline at end of file diff --git a/ebean-test/testconfig/ebean-sqlserver17.properties b/ebean-test/testconfig/ebean-sqlserver17.properties new file mode 100644 index 000000000..6da4dacc3 --- /dev/null +++ b/ebean-test/testconfig/ebean-sqlserver17.properties @@ -0,0 +1,7 @@ +ebean.test.platform=sqlserver +ebean.test.dbName=test_ebean +ebean.test.sqlserver.version=2017-latest +ebean.test.sqlserver.containerName=ut_sqlserver2017 +ebean.test.sqlserver.port=1434 +datasource.default=sqlserver2017 +ebean.sqlserver2017.databasePlatformName=sqlserver17 \ No newline at end of file diff --git a/howto-test.md b/howto-test.md index ed159cac2..2913b24a9 100644 --- a/howto-test.md +++ b/howto-test.md @@ -24,145 +24,22 @@ your run configuration: Platform Tests ============== -By default, the `h2` platform is used. To test a different platform, add -`-Ddatasource.default=xxx` to your maven command or JVM arguments. - -'h2' platform -------------- - -Reqires no setup - -run: `mvn clean test` - -Current status: PASS -Tests run: 1986, Failures: 0, Errors: 0, Skipped: 16 - -'pg' platform -------------- - -Reqirements -- a locally installed PostgreSQL server with PostGis. -- Create a user "unit" with password "unit" and a database "unit" -- Give the user all permissions to that db - -run: `mvn clean test -Ddatasource.default=pg` - -Current status: PASS -Tests run: 2166, Failures: 0, Errors: 0, Skipped: 25 +By default, the `h2` platform is used. To test a different platform, you can change the +`datasource.default` in the `ebean.properties` file. +Docker +------ +Ebean 12 provides preconfigured docker containers now. To start a docker container, +you can use the starters in `src/test/java/main` or specify one of the starter +properties in the `testconfig` directory with `-Dprops.file=testconfig/ebean-XXX.properties` -'mysql' platform -------------- +Note: You will have to install docker on your system. +- For debian, you can use `apt install docker.io` +- For windows, install docker for windows https://docs.docker.com/desktop/windows/install/ -Reqirements -- a locally installed MySQL server. -- Create a user "unit" with password "unit" and a database "unit" -- Give the user all permissions to that db - -run: `mvn clean test -Ddatasource.default=mysql` - -Current status: PASS -Tests run: 2166, Failures: 0, Errors: 0, Skipped: 33 - - - -'sqlserver' platform --------------------- - -Reqires an installed sqlserver - e.g. https://hub.docker.com/r/microsoft/mssql-server-linux/ - -- Create a user "ebean" with password "ebean" and a database "ebean_unittest" -- Adjust the connection string and/or username in ebean.properties - -run: `mvn clean test -Ddatasource.default=mssql` - -Current status: PASS -Tests run: 2166, Failures: 0, Errors: 0, Skipped: 39 - - - -'oracle' platform ------------------ - -Reqires a locally installed Oracle server. -- Create a user "unit" with password "unit" with all permissions -- The test wirtes directly to the "xe" SID - so do not use a productive server! -- As the Oracle JDBC driver is only available on an oracle repository, - you need a special maven setup as described [here](http://docs.oracle.com/middleware/1213/core/MAVEN/config_maven_repo.htm#MAVEN9010) - -run: `mvn clean test -Ddatasource.default=ora -Poracle` - -Current status: FAIL -Tests run: 1986, Failures: 17, Errors: 34, Skipped: 16 - - - -'db2' platform --------------- - -Reqires a locally installed DB2 Express-C server. -- Create a user "unit" with password "unit" with all permissions -- Install the db2jcc4 driver (see pom.xml) - -run: `mvn clean test -Ddatasource.default=db2 -Pdb2` - -Current status: FAIL -Tests run: 2166, Failures: 29, Errors: 58, Skipped: 30 - - -'sqlite' platform ------------------ - -Reqires no setup - -run: `mvn clean test -Ddatasource.default=sqlite` - -Current status: FAIL -Tests run: 1986, Failures: 24, Errors: 86, Skipped: 16 - -After some time, the db locks up, every test takes 3 seconds and fails with -"the database file is locked" - - - -'hsqldb' platform ------------------ - -Reqires no setup - -run: `mvn clean test -Ddatasource.default=hsqldb` - -Current status: FAIL -Tests run: 1980, Failures: 3, Errors: 657, Skipped: 16 - - -@Rob FYI -The problem is https://sourceforge.net/p/hsqldb/bugs/1364/ -In `InsertHandler.getPstmt` the `meta.getIdentityDbColumns()` contains -'id' in lowercase. Changing that to uppercase gives me this result: -`Tests run: 1986, Failures: 2, Errors: 18, Skipped: 16` -(as quick hack I added temporary a toUpperCase to BindableIdScalar.getIdentityColumn) - - -'sqlanywhere' platform ----------------------- - -TODO: not yet tested - - - -'hana' platform --------------------- - -Requires an installed SAP HANA server - e.g. https://store.docker.com/images/sap-hana-express-edition - -- Create a user `EBEAN_TEST` with password `Eb3an_test` in the tenant database `HXE` -- Adjust the connection string and/or username in `ebean.properties` - -run: `mvn clean test -Ddatasource.default=hana` - -Current status: PASS -Tests run: 2486, Failures: 0, Errors: 0, Skipped: 84 +Maven +----- +Use the `-Dprops.file` parameter to start the test cases for a certain platform. From 25bc0e947df860635b295b6203a38ba8303bf3c2 Mon Sep 17 00:00:00 2001 From: Noemi Szemenyei Date: Mon, 22 Nov 2021 08:30:50 +0100 Subject: [PATCH 21/54] NPE Fix with .setCountDistinct(CountDistinctOrder.NO_ORDERING) --- .../java/io/ebeaninternal/server/query/CQueryBuilder.java | 2 ++ .../org/tests/query/other/TestQuerySingleAttribute.java | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java index 87a9f9b10..278603f5b 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java @@ -736,6 +736,8 @@ final class CQueryBuilder { return " order by count(*) desc, r1.attribute_"; case COUNT_DESC_ATTR_DESC: return " order by count(*) desc, r1.attribute_ desc"; + case NO_ORDERING: + return ""; default: throw new IllegalArgumentException("Illegal enum: " + orderBy); } diff --git a/ebean-test/src/test/java/org/tests/query/other/TestQuerySingleAttribute.java b/ebean-test/src/test/java/org/tests/query/other/TestQuerySingleAttribute.java index 085a6b18a..43f7162cb 100644 --- a/ebean-test/src/test/java/org/tests/query/other/TestQuerySingleAttribute.java +++ b/ebean-test/src/test/java/org/tests/query/other/TestQuerySingleAttribute.java @@ -646,6 +646,14 @@ public class TestQuerySingleAttribute extends BaseTestCase { .findSingleAttributeList(); assertThat(list1.get(0)).isInstanceOf(CountedValue.class); //assertThat(list1.toString()).isEqualTo("[1: Tracy, 3: Jim1, 1: Jack, 3: Fred1, 1: Fiona, 3: Bugs1]"); + + query = DB.find(Contact.class).select("firstName"); + list1 = query + .setCountDistinct(CountDistinctOrder.NO_ORDERING) + .findSingleAttributeList(); + assertThat(list1.get(0)).isInstanceOf(CountedValue.class); + assertThat(sqlOf(query)).contains("select r1.attribute_, count(*) from (" + + "select t0.first_name as attribute_ from contact t0"); query = DB.find(Contact.class).select("firstName"); list1 = query From a82dca24da694d43a1b77f17133f0586df719df0 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 1 Dec 2021 09:52:39 +1300 Subject: [PATCH 22/54] changed generated migrations from db2 change in #2445 --- .../migrationtest/db2/1.0__initial.sql | 28 ++++---- .../dbmigration/migrationtest/db2/1.1.sql | 70 +++++++++---------- .../dbmigration/migrationtest/db2/1.3.sql | 56 +++++++-------- .../migrationtest/db2/idx_db2.migrations | 6 +- 4 files changed, 80 insertions(+), 80 deletions(-) diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql index 095b581de..20d677cf5 100644 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql +++ b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql @@ -71,17 +71,17 @@ create table migtest_e_basic ( indextest5 varchar(127), indextest6 varchar(127), user_id integer not null, - constraint ck_mgtst__bsc_stts check ( status in ('N','A','I')), - constraint ck_mgtst__b_z543fg check ( status2 in ('N','A','I')), + constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), + constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), constraint pk_migtest_e_basic primary key (id) ); --- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_4aybzy unique (indextest2); --- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_4ayc02 unique (indextest6); +-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); create table migtest_e_enum ( id integer generated by default as identity not null, test_status varchar(1), - constraint ck_mgtst__n_773sok check ( test_status in ('N','A','I')), + constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), constraint pk_migtest_e_enum primary key (id) ); @@ -129,7 +129,7 @@ create table migtest_e_ref ( name varchar(127) not null, constraint pk_migtest_e_ref primary key (id) ); -alter table migtest_e_ref add constraint uq_mgtst__rf_nm unique (name); +alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); create table migtest_e_softdelete ( id integer generated by default as identity not null, @@ -161,14 +161,14 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); -create index ix_mgtst__b_eu8csq on migtest_e_basic (indextest1); -create index ix_mgtst__b_eu8csu on migtest_e_basic (indextest5); -create index ix_mgtst_fk_mok1xj on migtest_fk_cascade (one_id); -alter table migtest_fk_cascade add constraint fk_mgtst_fk_65kf6l foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +create index ix_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id); +alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade; -create index ix_mgtst_fk_c4p3mv on migtest_fk_set_null (one_id); -alter table migtest_fk_set_null add constraint fk_mgtst_fk_wicx8x foreign key (one_id) references migtest_fk_one (id) on delete set null; +create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; -create index ix_mgtst__bsc_rf_d on migtest_e_basic (eref_id); -alter table migtest_e_basic add constraint fk_mgtst__bsc_rf_d foreign key (eref_id) references migtest_e_ref (id) on delete restrict; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.1.sql index 605a24af3..27c612f46 100644 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.1.sql +++ b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.1.sql @@ -20,31 +20,31 @@ create table migtest_mtm_m_migtest_mtm_c ( alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); -alter table migtest_ckey_detail add constraint fk_mgtst_ck_e1qkb5 foreign key (one_key,two_key) references migtest_ckey_parent (one_key,two_key) on delete restrict; +alter table migtest_ckey_detail add constraint fk_migtest_ckey_detail_parent foreign key (one_key,two_key) references migtest_ckey_parent (one_key,two_key) on delete restrict; alter table migtest_ckey_parent add column assoc_id integer; -alter table migtest_fk_cascade drop constraint fk_mgtst_fk_65kf6l; -alter table migtest_fk_cascade add constraint fk_mgtst_fk_65kf6l foreign key (one_id) references migtest_fk_cascade_one (id) on delete restrict; -alter table migtest_fk_none add constraint fk_mgtst_fk_nn_n_d foreign key (one_id) references migtest_fk_one (id) on delete restrict; -alter table migtest_fk_none_via_join add constraint fk_mgtst_fk_9tknzj foreign key (one_id) references migtest_fk_one (id) on delete restrict; -alter table migtest_fk_set_null drop constraint fk_mgtst_fk_wicx8x; -alter table migtest_fk_set_null add constraint fk_mgtst_fk_wicx8x foreign key (one_id) references migtest_fk_one (id) on delete restrict; +alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; +alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete restrict; +alter table migtest_fk_none add constraint fk_migtest_fk_none_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict; +alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict; update migtest_e_basic set status = 'A' where status is null; -alter table migtest_e_basic drop constraint ck_mgtst__bsc_stts; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; alter table migtest_e_basic alter column status set default 'A'; alter table migtest_e_basic alter column status set not null; -alter table migtest_e_basic add constraint ck_mgtst__bsc_stts check ( status in ('N','A','I','?')); -alter table migtest_e_basic drop constraint ck_mgtst__b_z543fg; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; alter table migtest_e_basic alter column status2 varchar(127); alter table migtest_e_basic alter column status2 drop default; alter table migtest_e_basic alter column status2 set null; -- rename all collisions; --- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_vs45xo unique (description); +-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_basic add constraint fk_mgtst__bsc_sr_d foreign key (user_id) references migtest_e_user (id) on delete restrict; +alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict; alter table migtest_e_basic alter column user_id set null; alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; alter table migtest_e_basic add column new_boolean_field boolean default true not null; @@ -52,16 +52,16 @@ update migtest_e_basic set new_boolean_field = old_boolean; alter table migtest_e_basic add column new_boolean_field2 boolean default true not null; alter table migtest_e_basic add column progress integer default 0 not null; -alter table migtest_e_basic add constraint ck_mgtst__b_l39g41 check ( progress in (0,1,2)); +alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); alter table migtest_e_basic add column new_integer integer default 42 not null; -alter table migtest_e_basic drop constraint uq_mgtst__b_4aybzy; -alter table migtest_e_basic drop constraint uq_mgtst__b_4ayc02; --- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_ucfcne unique (status,indextest1); --- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__bsc_nm unique (name); --- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_4ayc00 unique (indextest4); --- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_4ayc01 unique (indextest5); -alter table migtest_e_enum drop constraint ck_mgtst__n_773sok; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6; +-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_status_indextest1 unique (status,indextest1); +-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_name unique (name); +-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique (indextest4); +-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); +alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; comment on column migtest_e_history.test_string is 'Column altered to long now'; alter table migtest_e_history alter column test_string bigint; comment on table migtest_e_history is 'We have history now'; @@ -87,24 +87,24 @@ alter table migtest_e_softdelete add column deleted boolean default false not nu alter table migtest_oto_child add column master_id bigint; -create index ix_mgtst__b_eu8css on migtest_e_basic (indextest3); -create index ix_mgtst__b_eu8csv on migtest_e_basic (indextest6); -drop index ix_mgtst__b_eu8csq; -drop index ix_mgtst__b_eu8csu; -create index ix_mgtst_mt_3ug4ok on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id); -alter table migtest_mtm_c_migtest_mtm_m add constraint fk_mgtst_mt_93awga foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict; +create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); +create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +drop index ix_migtest_e_basic_indextest1; +drop index ix_migtest_e_basic_indextest5; +create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id); +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict; -create index ix_mgtst_mt_3ug4ou on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id); -alter table migtest_mtm_c_migtest_mtm_m add constraint fk_mgtst_mt_93awgk foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict; +create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id); +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict; -create index ix_mgtst_mt_b7nbcu on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id); -alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mt_ggi34k foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict; +create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id); +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict; -create index ix_mgtst_mt_b7nbck on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id); -alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mt_ggi34a foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict; +create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id); +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict; -create index ix_mgtst_ck_x45o21 on migtest_ckey_parent (assoc_id); -alter table migtest_ckey_parent add constraint fk_mgtst_ck_da00mr foreign key (assoc_id) references migtest_ckey_assoc (id) on delete restrict; +create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); +alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_assoc (id) on delete restrict; -alter table migtest_oto_child add constraint fk_mgtst_t__csyl38 foreign key (master_id) references migtest_oto_master (id) on delete restrict; +alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id) on delete restrict; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.3.sql index 9489c8d98..eaf78b733 100644 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.3.sql +++ b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.3.sql @@ -5,44 +5,44 @@ create table migtest_e_ref ( name varchar(127) not null, constraint pk_migtest_e_ref primary key (id) ); -alter table migtest_e_ref add constraint uq_mgtst__rf_nm unique (name); +alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); -alter table migtest_ckey_detail drop constraint fk_mgtst_ck_e1qkb5; -alter table migtest_fk_cascade drop constraint fk_mgtst_fk_65kf6l; -alter table migtest_fk_cascade add constraint fk_mgtst_fk_65kf6l foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade; -alter table migtest_fk_none drop constraint fk_mgtst_fk_nn_n_d; -alter table migtest_fk_none_via_join drop constraint fk_mgtst_fk_9tknzj; -alter table migtest_fk_set_null drop constraint fk_mgtst_fk_wicx8x; -alter table migtest_fk_set_null add constraint fk_mgtst_fk_wicx8x foreign key (one_id) references migtest_fk_one (id) on delete set null; -alter table migtest_e_basic drop constraint ck_mgtst__bsc_stts; +alter table migtest_ckey_detail drop constraint fk_migtest_ckey_detail_parent; +alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; +alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade; +alter table migtest_fk_none drop constraint fk_migtest_fk_none_one_id; +alter table migtest_fk_none_via_join drop constraint fk_migtest_fk_none_via_join_one_id; +alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; +alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; alter table migtest_e_basic alter column status drop default; alter table migtest_e_basic alter column status set null; -alter table migtest_e_basic add constraint ck_mgtst__bsc_stts check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); update migtest_e_basic set status2 = 'N' where status2 is null; -alter table migtest_e_basic drop constraint ck_mgtst__b_z543fg; +alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; alter table migtest_e_basic alter column status2 varchar(1); alter table migtest_e_basic alter column status2 set default 'N'; alter table migtest_e_basic alter column status2 set not null; -alter table migtest_e_basic add constraint ck_mgtst__b_z543fg check ( status2 in ('N','A','I')); -alter table migtest_e_basic drop constraint uq_mgtst__b_vs45xo; +alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; update migtest_e_basic set user_id = 23 where user_id is null; -alter table migtest_e_basic drop constraint fk_mgtst__bsc_sr_d; +alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; alter table migtest_e_basic alter column user_id set default 23; alter table migtest_e_basic alter column user_id set not null; alter table migtest_e_basic add column old_boolean boolean default false not null; alter table migtest_e_basic add column old_boolean2 boolean; alter table migtest_e_basic add column eref_id integer; -alter table migtest_e_basic drop constraint uq_mgtst__b_ucfcne; -alter table migtest_e_basic drop constraint uq_mgtst__bsc_nm; -alter table migtest_e_basic drop constraint uq_mgtst__b_4ayc00; -alter table migtest_e_basic drop constraint uq_mgtst__b_4ayc01; --- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_4aybzy unique (indextest2); --- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_4ayc02 unique (indextest6); -alter table migtest_e_enum drop constraint ck_mgtst__n_773sok; -alter table migtest_e_enum add constraint ck_mgtst__n_773sok check ( test_status in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_name; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4; +alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; +-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); +-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; +alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); comment on column migtest_e_history.test_string is ''; comment on table migtest_e_history is ''; alter table migtest_e_history2 alter column test_string drop default; @@ -58,10 +58,10 @@ alter table migtest_e_history6 alter column test_number1 set null; update migtest_e_history6 set test_number2 = 7 where test_number2 is null; alter table migtest_e_history6 alter column test_number2 set default 7; alter table migtest_e_history6 alter column test_number2 set not null; -create index ix_mgtst__b_eu8csq on migtest_e_basic (indextest1); -create index ix_mgtst__b_eu8csu on migtest_e_basic (indextest5); -drop index ix_mgtst__b_eu8css; -drop index ix_mgtst__b_eu8csv; -create index ix_mgtst__bsc_rf_d on migtest_e_basic (eref_id); -alter table migtest_e_basic add constraint fk_mgtst__bsc_rf_d foreign key (eref_id) references migtest_e_ref (id) on delete restrict; +create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); +create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); +drop index ix_migtest_e_basic_indextest3; +drop index ix_migtest_e_basic_indextest6; +create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/idx_db2.migrations b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/idx_db2.migrations index ec4208068..5c3f38243 100644 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/idx_db2.migrations +++ b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/idx_db2.migrations @@ -1,6 +1,6 @@ -441570368, 1.0__initial.sql --94595879, 1.1.sql +-904775387, 1.0__initial.sql +1360307269, 1.1.sql 578073685, 1.2__dropsFor_1.1.sql --509420890, 1.3.sql +-671695671, 1.3.sql -1475628451, 1.4__dropsFor_1.3.sql From 65ac0838724517a3560db74373992f15608a5d3d Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 1 Dec 2021 09:52:59 +1300 Subject: [PATCH 23/54] add git workflow multi-platform-test --- .github/workflows/multi-platform-test.yml | 41 +++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 .github/workflows/multi-platform-test.yml diff --git a/.github/workflows/multi-platform-test.yml b/.github/workflows/multi-platform-test.yml new file mode 100644 index 000000000..ef1b8a83c --- /dev/null +++ b/.github/workflows/multi-platform-test.yml @@ -0,0 +1,41 @@ + +name: Build + +on: [workflow_dispatch] + +jobs: + build: + + runs-on: ${{ matrix.os }} + permissions: + contents: read + packages: write + strategy: + fail-fast: false + matrix: + java_version: [11] + os: [ubuntu-latest] + + steps: + - uses: actions/checkout@v2 + - name: Set up Java + uses: actions/setup-java@v2 + with: + java-version: ${{ matrix.java_version }} + distribution: 'adopt' + - name: Maven cache + uses: actions/cache@v2 + env: + cache-name: maven-cache + with: + path: + ~/.m2 + key: build-${{ env.cache-name }} + - name: h2 test + run: mvn clean test + - name: postgres test + run: mvn clean test -Dprops.file=testconfig/ebean-postgres.properties + - name: mysql test + run: mvn clean test -Dprops.file=testconfig/ebean-mysql.properties + + From a380b609cddbb86d8d54fc4d8ce66da7d40afb49 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 1 Dec 2021 09:55:22 +1300 Subject: [PATCH 24/54] add git workflow multi-platform-test --- .github/workflows/multi-platform-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multi-platform-test.yml b/.github/workflows/multi-platform-test.yml index ef1b8a83c..faf13f5aa 100644 --- a/.github/workflows/multi-platform-test.yml +++ b/.github/workflows/multi-platform-test.yml @@ -1,5 +1,5 @@ -name: Build +name: Multi-platform Test on: [workflow_dispatch] From 0504cdc2d8772015eedf692474410d55f69a5e36 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 1 Dec 2021 13:00:36 +1300 Subject: [PATCH 25/54] add sqlserver 2019 and 2017 testing to multi-platform-test.yml --- .github/workflows/multi-platform-test.yml | 5 ++++- ebean-test/testconfig/ebean-sqlserver.properties | 4 +++- ebean-test/testconfig/ebean-sqlserver17.properties | 5 +++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/multi-platform-test.yml b/.github/workflows/multi-platform-test.yml index faf13f5aa..71f53e2e0 100644 --- a/.github/workflows/multi-platform-test.yml +++ b/.github/workflows/multi-platform-test.yml @@ -37,5 +37,8 @@ jobs: run: mvn clean test -Dprops.file=testconfig/ebean-postgres.properties - name: mysql test run: mvn clean test -Dprops.file=testconfig/ebean-mysql.properties - + - name: sqlserver 2019 test + run: mvn clean test -Dprops.file=testconfig/ebean-sqlserver.properties + - name: sqlserver 2017 test + run: mvn clean test -Dprops.file=testconfig/ebean-sqlserver17.properties diff --git a/ebean-test/testconfig/ebean-sqlserver.properties b/ebean-test/testconfig/ebean-sqlserver.properties index f754250af..316a66b7e 100644 --- a/ebean-test/testconfig/ebean-sqlserver.properties +++ b/ebean-test/testconfig/ebean-sqlserver.properties @@ -2,5 +2,7 @@ ebean.test.platform=sqlserver ebean.test.dbName=test_ebean ebean.test.sqlserver.version=2019-latest ebean.test.sqlserver.containerName=ut_sqlserver2019 +ebean.test.sqlserver.port=9434 +ebean.test.sqlserver.url=jdbc:sqlserver://localhost:9434;databaseName=test_ebean;sendTimeAsDateTime=false datasource.default=sqlserver2019 -ebean.sqlserver2019.databasePlatformName=sqlserver17 \ No newline at end of file +ebean.sqlserver2019.databasePlatformName=sqlserver17 diff --git a/ebean-test/testconfig/ebean-sqlserver17.properties b/ebean-test/testconfig/ebean-sqlserver17.properties index 6da4dacc3..172581b73 100644 --- a/ebean-test/testconfig/ebean-sqlserver17.properties +++ b/ebean-test/testconfig/ebean-sqlserver17.properties @@ -2,6 +2,7 @@ ebean.test.platform=sqlserver ebean.test.dbName=test_ebean ebean.test.sqlserver.version=2017-latest ebean.test.sqlserver.containerName=ut_sqlserver2017 -ebean.test.sqlserver.port=1434 +ebean.test.sqlserver.port=2434 +ebean.test.sqlserver.url=jdbc:sqlserver://localhost:2434;databaseName=test_ebean;sendTimeAsDateTime=false datasource.default=sqlserver2017 -ebean.sqlserver2017.databasePlatformName=sqlserver17 \ No newline at end of file +ebean.sqlserver2017.databasePlatformName=sqlserver17 From 552145db37cd4791f4157536148bd57befae9ca6 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 1 Dec 2021 13:17:54 +1300 Subject: [PATCH 26/54] add sqlserver 2019 and 2017 testing to multi-platform-test.yml - adjust port for 2017 --- ebean-test/testconfig/ebean-sqlserver17.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ebean-test/testconfig/ebean-sqlserver17.properties b/ebean-test/testconfig/ebean-sqlserver17.properties index 172581b73..16fb2f57b 100644 --- a/ebean-test/testconfig/ebean-sqlserver17.properties +++ b/ebean-test/testconfig/ebean-sqlserver17.properties @@ -1,8 +1,8 @@ ebean.test.platform=sqlserver ebean.test.dbName=test_ebean ebean.test.sqlserver.version=2017-latest -ebean.test.sqlserver.containerName=ut_sqlserver2017 -ebean.test.sqlserver.port=2434 -ebean.test.sqlserver.url=jdbc:sqlserver://localhost:2434;databaseName=test_ebean;sendTimeAsDateTime=false +ebean.test.sqlserver.containerName=local_sqlserver2017 +ebean.test.sqlserver.port=10434 +ebean.test.sqlserver.url=jdbc:sqlserver://localhost:10434;databaseName=test_ebean;sendTimeAsDateTime=false datasource.default=sqlserver2017 ebean.sqlserver2017.databasePlatformName=sqlserver17 From 4d7936c1a65d235f234ab9a6fa6c98805ef94b6d Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 1 Dec 2021 13:54:55 +1300 Subject: [PATCH 27/54] add mariadb to multi-platform-test.yml --- .github/workflows/multi-platform-test.yml | 13 +++++++------ ebean-test/testconfig/ebean-mariadb-10.3.properties | 2 +- ebean-test/testconfig/ebean-mariadb.properties | 1 + ebean-test/testconfig/ebean-mysql.properties | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/multi-platform-test.yml b/.github/workflows/multi-platform-test.yml index 71f53e2e0..07da38fa7 100644 --- a/.github/workflows/multi-platform-test.yml +++ b/.github/workflows/multi-platform-test.yml @@ -31,14 +31,15 @@ jobs: path: ~/.m2 key: build-${{ env.cache-name }} - - name: h2 test + - name: h2 run: mvn clean test - - name: postgres test + - name: postgres run: mvn clean test -Dprops.file=testconfig/ebean-postgres.properties - - name: mysql test + - name: mysql run: mvn clean test -Dprops.file=testconfig/ebean-mysql.properties - - name: sqlserver 2019 test + - name: sqlserver 2019 latest run: mvn clean test -Dprops.file=testconfig/ebean-sqlserver.properties - - name: sqlserver 2017 test + - name: sqlserver 2017 latest run: mvn clean test -Dprops.file=testconfig/ebean-sqlserver17.properties - + - name: mariadb 10.6 + run: mvn clean test -Dprops.file=testconfig/ebean-mariadb.properties diff --git a/ebean-test/testconfig/ebean-mariadb-10.3.properties b/ebean-test/testconfig/ebean-mariadb-10.3.properties index c7ef279e4..082b4dbce 100644 --- a/ebean-test/testconfig/ebean-mariadb-10.3.properties +++ b/ebean-test/testconfig/ebean-mariadb-10.3.properties @@ -4,5 +4,5 @@ ebean.test.dbName=test_ebean ebean.test.dbPassword=unit ebean.test.mariadb.version=10.3 ebean.test.mariadb.containerName=ut_mariadb-10-3 -ebean.test.sqlserver.port = 7306 +ebean.test.mariadb.port=14308 datasource.default=mariadb-103 diff --git a/ebean-test/testconfig/ebean-mariadb.properties b/ebean-test/testconfig/ebean-mariadb.properties index 165032895..a579e32bf 100644 --- a/ebean-test/testconfig/ebean-mariadb.properties +++ b/ebean-test/testconfig/ebean-mariadb.properties @@ -2,4 +2,5 @@ ebean.test.platform=mariadb ebean.test.dbName=test_ebean ebean.test.mariadb.version=10.6 ebean.test.mariadb.containerName=ut_mariadb-10-6 +ebean.test.mariadb.port=14307 datasource.default=mariadb-106 diff --git a/ebean-test/testconfig/ebean-mysql.properties b/ebean-test/testconfig/ebean-mysql.properties index dfd960fd2..9539946a9 100644 --- a/ebean-test/testconfig/ebean-mysql.properties +++ b/ebean-test/testconfig/ebean-mysql.properties @@ -2,5 +2,5 @@ ebean.test.platform=mysql ebean.test.dbName=test_ebean # note: do not conflict with mariadb port -ebean.test.sqlserver.port = 13306 +#ebean.test.mysql.port=4306 datasource.default=mysql-docker From 5ff9171aaff2c8c87c252f991f735100a3a5600c Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 1 Dec 2021 15:41:04 +1300 Subject: [PATCH 28/54] Bump kotlin version to test against, use maven profiles for test module activation --- kotlin-querybean-generator/pom.xml | 2 +- pom.xml | 17 ++++++++++++++++- tests/pom.xml | 26 ++++++++++++++++++++------ tests/test-java16/pom.xml | 6 +++--- tests/test-kotlin/pom.xml | 8 ++++---- 5 files changed, 44 insertions(+), 15 deletions(-) diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index 759567f09..0be3286f4 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -12,7 +12,7 @@ kotlin-querybean-generator - 1.5.30-M1 + 1.6.0 diff --git a/pom.xml b/pom.xml index 6cf80ad6e..740ee0b08 100644 --- a/pom.xml +++ b/pom.xml @@ -90,8 +90,23 @@ ebean-querybean ebean-postgis ebean-redis - + + + + release + + + default + + true + + + tests + + + + diff --git a/tests/pom.xml b/tests/pom.xml index 9edd759f2..c6f2cdcc5 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -19,11 +19,25 @@ true - - - - - test-kotlin - + + + jdk16plus + + [16,20] + + + test-java16 + + + + jdk15less + + [8,15] + + + test-kotlin + + + diff --git a/tests/test-java16/pom.xml b/tests/test-java16/pom.xml index 4a416d12e..0f4927da5 100644 --- a/tests/test-java16/pom.xml +++ b/tests/test-java16/pom.xml @@ -20,7 +20,7 @@ io.ebean ebean - 12.13.0-SNAPSHOT + 12.13.2-SNAPSHOT @@ -32,7 +32,7 @@ io.ebean ebean-test - 12.13.0-SNAPSHOT + 12.13.2-SNAPSHOT test @@ -58,7 +58,7 @@ io.ebean querybean-generator - 12.13.0-SNAPSHOT + 12.13.2-SNAPSHOT diff --git a/tests/test-kotlin/pom.xml b/tests/test-kotlin/pom.xml index 1321332b8..64981379f 100644 --- a/tests/test-kotlin/pom.xml +++ b/tests/test-kotlin/pom.xml @@ -9,7 +9,7 @@ 2.3 - kotlin test + test-kotlin Kotlin specific tests test-kotlin 1.0 @@ -19,7 +19,7 @@ 11 12.13.0 - 1.5.31 + 1.6.0 2.12.1 true @@ -35,14 +35,14 @@ io.ebean ebean-test - 12.13.0-SNAPSHOT + 12.13.2-SNAPSHOT test io.ebean ebean-core - 12.13.0-SNAPSHOT + 12.13.2-SNAPSHOT test From a0e2155ec25acc2a6057ab7492f44a1aee85ec65 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 1 Dec 2021 15:44:17 +1300 Subject: [PATCH 29/54] add github workflow multi-jdk-build.yml --- .github/workflows/multi-jdk-build.yml | 39 +++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .github/workflows/multi-jdk-build.yml diff --git a/.github/workflows/multi-jdk-build.yml b/.github/workflows/multi-jdk-build.yml new file mode 100644 index 000000000..badab5de6 --- /dev/null +++ b/.github/workflows/multi-jdk-build.yml @@ -0,0 +1,39 @@ + +name: Multi-JDK Build + +on: + workflow_dispatch: + schedule: + - cron: '30 6 * * *' + +jobs: + build: + + runs-on: ${{ matrix.os }} + permissions: + contents: read + packages: write + strategy: + fail-fast: false + matrix: + java_version: [8, 11, 17] + os: [ubuntu-latest] + + steps: + - uses: actions/checkout@v2 + - name: Set up Java + uses: actions/setup-java@v2 + with: + java-version: ${{ matrix.java_version }} + distribution: 'adopt' + - name: Maven cache + uses: actions/cache@v2 + env: + cache-name: maven-cache + with: + path: + ~/.m2 + key: build-${{ env.cache-name }} + - name: Build with Maven + run: mvn package + From bd2faed6a0c15d57657e70069fb9d0170ce2e24f Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 1 Dec 2021 15:54:01 +1300 Subject: [PATCH 30/54] Update readme add badge for multi-jdk build --- .github/workflows/multi-platform-test.yml | 2 +- README.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/multi-platform-test.yml b/.github/workflows/multi-platform-test.yml index 07da38fa7..336c4be60 100644 --- a/.github/workflows/multi-platform-test.yml +++ b/.github/workflows/multi-platform-test.yml @@ -1,5 +1,5 @@ -name: Multi-platform Test +name: Multi database platform test on: [workflow_dispatch] diff --git a/README.md b/README.md index b92e5f720..88c45ea87 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ [![Build](https://github.com/ebean-orm/ebean/actions/workflows/build.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/build.yml) [![Maven Central : ebean](https://maven-badges.herokuapp.com/maven-central/io.ebean/ebean/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.ebean/ebean) +[![Multi-JDK Build](https://github.com/ebean-orm/ebean/actions/workflows/multi-jdk-build.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/multi-jdk-build.yml) # Sponsors From 0279f8b1ad4380cafbca6cfd55f34964480390e2 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 1 Dec 2021 16:02:32 +1300 Subject: [PATCH 31/54] add some test github workflows for sqlserver and mariadb --- .github/workflows/mariadb-platform-test.yml | 35 ++++++++++++++++++ .github/workflows/multi-platform-test.yml | 10 ++--- .github/workflows/sqlserver-platform-test.yml | 37 +++++++++++++++++++ .../testconfig/ebean-sqlserver17.properties | 4 +- 4 files changed, 79 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/mariadb-platform-test.yml create mode 100644 .github/workflows/sqlserver-platform-test.yml diff --git a/.github/workflows/mariadb-platform-test.yml b/.github/workflows/mariadb-platform-test.yml new file mode 100644 index 000000000..b247b4014 --- /dev/null +++ b/.github/workflows/mariadb-platform-test.yml @@ -0,0 +1,35 @@ + +name: MariaDB platform test + +on: [workflow_dispatch] + +jobs: + build: + + runs-on: ${{ matrix.os }} + permissions: + contents: read + packages: write + strategy: + fail-fast: false + matrix: + java_version: [11] + os: [ubuntu-latest] + + steps: + - uses: actions/checkout@v2 + - name: Set up Java + uses: actions/setup-java@v2 + with: + java-version: ${{ matrix.java_version }} + distribution: 'adopt' + - name: Maven cache + uses: actions/cache@v2 + env: + cache-name: maven-cache + with: + path: + ~/.m2 + key: build-${{ env.cache-name }} + - name: mariadb 10.6 + run: mvn clean test -Dprops.file=testconfig/ebean-mariadb.properties diff --git a/.github/workflows/multi-platform-test.yml b/.github/workflows/multi-platform-test.yml index 336c4be60..d3e7f277e 100644 --- a/.github/workflows/multi-platform-test.yml +++ b/.github/workflows/multi-platform-test.yml @@ -1,5 +1,5 @@ -name: Multi database platform test +name: Multi-database platform test on: [workflow_dispatch] @@ -39,7 +39,7 @@ jobs: run: mvn clean test -Dprops.file=testconfig/ebean-mysql.properties - name: sqlserver 2019 latest run: mvn clean test -Dprops.file=testconfig/ebean-sqlserver.properties - - name: sqlserver 2017 latest - run: mvn clean test -Dprops.file=testconfig/ebean-sqlserver17.properties - - name: mariadb 10.6 - run: mvn clean test -Dprops.file=testconfig/ebean-mariadb.properties +# - name: sqlserver 2017 latest +# run: mvn clean test -Dprops.file=testconfig/ebean-sqlserver17.properties +# - name: mariadb 10.6 +# run: mvn clean test -Dprops.file=testconfig/ebean-mariadb.properties diff --git a/.github/workflows/sqlserver-platform-test.yml b/.github/workflows/sqlserver-platform-test.yml new file mode 100644 index 000000000..8e5e1ce2c --- /dev/null +++ b/.github/workflows/sqlserver-platform-test.yml @@ -0,0 +1,37 @@ + +name: SqlServer platform test + +on: [workflow_dispatch] + +jobs: + build: + + runs-on: ${{ matrix.os }} + permissions: + contents: read + packages: write + strategy: + fail-fast: false + matrix: + java_version: [11] + os: [ubuntu-latest] + + steps: + - uses: actions/checkout@v2 + - name: Set up Java + uses: actions/setup-java@v2 + with: + java-version: ${{ matrix.java_version }} + distribution: 'adopt' + - name: Maven cache + uses: actions/cache@v2 + env: + cache-name: maven-cache + with: + path: + ~/.m2 + key: build-${{ env.cache-name }} +# - name: sqlserver 2019 latest +# run: mvn clean test -Dprops.file=testconfig/ebean-sqlserver.properties + - name: sqlserver 2017 latest + run: mvn clean test -Dprops.file=testconfig/ebean-sqlserver17.properties diff --git a/ebean-test/testconfig/ebean-sqlserver17.properties b/ebean-test/testconfig/ebean-sqlserver17.properties index 16fb2f57b..7e82198e5 100644 --- a/ebean-test/testconfig/ebean-sqlserver17.properties +++ b/ebean-test/testconfig/ebean-sqlserver17.properties @@ -2,7 +2,7 @@ ebean.test.platform=sqlserver ebean.test.dbName=test_ebean ebean.test.sqlserver.version=2017-latest ebean.test.sqlserver.containerName=local_sqlserver2017 -ebean.test.sqlserver.port=10434 -ebean.test.sqlserver.url=jdbc:sqlserver://localhost:10434;databaseName=test_ebean;sendTimeAsDateTime=false +ebean.test.sqlserver.port=9435 +ebean.test.sqlserver.url=jdbc:sqlserver://localhost:9435;databaseName=test_ebean;sendTimeAsDateTime=false datasource.default=sqlserver2017 ebean.sqlserver2017.databasePlatformName=sqlserver17 From a65340b939e28b590356757f4f9007ff02be9ab2 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 1 Dec 2021 17:26:24 +1300 Subject: [PATCH 32/54] update test github workflows for sqlserver and mariadb --- ...adb-platform-test.yml => mariadb-10.6.yml} | 0 ...orm-test.yml => sqlserver-2017-latest.yml} | 0 .github/workflows/sqlserver-2019-latest.yml | 35 +++++++++++++++++++ .../testconfig/ebean-sqlserver17.properties | 2 ++ ...roperties => ebean-sqlserver19.properties} | 7 +++- 5 files changed, 43 insertions(+), 1 deletion(-) rename .github/workflows/{mariadb-platform-test.yml => mariadb-10.6.yml} (100%) rename .github/workflows/{sqlserver-platform-test.yml => sqlserver-2017-latest.yml} (100%) create mode 100644 .github/workflows/sqlserver-2019-latest.yml rename ebean-test/testconfig/{ebean-sqlserver.properties => ebean-sqlserver19.properties} (54%) diff --git a/.github/workflows/mariadb-platform-test.yml b/.github/workflows/mariadb-10.6.yml similarity index 100% rename from .github/workflows/mariadb-platform-test.yml rename to .github/workflows/mariadb-10.6.yml diff --git a/.github/workflows/sqlserver-platform-test.yml b/.github/workflows/sqlserver-2017-latest.yml similarity index 100% rename from .github/workflows/sqlserver-platform-test.yml rename to .github/workflows/sqlserver-2017-latest.yml diff --git a/.github/workflows/sqlserver-2019-latest.yml b/.github/workflows/sqlserver-2019-latest.yml new file mode 100644 index 000000000..a5bf6e78a --- /dev/null +++ b/.github/workflows/sqlserver-2019-latest.yml @@ -0,0 +1,35 @@ + +name: SqlServer platform test + +on: [workflow_dispatch] + +jobs: + build: + + runs-on: ${{ matrix.os }} + permissions: + contents: read + packages: write + strategy: + fail-fast: false + matrix: + java_version: [11] + os: [ubuntu-latest] + + steps: + - uses: actions/checkout@v2 + - name: Set up Java + uses: actions/setup-java@v2 + with: + java-version: ${{ matrix.java_version }} + distribution: 'adopt' + - name: Maven cache + uses: actions/cache@v2 + env: + cache-name: maven-cache + with: + path: + ~/.m2 + key: build-${{ env.cache-name }} + - name: sqlserver 2019 latest + run: mvn clean test -Dprops.file=testconfig/ebean-sqlserver19.properties diff --git a/ebean-test/testconfig/ebean-sqlserver17.properties b/ebean-test/testconfig/ebean-sqlserver17.properties index 7e82198e5..92efeb165 100644 --- a/ebean-test/testconfig/ebean-sqlserver17.properties +++ b/ebean-test/testconfig/ebean-sqlserver17.properties @@ -2,7 +2,9 @@ ebean.test.platform=sqlserver ebean.test.dbName=test_ebean ebean.test.sqlserver.version=2017-latest ebean.test.sqlserver.containerName=local_sqlserver2017 +ebean.test.sqlserver.collation=LATIN1_GENERAL_100_CS_AS_SC ebean.test.sqlserver.port=9435 ebean.test.sqlserver.url=jdbc:sqlserver://localhost:9435;databaseName=test_ebean;sendTimeAsDateTime=false + datasource.default=sqlserver2017 ebean.sqlserver2017.databasePlatformName=sqlserver17 diff --git a/ebean-test/testconfig/ebean-sqlserver.properties b/ebean-test/testconfig/ebean-sqlserver19.properties similarity index 54% rename from ebean-test/testconfig/ebean-sqlserver.properties rename to ebean-test/testconfig/ebean-sqlserver19.properties index 316a66b7e..5c8accf32 100644 --- a/ebean-test/testconfig/ebean-sqlserver.properties +++ b/ebean-test/testconfig/ebean-sqlserver19.properties @@ -1,8 +1,13 @@ ebean.test.platform=sqlserver ebean.test.dbName=test_ebean ebean.test.sqlserver.version=2019-latest -ebean.test.sqlserver.containerName=ut_sqlserver2019 +ebean.test.sqlserver.containerName=local_sqlserver2019 +ebean.test.sqlserver.collation=LATIN1_GENERAL_100_CS_AS_SC_UTF8 ebean.test.sqlserver.port=9434 ebean.test.sqlserver.url=jdbc:sqlserver://localhost:9434;databaseName=test_ebean;sendTimeAsDateTime=false datasource.default=sqlserver2019 ebean.sqlserver2019.databasePlatformName=sqlserver17 + +## A case sensitive collation example: +#ebean.test.sqlserver.collation=LATIN1_GENERAL_100_CI_AS_SC_UTF8 +#ebean.sqlserver2019.caseSensitiveCollation=false From a0b6a13e6cf306975c49371b74cc907886e78c94 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 1 Dec 2021 17:27:26 +1300 Subject: [PATCH 33/54] update test github workflows for sqlserver and mariadb --- .github/workflows/mariadb-10.6.yml | 2 +- .github/workflows/sqlserver-2017-latest.yml | 2 +- .github/workflows/sqlserver-2019-latest.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/mariadb-10.6.yml b/.github/workflows/mariadb-10.6.yml index b247b4014..797e948ff 100644 --- a/.github/workflows/mariadb-10.6.yml +++ b/.github/workflows/mariadb-10.6.yml @@ -1,5 +1,5 @@ -name: MariaDB platform test +name: MariaDB 10.6 on: [workflow_dispatch] diff --git a/.github/workflows/sqlserver-2017-latest.yml b/.github/workflows/sqlserver-2017-latest.yml index 8e5e1ce2c..83649d080 100644 --- a/.github/workflows/sqlserver-2017-latest.yml +++ b/.github/workflows/sqlserver-2017-latest.yml @@ -1,5 +1,5 @@ -name: SqlServer platform test +name: SqlServer 2017 latest on: [workflow_dispatch] diff --git a/.github/workflows/sqlserver-2019-latest.yml b/.github/workflows/sqlserver-2019-latest.yml index a5bf6e78a..fd803655f 100644 --- a/.github/workflows/sqlserver-2019-latest.yml +++ b/.github/workflows/sqlserver-2019-latest.yml @@ -1,5 +1,5 @@ -name: SqlServer platform test +name: SqlServer 2019 latest on: [workflow_dispatch] From a2ad1aaf6e1efc518fdad28feea7330c04119480 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 1 Dec 2021 17:51:04 +1300 Subject: [PATCH 34/54] update test github workflows --- .github/workflows/multi-platform-test.yml | 12 +++---- .github/workflows/mysql.yml | 38 +++++++++++++++++++++++ .github/workflows/postgres.yml | 38 +++++++++++++++++++++++ 3 files changed, 82 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/mysql.yml create mode 100644 .github/workflows/postgres.yml diff --git a/.github/workflows/multi-platform-test.yml b/.github/workflows/multi-platform-test.yml index d3e7f277e..f85636c9b 100644 --- a/.github/workflows/multi-platform-test.yml +++ b/.github/workflows/multi-platform-test.yml @@ -37,9 +37,9 @@ jobs: run: mvn clean test -Dprops.file=testconfig/ebean-postgres.properties - name: mysql run: mvn clean test -Dprops.file=testconfig/ebean-mysql.properties - - name: sqlserver 2019 latest - run: mvn clean test -Dprops.file=testconfig/ebean-sqlserver.properties -# - name: sqlserver 2017 latest -# run: mvn clean test -Dprops.file=testconfig/ebean-sqlserver17.properties -# - name: mariadb 10.6 -# run: mvn clean test -Dprops.file=testconfig/ebean-mariadb.properties + - name: sqlserver 2019 + run: mvn clean test -Dprops.file=testconfig/ebean-sqlserver19.properties + - name: sqlserver 2017 + run: mvn clean test -Dprops.file=testconfig/ebean-sqlserver17.properties + - name: mariadb + run: mvn clean test -Dprops.file=testconfig/ebean-mariadb.properties diff --git a/.github/workflows/mysql.yml b/.github/workflows/mysql.yml new file mode 100644 index 000000000..3de91cb2d --- /dev/null +++ b/.github/workflows/mysql.yml @@ -0,0 +1,38 @@ + +name: MySql + +on: + workflow_dispatch: + schedule: + - cron: '20 6 * * *' + +jobs: + build: + + runs-on: ${{ matrix.os }} + permissions: + contents: read + packages: write + strategy: + fail-fast: false + matrix: + java_version: [11] + os: [ubuntu-latest] + + steps: + - uses: actions/checkout@v2 + - name: Set up Java + uses: actions/setup-java@v2 + with: + java-version: ${{ matrix.java_version }} + distribution: 'adopt' + - name: Maven cache + uses: actions/cache@v2 + env: + cache-name: maven-cache + with: + path: + ~/.m2 + key: build-${{ env.cache-name }} + - name: mysql + run: mvn clean test -Dprops.file=testconfig/ebean-mysql.properties diff --git a/.github/workflows/postgres.yml b/.github/workflows/postgres.yml new file mode 100644 index 000000000..b6359e698 --- /dev/null +++ b/.github/workflows/postgres.yml @@ -0,0 +1,38 @@ + +name: Postgres + +on: + workflow_dispatch: + schedule: + - cron: '10 6 * * *' + +jobs: + build: + + runs-on: ${{ matrix.os }} + permissions: + contents: read + packages: write + strategy: + fail-fast: false + matrix: + java_version: [11] + os: [ubuntu-latest] + + steps: + - uses: actions/checkout@v2 + - name: Set up Java + uses: actions/setup-java@v2 + with: + java-version: ${{ matrix.java_version }} + distribution: 'adopt' + - name: Maven cache + uses: actions/cache@v2 + env: + cache-name: maven-cache + with: + path: + ~/.m2 + key: build-${{ env.cache-name }} + - name: postgres + run: mvn clean test -Dprops.file=testconfig/ebean-postgres.properties From d934d44164aa67e9cf05d2f2f5ab8d86ba4141bf Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 1 Dec 2021 22:14:11 +1300 Subject: [PATCH 35/54] update README adding more badges --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 88c45ea87..2a6045969 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,13 @@ [![Build](https://github.com/ebean-orm/ebean/actions/workflows/build.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/build.yml) [![Maven Central : ebean](https://maven-badges.herokuapp.com/maven-central/io.ebean/ebean/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.ebean/ebean) +[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/ebean-orm/ebean/blob/master/LICENSE) [![Multi-JDK Build](https://github.com/ebean-orm/ebean/actions/workflows/multi-jdk-build.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/multi-jdk-build.yml) +[![Postgres](https://github.com/ebean-orm/ebean/actions/workflows/postgres.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/postgres.yml) +[![MySql](https://github.com/ebean-orm/ebean/actions/workflows/mysql.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/mysql.yml) +[![MariaDB 10.6](https://github.com/ebean-orm/ebean/actions/workflows/mariadb-10.6.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/mariadb-10.6.yml) +[![SqlServer 2017 latest](https://github.com/ebean-orm/ebean/actions/workflows/sqlserver-2017-latest.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/sqlserver-2017-latest.yml) + # Sponsors
From e95edad04b3b7250828e34671a31b60a3e1fe635 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Thu, 2 Dec 2021 11:23:38 +0100 Subject: [PATCH 36/54] Fix maven warning --- tests/pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/pom.xml b/tests/pom.xml index c6f2cdcc5..16a4e2c34 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -2,6 +2,7 @@ 4.0.0 + / org.avaje java8-oss 2.3 From 272b316eccfbe007c046b55946373cfd0ae1b8ef Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Thu, 2 Dec 2021 11:29:45 +0100 Subject: [PATCH 37/54] some more changes --- tests/pom.xml | 2 +- tests/test-kotlin/pom.xml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/pom.xml b/tests/pom.xml index 16a4e2c34..31199f8b8 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - / + ../../ org.avaje java8-oss 2.3 diff --git a/tests/test-kotlin/pom.xml b/tests/test-kotlin/pom.xml index 64981379f..ab6dbdbfe 100644 --- a/tests/test-kotlin/pom.xml +++ b/tests/test-kotlin/pom.xml @@ -4,6 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 + ../../../ org.avaje java11-oss 2.3 From 8cd6d50def81add6595f36ee54e9844c3cea2e84 Mon Sep 17 00:00:00 2001 From: Carl Dea Date: Mon, 6 Dec 2021 14:59:41 -0500 Subject: [PATCH 38/54] Using TCK Tested JDK builds of OpenJDK The AdoptOpenJDK has been discontinued since July 2021 (https://adoptopenjdk.net). Switching the distribution to Azul Zulu. When using Zulu you get all the latest updated (TCK Tested) builds for all versions of OpenJDK --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0c09fbd01..bf03d3b50 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,7 +22,7 @@ jobs: uses: actions/setup-java@v2 with: java-version: ${{ matrix.java_version }} - distribution: 'adopt' + distribution: 'zulu' - name: Maven cache uses: actions/cache@v2 env: From 888109d70699c63e388f3d2c0b5196f71757d287 Mon Sep 17 00:00:00 2001 From: Carl Dea Date: Mon, 6 Dec 2021 15:00:49 -0500 Subject: [PATCH 39/54] Using TCK Tested JDK builds of OpenJDK The AdoptOpenJDK has been discontinued since July 2021 (https://adoptopenjdk.net). Switching the distribution to Azul Zulu. When using Zulu you get all the latest updated (TCK Tested) builds for all versions of OpenJDK. --- .github/workflows/multi-jdk-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/multi-jdk-build.yml b/.github/workflows/multi-jdk-build.yml index badab5de6..f44cfac89 100644 --- a/.github/workflows/multi-jdk-build.yml +++ b/.github/workflows/multi-jdk-build.yml @@ -16,7 +16,7 @@ jobs: strategy: fail-fast: false matrix: - java_version: [8, 11, 17] + java_version: [8.0.192, 8, 11.0.3, 11, 17] os: [ubuntu-latest] steps: @@ -25,7 +25,7 @@ jobs: uses: actions/setup-java@v2 with: java-version: ${{ matrix.java_version }} - distribution: 'adopt' + distribution: 'zulu' - name: Maven cache uses: actions/cache@v2 env: From d28d9a61761080ee3defb31192d685308d3e3e35 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 7 Dec 2021 14:47:49 +1300 Subject: [PATCH 40/54] Follow up to #2448 - Fix maven warning --- tests/pom.xml | 2 +- tests/test-kotlin/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/pom.xml b/tests/pom.xml index 31199f8b8..b3592f647 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -2,10 +2,10 @@ 4.0.0 - ../../ org.avaje java8-oss 2.3 + io.ebean diff --git a/tests/test-kotlin/pom.xml b/tests/test-kotlin/pom.xml index ab6dbdbfe..3ab10cdf5 100644 --- a/tests/test-kotlin/pom.xml +++ b/tests/test-kotlin/pom.xml @@ -4,10 +4,10 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - ../../../ org.avaje java11-oss 2.3 + test-kotlin From 103f9651821aae8e0549d251a7debc3fac40deb7 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 7 Dec 2021 14:51:53 +1300 Subject: [PATCH 41/54] Add github workflow for JDK 18-ea build --- .github/workflows/jdk-18-ea.yml | 39 +++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .github/workflows/jdk-18-ea.yml diff --git a/.github/workflows/jdk-18-ea.yml b/.github/workflows/jdk-18-ea.yml new file mode 100644 index 000000000..73121f1d4 --- /dev/null +++ b/.github/workflows/jdk-18-ea.yml @@ -0,0 +1,39 @@ + +name: JDK 18-ea + +on: + workflow_dispatch: +# schedule: +# - cron: '30 6 * * *' + +jobs: + build: + + runs-on: ${{ matrix.os }} + permissions: + contents: read + packages: write + strategy: + fail-fast: false + matrix: + java_version: [18-ea] + os: [ubuntu-latest] + + steps: + - uses: actions/checkout@v2 + - name: Set up Java + uses: actions/setup-java@v2 + with: + java-version: ${{ matrix.java_version }} + distribution: 'zulu' + - name: Maven cache + uses: actions/cache@v2 + env: + cache-name: maven-cache + with: + path: + ~/.m2 + key: build-${{ env.cache-name }} + - name: Build with Maven + run: mvn package + From 9d26ab21030ee0df26b0d7196396884fc4b34561 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 7 Dec 2021 15:15:21 +1300 Subject: [PATCH 42/54] Adjust tests for JDK 18-ea build --- .../profile/BasicProfileLocationTest.java | 13 +++++++--- .../org/tests/basic/TestLoadBeanCache.java | 24 ++++++++----------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/profile/BasicProfileLocationTest.java b/ebean-test/src/test/java/io/ebeaninternal/server/profile/BasicProfileLocationTest.java index 3762cd51b..7eccc8d83 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/profile/BasicProfileLocationTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/server/profile/BasicProfileLocationTest.java @@ -12,14 +12,21 @@ public class BasicProfileLocationTest { DProfileLocation loc = new DTimedProfileLocation(12, "foo", MetricFactory.get().createTimedMetric("junk")); + String javaVersion = System.getProperty("java.version"); assertThat(loc.obtain()).isTrue(); - assertThat(loc.fullLocation()).endsWith(":12)"); - if (System.getProperty("java.version").startsWith("1.8")) { + if (javaVersion.startsWith("1.8")) { + assertThat(loc.fullLocation()).endsWith("jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method:12)"); assertThat(loc.location()).isEqualTo("sun.reflect.NativeMethodAccessorImpl.invoke0"); + assertThat(loc.label()).isEqualTo("NativeMethodAccessorImpl.invoke0"); + } else if (javaVersion.startsWith("18")){ + assertThat(loc.fullLocation()).endsWith("jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)"); + assertThat(loc.location()).isEqualTo("java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke"); + assertThat(loc.label()).isEqualTo("DirectMethodHandleAccessor.invoke"); } else { + assertThat(loc.fullLocation()).endsWith("jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method:12)"); assertThat(loc.location()).isEqualTo("java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0"); + assertThat(loc.label()).isEqualTo("NativeMethodAccessorImpl.invoke0"); } - assertThat(loc.label()).isEqualTo("NativeMethodAccessorImpl.invoke0"); } @Test diff --git a/ebean-test/src/test/java/org/tests/basic/TestLoadBeanCache.java b/ebean-test/src/test/java/org/tests/basic/TestLoadBeanCache.java index 47eb98793..a72f07264 100644 --- a/ebean-test/src/test/java/org/tests/basic/TestLoadBeanCache.java +++ b/ebean-test/src/test/java/org/tests/basic/TestLoadBeanCache.java @@ -13,13 +13,12 @@ import java.util.List; import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.*; -public class TestLoadBeanCache extends BaseTestCase { +class TestLoadBeanCache extends BaseTestCase { @Test - public void testLoad() { + void testLoad() { ResetBasicData.reset(); @@ -35,32 +34,29 @@ public class TestLoadBeanCache extends BaseTestCase { // this will hit the cache Country nz = DB.find(Country.class, "NZ"); - assertTrue(loadedNz == nz); + assertSame(loadedNz, nz); } - + @Test - public void testLoadWithFindMap() { + void testLoadWithFindMap() { ResetBasicData.reset(); - + List ids = DB.find(Customer.class).findIds(); - assertEquals(ids.size(), 4); + assertThat(ids).isNotEmpty(); DB.getDefault().pluginApi().cacheManager().clearAll(); - + // hit database LoggedSql.start(); DB.find(Customer.class).where().idIn(ids).findMap(); List sql = LoggedSql.stop(); assertThat(sql).hasSize(1); - + // hit beanCache LoggedSql.start(); DB.find(Customer.class).where().idIn(ids).findMap(); sql = LoggedSql.stop(); assertThat(sql).hasSize(0); - } - - } From e7aa1fdac5f2dda8ae947033955e2165252204de Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 7 Dec 2021 15:21:43 +1300 Subject: [PATCH 43/54] Update badges on README --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2a6045969..30dc2c06b 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,12 @@ [![Maven Central : ebean](https://maven-badges.herokuapp.com/maven-central/io.ebean/ebean/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.ebean/ebean) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/ebean-orm/ebean/blob/master/LICENSE) [![Multi-JDK Build](https://github.com/ebean-orm/ebean/actions/workflows/multi-jdk-build.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/multi-jdk-build.yml) +[![JDK 18-ea](https://github.com/ebean-orm/ebean/actions/workflows/jdk-18-ea.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/jdk-18-ea.yml) [![Postgres](https://github.com/ebean-orm/ebean/actions/workflows/postgres.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/postgres.yml) [![MySql](https://github.com/ebean-orm/ebean/actions/workflows/mysql.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/mysql.yml) -[![MariaDB 10.6](https://github.com/ebean-orm/ebean/actions/workflows/mariadb-10.6.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/mariadb-10.6.yml) -[![SqlServer 2017 latest](https://github.com/ebean-orm/ebean/actions/workflows/sqlserver-2017-latest.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/sqlserver-2017-latest.yml) +[![MariaDB](https://github.com/ebean-orm/ebean/actions/workflows/mariadb-10.6.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/mariadb-10.6.yml) +[![SqlServer](https://github.com/ebean-orm/ebean/actions/workflows/sqlserver-2017-latest.yml/badge.svg)](https://github.com/ebean-orm/ebean/actions/workflows/sqlserver-2017-latest.yml) # Sponsors
From 9752eced1f2a3737aff3d39828f2b2dd1c0a7599 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 7 Dec 2021 15:24:19 +1300 Subject: [PATCH 44/54] Adjust tests for JDK 18-ea build --- .../ebeaninternal/server/profile/BasicProfileLocationTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/profile/BasicProfileLocationTest.java b/ebean-test/src/test/java/io/ebeaninternal/server/profile/BasicProfileLocationTest.java index 7eccc8d83..1f6618d9a 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/profile/BasicProfileLocationTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/server/profile/BasicProfileLocationTest.java @@ -15,7 +15,7 @@ public class BasicProfileLocationTest { String javaVersion = System.getProperty("java.version"); assertThat(loc.obtain()).isTrue(); if (javaVersion.startsWith("1.8")) { - assertThat(loc.fullLocation()).endsWith("jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method:12)"); + assertThat(loc.fullLocation()).endsWith("invoke0(Native Method:12)"); assertThat(loc.location()).isEqualTo("sun.reflect.NativeMethodAccessorImpl.invoke0"); assertThat(loc.label()).isEqualTo("NativeMethodAccessorImpl.invoke0"); } else if (javaVersion.startsWith("18")){ From b9f3ff24e99815b3d38cf6b77748df5a1411be35 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 7 Dec 2021 15:25:02 +1300 Subject: [PATCH 45/54] Tidy test only - BasicProfileLocationTest --- .../server/profile/BasicProfileLocationTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ebean-test/src/test/java/io/ebeaninternal/server/profile/BasicProfileLocationTest.java b/ebean-test/src/test/java/io/ebeaninternal/server/profile/BasicProfileLocationTest.java index 1f6618d9a..3c3055151 100644 --- a/ebean-test/src/test/java/io/ebeaninternal/server/profile/BasicProfileLocationTest.java +++ b/ebean-test/src/test/java/io/ebeaninternal/server/profile/BasicProfileLocationTest.java @@ -5,10 +5,10 @@ import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; -public class BasicProfileLocationTest { +class BasicProfileLocationTest { @Test - public void obtain() { + void obtain() { DProfileLocation loc = new DTimedProfileLocation(12, "foo", MetricFactory.get().createTimedMetric("junk")); @@ -30,7 +30,7 @@ public class BasicProfileLocationTest { } @Test - public void basic_trimPackage() { + void basic_trimPackage() { BasicProfileLocation loc = new BasicProfileLocation("com.foo.Bar.all"); assertThat(loc.obtain()).isFalse(); @@ -40,7 +40,7 @@ public class BasicProfileLocationTest { } @Test - public void basic_trimSinglePackage() { + void basic_trimSinglePackage() { BasicProfileLocation loc = new BasicProfileLocation("foo.Bar.all"); assertThat(loc.obtain()).isFalse(); From b627794f8f6d84c7414f338944495736c3a3d1b0 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 7 Dec 2021 16:25:46 +1300 Subject: [PATCH 46/54] #2451 - Initial add of ebean-kotlin module, home of kotlin extension --- ebean-kotlin/pom.xml | 104 ++++++++++++++++++ .../kotlin/org/example/domain/FooEntity.kt | 18 +++ .../org/example/domain/FooEntityTest.kt | 21 ++++ .../src/test/resources/application-test.yaml | 4 + pom.xml | 2 + 5 files changed, 149 insertions(+) create mode 100644 ebean-kotlin/pom.xml create mode 100644 ebean-kotlin/src/test/kotlin/org/example/domain/FooEntity.kt create mode 100644 ebean-kotlin/src/test/kotlin/org/example/domain/FooEntityTest.kt create mode 100644 ebean-kotlin/src/test/resources/application-test.yaml diff --git a/ebean-kotlin/pom.xml b/ebean-kotlin/pom.xml new file mode 100644 index 000000000..53d2f8cd4 --- /dev/null +++ b/ebean-kotlin/pom.xml @@ -0,0 +1,104 @@ + + + + ebean-parent + io.ebean + 12.13.2-SNAPSHOT + + 4.0.0 + + ebean-kotlin + + + 11 + 11 + 12.13.0 + 1.6.0 + + + + + org.jetbrains.kotlin + kotlin-stdlib-jdk8 + ${kotlin.version} + provided + + + + io.ebean + ebean-core + 12.13.2-SNAPSHOT + provided + + + + + org.jetbrains.kotlin + kotlin-test + ${kotlin.version} + test + + + + io.avaje + junit + 1.0 + test + + + + io.ebean + ebean-test + 12.13.2-SNAPSHOT + test + + + + + + + ${project.basedir}/src/main/kotlin + ${project.basedir}/src/test/kotlin + + + + org.jetbrains.kotlin + kotlin-maven-plugin + ${kotlin.version} + + 11 + + + + compile + + compile + + + + test-compile + + test-compile + + + + + + + io.repaint.maven + tiles-maven-plugin + 2.24 + true + + + io.ebean.tile:enhancement:12.13.1 + + + + + + + + diff --git a/ebean-kotlin/src/test/kotlin/org/example/domain/FooEntity.kt b/ebean-kotlin/src/test/kotlin/org/example/domain/FooEntity.kt new file mode 100644 index 000000000..f1bc6d753 --- /dev/null +++ b/ebean-kotlin/src/test/kotlin/org/example/domain/FooEntity.kt @@ -0,0 +1,18 @@ +package org.example.domain + +import io.ebean.Model +import javax.persistence.Entity +import javax.persistence.Id +import javax.persistence.Version + +@Entity +class FooEntity(name: String) : Model() { + + @Id + var id: Long = 0 + + var name: String = name + + @Version + var version: Long = 0 +} diff --git a/ebean-kotlin/src/test/kotlin/org/example/domain/FooEntityTest.kt b/ebean-kotlin/src/test/kotlin/org/example/domain/FooEntityTest.kt new file mode 100644 index 000000000..ef94f3b48 --- /dev/null +++ b/ebean-kotlin/src/test/kotlin/org/example/domain/FooEntityTest.kt @@ -0,0 +1,21 @@ +package org.example.domain + +import io.ebean.DB +import org.assertj.core.api.Assertions.assertThat +import org.junit.jupiter.api.Test + +class FooEntityTest { + + @Test + fun iud() { + + val foo = FooEntity("hello") + foo.save() + + val found = DB.find(FooEntity::class.java, foo.id) + assertThat(found).isNotNull + + found?.delete() + + } +} diff --git a/ebean-kotlin/src/test/resources/application-test.yaml b/ebean-kotlin/src/test/resources/application-test.yaml new file mode 100644 index 000000000..310638fcb --- /dev/null +++ b/ebean-kotlin/src/test/resources/application-test.yaml @@ -0,0 +1,4 @@ +ebean: + test: + platform: h2 + diff --git a/pom.xml b/pom.xml index 740ee0b08..ba0c11c58 100644 --- a/pom.xml +++ b/pom.xml @@ -90,6 +90,7 @@ ebean-querybean ebean-postgis ebean-redis + @@ -103,6 +104,7 @@ true + ebean-kotlin tests From 9bdcd6c55e18c6ca3a08765ae2cc50f58f30c76b Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 7 Dec 2021 18:13:17 +1300 Subject: [PATCH 47/54] #2452 - server-wide defaultJsonMutation SOURCE is not honored by DbJson scalar types (e.g. List) --- .../server/type/DefaultTypeManager.java | 7 +-- .../server/type/TypeJsonManager.java | 12 ++++ .../org/tests/json/TestJsonSourceDefault.java | 63 +++++++++++++++++++ 3 files changed, 78 insertions(+), 4 deletions(-) create mode 100644 ebean-test/src/test/java/org/tests/json/TestJsonSourceDefault.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java index 544d8433e..a5b3b35c0 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java @@ -337,11 +337,10 @@ public final class DefaultTypeManager implements TypeManager { Type genericType = prop.getGenericType(); boolean hasJacksonAnnotations = objectMapperPresent && checkJacksonAnnotations(prop); - boolean keepSource = prop.getMutationDetection() == MutationDetection.SOURCE; if (type.equals(List.class)) { DocPropertyType docType = getDocType(genericType); if (!hasJacksonAnnotations && isValueTypeSimple(genericType)) { - return ScalarTypeJsonList.typeFor(postgres, dbType, docType, prop.isNullable(), keepSource); + return ScalarTypeJsonList.typeFor(postgres, dbType, docType, prop.isNullable(), jsonManager.keepSource(prop)); } else { return createJsonObjectMapperType(prop, dbType, docType); } @@ -349,14 +348,14 @@ public final class DefaultTypeManager implements TypeManager { if (type.equals(Set.class)) { DocPropertyType docType = getDocType(genericType); if (!hasJacksonAnnotations && isValueTypeSimple(genericType)) { - return ScalarTypeJsonSet.typeFor(postgres, dbType, docType, prop.isNullable(), keepSource); + return ScalarTypeJsonSet.typeFor(postgres, dbType, docType, prop.isNullable(), jsonManager.keepSource(prop)); } else { return createJsonObjectMapperType(prop, dbType, docType); } } if (type.equals(Map.class)) { if (!hasJacksonAnnotations && isMapValueTypeObject(genericType)) { - return ScalarTypeJsonMap.typeFor(postgres, dbType, keepSource); + return ScalarTypeJsonMap.typeFor(postgres, dbType, jsonManager.keepSource(prop)); } else { return createJsonObjectMapperType(prop, dbType, DocPropertyType.OBJECT); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeJsonManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeJsonManager.java index 6660a9f39..25034e409 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeJsonManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/TypeJsonManager.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import io.ebean.ModifyAwareType; import io.ebean.annotation.MutationDetection; import io.ebean.config.dbplatform.DbPlatformType; +import io.ebeaninternal.server.deploy.meta.DeployBeanProperty; final class TypeJsonManager { @@ -25,6 +26,17 @@ final class TypeJsonManager { return objectMapper; } + boolean keepSource(DeployBeanProperty prop) { + if (prop.getMutationDetection() == MutationDetection.SOURCE) { + return true; + } else if (prop.getMutationDetection() == MutationDetection.DEFAULT) { + prop.setMutationDetection(mutationDetection); + return mutationDetection == MutationDetection.SOURCE; + } else { + return false; + } + } + String postgresType(int dbType) { if (postgres) { switch (dbType) { diff --git a/ebean-test/src/test/java/org/tests/json/TestJsonSourceDefault.java b/ebean-test/src/test/java/org/tests/json/TestJsonSourceDefault.java new file mode 100644 index 000000000..9a2d5d6ca --- /dev/null +++ b/ebean-test/src/test/java/org/tests/json/TestJsonSourceDefault.java @@ -0,0 +1,63 @@ +package org.tests.json; + +import io.ebean.Database; +import io.ebean.DatabaseFactory; +import io.ebean.ValuePair; +import io.ebean.annotation.ForPlatform; +import io.ebean.annotation.MutationDetection; +import io.ebean.annotation.Platform; +import io.ebean.config.DatabaseConfig; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.tests.model.json.EBasicJsonList; + +import java.util.List; +import java.util.Map; + +import static org.assertj.core.api.Assertions.assertThat; + +class TestJsonSourceDefault { + + @Test + @ForPlatform(Platform.H2) + @Disabled + void testDirtyValues_diffSource() { + DatabaseConfig config = new DatabaseConfig(); + config.getDataSourceConfig() + .setUsername("sa") + .setPassword("") + .setUrl("jdbc:h2:mem:testJsonSourceDirtyValues"); + + config.setName("jsonSource"); + config.setDefaultServer(false); + config.setRegister(false); + config.setDdlGenerate(true); + config.setDdlRun(true); + config.setDdlExtra(false); + config.addClass(EBasicJsonList.class); + config.setJsonMutationDetection(MutationDetection.SOURCE); + Database db = DatabaseFactory.create(config); + try { + assertThat(db).isNotNull(); + + EBasicJsonList bean = new EBasicJsonList(); + bean.getTags().add("aa"); + bean.getTags().add("bb"); + + db.save(bean); + bean = db.find(EBasicJsonList.class, bean.getId()); + + bean.getTags().add("cc"); + final Map dirtyValues = db.beanState(bean).dirtyValues(); + assertThat(dirtyValues).containsOnlyKeys("tags"); + + final ValuePair diff = dirtyValues.get("tags"); + assertThat(diff.getOldValue()).isInstanceOf(List.class).asList().containsExactly("aa", "bb"); + assertThat(diff.getNewValue()).isInstanceOf(List.class).asList().containsExactly("aa", "bb", "cc"); + } finally { + if (db != null) { + db.shutdown(); + } + } + } +} From c3295f1145e0f8b2f9984047d400d263e0705bd2 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Mon, 13 Dec 2021 20:54:49 +1300 Subject: [PATCH 48/54] #2445 - Put back DB2 maxTableNameLength=18, maxConstraintNameLength=18 --- .../main/java/io/ebean/config/dbplatform/db2/DB2Platform.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/db2/DB2Platform.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/db2/DB2Platform.java index 305f38efe..61d14f4a6 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/db2/DB2Platform.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/db2/DB2Platform.java @@ -22,8 +22,8 @@ public class DB2Platform extends DatabasePlatform { this.platform = Platform.DB2; // Note: DB2 (at least LUW supports length up to 128) // TOOD: Check if we need to introduce a new platform (DB2_LUW_11 ?) - this.maxTableNameLength = 128; - this.maxConstraintNameLength = 128; + this.maxTableNameLength = 18; + this.maxConstraintNameLength = 18; this.truncateTable = "truncate table %s reuse storage ignore delete triggers immediate"; this.sqlLimiter = new Db2SqlLimiter(); From 0dbf9822930199d5d50a1718a79204e933c48b3e Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 15 Dec 2021 21:47:58 +1300 Subject: [PATCH 49/54] Javadoc only update in PlatformConfig --- ebean-api/src/main/java/io/ebean/config/PlatformConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ebean-api/src/main/java/io/ebean/config/PlatformConfig.java b/ebean-api/src/main/java/io/ebean/config/PlatformConfig.java index f609af041..df50db88a 100644 --- a/ebean-api/src/main/java/io/ebean/config/PlatformConfig.java +++ b/ebean-api/src/main/java/io/ebean/config/PlatformConfig.java @@ -378,7 +378,7 @@ public class PlatformConfig { BINARY(false, true, false), /** - * Store using DB BINARY(16). + * Store using DB BINARY(16) with optimized packing. */ BINARY_OPTIMIZED(false, true, true); From b4ebeb00703fda06f5008bab842e6e2ca0353d11 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 15 Dec 2021 21:49:02 +1300 Subject: [PATCH 50/54] #2445 - update test generated ddl as part of ... Put back DB2 maxTableNameLength=18, maxConstraintNameLength=18 --- .../migrationtest/db2/1.0__initial.sql | 28 ++++---- .../dbmigration/migrationtest/db2/1.1.sql | 70 +++++++++---------- .../dbmigration/migrationtest/db2/1.3.sql | 56 +++++++-------- .../migrationtest/db2/idx_db2.migrations | 6 +- 4 files changed, 80 insertions(+), 80 deletions(-) diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql index 20d677cf5..095b581de 100644 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql +++ b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.0__initial.sql @@ -71,17 +71,17 @@ create table migtest_e_basic ( indextest5 varchar(127), indextest6 varchar(127), user_id integer not null, - constraint ck_migtest_e_basic_status check ( status in ('N','A','I')), - constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')), + constraint ck_mgtst__bsc_stts check ( status in ('N','A','I')), + constraint ck_mgtst__b_z543fg check ( status2 in ('N','A','I')), constraint pk_migtest_e_basic primary key (id) ); --- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); --- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); +-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_4aybzy unique (indextest2); +-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_4ayc02 unique (indextest6); create table migtest_e_enum ( id integer generated by default as identity not null, test_status varchar(1), - constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')), + constraint ck_mgtst__n_773sok check ( test_status in ('N','A','I')), constraint pk_migtest_e_enum primary key (id) ); @@ -129,7 +129,7 @@ create table migtest_e_ref ( name varchar(127) not null, constraint pk_migtest_e_ref primary key (id) ); -alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); +alter table migtest_e_ref add constraint uq_mgtst__rf_nm unique (name); create table migtest_e_softdelete ( id integer generated by default as identity not null, @@ -161,14 +161,14 @@ create table migtest_oto_master ( constraint pk_migtest_oto_master primary key (id) ); -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -create index ix_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id); -alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade; +create index ix_mgtst__b_eu8csq on migtest_e_basic (indextest1); +create index ix_mgtst__b_eu8csu on migtest_e_basic (indextest5); +create index ix_mgtst_fk_mok1xj on migtest_fk_cascade (one_id); +alter table migtest_fk_cascade add constraint fk_mgtst_fk_65kf6l foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade; -create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id); -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; +create index ix_mgtst_fk_c4p3mv on migtest_fk_set_null (one_id); +alter table migtest_fk_set_null add constraint fk_mgtst_fk_wicx8x foreign key (one_id) references migtest_fk_one (id) on delete set null; -create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); -alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict; +create index ix_mgtst__bsc_rf_d on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_mgtst__bsc_rf_d foreign key (eref_id) references migtest_e_ref (id) on delete restrict; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.1.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.1.sql index 27c612f46..605a24af3 100644 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.1.sql +++ b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.1.sql @@ -20,31 +20,31 @@ create table migtest_mtm_m_migtest_mtm_c ( alter table migtest_ckey_detail add column one_key integer; alter table migtest_ckey_detail add column two_key varchar(127); -alter table migtest_ckey_detail add constraint fk_migtest_ckey_detail_parent foreign key (one_key,two_key) references migtest_ckey_parent (one_key,two_key) on delete restrict; +alter table migtest_ckey_detail add constraint fk_mgtst_ck_e1qkb5 foreign key (one_key,two_key) references migtest_ckey_parent (one_key,two_key) on delete restrict; alter table migtest_ckey_parent add column assoc_id integer; -alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; -alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete restrict; -alter table migtest_fk_none add constraint fk_migtest_fk_none_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict; -alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict; -alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict; +alter table migtest_fk_cascade drop constraint fk_mgtst_fk_65kf6l; +alter table migtest_fk_cascade add constraint fk_mgtst_fk_65kf6l foreign key (one_id) references migtest_fk_cascade_one (id) on delete restrict; +alter table migtest_fk_none add constraint fk_mgtst_fk_nn_n_d foreign key (one_id) references migtest_fk_one (id) on delete restrict; +alter table migtest_fk_none_via_join add constraint fk_mgtst_fk_9tknzj foreign key (one_id) references migtest_fk_one (id) on delete restrict; +alter table migtest_fk_set_null drop constraint fk_mgtst_fk_wicx8x; +alter table migtest_fk_set_null add constraint fk_mgtst_fk_wicx8x foreign key (one_id) references migtest_fk_one (id) on delete restrict; update migtest_e_basic set status = 'A' where status is null; -alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_e_basic drop constraint ck_mgtst__bsc_stts; alter table migtest_e_basic alter column status set default 'A'; alter table migtest_e_basic alter column status set not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); -alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic add constraint ck_mgtst__bsc_stts check ( status in ('N','A','I','?')); +alter table migtest_e_basic drop constraint ck_mgtst__b_z543fg; alter table migtest_e_basic alter column status2 varchar(127); alter table migtest_e_basic alter column status2 drop default; alter table migtest_e_basic alter column status2 set null; -- rename all collisions; --- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); +-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_vs45xo unique (description); insert into migtest_e_user (id) select distinct user_id from migtest_e_basic; -alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict; +alter table migtest_e_basic add constraint fk_mgtst__bsc_sr_d foreign key (user_id) references migtest_e_user (id) on delete restrict; alter table migtest_e_basic alter column user_id set null; alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null; alter table migtest_e_basic add column new_boolean_field boolean default true not null; @@ -52,16 +52,16 @@ update migtest_e_basic set new_boolean_field = old_boolean; alter table migtest_e_basic add column new_boolean_field2 boolean default true not null; alter table migtest_e_basic add column progress integer default 0 not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); +alter table migtest_e_basic add constraint ck_mgtst__b_l39g41 check ( progress in (0,1,2)); alter table migtest_e_basic add column new_integer integer default 42 not null; -alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2; -alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6; --- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_status_indextest1 unique (status,indextest1); --- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_name unique (name); --- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique (indextest4); --- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5); -alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; +alter table migtest_e_basic drop constraint uq_mgtst__b_4aybzy; +alter table migtest_e_basic drop constraint uq_mgtst__b_4ayc02; +-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_ucfcne unique (status,indextest1); +-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__bsc_nm unique (name); +-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_4ayc00 unique (indextest4); +-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_4ayc01 unique (indextest5); +alter table migtest_e_enum drop constraint ck_mgtst__n_773sok; comment on column migtest_e_history.test_string is 'Column altered to long now'; alter table migtest_e_history alter column test_string bigint; comment on table migtest_e_history is 'We have history now'; @@ -87,24 +87,24 @@ alter table migtest_e_softdelete add column deleted boolean default false not nu alter table migtest_oto_child add column master_id bigint; -create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); -create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); -drop index ix_migtest_e_basic_indextest1; -drop index ix_migtest_e_basic_indextest5; -create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id); -alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict; +create index ix_mgtst__b_eu8css on migtest_e_basic (indextest3); +create index ix_mgtst__b_eu8csv on migtest_e_basic (indextest6); +drop index ix_mgtst__b_eu8csq; +drop index ix_mgtst__b_eu8csu; +create index ix_mgtst_mt_3ug4ok on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id); +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_mgtst_mt_93awga foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict; -create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id); -alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict; +create index ix_mgtst_mt_3ug4ou on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id); +alter table migtest_mtm_c_migtest_mtm_m add constraint fk_mgtst_mt_93awgk foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict; -create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id); -alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict; +create index ix_mgtst_mt_b7nbcu on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id); +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mt_ggi34k foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict; -create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id); -alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict; +create index ix_mgtst_mt_b7nbck on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id); +alter table migtest_mtm_m_migtest_mtm_c add constraint fk_mgtst_mt_ggi34a foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict; -create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); -alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_assoc (id) on delete restrict; +create index ix_mgtst_ck_x45o21 on migtest_ckey_parent (assoc_id); +alter table migtest_ckey_parent add constraint fk_mgtst_ck_da00mr foreign key (assoc_id) references migtest_ckey_assoc (id) on delete restrict; -alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id) on delete restrict; +alter table migtest_oto_child add constraint fk_mgtst_t__csyl38 foreign key (master_id) references migtest_oto_master (id) on delete restrict; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.3.sql b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.3.sql index eaf78b733..9489c8d98 100644 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.3.sql +++ b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/1.3.sql @@ -5,44 +5,44 @@ create table migtest_e_ref ( name varchar(127) not null, constraint pk_migtest_e_ref primary key (id) ); -alter table migtest_e_ref add constraint uq_migtest_e_ref_name unique (name); +alter table migtest_e_ref add constraint uq_mgtst__rf_nm unique (name); -alter table migtest_ckey_detail drop constraint fk_migtest_ckey_detail_parent; -alter table migtest_fk_cascade drop constraint fk_migtest_fk_cascade_one_id; -alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade; -alter table migtest_fk_none drop constraint fk_migtest_fk_none_one_id; -alter table migtest_fk_none_via_join drop constraint fk_migtest_fk_none_via_join_one_id; -alter table migtest_fk_set_null drop constraint fk_migtest_fk_set_null_one_id; -alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null; -alter table migtest_e_basic drop constraint ck_migtest_e_basic_status; +alter table migtest_ckey_detail drop constraint fk_mgtst_ck_e1qkb5; +alter table migtest_fk_cascade drop constraint fk_mgtst_fk_65kf6l; +alter table migtest_fk_cascade add constraint fk_mgtst_fk_65kf6l foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade; +alter table migtest_fk_none drop constraint fk_mgtst_fk_nn_n_d; +alter table migtest_fk_none_via_join drop constraint fk_mgtst_fk_9tknzj; +alter table migtest_fk_set_null drop constraint fk_mgtst_fk_wicx8x; +alter table migtest_fk_set_null add constraint fk_mgtst_fk_wicx8x foreign key (one_id) references migtest_fk_one (id) on delete set null; +alter table migtest_e_basic drop constraint ck_mgtst__bsc_stts; alter table migtest_e_basic alter column status drop default; alter table migtest_e_basic alter column status set null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I')); +alter table migtest_e_basic add constraint ck_mgtst__bsc_stts check ( status in ('N','A','I')); update migtest_e_basic set status2 = 'N' where status2 is null; -alter table migtest_e_basic drop constraint ck_migtest_e_basic_status2; +alter table migtest_e_basic drop constraint ck_mgtst__b_z543fg; alter table migtest_e_basic alter column status2 varchar(1); alter table migtest_e_basic alter column status2 set default 'N'; alter table migtest_e_basic alter column status2 set not null; -alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); -alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; +alter table migtest_e_basic add constraint ck_mgtst__b_z543fg check ( status2 in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_mgtst__b_vs45xo; update migtest_e_basic set user_id = 23 where user_id is null; -alter table migtest_e_basic drop constraint fk_migtest_e_basic_user_id; +alter table migtest_e_basic drop constraint fk_mgtst__bsc_sr_d; alter table migtest_e_basic alter column user_id set default 23; alter table migtest_e_basic alter column user_id set not null; alter table migtest_e_basic add column old_boolean boolean default false not null; alter table migtest_e_basic add column old_boolean2 boolean; alter table migtest_e_basic add column eref_id integer; -alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1; -alter table migtest_e_basic drop constraint uq_migtest_e_basic_name; -alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4; -alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; --- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); --- NOT SUPPORTED alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); -alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; -alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')); +alter table migtest_e_basic drop constraint uq_mgtst__b_ucfcne; +alter table migtest_e_basic drop constraint uq_mgtst__bsc_nm; +alter table migtest_e_basic drop constraint uq_mgtst__b_4ayc00; +alter table migtest_e_basic drop constraint uq_mgtst__b_4ayc01; +-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_4aybzy unique (indextest2); +-- NOT SUPPORTED alter table migtest_e_basic add constraint uq_mgtst__b_4ayc02 unique (indextest6); +alter table migtest_e_enum drop constraint ck_mgtst__n_773sok; +alter table migtest_e_enum add constraint ck_mgtst__n_773sok check ( test_status in ('N','A','I')); comment on column migtest_e_history.test_string is ''; comment on table migtest_e_history is ''; alter table migtest_e_history2 alter column test_string drop default; @@ -58,10 +58,10 @@ alter table migtest_e_history6 alter column test_number1 set null; update migtest_e_history6 set test_number2 = 7 where test_number2 is null; alter table migtest_e_history6 alter column test_number2 set default 7; alter table migtest_e_history6 alter column test_number2 set not null; -create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1); -create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5); -drop index ix_migtest_e_basic_indextest3; -drop index ix_migtest_e_basic_indextest6; -create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id); -alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict; +create index ix_mgtst__b_eu8csq on migtest_e_basic (indextest1); +create index ix_mgtst__b_eu8csu on migtest_e_basic (indextest5); +drop index ix_mgtst__b_eu8css; +drop index ix_mgtst__b_eu8csv; +create index ix_mgtst__bsc_rf_d on migtest_e_basic (eref_id); +alter table migtest_e_basic add constraint fk_mgtst__bsc_rf_d foreign key (eref_id) references migtest_e_ref (id) on delete restrict; diff --git a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/idx_db2.migrations b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/idx_db2.migrations index 5c3f38243..ec4208068 100644 --- a/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/idx_db2.migrations +++ b/ebean-ddl-generator/src/test/resources/dbmigration/migrationtest/db2/idx_db2.migrations @@ -1,6 +1,6 @@ --904775387, 1.0__initial.sql -1360307269, 1.1.sql +441570368, 1.0__initial.sql +-94595879, 1.1.sql 578073685, 1.2__dropsFor_1.1.sql --671695671, 1.3.sql +-509420890, 1.3.sql -1475628451, 1.4__dropsFor_1.3.sql From dd43fe4db37d58090f20dde4771dcdec3fb2904a Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 15 Dec 2021 21:49:34 +1300 Subject: [PATCH 51/54] Update pom in ebean-kotlin empty module to use java 1.8 --- ebean-kotlin/pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ebean-kotlin/pom.xml b/ebean-kotlin/pom.xml index 53d2f8cd4..22fafea6c 100644 --- a/ebean-kotlin/pom.xml +++ b/ebean-kotlin/pom.xml @@ -12,8 +12,8 @@ ebean-kotlin - 11 - 11 + 1.8 + 1.8 12.13.0 1.6.0 @@ -68,7 +68,7 @@ kotlin-maven-plugin ${kotlin.version} - 11 + 1.8 From 1a6a426683a36a3740acbe8d9ef939cb1e489522 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 17 Dec 2021 10:43:27 +1300 Subject: [PATCH 52/54] #2458 - Add BeanPersistController.isCascade() to identify cascade vs "top level" persist requests --- .../io/ebean/event/BeanPersistRequest.java | 6 ++ .../server/core/PersistRequestBean.java | 5 ++ .../basic/event/TestPreInsertValidation.java | 38 +++++++++++- .../org/tests/model/basic/TWithPreInsert.java | 26 ++++++++- .../model/basic/TWithPreInsertChild.java | 58 +++++++++++++++++++ .../model/basic/TWithPreInsertCommon.java | 14 +++++ .../event/TWithPreInsertPersistAdapter.java | 25 ++++---- 7 files changed, 154 insertions(+), 18 deletions(-) create mode 100644 ebean-test/src/test/java/org/tests/model/basic/TWithPreInsertChild.java create mode 100644 ebean-test/src/test/java/org/tests/model/basic/TWithPreInsertCommon.java diff --git a/ebean-api/src/main/java/io/ebean/event/BeanPersistRequest.java b/ebean-api/src/main/java/io/ebean/event/BeanPersistRequest.java index 57930a107..2f3198b65 100644 --- a/ebean-api/src/main/java/io/ebean/event/BeanPersistRequest.java +++ b/ebean-api/src/main/java/io/ebean/event/BeanPersistRequest.java @@ -43,6 +43,12 @@ public interface BeanPersistRequest { return transaction(); } + /** + * Return true if this request is due to cascading persist. + * False implies this is a "top level" request. + */ + boolean isCascade(); + /** * For an update or delete of a partially populated bean this is the set of * loaded properties and otherwise returns null. diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java index dc14a15ae..2fbf362ee 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java @@ -213,6 +213,11 @@ public final class PersistRequestBean extends PersistRequest implements BeanP return beanDescriptor.docStoreMode(type, txnMode); } + @Override + public boolean isCascade() { + return Flags.isRecurse(flags); + } + /** * Return true if the draftDirty property should be set to true for this request. */ 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 54f26782e..c67e63c4a 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 @@ -5,13 +5,15 @@ import io.ebean.BaseTestCase; import io.ebean.DB; import org.junit.jupiter.api.Test; import org.tests.model.basic.TWithPreInsert; +import org.tests.model.basic.TWithPreInsertChild; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertNotNull; -public class TestPreInsertValidation extends BaseTestCase { +class TestPreInsertValidation extends BaseTestCase { @Test - public void test() { + void test() { TWithPreInsert e = new TWithPreInsert(); e.setTitle("Mister"); @@ -22,15 +24,45 @@ public class TestPreInsertValidation extends BaseTestCase { // the save worked and name set in preInsert assertNotNull(e.getId()); assertNotNull(e.getName()); + assertThat(e.requestCascadeState()).isEqualTo(2); TWithPreInsert e1 = DB.find(TWithPreInsert.class, e.getId()); e1.setTitle("Missus"); DB.save(e1); + + assertThat(e1.requestCascadeState()).isEqualTo(12); } @Test - public void testStatelessUpdate() { + void test_cascade() { + + TWithPreInsert e = new TWithPreInsert(); + e.setTitle("ParentCascading"); + e.children().add(new TWithPreInsertChild("Child0")); + // the perInsert should populate the + // name with should not be null + DB.save(e); + + // the save worked and name set in preInsert + assertNotNull(e.getId()); + assertNotNull(e.getName()); + assertThat(e.requestCascadeState()).isEqualTo(2); + assertThat(e.children().get(0).requestCascadeState()).isEqualTo(1); + + TWithPreInsert e1 = DB.find(TWithPreInsert.class, e.getId()); + assert e1 != null; + + e1.setTitle("ParentCascading-changed"); + e1.children().get(0).setName("Child0-changed"); + DB.save(e1); + + assertThat(e1.requestCascadeState()).isEqualTo(12); + assertThat(e1.children().get(0).requestCascadeState()).isEqualTo(11); + } + + @Test + void testStatelessUpdate() { TWithPreInsert e = new TWithPreInsert(); e.setName("BeanForUpdateTest"); 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 f93378240..21398bc7a 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 @@ -2,10 +2,15 @@ package org.tests.model.basic; import javax.persistence.Entity; import javax.persistence.Id; +import javax.persistence.OneToMany; import javax.validation.constraints.NotNull; +import java.util.ArrayList; +import java.util.List; + +import static javax.persistence.CascadeType.PERSIST; @Entity -public class TWithPreInsert { +public class TWithPreInsert implements TWithPreInsertCommon { @Id private Integer id; @@ -15,6 +20,14 @@ public class TWithPreInsert { private String title; + @OneToMany(cascade = PERSIST) + private List children = new ArrayList<>(); + + /** + * For testing what happened in persist controller. + */ + transient int requestCascadeState; + public Integer getId() { return id; } @@ -39,4 +52,15 @@ public class TWithPreInsert { this.title = title; } + public List children() { + return children; + } + + public int requestCascadeState() { + return requestCascadeState; + } + + public void requestCascadeState(int requestCascadeState) { + this.requestCascadeState = requestCascadeState; + } } diff --git a/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsertChild.java b/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsertChild.java new file mode 100644 index 000000000..39a1d8dff --- /dev/null +++ b/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsertChild.java @@ -0,0 +1,58 @@ +package org.tests.model.basic; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.validation.constraints.NotNull; + +@Entity +public class TWithPreInsertChild implements TWithPreInsertCommon { + + @Id + private Integer id; + + @NotNull + private String name; + + private String title; + + /** + * For testing what happened in persist controller. + */ + transient int requestCascadeState; + + public TWithPreInsertChild(String name) { + this.name = 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; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public int requestCascadeState() { + return requestCascadeState; + } + + public void requestCascadeState(int requestCascadeState) { + this.requestCascadeState = requestCascadeState; + } +} 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 new file mode 100644 index 000000000..dc61e28ba --- /dev/null +++ b/ebean-test/src/test/java/org/tests/model/basic/TWithPreInsertCommon.java @@ -0,0 +1,14 @@ +package org.tests.model.basic; + +public interface TWithPreInsertCommon { + + String getName(); + + void setName(String name); + + String getTitle(); + + void setTitle(String title); + + void requestCascadeState(int requestCascadeState); +} 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 41b6fe141..03143d385 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 @@ -2,36 +2,33 @@ package org.tests.model.basic.event; import io.ebean.event.BeanPersistAdapter; import io.ebean.event.BeanPersistRequest; -import org.tests.model.basic.TWithPreInsert; +import org.tests.model.basic.TWithPreInsertCommon; public class TWithPreInsertPersistAdapter extends BeanPersistAdapter { @Override public boolean isRegisterFor(Class cls) { - return TWithPreInsert.class.equals(cls); + return TWithPreInsertCommon.class.isAssignableFrom(cls); } @Override public boolean preInsert(BeanPersistRequest request) { - - TWithPreInsert e = (TWithPreInsert) request.bean(); - if (e.getName() == null) { - e.setName("set on preInsert"); + TWithPreInsertCommon bean = (TWithPreInsertCommon) request.bean(); + if (bean.getName() == null) { + bean.setName("set on preInsert"); } + bean.requestCascadeState(request.isCascade() ? 1 : 2); return true; } @Override public boolean preUpdate(BeanPersistRequest request) { - - TWithPreInsert b = (TWithPreInsert) request.bean(); - System.out.println("preUpdate - title is: " + b.getTitle()); - if (b.getTitle() == null) { - b.setTitle("set on preUpdate"); + TWithPreInsertCommon bean = (TWithPreInsertCommon) request.bean(); + System.out.println("preUpdate - title is: " + bean.getTitle()); + if (bean.getTitle() == null) { + bean.setTitle("set on preUpdate"); } - // request.getEbeanServer().refresh(b); - // System.out.println("title is Mister:"+b.getTitle()); - + bean.requestCascadeState(request.isCascade() ? 11 : 12); return super.preUpdate(request); } From ca6e3963dbc37a239d9942c97b2695f00d1b5185 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 17 Dec 2021 17:26:36 +1300 Subject: [PATCH 53/54] [maven-release-plugin] prepare release ebean-parent-12.13.2 --- ebean-api/pom.xml | 2 +- ebean-api/pom.xml.releaseBackup | 130 +++++++++ ebean-autotune/pom.xml | 6 +- ebean-autotune/pom.xml.releaseBackup | 74 +++++ ebean-bom/pom.xml | 30 +- ebean-bom/pom.xml.releaseBackup | 162 +++++++++++ ebean-core-type/pom.xml | 4 +- ebean-core-type/pom.xml.releaseBackup | 46 +++ ebean-core/pom.xml | 10 +- ebean-core/pom.xml.releaseBackup | 247 +++++++++++++++++ ebean-ddl-generator/pom.xml | 6 +- ebean-ddl-generator/pom.xml.releaseBackup | 106 +++++++ ebean-externalmapping-api/pom.xml | 2 +- .../pom.xml.releaseBackup | 30 ++ ebean-externalmapping-xml/pom.xml | 10 +- .../pom.xml.releaseBackup | 100 +++++++ ebean-postgis/pom.xml | 6 +- ebean-postgis/pom.xml.releaseBackup | 118 ++++++++ ebean-querybean/pom.xml | 10 +- ebean-querybean/pom.xml.releaseBackup | 112 ++++++++ ebean-redis/pom.xml | 12 +- ebean-redis/pom.xml.releaseBackup | 93 +++++++ ebean-test/pom.xml | 6 +- ebean-test/pom.xml.releaseBackup | 261 ++++++++++++++++++ ebean/pom.xml | 8 +- ebean/pom.xml.releaseBackup | 58 ++++ kotlin-querybean-generator/pom.xml | 8 +- .../pom.xml.releaseBackup | 186 +++++++++++++ pom.xml | 4 +- pom.xml.releaseBackup | 114 ++++++++ querybean-generator/pom.xml | 2 +- querybean-generator/pom.xml.releaseBackup | 52 ++++ release.properties | 83 ++++++ 33 files changed, 2035 insertions(+), 63 deletions(-) create mode 100644 ebean-api/pom.xml.releaseBackup create mode 100644 ebean-autotune/pom.xml.releaseBackup create mode 100644 ebean-bom/pom.xml.releaseBackup create mode 100644 ebean-core-type/pom.xml.releaseBackup create mode 100644 ebean-core/pom.xml.releaseBackup create mode 100644 ebean-ddl-generator/pom.xml.releaseBackup create mode 100644 ebean-externalmapping-api/pom.xml.releaseBackup create mode 100644 ebean-externalmapping-xml/pom.xml.releaseBackup create mode 100644 ebean-postgis/pom.xml.releaseBackup create mode 100644 ebean-querybean/pom.xml.releaseBackup create mode 100644 ebean-redis/pom.xml.releaseBackup create mode 100644 ebean-test/pom.xml.releaseBackup create mode 100644 ebean/pom.xml.releaseBackup create mode 100644 kotlin-querybean-generator/pom.xml.releaseBackup create mode 100644 pom.xml.releaseBackup create mode 100644 querybean-generator/pom.xml.releaseBackup create mode 100644 release.properties diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml index 1e711bc62..f6b63036c 100644 --- a/ebean-api/pom.xml +++ b/ebean-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2-SNAPSHOT + 12.13.2 ebean api diff --git a/ebean-api/pom.xml.releaseBackup b/ebean-api/pom.xml.releaseBackup new file mode 100644 index 000000000..1e711bc62 --- /dev/null +++ b/ebean-api/pom.xml.releaseBackup @@ -0,0 +1,130 @@ + + + 4.0.0 + + ebean-parent + io.ebean + 12.13.2-SNAPSHOT + + + ebean api + ebean api + ebean-api + + + + + + org.slf4j + slf4j-api + 1.7.30 + provided + + + + io.avaje + avaje-config + 1.5 + + + + + io.avaje + avaje-lang + 1.0 + + + + io.ebean + persistence-api + 2.2.5 + + + + io.ebean + ebean-annotation + 7.3 + + + + io.ebean + ebean-types + 2.2 + + + + io.ebean + ebean-datasource-api + ${ebean-datasource.version} + + + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + true + + + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + true + + + + + com.h2database + h2 + 1.4.199 + true + + + + javax.transaction + jta + 1.1 + true + + + + javax.servlet + javax.servlet-api + 3.1.0 + true + + + + io.avaje + junit + 1.0 + test + + + + + + + + io.repaint.maven + tiles-maven-plugin + 2.24 + true + + + io.avaje.tile:moditech-module:1.0 + + + + + + diff --git a/ebean-autotune/pom.xml b/ebean-autotune/pom.xml index dc7b6c0ac..f50aa503e 100644 --- a/ebean-autotune/pom.xml +++ b/ebean-autotune/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2-SNAPSHOT + 12.13.2 @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-12.13.2 ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 12.13.2-SNAPSHOT + 12.13.2 provided diff --git a/ebean-autotune/pom.xml.releaseBackup b/ebean-autotune/pom.xml.releaseBackup new file mode 100644 index 000000000..dc7b6c0ac --- /dev/null +++ b/ebean-autotune/pom.xml.releaseBackup @@ -0,0 +1,74 @@ + + + 4.0.0 + + ebean-parent + io.ebean + 12.13.2-SNAPSHOT + + + + + + + + + scm:git:git@github.com:ebean-orm/ebean.git + HEAD + + + ebean autotune + ebean automatic query tuning module + ebean-autotune + + + + + io.ebean + ebean-core + 12.13.2-SNAPSHOT + provided + + + + + org.glassfish.jaxb + jaxb-runtime + 2.3.2 + provided + + + + io.ebean + ebean-datasource + ${ebean-datasource.version} + test + + + + io.avaje + junit + 1.0 + test + + + + + + + + io.repaint.maven + tiles-maven-plugin + 2.24 + true + + + io.ebean.tile:enhancement:12.11.3 + io.avaje.tile:moditech-module:1.0 + + + + + + + diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index 417420c68..9f8cd588d 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2-SNAPSHOT + 12.13.2 ebean bom @@ -71,88 +71,88 @@ io.ebean ebean - 12.13.2-SNAPSHOT + 12.13.2 io.ebean ebean-api - 12.13.2-SNAPSHOT + 12.13.2 io.ebean ebean-core - 12.13.2-SNAPSHOT + 12.13.2 io.ebean ebean-core-type - 12.13.2-SNAPSHOT + 12.13.2 io.ebean ebean-ddl-generator - 12.13.2-SNAPSHOT + 12.13.2 io.ebean ebean-externalmapping-api - 12.13.2-SNAPSHOT + 12.13.2 io.ebean ebean-externalmapping-xml - 12.13.2-SNAPSHOT + 12.13.2 io.ebean ebean-autotune - 12.13.2-SNAPSHOT + 12.13.2 io.ebean ebean-querybean - 12.13.2-SNAPSHOT + 12.13.2 io.ebean querybean-generator - 12.13.2-SNAPSHOT + 12.13.2 provided io.ebean kotlin-querybean-generator - 12.13.2-SNAPSHOT + 12.13.2 provided io.ebean ebean-test - 12.13.2-SNAPSHOT + 12.13.2 test io.ebean ebean-postgis - 12.13.2-SNAPSHOT + 12.13.2 io.ebean ebean-redis - 12.13.2-SNAPSHOT + 12.13.2 diff --git a/ebean-bom/pom.xml.releaseBackup b/ebean-bom/pom.xml.releaseBackup new file mode 100644 index 000000000..417420c68 --- /dev/null +++ b/ebean-bom/pom.xml.releaseBackup @@ -0,0 +1,162 @@ + + + 4.0.0 + + ebean-parent + io.ebean + 12.13.2-SNAPSHOT + + + ebean bom + ebean bill of materials pom + ebean-bom + pom + + + + + + + + + io.ebean + ebean-ddl-runner + ${ebean-ddl-runner.version} + + + + io.ebean + ebean-migration-auto + ${ebean-migration-auto.version} + + + + io.ebean + ebean-migration + ${ebean-migration.version} + + + + io.ebean + ebean-datasource-api + ${ebean-datasource.version} + + + + io.ebean + ebean-datasource + ${ebean-datasource.version} + + + + io.ebean + ebean-agent + ${ebean-agent.version} + + + + io.ebean + ebean-maven-plugin + ${ebean-maven-plugin.version} + + + + io.ebean + ebean-test-docker + ${ebean-test-docker.version} + + + + + + io.ebean + ebean + 12.13.2-SNAPSHOT + + + + io.ebean + ebean-api + 12.13.2-SNAPSHOT + + + + io.ebean + ebean-core + 12.13.2-SNAPSHOT + + + + io.ebean + ebean-core-type + 12.13.2-SNAPSHOT + + + + io.ebean + ebean-ddl-generator + 12.13.2-SNAPSHOT + + + + io.ebean + ebean-externalmapping-api + 12.13.2-SNAPSHOT + + + + io.ebean + ebean-externalmapping-xml + 12.13.2-SNAPSHOT + + + + io.ebean + ebean-autotune + 12.13.2-SNAPSHOT + + + + io.ebean + ebean-querybean + 12.13.2-SNAPSHOT + + + + io.ebean + querybean-generator + 12.13.2-SNAPSHOT + provided + + + + io.ebean + kotlin-querybean-generator + 12.13.2-SNAPSHOT + provided + + + + io.ebean + ebean-test + 12.13.2-SNAPSHOT + test + + + + io.ebean + ebean-postgis + 12.13.2-SNAPSHOT + + + + io.ebean + ebean-redis + 12.13.2-SNAPSHOT + + + + + + + diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index 3d3e11a75..c1b475b76 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2-SNAPSHOT + 12.13.2 ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 12.13.2-SNAPSHOT + 12.13.2 diff --git a/ebean-core-type/pom.xml.releaseBackup b/ebean-core-type/pom.xml.releaseBackup new file mode 100644 index 000000000..3d3e11a75 --- /dev/null +++ b/ebean-core-type/pom.xml.releaseBackup @@ -0,0 +1,46 @@ + + + 4.0.0 + + ebean-parent + io.ebean + 12.13.2-SNAPSHOT + + + ebean-core-type + ebean core type + ebean scalar types api + + + + + io.ebean + ebean-api + 12.13.2-SNAPSHOT + + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + true + + + + + + + + io.repaint.maven + tiles-maven-plugin + 2.24 + true + + + io.avaje.tile:moditech-module:1.0 + + + + + + diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index b250f7a0a..eff86103b 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 12.13.2-SNAPSHOT + 12.13.2 ebean-core @@ -15,7 +15,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-12.13.2 @@ -41,19 +41,19 @@ io.ebean ebean-api - 12.13.2-SNAPSHOT + 12.13.2 io.ebean ebean-core-type - 12.13.2-SNAPSHOT + 12.13.2 io.ebean ebean-externalmapping-api - 12.13.2-SNAPSHOT + 12.13.2 diff --git a/ebean-core/pom.xml.releaseBackup b/ebean-core/pom.xml.releaseBackup new file mode 100644 index 000000000..b250f7a0a --- /dev/null +++ b/ebean-core/pom.xml.releaseBackup @@ -0,0 +1,247 @@ + + 4.0.0 + + ebean-parent + io.ebean + 12.13.2-SNAPSHOT + + + ebean-core + jar + + ebean core + ebean core module + https://ebean.io/ + + + scm:git:git@github.com:ebean-orm/ebean.git + HEAD + + + + + + io.ebean + ebean-ddl-runner + 1.2 + + + + io.avaje + classpath-scanner + 6.2 + + + + io.ebean + ebean-migration-auto + 1.1 + + + + io.ebean + ebean-api + 12.13.2-SNAPSHOT + + + + io.ebean + ebean-core-type + 12.13.2-SNAPSHOT + + + + io.ebean + ebean-externalmapping-api + 12.13.2-SNAPSHOT + + + + org.antlr + antlr4-runtime + 4.8-1 + + + + + io.avaje + avaje-jsr305-x + 1.1 + provided + + + + + com.h2database + h2 + 1.4.199 + provided + + + + javax.transaction + javax.transaction-api + 1.3 + true + + + + + javax.validation + validation-api + 2.0.1.Final + true + + + jakarta.validation + jakarta.validation-api + 3.0.0 + true + + + + joda-time + joda-time + 2.9.7 + true + + + + + + + + + + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + true + + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + true + + + + + org.postgresql + postgresql + 42.2.24 + true + + + + + + io.ebean + ebean-datasource + ${ebean-datasource.version} + test + + + + io.avaje + junit + 1.0 + test + + + + + + + + + io.ebean + ebean-maven-plugin + ${ebean-maven-plugin.version} + + + test + process-test-classes + + debug=0 + + + testEnhance + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M4 + + false + false + false + + **/Test*.java + **/*Test.java + **/*Tests.java + + + + + datasource.default + ${datasource.default} + + + + dbClockDelta + ${dbClockDelta} + + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.1.1 + + Ebean 12 + src/main/java/io/ebean/overview.html + io.ebeaninternal.*:io.ebeanservice:io.ebean.common:io.ebean.bean:io.ebean.service:io.ebean.metric:io.ebean.util:io.ebean.config.properties:io.ebean.config.dbplatform + true + src/main/java/com/avaje/ebean/overview.html + + + + attach-javadocs + + jar + + + + + + + io.repaint.maven + tiles-maven-plugin + 2.24 + true + + + io.avaje.tile:moditech-module:1.0 + + + + + + + + + diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index fc0e83a5f..9ccda7ce6 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2-SNAPSHOT + 12.13.2 ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 12.13.2-SNAPSHOT + 12.13.2 provided io.ebean ebean-core - 12.13.2-SNAPSHOT + 12.13.2 provided diff --git a/ebean-ddl-generator/pom.xml.releaseBackup b/ebean-ddl-generator/pom.xml.releaseBackup new file mode 100644 index 000000000..fc0e83a5f --- /dev/null +++ b/ebean-ddl-generator/pom.xml.releaseBackup @@ -0,0 +1,106 @@ + + + 4.0.0 + + ebean-parent + io.ebean + 12.13.2-SNAPSHOT + + + ebean ddl generation + DDL and DB Migration generation + ebean-ddl-generator + + + + + io.ebean + ebean-ddl-runner + 1.2 + + + + io.ebean + ebean-migration + 12.12.1 + + + + io.ebean + ebean-core-type + 12.13.2-SNAPSHOT + provided + + + + io.ebean + ebean-core + 12.13.2-SNAPSHOT + provided + + + + + org.glassfish.jaxb + jaxb-runtime + 2.3.2 + provided + + + + + io.avaje + junit + 1.0 + test + + + + io.ebean + ebean-datasource + ${ebean-datasource.version} + test + + + + javax.validation + validation-api + 2.0.1.Final + test + + + + + + + + io.ebean + ebean-maven-plugin + ${ebean-maven-plugin.version} + + + test + process-test-classes + + debug=0 + + + testEnhance + + + + + + io.repaint.maven + tiles-maven-plugin + 2.24 + true + + + io.avaje.tile:moditech-module:1.0 + + + + + + diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index 72278f50b..0369dc1e6 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2-SNAPSHOT + 12.13.2 ebean external mapping api diff --git a/ebean-externalmapping-api/pom.xml.releaseBackup b/ebean-externalmapping-api/pom.xml.releaseBackup new file mode 100644 index 000000000..72278f50b --- /dev/null +++ b/ebean-externalmapping-api/pom.xml.releaseBackup @@ -0,0 +1,30 @@ + + + 4.0.0 + + ebean-parent + io.ebean + 12.13.2-SNAPSHOT + + + ebean external mapping api + API for mapping external named queries + ebean-externalmapping-api + + + + + io.repaint.maven + tiles-maven-plugin + 2.24 + true + + + io.avaje.tile:moditech-module:1.0 + + + + + + + diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 8155aa728..d9a75a7ac 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2-SNAPSHOT + 12.13.2 @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-12.13.2 ebean external mapping xml @@ -33,7 +33,7 @@ io.ebean ebean-externalmapping-api - 12.13.2-SNAPSHOT + 12.13.2 @@ -59,14 +59,14 @@ io.ebean ebean-core - 12.13.2-SNAPSHOT + 12.13.2 test io.ebean ebean-ddl-generator - 12.13.2-SNAPSHOT + 12.13.2 test diff --git a/ebean-externalmapping-xml/pom.xml.releaseBackup b/ebean-externalmapping-xml/pom.xml.releaseBackup new file mode 100644 index 000000000..8155aa728 --- /dev/null +++ b/ebean-externalmapping-xml/pom.xml.releaseBackup @@ -0,0 +1,100 @@ + + + 4.0.0 + + ebean-parent + io.ebean + 12.13.2-SNAPSHOT + + + + + + + + + scm:git:git@github.com:ebean-orm/ebean.git + HEAD + + + ebean external mapping xml + XML implementation for mapping external named queries + ebean-externalmapping-xml + + + + + org.slf4j + slf4j-api + 1.7.30 + provided + + + + io.ebean + ebean-externalmapping-api + 12.13.2-SNAPSHOT + + + + org.glassfish.jaxb + jaxb-runtime + 2.3.2 + + + + io.avaje + classpath-scanner + 6.2 + + + + + io.ebean + ebean-datasource + ${ebean-datasource.version} + test + + + + io.ebean + ebean-core + 12.13.2-SNAPSHOT + test + + + + io.ebean + ebean-ddl-generator + 12.13.2-SNAPSHOT + test + + + + io.avaje + junit + 1.0 + test + + + + + + + + io.repaint.maven + tiles-maven-plugin + 2.24 + true + + + + io.ebean.tile:enhancement:12.11.3 + io.avaje.tile:moditech-module:1.0 + + + + + + + diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 3d1fa16d0..759c0af54 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2-SNAPSHOT + 12.13.2 ebean postgis @@ -23,7 +23,7 @@ io.ebean ebean-core - 12.13.2-SNAPSHOT + 12.13.2 provided @@ -74,7 +74,7 @@ io.ebean ebean-test - 12.13.2-SNAPSHOT + 12.13.2 test diff --git a/ebean-postgis/pom.xml.releaseBackup b/ebean-postgis/pom.xml.releaseBackup new file mode 100644 index 000000000..3d1fa16d0 --- /dev/null +++ b/ebean-postgis/pom.xml.releaseBackup @@ -0,0 +1,118 @@ + + + 4.0.0 + + ebean-parent + io.ebean + 12.13.2-SNAPSHOT + + + ebean postgis + ebean postgis module + https://ebean.io/ + + ebean-postgis + + + 2.2.1 + + + + + + + io.ebean + ebean-core + 12.13.2-SNAPSHOT + provided + + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + true + + + + net.postgis + postgis-jdbc + [${postgis.jdbc.version}] + + + + + org.postgresql + postgresql + 42.2.24 + provided + + + + + org.slf4j + slf4j-api + 1.7.30 + provided + + + + + org.geolatte + geolatte-geom + 1.0.6 + provided + + + + io.ebean + ebean-datasource + ${ebean-datasource.version} + test + + + + io.ebean + ebean-test + 12.13.2-SNAPSHOT + test + + + + org.avaje.composite + logback + 1.1 + test + + + + io.avaje + junit + 1.0 + test + + + + + + + + + + io.repaint.maven + tiles-maven-plugin + 2.24 + true + + + io.ebean.tile:enhancement:12.11.3 + io.avaje.tile:moditech-module:1.0 + + + + + + + + + diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 5ed7e1669..9340993b6 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2-SNAPSHOT + 12.13.2 ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 12.13.2-SNAPSHOT + 12.13.2 provided @@ -56,21 +56,21 @@ io.ebean ebean-ddl-generator - 12.13.2-SNAPSHOT + 12.13.2 test io.ebean querybean-generator - 12.13.2-SNAPSHOT + 12.13.2 test io.ebean ebean-test - 12.13.2-SNAPSHOT + 12.13.2 test diff --git a/ebean-querybean/pom.xml.releaseBackup b/ebean-querybean/pom.xml.releaseBackup new file mode 100644 index 000000000..5ed7e1669 --- /dev/null +++ b/ebean-querybean/pom.xml.releaseBackup @@ -0,0 +1,112 @@ + + + 4.0.0 + + ebean-parent + io.ebean + 12.13.2-SNAPSHOT + + + ebean querybean + Ebean querybean support + ebean-querybean + + + + + + io.ebean + ebean-core + 12.13.2-SNAPSHOT + provided + + + + + io.avaje + avaje-lang + 1.0 + + + + joda-time + joda-time + 1.6 + true + + + + javax.validation + validation-api + 2.0.1.Final + true + + + + + io.ebean + ebean-datasource + ${ebean-datasource.version} + test + + + + io.ebean + ebean-ddl-generator + 12.13.2-SNAPSHOT + test + + + + io.ebean + querybean-generator + 12.13.2-SNAPSHOT + test + + + + io.ebean + ebean-test + 12.13.2-SNAPSHOT + test + + + + io.avaje + junit + 1.0 + test + + + + org.avaje.composite + logback + 1.1 + test + + + + + + + + + io.repaint.maven + tiles-maven-plugin + 2.24 + true + + + io.ebean.tile:enhancement:12.11.3 + io.avaje.tile:moditech-module:1.0 + + + + + + + + diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index 7ada5696b..028ccbca9 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2-SNAPSHOT + 12.13.2 ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 12.13.2-SNAPSHOT + 12.13.2 provided io.ebean ebean-core - 12.13.2-SNAPSHOT + 12.13.2 provided io.ebean ebean-querybean - 12.13.2-SNAPSHOT + 12.13.2 test io.ebean querybean-generator - 12.13.2-SNAPSHOT + 12.13.2 test io.ebean ebean-test - 12.13.2-SNAPSHOT + 12.13.2 test diff --git a/ebean-redis/pom.xml.releaseBackup b/ebean-redis/pom.xml.releaseBackup new file mode 100644 index 000000000..7ada5696b --- /dev/null +++ b/ebean-redis/pom.xml.releaseBackup @@ -0,0 +1,93 @@ + + + 4.0.0 + + ebean-parent + io.ebean + 12.13.2-SNAPSHOT + + + ebean-redis + ebean redis + Ebean Redis L2 Cache + + + + + redis.clients + jedis + 3.6.3 + + + + io.ebean + ebean-api + 12.13.2-SNAPSHOT + provided + + + + io.ebean + ebean-core + 12.13.2-SNAPSHOT + provided + + + + io.ebean + ebean-querybean + 12.13.2-SNAPSHOT + test + + + + io.ebean + querybean-generator + 12.13.2-SNAPSHOT + test + + + + io.ebean + ebean-test + 12.13.2-SNAPSHOT + test + + + + io.avaje + junit + 1.0 + test + + + + org.avaje.composite + logback + 1.1 + test + + + + + + + + + io.repaint.maven + tiles-maven-plugin + 2.24 + true + + + io.ebean.tile:enhancement:12.11.3 + io.avaje.tile:moditech-module:1.0 + + + + + + + + + diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index b015a4544..54b5de4c0 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2-SNAPSHOT + 12.13.2 ebean test @@ -29,14 +29,14 @@ io.ebean ebean-core - 12.13.2-SNAPSHOT + 12.13.2 provided io.ebean ebean-ddl-generator - 12.13.2-SNAPSHOT + 12.13.2 diff --git a/ebean-test/pom.xml.releaseBackup b/ebean-test/pom.xml.releaseBackup new file mode 100644 index 000000000..b015a4544 --- /dev/null +++ b/ebean-test/pom.xml.releaseBackup @@ -0,0 +1,261 @@ + + + 4.0.0 + + ebean-parent + io.ebean + 12.13.2-SNAPSHOT + + + ebean test + Testing support for Ebean + ebean-test + + + + + org.slf4j + slf4j-api + 1.7.30 + provided + + + + io.ebean + ebean-datasource + ${ebean-datasource.version} + + + + io.ebean + ebean-core + 12.13.2-SNAPSHOT + provided + + + + io.ebean + ebean-ddl-generator + 12.13.2-SNAPSHOT + + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + true + + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + ${jackson.version} + true + + + + io.ebean + ebean-test-docker + 4.3 + + + + org.assertj + assertj-core + 3.14.0 + + + + + org.glassfish.jaxb + jaxb-runtime + 2.3.2 + + + + + com.h2database + h2 + 1.4.199 + + + + + + io.avaje + avaje-jsr305 + 1.1 + test + + + + io.ebean + ebean-migration + 12.12.1 + test + + + + io.avaje + mod-uuid + 1.1 + test + + + + javax.transaction + jta + 1.1 + test + + + + + javax.validation + validation-api + 2.0.1.Final + test + + + + jakarta.validation + jakarta.validation-api + 3.0.0 + test + + + + joda-time + joda-time + 2.9.7 + test + + + + javax.annotation + javax.annotation-api + 1.3.2 + test + + + commons-io + commons-io + 2.7 + test + + + + org.postgresql + postgresql + 42.2.24 + + + org.checkerframework + checker-qual + + + test + + + + com.microsoft.sqlserver + mssql-jdbc + 9.4.0.jre8 + test + + + + mysql + mysql-connector-java + 8.0.26 + test + + + + org.mariadb.jdbc + mariadb-java-client + 2.6.0 + test + + + + com.sap.cloud.db.jdbc + ngdbc + 2.3.48 + test + + + + com.oracle.database.jdbc + + ojdbc8 + 19.12.0.0 + test + + + + com.ibm.db2 + jcc + 11.5.6.0 + test + + + + org.xerial + sqlite-jdbc + 3.36.0.3 + test + + + + com.nuodb.jdbc + nuodb-jdbc + 22.0.0 + test + + + + ru.yandex.clickhouse + clickhouse-jdbc + 0.3.1-patch + test + + + + ch.qos.logback + logback-classic + 1.2.3 + test + + + + io.avaje + junit + 1.0 + test + + + + + + + + + io.repaint.maven + tiles-maven-plugin + 2.24 + true + + + io.ebean.tile:enhancement:12.11.3 + io.avaje.tile:moditech-module:1.0 + + + + + + + + diff --git a/ebean/pom.xml b/ebean/pom.xml index bf039e209..844f9b03d 100644 --- a/ebean/pom.xml +++ b/ebean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2-SNAPSHOT + 12.13.2 ebean composite @@ -22,20 +22,20 @@ io.ebean ebean-api - 12.13.2-SNAPSHOT + 12.13.2 io.ebean ebean-core - 12.13.2-SNAPSHOT + 12.13.2 io.ebean ebean-querybean - 12.13.2-SNAPSHOT + 12.13.2 diff --git a/ebean/pom.xml.releaseBackup b/ebean/pom.xml.releaseBackup new file mode 100644 index 000000000..bf039e209 --- /dev/null +++ b/ebean/pom.xml.releaseBackup @@ -0,0 +1,58 @@ + + + 4.0.0 + + ebean-parent + io.ebean + 12.13.2-SNAPSHOT + + + ebean composite + Composite of common runtime dependencies + ebean + + + + + io.ebean + ebean-datasource + ${ebean-datasource.version} + + + + io.ebean + ebean-api + 12.13.2-SNAPSHOT + + + + io.ebean + ebean-core + 12.13.2-SNAPSHOT + + + + + io.ebean + ebean-querybean + 12.13.2-SNAPSHOT + + + + + + + + io.repaint.maven + tiles-maven-plugin + 2.24 + true + + + io.avaje.tile:moditech-module:1.0 + + + + + + diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index 0be3286f4..ceb50bece 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2-SNAPSHOT + 12.13.2 kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 12.13.2-SNAPSHOT + 12.13.2 test @@ -43,7 +43,7 @@ io.ebean ebean-core - 12.13.2-SNAPSHOT + 12.13.2 test @@ -64,7 +64,7 @@ io.ebean ebean-ddl-generator - 12.13.2-SNAPSHOT + 12.13.2 test diff --git a/kotlin-querybean-generator/pom.xml.releaseBackup b/kotlin-querybean-generator/pom.xml.releaseBackup new file mode 100644 index 000000000..0be3286f4 --- /dev/null +++ b/kotlin-querybean-generator/pom.xml.releaseBackup @@ -0,0 +1,186 @@ + + + 4.0.0 + + ebean-parent + io.ebean + 12.13.2-SNAPSHOT + + + kotlin querybean generator + Generates Kotlin querybeans + kotlin-querybean-generator + + + 1.6.0 + + + + + + + + io.avaje + junit + 1.0 + test + + + + io.ebean + ebean-querybean + 12.13.2-SNAPSHOT + test + + + + io.ebean + ebean-datasource + ${ebean-datasource.version} + test + + + + io.ebean + ebean-core + 12.13.2-SNAPSHOT + test + + + + org.jetbrains.kotlin + kotlin-stdlib-jdk8 + ${kotlin.version} + provided + + + + org.jetbrains.kotlin + kotlin-test + ${kotlin.version} + test + + + + io.ebean + ebean-ddl-generator + 12.13.2-SNAPSHOT + test + + + + javax.validation + validation-api + 2.0.1.Final + test + + + + + + + src/test/kotlin + + + org.jetbrains.kotlin + kotlin-maven-plugin + ${kotlin.version} + + + test-compile + test-compile + + test-compile + + + + test-kapt + + test-kapt + + + + src/test/kotlin + + + + io.ebean + kotlin-querybean-generator + 12.8.2 + + + + + + compile + compile + + compile + + + + src/main/java + target/generated-sources/kapt/test + target/generated-sources/kaptKotlin/test + + + + + + 1.8 + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + + default-testCompile + none + + + java-test-compile + test-compile + + testCompile + + + + compile + compile + + compile + + + + + 1.8 + 1.8 + + -proc:none + + + + + io.ebean + ebean-maven-plugin + ${ebean-maven-plugin.version} + + + test + process-test-classes + + debug=1 + + + testEnhance + + + + + + + + + diff --git a/pom.xml b/pom.xml index ba0c11c58..7199421e1 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ io.ebean ebean-parent - 12.13.2-SNAPSHOT + 12.13.2 pom ebean parent @@ -18,7 +18,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-12.13.2 diff --git a/pom.xml.releaseBackup b/pom.xml.releaseBackup new file mode 100644 index 000000000..ba0c11c58 --- /dev/null +++ b/pom.xml.releaseBackup @@ -0,0 +1,114 @@ + + + 4.0.0 + + org.avaje + java8-oss + 3.2 + + + io.ebean + ebean-parent + 12.13.2-SNAPSHOT + pom + + ebean parent + Parent for ebean modules + https://ebean.io/ + + + scm:git:git@github.com:ebean-orm/ebean.git + HEAD + + + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + + rbygrave + Rob Bygrave + robin.bygrave@gmail.com + + + + + false + 2.12.1 + 1.2 + 1.1 + 12.12.1 + 4.2 + 7.3 + 12.13.0 + 12.13.0 + + + + + + org.slf4j + slf4j-api + 1.7.30 + provided + + + + ch.qos.logback + logback-classic + 1.2.3 + test + + + + com.h2database + h2 + 1.4.199 + test + + + + + + ebean + ebean-api + ebean-bom + ebean-core-type + ebean-core + ebean-ddl-generator + ebean-autotune + ebean-externalmapping-api + ebean-externalmapping-xml + ebean-test + querybean-generator + kotlin-querybean-generator + ebean-querybean + ebean-postgis + ebean-redis + + + + + + + release + + + default + + true + + + ebean-kotlin + tests + + + + + + diff --git a/querybean-generator/pom.xml b/querybean-generator/pom.xml index d61f1d143..99712a4d7 100644 --- a/querybean-generator/pom.xml +++ b/querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2-SNAPSHOT + 12.13.2 querybean generator diff --git a/querybean-generator/pom.xml.releaseBackup b/querybean-generator/pom.xml.releaseBackup new file mode 100644 index 000000000..d61f1d143 --- /dev/null +++ b/querybean-generator/pom.xml.releaseBackup @@ -0,0 +1,52 @@ + + + 4.0.0 + + ebean-parent + io.ebean + 12.13.2-SNAPSHOT + + + querybean generator + Querybean generator + querybean-generator + + + + + io.avaje + junit + 1.0 + test + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.2 + + 1.8 + 1.8 + + -proc:none + + + + io.repaint.maven + tiles-maven-plugin + 2.24 + true + + + io.avaje.tile:moditech-module:1.0 + + + + + + + diff --git a/release.properties b/release.properties new file mode 100644 index 000000000..e846a5665 --- /dev/null +++ b/release.properties @@ -0,0 +1,83 @@ +#release configuration +#Fri Dec 17 17:24:24 NZDT 2021 +projectVersionPolicyId=default +project.scm.io.ebean\:ebean-core-type.tag=HEAD +scm.branchCommitComment=@{prefix} prepare branch @{releaseLabel} +project.rel.io.ebean\:ebean-ddl-generator=12.13.2 +project.dev.io.ebean\:ebean-core=12.13.3-SNAPSHOT +project.scm.io.ebean\:ebean-api.tag=HEAD +project.scm.io.ebean\:ebean-redis.developerConnection=scm\:git\:git@github.com\:ebean-orm/ebean.git +project.scm.io.ebean\:ebean-querybean.tag=HEAD +project.scm.io.ebean\:ebean-api.developerConnection=scm\:git\:git@github.com\:ebean-orm/ebean.git +project.dev.io.ebean\:ebean-api=12.13.3-SNAPSHOT +project.rel.io.ebean\:ebean=12.13.2 +project.dev.io.ebean\:ebean-core-type=12.13.3-SNAPSHOT +project.scm.io.ebean\:ebean-ddl-generator.developerConnection=scm\:git\:git@github.com\:ebean-orm/ebean.git +exec.activateProfiles=release +project.dev.io.ebean\:ebean-test=12.13.3-SNAPSHOT +project.scm.io.ebean\:kotlin-querybean-generator.developerConnection=scm\:git\:git@github.com\:ebean-orm/ebean.git +project.scm.io.ebean\:ebean-querybean.developerConnection=scm\:git\:git@github.com\:ebean-orm/ebean.git +project.scm.io.ebean\:ebean-bom.developerConnection=scm\:git\:git@github.com\:ebean-orm/ebean.git +project.scm.io.ebean\:ebean-core.developerConnection=scm\:git\:git@github.com\:ebean-orm/ebean.git +project.rel.io.ebean\:ebean-core-type=12.13.2 +project.rel.io.ebean\:kotlin-querybean-generator=12.13.2 +project.dev.io.ebean\:querybean-generator=12.13.3-SNAPSHOT +project.scm.io.ebean\:ebean-autotune.developerConnection=scm\:git\:git@github.com\:ebean-orm/ebean.git +scm.commentPrefix=[maven-release-plugin] +releaseStrategyId=default +project.rel.io.ebean\:ebean-querybean=12.13.2 +project.scm.io.ebean\:ebean-externalmapping-api.developerConnection=scm\:git\:git@github.com\:ebean-orm/ebean.git +project.scm.io.ebean\:querybean-generator.developerConnection=scm\:git\:git@github.com\:ebean-orm/ebean.git +project.dev.io.ebean\:kotlin-querybean-generator=12.13.3-SNAPSHOT +project.scm.io.ebean\:ebean-core-type.developerConnection=scm\:git\:git@github.com\:ebean-orm/ebean.git +completedPhase=generate-release-poms +project.rel.io.ebean\:ebean-redis=12.13.2 +project.scm.io.ebean\:ebean-test.developerConnection=scm\:git\:git@github.com\:ebean-orm/ebean.git +project.scm.io.ebean\:ebean-postgis.developerConnection=scm\:git\:git@github.com\:ebean-orm/ebean.git +project.dev.io.ebean\:ebean-autotune=12.13.3-SNAPSHOT +project.rel.io.ebean\:ebean-api=12.13.2 +project.scm.io.ebean\:ebean-postgis.tag=HEAD +project.scm.io.ebean\:querybean-generator.tag=HEAD +project.rel.io.ebean\:querybean-generator=12.13.2 +scm.tag=ebean-parent-12.13.2 +project.rel.io.ebean\:ebean-externalmapping-xml=12.13.2 +project.scm.io.ebean\:ebean-ddl-generator.tag=HEAD +project.rel.io.ebean\:ebean-externalmapping-api=12.13.2 +project.scm.io.ebean\:ebean-externalmapping-xml.tag=HEAD +preparationGoals=clean verify +exec.pomFileName=pom.xml +project.dev.io.ebean\:ebean-externalmapping-api=12.13.3-SNAPSHOT +project.dev.io.ebean\:ebean=12.13.3-SNAPSHOT +project.scm.io.ebean\:ebean.developerConnection=scm\:git\:git@github.com\:ebean-orm/ebean.git +project.dev.io.ebean\:ebean-parent=12.13.3-SNAPSHOT +project.dev.io.ebean\:ebean-externalmapping-xml=12.13.3-SNAPSHOT +project.rel.io.ebean\:ebean-core=12.13.2 +project.dev.io.ebean\:ebean-redis=12.13.3-SNAPSHOT +project.dev.io.ebean\:ebean-postgis=12.13.3-SNAPSHOT +project.scm.io.ebean\:ebean-redis.tag=HEAD +project.scm.io.ebean\:ebean-parent.tag=HEAD +pushChanges=true +project.scm.io.ebean\:ebean-externalmapping-xml.developerConnection=scm\:git\:git@github.com\:ebean-orm/ebean.git +project.rel.io.ebean\:ebean-test=12.13.2 +project.scm.io.ebean\:kotlin-querybean-generator.tag=HEAD +project.scm.io.ebean\:ebean-bom.tag=HEAD +project.scm.io.ebean\:ebean-autotune.tag=HEAD +project.scm.io.ebean\:ebean.tag=HEAD +project.scm.io.ebean\:ebean-core.tag=HEAD +project.rel.io.ebean\:ebean-autotune=12.13.2 +scm.rollbackCommitComment=@{prefix} rollback the release of @{releaseLabel} +remoteTagging=true +project.dev.io.ebean\:ebean-bom=12.13.3-SNAPSHOT +project.dev.io.ebean\:ebean-querybean=12.13.3-SNAPSHOT +project.rel.io.ebean\:ebean-bom=12.13.2 +project.scm.io.ebean\:ebean-parent.developerConnection=scm\:git\:git@github.com\:ebean-orm/ebean.git +scm.url=scm\:git\:git@github.com\:ebean-orm/ebean.git +scm.developmentCommitComment=@{prefix} prepare for next development iteration +project.scm.io.ebean\:ebean-externalmapping-api.tag=HEAD +scm.tagNameFormat=@{project.artifactId}-@{project.version} +project.scm.io.ebean\:ebean-test.tag=HEAD +project.dev.io.ebean\:ebean-ddl-generator=12.13.3-SNAPSHOT +exec.snapshotReleasePluginAllowed=false +scm.releaseCommitComment=@{prefix} prepare release @{releaseLabel} +project.rel.io.ebean\:ebean-postgis=12.13.2 +project.rel.io.ebean\:ebean-parent=12.13.2 From 5fddc37037c2ff0362fa987aa90afe3e4867eee2 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 17 Dec 2021 17:26:43 +1300 Subject: [PATCH 54/54] [maven-release-plugin] prepare for next development iteration --- ebean-api/pom.xml | 2 +- ebean-autotune/pom.xml | 6 +++--- ebean-bom/pom.xml | 30 +++++++++++++++--------------- ebean-core-type/pom.xml | 4 ++-- ebean-core/pom.xml | 10 +++++----- ebean-ddl-generator/pom.xml | 6 +++--- ebean-externalmapping-api/pom.xml | 2 +- ebean-externalmapping-xml/pom.xml | 10 +++++----- ebean-postgis/pom.xml | 6 +++--- ebean-querybean/pom.xml | 10 +++++----- ebean-redis/pom.xml | 12 ++++++------ ebean-test/pom.xml | 6 +++--- ebean/pom.xml | 8 ++++---- kotlin-querybean-generator/pom.xml | 8 ++++---- pom.xml | 4 ++-- querybean-generator/pom.xml | 2 +- 16 files changed, 63 insertions(+), 63 deletions(-) diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml index f6b63036c..a27749023 100644 --- a/ebean-api/pom.xml +++ b/ebean-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2 + 12.13.3-SNAPSHOT ebean api diff --git a/ebean-autotune/pom.xml b/ebean-autotune/pom.xml index f50aa503e..5f01ea3cd 100644 --- a/ebean-autotune/pom.xml +++ b/ebean-autotune/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2 + 12.13.3-SNAPSHOT @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-12.13.2 + HEAD ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 12.13.2 + 12.13.3-SNAPSHOT provided diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index 9f8cd588d..de70b12e4 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2 + 12.13.3-SNAPSHOT ebean bom @@ -71,88 +71,88 @@ io.ebean ebean - 12.13.2 + 12.13.3-SNAPSHOT io.ebean ebean-api - 12.13.2 + 12.13.3-SNAPSHOT io.ebean ebean-core - 12.13.2 + 12.13.3-SNAPSHOT io.ebean ebean-core-type - 12.13.2 + 12.13.3-SNAPSHOT io.ebean ebean-ddl-generator - 12.13.2 + 12.13.3-SNAPSHOT io.ebean ebean-externalmapping-api - 12.13.2 + 12.13.3-SNAPSHOT io.ebean ebean-externalmapping-xml - 12.13.2 + 12.13.3-SNAPSHOT io.ebean ebean-autotune - 12.13.2 + 12.13.3-SNAPSHOT io.ebean ebean-querybean - 12.13.2 + 12.13.3-SNAPSHOT io.ebean querybean-generator - 12.13.2 + 12.13.3-SNAPSHOT provided io.ebean kotlin-querybean-generator - 12.13.2 + 12.13.3-SNAPSHOT provided io.ebean ebean-test - 12.13.2 + 12.13.3-SNAPSHOT test io.ebean ebean-postgis - 12.13.2 + 12.13.3-SNAPSHOT io.ebean ebean-redis - 12.13.2 + 12.13.3-SNAPSHOT diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index c1b475b76..0e4062b6f 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2 + 12.13.3-SNAPSHOT ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 12.13.2 + 12.13.3-SNAPSHOT diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index eff86103b..08752f040 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 12.13.2 + 12.13.3-SNAPSHOT ebean-core @@ -15,7 +15,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-12.13.2 + HEAD @@ -41,19 +41,19 @@ io.ebean ebean-api - 12.13.2 + 12.13.3-SNAPSHOT io.ebean ebean-core-type - 12.13.2 + 12.13.3-SNAPSHOT io.ebean ebean-externalmapping-api - 12.13.2 + 12.13.3-SNAPSHOT diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index 9ccda7ce6..4a189ed69 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2 + 12.13.3-SNAPSHOT ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 12.13.2 + 12.13.3-SNAPSHOT provided io.ebean ebean-core - 12.13.2 + 12.13.3-SNAPSHOT provided diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index 0369dc1e6..0566534a9 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2 + 12.13.3-SNAPSHOT ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index d9a75a7ac..5a651b9dc 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2 + 12.13.3-SNAPSHOT @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-12.13.2 + HEAD ebean external mapping xml @@ -33,7 +33,7 @@ io.ebean ebean-externalmapping-api - 12.13.2 + 12.13.3-SNAPSHOT @@ -59,14 +59,14 @@ io.ebean ebean-core - 12.13.2 + 12.13.3-SNAPSHOT test io.ebean ebean-ddl-generator - 12.13.2 + 12.13.3-SNAPSHOT test diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 759c0af54..0862a5696 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2 + 12.13.3-SNAPSHOT ebean postgis @@ -23,7 +23,7 @@ io.ebean ebean-core - 12.13.2 + 12.13.3-SNAPSHOT provided @@ -74,7 +74,7 @@ io.ebean ebean-test - 12.13.2 + 12.13.3-SNAPSHOT test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 9340993b6..a6e2507d7 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2 + 12.13.3-SNAPSHOT ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 12.13.2 + 12.13.3-SNAPSHOT provided @@ -56,21 +56,21 @@ io.ebean ebean-ddl-generator - 12.13.2 + 12.13.3-SNAPSHOT test io.ebean querybean-generator - 12.13.2 + 12.13.3-SNAPSHOT test io.ebean ebean-test - 12.13.2 + 12.13.3-SNAPSHOT test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index 028ccbca9..dca810bd2 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2 + 12.13.3-SNAPSHOT ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 12.13.2 + 12.13.3-SNAPSHOT provided io.ebean ebean-core - 12.13.2 + 12.13.3-SNAPSHOT provided io.ebean ebean-querybean - 12.13.2 + 12.13.3-SNAPSHOT test io.ebean querybean-generator - 12.13.2 + 12.13.3-SNAPSHOT test io.ebean ebean-test - 12.13.2 + 12.13.3-SNAPSHOT test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 54b5de4c0..af698ce97 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2 + 12.13.3-SNAPSHOT ebean test @@ -29,14 +29,14 @@ io.ebean ebean-core - 12.13.2 + 12.13.3-SNAPSHOT provided io.ebean ebean-ddl-generator - 12.13.2 + 12.13.3-SNAPSHOT diff --git a/ebean/pom.xml b/ebean/pom.xml index 844f9b03d..2c3dacdf5 100644 --- a/ebean/pom.xml +++ b/ebean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2 + 12.13.3-SNAPSHOT ebean composite @@ -22,20 +22,20 @@ io.ebean ebean-api - 12.13.2 + 12.13.3-SNAPSHOT io.ebean ebean-core - 12.13.2 + 12.13.3-SNAPSHOT io.ebean ebean-querybean - 12.13.2 + 12.13.3-SNAPSHOT diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index ceb50bece..e897804e2 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2 + 12.13.3-SNAPSHOT kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 12.13.2 + 12.13.3-SNAPSHOT test @@ -43,7 +43,7 @@ io.ebean ebean-core - 12.13.2 + 12.13.3-SNAPSHOT test @@ -64,7 +64,7 @@ io.ebean ebean-ddl-generator - 12.13.2 + 12.13.3-SNAPSHOT test diff --git a/pom.xml b/pom.xml index 7199421e1..ce0f1cd64 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ io.ebean ebean-parent - 12.13.2 + 12.13.3-SNAPSHOT pom ebean parent @@ -18,7 +18,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-12.13.2 + HEAD diff --git a/querybean-generator/pom.xml b/querybean-generator/pom.xml index 99712a4d7..ef25adaa8 100644 --- a/querybean-generator/pom.xml +++ b/querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 12.13.2 + 12.13.3-SNAPSHOT querybean generator