From 475b05052e048c2998fdbe6685fed2cd541e28b7 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 9 Aug 2022 15:43:16 +1200 Subject: [PATCH 001/127] Refactor rename internal methods for SpiQueryPlan and DbReadContext Change the getter methods to use accessor style --- .../io/ebeaninternal/api/SpiQueryPlan.java | 10 ++-- .../server/deploy/AssocOneHelp.java | 2 +- .../server/deploy/AssocOneHelpRefInherit.java | 4 +- .../server/deploy/BeanDescriptor.java | 4 +- .../server/deploy/BeanProperty.java | 6 +-- .../server/deploy/DbReadContext.java | 7 ++- .../DynamicPropertyAggregationFormula.java | 2 +- .../server/deploy/DynamicPropertyBase.java | 2 +- .../server/deploy/InheritInfo.java | 2 +- .../expression/ExistsQueryExpression.java | 4 +- .../server/expression/InQueryExpression.java | 4 +- .../io/ebeaninternal/server/query/CQuery.java | 53 +++++++++---------- .../server/query/CQueryBuilder.java | 2 +- .../server/query/CQueryEngine.java | 34 ++++++------ .../query/CQueryFetchSingleAttribute.java | 8 ++- .../server/query/CQueryPlan.java | 30 +++++------ .../server/query/CQueryPlanStats.java | 12 ++--- .../server/query/CQueryPredicates.java | 2 +- .../server/query/CQueryRowCount.java | 4 +- .../server/query/CQueryUpdate.java | 2 +- .../server/query/QueryPlanLoggerExplain.java | 2 +- .../server/query/QueryPlanLoggerOracle.java | 2 +- .../server/query/QueryPlanLoggerPostgres.java | 2 +- .../query/QueryPlanLoggerSqlServer.java | 2 +- .../server/query/SqlTreeLoadBean.java | 4 +- .../server/query/SqlTreeLoadRoot.java | 4 +- 26 files changed, 103 insertions(+), 107 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/api/SpiQueryPlan.java b/ebean-core/src/main/java/io/ebeaninternal/api/SpiQueryPlan.java index 0b4c3ea0a..137cf60ff 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/api/SpiQueryPlan.java +++ b/ebean-core/src/main/java/io/ebeaninternal/api/SpiQueryPlan.java @@ -10,27 +10,27 @@ public interface SpiQueryPlan { /** * The related entity bean type */ - Class getBeanType(); + Class beanType(); /** * The plan name. */ - String getName(); + String name(); /** * The hash of the sql. */ - String getHash(); + String hash(); /** * The SQL for the query plan. */ - String getSql(); + String sql(); /** * The related profile location. */ - ProfileLocation getProfileLocation(); + ProfileLocation profileLocation(); /** * Initiate bind capture with the give threshold. diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelp.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelp.java index c2ed2a472..7f2366006 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelp.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelp.java @@ -61,7 +61,7 @@ abstract class AssocOneHelp { if (id == null) { return null; } - PersistenceContext pc = ctx.getPersistenceContext(); + PersistenceContext pc = ctx.persistenceContext(); Object existing = target.contextGet(pc, id); if (existing != null) { return existing; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefInherit.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefInherit.java index 72fb828c7..ce36dcc6e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefInherit.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefInherit.java @@ -22,7 +22,7 @@ final class AssocOneHelpRefInherit extends AssocOneHelp { @Override void loadIgnore(DbReadContext ctx) { property.targetIdBinder.loadIgnore(ctx); - ctx.getDataReader().incrementPos(1); + ctx.dataReader().incrementPos(1); } /** @@ -47,7 +47,7 @@ final class AssocOneHelpRefInherit extends AssocOneHelp { return null; } // check transaction context to see if it already exists - PersistenceContext pc = ctx.getPersistenceContext(); + PersistenceContext pc = ctx.persistenceContext(); Object existing = desc.contextGet(pc, id); if (existing != null) { return existing; 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 08804a53d..2ba7bf20b 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 @@ -1468,7 +1468,7 @@ public class BeanDescriptor implements BeanType, STreeType, SpiBeanType { void queryPlanInit(QueryPlanInit request, List list) { for (CQueryPlan queryPlan : queryPlanCache.values()) { - if (request.includeHash(queryPlan.getHash())) { + if (request.includeHash(queryPlan.hash())) { queryPlan.queryPlanInit(request.thresholdMicros()); list.add(queryPlan.createMeta(null, null)); } @@ -1500,7 +1500,7 @@ public class BeanDescriptor implements BeanType, STreeType, SpiBeanType { * Trim query plans not used since the passed in epoch time. */ void trimQueryPlans(long unusedSince) { - queryPlanCache.values().removeIf(queryPlan -> queryPlan.getLastQueryTime() < unusedSince); + queryPlanCache.values().removeIf(queryPlan -> queryPlan.lastQueryTime() < unusedSince); } /** diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java index 243db22ac..cebac3275 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java @@ -506,7 +506,7 @@ public class BeanProperty implements ElPropertyValue, Property, STreeProperty { @Override public void loadIgnore(DbReadContext ctx) { - scalarType.loadIgnore(ctx.getDataReader()); + scalarType.loadIgnore(ctx.dataReader()); } @Override @@ -541,11 +541,11 @@ public class BeanProperty implements ElPropertyValue, Property, STreeProperty { } public Object read(DbReadContext ctx) throws SQLException { - return scalarType.read(ctx.getDataReader()); + return scalarType.read(ctx.dataReader()); } public Object readSet(DbReadContext ctx, EntityBean bean) throws SQLException { - return readSet(ctx.getDataReader(), bean); + return readSet(ctx.dataReader(), bean); } @SuppressWarnings("unchecked") diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DbReadContext.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DbReadContext.java index e79e7e0df..7ac256b4b 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DbReadContext.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DbReadContext.java @@ -27,7 +27,7 @@ public interface DbReadContext { /** * Return the DataReader. */ - DataReader getDataReader(); + DataReader dataReader(); /** * Return true if the query is using supplied SQL rather than generated SQL. @@ -52,7 +52,7 @@ public interface DbReadContext { /** * Return the persistence context. */ - PersistenceContext getPersistenceContext(); + PersistenceContext persistenceContext(); /** * Register a reference for lazy loading. @@ -69,7 +69,6 @@ public interface DbReadContext { */ void register(BeanPropertyAssocMany many, BeanCollection bc); - /** * Set back the bean that has just been loaded with its id. */ @@ -78,7 +77,7 @@ public interface DbReadContext { /** * Return the query mode. */ - SpiQuery.Mode getQueryMode(); + SpiQuery.Mode queryMode(); /** * Return true if the underlying query is a 'asDraft' query. diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DynamicPropertyAggregationFormula.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DynamicPropertyAggregationFormula.java index ec1c7035b..faab87419 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DynamicPropertyAggregationFormula.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DynamicPropertyAggregationFormula.java @@ -47,7 +47,7 @@ class DynamicPropertyAggregationFormula extends DynamicPropertyBase { public void load(SqlBeanLoad sqlBeanLoad) { Object value; try { - value = scalarType.read(sqlBeanLoad.ctx().getDataReader()); + value = scalarType.read(sqlBeanLoad.ctx().dataReader()); } catch (Exception e) { sqlBeanLoad.ctx().handleLoadError(fullName, e); return; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DynamicPropertyBase.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DynamicPropertyBase.java index 08fc33036..fe06c0f4c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DynamicPropertyBase.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DynamicPropertyBase.java @@ -65,7 +65,7 @@ abstract class DynamicPropertyBase implements STreeProperty { @Override public void loadIgnore(DbReadContext ctx) { - scalarType.loadIgnore(ctx.getDataReader()); + scalarType.loadIgnore(ctx.dataReader()); } @Override diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/InheritInfo.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/InheritInfo.java index 3f0c5c8cb..ae588e466 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/InheritInfo.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/InheritInfo.java @@ -197,7 +197,7 @@ public final class InheritInfo { * Return the associated InheritInfo for this DB row read. */ public InheritInfo readType(DbReadContext ctx) throws SQLException { - return readType(ctx.getDataReader().getString()); + return readType(ctx.dataReader().getString()); } /** diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/ExistsQueryExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/ExistsQueryExpression.java index 06b9a43e1..e746e58ff 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/ExistsQueryExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/ExistsQueryExpression.java @@ -57,8 +57,8 @@ final class ExistsQueryExpression implements SpiExpression, UnsupportedDocStoreE @Override public void prepareExpression(BeanQueryRequest request) { CQuery subQuery = compileSubQuery(request); - this.bindParams = subQuery.getPredicates().getWhereExprBindValues(); - this.sql = subQuery.getGeneratedSql().replace('\n', ' '); + this.bindParams = subQuery.predicates().getWhereExprBindValues(); + this.sql = subQuery.generatedSql().replace('\n', ' '); } @Override diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InQueryExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InQueryExpression.java index 8c0a12506..779f222e6 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InQueryExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InQueryExpression.java @@ -45,8 +45,8 @@ final class InQueryExpression extends AbstractExpression implements UnsupportedD public void prepareExpression(BeanQueryRequest request) { CQuery subQuery = compileSubQuery(request); - this.bindParams = subQuery.getPredicates().getWhereExprBindValues(); - this.sql = subQuery.getGeneratedSql().replace('\n', ' '); + this.bindParams = subQuery.predicates().getWhereExprBindValues(); + this.sql = subQuery.generatedSql().replace('\n', ' '); } @Override diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java index d153c359a..b7d6b38a1 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java @@ -188,13 +188,13 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi this.autoTuneProfiling = profilingListener != null; // set the generated sql back to the query // so its available to the user... - query.setGeneratedSql(queryPlan.getSql()); - SqlTreePlan sqlTree = queryPlan.getSqlTree(); + query.setGeneratedSql(queryPlan.sql()); + SqlTreePlan sqlTree = queryPlan.sqlTree(); this.rootNode = sqlTree.getRootNode(); this.manyProperty = sqlTree.getManyProperty(); - this.sql = queryPlan.getSql(); + this.sql = queryPlan.sql(); this.rawSql = queryPlan.isRawSql(); - this.logWhereSql = queryPlan.getLogWhereSql(); + this.logWhereSql = queryPlan.logWhereSql(); this.desc = request.descriptor(); this.predicates = predicates; if (lazyLoadManyProperty != null) { @@ -243,20 +243,20 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi } @Override - public DataReader getDataReader() { + public DataReader dataReader() { return dataReader; } @Override - public Mode getQueryMode() { + public Mode queryMode() { return queryMode; } - public CQueryPredicates getPredicates() { + public CQueryPredicates predicates() { return predicates; } - SpiOrmQueryRequest getQueryRequest() { + SpiOrmQueryRequest request() { return request; } @@ -362,7 +362,7 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi * Return the persistence context. */ @Override - public PersistenceContext getPersistenceContext() { + public PersistenceContext persistenceContext() { return request.persistenceContext(); } @@ -371,7 +371,7 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi if (lazyLoadParentId != null) { if (!lazyLoadParentId.equals(this.lazyLoadParentId)) { // get the appropriate parent bean from the persistence context - this.lazyLoadParentBean = (EntityBean) lazyLoadManyProperty.descriptor().contextGet(getPersistenceContext(), lazyLoadParentId); + this.lazyLoadParentBean = (EntityBean) lazyLoadManyProperty.descriptor().contextGet(persistenceContext(), lazyLoadParentId); this.lazyLoadParentId = lazyLoadParentId; } // add the loadedBean to the appropriate collection of lazyLoadParentBean @@ -451,7 +451,7 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi return true; } - long getQueryExecutionTimeMicros() { + long queryExecutionTimeMicros() { return executionTimeMicros; } @@ -546,7 +546,7 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi if (queryPlan.executionTime(executionTimeMicros)) { queryPlan.captureBindForQueryPlan(predicates, executionTimeMicros); } - getTransaction().profileEvent(this); + transaction().profileEvent(this); } catch (Exception e) { CoreLog.log.error("Error updating execution statistics", e); } @@ -554,7 +554,7 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi @Override public void profile() { - getTransaction() + transaction() .profileStream() .addQueryEvent(query.profileEventId(), profileOffset, desc.name(), loadedBeanCount, query.getProfileId()); } @@ -567,7 +567,7 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi } } - String getLoadedRowDetail() { + String loadedRowDetail() { if (manyProperty == null) { return String.valueOf(rowCount); } else { @@ -601,30 +601,29 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi /** * Return the where predicate for display in the transaction log. */ - String getLogWhereSql() { + String logWhereSql() { return logWhereSql; } - - public String getBindLog() { + public String bindLog() { return bindLog; } - public SpiTransaction getTransaction() { + public SpiTransaction transaction() { return request.transaction(); } /** * Return the short bean name. */ - String getBeanName() { + String beanName() { return desc.name(); } /** * Return the generated sql. */ - public String getGeneratedSql() { + public String generatedSql() { return sql; } @@ -676,7 +675,7 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi void auditFind(EntityBean bean) { if (bean != null) { // only audit when a bean was actually found - desc.readAuditBean(queryPlan.getAuditQueryKey(), bindLog, bean); + desc.readAuditBean(queryPlan.auditQueryKey(), bindLog, bean); } } @@ -689,11 +688,11 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi ReadEvent futureReadEvent = query.getFutureFetchAudit(); if (futureReadEvent == null) { // normal query execution - desc.readAuditMany(queryPlan.getAuditQueryKey(), bindLog, auditIds); + desc.readAuditMany(queryPlan.auditQueryKey(), bindLog, auditIds); } else { // this query was executed via findFutureList() and the prepare() // has already been called so set the details and log - futureReadEvent.setQueryKey(queryPlan.getAuditQueryKey()); + futureReadEvent.setQueryKey(queryPlan.auditQueryKey()); futureReadEvent.setBindLog(bindLog); futureReadEvent.setIds(auditIds); desc.readAuditFutureMany(futureReadEvent); @@ -712,7 +711,7 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi * Send the current buffer of findIterate collected ids to the audit log. */ private void auditIterateLogMessage() { - desc.readAuditMany(queryPlan.getAuditQueryKey(), bindLog, auditIds); + desc.readAuditMany(queryPlan.auditQueryKey(), bindLog, auditIds); // create a new list on demand with the next bean/id auditIds = null; } @@ -733,7 +732,7 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi /** * Return the underlying PreparedStatement. */ - PreparedStatement getPstmt() { + PreparedStatement pstmt() { return pstmt; } @@ -742,7 +741,7 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi query.handleLoadError(fullName, e); } - public Set getDependentTables() { - return queryPlan.getDependentTables(); + public Set dependentTables() { + return queryPlan.dependentTables(); } } 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 3ced1ac0b..ed9cbea6c 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 @@ -347,7 +347,7 @@ final class CQueryBuilder { BeanDescriptor desc = request.descriptor(); if (desc.isReadAuditing()) { // log the query plan based bean type (i.e. ignoring query disabling for logging the sql/plan) - desc.readAuditLogger().queryPlan(new ReadAuditQueryPlan(desc.fullName(), queryPlan.getAuditQueryKey(), queryPlan.getSql())); + desc.readAuditLogger().queryPlan(new ReadAuditQueryPlan(desc.fullName(), queryPlan.auditQueryKey(), queryPlan.sql())); } // cache the query plan because we can reuse it and also // gather query performance statistics based on it. diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java index 416da3c31..26d728c36 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java @@ -331,10 +331,10 @@ public final class CQueryEngine { if (request.logSql()) { logSql(cquery); } - return new SpiResultSet(cquery.getPstmt(), resultSet); + return new SpiResultSet(cquery.pstmt(), resultSet); } catch (SQLException e) { - JdbcClose.close(cquery.getPstmt()); + JdbcClose.close(cquery.pstmt()); throw cquery.createPersistenceException(e); } } @@ -366,7 +366,7 @@ public final class CQueryEngine { } request.executeSecondaryQueries(false); if (request.isQueryCachePut()) { - request.addDependentTables(cquery.getDependentTables()); + request.addDependentTables(cquery.dependentTables()); } return beanCollection; @@ -414,14 +414,14 @@ public final class CQueryEngine { * Log the generated SQL to the transaction log. */ private void logSql(CQuery query) { - query.getTransaction().logSql(Str.add(query.getGeneratedSql(), "; --bind(", query.getBindLog(), ") --micros(", query.micros() + ")")); + query.transaction().logSql(Str.add(query.generatedSql(), "; --bind(", query.bindLog(), ") --micros(", query.micros() + ")")); } /** * Log the FindById summary to the transaction log. */ private void logFindBeanSummary(CQuery q) { - SpiQuery query = q.getQueryRequest().query(); + SpiQuery query = q.request().query(); String loadMode = query.getLoadMode(); String loadDesc = query.getLoadDescription(); String lazyLoadProp = query.getLazyLoadProperty(); @@ -438,7 +438,7 @@ public final class CQueryEngine { if (loadMode != null) { msg.append("mode[").append(loadMode).append("] "); } - msg.append("type[").append(q.getBeanName()).append("] "); + msg.append("type[").append(q.beanName()).append("] "); if (query.isAutoTuned()) { msg.append("tuned[true] "); } @@ -454,17 +454,17 @@ public final class CQueryEngine { if (loadDesc != null) { msg.append("load[").append(loadDesc).append("] "); } - msg.append("exeMicros[").append(q.getQueryExecutionTimeMicros()); - msg.append("] rows[").append(q.getLoadedRowDetail()); - msg.append("] bind[").append(q.getBindLog()).append("]"); - q.getTransaction().logSummary(msg.toString()); + msg.append("exeMicros[").append(q.queryExecutionTimeMicros()); + msg.append("] rows[").append(q.loadedRowDetail()); + msg.append("] bind[").append(q.bindLog()).append("]"); + q.transaction().logSummary(msg.toString()); } /** * Log the FindMany to the transaction log. */ private void logFindManySummary(CQuery q) { - SpiQuery query = q.getQueryRequest().query(); + SpiQuery query = q.request().query(); String loadMode = query.getLoadMode(); String loadDesc = query.getLoadDescription(); String lazyLoadProp = query.getLazyLoadProperty(); @@ -482,7 +482,7 @@ public final class CQueryEngine { if (loadMode != null) { msg.append("mode[").append(loadMode).append("] "); } - msg.append("type[").append(q.getBeanName()).append("] "); + msg.append("type[").append(q.beanName()).append("] "); if (query.isAutoTuned()) { msg.append("tuned[true] "); } @@ -498,10 +498,10 @@ public final class CQueryEngine { if (loadDesc != null) { msg.append("load[").append(loadDesc).append("] "); } - msg.append("exeMicros[").append(q.getQueryExecutionTimeMicros()); - msg.append("] rows[").append(q.getLoadedRowDetail()); - msg.append("] predicates[").append(q.getLogWhereSql()); - msg.append("] bind[").append(q.getBindLog()).append("]"); - q.getTransaction().logSummary(msg.toString()); + msg.append("exeMicros[").append(q.queryExecutionTimeMicros()); + msg.append("] rows[").append(q.loadedRowDetail()); + msg.append("] predicates[").append(q.logWhereSql()); + msg.append("] bind[").append(q.bindLog()).append("]"); + q.transaction().logSummary(msg.toString()); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java index 747793e85..37ed9e1ab 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java @@ -15,9 +15,7 @@ import io.ebeaninternal.server.type.RsetDataReader; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; -import java.util.ArrayList; import java.util.Collection; -import java.util.List; import java.util.Set; import java.util.concurrent.locks.ReentrantLock; @@ -49,11 +47,11 @@ final class CQueryFetchSingleAttribute implements SpiProfileTransactionEvent, Ca this.request = request; this.queryPlan = queryPlan; this.query = request.query(); - this.sql = queryPlan.getSql(); + this.sql = queryPlan.sql(); this.desc = request.descriptor(); this.predicates = predicates; this.containsCounts = containsCounts; - this.reader = queryPlan.getSingleAttributeScalarType(); + this.reader = queryPlan.singleAttributeScalarType(); query.setGeneratedSql(sql); } @@ -168,7 +166,7 @@ final class CQueryFetchSingleAttribute implements SpiProfileTransactionEvent, Ca } Set getDependentTables() { - return queryPlan.getDependentTables(); + return queryPlan.dependentTables(); } @Override diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java index 5ce73fc62..bdcd7c372 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java @@ -157,39 +157,39 @@ public class CQueryPlan implements SpiQueryPlan { } @Override - public final Class getBeanType() { + public final Class beanType() { return beanType; } @Override - public final String getName() { + public final String name() { return name; } @Override - public final String getHash() { + public final String hash() { return hash; } @Override - public final String getSql() { + public final String sql() { return sql; } @Override - public final ProfileLocation getProfileLocation() { + public final ProfileLocation profileLocation() { return profileLocation; } - public final String getLabel() { + public final String label() { return label; } - public final Set getDependentTables() { + public final Set dependentTables() { return dependentTables; } - public final String getLocation() { + public final String location() { return location; } @@ -200,7 +200,7 @@ public class CQueryPlan implements SpiQueryPlan { @Override public final DQueryPlanOutput createMeta(String bind, String planString) { - return new DQueryPlanOutput(getBeanType(), name, hash, sql, profileLocation, bind, planString); + return new DQueryPlanOutput(beanType(), name, hash, sql, profileLocation, bind, planString); } public DataReader createDataReader(ResultSet rset) { @@ -230,14 +230,14 @@ public class CQueryPlan implements SpiQueryPlan { return dataBind; } - final int getAsOfTableCount() { + final int asOfTableCount() { return asOfTableCount; } /** * Return a key used in audit logging to identify the query. */ - final String getAuditQueryKey() { + final String auditQueryKey() { if (auditQueryHash == null) { // volatile object assignment (so happy for multithreaded access) auditQueryHash = calcAuditQueryKey(); @@ -250,7 +250,7 @@ public class CQueryPlan implements SpiQueryPlan { return rawSql ? planKey.getPartialKey() + "_" + hash : planKey.getPartialKey(); } - final SqlTreePlan getSqlTree() { + final SqlTreePlan sqlTree() { return sqlTree; } @@ -258,7 +258,7 @@ public class CQueryPlan implements SpiQueryPlan { return rawSql; } - final String getLogWhereSql() { + final String logWhereSql() { return logWhereSql; } @@ -287,11 +287,11 @@ public class CQueryPlan implements SpiQueryPlan { /** * Return the time this query plan was last used. */ - public final long getLastQueryTime() { + public final long lastQueryTime() { return stats.getLastQueryTime(); } - final ScalarDataReader getSingleAttributeScalarType() { + final ScalarDataReader singleAttributeScalarType() { return sqlTree.getRootNode().getSingleAttributeReader(); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanStats.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanStats.java index 6b6c3d66e..118450452 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanStats.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanStats.java @@ -66,7 +66,7 @@ public final class CQueryPlanStats { } String reportName(MetricVisitor visitor) { - final String tmp = visitor.namingConvention().apply(queryPlan.getName()); + final String tmp = visitor.namingConvention().apply(queryPlan.name()); this.reportName = tmp; return tmp; } @@ -95,12 +95,12 @@ public final class CQueryPlanStats { @Override public Class type() { - return queryPlan.getBeanType(); + return queryPlan.beanType(); } @Override public String label() { - return queryPlan.getLabel(); + return queryPlan.label(); } @Override @@ -110,7 +110,7 @@ public final class CQueryPlanStats { @Override public String location() { - return queryPlan.getLocation(); + return queryPlan.location(); } @Override @@ -135,12 +135,12 @@ public final class CQueryPlanStats { @Override public String hash() { - return queryPlan.getHash(); + return queryPlan.hash(); } @Override public String sql() { - return queryPlan.getSql(); + return queryPlan.sql(); } @Override diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java index 783ffe852..dff185cc8 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java @@ -111,7 +111,7 @@ public final class CQueryPredicates { } CQueryPlan queryPlan = request.queryPlan(); if (queryPlan != null) { - int asOfTableCount = queryPlan.getAsOfTableCount(); + int asOfTableCount = queryPlan.asOfTableCount(); if (asOfTableCount > 0) { // bind the asOf value for each table alias as part of the from/join clauses // there is one effective date predicate per table alias diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryRowCount.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryRowCount.java index da7def29b..6834f46d9 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryRowCount.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryRowCount.java @@ -42,7 +42,7 @@ final class CQueryRowCount implements SpiProfileTransactionEvent, CancelableQuer this.queryPlan = queryPlan; this.request = request; this.query = request.query(); - this.sql = queryPlan.getSql(); + this.sql = queryPlan.sql(); this.desc = request.descriptor(); this.predicates = predicates; query.setGeneratedSql(sql); @@ -141,7 +141,7 @@ final class CQueryRowCount implements SpiProfileTransactionEvent, CancelableQuer } Set getDependentTables() { - return queryPlan.getDependentTables(); + return queryPlan.dependentTables(); } @Override diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryUpdate.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryUpdate.java index 8e7dfd1f5..20ad3fb44 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryUpdate.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryUpdate.java @@ -38,7 +38,7 @@ final class CQueryUpdate implements SpiProfileTransactionEvent, CancelableQuery this.request = request; this.queryPlan = queryPlan; this.query = request.query(); - this.sql = queryPlan.getSql(); + this.sql = queryPlan.sql(); this.desc = request.descriptor(); this.predicates = predicates; query.setGeneratedSql(sql); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerExplain.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerExplain.java index 8aab42e4e..d87f66ed6 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerExplain.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerExplain.java @@ -17,7 +17,7 @@ public final class QueryPlanLoggerExplain extends QueryPlanLogger { @Override public SpiDbQueryPlan collectPlan(Connection conn, SpiQueryPlan plan, BindCapture bind) { - try (PreparedStatement explainStmt = conn.prepareStatement("EXPLAIN " + plan.getSql())) { + try (PreparedStatement explainStmt = conn.prepareStatement("EXPLAIN " + plan.sql())) { bind.prepare(explainStmt, conn); try (ResultSet rset = explainStmt.executeQuery()) { return readQueryPlan(plan, bind, rset); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerOracle.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerOracle.java index 90c806dc0..f5454bb76 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerOracle.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerOracle.java @@ -22,7 +22,7 @@ public final class QueryPlanLoggerOracle extends QueryPlanLogger { @Override public SpiDbQueryPlan collectPlan(Connection conn, SpiQueryPlan plan, BindCapture bind) { try (Statement stmt = conn.createStatement()) { - try (PreparedStatement explainStmt = conn.prepareStatement("EXPLAIN PLAN FOR " + plan.getSql())) { + try (PreparedStatement explainStmt = conn.prepareStatement("EXPLAIN PLAN FOR " + plan.sql())) { bind.prepare(explainStmt, conn); explainStmt.execute(); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerPostgres.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerPostgres.java index 9b5bed9a9..db99ef672 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerPostgres.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerPostgres.java @@ -17,7 +17,7 @@ public final class QueryPlanLoggerPostgres extends QueryPlanLogger { @Override public SpiDbQueryPlan collectPlan(Connection conn, SpiQueryPlan plan, BindCapture bind) { - String explain = "explain analyze " + plan.getSql(); + String explain = "explain analyze " + plan.sql(); try (PreparedStatement explainStmt = conn.prepareStatement(explain)) { bind.prepare(explainStmt, conn); try (ResultSet rset = explainStmt.executeQuery()) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerSqlServer.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerSqlServer.java index 0bec7e4db..75df42bc1 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerSqlServer.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerSqlServer.java @@ -24,7 +24,7 @@ public final class QueryPlanLoggerSqlServer extends QueryPlanLogger { try (Statement stmt = conn.createStatement()) { stmt.execute("set statistics xml on"); stmt.execute("begin transaction"); - try (PreparedStatement explainStmt = conn.prepareStatement(plan.getSql())) { + try (PreparedStatement explainStmt = conn.prepareStatement(plan.sql())) { bind.prepare(explainStmt, conn); try (ResultSet rset = explainStmt.executeQuery()) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeLoadBean.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeLoadBean.java index a95ff951f..48b476d33 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeLoadBean.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeLoadBean.java @@ -163,8 +163,8 @@ class SqlTreeLoadBean implements SqlTreeLoad { } private void initPersistenceContext() { - queryMode = ctx.getQueryMode(); - persistenceContext = (!readIdNormal) ? null : ctx.getPersistenceContext(); + queryMode = ctx.queryMode(); + persistenceContext = (!readIdNormal) ? null : ctx.persistenceContext(); } private void readId() throws SQLException { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeLoadRoot.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeLoadRoot.java index d1792ecbe..475dd9576 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeLoadRoot.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeLoadRoot.java @@ -34,8 +34,8 @@ final class SqlTreeLoadRoot extends SqlTreeLoadBean implements SqlTreeRoot { public Version loadVersion(DbReadContext ctx) throws SQLException { // read the sys period lower and upper bounds // these are always the first 2 columns in the resultSet - Timestamp start = ctx.getDataReader().getTimestamp(); - Timestamp end = ctx.getDataReader().getTimestamp(); + Timestamp start = ctx.dataReader().getTimestamp(); + Timestamp end = ctx.dataReader().getTimestamp(); T bean = (T) load(ctx, null, null); return new Version<>(bean, start, end); } From dd5bb3edff515c88b5d19d882b7dffdeb328df94 Mon Sep 17 00:00:00 2001 From: Flo Date: Wed, 10 Aug 2022 12:48:02 +0200 Subject: [PATCH 002/127] Bump mariadb-java-client to 3.0.7 --- ebean-test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 22e23e283..0db31e539 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -188,7 +188,7 @@ org.mariadb.jdbc mariadb-java-client - 2.6.0 + 3.0.7 test From e8afba7ed26c5caf92d7860a8d54a65d9281deae Mon Sep 17 00:00:00 2001 From: Flo Date: Wed, 10 Aug 2022 19:26:40 +0200 Subject: [PATCH 003/127] Use fetch size 1 instead of Integer.MIN_VALUE --- .../src/main/java/io/ebeaninternal/server/query/CQuery.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java index d153c359a..22c212d0c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java @@ -314,7 +314,7 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi if (forwardOnlyHint) { // Use forward only hints for large resultSet processing (Issue 56, MySql specific) pstmt = conn.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); - pstmt.setFetchSize(Integer.MIN_VALUE); + pstmt.setFetchSize(1); } else { pstmt = conn.prepareStatement(sql); } From d703709f144d726843218ed08a18c3a28623360e Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 12 Aug 2022 15:50:17 +1200 Subject: [PATCH 004/127] #2784 - Correct documentation for TQRootBean.findSingleAttribute with @Nullable --- ebean-api/src/main/java/io/ebean/Query.java | 3 ++- .../src/main/java/io/ebean/typequery/TQRootBean.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/Query.java b/ebean-api/src/main/java/io/ebean/Query.java index a9793a7ce..0d0fe1e5e 100644 --- a/ebean-api/src/main/java/io/ebean/Query.java +++ b/ebean-api/src/main/java/io/ebean/Query.java @@ -931,7 +931,7 @@ public interface Query extends CancelableQuery { Set findSingleAttributeSet(); /** - * Execute a query returning a single value of a single property/column. + * Execute a query returning a single value or null for a single property/column. *

*

{@code
    *
@@ -943,6 +943,7 @@ public interface Query extends CancelableQuery {
    *
    * }
*/ + @Nullable
A findSingleAttribute(); /** diff --git a/ebean-querybean/src/main/java/io/ebean/typequery/TQRootBean.java b/ebean-querybean/src/main/java/io/ebean/typequery/TQRootBean.java index 7f8621fb0..a7b24a85b 100644 --- a/ebean-querybean/src/main/java/io/ebean/typequery/TQRootBean.java +++ b/ebean-querybean/src/main/java/io/ebean/typequery/TQRootBean.java @@ -1767,7 +1767,7 @@ public abstract class TQRootBean { } /** - * Execute the query returning a single value for a single property. + * Execute the query returning a single value or null for a single property. *

*

Example

*
{@code
@@ -1781,6 +1781,7 @@ public abstract class TQRootBean {
    *
    * @return the list of values for the selected property
    */
+  @Nullable
   public  A findSingleAttribute() {
     return query.findSingleAttribute();
   }

From 4523db85c3e2bd6762b33087cc069266e8259d45 Mon Sep 17 00:00:00 2001
From: Rob Bygrave 
Date: Fri, 12 Aug 2022 15:54:09 +1200
Subject: [PATCH 005/127] Fix for generated migration index files in test

---
 .../migrationtest/dbmigration/oracle/idx_oracle.migrations      | 2 +-
 .../migrationtest/dbmigration/oracle11/idx_oracle.migrations    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations
index d2a58f4d3..cf60af39b 100644
--- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations
+++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations
@@ -3,6 +3,6 @@
 930172034,      1.2__dropsFor_1.1.sql
 -1621367223,    1.3.sql
 663051206,      1.4__dropsFor_1.3.sql
-13.7.1-SNAPSHOT1733,     R__oracle_only_views.sql
+1357801733,     R__oracle_only_views.sql
 561281075,      R__order_views.sql
 
diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations
index 52bdd2b16..d50ab5194 100644
--- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations
+++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations
@@ -3,6 +3,6 @@
 930172034,      1.2__dropsFor_1.1.sql
 -144959080,     1.3.sql
 663051206,      1.4__dropsFor_1.3.sql
-13.7.1-SNAPSHOT1733,     R__oracle_only_views.sql
+1357801733,     R__oracle_only_views.sql
 561281075,      R__order_views.sql
 

From 73bc9e516e904dab24e19a5179017d487dc1f214 Mon Sep 17 00:00:00 2001
From: Rob Bygrave 
Date: Mon, 15 Aug 2022 15:14:57 +1200
Subject: [PATCH 006/127] Revert "Migrate to Jakarta JAXB (jakarta.xml.bind <-
 javax.xml.bind)"

---
 ebean-autotune/pom.xml                           | 13 ++++---------
 .../server/autotune/model/Autotune.java          |  8 ++++----
 .../server/autotune/model/ObjectFactory.java     |  2 +-
 .../server/autotune/model/Origin.java            | 10 +++++-----
 .../server/autotune/model/ProfileDiff.java       |  8 ++++----
 .../server/autotune/model/ProfileEmpty.java      |  8 ++++----
 .../server/autotune/model/ProfileNew.java        |  8 ++++----
 .../server/autotune/model/package-info.java      |  2 +-
 .../autotune/service/AutoTuneXmlReader.java      |  6 +++---
 .../autotune/service/AutoTuneXmlWriter.java      |  6 +++---
 ebean-autotune/src/main/java/module-info.java    |  3 ++-
 ebean-ddl-generator/pom.xml                      | 14 +++++---------
 .../io/ebeaninternal/dbmigration/Detect.java     |  2 +-
 .../dbmigration/migration/AddColumn.java         |  2 +-
 .../dbmigration/migration/AddHistoryTable.java   |  2 +-
 .../dbmigration/migration/AddTableComment.java   |  2 +-
 .../migration/AddUniqueConstraint.java           |  2 +-
 .../dbmigration/migration/AlterColumn.java       |  2 +-
 .../dbmigration/migration/AlterForeignKey.java   |  2 +-
 .../dbmigration/migration/AlterHistoryTable.java |  2 +-
 .../dbmigration/migration/AlterTable.java        |  2 +-
 .../dbmigration/migration/Application.java       |  2 +-
 .../dbmigration/migration/Applications.java      |  8 ++++----
 .../dbmigration/migration/Apply.java             |  2 +-
 .../dbmigration/migration/ChangeSet.java         |  2 +-
 .../dbmigration/migration/ChangeSetType.java     |  6 +++---
 .../dbmigration/migration/Column.java            |  2 +-
 .../dbmigration/migration/Configuration.java     |  2 +-
 .../dbmigration/migration/CreateIndex.java       |  2 +-
 .../dbmigration/migration/CreateSchema.java      |  2 +-
 .../dbmigration/migration/CreateTable.java       |  2 +-
 .../dbmigration/migration/DdlScript.java         |  2 +-
 .../dbmigration/migration/DefaultTablespace.java |  2 +-
 .../dbmigration/migration/DropColumn.java        |  2 +-
 .../dbmigration/migration/DropHistoryTable.java  |  2 +-
 .../dbmigration/migration/DropIndex.java         |  2 +-
 .../dbmigration/migration/DropTable.java         |  2 +-
 .../dbmigration/migration/ForeignKey.java        |  2 +-
 .../dbmigration/migration/IdentityType.java      |  6 +++---
 .../dbmigration/migration/Migration.java         |  2 +-
 .../dbmigration/migration/ObjectFactory.java     |  2 +-
 .../dbmigration/migration/RenameColumn.java      |  2 +-
 .../dbmigration/migration/RenameTable.java       |  2 +-
 .../dbmigration/migration/Rollback.java          |  2 +-
 .../ebeaninternal/dbmigration/migration/Sql.java |  2 +-
 .../dbmigration/migration/UniqueConstraint.java  |  2 +-
 .../dbmigration/migration/package-info.java      |  2 +-
 .../migrationreader/MigrationXmlReader.java      |  6 +++---
 .../migrationreader/MigrationXmlWriter.java      |  6 +++---
 .../ebeaninternal/extraddl/model/DdlScript.java  | 12 ++++++------
 .../ebeaninternal/extraddl/model/ExtraDdl.java   | 10 +++++-----
 .../extraddl/model/ExtraDdlXmlReader.java        |  6 +++---
 .../extraddl/model/ObjectFactory.java            |  2 +-
 .../extraddl/model/package-info.java             |  2 +-
 .../src/main/java/module-info.java               |  2 +-
 ebean-externalmapping-xml/pom.xml                | 15 ++++++++-------
 .../xmlmapping/XmlMappingReader.java             |  6 +++---
 .../xmlmapping/model/ObjectFactory.java          |  2 +-
 .../xmlmapping/model/XmAliasMapping.java         | 10 +++++-----
 .../xmlmapping/model/XmColumnMapping.java        | 10 +++++-----
 .../io/ebeaninternal/xmlmapping/model/XmDto.java | 12 ++++++------
 .../ebeaninternal/xmlmapping/model/XmEbean.java  | 10 +++++-----
 .../ebeaninternal/xmlmapping/model/XmEntity.java | 12 ++++++------
 .../xmlmapping/model/XmNamedQuery.java           | 12 ++++++------
 .../ebeaninternal/xmlmapping/model/XmQuery.java  | 10 +++++-----
 .../ebeaninternal/xmlmapping/model/XmRawSql.java | 12 ++++++------
 .../xmlmapping/model/package-info.java           |  2 +-
 .../src/main/java/module-info.java               |  3 ++-
 ebean-test/pom.xml                               | 16 +++++++++-------
 ebean-test/src/main/java/module-info.java        |  2 +-
 70 files changed, 174 insertions(+), 178 deletions(-)

diff --git a/ebean-autotune/pom.xml b/ebean-autotune/pom.xml
index 500b98f4d..a8b20c069 100644
--- a/ebean-autotune/pom.xml
+++ b/ebean-autotune/pom.xml
@@ -32,15 +32,10 @@
 
     
     
-      jakarta.xml.bind
-      jakarta.xml.bind-api
-      4.0.0
-    
-    
-      com.sun.xml.bind
-      jaxb-impl
-      4.0.0
-      runtime
+      org.glassfish.jaxb
+      jaxb-runtime
+      2.3.6
+      provided
     
 
     
diff --git a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/Autotune.java b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/Autotune.java
index 9dc140779..f5b4954bb 100644
--- a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/Autotune.java
+++ b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/Autotune.java
@@ -1,9 +1,9 @@
 package io.ebeaninternal.server.autotune.model;
 
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/ObjectFactory.java b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/ObjectFactory.java
index 4f81e26e1..2e5d7eba3 100644
--- a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/ObjectFactory.java
+++ b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/ObjectFactory.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.server.autotune.model;
 
-import jakarta.xml.bind.annotation.XmlRegistry;
+import javax.xml.bind.annotation.XmlRegistry;
 
 
 /**
diff --git a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/Origin.java b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/Origin.java
index 65b6cfc3f..6471d3877 100644
--- a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/Origin.java
+++ b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/Origin.java
@@ -1,10 +1,10 @@
 package io.ebeaninternal.server.autotune.model;
 
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlAttribute;
-import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
 
 
 /**
diff --git a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/ProfileDiff.java b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/ProfileDiff.java
index 370ed7bc7..1738fead9 100644
--- a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/ProfileDiff.java
+++ b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/ProfileDiff.java
@@ -1,9 +1,9 @@
 package io.ebeaninternal.server.autotune.model;
 
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/ProfileEmpty.java b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/ProfileEmpty.java
index b038240ef..d22140aa8 100644
--- a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/ProfileEmpty.java
+++ b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/ProfileEmpty.java
@@ -1,9 +1,9 @@
 package io.ebeaninternal.server.autotune.model;
 
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/ProfileNew.java b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/ProfileNew.java
index 0f2666fcb..7910acb84 100644
--- a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/ProfileNew.java
+++ b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/ProfileNew.java
@@ -1,9 +1,9 @@
 package io.ebeaninternal.server.autotune.model;
 
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/package-info.java b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/package-info.java
index 86e328054..78deec068 100644
--- a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/package-info.java
+++ b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/model/package-info.java
@@ -1,2 +1,2 @@
-@jakarta.xml.bind.annotation.XmlSchema(namespace = "http://ebean-orm.github.io/xml/ns/autotune", elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED)
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://ebean-orm.github.io/xml/ns/autotune", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
 package io.ebeaninternal.server.autotune.model;
diff --git a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/AutoTuneXmlReader.java b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/AutoTuneXmlReader.java
index 42c93c7d7..3b0dd797f 100644
--- a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/AutoTuneXmlReader.java
+++ b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/AutoTuneXmlReader.java
@@ -3,9 +3,9 @@ package io.ebeaninternal.server.autotune.service;
 
 import io.ebeaninternal.server.autotune.model.Autotune;
 
-import jakarta.xml.bind.JAXBContext;
-import jakarta.xml.bind.JAXBException;
-import jakarta.xml.bind.Unmarshaller;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
diff --git a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/AutoTuneXmlWriter.java b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/AutoTuneXmlWriter.java
index 9899ef77d..3a9fd859e 100644
--- a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/AutoTuneXmlWriter.java
+++ b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/AutoTuneXmlWriter.java
@@ -3,9 +3,9 @@ package io.ebeaninternal.server.autotune.service;
 
 import io.ebeaninternal.server.autotune.model.Autotune;
 
-import jakarta.xml.bind.JAXBContext;
-import jakarta.xml.bind.JAXBException;
-import jakarta.xml.bind.Marshaller;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
 import java.io.File;
 import java.text.SimpleDateFormat;
 import java.util.Date;
diff --git a/ebean-autotune/src/main/java/module-info.java b/ebean-autotune/src/main/java/module-info.java
index e53081272..6cb7d3a54 100644
--- a/ebean-autotune/src/main/java/module-info.java
+++ b/ebean-autotune/src/main/java/module-info.java
@@ -10,5 +10,6 @@ module io.ebean.autotune {
 
   requires io.ebean.api;
   requires io.ebean.core;
-  requires jakarta.xml.bind;
+  requires java.xml;
+  requires java.xml.bind;
 }
diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml
index 93d5108e7..ee7c5167a 100644
--- a/ebean-ddl-generator/pom.xml
+++ b/ebean-ddl-generator/pom.xml
@@ -39,16 +39,12 @@
       provided
     
 
+    
     
-      jakarta.xml.bind
-      jakarta.xml.bind-api
-      4.0.0
-    
-    
-      com.sun.xml.bind
-      jaxb-impl
-      4.0.0
-      runtime
+      org.glassfish.jaxb
+      jaxb-runtime
+      2.3.6
+      provided
     
 
     
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/Detect.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/Detect.java
index f7d326c13..8a002f513 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/Detect.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/Detect.java
@@ -11,6 +11,6 @@ public class Detect {
    * Return true if JAXB is present.
    */
   public static boolean isJAXBPresent(DatabaseConfig config) {
-    return config.getClassLoadConfig().isPresent("jakarta.xml.bind.JAXBException");
+    return config.getClassLoadConfig().isPresent("javax.xml.bind.JAXBException");
   }
 }
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AddColumn.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AddColumn.java
index fdf57a999..2586acf89 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AddColumn.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AddColumn.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AddHistoryTable.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AddHistoryTable.java
index b4d12ede5..e8e6b9420 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AddHistoryTable.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AddHistoryTable.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AddTableComment.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AddTableComment.java
index 20326eb5b..630ccbce9 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AddTableComment.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AddTableComment.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AddUniqueConstraint.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AddUniqueConstraint.java
index 578fbf172..a53b6cb65 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AddUniqueConstraint.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AddUniqueConstraint.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AlterColumn.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AlterColumn.java
index 256ed1d64..7082c03e2 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AlterColumn.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AlterColumn.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AlterForeignKey.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AlterForeignKey.java
index 9a394b531..95996d71c 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AlterForeignKey.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AlterForeignKey.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AlterHistoryTable.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AlterHistoryTable.java
index 7f38df0fa..0f6d43dc0 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AlterHistoryTable.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AlterHistoryTable.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AlterTable.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AlterTable.java
index 895b51c29..fc37c8e63 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AlterTable.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/AlterTable.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 import java.math.BigInteger;
 
 
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Application.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Application.java
index 7240b5223..424c48a16 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Application.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Application.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Applications.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Applications.java
index 62b185d73..ae24ce457 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Applications.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Applications.java
@@ -1,9 +1,9 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Apply.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Apply.java
index 2bcafcae5..a469e331a 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Apply.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Apply.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/ChangeSet.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/ChangeSet.java
index 2526468b1..edc22f380 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/ChangeSet.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/ChangeSet.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/ChangeSetType.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/ChangeSetType.java
index cdad503a7..8f15e8496 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/ChangeSetType.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/ChangeSetType.java
@@ -1,8 +1,8 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.XmlEnum;
-import jakarta.xml.bind.annotation.XmlEnumValue;
-import jakarta.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Column.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Column.java
index aa9e7f814..995c01fb9 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Column.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Column.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Configuration.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Configuration.java
index d065a09ab..62c0deb46 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Configuration.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Configuration.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/CreateIndex.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/CreateIndex.java
index 0380942a6..f0ec659d7 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/CreateIndex.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/CreateIndex.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/CreateSchema.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/CreateSchema.java
index a1bb5a44b..cc45c3b44 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/CreateSchema.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/CreateSchema.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/CreateTable.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/CreateTable.java
index 13187d594..4c303d97d 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/CreateTable.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/CreateTable.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.List;
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DdlScript.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DdlScript.java
index 758a0f28c..e85add7c2 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DdlScript.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DdlScript.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DefaultTablespace.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DefaultTablespace.java
index 36bb0f2b3..25b63ad80 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DefaultTablespace.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DefaultTablespace.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DropColumn.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DropColumn.java
index 473560549..7c9906d83 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DropColumn.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DropColumn.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DropHistoryTable.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DropHistoryTable.java
index 1ccdcaf8a..65b15e979 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DropHistoryTable.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DropHistoryTable.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DropIndex.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DropIndex.java
index e37065ad6..1104b31d1 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DropIndex.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DropIndex.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DropTable.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DropTable.java
index 48a241819..640c53ed1 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DropTable.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/DropTable.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/ForeignKey.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/ForeignKey.java
index 05bcbcd55..7673fa881 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/ForeignKey.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/ForeignKey.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/IdentityType.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/IdentityType.java
index be5b2aa25..50eba9dad 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/IdentityType.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/IdentityType.java
@@ -1,8 +1,8 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.XmlEnum;
-import jakarta.xml.bind.annotation.XmlEnumValue;
-import jakarta.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Migration.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Migration.java
index 9b455358e..78bc2ef99 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Migration.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Migration.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/ObjectFactory.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/ObjectFactory.java
index 0266a5a50..85e04f4a7 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/ObjectFactory.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/ObjectFactory.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.XmlRegistry;
+import javax.xml.bind.annotation.XmlRegistry;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/RenameColumn.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/RenameColumn.java
index 052b72be1..4535c5eec 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/RenameColumn.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/RenameColumn.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/RenameTable.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/RenameTable.java
index 423e00618..6e45cbba8 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/RenameTable.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/RenameTable.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Rollback.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Rollback.java
index bb0cf2838..893356679 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Rollback.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Rollback.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Sql.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Sql.java
index 8702ec7fe..954ac5a02 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Sql.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/Sql.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/UniqueConstraint.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/UniqueConstraint.java
index 08bd1ed7d..47b22f02e 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/UniqueConstraint.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/UniqueConstraint.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.dbmigration.migration;
 
-import jakarta.xml.bind.annotation.*;
+import javax.xml.bind.annotation.*;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/package-info.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/package-info.java
index 8f7b350c2..f52bba831 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/package-info.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migration/package-info.java
@@ -1,2 +1,2 @@
-@jakarta.xml.bind.annotation.XmlSchema(namespace = "http://ebean-orm.github.io/xml/ns/dbmigration", elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED)
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://ebean-orm.github.io/xml/ns/dbmigration", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
 package io.ebeaninternal.dbmigration.migration;
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlReader.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlReader.java
index bac25a508..e93260ba9 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlReader.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlReader.java
@@ -3,9 +3,9 @@ package io.ebeaninternal.dbmigration.migrationreader;
 
 import io.ebeaninternal.dbmigration.migration.Migration;
 
-import jakarta.xml.bind.JAXBContext;
-import jakarta.xml.bind.JAXBException;
-import jakarta.xml.bind.Unmarshaller;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlWriter.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlWriter.java
index 12c50e9cf..c887fc2b0 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlWriter.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/migrationreader/MigrationXmlWriter.java
@@ -4,9 +4,9 @@ package io.ebeaninternal.dbmigration.migrationreader;
 import io.ebean.util.IOUtils;
 import io.ebeaninternal.dbmigration.migration.Migration;
 
-import jakarta.xml.bind.JAXBContext;
-import jakarta.xml.bind.JAXBException;
-import jakarta.xml.bind.Marshaller;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
 import java.io.File;
 import java.io.IOException;
 import java.io.Writer;
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/DdlScript.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/DdlScript.java
index 7fbcbd2d6..53819461f 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/DdlScript.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/DdlScript.java
@@ -1,11 +1,11 @@
 package io.ebeaninternal.extraddl.model;
 
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlAttribute;
-import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlType;
-import jakarta.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdl.java
index bdd2f45c2..2255ee88d 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdl.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdl.java
@@ -1,10 +1,10 @@
 package io.ebeaninternal.extraddl.model;
 
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlElement;
-import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java
index f1b1ed262..eac6284d5 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java
@@ -4,9 +4,9 @@ import io.ebean.annotation.Platform;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import jakarta.xml.bind.JAXBContext;
-import jakarta.xml.bind.JAXBException;
-import jakarta.xml.bind.Unmarshaller;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
 import java.io.IOException;
 import java.io.InputStream;
 
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ObjectFactory.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ObjectFactory.java
index 320fced06..20cf3cd46 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ObjectFactory.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ObjectFactory.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.extraddl.model;
 
-import jakarta.xml.bind.annotation.XmlRegistry;
+import javax.xml.bind.annotation.XmlRegistry;
 
 
 /**
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/package-info.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/package-info.java
index b4f69f462..c8e18d1dc 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/package-info.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/package-info.java
@@ -1,2 +1,2 @@
-@jakarta.xml.bind.annotation.XmlSchema(namespace = "http://ebean-orm.github.io/xml/ns/extraddl", elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED)
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://ebean-orm.github.io/xml/ns/extraddl", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
 package io.ebeaninternal.extraddl.model;
diff --git a/ebean-ddl-generator/src/main/java/module-info.java b/ebean-ddl-generator/src/main/java/module-info.java
index d3a8affe5..1a7ef332e 100644
--- a/ebean-ddl-generator/src/main/java/module-info.java
+++ b/ebean-ddl-generator/src/main/java/module-info.java
@@ -7,7 +7,7 @@ module io.ebean.ddl.generator {
 
   requires transitive io.ebean.ddl.runner;
   requires transitive io.ebean.core;
-  requires transitive jakarta.xml.bind;
+  requires transitive java.xml.bind;
   requires io.ebean.core.type;
   requires io.ebean.migration;
 
diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml
index 187c78c46..1dbde4ab0 100644
--- a/ebean-externalmapping-xml/pom.xml
+++ b/ebean-externalmapping-xml/pom.xml
@@ -32,15 +32,16 @@
     
 
     
-      jakarta.xml.bind
-      jakarta.xml.bind-api
-      4.0.0
+      org.glassfish.jaxb
+      jaxb-runtime
+      2.3.6
     
+
     
-      com.sun.xml.bind
-      jaxb-impl
-      4.0.0
-      runtime
+      jakarta.activation
+      jakarta.activation-api
+      1.2.1
+      provided
     
 
     
diff --git a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/XmlMappingReader.java b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/XmlMappingReader.java
index bb0ca2e5b..8b28975ef 100644
--- a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/XmlMappingReader.java
+++ b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/XmlMappingReader.java
@@ -3,9 +3,9 @@ package io.ebeaninternal.xmlmapping;
 import io.avaje.classpath.scanner.Resource;
 import io.ebeaninternal.xmlmapping.model.XmEbean;
 
-import jakarta.xml.bind.JAXBContext;
-import jakarta.xml.bind.JAXBException;
-import jakarta.xml.bind.Unmarshaller;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
diff --git a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/ObjectFactory.java b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/ObjectFactory.java
index b4933a796..7d10dde8d 100644
--- a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/ObjectFactory.java
+++ b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/ObjectFactory.java
@@ -1,6 +1,6 @@
 package io.ebeaninternal.xmlmapping.model;
 
-import jakarta.xml.bind.annotation.XmlRegistry;
+import javax.xml.bind.annotation.XmlRegistry;
 
 
 /**
diff --git a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmAliasMapping.java b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmAliasMapping.java
index 3b1bc00ab..82f4da7d6 100644
--- a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmAliasMapping.java
+++ b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmAliasMapping.java
@@ -1,10 +1,10 @@
 package io.ebeaninternal.xmlmapping.model;
 
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlAttribute;
-import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
 
 
 /**
diff --git a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmColumnMapping.java b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmColumnMapping.java
index a3e561ef8..a992971cb 100644
--- a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmColumnMapping.java
+++ b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmColumnMapping.java
@@ -1,10 +1,10 @@
 package io.ebeaninternal.xmlmapping.model;
 
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlAttribute;
-import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
 
 
 /**
diff --git a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmDto.java b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmDto.java
index 35f6403a8..57e431322 100644
--- a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmDto.java
+++ b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmDto.java
@@ -1,11 +1,11 @@
 package io.ebeaninternal.xmlmapping.model;
 
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlAttribute;
-import jakarta.xml.bind.annotation.XmlElement;
-import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmEbean.java b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmEbean.java
index 448ab9928..35ba42d58 100644
--- a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmEbean.java
+++ b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmEbean.java
@@ -1,10 +1,10 @@
 package io.ebeaninternal.xmlmapping.model;
 
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlElement;
-import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmEntity.java b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmEntity.java
index a6d390543..daf352993 100644
--- a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmEntity.java
+++ b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmEntity.java
@@ -1,11 +1,11 @@
 package io.ebeaninternal.xmlmapping.model;
 
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlAttribute;
-import jakarta.xml.bind.annotation.XmlElement;
-import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmNamedQuery.java b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmNamedQuery.java
index 9026c941b..644075c7b 100644
--- a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmNamedQuery.java
+++ b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmNamedQuery.java
@@ -1,11 +1,11 @@
 package io.ebeaninternal.xmlmapping.model;
 
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlAttribute;
-import jakarta.xml.bind.annotation.XmlElement;
-import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
 
 
 /**
diff --git a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmQuery.java b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmQuery.java
index 449674ddf..236cd3817 100644
--- a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmQuery.java
+++ b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmQuery.java
@@ -1,10 +1,10 @@
 package io.ebeaninternal.xmlmapping.model;
 
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlType;
-import jakarta.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
 
 
 /**
diff --git a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmRawSql.java b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmRawSql.java
index cbf078fde..52455aa49 100644
--- a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmRawSql.java
+++ b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/XmRawSql.java
@@ -1,11 +1,11 @@
 package io.ebeaninternal.xmlmapping.model;
 
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlAttribute;
-import jakarta.xml.bind.annotation.XmlElement;
-import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/package-info.java b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/package-info.java
index 74608576d..1822923b4 100644
--- a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/package-info.java
+++ b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/model/package-info.java
@@ -1,2 +1,2 @@
-@jakarta.xml.bind.annotation.XmlSchema(namespace = "http://ebean-orm.github.io/xml/ns/ebean", elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED)
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://ebean-orm.github.io/xml/ns/ebean", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
 package io.ebeaninternal.xmlmapping.model;
diff --git a/ebean-externalmapping-xml/src/main/java/module-info.java b/ebean-externalmapping-xml/src/main/java/module-info.java
index 6283e637b..de792b2df 100644
--- a/ebean-externalmapping-xml/src/main/java/module-info.java
+++ b/ebean-externalmapping-xml/src/main/java/module-info.java
@@ -10,7 +10,8 @@ module io.ebean.xmapping.xml {
   provides XmapService with JaxbXmapService;
 
   requires transitive io.ebean.xmapping.api;
-  requires transitive jakarta.xml.bind;
+  requires transitive java.xml;
+  requires transitive java.xml.bind;
   requires io.avaje.classpath.scanner.api;
   requires io.avaje.classpath.scanner;
   requires static org.slf4j;
diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml
index 22e23e283..896e33ffb 100644
--- a/ebean-test/pom.xml
+++ b/ebean-test/pom.xml
@@ -73,15 +73,17 @@
 
     
     
-      jakarta.xml.bind
-      jakarta.xml.bind-api
-      4.0.0
+      org.glassfish.jaxb
+      jaxb-runtime
+      2.3.6
     
+
+    
     
-      com.sun.xml.bind
-      jaxb-impl
-      4.0.0
-      runtime
+      jakarta.activation
+      jakarta.activation-api
+      1.2.1
+      provided
     
 
     
diff --git a/ebean-test/src/main/java/module-info.java b/ebean-test/src/main/java/module-info.java
index d34ce12bd..a23d1e65b 100644
--- a/ebean-test/src/main/java/module-info.java
+++ b/ebean-test/src/main/java/module-info.java
@@ -20,7 +20,7 @@ module io.ebean.test {
 
   requires transitive io.ebean.test.containers;
   requires transitive org.assertj.core;
-  requires transitive jakarta.xml.bind;
+  requires transitive java.xml.bind;
   requires transitive com.h2database;
 
   // support testing

From 595c0579644f3e465e2a86a8644777657a195a57 Mon Sep 17 00:00:00 2001
From: Rob Bygrave 
Date: Tue, 16 Aug 2022 17:03:07 +1200
Subject: [PATCH 007/127] #2784 - Fix @Return javadoc for
 TQRootBean.findSingleAttribute()

---
 .../src/main/java/io/ebean/typequery/TQRootBean.java            | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ebean-querybean/src/main/java/io/ebean/typequery/TQRootBean.java b/ebean-querybean/src/main/java/io/ebean/typequery/TQRootBean.java
index a7b24a85b..ef3565711 100644
--- a/ebean-querybean/src/main/java/io/ebean/typequery/TQRootBean.java
+++ b/ebean-querybean/src/main/java/io/ebean/typequery/TQRootBean.java
@@ -1779,7 +1779,7 @@ public abstract class TQRootBean {
    *
    * }
* - * @return the list of values for the selected property + * @return a single value or null for the selected property */ @Nullable public A findSingleAttribute() { From 50d45c6da927d24d1f86f2e2602e5e688c8ebd40 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 17 Aug 2022 15:21:16 +1200 Subject: [PATCH 008/127] Just use String.intern() now that we are on min Java 11 runtime. --- .../server/core/InternString.java | 26 +------------------ 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/InternString.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/InternString.java index 8a06fc4d4..dadfdb368 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/InternString.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/InternString.java @@ -1,38 +1,14 @@ package io.ebeaninternal.server.core; -import java.util.HashMap; -import java.util.concurrent.locks.ReentrantLock; - /** * Used to reduce memory consumption of strings used in deployment processing. - *

- * Using this for now instead of String.intern() to avoid any unexpected - * increase in PermGen space. */ public final class InternString { - private static final HashMap map = new HashMap<>(); - - private static final ReentrantLock lock = new ReentrantLock(); - /** * Return the shared instance of this string. */ public static String intern(String s) { - if (s == null) { - return null; - } - lock.lock(); - try { - String v = map.get(s); - if (v != null) { - return v; - } else { - map.put(s, s); - return s; - } - } finally { - lock.unlock(); - } + return s == null ? null : s.intern(); } } From 507027df0ae048b1cee2a41fb3795e3187b12385 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 17 Aug 2022 16:17:26 +1200 Subject: [PATCH 009/127] #2782 #2783 - Forward only fetchSize() for MySql and MariaDB is Integer.MIN_VALUE and 1 respectively --- .../server/core/OrmQueryEngine.java | 2 ++ .../server/core/OrmQueryRequest.java | 4 +++ .../io/ebeaninternal/server/query/CQuery.java | 2 +- .../server/query/CQueryEngine.java | 12 +++---- .../server/query/DefaultOrmQueryEngine.java | 32 ++++--------------- 5 files changed, 20 insertions(+), 32 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryEngine.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryEngine.java index d3ca32b6d..d29beebe0 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryEngine.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryEngine.java @@ -73,4 +73,6 @@ public interface OrmQueryEngine { * Return true if multi-value bind is supported for this type (and current platform). */ boolean isMultiValueSupported(Class valueType); + + int forwardOnlyFetchSize(); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java index 423d6687b..6388de507 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java @@ -761,4 +761,8 @@ public final class OrmQueryRequest extends BeanRequest implements SpiOrmQuery public boolean isInlineSqlUpdateLimit() { return query.getMaxRows() < 1 || server.databasePlatform().isInlineSqlUpdateLimit(); } + + public int forwardOnlyFetchSize() { + return queryEngine.forwardOnlyFetchSize(); + } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java index f8fd3144f..22b440e42 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java @@ -314,7 +314,7 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi if (forwardOnlyHint) { // Use forward only hints for large resultSet processing (Issue 56, MySql specific) pstmt = conn.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); - pstmt.setFetchSize(1); + pstmt.setFetchSize(request.forwardOnlyFetchSize()); } else { pstmt = conn.prepareStatement(sql); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java index 26d728c36..df78f11e7 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java @@ -3,6 +3,7 @@ package io.ebeaninternal.server.query; import io.ebean.QueryIterator; import io.ebean.ValuePair; import io.ebean.Version; +import io.ebean.annotation.Platform; import io.ebean.bean.BeanCollection; import io.ebean.bean.EntityBean; import io.ebean.bean.ObjectGraphNode; @@ -32,19 +33,13 @@ import java.util.*; public final class CQueryEngine { private static final Logger log = CoreLog.log; - private static final String T0 = "t0"; private final int defaultFetchSizeFindList; - private final int defaultFetchSizeFindEach; - private final boolean forwardOnlyHintOnFindIterate; - private final CQueryBuilder queryBuilder; - private final CQueryHistorySupport historySupport; - private final DatabasePlatform dbPlatform; public CQueryEngine(DatabaseConfig config, DatabasePlatform dbPlatform, Binder binder, Map asOfTableMapping, Map draftTableMap) { @@ -56,6 +51,11 @@ public final class CQueryEngine { this.queryBuilder = new CQueryBuilder(dbPlatform, binder, historySupport, new CQueryDraftSupport(draftTableMap)); } + public int forwardOnlyFetchSize() { + Platform base = dbPlatform.getPlatform().base(); + return Platform.MYSQL == base ? Integer.MIN_VALUE : 1; + } + public CQuery buildQuery(OrmQueryRequest request) { return queryBuilder.buildQuery(request); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultOrmQueryEngine.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultOrmQueryEngine.java index 95c5dbe7e..98a2ca471 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultOrmQueryEngine.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultOrmQueryEngine.java @@ -17,25 +17,19 @@ import javax.persistence.PersistenceException; import java.sql.SQLException; import java.util.Collection; import java.util.List; -import java.util.Set; -/** - * Main Finder implementation. - */ public final class DefaultOrmQueryEngine implements OrmQueryEngine { - /** - * Find using predicates - */ private final CQueryEngine queryEngine; - private final Binder binder; + private final int forwardOnlyFetchSize; /** * Create the Finder. */ public DefaultOrmQueryEngine(CQueryEngine queryEngine, Binder binder) { this.queryEngine = queryEngine; + this.forwardOnlyFetchSize = queryEngine.forwardOnlyFetchSize(); this.binder = binder; } @@ -44,6 +38,11 @@ public final class DefaultOrmQueryEngine implements OrmQueryEngine { return queryEngine.translate(request, bindLog, sql, e); } + @Override + public int forwardOnlyFetchSize() { + return forwardOnlyFetchSize; + } + @Override public boolean isMultiValueSupported(Class cls) { return binder.isMultiValueSupported(cls); @@ -53,7 +52,6 @@ public final class DefaultOrmQueryEngine implements OrmQueryEngine { * Flushes the jdbc batch by default unless explicitly turned off on the transaction. */ private void flushJdbcBatchOnQuery(OrmQueryRequest request) { - SpiTransaction t = request.transaction(); if (t.isFlushOnQuery()) { // before we perform a query, we need to flush any @@ -65,14 +63,12 @@ public final class DefaultOrmQueryEngine implements OrmQueryEngine { @Override public int delete(OrmQueryRequest request) { - flushJdbcBatchOnQuery(request); return queryEngine.delete(request); } @Override public int update(OrmQueryRequest request) { - flushJdbcBatchOnQuery(request); return queryEngine.update(request); } @@ -85,14 +81,12 @@ public final class DefaultOrmQueryEngine implements OrmQueryEngine { @Override public int findCount(OrmQueryRequest request) { - flushJdbcBatchOnQuery(request); return queryEngine.findCount(request); } @Override public List findIds(OrmQueryRequest request) { - flushJdbcBatchOnQuery(request); return queryEngine.findIds(request); } @@ -112,16 +106,13 @@ public final class DefaultOrmQueryEngine implements OrmQueryEngine { @Override public List> findVersions(OrmQueryRequest request) { - flushJdbcBatchOnQuery(request); return queryEngine.findVersions(request); } @Override public BeanCollection findMany(OrmQueryRequest request) { - flushJdbcBatchOnQuery(request); - BeanFindController finder = request.finder(); BeanCollection result; @@ -131,13 +122,11 @@ public final class DefaultOrmQueryEngine implements OrmQueryEngine { } else { result = queryEngine.findMany(request); } - if (finder != null) { result = finder.postProcessMany(request, result); } SpiQuery query = request.query(); - if (result != null && request.isBeanCachePutMany()) { // load the individual beans into the bean cache BeanDescriptor descriptor = request.descriptor(); @@ -146,7 +135,6 @@ public final class DefaultOrmQueryEngine implements OrmQueryEngine { } request.mergeCacheHits(result); - if (request.isQueryCachePut()) { // load the query result into the query cache result.setReadOnly(true); @@ -155,7 +143,6 @@ public final class DefaultOrmQueryEngine implements OrmQueryEngine { result = result.getShallowCopy(); } } - return result; } @@ -164,9 +151,7 @@ public final class DefaultOrmQueryEngine implements OrmQueryEngine { */ @Override public T findId(OrmQueryRequest request) { - flushJdbcBatchOnQuery(request); - BeanFindController finder = request.finder(); T result; @@ -175,15 +160,12 @@ public final class DefaultOrmQueryEngine implements OrmQueryEngine { } else { result = queryEngine.find(request); } - if (finder != null) { result = finder.postProcess(request, result); } - if (result != null && request.isBeanCachePut()) { request.descriptor().cacheBeanPut((EntityBean) result); } - return result; } From 51d2f52d1991e71657016e47f3eeab12aac8dac9 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 17 Aug 2022 17:25:28 +1200 Subject: [PATCH 010/127] #2782 - Support MariaDB jdbc driver update - Batched JDBC SQLException translation, SqlRow BLOB reading - Batched JDBC SQLException translation - Need to dig into nested exception to get cause error state - SqlRow BLOB reading - BLOB can come as LONGVARBINARY (TestRawSqlBuilder) - Fix test for history using system time (TestHistoryInsert) - Fix SqlQueryCancelTest - Fix TestSqlUpdateExceptions --- .../config/dbplatform/SqlCodeTranslator.java | 7 ++++++- .../server/rawsql/DRawSqlService.java | 1 + .../server/rawsql/TestRawSqlBuilder.java | 2 +- ebean-test/src/test/java/main/StartMariaDb.java | 5 +++-- .../org/tests/history/TestHistoryInsert.java | 16 ++++++++++------ .../tests/query/cancel/SqlQueryCancelTest.java | 10 +++------- .../tests/update/TestSqlUpdateExceptions.java | 6 +++--- ebean-test/src/test/resources/ebean.properties | 2 +- 8 files changed, 28 insertions(+), 21 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/SqlCodeTranslator.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/SqlCodeTranslator.java index 8f7adc846..49fb32682 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/SqlCodeTranslator.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/SqlCodeTranslator.java @@ -32,7 +32,12 @@ public class SqlCodeTranslator implements SqlExceptionTranslator { } private DataErrorType getErrorType(SQLException e) { - DataErrorType errorType = map.get(e.getSQLState()); + String sqlState = e.getSQLState(); + while (sqlState == null && e.getCause() instanceof SQLException) { + e = (SQLException)e.getCause(); + sqlState = e.getSQLState(); + } + DataErrorType errorType = map.get(sqlState); if (errorType == null) { // fall back to error code errorType = map.get(String.valueOf(e.getErrorCode())); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlService.java b/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlService.java index 8ffef8a33..3f8a2c2bc 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlService.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlService.java @@ -58,6 +58,7 @@ public final class DRawSqlService implements SpiRawSqlService { ret.put(name, resultSet.getString(i)); break; + case Types.LONGVARBINARY: case Types.BLOB: ret.put(name, resultSet.getBytes(i)); break; diff --git a/ebean-test/src/test/java/io/ebean/xtest/internal/server/rawsql/TestRawSqlBuilder.java b/ebean-test/src/test/java/io/ebean/xtest/internal/server/rawsql/TestRawSqlBuilder.java index 816ada0c8..56d0a3347 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/internal/server/rawsql/TestRawSqlBuilder.java +++ b/ebean-test/src/test/java/io/ebean/xtest/internal/server/rawsql/TestRawSqlBuilder.java @@ -298,7 +298,7 @@ public class TestRawSqlBuilder extends BaseTestCase { } @Test - public void testBLobClosedConnection() throws Exception { + void testBLobClosedConnection() throws Exception { final PersistentFileContent pfc = new PersistentFileContent(); final byte[] bytes = "This is the blob as String".getBytes(StandardCharsets.UTF_8); pfc.setContent(bytes); diff --git a/ebean-test/src/test/java/main/StartMariaDb.java b/ebean-test/src/test/java/main/StartMariaDb.java index 81b026828..671f13be5 100644 --- a/ebean-test/src/test/java/main/StartMariaDb.java +++ b/ebean-test/src/test/java/main/StartMariaDb.java @@ -5,11 +5,12 @@ import io.ebean.test.containers.MariaDBContainer; public class StartMariaDb { public static void main(String[] args) { - MariaDBContainer.builder("10.5") + MariaDBContainer.builder("10.6") .dbName("unit") .user("unit") .password("unit") + .port(5306) .build() - .startWithDropCreate(); + .start(); } } diff --git a/ebean-test/src/test/java/org/tests/history/TestHistoryInsert.java b/ebean-test/src/test/java/org/tests/history/TestHistoryInsert.java index 2d0cf3b62..9234a0d2a 100644 --- a/ebean-test/src/test/java/org/tests/history/TestHistoryInsert.java +++ b/ebean-test/src/test/java/org/tests/history/TestHistoryInsert.java @@ -15,19 +15,23 @@ import java.util.List; import static org.assertj.core.api.Assertions.assertThat; -public class TestHistoryInsert extends BaseTestCase { +class TestHistoryInsert extends BaseTestCase { private final Logger logger = LoggerFactory.getLogger(TestHistoryInsert.class); + private Timestamp currentDbSystemTime() { + return DB.sqlQuery("select current_timestamp(6)").mapToScalar(Timestamp.class).findOne(); + } + /** * Looks like we MUST use useLegacyDatetimeCode=false ... in order for * the correct server timezone to be honored by the MariaDB JDBC driver. */ @Test @ForPlatform({Platform.MARIADB}) - public void mariadb_simple_history() { + void mariadb_simple_history() { - Timestamp t0 = new Timestamp(System.currentTimeMillis()); + Timestamp t0 = currentDbSystemTime(); littleSleep(50); User user = new User(); @@ -35,19 +39,19 @@ public class TestHistoryInsert extends BaseTestCase { user.setEmail("one@email.com"); user.setPasswordHash("someHash"); DB.save(user); - Timestamp t1 = new Timestamp(System.currentTimeMillis()); + Timestamp t1 = currentDbSystemTime(); littleSleep(100); user.setName("NotJim"); user.save(); - Timestamp t2 = new Timestamp(System.currentTimeMillis()); + Timestamp t2 = currentDbSystemTime(); littleSleep(100); user.setName("NotJimV2"); user.setEmail("two@email.com"); user.save(); littleSleep(50); - Timestamp t3 = new Timestamp(System.currentTimeMillis()); + Timestamp t3 = currentDbSystemTime(); List> versions = DB.find(User.class).setId(user.getId()).findVersionsBetween(t0, t3); assertThat(versions).hasSize(3); diff --git a/ebean-test/src/test/java/org/tests/query/cancel/SqlQueryCancelTest.java b/ebean-test/src/test/java/org/tests/query/cancel/SqlQueryCancelTest.java index 5bdc8b186..31260a3a6 100644 --- a/ebean-test/src/test/java/org/tests/query/cancel/SqlQueryCancelTest.java +++ b/ebean-test/src/test/java/org/tests/query/cancel/SqlQueryCancelTest.java @@ -59,7 +59,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; * * @author Roland Praml, FOCONIS AG */ -public class SqlQueryCancelTest extends BaseTestCase { +class SqlQueryCancelTest extends BaseTestCase { private final int timing = 20; @@ -191,17 +191,13 @@ public class SqlQueryCancelTest extends BaseTestCase { } @Test - public void cancelOrmDtoDuringIterate() { + void cancelOrmDtoDuringIterate() { DtoQuery query = DB.find(EBasic.class).select("id,status").asDto(EBasicDto.class); QueryIterator iter = query.findIterate(); assertThat(iter.hasNext()).isTrue(); query.cancel(); - if (isMariaDB()) { - assertThrows(PersistenceException.class, iter::next); - } else { - assertThat(iter.next()).isNotNull(); - } + assertThat(iter.next()).isNotNull(); // We might have 100 entities in a buffer. So we must iterate through all. assertThatThrownBy(() -> { diff --git a/ebean-test/src/test/java/org/tests/update/TestSqlUpdateExceptions.java b/ebean-test/src/test/java/org/tests/update/TestSqlUpdateExceptions.java index 333380318..244f1af33 100644 --- a/ebean-test/src/test/java/org/tests/update/TestSqlUpdateExceptions.java +++ b/ebean-test/src/test/java/org/tests/update/TestSqlUpdateExceptions.java @@ -9,7 +9,7 @@ import java.util.UUID; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; -public class TestSqlUpdateExceptions extends BaseTestCase { +class TestSqlUpdateExceptions extends BaseTestCase { private String sql = "insert into uuone (id, name, version) values (?,?,?)"; @@ -63,7 +63,7 @@ public class TestSqlUpdateExceptions extends BaseTestCase { } @Test - public void duplicateKey_inBatch() { + void duplicateKey_inBatch() { UUID id = UUID.randomUUID(); assertThrows(DuplicateKeyException.class, () -> { try (Transaction transaction = DB.beginTransaction()) { @@ -85,7 +85,7 @@ public class TestSqlUpdateExceptions extends BaseTestCase { } @Test - public void duplicateKey_executeBatch() { + void duplicateKey_executeBatch() { UUID id = UUID.randomUUID(); assertThrows(DuplicateKeyException.class, () -> { try (Transaction transaction = DB.beginTransaction()) { diff --git a/ebean-test/src/test/resources/ebean.properties b/ebean-test/src/test/resources/ebean.properties index 91c0d0c29..9dec823ee 100644 --- a/ebean-test/src/test/resources/ebean.properties +++ b/ebean-test/src/test/resources/ebean.properties @@ -138,7 +138,7 @@ datasource.mysql.url=jdbc:mysql://127.0.0.1:4306/unit datasource.mariadb.username=unit datasource.mariadb.password=unit -datasource.mariadb.url=jdbc:mariadb://localhost:4306/unit?useLegacyDatetimeCode=false +datasource.mariadb.url=jdbc:mariadb://localhost:5306/unit?useLegacyDatetimeCode=false datasource.cockroach.username=root datasource.cockroach.password= From 6c15115530153601e2fea237d6fbf380964cac15 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 17 Aug 2022 17:42:39 +1200 Subject: [PATCH 011/127] #2786 - Support logging Ebean version unknown We don't really care if we can't determine the version so only log when we can read it. --- ebean-api/src/main/java/io/ebean/EbeanVersion.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ebean-api/src/main/java/io/ebean/EbeanVersion.java b/ebean-api/src/main/java/io/ebean/EbeanVersion.java index ec976a74e..c47a546c0 100644 --- a/ebean-api/src/main/java/io/ebean/EbeanVersion.java +++ b/ebean-api/src/main/java/io/ebean/EbeanVersion.java @@ -32,10 +32,10 @@ public final class EbeanVersion { if (in != null) { try (LineNumberReader reader = new LineNumberReader(new InputStreamReader(in))) { version = reader.readLine(); + log.info("ebean version: {}", version); } } } - log.info("ebean version: {}", version); } catch (IOException e) { log.warn("Could not determine ebean version: {}", e.getMessage()); } From dc730fd97b22d70d8e30e34a66728314b8ea93db Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 18 Aug 2022 08:23:52 +1200 Subject: [PATCH 012/127] #2788 - Support mapping @DbArray List to Postgres float4[] --- .../server/type/ArrayElementConverter.java | 40 +++++++++---------- .../server/type/ScalarTypeArrayList.java | 3 ++ .../server/type/ScalarTypeArrayListH2.java | 3 ++ .../org/tests/model/array/EArrayBean.java | 21 ++++++++++ .../tests/model/array/TestDbArray_basic.java | 10 +++-- 5 files changed, 53 insertions(+), 24 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ArrayElementConverter.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ArrayElementConverter.java index 9982124af..5617e752c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ArrayElementConverter.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ArrayElementConverter.java @@ -17,7 +17,7 @@ interface ArrayElementConverter { T fromSerialized(Object rawValue); /** - * Convert the array element from it's DB array form. + * Convert the array element from its DB array form. */ T fromDbArray(Object rawValue); @@ -25,31 +25,12 @@ interface ArrayElementConverter { return objects; } - /** - * The UUID converter implementation. - */ ArrayElementConverter UUID = new UuidConverter(); - - /** - * The String converter implementation. - */ ArrayElementConverter STRING = new StringConverter(); - - /** - * The Long converter implementation. - */ ArrayElementConverter LONG = new LongConverter(); - - /** - * The Integer converter implementation. - */ ArrayElementConverter INTEGER = new IntegerConverter(); - - /** - * The Double converter implementation. - */ ArrayElementConverter DOUBLE = new DoubleConverter(); - + ArrayElementConverter FLOAT = new FloatConverter(); ArrayElementConverter BIG_DECIMAL = new BigDecimalConverter(); class LongConverter implements ArrayElementConverter { @@ -86,6 +67,23 @@ interface ArrayElementConverter { } } + class FloatConverter implements ArrayElementConverter { + + @Override + public Float fromSerialized(Object rawValue) { + return fromDbArray(rawValue); + } + + @Override + public Float fromDbArray(Object rawValue) { + if (rawValue instanceof Float) { + return (Float) rawValue; + } else { + return ((Number) rawValue).floatValue(); + } + } + } + class DoubleConverter implements ArrayElementConverter { @Override diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayList.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayList.java index fdeef6a30..56ec0127e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayList.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayList.java @@ -57,6 +57,9 @@ class ScalarTypeArrayList extends ScalarTypeArrayBase implements ScalarTyp if (valueType.equals(Integer.class)) { return cache.computeIfAbsent(key, s -> new ScalarTypeArrayList(nullable, "integer", DocPropertyType.INTEGER, ArrayElementConverter.INTEGER)); } + if (valueType.equals(Float.class)) { + return cache.computeIfAbsent(key, s -> new ScalarTypeArrayList(nullable, "float4", DocPropertyType.DOUBLE, ArrayElementConverter.FLOAT)); + } if (valueType.equals(Double.class)) { return cache.computeIfAbsent(key, s -> new ScalarTypeArrayList(nullable, "float", DocPropertyType.DOUBLE, ArrayElementConverter.DOUBLE)); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayListH2.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayListH2.java index 6e16fb018..c0651ded8 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayListH2.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeArrayListH2.java @@ -48,6 +48,9 @@ final class ScalarTypeArrayListH2 extends ScalarTypeArrayList { if (valueType.equals(Integer.class)) { return cache.computeIfAbsent(key, s -> new ScalarTypeArrayListH2(nullable, "integer", DocPropertyType.INTEGER, ArrayElementConverter.INTEGER)); } + if (valueType.equals(Float.class)) { + return cache.computeIfAbsent(key, s -> new ScalarTypeArrayListH2(nullable, "real", DocPropertyType.DOUBLE, ArrayElementConverter.FLOAT)); + } if (valueType.equals(Double.class)) { return cache.computeIfAbsent(key, s -> new ScalarTypeArrayListH2(nullable, "float", DocPropertyType.DOUBLE, ArrayElementConverter.DOUBLE)); } diff --git a/ebean-test/src/test/java/org/tests/model/array/EArrayBean.java b/ebean-test/src/test/java/org/tests/model/array/EArrayBean.java index 6ff468209..2dcd62e76 100644 --- a/ebean-test/src/test/java/org/tests/model/array/EArrayBean.java +++ b/ebean-test/src/test/java/org/tests/model/array/EArrayBean.java @@ -41,6 +41,11 @@ public class EArrayBean { @DbArray List decimals; + @DbArray + List doubs; + @DbArray + List floats; + @DbArray List statuses; @@ -112,6 +117,22 @@ public class EArrayBean { this.decimals = decimals; } + public List getDoubs() { + return doubs; + } + + public void setDoubs(List doubs) { + this.doubs = doubs; + } + + public List getFloats() { + return floats; + } + + public void setFloats(List floats) { + this.floats = floats; + } + public List getStatuses() { return statuses; } 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 8d413c34c..2f04f31ac 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 @@ -43,6 +43,8 @@ class TestDbArray_basic extends BaseTestCase { bean.getOtherIds().add(96L); bean.getOtherIds().add(97L); bean.setDecimals(doubles); + bean.setDoubs(List.of(1.1d, 2.3d)); + bean.setFloats(List.of(1.01f, 2.02f)); bean.setStatuses(new ArrayList<>()); bean.getStatuses().add(EArrayBean.Status.ONE); bean.getStatuses().add(EArrayBean.Status.THREE); @@ -60,6 +62,8 @@ class TestDbArray_basic extends BaseTestCase { found = DB.find(EArrayBean.class, bean.getId()); assertThat(found.getPhoneNumbers()).containsExactly("4321", "9823"); + assertThat(found.getDoubs()).hasSize(2); + assertThat(found.getFloats()).hasSize(2); if (isPostgresCompatible()) { Query query = DB.find(EArrayBean.class) @@ -277,9 +281,9 @@ class TestDbArray_basic extends BaseTestCase { List phNumbers = bean.getPhoneNumbers(); phNumbers.add("4321"); phNumbers.add("9823"); - List doubs = bean.getDecimals(); - doubs.add(BigDecimal.valueOf(1.23)); - doubs.add(BigDecimal.valueOf(4.56)); + List decimals = bean.getDecimals(); + decimals.add(BigDecimal.valueOf(1.23)); + decimals.add(BigDecimal.valueOf(4.56)); DB.save(bean); // Data is saved correctly From 1bc9bab9883ed9546d06a558239fa2e234f9b843 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 18 Aug 2022 10:19:02 +1200 Subject: [PATCH 013/127] #2794 - ebean-test-containers - Handle SQLServer specific occasional fail on start --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ef7fea6dc..28013be22 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ 2.2 1.2 13.6.0 - 6.2 + 6.3 8.2 13.7.0 13.7.0 From c0a3f7e05d3e4cb61f8279ee2268e2ffc98648a3 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 18 Aug 2022 11:11:12 +1200 Subject: [PATCH 014/127] Refactor rename internal methods - io.ebeaninternal.server.query --- .../io/ebeaninternal/api/CQueryPlanKey.java | 2 +- .../server/core/DefaultServer.java | 6 +-- .../server/core/OrmQueryRequest.java | 2 +- .../deploy/AssocOneHelpRefExported.java | 4 +- .../server/deploy/AssocOneHelpRefInherit.java | 6 +-- .../server/deploy/BeanProperty.java | 4 +- .../server/deploy/BeanPropertyAssocMany.java | 2 +- .../server/deploy/BeanPropertyAssocOne.java | 2 +- .../server/deploy/DbSqlContext.java | 10 ++--- .../server/deploy/TableJoin.java | 12 +++--- .../expression/ExistsQueryExpression.java | 2 +- .../server/expression/InQueryExpression.java | 2 +- .../server/persist/DefaultPersister.java | 5 +-- .../io/ebeaninternal/server/query/CQuery.java | 4 +- .../server/query/CQueryBindCapture.java | 4 +- .../server/query/CQueryBuilder.java | 42 +++++++++---------- .../server/query/CQueryBuilderRawSql.java | 15 +++---- .../server/query/CQueryDraftSupport.java | 2 +- .../server/query/CQueryEngine.java | 32 +++++++------- .../query/CQueryFetchSingleAttribute.java | 19 +++++---- .../server/query/CQueryHistorySupport.java | 10 ++--- .../server/query/CQueryIteratorSimple.java | 2 - .../server/query/CQueryOrderBy.java | 5 --- .../server/query/CQueryPlan.java | 10 ++--- .../server/query/CQueryPlanManager.java | 2 +- .../server/query/CQueryPlanRequest.java | 6 +-- .../server/query/CQueryPlanStats.java | 2 +- .../server/query/CQueryPredicates.java | 18 ++++---- .../server/query/CQueryRowCount.java | 16 +++---- .../server/query/CQueryUpdate.java | 10 ++--- .../server/query/DefaultDbSqlContext.java | 28 ++++++------- .../server/query/DefaultFetchGroupQuery.java | 2 - .../query/DefaultRelationalQueryEngine.java | 3 -- .../ebeaninternal/server/query/ExtraJoin.java | 2 +- .../server/query/LimitOffsetPagedList.java | 6 --- .../server/query/NativeSqlQueryPlanKey.java | 4 +- .../server/query/OrderVersionDesc.java | 1 - .../server/query/QueryFutureIds.java | 4 +- .../server/query/QueryFutureList.java | 4 +- .../server/query/QueryFutureRowCount.java | 4 +- .../server/query/RawSqlQueryPlanKey.java | 4 +- .../server/query/STreePropertyAssocOne.java | 2 +- .../ebeaninternal/server/query/STreeType.java | 4 +- .../server/query/SqlJoinType.java | 2 +- .../ebeaninternal/server/query/SqlTree.java | 12 +++--- .../server/query/SqlTreeAlias.java | 6 +-- .../server/query/SqlTreeBuilder.java | 28 ++++++------- .../server/query/SqlTreeLoad.java | 2 +- .../server/query/SqlTreeLoadBean.java | 6 +-- .../server/query/SqlTreeNodeBean.java | 16 +++---- .../server/query/SqlTreeNodeExtraJoin.java | 8 ++-- .../query/SqlTreeNodeManyWhereJoin.java | 6 +-- .../server/query/SqlTreePlan.java | 6 +-- .../server/query/SqlTreeProperties.java | 2 +- .../server/query/SqlTreeRoot.java | 2 +- .../server/querydefn/OrmQueryPlanKey.java | 2 +- .../TestFutureRowCountErrorHandling.java | 6 +-- 57 files changed, 198 insertions(+), 232 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/api/CQueryPlanKey.java b/ebean-core/src/main/java/io/ebeaninternal/api/CQueryPlanKey.java index 2d3425573..f23aa4edb 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/api/CQueryPlanKey.java +++ b/ebean-core/src/main/java/io/ebeaninternal/api/CQueryPlanKey.java @@ -9,7 +9,7 @@ public interface CQueryPlanKey { * Used by read audit such that we can log read audit entries without the full sql * (which would make the read audit logs verbose). */ - String getPartialKey(); + String partialKey(); /** * Return a query plan key taking into account persist cascading. diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java index 8617c2616..b42381956 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java @@ -1330,7 +1330,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { copy.setFutureFetch(true); Transaction newTxn = createTransaction(); QueryFutureRowCount queryFuture = new QueryFutureRowCount<>(new CallableQueryCount<>(this, copy, newTxn)); - backgroundExecutor.execute(queryFuture.getFutureTask()); + backgroundExecutor.execute(queryFuture.futureTask()); return queryFuture; } @@ -1340,7 +1340,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { copy.setFutureFetch(true); Transaction newTxn = createTransaction(); QueryFutureIds queryFuture = new QueryFutureIds<>(new CallableQueryIds<>(this, copy, newTxn)); - backgroundExecutor.execute(queryFuture.getFutureTask()); + backgroundExecutor.execute(queryFuture.futureTask()); return queryFuture; } @@ -1357,7 +1357,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { // Create a new transaction solely to execute the findList() at some future time Transaction newTxn = createTransaction(); QueryFutureList queryFuture = new QueryFutureList<>(new CallableQueryList<>(this, spiQuery, newTxn)); - backgroundExecutor.execute(queryFuture.getFutureTask()); + backgroundExecutor.execute(queryFuture.futureTask()); return queryFuture; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java index 6388de507..695960f6b 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java @@ -639,7 +639,7 @@ public final class OrmQueryRequest extends BeanRequest implements SpiOrmQuery for (T bean : actualDetails) { ids.add(beanDescriptor.idForJson(bean)); } - beanDescriptor.readAuditMany(queryPlanKey.getPartialKey(), "l2-query-cache", ids); + beanDescriptor.readAuditMany(queryPlanKey.partialKey(), "l2-query-cache", ids); } } if (Boolean.FALSE.equals(query.isReadOnly())) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefExported.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefExported.java index 8b2fbe7bd..94ffe2686 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefExported.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefExported.java @@ -22,7 +22,7 @@ final class AssocOneHelpRefExported extends AssocOneHelp { @Override void appendSelect(DbSqlContext ctx, boolean subQuery) { // set appropriate tableAlias for the exported id columns - String relativePrefix = ctx.getRelativePrefix(property.name()); + String relativePrefix = ctx.relativePrefix(property.name()); ctx.pushTableAlias(relativePrefix); property.targetIdBinder.appendSelect(ctx, subQuery); ctx.popTableAlias(); @@ -30,7 +30,7 @@ final class AssocOneHelpRefExported extends AssocOneHelp { @Override void appendFrom(DbSqlContext ctx, SqlJoinType joinType) { - String relativePrefix = ctx.getRelativePrefix(property.name()); + String relativePrefix = ctx.relativePrefix(property.name()); if (softDelete && !ctx.isIncludeSoftDelete()) { property.tableJoin.addJoin(joinType, relativePrefix, ctx, softDeletePredicate); } else { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefInherit.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefInherit.java index ce36dcc6e..df8bff16f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefInherit.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/AssocOneHelpRefInherit.java @@ -63,7 +63,7 @@ final class AssocOneHelpRefInherit extends AssocOneHelp { void appendFrom(DbSqlContext ctx, SqlJoinType joinType) { // add join to support the discriminator column - String relativePrefix = ctx.getRelativePrefix(property.name); + String relativePrefix = ctx.relativePrefix(property.name); ctx.addExtraJoin(new Extra(relativePrefix, joinType)); } @@ -92,8 +92,8 @@ final class AssocOneHelpRefInherit extends AssocOneHelp { void appendSelect(DbSqlContext ctx, boolean subQuery) { if (!subQuery) { // add discriminator column - String relativePrefix = ctx.getRelativePrefix(property.name()); - String tableAlias = ctx.getTableAlias(relativePrefix); + String relativePrefix = ctx.relativePrefix(property.name()); + String tableAlias = ctx.tableAlias(relativePrefix); ctx.appendColumn(tableAlias, property.targetInheritInfo.getDiscriminatorColumn()); } property.importedId.sqlAppend(ctx); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java index cebac3275..4d5e98916 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java @@ -455,7 +455,7 @@ public class BeanProperty implements ElPropertyValue, Property, STreeProperty { if (formula && sqlFormulaJoin != null) { ctx.appendFormulaJoin(sqlFormulaJoin, joinType, manyWhere); } else if (secondaryTableJoin != null) { - String relativePrefix = ctx.getRelativePrefix(secondaryTableJoinPrefix); + String relativePrefix = ctx.relativePrefix(secondaryTableJoinPrefix); secondaryTableJoin.addJoin(joinType, relativePrefix, ctx); } } @@ -481,7 +481,7 @@ public class BeanProperty implements ElPropertyValue, Property, STreeProperty { ctx.appendFormulaSelect(sqlFormulaSelect); } else if (!isTransient && !ignoreDraftOnlyProperty(ctx.isDraftQuery())) { if (secondaryTableJoin != null) { - ctx.pushTableAlias(ctx.getRelativePrefix(secondaryTableJoinPrefix)); + ctx.pushTableAlias(ctx.relativePrefix(secondaryTableJoinPrefix)); } if (dbEncrypted) { ctx.appendRawColumn(decryptSqlWithColumnAlias(ctx.peekTableAlias())); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java index 81a5f4632..2afae6a9d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java @@ -326,7 +326,7 @@ public class BeanPropertyAssocMany extends BeanPropertyAssoc implements ST */ @Override public void lazyLoadMany(EntityBean current) { - EntityBean parentBean = childMasterProperty.getValueAsEntityBean(current); + EntityBean parentBean = childMasterProperty.valueAsEntityBean(current); if (parentBean != null) { addBeanToCollectionWithCreate(parentBean, current, true); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocOne.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocOne.java index a024c1ddb..37937f194 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocOne.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocOne.java @@ -155,7 +155,7 @@ public class BeanPropertyAssocOne extends BeanPropertyAssoc implements STr * Return the property value as an entity bean. */ @Override - public EntityBean getValueAsEntityBean(EntityBean owner) { + public EntityBean valueAsEntityBean(EntityBean owner) { return (EntityBean) getValue(owner); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DbSqlContext.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DbSqlContext.java index ff6839723..9557ee7a1 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DbSqlContext.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/DbSqlContext.java @@ -31,7 +31,7 @@ public interface DbSqlContext { /** * Return a list of encrypted properties which require additional binding. */ - BeanProperty[] getEncryptedProps(); + BeanProperty[] encryptedProps(); /** * Append a string directly to the SQL buffer. @@ -83,7 +83,7 @@ public interface DbSqlContext { /** * Return the current context of the sql context. */ - String getContent(); + String content(); /** * Push a join node onto the stack. @@ -99,14 +99,14 @@ public interface DbSqlContext { * Return a table alias without many where clause joins. Typically this is for * the select clause (fetch joins). */ - String getTableAlias(String prefix); + String tableAlias(String prefix); /** * Return a table alias that takes into account many where joins. */ - String getTableAliasManyWhere(String prefix); + String tableAliasManyWhere(String prefix); - String getRelativePrefix(String propName); + String relativePrefix(String propName); /** * Append the lower and upper bound columns into the select clause diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/TableJoin.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/TableJoin.java index 8c1624d05..951f6b92b 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/TableJoin.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/TableJoin.java @@ -34,7 +34,7 @@ public final class TableJoin { private final int queryHash; private final PropertyForeignKey foreignKey; - + private final String extraWhere; public TableJoin(DeployTableJoin deploy) { @@ -135,21 +135,21 @@ public final class TableJoin { public void addJoin(SqlJoinType joinType, String prefix, DbSqlContext ctx, String predicate) { String[] names = SplitName.split(prefix); - String a1 = ctx.getTableAlias(names[0]); - String a2 = ctx.getTableAlias(prefix); + String a1 = ctx.tableAlias(names[0]); + String a2 = ctx.tableAlias(prefix); addJoin(joinType, a1, a2, ctx); ctx.append(" and ").append(a2).append(predicate); } public SqlJoinType addJoin(SqlJoinType joinType, String prefix, DbSqlContext ctx) { String[] names = SplitName.split(prefix); - String a1 = ctx.getTableAlias(names[0]); - String a2 = ctx.getTableAlias(prefix); + String a1 = ctx.tableAlias(names[0]); + String a2 = ctx.tableAlias(prefix); return addJoin(joinType, a1, a2, ctx); } public SqlJoinType addJoin(SqlJoinType joinType, String a1, String a2, DbSqlContext ctx) { - String joinLiteral = joinType.getLiteral(type); + String joinLiteral = joinType.literal(type); ctx.addJoin(joinLiteral, table, columns(), a1, a2, extraWhere); return joinType.autoToOuter(type); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/ExistsQueryExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/ExistsQueryExpression.java index e746e58ff..1e8121e52 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/ExistsQueryExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/ExistsQueryExpression.java @@ -57,7 +57,7 @@ final class ExistsQueryExpression implements SpiExpression, UnsupportedDocStoreE @Override public void prepareExpression(BeanQueryRequest request) { CQuery subQuery = compileSubQuery(request); - this.bindParams = subQuery.predicates().getWhereExprBindValues(); + this.bindParams = subQuery.predicates().whereExprBindValues(); this.sql = subQuery.generatedSql().replace('\n', ' '); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InQueryExpression.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InQueryExpression.java index 779f222e6..20d6a3d16 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/InQueryExpression.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/InQueryExpression.java @@ -45,7 +45,7 @@ final class InQueryExpression extends AbstractExpression implements UnsupportedD public void prepareExpression(BeanQueryRequest request) { CQuery subQuery = compileSubQuery(request); - this.bindParams = subQuery.predicates().getWhereExprBindValues(); + this.bindParams = subQuery.predicates().whereExprBindValues(); this.sql = subQuery.generatedSql().replace('\n', ' '); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java index 1f6b18df5..aa2fc8bc2 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java @@ -14,7 +14,6 @@ import io.ebeaninternal.server.deploy.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.persistence.PersistenceException; import java.sql.SQLException; import java.util.*; @@ -867,7 +866,7 @@ public final class DefaultPersister implements Persister { for (BeanPropertyAssocOne prop : desc.propertiesOneExportedSave()) { // check for partial beans if (request.isLoadedProperty(prop)) { - EntityBean detailBean = prop.getValueAsEntityBean(parentBean); + EntityBean detailBean = prop.valueAsEntityBean(parentBean); if (detailBean != null) { if (!prop.isSaveRecurseSkippable(detailBean)) { t.depth(+1); @@ -1056,7 +1055,7 @@ public final class DefaultPersister implements Persister { request.setImportedOrphanForRemoval(prop); } if (request.isLoadedProperty(prop)) { - EntityBean detailBean = prop.getValueAsEntityBean(request.entityBean()); + EntityBean detailBean = prop.valueAsEntityBean(request.entityBean()); if (detailBean != null && !prop.isSaveRecurseSkippable(detailBean) && !prop.isReference(detailBean) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java index 22b440e42..b7457bbbb 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java @@ -190,8 +190,8 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi // so its available to the user... query.setGeneratedSql(queryPlan.sql()); SqlTreePlan sqlTree = queryPlan.sqlTree(); - this.rootNode = sqlTree.getRootNode(); - this.manyProperty = sqlTree.getManyProperty(); + this.rootNode = sqlTree.rootNode(); + this.manyProperty = sqlTree.manyProperty(); this.sql = queryPlan.sql(); this.rawSql = queryPlan.isRawSql(); this.logWhereSql = queryPlan.logWhereSql(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBindCapture.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBindCapture.java index 559dfa0da..7f62a855e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBindCapture.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBindCapture.java @@ -62,14 +62,14 @@ final class CQueryBindCapture implements SpiQueryBindCapture { * Collect the query plan using already captured bind values. */ public boolean collectQueryPlan(CQueryPlanRequest request) { - if (bindCapture == null || request.getSince() < lastBindCapture) { + if (bindCapture == null || request.since() < lastBindCapture) { // no bind capture since the last capture return false; } final BindCapture last = this.bindCapture; - SpiDbQueryPlan queryPlan = manager.collectPlan(request.getConnection(), this.queryPlan, last); + SpiDbQueryPlan queryPlan = manager.collectPlan(request.connection(), this.queryPlan, last); if (queryPlan != null) { request.add(queryPlan.with(queryTimeMicros, captureCount)); // effectively turn off bind capture for this plan 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 ed9cbea6c..3f308d99a 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 @@ -110,7 +110,7 @@ final class CQueryBuilder { sql = buildUpdateSql(request, rootTableAlias, predicates, sqlTree); } // cache the query plan - queryPlan = new CQueryPlan(request, sql, sqlTree.plan(), predicates.getLogWhereSql()); + queryPlan = new CQueryPlan(request, sql, sqlTree.plan(), predicates.logWhereSql()); request.putQueryPlan(queryPlan); return new CQueryUpdate(request, predicates, queryPlan); } @@ -149,7 +149,7 @@ final class CQueryBuilder { if (rootTableAlias != null) { sb.append(" ").append(rootTableAlias); } - sb.append(" set ").append(predicates.getDbUpdateClause()); + sb.append(" set ").append(predicates.dbUpdateClause()); String updateClause = sb.toString(); if (sqlTree.noJoins() && request.isInlineSqlUpdateLimit()) { // simple - update table set ... where ... @@ -196,7 +196,7 @@ final class CQueryBuilder { SqlTree sqlTree = createSqlTree(request, predicates); SqlLimitResponse s = buildSql(null, request, predicates, sqlTree); - queryPlan = new CQueryPlan(request, s.getSql(), sqlTree.plan(), predicates.getLogWhereSql()); + queryPlan = new CQueryPlan(request, s.getSql(), sqlTree.plan(), predicates.logWhereSql()); request.putQueryPlan(queryPlan); return new CQueryFetchSingleAttribute(request, predicates, queryPlan, query.isCountDistinct()); } @@ -217,14 +217,14 @@ final class CQueryBuilder { /** * Return the history support if this query needs it (is a 'as of' type query). */ - CQueryHistorySupport getHistorySupport(SpiQuery query) { + CQueryHistorySupport historySupport(SpiQuery query) { return query.getTemporalMode().isHistory() ? historySupport : null; } /** * Return the draft support (or null) for a 'asDraft' query. */ - CQueryDraftSupport getDraftSupport(SpiQuery query) { + CQueryDraftSupport draftSupport(SpiQuery query) { return query.getTemporalMode() == SpiQuery.TemporalMode.DRAFT ? draftSupport : null; } @@ -287,7 +287,7 @@ final class CQueryBuilder { } } // cache the query plan - queryPlan = new CQueryPlan(request, sql, sqlTree.plan(), predicates.getLogWhereSql()); + queryPlan = new CQueryPlan(request, sql, sqlTree.plan(), predicates.logWhereSql()); request.putQueryPlan(queryPlan); return new CQueryRowCount(queryPlan, request, predicates); } @@ -340,9 +340,9 @@ final class CQueryBuilder { SqlLimitResponse res = buildSql(null, request, predicates, sqlTree); boolean rawSql = request.isRawSql(); if (rawSql) { - queryPlan = new CQueryPlanRawSql(request, res, sqlTree, predicates.getLogWhereSql()); + queryPlan = new CQueryPlanRawSql(request, res, sqlTree, predicates.logWhereSql()); } else { - queryPlan = new CQueryPlan(request, res, sqlTree.plan(), false, predicates.getLogWhereSql()); + queryPlan = new CQueryPlan(request, res, sqlTree.plan(), false, predicates.logWhereSql()); } BeanDescriptor desc = request.descriptor(); if (desc.isReadAuditing()) { @@ -552,7 +552,7 @@ final class CQueryBuilder { this.select = select; this.updateStatement = updateStatement; this.distinct = query.isDistinct() || select.isSqlDistinct(); - this.dbOrderBy = predicates.getDbOrderBy(); + this.dbOrderBy = predicates.dbOrderBy(); this.countSingleAttribute = query.isCountDistinct() && query.isSingleAttribute(); } @@ -560,7 +560,7 @@ final class CQueryBuilder { if (selectClause != null) { sb.append(selectClause); } else { - useSqlLimiter = (query.hasMaxRowsOrFirstRow() && (select.getManyProperty() == null || query.isSingleAttribute())); + useSqlLimiter = (query.hasMaxRowsOrFirstRow() && (select.manyProperty() == null || query.isSingleAttribute())); if (!useSqlLimiter) { appendSelectDistinct(); } @@ -578,9 +578,9 @@ final class CQueryBuilder { sb.append("t0.").append(idProp.dbColumn()).append(", "); } } - sb.append(select.getSelectSql()).append(" as attribute_"); + sb.append(select.selectSql()).append(" as attribute_"); } else { - sb.append(select.getSelectSql()); + sb.append(select.selectSql()); } if (request.isInlineCountDistinct()) { sb.append(")"); @@ -590,7 +590,7 @@ final class CQueryBuilder { final OrderBy orderBy = query.getOrderBy(); if (orderBy != null && orderBy.supportsSelect()) { String trimmed = DbOrderByTrim.trim(dbOrderBy); - if (query.isSingleAttribute() && select.getSelectSql().startsWith(trimmed)) { + if (query.isSingleAttribute() && select.selectSql().startsWith(trimmed)) { // NOP, already in SQL // TODO: what to do if we select("id").orderBy("prop,id")? // Can we live with a query like "select t0.id, t0.prop, t0.id from" @@ -610,7 +610,7 @@ final class CQueryBuilder { sb.append("count("); } sb.append("distinct "); - String distinctOn = select.getDistinctOn(); + String distinctOn = select.distinctOn(); if (distinctOn != null) { sb.append("on (").append(distinctOn).append(") "); } @@ -620,7 +620,7 @@ final class CQueryBuilder { private void appendFrom() { if (selectClause == null || !selectClause.startsWith("update")) { sb.append(" from "); - sb.append(select.getFromSql()); + sb.append(select.fromSql()); } } @@ -634,7 +634,7 @@ final class CQueryBuilder { } private void appendInheritanceWhere() { - String inheritanceWhere = select.getInheritanceWhereSql(); + String inheritanceWhere = select.inheritanceWhereSql(); if (!inheritanceWhere.isEmpty()) { sb.append(" where"); sb.append(inheritanceWhere); @@ -647,7 +647,7 @@ final class CQueryBuilder { query.incrementAsOfTableCount(); if (!historySupport.isStandardsBased()){ appendAndOrWhere(); - sb.append(historySupport.getAsOfPredicate(request.baseTableAlias())); + sb.append(historySupport.asOfPredicate(request.baseTableAlias())); } } } @@ -696,16 +696,16 @@ final class CQueryBuilder { appendInheritanceWhere(); appendHistoryAsOfPredicate(); appendFindId(); - appendToWhere(predicates.getDbWhere()); - appendToWhere(predicates.getDbFilterMany()); + appendToWhere(predicates.dbWhere()); + appendToWhere(predicates.dbFilterMany()); if (!query.isIncludeSoftDeletes()) { appendSoftDelete(); } - String groupBy = select.getGroupBy(); + String groupBy = select.groupBy(); if (groupBy != null) { sb.append(" group by ").append(groupBy); } - String dbHaving = predicates.getDbHaving(); + String dbHaving = predicates.dbHaving(); if (hasValue(dbHaving)) { sb.append(" having ").append(dbHaving); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBuilderRawSql.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBuilderRawSql.java index c9373724b..290b706c2 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBuilderRawSql.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryBuilderRawSql.java @@ -25,12 +25,10 @@ final class CQueryBuilderRawSql { * Build the full SQL Select statement for the request. */ SqlLimitResponse buildSql(OrmQueryRequest request, CQueryPredicates predicates, SpiRawSql.Sql rsql) { - if (rsql == null) { // this is a ResultSet based RawSql query - just use some placeholder for the SQL return new SqlLimitResponse(CQueryPlan.RESULT_SET_BASED_RAW_SQL); } - if (!rsql.isParsed()) { String sql = rsql.getUnparsedSql(); BindParams bindParams = request.query().getBindParams(); @@ -41,16 +39,13 @@ final class CQueryBuilderRawSql { return new SqlLimitResponse(sql); } - String orderBy = getOrderBy(predicates, rsql); - + String orderBy = orderBy(predicates, rsql); // build the actual sql String String sql = buildMainQuery(orderBy, request, predicates, rsql); - SpiQuery query = request.query(); if (query.hasMaxRowsOrFirstRow() && sqlLimiter != null) { // wrap with a limit offset or ROW_NUMBER() etc return sqlLimiter.limit(new OrmQueryLimitRequest(sql, orderBy, query, dbPlatform, rsql.isDistinct() || query.isDistinct())); - } else { // add back select keyword (it was removed to support sqlQueryLimiter) String prefix = "select " + (rsql.isDistinct() ? "distinct " : ""); @@ -86,7 +81,7 @@ final class CQueryBuilderRawSql { dynamicWhere = descriptor.idBinderIdSql(null); } - String dbWhere = predicates.getDbWhere(); + String dbWhere = predicates.dbWhere(); if (hasValue(dbWhere)) { if (dynamicWhere == null) { dynamicWhere = dbWhere; @@ -109,7 +104,7 @@ final class CQueryBuilderRawSql { sb.append(preHaving).append(" "); } - String dbHaving = predicates.getDbHaving(); + String dbHaving = predicates.dbHaving(); if (hasValue(dbHaving)) { if (sql.isAndHavingExpr()) { sb.append(" and "); @@ -128,8 +123,8 @@ final class CQueryBuilderRawSql { return s != null && !s.isEmpty(); } - private String getOrderBy(CQueryPredicates predicates, SpiRawSql.Sql sql) { - String orderBy = predicates.getDbOrderBy(); + private String orderBy(CQueryPredicates predicates, SpiRawSql.Sql sql) { + String orderBy = predicates.dbOrderBy(); if (orderBy != null) { return orderBy; } else { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryDraftSupport.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryDraftSupport.java index 771ff8145..c02b25ba6 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryDraftSupport.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryDraftSupport.java @@ -22,7 +22,7 @@ final class CQueryDraftSupport { * This returns null for entities that are not draftable and in that case * the usual base table is used. */ - String getDraftTable(String table) { + String draftTable(String table) { return tableMap.get(table); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java index df78f11e7..894bcfce5 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java @@ -76,11 +76,11 @@ public final class CQueryEngine { try { int rows = query.execute(); if (request.logSql()) { - request.logSql(Str.add(query.getGeneratedSql(), "; --bind(", query.getBindLog(), ") --micros(", query.micros() + ") --rows(", rows + ")")); + request.logSql(Str.add(query.generatedSql(), "; --bind(", query.bindLog(), ") --micros(", query.micros() + ") --rows(", rows + ")")); } return rows; } catch (SQLException e) { - throw translate(request, query.getBindLog(), query.getGeneratedSql(), e); + throw translate(request, query.bindLog(), query.generatedSql(), e); } } @@ -98,13 +98,13 @@ public final class CQueryEngine { try { rcQuery.findCollection(collection); if (request.logSql()) { - logGeneratedSql(request, rcQuery.getGeneratedSql(), rcQuery.getBindLog(), rcQuery.micros()); + logGeneratedSql(request, rcQuery.generatedSql(), rcQuery.bindLog(), rcQuery.micros()); } if (request.logSummary()) { - request.transaction().logSummary(rcQuery.getSummary()); + request.transaction().logSummary(rcQuery.summary()); } if (request.isQueryCachePut()) { - request.addDependentTables(rcQuery.getDependentTables()); + request.addDependentTables(rcQuery.dependentTables()); if (collection instanceof List) { collection = (A) Collections.unmodifiableList((List) collection); request.putToQueryCache(collection); @@ -121,7 +121,7 @@ public final class CQueryEngine { } return collection; } catch (SQLException e) { - throw translate(request, rcQuery.getBindLog(), rcQuery.getGeneratedSql(), e); + throw translate(request, rcQuery.bindLog(), rcQuery.generatedSql(), e); } } @@ -164,21 +164,21 @@ public final class CQueryEngine { try { int count = rcQuery.findCount(); if (request.logSql()) { - logGeneratedSql(request, rcQuery.getGeneratedSql(), rcQuery.getBindLog(), rcQuery.micros()); + logGeneratedSql(request, rcQuery.generatedSql(), rcQuery.bindLog(), rcQuery.micros()); } if (request.logSummary()) { - request.transaction().logSummary(rcQuery.getSummary()); + request.transaction().logSummary(rcQuery.summary()); } if (request.query().isFutureFetch()) { request.transaction().end(); } if (request.isQueryCachePut()) { - request.addDependentTables(rcQuery.getDependentTables()); + request.addDependentTables(rcQuery.dependentTables()); request.putToQueryCache(count); } return count; } catch (SQLException e) { - throw translate(request, rcQuery.getBindLog(), rcQuery.getGeneratedSql(), e); + throw translate(request, rcQuery.bindLog(), rcQuery.generatedSql(), e); } } @@ -271,9 +271,7 @@ public final class CQueryEngine { } catch (SQLException e) { throw cquery.createPersistenceException(e); } finally { - if (cquery != null) { - cquery.close(); - } + cquery.close(); } } @@ -299,11 +297,11 @@ public final class CQueryEngine { } private String getSysPeriodLower(SpiQuery query) { - return historySupport.getSysPeriodLower(query.getAlias(T0)); + return historySupport.sysPeriodLower(query.getAlias(T0)); } private String getSysPeriodUpper(SpiQuery query) { - return historySupport.getSysPeriodUpper(query.getAlias(T0)); + return historySupport.sysPeriodUpper(query.getAlias(T0)); } /** @@ -373,9 +371,7 @@ public final class CQueryEngine { } catch (SQLException e) { throw cquery.createPersistenceException(e); } finally { - if (cquery != null) { - cquery.close(); - } + cquery.close(); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java index 37ed9e1ab..f2fb587f2 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java @@ -58,12 +58,12 @@ final class CQueryFetchSingleAttribute implements SpiProfileTransactionEvent, Ca /** * Return a summary description of this query. */ - String getSummary() { + String summary() { StringBuilder sb = new StringBuilder(80); sb.append("FindAttr exeMicros[").append(executionTimeMicros) .append("] rows[").append(rowCount) .append("] type[").append(desc.name()) - .append("] predicates[").append(predicates.getLogWhereSql()) + .append("] predicates[").append(predicates.logWhereSql()) .append("] bind[").append(bindLog).append("]"); return sb.toString(); } @@ -75,6 +75,7 @@ final class CQueryFetchSingleAttribute implements SpiProfileTransactionEvent, Ca /** * Execute the query returning the row count. */ + @SuppressWarnings({"rawtypes", "unchecked"}) void findCollection(Collection result) throws SQLException { long startNano = System.nanoTime(); try { @@ -92,27 +93,27 @@ final class CQueryFetchSingleAttribute implements SpiProfileTransactionEvent, Ca if (queryPlan.executionTime(executionTimeMicros)) { queryPlan.captureBindForQueryPlan(predicates, executionTimeMicros); } - getTransaction().profileEvent(this); + transaction().profileEvent(this); } finally { close(); } } - private SpiTransaction getTransaction() { + private SpiTransaction transaction() { return request.transaction(); } /** * Return the bind log. */ - String getBindLog() { + String bindLog() { return bindLog; } /** * Return the generated sql. */ - String getGeneratedSql() { + String generatedSql() { return sql; } @@ -120,7 +121,7 @@ final class CQueryFetchSingleAttribute implements SpiProfileTransactionEvent, Ca lock.lock(); try { query.checkCancelled(); - SpiTransaction t = getTransaction(); + SpiTransaction t = transaction(); profileOffset = t.profileOffset(); Connection conn = t.getInternalConnection(); pstmt = conn.prepareStatement(sql); @@ -160,12 +161,12 @@ final class CQueryFetchSingleAttribute implements SpiProfileTransactionEvent, Ca @Override public void profile() { - getTransaction() + transaction() .profileStream() .addQueryEvent(query.profileEventId(), profileOffset, desc.name(), rowCount, query.getProfileId()); } - Set getDependentTables() { + Set dependentTables() { return queryPlan.dependentTables(); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryHistorySupport.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryHistorySupport.java index e082c97eb..aa05039a2 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryHistorySupport.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryHistorySupport.java @@ -40,30 +40,28 @@ final class CQueryHistorySupport { /** * Return the 'as of' history view for the given base table. */ - String getAsOfView(String table) { + String asOfView(String table) { return asOfTableMap.get(table); } /** * Return the lower bound column. */ - String getSysPeriodLower(String tableAlias) { + String sysPeriodLower(String tableAlias) { return dbHistorySupport.getSysPeriodLower(tableAlias, sysPeriod); } /** * Return the upper bound column. */ - String getSysPeriodUpper(String tableAlias) { + String sysPeriodUpper(String tableAlias) { return dbHistorySupport.getSysPeriodUpper(tableAlias, sysPeriod); } /** * Return the predicate appended to the end of the query. - *

- * Note used for Oracle total recall etc with the more standard approach. */ - String getAsOfPredicate(String tableAlias) { + String asOfPredicate(String tableAlias) { return dbHistorySupport.getAsOfPredicate(tableAlias, sysPeriod); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorSimple.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorSimple.java index 1aa5fc7ef..8d9860a7b 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorSimple.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryIteratorSimple.java @@ -11,9 +11,7 @@ import java.sql.SQLException; final class CQueryIteratorSimple implements QueryIterator { private final CQuery cquery; - private final OrmQueryRequest request; - private boolean closed; CQueryIteratorSimple(CQuery cquery, OrmQueryRequest request) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryOrderBy.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryOrderBy.java index 0f369fef8..cefdb59cf 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryOrderBy.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryOrderBy.java @@ -16,7 +16,6 @@ import java.util.List; final class CQueryOrderBy { private final BeanDescriptor desc; - private final OrderBy orderBy; /** @@ -32,9 +31,7 @@ final class CQueryOrderBy { } private String parseInternal() { - StringBuilder sb = new StringBuilder(); - List properties = orderBy.getProperties(); if (properties.isEmpty()) { // order by clause removed by filterMany() @@ -52,7 +49,6 @@ final class CQueryOrderBy { } private String parseProperty(Property p) { - String propName = p.getProperty(); ElPropertyValue el = desc.elGetValue(propName); if (el == null) { @@ -65,7 +61,6 @@ final class CQueryOrderBy { IdBinder idBinder = ap.targetDescriptor().idBinder(); return idBinder.getOrderBy(el.elName(), p.isAscending()); } - return p.toStringFormat(); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java index bdcd7c372..7ab1b8a39 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java @@ -92,7 +92,7 @@ public class CQueryPlan implements SpiQueryPlan { this.sqlTree = sqlTree; this.rawSql = rawSql; this.logWhereSql = logWhereSql; - this.encryptedProps = sqlTree.getEncryptedProps(); + this.encryptedProps = sqlTree.encryptedProps(); this.stats = new CQueryPlanStats(this); this.dependentTables = sqlTree.dependentTables(); this.bindCapture = initBindCapture(query); @@ -117,7 +117,7 @@ public class CQueryPlan implements SpiQueryPlan { this.sqlTree = sqlTree; this.rawSql = false; this.logWhereSql = logWhereSql; - this.encryptedProps = sqlTree.getEncryptedProps(); + this.encryptedProps = sqlTree.encryptedProps(); this.stats = new CQueryPlanStats(this); this.dependentTables = sqlTree.dependentTables(); this.bindCapture = initBindCaptureRaw(sql, query); @@ -247,7 +247,7 @@ public class CQueryPlan implements SpiQueryPlan { private String calcAuditQueryKey() { // rawSql needs to include the MD5 hash of the sql - return rawSql ? planKey.getPartialKey() + "_" + hash : planKey.getPartialKey(); + return rawSql ? planKey.partialKey() + "_" + hash : planKey.partialKey(); } final SqlTreePlan sqlTree() { @@ -288,11 +288,11 @@ public class CQueryPlan implements SpiQueryPlan { * Return the time this query plan was last used. */ public final long lastQueryTime() { - return stats.getLastQueryTime(); + return stats.lastQueryTime(); } final ScalarDataReader singleAttributeScalarType() { - return sqlTree.getRootNode().getSingleAttributeReader(); + return sqlTree.rootNode().singleAttributeReader(); } /** diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanManager.java index 72791fc53..e1cb2d3c3 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanManager.java @@ -62,7 +62,7 @@ public final class CQueryPlanManager implements QueryPlanManager { while (req.hasNext()) { req.nextCapture(); } - return req.getPlans(); + return req.plans(); } catch (SQLException e) { CoreLog.log.error("Error during query plan collection", e); return emptyList(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanRequest.java index 00b202d57..573b66026 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanRequest.java @@ -34,7 +34,7 @@ final class CQueryPlanRequest { /** * Return the connection used to collect the db query plan. */ - Connection getConnection() { + Connection connection() { return connection; } @@ -48,14 +48,14 @@ final class CQueryPlanRequest { /** * Return the min epoch time in millis for minimum bind capture age. */ - long getSince() { + long since() { return since; } /** * Return the captured query plans. */ - List getPlans() { + List plans() { return plans; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanStats.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanStats.java index 118450452..8c911aaac 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanStats.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanStats.java @@ -50,7 +50,7 @@ public final class CQueryPlanStats { /** * Return the last time this query was executed. */ - long getLastQueryTime() { + long lastQueryTime() { return lastQueryTime; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java index dff185cc8..414484d1e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java @@ -350,60 +350,60 @@ public final class CQueryPredicates { /** * Return the bind values for the where expression. */ - public List getWhereExprBindValues() { + public List whereExprBindValues() { return where == null ? Collections.emptyList() : where.getBindValues(); } /** * Return the db update set clause for an UpdateQuery. */ - String getDbUpdateClause() { + String dbUpdateClause() { return dbUpdateClause; } /** * Return the db column version of the combined where clause. */ - String getDbHaving() { + String dbHaving() { return dbHaving; } /** * Return the db column version of the combined where clause. */ - String getDbWhere() { + String dbWhere() { return dbWhere; } /** * Return a db filter for filtering many fetch joins. */ - String getDbFilterMany() { + String dbFilterMany() { return dbFilterMany; } /** * Return the db column version of the order by clause. */ - String getDbOrderBy() { + String dbOrderBy() { return dbOrderBy; } /** * Return the includes required for the where and order by clause. */ - Set getPredicateIncludes() { + Set predicateIncludes() { return predicateIncludes; } /** * Return the orderBy includes. */ - Set getOrderByIncludes() { + Set orderByIncludes() { return orderByIncludes; } - String getLogWhereSql() { + String logWhereSql() { if (dbWhere == null && dbFilterMany == null) { return ""; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryRowCount.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryRowCount.java index 6834f46d9..3b1865825 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryRowCount.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryRowCount.java @@ -51,13 +51,13 @@ final class CQueryRowCount implements SpiProfileTransactionEvent, CancelableQuer /** * Return a summary description of this query. */ - public String getSummary() { + public String summary() { //noinspection StringBufferReplaceableByString StringBuilder sb = new StringBuilder(80); sb.append("FindCount exeMicros[").append(executionTimeMicros) .append("] rows[").append(rowCount) .append("] type[").append(desc.fullName()) - .append("] predicates[").append(predicates.getLogWhereSql()) + .append("] predicates[").append(predicates.logWhereSql()) .append("] bind[").append(bindLog).append("]"); return sb.toString(); @@ -66,14 +66,14 @@ final class CQueryRowCount implements SpiProfileTransactionEvent, CancelableQuer /** * Return the bind log. */ - public String getBindLog() { + public String bindLog() { return bindLog; } /** * Return the generated sql. */ - public String getGeneratedSql() { + public String generatedSql() { return sql; } @@ -87,7 +87,7 @@ final class CQueryRowCount implements SpiProfileTransactionEvent, CancelableQuer public int findCount() throws SQLException { long startNano = System.nanoTime(); try { - SpiTransaction t = getTransaction(); + SpiTransaction t = transaction(); profileOffset = t.profileOffset(); Connection conn = t.getInternalConnection(); lock.lock(); @@ -119,7 +119,7 @@ final class CQueryRowCount implements SpiProfileTransactionEvent, CancelableQuer } } - private SpiTransaction getTransaction() { + private SpiTransaction transaction() { return request.transaction(); } @@ -135,12 +135,12 @@ final class CQueryRowCount implements SpiProfileTransactionEvent, CancelableQuer @Override public void profile() { - getTransaction() + transaction() .profileStream() .addQueryEvent(query.profileEventId(), profileOffset, desc.name(), rowCount, query.getProfileId()); } - Set getDependentTables() { + Set dependentTables() { return queryPlan.dependentTables(); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryUpdate.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryUpdate.java index 20ad3fb44..edd8b348f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryUpdate.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryUpdate.java @@ -47,14 +47,14 @@ final class CQueryUpdate implements SpiProfileTransactionEvent, CancelableQuery /** * Return the bind log. */ - public String getBindLog() { + public String bindLog() { return bindLog; } /** * Return the generated sql. */ - public String getGeneratedSql() { + public String generatedSql() { return sql; } @@ -64,7 +64,7 @@ final class CQueryUpdate implements SpiProfileTransactionEvent, CancelableQuery public int execute() throws SQLException { long startNano = System.nanoTime(); try { - SpiTransaction t = getTransaction(); + SpiTransaction t = transaction(); profileOffset = t.profileOffset(); Connection conn = t.getInternalConnection(); lock.lock(); @@ -97,7 +97,7 @@ final class CQueryUpdate implements SpiProfileTransactionEvent, CancelableQuery return executionTimeMicros; } - private SpiTransaction getTransaction() { + private SpiTransaction transaction() { return request.transaction(); } @@ -111,7 +111,7 @@ final class CQueryUpdate implements SpiProfileTransactionEvent, CancelableQuery @Override public void profile() { - getTransaction() + transaction() .profileStream() .addQueryEvent(query.profileEventId(), profileOffset, desc.name(), rowCount, query.getProfileId()); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultDbSqlContext.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultDbSqlContext.java index 63fa76d92..f4611617c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultDbSqlContext.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultDbSqlContext.java @@ -94,7 +94,7 @@ final class DefaultDbSqlContext implements DbSqlContext { } @Override - public BeanProperty[] getEncryptedProps() { + public BeanProperty[] encryptedProps() { if (encryptedProps == null) { return null; } @@ -125,13 +125,13 @@ final class DefaultDbSqlContext implements DbSqlContext { sb.append(" ").append(type); boolean addAsOfOnClause = false; if (draftSupport != null) { - appendTable(table, draftSupport.getDraftTable(table)); + appendTable(table, draftSupport.draftTable(table)); } else if (!historyQuery) { sb.append(" ").append(table).append(" "); } else { // check if there is an associated history table and if so // use the unionAll view - we expect an additional predicate to match - String asOfView = historySupport.getAsOfView(table); + String asOfView = historySupport.asOfView(table); appendTable(table, asOfView); if (asOfView != null) { if (historySupport.isStandardsBased()) { @@ -161,7 +161,7 @@ final class DefaultDbSqlContext implements DbSqlContext { } } if (addAsOfOnClause) { - sb.append(" and ").append(historySupport.getAsOfPredicate(a2)); + sb.append(" and ").append(historySupport.asOfPredicate(a2)); asOfTableCount++; } if (extraWhere != null && !extraWhere.isEmpty()) { @@ -191,17 +191,17 @@ final class DefaultDbSqlContext implements DbSqlContext { } @Override - public String getTableAlias(String prefix) { - return alias.getTableAlias(prefix); + public String tableAlias(String prefix) { + return alias.tableAlias(prefix); } @Override - public String getTableAliasManyWhere(String prefix) { - return alias.getTableAliasManyWhere(prefix); + public String tableAliasManyWhere(String prefix) { + return alias.tableAliasManyWhere(prefix); } @Override - public String getRelativePrefix(String propName) { + public String relativePrefix(String propName) { return currentPrefix == null ? propName : currentPrefix + "." + propName; } @@ -209,7 +209,7 @@ final class DefaultDbSqlContext implements DbSqlContext { public void pushTableAlias(String prefix) { prefixStack.push(currentPrefix); currentPrefix = prefix; - tableAliasStack.push(getTableAlias(prefix)); + tableAliasStack.push(tableAlias(prefix)); } @Override @@ -227,7 +227,7 @@ final class DefaultDbSqlContext implements DbSqlContext { @Override public void appendFormulaJoin(String sqlFormulaJoin, SqlJoinType joinType, String manyWhere) { // replace ${ta} placeholder with the real table alias... - String tableAlias = manyWhere == null ? tableAliasStack.peek() : getTableAliasManyWhere(manyWhere); + String tableAlias = manyWhere == null ? tableAliasStack.peek() : tableAliasManyWhere(manyWhere); String converted = sqlFormulaJoin.replace(tableAliasPlaceHolder, tableAlias); if (formulaJoins == null) { formulaJoins = new HashSet<>(); @@ -272,10 +272,10 @@ final class DefaultDbSqlContext implements DbSqlContext { public void appendHistorySysPeriod() { String tableAlias = tableAliasStack.peek(); sb.append(COMMA); - sb.append(historySupport.getSysPeriodLower(tableAlias)); + sb.append(historySupport.sysPeriodLower(tableAlias)); appendColumnAlias(); sb.append(COMMA); - sb.append(historySupport.getSysPeriodUpper(tableAlias)); + sb.append(historySupport.sysPeriodUpper(tableAlias)); appendColumnAlias(); } @@ -325,7 +325,7 @@ final class DefaultDbSqlContext implements DbSqlContext { } @Override - public String getContent() { + public String content() { String s = sb.toString(); sb = new StringBuilder(STRING_BUILDER_INITIAL_CAPACITY); return s; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultFetchGroupQuery.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultFetchGroupQuery.java index 71e13330e..b4ce3a696 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultFetchGroupQuery.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultFetchGroupQuery.java @@ -48,9 +48,7 @@ import java.util.stream.Stream; final class DefaultFetchGroupQuery implements SpiFetchGroupQuery, SpiQueryFetch { private static final FetchConfig FETCH_CACHE = FetchConfig.ofCache(); - private static final FetchConfig FETCH_QUERY = FetchConfig.ofQuery(); - private static final FetchConfig FETCH_LAZY = FetchConfig.ofLazy(); private OrmQueryDetail detail = new OrmQueryDetail(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultRelationalQueryEngine.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultRelationalQueryEngine.java index 44b84a6a5..047b9f696 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultRelationalQueryEngine.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultRelationalQueryEngine.java @@ -26,11 +26,8 @@ import java.util.function.Predicate; public final class DefaultRelationalQueryEngine implements RelationalQueryEngine { private final Binder binder; - private final String dbTrueValue; - private final boolean binaryOptimizedUUID; - private final TimedMetricMap timedMetricMap; public DefaultRelationalQueryEngine(Binder binder, String dbTrueValue, boolean binaryOptimizedUUID) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/ExtraJoin.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/ExtraJoin.java index 6fdeedd43..1b7859038 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/ExtraJoin.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/ExtraJoin.java @@ -10,7 +10,7 @@ public final class ExtraJoin { this.containsMany = containsMany; } - public STreePropertyAssoc getProperty() { + public STreePropertyAssoc property() { return property; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/LimitOffsetPagedList.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/LimitOffsetPagedList.java index cb9f6f560..f763341f8 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/LimitOffsetPagedList.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/LimitOffsetPagedList.java @@ -15,19 +15,13 @@ import java.util.concurrent.locks.ReentrantLock; public final class LimitOffsetPagedList implements PagedList { private final transient SpiEbeanServer server; - private final transient ReentrantLock lock = new ReentrantLock(); - private final SpiQuery query; - private final int firstRow; - private final int maxRows; private int foregroundTotalRowCount = -1; - private Future futureRowCount; - private List list; /** diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/NativeSqlQueryPlanKey.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/NativeSqlQueryPlanKey.java index 2a0313ff3..2c5c7c4b4 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/NativeSqlQueryPlanKey.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/NativeSqlQueryPlanKey.java @@ -15,7 +15,7 @@ public class NativeSqlQueryPlanKey implements CQueryPlanKey { @Override public String toString() { - return getPartialKey(); + return partialKey(); } @Override @@ -29,7 +29,7 @@ public class NativeSqlQueryPlanKey implements CQueryPlanKey { * can be used as a short form proxy for the actual sql. */ @Override - public String getPartialKey() { + public String partialKey() { return hashCode() + "_n"; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/OrderVersionDesc.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/OrderVersionDesc.java index 52e661b10..2f564a5af 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/OrderVersionDesc.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/OrderVersionDesc.java @@ -17,7 +17,6 @@ final class OrderVersionDesc implements Comparator>, Serializable { @Override public int compare(Version o1, Version o2) { - Timestamp v1 = o1.getStart(); if (v1 == null) { return 1; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureIds.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureIds.java index ff5acb76c..912075e58 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureIds.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureIds.java @@ -19,11 +19,11 @@ public final class QueryFutureIds extends BaseFuture> implements this.call = call; } - public FutureTask> getFutureTask() { + public FutureTask> futureTask() { return futureTask; } - public Transaction getTransaction() { + public Transaction transaction() { return call.transaction; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureList.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureList.java index 34264ffcf..bd232c91f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureList.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureList.java @@ -23,11 +23,11 @@ public final class QueryFutureList extends BaseFuture> implements Fut this.call = call; } - public FutureTask> getFutureTask() { + public FutureTask> futureTask() { return futureTask; } - public Transaction getTransaction() { + public Transaction transaction() { return call.transaction; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureRowCount.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureRowCount.java index 832653f1d..28b66a198 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureRowCount.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryFutureRowCount.java @@ -17,11 +17,11 @@ public final class QueryFutureRowCount extends BaseFuture implements this.call = call; } - public FutureTask getFutureTask() { + public FutureTask futureTask() { return futureTask; } - public Transaction getTransaction() { + public Transaction transaction() { return call.transaction; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/RawSqlQueryPlanKey.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/RawSqlQueryPlanKey.java index b24a57e04..77546dee6 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/RawSqlQueryPlanKey.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/RawSqlQueryPlanKey.java @@ -21,7 +21,7 @@ final class RawSqlQueryPlanKey implements CQueryPlanKey { @Override public String toString() { - return getPartialKey() + ":r"; + return partialKey() + ":r"; } @Override @@ -35,7 +35,7 @@ final class RawSqlQueryPlanKey implements CQueryPlanKey { * can be used as a short form proxy for the actual sql. */ @Override - public String getPartialKey() { + public String partialKey() { return hashCode() + "_0"; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/STreePropertyAssocOne.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/STreePropertyAssocOne.java index d7ff3016d..ca6f2ba67 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/STreePropertyAssocOne.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/STreePropertyAssocOne.java @@ -23,5 +23,5 @@ public interface STreePropertyAssocOne extends STreePropertyAssoc { /** * Return the property value as an entity bean from the parent. */ - EntityBean getValueAsEntityBean(EntityBean parentBean); + EntityBean valueAsEntityBean(EntityBean parentBean); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/STreeType.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/STreeType.java index 12e14abbf..449b65926 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/STreeType.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/STreeType.java @@ -136,10 +136,8 @@ public interface STreeType { /** * Mark the bean as deleted by setting the softDelete property to true. - * * This works also, if there is only a virtual softDelete property computed by a formula. - * - * If there is no softdelete property, it sets the lazyLoadFailure flag in EBI. + * If there is no soft delete property, it sets the lazyLoadFailure flag in EBI. */ void markAsDeleted(EntityBean bean); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlJoinType.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlJoinType.java index 8ad0d8a39..ba2e4a584 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlJoinType.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlJoinType.java @@ -30,7 +30,7 @@ public enum SqlJoinType { * Return the actual SQL join literal taking into account the current join type and the 'default * join type as per deployment cardinality and optionality'. */ - public String getLiteral(SqlJoinType deploymentJoinType) { + public String literal(SqlJoinType deploymentJoinType) { if (this == SqlJoinType.AUTO) { return deploymentJoinType.literal; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTree.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTree.java index d055b94c9..126e9ce7a 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTree.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTree.java @@ -88,33 +88,33 @@ final class SqlTree { return list; } - String getDistinctOn() { + String distinctOn() { return distinctOn; } /** * Return the String for the actual SQL. */ - String getSelectSql() { + String selectSql() { assert selectSql != null : "selectSql was null"; return selectSql; } - String getFromSql() { + String fromSql() { return fromSql; } /** * Return the groupBy clause. */ - String getGroupBy() { + String groupBy() { return groupBy; } /** * Return the where clause for inheritance. */ - String getInheritanceWhereSql() { + String inheritanceWhereSql() { return inheritanceWhereSql; } @@ -122,7 +122,7 @@ final class SqlTree { * Return the property that is associated with the many. There can only be one * per SqlSelect. This can be null. */ - STreePropertyAssocMany getManyProperty() { + STreePropertyAssocMany manyProperty() { return manyProperty; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeAlias.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeAlias.java index a3661e816..367b67685 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeAlias.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeAlias.java @@ -89,7 +89,7 @@ final class SqlTreeAlias { for (String propJoin : embeddedPropertyJoins) { String[] split = SplitName.split(propJoin); // the table alias of the parent path - String alias = getTableAlias(split[0]); + String alias = tableAlias(split[0]); aliasMap.put(propJoin, alias); } } @@ -109,7 +109,7 @@ final class SqlTreeAlias { /** * Return the table alias for a given property name. */ - String getTableAlias(String prefix) { + String tableAlias(String prefix) { if (prefix == null) { return rootTableAlias; } else { @@ -124,7 +124,7 @@ final class SqlTreeAlias { /** * Return an alias using "Many where joins". */ - String getTableAliasManyWhere(String prefix) { + String tableAliasManyWhere(String prefix) { if (prefix == null) { return rootTableAlias; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java index faf4a2a5a..a018b081f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java @@ -104,8 +104,8 @@ public final class SqlTreeBuilder { this.distinctOnPlatform = builder.isPlatformDistinctOn(); this.distinctNoLobs = builder.isPlatformDistinctNoLobs(); String fromForUpdate = builder.fromForUpdate(query); - CQueryHistorySupport historySupport = builder.getHistorySupport(query); - CQueryDraftSupport draftSupport = builder.getDraftSupport(query); + CQueryHistorySupport historySupport = builder.historySupport(query); + CQueryDraftSupport draftSupport = builder.draftSupport(query); String colAlias = subQuery ? null : columnAliasPrefix; this.ctx = new DefaultDbSqlContext(alias, colAlias, historySupport, draftSupport, fromForUpdate); } @@ -129,7 +129,7 @@ public final class SqlTreeBuilder { inheritanceWhereSql = buildWhereClause(); groupBy = buildGroupByClause(); distinctOn = buildDistinctOn(); - encryptedProps = ctx.getEncryptedProps(); + encryptedProps = ctx.encryptedProps(); query.incrementAsOfTableCount(ctx.asOfTableCount()); } @@ -146,7 +146,7 @@ public final class SqlTreeBuilder { return "1"; } rootNode.appendSelect(ctx, subQuery); - return trimComma(ctx.getContent()); + return trimComma(ctx.content()); } private String buildGroupByClause() { @@ -155,7 +155,7 @@ public final class SqlTreeBuilder { } ctx.startGroupBy(); rootNode.appendGroupBy(ctx, subQuery); - return trimComma(ctx.getContent()); + return trimComma(ctx.content()); } private String buildDistinctOn() { @@ -164,8 +164,8 @@ public final class SqlTreeBuilder { } ctx.startGroupBy(); rootNode.appendDistinctOn(ctx, subQuery); - String idCols = trimComma(ctx.getContent()); - return idCols == null ? null : mergeOnDistinct(idCols, predicates.getDbOrderBy()); + String idCols = trimComma(ctx.content()); + return idCols == null ? null : mergeOnDistinct(idCols, predicates.dbOrderBy()); } static String mergeOnDistinct(String idCols, String dbOrderBy) { @@ -201,7 +201,7 @@ public final class SqlTreeBuilder { return "Not Used"; } rootNode.appendWhere(ctx); - return ctx.getContent(); + return ctx.content(); } private String buildFromClause() { @@ -209,14 +209,14 @@ public final class SqlTreeBuilder { return "Not Used"; } rootNode.appendFrom(ctx, SqlJoinType.AUTO); - return ctx.getContent(); + return ctx.content(); } private void buildRoot(STreeType desc) { rootNode = buildSelectChain(null, null, desc, null); if (!rawSql) { alias.addJoin(queryDetail.getFetchPaths(), desc); - alias.addJoin(predicates.getPredicateIncludes(), desc); + alias.addJoin(predicates.predicateIncludes(), desc); alias.addManyWhereJoins(manyWhereJoins.getPropertyNames()); // build set of table alias alias.buildAlias(); @@ -348,7 +348,7 @@ public final class SqlTreeBuilder { if (rawSql) { return; } - Set predicateIncludes = predicates.getPredicateIncludes(); + Set predicateIncludes = predicates.predicateIncludes(); if (predicateIncludes == null) { return; } @@ -360,7 +360,7 @@ public final class SqlTreeBuilder { // remove ManyWhereJoins from the predicateIncludes predicateIncludes.removeAll(manyWhereJoins.getPropertyNames()); - predicateIncludes.addAll(predicates.getOrderByIncludes()); + predicateIncludes.addAll(predicates.orderByIncludes()); // look for predicateIncludes that are not in selectIncludes and add // them as extra joins to the query @@ -641,7 +641,7 @@ public final class SqlTreeBuilder { SqlTreeNodeExtraJoin root = findExtraJoinRoot(includeProp, extraJoin); // register the root because these are the only ones we // return back. - rootRegister.put(root.getName(), root); + rootRegister.put(root.name(), root); } } @@ -653,7 +653,7 @@ public final class SqlTreeBuilder { if (extra == null) { return null; } else { - SqlTreeNodeExtraJoin extraJoin = new SqlTreeNodeExtraJoin(propertyName, extra.getProperty(), extra.isContainsMany(), temporalMode); + SqlTreeNodeExtraJoin extraJoin = new SqlTreeNodeExtraJoin(propertyName, extra.property(), extra.isContainsMany(), temporalMode); joinRegister.put(propertyName, extraJoin); return extraJoin; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeLoad.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeLoad.java index c5ac129b1..d2fa59c56 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeLoad.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeLoad.java @@ -23,6 +23,6 @@ interface SqlTreeLoad { /** * Return the reader for the single attribute query. */ - ScalarDataReader getSingleAttributeReader(); + ScalarDataReader singleAttributeReader(); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeLoadBean.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeLoadBean.java index 48b476d33..a542fc89d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeLoadBean.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeLoadBean.java @@ -73,14 +73,14 @@ class SqlTreeLoadBean implements SqlTreeLoad { } @Override - public final ScalarDataReader getSingleAttributeReader() { + public final ScalarDataReader singleAttributeReader() { if (properties == null || properties.length == 0) { // if we have no property ask first children (in a distinct select with join) if (children.length == 0) { // expected to be a findIds query return desc.idBinder().getBeanProperty(); } - return children[0].getSingleAttributeReader(); + return children[0].singleAttributeReader(); } if (properties[0] instanceof STreePropertyAssocOne) { STreePropertyAssocOne assocOne = (STreePropertyAssocOne)properties[0]; @@ -208,7 +208,7 @@ class SqlTreeLoadBean implements SqlTreeLoad { localBean = null; // ... but there may exist as reference bean in parent which has to be marked as deleted. if (parentBean != null && nodeBeanProp instanceof STreePropertyAssocOne) { - contextBean = ((STreePropertyAssocOne)nodeBeanProp).getValueAsEntityBean(parentBean); + contextBean = ((STreePropertyAssocOne)nodeBeanProp).valueAsEntityBean(parentBean); if (contextBean != null) { desc.markAsDeleted(contextBean); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java index a09e7ad41..8e8c23167 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java @@ -94,7 +94,7 @@ class SqlTreeNodeBean implements SqlTreeNode { this.disableLazyLoad = disableLazyLoad || !readIdNormal || desc.isRawSqlBased(); this.readOnly = readOnly; this.partialObject = props.isPartialObject(); - this.properties = props.getProps(); + this.properties = props.props(); this.children = myChildren == null ? Collections.emptyList() : myChildren; this.pathMap = createPathMap(prefix, desc); } @@ -248,7 +248,7 @@ class SqlTreeNodeBean implements SqlTreeNode { if (ctx.length() > 0) { ctx.append(" and"); } - ctx.append(" ").append(ctx.getTableAlias(prefix)).append("."); + ctx.append(" ").append(ctx.tableAlias(prefix)).append("."); ctx.append(inheritInfo.getWhere()); } } @@ -263,7 +263,7 @@ class SqlTreeNodeBean implements SqlTreeNode { if (ctx.length() > 0) { ctx.append(" and"); } - String ta = ctx.getTableAlias(prefix); + String ta = ctx.tableAlias(prefix); ctx.append(" ").append(extraWhere.replace("${ta}", ta)); } } @@ -280,7 +280,7 @@ class SqlTreeNodeBean implements SqlTreeNode { ctx.pushJoin(prefix); ctx.pushTableAlias(prefix); - baseTableAlias = ctx.getTableAlias(prefix); + baseTableAlias = ctx.tableAlias(prefix); // join and return SqlJoinType to use for child joins joinType = appendFromBaseTable(ctx, joinType); for (STreeProperty property : properties) { @@ -325,7 +325,7 @@ class SqlTreeNodeBean implements SqlTreeNode { appendJoinDiscriminator(ctx); } if (desc.isSoftDelete() && temporalMode != SpiQuery.TemporalMode.SOFT_DELETED) { - ctx.append(" and ").append(desc.softDeletePredicate(ctx.getTableAlias(prefix))); + ctx.append(" and ").append(desc.softDeletePredicate(ctx.tableAlias(prefix))); } return sqlJoinType; } @@ -335,9 +335,9 @@ class SqlTreeNodeBean implements SqlTreeNode { STreePropertyAssocMany manyProp = (STreePropertyAssocMany) nodeBeanProp; if (manyProp.hasJoinTable()) { - String alias = ctx.getTableAlias(prefix); + String alias = ctx.tableAlias(prefix); String[] split = SplitName.split(prefix); - String parentAlias = ctx.getTableAlias(split[0]); + String parentAlias = ctx.tableAlias(split[0]); String alias2 = alias + "z_"; // adding the additional join to the intersection table @@ -354,7 +354,7 @@ class SqlTreeNodeBean implements SqlTreeNode { void appendJoinDiscriminator(DbSqlContext ctx) { if (inheritInfo.getWhere() == null) return; - String alias = ctx.getTableAlias(prefix); + String alias = ctx.tableAlias(prefix); ctx.append(" and ").append(alias).append(".").append(inheritInfo.getWhere()); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeExtraJoin.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeExtraJoin.java index 5547d1c92..9b8806406 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeExtraJoin.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeExtraJoin.java @@ -85,7 +85,7 @@ final class SqlTreeNodeExtraJoin implements SqlTreeNode { return manyJoin; } - public String getName() { + public String name() { return prefix; } @@ -115,9 +115,9 @@ final class SqlTreeNodeExtraJoin implements SqlTreeNode { manyToMany = true; - String alias = ctx.getTableAlias(prefix); + String alias = ctx.tableAlias(prefix); String[] split = SplitName.split(prefix); - String parentAlias = ctx.getTableAlias(split[0]); + String parentAlias = ctx.tableAlias(split[0]); String alias2 = alias + "z_"; TableJoin manyToManyJoin = manyProp.intersectionTableJoin(); @@ -146,7 +146,7 @@ final class SqlTreeNodeExtraJoin implements SqlTreeNode { } joinType = assocBeanProperty.addJoin(joinType, prefix, ctx); if (!oneToOneExported && assocBeanProperty.isTargetSoftDelete() && temporalMode != SpiQuery.TemporalMode.SOFT_DELETED) { - ctx.append(" and ").append(assocBeanProperty.softDeletePredicate(ctx.getTableAlias(prefix))); + ctx.append(" and ").append(assocBeanProperty.softDeletePredicate(ctx.tableAlias(prefix))); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeManyWhereJoin.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeManyWhereJoin.java index cb2ba54e7..325f58cea 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeManyWhereJoin.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeManyWhereJoin.java @@ -73,7 +73,6 @@ final class SqlTreeNodeManyWhereJoin implements SqlTreeNode { */ @Override public void appendFrom(DbSqlContext ctx, SqlJoinType currentJoinType) { - // always use the join type as per this many where join // (OUTER for disjunction and otherwise INNER) appendFromBaseTable(ctx, manyJoinType); @@ -84,9 +83,8 @@ final class SqlTreeNodeManyWhereJoin implements SqlTreeNode { * intersection table if this is a ManyToMany node. */ private void appendFromBaseTable(DbSqlContext ctx, SqlJoinType joinType) { - - String alias = ctx.getTableAliasManyWhere(prefix); - String parentAlias = ctx.getTableAliasManyWhere(parentPrefix); + String alias = ctx.tableAliasManyWhere(prefix); + String parentAlias = ctx.tableAliasManyWhere(parentPrefix); if (nodeBeanProp instanceof STreePropertyAssocOne) { nodeBeanProp.addJoin(joinType, parentAlias, alias, ctx); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreePlan.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreePlan.java index 7a0e929ef..03343b336 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreePlan.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreePlan.java @@ -16,7 +16,7 @@ final class SqlTreePlan { this.dependentTables = dependentTables; } - SqlTreeRoot getRootNode() { + SqlTreeRoot rootNode() { return (SqlTreeRoot)rootNode; } @@ -24,11 +24,11 @@ final class SqlTreePlan { * Return the property that is associated with the many. There can only be one * per SqlSelect. This can be null. */ - STreePropertyAssocMany getManyProperty() { + STreePropertyAssocMany manyProperty() { return manyProperty; } - STreeProperty[] getEncryptedProps() { + STreeProperty[] encryptedProps() { return encryptedProps; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeProperties.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeProperties.java index 806af5ef6..acc0cfae7 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeProperties.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeProperties.java @@ -53,7 +53,7 @@ public final class SqlTreeProperties { } } - public STreeProperty[] getProps() { + public STreeProperty[] props() { return propsList.toArray(new STreeProperty[0]); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeRoot.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeRoot.java index 64938bc22..e9a927197 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeRoot.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeRoot.java @@ -29,6 +29,6 @@ interface SqlTreeRoot { /** * Return a Scalar single attribute reader based on the first property. */ - ScalarDataReader getSingleAttributeReader(); + ScalarDataReader singleAttributeReader(); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryPlanKey.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryPlanKey.java index 3ce478c92..f58ca42f0 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryPlanKey.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/OrmQueryPlanKey.java @@ -33,7 +33,7 @@ final class OrmQueryPlanKey implements CQueryPlanKey { } @Override - public String getPartialKey() { + public String partialKey() { return description; } diff --git a/ebean-test/src/test/java/io/ebean/xtest/internal/server/query/TestFutureRowCountErrorHandling.java b/ebean-test/src/test/java/io/ebean/xtest/internal/server/query/TestFutureRowCountErrorHandling.java index 27663c6f3..9d7360e44 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/internal/server/query/TestFutureRowCountErrorHandling.java +++ b/ebean-test/src/test/java/io/ebean/xtest/internal/server/query/TestFutureRowCountErrorHandling.java @@ -30,7 +30,7 @@ public class TestFutureRowCountErrorHandling extends BaseTestCase { FutureRowCount futureRowCount = query.findFutureCount(); QueryFutureRowCount internalRowCount = (QueryFutureRowCount) futureRowCount; - Transaction t = internalRowCount.getTransaction(); + Transaction t = internalRowCount.transaction(); try { futureRowCount.get(); @@ -57,7 +57,7 @@ public class TestFutureRowCountErrorHandling extends BaseTestCase { FutureIds futureIds = query.findFutureIds(); QueryFutureIds internalFuture = (QueryFutureIds) futureIds; - Transaction t = internalFuture.getTransaction(); + Transaction t = internalFuture.transaction(); try { internalFuture.get(); @@ -85,7 +85,7 @@ public class TestFutureRowCountErrorHandling extends BaseTestCase { FutureList futureList = query.findFutureList(); QueryFutureList internalFuture = (QueryFutureList) futureList; - Transaction t = internalFuture.getTransaction(); + Transaction t = internalFuture.transaction(); try { internalFuture.get(); From 348535ec6cb05f0b50df3f9f4db3d091d81a4ba0 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 18 Aug 2022 15:35:17 +1200 Subject: [PATCH 015/127] Bump to 13.8.0-SNAPSHOT --- composites/ebean-clickhouse/pom.xml | 10 +++++----- composites/ebean-cockroach/pom.xml | 10 +++++----- composites/ebean-db2/pom.xml | 10 +++++----- composites/ebean-h2/pom.xml | 10 +++++----- composites/ebean-hana/pom.xml | 10 +++++----- composites/ebean-mariadb/pom.xml | 10 +++++----- composites/ebean-mysql/pom.xml | 10 +++++----- composites/ebean-nuodb/pom.xml | 10 +++++----- composites/ebean-oracle/pom.xml | 10 +++++----- composites/ebean-postgres/pom.xml | 10 +++++----- composites/ebean-sqlite/pom.xml | 10 +++++----- composites/ebean-sqlserver/pom.xml | 10 +++++----- composites/ebean-yugabyte/pom.xml | 10 +++++----- composites/ebean/pom.xml | 10 +++++----- composites/pom.xml | 2 +- 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 | 14 +++++++------- ebean-ddl-generator/pom.xml | 8 ++++---- ebean-externalmapping-api/pom.xml | 2 +- ebean-externalmapping-xml/pom.xml | 10 +++++----- ebean-kotlin/pom.xml | 6 +++--- ebean-postgis/pom.xml | 8 ++++---- ebean-querybean/pom.xml | 10 +++++----- ebean-redis/pom.xml | 12 ++++++------ ebean-test/pom.xml | 10 +++++----- kotlin-querybean-generator/pom.xml | 10 +++++----- platforms/all/pom.xml | 28 +++++++++++++-------------- platforms/clickhouse/pom.xml | 4 ++-- platforms/db2/pom.xml | 4 ++-- platforms/h2/pom.xml | 4 ++-- platforms/hana/pom.xml | 4 ++-- platforms/hsqldb/pom.xml | 4 ++-- platforms/mariadb/pom.xml | 6 +++--- platforms/mysql/pom.xml | 4 ++-- platforms/nuodb/pom.xml | 4 ++-- platforms/oracle/pom.xml | 4 ++-- platforms/pom.xml | 2 +- platforms/postgres/pom.xml | 4 ++-- platforms/sqlanywhere/pom.xml | 4 ++-- platforms/sqlite/pom.xml | 4 ++-- platforms/sqlserver/pom.xml | 4 ++-- pom.xml | 2 +- querybean-generator/pom.xml | 2 +- tests/test-java16/pom.xml | 6 +++--- tests/test-kotlin/pom.xml | 4 ++-- 48 files changed, 186 insertions(+), 186 deletions(-) diff --git a/composites/ebean-clickhouse/pom.xml b/composites/ebean-clickhouse/pom.xml index 5af91d8b0..5c6d4b80c 100644 --- a/composites/ebean-clickhouse/pom.xml +++ b/composites/ebean-clickhouse/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-clickhouse @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-clickhouse - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT diff --git a/composites/ebean-cockroach/pom.xml b/composites/ebean-cockroach/pom.xml index ab97f9642..a370b6e56 100644 --- a/composites/ebean-cockroach/pom.xml +++ b/composites/ebean-cockroach/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-cockroach @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-postgres - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT diff --git a/composites/ebean-db2/pom.xml b/composites/ebean-db2/pom.xml index 3718fd183..11dc42d94 100644 --- a/composites/ebean-db2/pom.xml +++ b/composites/ebean-db2/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-db2 @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-db2 - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT diff --git a/composites/ebean-h2/pom.xml b/composites/ebean-h2/pom.xml index 8918b1a3e..b8e885d60 100644 --- a/composites/ebean-h2/pom.xml +++ b/composites/ebean-h2/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-h2 @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-h2 - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT diff --git a/composites/ebean-hana/pom.xml b/composites/ebean-hana/pom.xml index 31619dbdf..c07fc19e8 100644 --- a/composites/ebean-hana/pom.xml +++ b/composites/ebean-hana/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-hana @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-hana - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT diff --git a/composites/ebean-mariadb/pom.xml b/composites/ebean-mariadb/pom.xml index f3a5c357b..87b0f9100 100644 --- a/composites/ebean-mariadb/pom.xml +++ b/composites/ebean-mariadb/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-mariadb @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-mariadb - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT diff --git a/composites/ebean-mysql/pom.xml b/composites/ebean-mysql/pom.xml index 0e9219f31..3ad64f295 100644 --- a/composites/ebean-mysql/pom.xml +++ b/composites/ebean-mysql/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-mysql @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-mysql - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT diff --git a/composites/ebean-nuodb/pom.xml b/composites/ebean-nuodb/pom.xml index 67d293d1e..589c49259 100644 --- a/composites/ebean-nuodb/pom.xml +++ b/composites/ebean-nuodb/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-nuodb @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-nuodb - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT diff --git a/composites/ebean-oracle/pom.xml b/composites/ebean-oracle/pom.xml index cf9a9224c..61b6df847 100644 --- a/composites/ebean-oracle/pom.xml +++ b/composites/ebean-oracle/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-oracle @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-oracle - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT diff --git a/composites/ebean-postgres/pom.xml b/composites/ebean-postgres/pom.xml index c08967655..67f18f41f 100644 --- a/composites/ebean-postgres/pom.xml +++ b/composites/ebean-postgres/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-postgres @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-postgres - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT diff --git a/composites/ebean-sqlite/pom.xml b/composites/ebean-sqlite/pom.xml index 8149565f9..fd0fe16b6 100644 --- a/composites/ebean-sqlite/pom.xml +++ b/composites/ebean-sqlite/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-sqlite @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-sqlite - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT diff --git a/composites/ebean-sqlserver/pom.xml b/composites/ebean-sqlserver/pom.xml index 9ab1a547a..2317e1add 100644 --- a/composites/ebean-sqlserver/pom.xml +++ b/composites/ebean-sqlserver/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-sqlserver @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-sqlserver - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT diff --git a/composites/ebean-yugabyte/pom.xml b/composites/ebean-yugabyte/pom.xml index 9a0b0c8ea..280f859df 100644 --- a/composites/ebean-yugabyte/pom.xml +++ b/composites/ebean-yugabyte/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-yugabyte @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-postgres - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT diff --git a/composites/ebean/pom.xml b/composites/ebean/pom.xml index e30c463f9..ddee85d39 100644 --- a/composites/ebean/pom.xml +++ b/composites/ebean/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean (all platforms) @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-all - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT diff --git a/composites/pom.xml b/composites/pom.xml index 3a32d4775..eecebf0f5 100644 --- a/composites/pom.xml +++ b/composites/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT composites diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml index df62cb7f4..d327e113a 100644 --- a/ebean-api/pom.xml +++ b/ebean-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean api diff --git a/ebean-autotune/pom.xml b/ebean-autotune/pom.xml index a8b20c069..327581e1b 100644 --- a/ebean-autotune/pom.xml +++ b/ebean-autotune/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT @@ -26,7 +26,7 @@ io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT provided @@ -55,7 +55,7 @@ io.ebean ebean-platform-h2 - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index 5bf38eaee..366d0f4d1 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean bom @@ -78,88 +78,88 @@ io.ebean ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-core-type - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-ddl-generator - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-externalmapping-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-externalmapping-xml - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-autotune - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-querybean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean querybean-generator - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT provided io.ebean kotlin-querybean-generator - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT provided io.ebean ebean-test - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test io.ebean ebean-postgis - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-redis - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index 872fb9730..37fb07572 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index e25218321..2973d7175 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-core @@ -41,19 +41,19 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-core-type - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-externalmapping-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT @@ -144,21 +144,21 @@ io.ebean ebean-platform-h2 - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test io.ebean ebean-platform-postgres - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test io.ebean ebean-platform-sqlserver - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index ee7c5167a..98f69cab3 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT provided io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT provided @@ -58,7 +58,7 @@ io.ebean ebean-platform-all - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index ad21feb30..fa5529a14 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 1dbde4ab0..f4e13e3b5 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT @@ -28,7 +28,7 @@ io.ebean ebean-externalmapping-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT @@ -61,21 +61,21 @@ io.ebean ebean-platform-h2 - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test io.ebean ebean-ddl-generator - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test diff --git a/ebean-kotlin/pom.xml b/ebean-kotlin/pom.xml index beff65f2f..5e7f254f9 100644 --- a/ebean-kotlin/pom.xml +++ b/ebean-kotlin/pom.xml @@ -6,7 +6,7 @@ ebean-parent io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-kotlin @@ -28,7 +28,7 @@ io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT provided @@ -50,7 +50,7 @@ io.ebean ebean-test - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 7a081ae49..ced911279 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean postgis @@ -22,14 +22,14 @@ io.ebean ebean-platform-postgres - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT provided @@ -73,7 +73,7 @@ io.ebean ebean-test - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index cac8be938..7c29de344 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT provided @@ -63,21 +63,21 @@ io.ebean ebean-ddl-generator - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test io.ebean querybean-generator - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test io.ebean ebean-test - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index 6504cb0d3..4d5e639c1 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT provided io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT provided io.ebean ebean-querybean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test io.ebean querybean-generator - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test io.ebean ebean-test - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 9d55b07df..62baa62cb 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean test @@ -29,20 +29,20 @@ io.ebean ebean-platform-h2 - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT provided io.ebean ebean-ddl-generator - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT @@ -106,7 +106,7 @@ io.ebean ebean-platform-all - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index 58e945099..906cdb775 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test @@ -43,7 +43,7 @@ io.ebean ebean-core - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test @@ -64,14 +64,14 @@ io.ebean ebean-platform-h2 - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test io.ebean ebean-ddl-generator - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT test diff --git a/platforms/all/pom.xml b/platforms/all/pom.xml index ed24b9b41..a7dadef67 100644 --- a/platforms/all/pom.xml +++ b/platforms/all/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-platform-all @@ -14,67 +14,67 @@ io.ebean ebean-platform-h2 - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-clickhouse - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-db2 - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-hana - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-hsqldb - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-mysql - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-mariadb - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-nuodb - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-oracle - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-postgres - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-sqlanywhere - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-sqlite - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT io.ebean ebean-platform-sqlserver - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT diff --git a/platforms/clickhouse/pom.xml b/platforms/clickhouse/pom.xml index b1c8e47f4..f95a6f861 100644 --- a/platforms/clickhouse/pom.xml +++ b/platforms/clickhouse/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-platform-clickhouse @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT diff --git a/platforms/db2/pom.xml b/platforms/db2/pom.xml index 7c333eccd..8d499a357 100644 --- a/platforms/db2/pom.xml +++ b/platforms/db2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-platform-db2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT diff --git a/platforms/h2/pom.xml b/platforms/h2/pom.xml index 14c088cff..411ade3b5 100644 --- a/platforms/h2/pom.xml +++ b/platforms/h2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT ebean-platform-h2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.7.1-SNAPSHOT + 13.8.0-SNAPSHOT + + io.ebean + persistence-api + ${ebean-persistence-api.version} + + io.ebean ebean-annotation ${ebean-annotation.version} + + io.ebean + ebean-types + ${ebean-types.version} + io.ebean diff --git a/pom.xml b/pom.xml index 4db69b4cc..c2ba9165a 100644 --- a/pom.xml +++ b/pom.xml @@ -41,6 +41,8 @@ false 2.13.2 2.1.212 + 3.0 + 3.0 8.2 2.2 1.2 From a027c630b1822a25889a9606c7b898b8d91facba Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 18 Aug 2022 16:04:25 +1200 Subject: [PATCH 018/127] [maven-release-plugin] prepare release ebean-parent-13.8.0 --- composites/ebean-clickhouse/pom.xml | 14 ++++++++----- composites/ebean-cockroach/pom.xml | 14 ++++++++----- composites/ebean-db2/pom.xml | 14 ++++++++----- composites/ebean-h2/pom.xml | 14 ++++++++----- composites/ebean-hana/pom.xml | 14 ++++++++----- composites/ebean-mariadb/pom.xml | 14 ++++++++----- composites/ebean-mysql/pom.xml | 14 ++++++++----- composites/ebean-nuodb/pom.xml | 14 ++++++++----- composites/ebean-oracle/pom.xml | 14 ++++++++----- composites/ebean-postgres/pom.xml | 14 ++++++++----- composites/ebean-sqlite/pom.xml | 14 ++++++++----- composites/ebean-sqlserver/pom.xml | 14 ++++++++----- composites/ebean-yugabyte/pom.xml | 14 ++++++++----- composites/ebean/pom.xml | 14 ++++++++----- composites/pom.xml | 2 +- ebean-api/pom.xml | 2 +- ebean-autotune/pom.xml | 8 ++++---- ebean-bom/pom.xml | 30 +++++++++++++-------------- ebean-core-type/pom.xml | 4 ++-- ebean-core/pom.xml | 16 +++++++-------- ebean-ddl-generator/pom.xml | 8 ++++---- ebean-externalmapping-api/pom.xml | 2 +- ebean-externalmapping-xml/pom.xml | 12 +++++------ ebean-postgis/pom.xml | 8 ++++---- ebean-querybean/pom.xml | 10 ++++----- ebean-redis/pom.xml | 12 +++++------ ebean-test/pom.xml | 10 ++++----- kotlin-querybean-generator/pom.xml | 10 ++++----- platforms/all/pom.xml | 32 ++++++++++++++++------------- platforms/clickhouse/pom.xml | 8 ++++++-- platforms/db2/pom.xml | 8 ++++++-- platforms/h2/pom.xml | 8 ++++++-- platforms/hana/pom.xml | 8 ++++++-- platforms/hsqldb/pom.xml | 8 ++++++-- platforms/mariadb/pom.xml | 10 ++++++--- platforms/mysql/pom.xml | 8 ++++++-- platforms/nuodb/pom.xml | 8 ++++++-- platforms/oracle/pom.xml | 8 ++++++-- platforms/pom.xml | 2 +- platforms/postgres/pom.xml | 8 ++++++-- platforms/sqlanywhere/pom.xml | 8 ++++++-- platforms/sqlite/pom.xml | 8 ++++++-- platforms/sqlserver/pom.xml | 8 ++++++-- pom.xml | 4 ++-- querybean-generator/pom.xml | 2 +- 45 files changed, 294 insertions(+), 182 deletions(-) diff --git a/composites/ebean-clickhouse/pom.xml b/composites/ebean-clickhouse/pom.xml index 5c6d4b80c..d0345f4b9 100644 --- a/composites/ebean-clickhouse/pom.xml +++ b/composites/ebean-clickhouse/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-clickhouse @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-clickhouse - 13.8.0-SNAPSHOT + 13.8.0 + + + ebean-parent-13.8.0 + diff --git a/composites/ebean-cockroach/pom.xml b/composites/ebean-cockroach/pom.xml index a370b6e56..9b0fdafd8 100644 --- a/composites/ebean-cockroach/pom.xml +++ b/composites/ebean-cockroach/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-cockroach @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-postgres - 13.8.0-SNAPSHOT + 13.8.0 + + + ebean-parent-13.8.0 + diff --git a/composites/ebean-db2/pom.xml b/composites/ebean-db2/pom.xml index 11dc42d94..070b8630f 100644 --- a/composites/ebean-db2/pom.xml +++ b/composites/ebean-db2/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-db2 @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-db2 - 13.8.0-SNAPSHOT + 13.8.0 + + + ebean-parent-13.8.0 + diff --git a/composites/ebean-h2/pom.xml b/composites/ebean-h2/pom.xml index b8e885d60..8f69badf8 100644 --- a/composites/ebean-h2/pom.xml +++ b/composites/ebean-h2/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-h2 @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-h2 - 13.8.0-SNAPSHOT + 13.8.0 + + + ebean-parent-13.8.0 + diff --git a/composites/ebean-hana/pom.xml b/composites/ebean-hana/pom.xml index c07fc19e8..b340974fa 100644 --- a/composites/ebean-hana/pom.xml +++ b/composites/ebean-hana/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-hana @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-hana - 13.8.0-SNAPSHOT + 13.8.0 + + + ebean-parent-13.8.0 + diff --git a/composites/ebean-mariadb/pom.xml b/composites/ebean-mariadb/pom.xml index 87b0f9100..1fb9cc8fa 100644 --- a/composites/ebean-mariadb/pom.xml +++ b/composites/ebean-mariadb/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-mariadb @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-mariadb - 13.8.0-SNAPSHOT + 13.8.0 + + + ebean-parent-13.8.0 + diff --git a/composites/ebean-mysql/pom.xml b/composites/ebean-mysql/pom.xml index 3ad64f295..49f2a6c47 100644 --- a/composites/ebean-mysql/pom.xml +++ b/composites/ebean-mysql/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-mysql @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-mysql - 13.8.0-SNAPSHOT + 13.8.0 + + + ebean-parent-13.8.0 + diff --git a/composites/ebean-nuodb/pom.xml b/composites/ebean-nuodb/pom.xml index 589c49259..623ab07f5 100644 --- a/composites/ebean-nuodb/pom.xml +++ b/composites/ebean-nuodb/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-nuodb @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-nuodb - 13.8.0-SNAPSHOT + 13.8.0 + + + ebean-parent-13.8.0 + diff --git a/composites/ebean-oracle/pom.xml b/composites/ebean-oracle/pom.xml index 61b6df847..841c9f792 100644 --- a/composites/ebean-oracle/pom.xml +++ b/composites/ebean-oracle/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-oracle @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-oracle - 13.8.0-SNAPSHOT + 13.8.0 + + + ebean-parent-13.8.0 + diff --git a/composites/ebean-postgres/pom.xml b/composites/ebean-postgres/pom.xml index 67f18f41f..9dec9d227 100644 --- a/composites/ebean-postgres/pom.xml +++ b/composites/ebean-postgres/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-postgres @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-postgres - 13.8.0-SNAPSHOT + 13.8.0 + + + ebean-parent-13.8.0 + diff --git a/composites/ebean-sqlite/pom.xml b/composites/ebean-sqlite/pom.xml index fd0fe16b6..bdb9c4263 100644 --- a/composites/ebean-sqlite/pom.xml +++ b/composites/ebean-sqlite/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-sqlite @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-sqlite - 13.8.0-SNAPSHOT + 13.8.0 + + + ebean-parent-13.8.0 + diff --git a/composites/ebean-sqlserver/pom.xml b/composites/ebean-sqlserver/pom.xml index 2317e1add..ec05a6226 100644 --- a/composites/ebean-sqlserver/pom.xml +++ b/composites/ebean-sqlserver/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-sqlserver @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-sqlserver - 13.8.0-SNAPSHOT + 13.8.0 + + + ebean-parent-13.8.0 + diff --git a/composites/ebean-yugabyte/pom.xml b/composites/ebean-yugabyte/pom.xml index 280f859df..ede706cfd 100644 --- a/composites/ebean-yugabyte/pom.xml +++ b/composites/ebean-yugabyte/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-yugabyte @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-postgres - 13.8.0-SNAPSHOT + 13.8.0 + + + ebean-parent-13.8.0 + diff --git a/composites/ebean/pom.xml b/composites/ebean/pom.xml index ddee85d39..99f9d3150 100644 --- a/composites/ebean/pom.xml +++ b/composites/ebean/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean (all platforms) @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-all - 13.8.0-SNAPSHOT + 13.8.0 + + + ebean-parent-13.8.0 + diff --git a/composites/pom.xml b/composites/pom.xml index eecebf0f5..9189a617e 100644 --- a/composites/pom.xml +++ b/composites/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0-SNAPSHOT + 13.8.0 composites diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml index ee90c3e46..74bcd2a19 100644 --- a/ebean-api/pom.xml +++ b/ebean-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean api diff --git a/ebean-autotune/pom.xml b/ebean-autotune/pom.xml index 327581e1b..c809eb6f3 100644 --- a/ebean-autotune/pom.xml +++ b/ebean-autotune/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0-SNAPSHOT + 13.8.0 @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.8.0 ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 provided @@ -55,7 +55,7 @@ io.ebean ebean-platform-h2 - 13.8.0-SNAPSHOT + 13.8.0 test diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index d332568c6..13ece1d86 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean bom @@ -89,88 +89,88 @@ io.ebean ebean - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-core-type - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-ddl-generator - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-externalmapping-api - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-externalmapping-xml - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-autotune - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-querybean - 13.8.0-SNAPSHOT + 13.8.0 io.ebean querybean-generator - 13.8.0-SNAPSHOT + 13.8.0 provided io.ebean kotlin-querybean-generator - 13.8.0-SNAPSHOT + 13.8.0 provided io.ebean ebean-test - 13.8.0-SNAPSHOT + 13.8.0 test io.ebean ebean-postgis - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-redis - 13.8.0-SNAPSHOT + 13.8.0 diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index 37fb07572..08f3280f4 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index 2973d7175..c5ff92a86 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-core @@ -15,7 +15,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.8.0 @@ -41,19 +41,19 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-core-type - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-externalmapping-api - 13.8.0-SNAPSHOT + 13.8.0 @@ -144,21 +144,21 @@ io.ebean ebean-platform-h2 - 13.8.0-SNAPSHOT + 13.8.0 test io.ebean ebean-platform-postgres - 13.8.0-SNAPSHOT + 13.8.0 test io.ebean ebean-platform-sqlserver - 13.8.0-SNAPSHOT + 13.8.0 test diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index 98f69cab3..fe80d9989 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 13.8.0-SNAPSHOT + 13.8.0 provided io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 provided @@ -58,7 +58,7 @@ io.ebean ebean-platform-all - 13.8.0-SNAPSHOT + 13.8.0 test diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index fa5529a14..105dc85f7 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index f4e13e3b5..705782ea2 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,12 +4,12 @@ ebean-parent io.ebean - 13.8.0-SNAPSHOT + 13.8.0 scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.8.0 ebean external mapping xml @@ -28,7 +28,7 @@ io.ebean ebean-externalmapping-api - 13.8.0-SNAPSHOT + 13.8.0 @@ -61,21 +61,21 @@ io.ebean ebean-platform-h2 - 13.8.0-SNAPSHOT + 13.8.0 test io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 test io.ebean ebean-ddl-generator - 13.8.0-SNAPSHOT + 13.8.0 test diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index ced911279..9860b6a15 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean postgis @@ -22,14 +22,14 @@ io.ebean ebean-platform-postgres - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 provided @@ -73,7 +73,7 @@ io.ebean ebean-test - 13.8.0-SNAPSHOT + 13.8.0 test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 7c29de344..2ea8c03d8 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 provided @@ -63,21 +63,21 @@ io.ebean ebean-ddl-generator - 13.8.0-SNAPSHOT + 13.8.0 test io.ebean querybean-generator - 13.8.0-SNAPSHOT + 13.8.0 test io.ebean ebean-test - 13.8.0-SNAPSHOT + 13.8.0 test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index 4d5e639c1..c425969ed 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 provided io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 provided io.ebean ebean-querybean - 13.8.0-SNAPSHOT + 13.8.0 test io.ebean querybean-generator - 13.8.0-SNAPSHOT + 13.8.0 test io.ebean ebean-test - 13.8.0-SNAPSHOT + 13.8.0 test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 62baa62cb..5675fa240 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean test @@ -29,20 +29,20 @@ io.ebean ebean-platform-h2 - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 provided io.ebean ebean-ddl-generator - 13.8.0-SNAPSHOT + 13.8.0 @@ -106,7 +106,7 @@ io.ebean ebean-platform-all - 13.8.0-SNAPSHOT + 13.8.0 test diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index 906cdb775..bc212dfa8 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0-SNAPSHOT + 13.8.0 kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 13.8.0-SNAPSHOT + 13.8.0 test @@ -43,7 +43,7 @@ io.ebean ebean-core - 13.8.0-SNAPSHOT + 13.8.0 test @@ -64,14 +64,14 @@ io.ebean ebean-platform-h2 - 13.8.0-SNAPSHOT + 13.8.0 test io.ebean ebean-ddl-generator - 13.8.0-SNAPSHOT + 13.8.0 test diff --git a/platforms/all/pom.xml b/platforms/all/pom.xml index a7dadef67..945203b4d 100644 --- a/platforms/all/pom.xml +++ b/platforms/all/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-platform-all @@ -14,68 +14,72 @@ io.ebean ebean-platform-h2 - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-clickhouse - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-db2 - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-hana - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-hsqldb - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-mysql - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-mariadb - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-nuodb - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-oracle - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-postgres - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-sqlanywhere - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-sqlite - 13.8.0-SNAPSHOT + 13.8.0 io.ebean ebean-platform-sqlserver - 13.8.0-SNAPSHOT + 13.8.0 + + + ebean-parent-13.8.0 + diff --git a/platforms/clickhouse/pom.xml b/platforms/clickhouse/pom.xml index f95a6f861..86946cbc6 100644 --- a/platforms/clickhouse/pom.xml +++ b/platforms/clickhouse/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-platform-clickhouse @@ -14,8 +14,12 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 + + + ebean-parent-13.8.0 + diff --git a/platforms/db2/pom.xml b/platforms/db2/pom.xml index 8d499a357..01be657eb 100644 --- a/platforms/db2/pom.xml +++ b/platforms/db2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-platform-db2 @@ -14,8 +14,12 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 + + + ebean-parent-13.8.0 + diff --git a/platforms/h2/pom.xml b/platforms/h2/pom.xml index 411ade3b5..bd097a854 100644 --- a/platforms/h2/pom.xml +++ b/platforms/h2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.0-SNAPSHOT + 13.8.0 ebean-platform-h2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.8.0-SNAPSHOT + 13.8.0 @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.8.0 + HEAD ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 13.8.0 + 13.8.1-SNAPSHOT provided @@ -55,7 +55,7 @@ io.ebean ebean-platform-h2 - 13.8.0 + 13.8.1-SNAPSHOT test diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index 13ece1d86..e67c3c9f3 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0 + 13.8.1-SNAPSHOT ebean bom @@ -89,88 +89,88 @@ io.ebean ebean - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-api - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-core - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-core-type - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-ddl-generator - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-externalmapping-api - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-externalmapping-xml - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-autotune - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-querybean - 13.8.0 + 13.8.1-SNAPSHOT io.ebean querybean-generator - 13.8.0 + 13.8.1-SNAPSHOT provided io.ebean kotlin-querybean-generator - 13.8.0 + 13.8.1-SNAPSHOT provided io.ebean ebean-test - 13.8.0 + 13.8.1-SNAPSHOT test io.ebean ebean-postgis - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-redis - 13.8.0 + 13.8.1-SNAPSHOT diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index 08f3280f4..7cece551f 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0 + 13.8.1-SNAPSHOT ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 13.8.0 + 13.8.1-SNAPSHOT diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index c5ff92a86..12cfd5c72 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.8.0 + 13.8.1-SNAPSHOT ebean-core @@ -15,7 +15,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.8.0 + HEAD @@ -41,19 +41,19 @@ io.ebean ebean-api - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-core-type - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-externalmapping-api - 13.8.0 + 13.8.1-SNAPSHOT @@ -144,21 +144,21 @@ io.ebean ebean-platform-h2 - 13.8.0 + 13.8.1-SNAPSHOT test io.ebean ebean-platform-postgres - 13.8.0 + 13.8.1-SNAPSHOT test io.ebean ebean-platform-sqlserver - 13.8.0 + 13.8.1-SNAPSHOT test diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index fe80d9989..b2d0a7b79 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0 + 13.8.1-SNAPSHOT ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 13.8.0 + 13.8.1-SNAPSHOT provided io.ebean ebean-core - 13.8.0 + 13.8.1-SNAPSHOT provided @@ -58,7 +58,7 @@ io.ebean ebean-platform-all - 13.8.0 + 13.8.1-SNAPSHOT test diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index 105dc85f7..1e5e9ba87 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0 + 13.8.1-SNAPSHOT ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 705782ea2..0973886bc 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,12 +4,12 @@ ebean-parent io.ebean - 13.8.0 + 13.8.1-SNAPSHOT scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.8.0 + HEAD ebean external mapping xml @@ -28,7 +28,7 @@ io.ebean ebean-externalmapping-api - 13.8.0 + 13.8.1-SNAPSHOT @@ -61,21 +61,21 @@ io.ebean ebean-platform-h2 - 13.8.0 + 13.8.1-SNAPSHOT test io.ebean ebean-core - 13.8.0 + 13.8.1-SNAPSHOT test io.ebean ebean-ddl-generator - 13.8.0 + 13.8.1-SNAPSHOT test diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 9860b6a15..5e00d8e38 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0 + 13.8.1-SNAPSHOT ebean postgis @@ -22,14 +22,14 @@ io.ebean ebean-platform-postgres - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-core - 13.8.0 + 13.8.1-SNAPSHOT provided @@ -73,7 +73,7 @@ io.ebean ebean-test - 13.8.0 + 13.8.1-SNAPSHOT test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 2ea8c03d8..59a5320c8 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0 + 13.8.1-SNAPSHOT ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 13.8.0 + 13.8.1-SNAPSHOT provided @@ -63,21 +63,21 @@ io.ebean ebean-ddl-generator - 13.8.0 + 13.8.1-SNAPSHOT test io.ebean querybean-generator - 13.8.0 + 13.8.1-SNAPSHOT test io.ebean ebean-test - 13.8.0 + 13.8.1-SNAPSHOT test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index c425969ed..f716a18d9 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0 + 13.8.1-SNAPSHOT ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 13.8.0 + 13.8.1-SNAPSHOT provided io.ebean ebean-core - 13.8.0 + 13.8.1-SNAPSHOT provided io.ebean ebean-querybean - 13.8.0 + 13.8.1-SNAPSHOT test io.ebean querybean-generator - 13.8.0 + 13.8.1-SNAPSHOT test io.ebean ebean-test - 13.8.0 + 13.8.1-SNAPSHOT test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 5675fa240..068a8b705 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0 + 13.8.1-SNAPSHOT ebean test @@ -29,20 +29,20 @@ io.ebean ebean-platform-h2 - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-core - 13.8.0 + 13.8.1-SNAPSHOT provided io.ebean ebean-ddl-generator - 13.8.0 + 13.8.1-SNAPSHOT @@ -106,7 +106,7 @@ io.ebean ebean-platform-all - 13.8.0 + 13.8.1-SNAPSHOT test diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index bc212dfa8..9bb408ca9 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.0 + 13.8.1-SNAPSHOT kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 13.8.0 + 13.8.1-SNAPSHOT test @@ -43,7 +43,7 @@ io.ebean ebean-core - 13.8.0 + 13.8.1-SNAPSHOT test @@ -64,14 +64,14 @@ io.ebean ebean-platform-h2 - 13.8.0 + 13.8.1-SNAPSHOT test io.ebean ebean-ddl-generator - 13.8.0 + 13.8.1-SNAPSHOT test diff --git a/platforms/all/pom.xml b/platforms/all/pom.xml index 945203b4d..21ab14e0a 100644 --- a/platforms/all/pom.xml +++ b/platforms/all/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.0 + 13.8.1-SNAPSHOT ebean-platform-all @@ -14,72 +14,68 @@ io.ebean ebean-platform-h2 - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-platform-clickhouse - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-platform-db2 - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-platform-hana - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-platform-hsqldb - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-platform-mysql - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-platform-mariadb - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-platform-nuodb - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-platform-oracle - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-platform-postgres - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-platform-sqlanywhere - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-platform-sqlite - 13.8.0 + 13.8.1-SNAPSHOT io.ebean ebean-platform-sqlserver - 13.8.0 + 13.8.1-SNAPSHOT - - - ebean-parent-13.8.0 - diff --git a/platforms/clickhouse/pom.xml b/platforms/clickhouse/pom.xml index 86946cbc6..6cd83c906 100644 --- a/platforms/clickhouse/pom.xml +++ b/platforms/clickhouse/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.0 + 13.8.1-SNAPSHOT ebean-platform-clickhouse @@ -14,12 +14,8 @@ io.ebean ebean-api - 13.8.0 + 13.8.1-SNAPSHOT - - - ebean-parent-13.8.0 - diff --git a/platforms/db2/pom.xml b/platforms/db2/pom.xml index 01be657eb..280c11930 100644 --- a/platforms/db2/pom.xml +++ b/platforms/db2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.0 + 13.8.1-SNAPSHOT ebean-platform-db2 @@ -14,12 +14,8 @@ io.ebean ebean-api - 13.8.0 + 13.8.1-SNAPSHOT - - - ebean-parent-13.8.0 - diff --git a/platforms/h2/pom.xml b/platforms/h2/pom.xml index bd097a854..b8013788c 100644 --- a/platforms/h2/pom.xml +++ b/platforms/h2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.0 + 13.8.1-SNAPSHOT ebean-platform-h2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.8.0 + 13.8.1-SNAPSHOT - org.slf4j - slf4j-api - 1.7.36 - provided + io.avaje + avaje-applog + 1.0 + + + + + io.avaje + avaje-applog-slf4j + 1.0 @@ -30,12 +32,6 @@ 2.2 - - io.avaje - avaje-applog-slf4j - 1.0 - - + + org.slf4j + slf4j-api + 1.7.36 + true + + com.fasterxml.jackson.core diff --git a/ebean-api/src/main/java/io/ebean/DbContext.java b/ebean-api/src/main/java/io/ebean/DbContext.java index 3ce395cf7..c098f079a 100644 --- a/ebean-api/src/main/java/io/ebean/DbContext.java +++ b/ebean-api/src/main/java/io/ebean/DbContext.java @@ -2,10 +2,9 @@ package io.ebean; import io.ebean.config.BeanNotEnhancedException; import io.ebean.datasource.DataSourceConfigurationException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.persistence.PersistenceException; +import java.lang.System.Logger.Level; import java.util.HashMap; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.locks.ReentrantLock; @@ -15,7 +14,8 @@ import java.util.concurrent.locks.ReentrantLock; */ final class DbContext { - private static final Logger log = LoggerFactory.getLogger("io.ebean"); + private static final System.Logger log = EbeanVersion.log; + static { EbeanVersion.getVersion(); } @@ -52,7 +52,7 @@ final class DbContext { throw new DataSourceConfigurationException(msg, e); } catch (Throwable e) { - log.error("Error trying to create the default Database", e); + log.log(Level.ERROR, "Error trying to create the default Database", e); throw new RuntimeException(e); } } diff --git a/ebean-api/src/main/java/io/ebean/EbeanVersion.java b/ebean-api/src/main/java/io/ebean/EbeanVersion.java index c47a546c0..7eaf5a52a 100644 --- a/ebean-api/src/main/java/io/ebean/EbeanVersion.java +++ b/ebean-api/src/main/java/io/ebean/EbeanVersion.java @@ -1,9 +1,12 @@ package io.ebean; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import io.avaje.applog.AppLog; -import java.io.*; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.LineNumberReader; +import java.lang.System.Logger.Level; import java.util.Properties; /** @@ -13,7 +16,7 @@ import java.util.Properties; */ public final class EbeanVersion { - private static final Logger log = LoggerFactory.getLogger("io.ebean"); + public static final System.Logger log = AppLog.getLogger("io.ebean"); /** * Maintain the minimum ebean-agent version manually based on required ebean-agent bug fixes. @@ -21,6 +24,7 @@ public final class EbeanVersion { private static final int MIN_AGENT_MAJOR_VERSION = 12; private static final int MIN_AGENT_MINOR_VERSION = 12; private static String version = "unknown"; + static { readVersion(); checkAgentVersion(); @@ -32,12 +36,12 @@ public final class EbeanVersion { if (in != null) { try (LineNumberReader reader = new LineNumberReader(new InputStreamReader(in))) { version = reader.readLine(); - log.info("ebean version: {}", version); + log.log(Level.INFO, "ebean version: {0}", version); } } } } catch (IOException e) { - log.warn("Could not determine ebean version: {}", e.getMessage()); + log.log(Level.WARNING, "Could not determine ebean version: {0}", e.getMessage()); } } @@ -49,13 +53,13 @@ public final class EbeanVersion { String agentVersion = readVersion(in); if (agentVersion != null) { if (checkMinAgentVersion(agentVersion)) { - log.error("Expected minimum ebean-agent version {}.{}.0 but we have {}, please update the ebean-agent", MIN_AGENT_MAJOR_VERSION, MIN_AGENT_MINOR_VERSION, agentVersion); + log.log(Level.ERROR, "Expected minimum ebean-agent version {0}.{1}.0 but we have {2}, please update the ebean-agent", MIN_AGENT_MAJOR_VERSION, MIN_AGENT_MINOR_VERSION, agentVersion); } } } } } catch (IOException e) { - log.warn("Could not check minimum ebean-agent version {}.{}.0 required due to - {}", MIN_AGENT_MAJOR_VERSION, MIN_AGENT_MINOR_VERSION, e.getMessage()); + log.log(Level.WARNING, "Could not check minimum ebean-agent version {0}.{1}.0 required due to - {2}", MIN_AGENT_MAJOR_VERSION, MIN_AGENT_MINOR_VERSION, e.getMessage()); } } diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java index 20b7ccd00..53d416372 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java @@ -1,32 +1,25 @@ package io.ebean.config.dbplatform; import io.ebean.BackgroundExecutor; +import io.ebean.EbeanVersion; import io.ebean.Query; -import io.ebean.annotation.PartitionMode; import io.ebean.annotation.PersistBatch; import io.ebean.annotation.Platform; import io.ebean.config.CustomDbTypeMapping; import io.ebean.config.PlatformConfig; import io.ebean.util.JdbcClose; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.persistence.PersistenceException; import javax.sql.DataSource; -import java.sql.Connection; -import java.sql.DatabaseMetaData; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; -import java.sql.Types; +import java.lang.System.Logger.Level; +import java.sql.*; /** * Database platform specific settings. */ public class DatabasePlatform { - private static final Logger log = LoggerFactory.getLogger("io.ebean"); + private static final System.Logger log = EbeanVersion.log; /** * Behavior used when ending a query only transaction (at read committed isolation level). @@ -60,7 +53,7 @@ public class DatabasePlatform { * Can we use native java time API objects in * {@link ResultSet#getObject(int, Class)} and * {@link PreparedStatement#setObject(int, Object)}. - * + *

* Not all drivers (DB2 e.g.) will support this. */ protected boolean supportsNativeJavaTime = true; @@ -165,7 +158,7 @@ public class DatabasePlatform { * want to use quoted identifiers for. The backticks get converted to the * appropriate characters in convertQuotedIdentifiers */ - private static final char[] QUOTED_IDENTIFIERS = new char[] { '"', '\'', '[', ']', '`' }; + private static final char[] QUOTED_IDENTIFIERS = new char[]{'"', '\'', '[', ']', '`'}; /** * The non-escaped like clause (to stop slash being escaped on some platforms). @@ -666,7 +659,7 @@ public class DatabasePlatform { if (isQuote(dbName.charAt(dbName.length() - 1))) { return openQuote + dbName.substring(1, dbName.length() - 1) + closeQuote; } else { - log.error("Missing backquote on [" + dbName + "]"); + log.log(Level.ERROR, "Missing backquote on [" + dbName + "]"); } } else if (allQuotedIdentifiers) { return openQuote + dbName + closeQuote; @@ -729,7 +722,7 @@ public class DatabasePlatform { protected String withForUpdate(String sql, Query.LockWait lockWait, Query.LockType lockType) { // silently assume the database does not support the "for update" clause. - log.info("it seems your database does not support the 'for update' clause"); + log.log(Level.INFO, "it seems your database does not support the 'for update' clause"); return sql; } @@ -763,7 +756,7 @@ public class DatabasePlatform { if (!schemaExists(dbSchema, connection)) { Statement query = connection.createStatement(); try { - log.debug("create schema:{}", dbSchema); + log.log(Level.DEBUG, "create schema:{0}", dbSchema); query.executeUpdate("create schema " + dbSchema); } finally { JdbcClose.close(query); diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/SequenceIdGenerator.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/SequenceIdGenerator.java index 10e8c924b..658c5e94e 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/SequenceIdGenerator.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/SequenceIdGenerator.java @@ -1,13 +1,13 @@ package io.ebean.config.dbplatform; +import io.avaje.applog.AppLog; import io.ebean.BackgroundExecutor; import io.ebean.Transaction; import io.ebean.util.JdbcClose; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.persistence.PersistenceException; import javax.sql.DataSource; +import java.lang.System.Logger.Level; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -24,7 +24,7 @@ import java.util.concurrent.locks.ReentrantLock; */ public abstract class SequenceIdGenerator implements PlatformIdGenerator { - protected static final Logger log = LoggerFactory.getLogger("io.ebean.SEQ"); + protected static final System.Logger log = AppLog.getLogger("io.ebean.SEQ"); private final ReentrantLock lock = new ReentrantLock(); protected final String seqName; @@ -120,7 +120,7 @@ public abstract class SequenceIdGenerator implements PlatformIdGenerator { protected void loadInBackground(final int requestSize) { if (currentlyBackgroundLoading.get()) { // skip as already background loading - log.debug("... skip background sequence load (another load in progress)"); + log.log(Level.DEBUG, "... skip background sequence load (another load in progress)"); return; } currentlyBackgroundLoading.set(true); @@ -152,9 +152,6 @@ public abstract class SequenceIdGenerator implements PlatformIdGenerator { resultSet = statement.executeQuery(); List newIds = readIds(resultSet, requestSize); - if (log.isTraceEnabled()) { - log.trace("seq:{} loaded:{} sql:{}", seqName, newIds.size(), sql); - } if (newIds.isEmpty()) { throw new PersistenceException("Always expecting more than 1 row from " + sql); } @@ -164,7 +161,7 @@ public abstract class SequenceIdGenerator implements PlatformIdGenerator { } catch (SQLException e) { if (e.getMessage().contains("Database is already closed")) { String msg = "Error getting SEQ when DB shutting down " + e.getMessage(); - log.error(msg); + log.log(Level.ERROR, msg); System.out.println(msg); return Collections.emptyList(); } else { diff --git a/ebean-api/src/main/java/io/ebean/event/ShutdownManager.java b/ebean-api/src/main/java/io/ebean/event/ShutdownManager.java index 4341c5cfd..2547ee542 100644 --- a/ebean-api/src/main/java/io/ebean/event/ShutdownManager.java +++ b/ebean-api/src/main/java/io/ebean/event/ShutdownManager.java @@ -1,10 +1,10 @@ package io.ebean.event; import io.ebean.Database; +import io.ebean.EbeanVersion; import io.ebean.service.SpiContainer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.lang.System.Logger.Level; import java.sql.Driver; import java.sql.DriverManager; import java.sql.SQLException; @@ -20,13 +20,14 @@ import java.util.concurrent.locks.ReentrantLock; */ public final class ShutdownManager { - private static final Logger log = LoggerFactory.getLogger("io.ebean"); + private static final System.Logger log = EbeanVersion.log; private static final ReentrantLock lock = new ReentrantLock(); private static final List databases = new ArrayList<>(); private static final ShutdownHook shutdownHook = new ShutdownHook(); private static boolean stopping; private static SpiContainer container; + static { // Register the Shutdown hook registerShutdownHook(); @@ -120,8 +121,8 @@ public final class ShutdownManager { // Already run shutdown... return; } - if (log.isDebugEnabled()) { - log.debug("Ebean shutting down"); + if (log.isLoggable(Level.DEBUG)) { + log.log(Level.DEBUG, "Ebean shutting down"); } stopping = true; deregisterShutdownHook(); @@ -133,7 +134,7 @@ public final class ShutdownManager { Runnable r = (Runnable) ClassUtil.newInstance(shutdownRunner); r.run(); } catch (Exception e) { - log.error("Error running custom shutdown runnable", e); + log.log(Level.ERROR, "Error running custom shutdown runnable", e); } } @@ -147,7 +148,7 @@ public final class ShutdownManager { try { server.shutdown(); } catch (Exception ex) { - log.error("Error executing shutdown runnable", ex); + log.log(Level.ERROR, "Error executing shutdown runnable", ex); ex.printStackTrace(); } } @@ -165,10 +166,10 @@ public final class ShutdownManager { while (drivers.hasMoreElements()) { Driver driver = drivers.nextElement(); try { - log.info("De-registering jdbc driver: " + driver); + log.log(Level.INFO, "De-registering jdbc driver: " + driver); DriverManager.deregisterDriver(driver); } catch (SQLException e) { - log.error("Error de-registering driver " + driver, e); + log.log(Level.ERROR, "Error de-registering driver " + driver, e); } } } @@ -204,6 +205,7 @@ public final class ShutdownManager { private ShutdownHook() { super("EbeanHook"); } + @Override public void run() { ShutdownManager.shutdown(); diff --git a/ebean-api/src/main/java/io/ebean/text/csv/DefaultCsvCallback.java b/ebean-api/src/main/java/io/ebean/text/csv/DefaultCsvCallback.java index cec104355..d2e6d3f98 100644 --- a/ebean-api/src/main/java/io/ebean/text/csv/DefaultCsvCallback.java +++ b/ebean-api/src/main/java/io/ebean/text/csv/DefaultCsvCallback.java @@ -1,9 +1,10 @@ package io.ebean.text.csv; import io.ebean.Database; +import io.ebean.EbeanVersion; import io.ebean.Transaction; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; + +import java.lang.System.Logger.Level; /** * Provides the default implementation of CsvCallback. @@ -20,7 +21,7 @@ import org.slf4j.LoggerFactory; */ public class DefaultCsvCallback implements CsvCallback { - private static final Logger log = LoggerFactory.getLogger(DefaultCsvCallback.class); + private static final System.Logger log = EbeanVersion.log; /** * The transaction to use (if not using CsvCallback). @@ -128,7 +129,7 @@ public class DefaultCsvCallback implements CsvCallback { // related beans (e.g. customer -> customer.billingAddress server.save(bean, transaction); if (logInfoFrequency > 0 && (row % logInfoFrequency == 0)) { - log.debug("processed {} rows", row); + log.log(Level.DEBUG, "processed {0} rows", row); } } @@ -139,7 +140,7 @@ public class DefaultCsvCallback implements CsvCallback { public void end(int row) { commitTransactionIfCreated(); exeTime = System.currentTimeMillis() - startTime; - log.info("Csv finished, rows[{}] exeMillis[{}]", row, exeTime); + log.log(Level.INFO, "Csv finished, rows[{0}] exeMillis[{1}]", row, exeTime); } /** @@ -160,7 +161,6 @@ public class DefaultCsvCallback implements CsvCallback { transaction = server.beginTransaction(); createdTransaction = true; if (persistBatchSize > 1) { - log.debug("Creating transaction, batchSize[{}]", persistBatchSize); transaction.setBatchMode(true); transaction.setBatchSize(persistBatchSize); transaction.setGetGeneratedKeys(false); @@ -168,7 +168,6 @@ public class DefaultCsvCallback implements CsvCallback { // explicitly turn off JDBC batching in case // is has been turned on globally transaction.setBatchMode(false); - log.debug("Creating transaction with no JDBC batching"); } } } @@ -180,7 +179,6 @@ public class DefaultCsvCallback implements CsvCallback { protected void commitTransactionIfCreated() { if (createdTransaction) { transaction.commit(); - log.debug("Committed transaction"); } } @@ -191,7 +189,6 @@ public class DefaultCsvCallback implements CsvCallback { protected void rollbackTransactionIfCreated(Throwable e) { if (createdTransaction) { transaction.rollback(e); - log.debug("Rolled back transaction"); } } diff --git a/ebean-api/src/main/java/io/ebean/util/JdbcClose.java b/ebean-api/src/main/java/io/ebean/util/JdbcClose.java index a1d04536e..b450db79a 100644 --- a/ebean-api/src/main/java/io/ebean/util/JdbcClose.java +++ b/ebean-api/src/main/java/io/ebean/util/JdbcClose.java @@ -1,8 +1,8 @@ package io.ebean.util; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import io.ebean.EbeanVersion; +import java.lang.System.Logger.Level; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; @@ -13,7 +13,7 @@ import java.sql.Statement; */ public final class JdbcClose { - private static final Logger log = LoggerFactory.getLogger("io.ebean"); + private static final System.Logger log = EbeanVersion.log; /** * Close the resultSet logging if an error occurs. @@ -24,7 +24,7 @@ public final class JdbcClose { statement.close(); } } catch (SQLException e) { - log.warn("Error closing statement", e); + log.log(Level.WARNING, "Error closing statement", e); } } @@ -37,7 +37,7 @@ public final class JdbcClose { resultSet.close(); } } catch (SQLException e) { - log.warn("Error closing resultSet", e); + log.log(Level.WARNING, "Error closing resultSet", e); } } @@ -50,7 +50,7 @@ public final class JdbcClose { connection.close(); } } catch (SQLException e) { - log.warn("Error closing connection", e); + log.log(Level.WARNING, "Error closing connection", e); } } @@ -63,7 +63,7 @@ public final class JdbcClose { connection.rollback(); } } catch (SQLException e) { - log.warn("Error on connection rollback", e); + log.log(Level.WARNING, "Error on connection rollback", e); } } @@ -76,7 +76,7 @@ public final class JdbcClose { stmt.cancel(); } } catch (SQLException e) { - log.warn("Error on cancelling statement", e); + log.log(Level.WARNING, "Error on cancelling statement", e); } } } diff --git a/ebean-api/src/main/java/module-info.java b/ebean-api/src/main/java/module-info.java index 7c8453cea..e5128fb5f 100644 --- a/ebean-api/src/main/java/module-info.java +++ b/ebean-api/src/main/java/module-info.java @@ -15,8 +15,9 @@ module io.ebean.api { requires transitive persistence.api; requires transitive io.ebean.annotation; requires transitive io.ebean.datasource.api; - requires transitive org.slf4j; + requires transitive io.avaje.applog; + requires static org.slf4j; requires static io.ebean.types; requires static com.fasterxml.jackson.core; requires static com.fasterxml.jackson.databind; diff --git a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/DefaultAutoTuneService.java b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/DefaultAutoTuneService.java index b8d302f23..be43c42af 100644 --- a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/DefaultAutoTuneService.java +++ b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/DefaultAutoTuneService.java @@ -1,5 +1,6 @@ package io.ebeaninternal.server.autotune.service; +import io.avaje.applog.AppLog; import io.ebean.config.AutoTuneConfig; import io.ebean.config.DatabaseConfig; import io.ebeaninternal.api.SpiEbeanServer; @@ -7,12 +8,11 @@ import io.ebeaninternal.api.SpiQuery; import io.ebeaninternal.server.autotune.AutoTuneService; import io.ebeaninternal.server.autotune.model.Autotune; import io.ebeaninternal.server.autotune.model.Origin; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.lang.System.Logger.Level; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; @@ -21,7 +21,7 @@ import java.util.concurrent.locks.ReentrantLock; */ public class DefaultAutoTuneService implements AutoTuneService { - private static final Logger logger = LoggerFactory.getLogger(DefaultAutoTuneService.class); + private static final System.Logger logger = AppLog.getLogger(DefaultAutoTuneService.class); private final ReentrantLock lock = new ReentrantLock(); @@ -111,7 +111,7 @@ public class DefaultAutoTuneService implements AutoTuneService { if (stream != null) { loadAutoTuneProfiling(AutoTuneXmlReader.read(stream)); } else { - logger.warn("AutoTune file {} not found - no initial automatic query tuning", tuningFile); + logger.log(Level.WARNING, "AutoTune file {0} not found - no initial automatic query tuning", tuningFile); } } catch (IOException e) { throw new IllegalStateException("Error on auto close of " + tuningFile, e); @@ -120,7 +120,7 @@ public class DefaultAutoTuneService implements AutoTuneService { } private void loadAutoTuneProfiling(Autotune profiling) { - logger.info("AutoTune loading {} tuning entries", profiling.getOrigin().size()); + logger.log(Level.INFO, "AutoTune loading {0} tuning entries", profiling.getOrigin().size()); for (Origin origin : profiling.getOrigin()) { queryTuner.put(origin); } @@ -141,17 +141,17 @@ public class DefaultAutoTuneService implements AutoTuneService { event.process(); if (event.isEmpty()) { long exeMillis = System.currentTimeMillis() - start; - logger.debug("No query tuning updates for server:{} executionMillis:{}", serverName, exeMillis); + logger.log(Level.DEBUG, "No query tuning updates for server:{0} executionMillis:{1}", serverName, exeMillis); } else { // report the query tuning changes that have been made runtimeChangeCount += event.getChangeCount(); event.writeFile(profilingFile + "-" + serverName + "-update"); long exeMillis = System.currentTimeMillis() - start; - logger.info("query tuning updates - new:{} diff:{} for server:{} executionMillis:{}", event.getNewCount(), event.getDiffCount(), serverName, exeMillis); + logger.log(Level.INFO, "query tuning updates - new:{0} diff:{1} for server:{2} executionMillis:{3}", event.getNewCount(), event.getDiffCount(), serverName, exeMillis); } } catch (Throwable e) { - logger.error("Error collecting or applying automatic query tuning", e); + logger.log(Level.ERROR, "Error collecting or applying automatic query tuning", e); } } finally { lock.unlock(); @@ -172,11 +172,11 @@ public class DefaultAutoTuneService implements AutoTuneService { AutoTuneDiffCollection event = new AutoTuneDiffCollection(profiling, queryTuner, false); event.process(); if (event.isEmpty()) { - logger.info("No new or diff entries for profiling server:{}", serverName); + logger.log(Level.INFO, "No new or diff entries for profiling server:{0}", serverName); } else { event.writeFile(profilingFile + "-" + serverName); - logger.info("writing new:{} diff:{} profiling entries for server:{}", event.getNewCount(), event.getDiffCount(), serverName); + logger.log(Level.INFO, "writing new:{0} diff:{1} profiling entries for server:{2}", event.getNewCount(), event.getDiffCount(), serverName); } } } finally { @@ -196,7 +196,7 @@ public class DefaultAutoTuneService implements AutoTuneService { private void outputAllTuning() { if (runtimeChangeCount == 0) { - logger.info("no runtime query tuning changes for server:{}", serverName); + logger.log(Level.INFO, "no runtime query tuning changes for server:{0}", serverName); } else { AutoTuneAllCollection event = new AutoTuneAllCollection(queryTuner); @@ -205,12 +205,12 @@ public class DefaultAutoTuneService implements AutoTuneService { if (existingTuning.exists()) { // rename the existing autotune.xml file (appending 'now') if (!existingTuning.renameTo(new File(tuningFile + "." + AutoTuneXmlWriter.now()))) { - logger.warn("Failed to rename autotune file [{}]", tuningFile); + logger.log(Level.WARNING, "Failed to rename autotune file [{0}]", tuningFile); } } event.writeFile(tuningFile, false); - logger.info("query tuning detected [{}] changes, writing all [{}] tuning entries for server:{}", runtimeChangeCount, size, serverName); + logger.log(Level.INFO, "query tuning detected [{0}] changes, writing all [{1}] tuning entries for server:{2}", runtimeChangeCount, size, serverName); } } @@ -279,7 +279,7 @@ public class DefaultAutoTuneService implements AutoTuneService { } catch (InterruptedException e) { // restore the interrupted status Thread.currentThread().interrupt(); - logger.warn("Error while sleeping after System.gc() request.", e); + logger.log(Level.WARNING, "Error while sleeping after System.gc() request.", e); } } diff --git a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/ProfileOriginNodeUsage.java b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/ProfileOriginNodeUsage.java index c5a3c17db..fb9007ebf 100644 --- a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/ProfileOriginNodeUsage.java +++ b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/ProfileOriginNodeUsage.java @@ -1,5 +1,6 @@ package io.ebeaninternal.server.autotune.service; +import io.avaje.applog.AppLog; import io.ebean.bean.NodeUsageCollector; import io.ebean.text.PathProperties; import io.ebean.util.SplitName; @@ -7,9 +8,8 @@ import io.ebeaninternal.server.deploy.BeanDescriptor; import io.ebeaninternal.server.deploy.BeanProperty; import io.ebeaninternal.server.deploy.BeanPropertyAssoc; import io.ebeaninternal.server.el.ElPropertyValue; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.lang.System.Logger.Level; import java.util.LinkedHashSet; import java.util.Set; import java.util.concurrent.locks.ReentrantLock; @@ -19,7 +19,7 @@ import java.util.concurrent.locks.ReentrantLock; */ public class ProfileOriginNodeUsage { - private static final Logger logger = LoggerFactory.getLogger(ProfileOriginNodeUsage.class); + private static final System.Logger logger = AppLog.getLogger(ProfileOriginNodeUsage.class); private final ReentrantLock lock = new ReentrantLock(); @@ -45,7 +45,7 @@ public class ProfileOriginNodeUsage { if (path != null) { ElPropertyValue elGetValue = rootDesc.elGetValue(path); if (elGetValue == null) { - logger.warn("AutoTune: Can't find join for path[" + path + "] for " + rootDesc.name()); + logger.log(Level.WARNING, "AutoTune: Can't find join for path[" + path + "] for " + rootDesc.name()); return; } else { BeanProperty beanProperty = elGetValue.beanProperty(); @@ -61,7 +61,7 @@ public class ProfileOriginNodeUsage { for (String propName : aggregateUsed) { BeanProperty beanProp = desc.findPropertyFromPath(propName); if (beanProp == null) { - logger.warn("AutoTune: Can't find property[" + propName + "] for " + desc.name()); + logger.log(Level.WARNING, "AutoTune: Can't find property[" + propName + "] for " + desc.name()); } else { if (beanProp.isId()) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/api/CoreLog.java b/ebean-core/src/main/java/io/ebeaninternal/api/CoreLog.java index cfbf56283..85b491d15 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/api/CoreLog.java +++ b/ebean-core/src/main/java/io/ebeaninternal/api/CoreLog.java @@ -1,13 +1,12 @@ package io.ebeaninternal.api; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import io.avaje.applog.AppLog; /** * Common loggers used in ebean-core. */ public final class CoreLog { - public static final Logger log = LoggerFactory.getLogger("io.ebean.core"); - public static final Logger internal = LoggerFactory.getLogger("io.ebean.internal"); + public static final System.Logger log = AppLog.getLogger("io.ebean.core"); + public static final System.Logger internal = AppLog.getLogger("io.ebean.internal"); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/api/LoadManyRequest.java b/ebean-core/src/main/java/io/ebeaninternal/api/LoadManyRequest.java index dcbc3c32b..b2956f1d2 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/api/LoadManyRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/api/LoadManyRequest.java @@ -7,17 +7,18 @@ import io.ebeaninternal.server.core.BindPadding; import io.ebeaninternal.server.core.OrmQueryRequest; import io.ebeaninternal.server.deploy.BeanDescriptor; import io.ebeaninternal.server.deploy.BeanPropertyAssocMany; -import org.slf4j.Logger; import java.util.ArrayList; import java.util.List; +import static java.lang.System.Logger.Level.DEBUG; + /** * Request for loading Associated Many Beans. */ public final class LoadManyRequest extends LoadRequest { - private static final Logger log = CoreLog.log; + private static final System.Logger log = CoreLog.log; private final List> batch; private final LoadManyBuffer loadContext; @@ -113,10 +114,10 @@ public final class LoadManyRequest extends LoadRequest { // in the +query or +lazy load due to no rows (predicates) for (BeanCollection bc : batch) { if (bc.checkEmptyLazyLoad()) { - if (log.isDebugEnabled()) { + if (log.isLoggable(DEBUG)) { EntityBean ownerBean = bc.getOwnerBean(); Object parentId = desc.getId(ownerBean); - log.debug("BeanCollection after lazy load was empty. type:" + ownerBean.getClass().getName() + " id:" + parentId + " owner:" + ownerBean); + log.log(DEBUG, "BeanCollection after lazy load was empty. type:" + ownerBean.getClass().getName() + " id:" + parentId + " owner:" + ownerBean); } } else if (loadCache && many.isUseCache()) { desc.cacheManyPropPut(many, bc, desc.getId(bc.getOwnerBean())); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultCacheHolder.java b/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultCacheHolder.java index ad3faa749..cf6a02089 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultCacheHolder.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultCacheHolder.java @@ -1,5 +1,6 @@ package io.ebeaninternal.server.cache; +import io.avaje.applog.AppLog; import io.ebean.annotation.Cache; import io.ebean.annotation.CacheBeanTuning; import io.ebean.annotation.CacheQueryTuning; @@ -7,9 +8,8 @@ import io.ebean.cache.*; import io.ebean.config.CurrentTenantProvider; import io.ebean.meta.MetricVisitor; import io.ebean.util.AnnotationUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.lang.System.Logger.Level; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentSkipListSet; @@ -20,7 +20,7 @@ import java.util.concurrent.locks.ReentrantLock; */ final class DefaultCacheHolder { - private static final Logger log = LoggerFactory.getLogger("io.ebean.cache.ALL"); + private static final System.Logger log = AppLog.getLogger("io.ebean.cache.ALL"); private final ReentrantLock lock = new ReentrantLock(); private final ConcurrentHashMap allCaches = new ConcurrentHashMap<>(); @@ -89,7 +89,7 @@ final class DefaultCacheHolder { } void clearAll() { - log.debug("clearAll"); + log.log(Level.DEBUG, "clearAll"); for (ServerCache serverCache : allCaches.values()) { serverCache.clear(); } @@ -97,7 +97,7 @@ final class DefaultCacheHolder { public void clear(String name) { - log.debug("clear {}", name); + log.log(Level.DEBUG, "clear {0}", name); clearIfExists(key(name, ServerCacheType.QUERY)); clearIfExists(key(name, ServerCacheType.BEAN)); clearIfExists(key(name, ServerCacheType.NATURAL_KEY)); @@ -112,7 +112,7 @@ final class DefaultCacheHolder { private void clearIfExists(String fullKey) { ServerCache cache = allCaches.get(fullKey); if (cache != null) { - log.trace("clear cache {}", fullKey); + log.log(Level.TRACE, "clear cache {0}", fullKey); cache.clear(); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCache.java b/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCache.java index f3b49fd2e..e5bfd2628 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCache.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCache.java @@ -1,15 +1,15 @@ package io.ebeaninternal.server.cache; +import io.avaje.applog.AppLog; import io.ebean.BackgroundExecutor; import io.ebean.cache.ServerCache; import io.ebean.cache.ServerCacheStatistics; import io.ebean.meta.MetricVisitor; import io.ebean.metric.CountMetric; import io.ebean.metric.MetricFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.Serializable; +import java.lang.System.Logger.Level; import java.lang.ref.SoftReference; import java.util.*; import java.util.concurrent.TimeUnit; @@ -25,7 +25,7 @@ import java.util.concurrent.locks.ReentrantLock; */ public class DefaultServerCache implements ServerCache { - protected static final Logger logger = LoggerFactory.getLogger(DefaultServerCache.class); + protected static final System.Logger logger = AppLog.getLogger(DefaultServerCache.class); /** * Compare by last access time (for LRU eviction). @@ -287,13 +287,13 @@ public class DefaultServerCache implements ServerCache { evictCount.add(trimmedByGC); evictCount.add(trimmedByTTL); evictCount.add(trimmedByLRU); - if (logger.isTraceEnabled()) { + if (logger.isLoggable(Level.TRACE)) { long exeMicros = TimeUnit.MICROSECONDS.convert(System.nanoTime() - startNanos, TimeUnit.NANOSECONDS); - logger.trace("Executed trim of cache {} in [{}]millis idle[{}] timeToLive[{}] accessTime[{}] gc[{}]", + logger.log(Level.TRACE, "Executed trim of cache {0} in [{1}]millis idle[{2}] timeToLive[{3}] accessTime[{4}] gc[{5}]", name, exeMicros, trimmedByIdle, trimmedByTTL, trimmedByLRU, trimmedByGC); } } catch (Throwable e) { - logger.warn("Error during trim of DefaultServerCache [" + name + "]. Cache might be bigger than desired.", e); + logger.log(Level.WARNING, "Error during trim of DefaultServerCache [" + name + "]. Cache might be bigger than desired.", e); } } finally { lock.unlock(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCacheManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCacheManager.java index 00f551da8..6142f6d50 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCacheManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCacheManager.java @@ -1,5 +1,6 @@ package io.ebeaninternal.server.cache; +import io.avaje.applog.AppLog; import io.ebean.cache.ServerCache; import io.ebean.cache.ServerCacheRegion; import io.ebean.cache.ServerCacheType; @@ -7,9 +8,8 @@ import io.ebean.meta.MetricVisitor; import io.ebeaninternal.api.SpiCacheRegion; import io.ebeaninternal.server.cluster.ClusterManager; import io.ebeaninternal.server.deploy.DCacheRegion; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.lang.System.Logger.Level; import java.util.*; /** @@ -17,7 +17,7 @@ import java.util.*; */ public final class DefaultServerCacheManager implements SpiCacheManager { - private static final Logger log = LoggerFactory.getLogger("io.ebean.cache.REGION"); + private static final System.Logger log = AppLog.getLogger("io.ebean.cache.REGION"); private final Map regionMap = new HashMap<>(); private final ClusterManager clusterManager; @@ -65,23 +65,23 @@ public final class DefaultServerCacheManager implements SpiCacheManager { enabled.add(region.name()); if (!region.isEnabled()) { region.setEnabled(true); - log.debug("Cache region[{}] enabled", region.name()); + log.log(Level.DEBUG, "Cache region[{0}] enabled", region.name()); } } else { disabled.add(region.name()); if (region.isEnabled()) { region.setEnabled(false); - log.debug("Cache region[{}] disabled", region.name()); + log.log(Level.DEBUG, "Cache region[{0}] disabled", region.name()); } } } - log.info("Cache regions enabled:{} disabled:{}", enabled, disabled); + log.log(Level.INFO, "Cache regions enabled:{0} disabled:{1}", enabled, disabled); } } @Override public void setAllRegionsEnabled(boolean enabled) { - log.debug("All cache regions enabled[{}]", enabled); + log.log(Level.DEBUG, "All cache regions enabled[{0}]", enabled); for (SpiCacheRegion region : regionMap.values()) { region.setEnabled(enabled); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogListener.java b/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogListener.java index 597d87df0..c85edd315 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogListener.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogListener.java @@ -1,5 +1,6 @@ package io.ebeaninternal.server.changelog; +import io.avaje.applog.AppLog; import io.ebean.event.changelog.BeanChange; import io.ebean.event.changelog.ChangeLogListener; import io.ebean.event.changelog.ChangeSet; @@ -7,10 +8,9 @@ import io.ebean.event.changelog.ChangeType; import io.ebean.plugin.Plugin; import io.ebean.plugin.SpiServer; import io.ebeaninternal.api.CoreLog; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.StringWriter; +import java.lang.System.Logger.Level; import java.util.Properties; /** @@ -21,7 +21,7 @@ public final class DefaultChangeLogListener implements ChangeLogListener, Plugin /** * The named logger we send the change set payload to. Can be externally configured as desired. */ - private static final Logger changeLog = LoggerFactory.getLogger("io.ebean.ChangeLog"); + private static final System.Logger changeLog = AppLog.getLogger("io.ebean.ChangeLog"); /** * Used to build the JSON. @@ -65,9 +65,9 @@ public final class DefaultChangeLogListener implements ChangeLogListener, Plugin try { StringWriter writer = new StringWriter(getBufferSize(beanChange)); jsonBuilder.writeBeanJson(writer, beanChange, changeSet); - changeLog.info(writer.toString()); + changeLog.log(Level.INFO, writer.toString()); } catch (Exception e) { - CoreLog.log.error("Exception logging beanChange " + beanChange, e); + CoreLog.log.log(Level.ERROR, "Exception logging beanChange " + beanChange, e); } } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/cluster/ClusterManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/cluster/ClusterManager.java index b273c031a..4af7e1fce 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/cluster/ClusterManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/cluster/ClusterManager.java @@ -1,11 +1,11 @@ package io.ebeaninternal.server.cluster; +import io.avaje.applog.AppLog; import io.ebean.Database; import io.ebean.config.ContainerConfig; import io.ebeaninternal.server.transaction.RemoteTransactionEvent; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.lang.System.Logger.Level; import java.util.Iterator; import java.util.ServiceLoader; import java.util.concurrent.ConcurrentHashMap; @@ -16,7 +16,7 @@ import java.util.concurrent.locks.ReentrantLock; */ public class ClusterManager implements ServerLookup { - private static final Logger clusterLogger = LoggerFactory.getLogger("io.ebean.Cluster"); + private static final System.Logger clusterLogger = AppLog.getLogger("io.ebean.Cluster"); private final ReentrantLock lock = new ReentrantLock(); @@ -112,8 +112,8 @@ public class ClusterManager implements ServerLookup { */ public void broadcast(RemoteTransactionEvent event) { if (broadcast != null) { - if (clusterLogger.isDebugEnabled()) { - clusterLogger.debug("sending: {}", event); + if (clusterLogger.isLoggable(Level.DEBUG)) { + clusterLogger.log(Level.DEBUG, "sending: {0}", event); } broadcast.broadcast(event); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/BeanRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/BeanRequest.java index 45fe5ff14..6d68210bd 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/BeanRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/BeanRequest.java @@ -6,6 +6,8 @@ import io.ebeaninternal.api.SpiEbeanServer; import io.ebeaninternal.api.SpiTransaction; import io.ebeaninternal.server.core.timezone.DataTimeZone; +import java.lang.System.Logger.Level; + /** * Base class for find and persist requests. */ @@ -61,7 +63,7 @@ public abstract class BeanRequest { // Just log this and carry on. A previous exception has been // thrown and if this rollback throws exception it likely means // that the connection is broken (and the dataSource and db will cleanup) - CoreLog.log.error("Error trying to rollback a transaction (after a prior exception thrown)", e); + CoreLog.log.log(Level.ERROR, "Error trying to rollback a transaction (after a prior exception thrown)", e); } } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DatabasePlatformFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DatabasePlatformFactory.java index 407ebcaf8..265e71cba 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DatabasePlatformFactory.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DatabasePlatformFactory.java @@ -8,6 +8,7 @@ import io.ebeaninternal.api.DbOffline; import javax.persistence.PersistenceException; import javax.sql.DataSource; +import java.lang.System.Logger.Level; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.SQLException; @@ -38,7 +39,7 @@ public class DatabasePlatformFactory { try { String offlinePlatform = DbOffline.getPlatform(); if (offlinePlatform != null) { - CoreLog.log.info("offline platform [{}]", offlinePlatform); + CoreLog.log.log(Level.INFO, "offline platform [{0}]", offlinePlatform); return byDatabaseName(offlinePlatform); } if (config.getDatabasePlatformName() != null) { @@ -87,7 +88,7 @@ public class DatabasePlatformFactory { String dbProductName = metaData.getDatabaseProductName().toLowerCase(); final int majorVersion = metaData.getDatabaseMajorVersion(); final int minorVersion = metaData.getDatabaseMinorVersion(); - CoreLog.log.debug("platform for productName[{}] version[{}.{}]", dbProductName, majorVersion, minorVersion); + CoreLog.log.log(Level.DEBUG, "platform for productName[{0}] version[{1}.{2}]", dbProductName, majorVersion, minorVersion); for (DatabasePlatformProvider provider : providers) { if (provider.matchByProductName(dbProductName)) { return provider.create(majorVersion, minorVersion, metaData, connection); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java index 5bdf93a34..7cd82edeb 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java @@ -12,9 +12,9 @@ import io.ebeaninternal.server.deploy.BeanDescriptor; import io.ebeaninternal.server.deploy.BeanDescriptor.EntityType; import io.ebeaninternal.server.deploy.BeanPropertyAssocMany; import io.ebeaninternal.server.transaction.DefaultPersistenceContext; -import org.slf4j.Logger; import javax.persistence.EntityNotFoundException; +import java.lang.System.Logger.Level; import java.util.List; import java.util.Set; @@ -23,7 +23,7 @@ import java.util.Set; */ final class DefaultBeanLoader { - private static final Logger log = CoreLog.internal; + private static final System.Logger log = CoreLog.internal; private final DefaultServer server; private final boolean onIterateUseExtraTxn; @@ -108,8 +108,8 @@ final class DefaultBeanLoader { server.findOne(query, null); if (beanCollection != null) { if (beanCollection.checkEmptyLazyLoad()) { - if (log.isDebugEnabled()) { - log.debug("BeanCollection after load was empty. Owner:" + beanCollection.getOwnerBean()); + if (log.isLoggable(Level.DEBUG)) { + log.log(Level.DEBUG, "BeanCollection after load was empty. Owner:" + beanCollection.getOwnerBean()); } } else if (useManyIdCache) { parentDesc.cacheManyPropPut(many, beanCollection, parentId); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java index 5b8499661..eb1cb1fe2 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java @@ -1,7 +1,6 @@ package io.ebeaninternal.server.core; import io.ebean.config.*; -import io.ebean.config.EntityClassRegister; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.event.ShutdownManager; import io.ebean.service.SpiContainer; @@ -13,9 +12,9 @@ import io.ebeaninternal.server.cluster.ClusterManager; import io.ebeaninternal.server.core.bootup.BootupClassPathSearch; import io.ebeaninternal.server.core.bootup.BootupClasses; import io.ebeaninternal.server.executor.DefaultBackgroundExecutor; -import org.slf4j.Logger; import javax.persistence.PersistenceException; +import java.lang.System.Logger.Level; import java.net.URL; import java.sql.Connection; import java.sql.SQLException; @@ -28,7 +27,7 @@ import java.util.concurrent.locks.ReentrantLock; */ public final class DefaultContainer implements SpiContainer { - private static final Logger log = CoreLog.log; + private static final System.Logger log = CoreLog.log; private final ReentrantLock lock = new ReentrantLock(); private final ClusterManager clusterManager; @@ -108,7 +107,7 @@ public final class DefaultContainer implements SpiContainer { startServer(online, server); } DbOffline.reset(); - log.info("Started database[{}] platform[{}] in {}ms", config.getName(), config.getDatabasePlatform().getPlatform(), System.currentTimeMillis() - start); + log.log(Level.INFO, "Started database[{0}] platform[{1}] in {2}ms", config.getName(), config.getDatabasePlatform().getPlatform(), System.currentTimeMillis() - start); return server; } finally { lock.unlock(); @@ -137,7 +136,7 @@ public final class DefaultContainer implements SpiContainer { private void checkMissingModulePathProvides() { URL servicesFile = ClassLoader.getSystemResource("META-INF/services/io.ebean.config.EntityClassRegister"); if (servicesFile != null) { - log.error("module-info.java is probably missing 'provides io.ebean.config.EntityClassRegister with EbeanEntityRegister' clause. EntityClassRegister exists but was not service loaded."); + log.log(Level.ERROR, "module-info.java is probably missing 'provides io.ebean.config.EntityClassRegister with EbeanEntityRegister' clause. EntityClassRegister exists but was not service loaded."); } } @@ -201,7 +200,7 @@ public final class DefaultContainer implements SpiContainer { DatabasePlatform platform = config.getDatabasePlatform(); if (platform == null) { if (config.getTenantMode().isDynamicDataSource()) { - throw new IllegalStateException("DatabasePlatform must be explicitly set on DatabaseConfig for TenantMode "+config.getTenantMode()); + throw new IllegalStateException("DatabasePlatform must be explicitly set on DatabaseConfig for TenantMode " + config.getTenantMode()); } // automatically determine the platform platform = new DatabasePlatformFactory().create(config); @@ -215,7 +214,7 @@ public final class DefaultContainer implements SpiContainer { */ private void setDataSource(DatabaseConfig config) { if (isOfflineMode(config)) { - log.debug("... DbOffline using platform [{}]", DbOffline.getPlatform()); + log.log(Level.DEBUG, "... DbOffline using platform [{0}]", DbOffline.getPlatform()); } else { InitDataSource.init(config); } @@ -251,7 +250,7 @@ public final class DefaultContainer implements SpiContainer { } try (Connection connection = config.getDataSource().getConnection()) { if (connection.getAutoCommit()) { - log.warn("DataSource [{}] has autoCommit defaulting to true!", config.getName()); + log.log(Level.WARNING, "DataSource [{0}] has autoCommit defaulting to true!", config.getName()); } return true; } catch (SQLException ex) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultQueryPlanListener.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultQueryPlanListener.java index f748e7f2b..039324072 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultQueryPlanListener.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultQueryPlanListener.java @@ -1,23 +1,24 @@ package io.ebeaninternal.server.core; +import io.avaje.applog.AppLog; import io.ebean.config.QueryPlanCapture; import io.ebean.config.QueryPlanListener; import io.ebean.meta.MetaQueryPlan; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; + +import static java.lang.System.Logger.Level.INFO; final class DefaultQueryPlanListener implements QueryPlanListener { static final QueryPlanListener INSTANT = new DefaultQueryPlanListener(); - private static final Logger log = LoggerFactory.getLogger("io.ebean.QUERYPLAN"); + private static final System.Logger log = AppLog.getLogger("io.ebean.QUERYPLAN"); @Override public void process(QueryPlanCapture capture) { // better to log this in JSON form? String dbName = capture.database().name(); for (MetaQueryPlan plan : capture.plans()) { - log.info("queryPlan db:{} label:{} queryTimeMicros:{} loc:{} sql:{} bind:{} plan:{}", + log.log(INFO, "queryPlan db:{0} label:{1} queryTimeMicros:{2} loc:{3} sql:{4} bind:{5} plan:{6}", dbName, plan.label(), plan.queryTimeMicros(), plan.profileLocation(), plan.sql(), plan.bind(), plan.plan()); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java index b42381956..b6b498b0d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java @@ -2,49 +2,11 @@ package io.ebeaninternal.server.core; import io.avaje.lang.NonNullApi; import io.avaje.lang.Nullable; -import io.ebean.AutoTune; -import io.ebean.BackgroundExecutor; -import io.ebean.BeanState; -import io.ebean.CallableSql; -import io.ebean.DocumentStore; -import io.ebean.DtoQuery; -import io.ebean.ExpressionFactory; -import io.ebean.ExpressionList; -import io.ebean.ExtendedServer; -import io.ebean.Filter; -import io.ebean.FutureIds; -import io.ebean.FutureList; -import io.ebean.FutureRowCount; -import io.ebean.MergeOptions; -import io.ebean.MergeOptionsBuilder; -import io.ebean.PagedList; -import io.ebean.PersistenceContextScope; -import io.ebean.ProfileLocation; -import io.ebean.Query; -import io.ebean.QueryIterator; -import io.ebean.RowConsumer; -import io.ebean.RowMapper; -import io.ebean.ScriptRunner; -import io.ebean.SqlQuery; -import io.ebean.SqlRow; -import io.ebean.SqlUpdate; -import io.ebean.Transaction; -import io.ebean.TransactionCallback; -import io.ebean.TxScope; -import io.ebean.Update; -import io.ebean.UpdateQuery; -import io.ebean.ValuePair; -import io.ebean.Version; +import io.ebean.*; import io.ebean.annotation.Platform; import io.ebean.annotation.TxIsolation; -import io.ebean.bean.BeanCollection; -import io.ebean.bean.BeanLoader; -import io.ebean.bean.CallOrigin; -import io.ebean.bean.EntityBean; -import io.ebean.bean.EntityBeanIntercept; -import io.ebean.bean.PersistenceContext; +import io.ebean.bean.*; import io.ebean.bean.PersistenceContext.WithOption; -import io.ebean.bean.SingleBeanLoader; import io.ebean.cache.ServerCacheManager; import io.ebean.common.CopyOnFirstWriteList; import io.ebean.config.*; @@ -53,11 +15,7 @@ import io.ebean.event.BeanPersistController; import io.ebean.event.ShutdownManager; import io.ebean.event.readaudit.ReadAuditLogger; import io.ebean.event.readaudit.ReadAuditPrepare; -import io.ebean.meta.MetaInfoManager; -import io.ebean.meta.MetaQueryPlan; -import io.ebean.meta.MetricVisitor; -import io.ebean.meta.QueryPlanInit; -import io.ebean.meta.QueryPlanRequest; +import io.ebean.meta.*; import io.ebean.migration.auto.AutoMigrationRunner; import io.ebean.plugin.BeanType; import io.ebean.plugin.Plugin; @@ -78,21 +36,8 @@ import io.ebeaninternal.server.dto.DtoBeanDescriptor; import io.ebeaninternal.server.dto.DtoBeanManager; import io.ebeaninternal.server.el.ElFilter; import io.ebeaninternal.server.grammer.EqlParser; -import io.ebeaninternal.server.query.CQuery; -import io.ebeaninternal.server.query.CQueryEngine; -import io.ebeaninternal.server.query.CallableQueryCount; -import io.ebeaninternal.server.query.CallableQueryIds; -import io.ebeaninternal.server.query.CallableQueryList; -import io.ebeaninternal.server.query.DtoQueryEngine; -import io.ebeaninternal.server.query.LimitOffsetPagedList; -import io.ebeaninternal.server.query.QueryFutureIds; -import io.ebeaninternal.server.query.QueryFutureList; -import io.ebeaninternal.server.query.QueryFutureRowCount; -import io.ebeaninternal.server.querydefn.DefaultDtoQuery; -import io.ebeaninternal.server.querydefn.DefaultOrmQuery; -import io.ebeaninternal.server.querydefn.DefaultOrmUpdate; -import io.ebeaninternal.server.querydefn.DefaultRelationalQuery; -import io.ebeaninternal.server.querydefn.DefaultUpdateQuery; +import io.ebeaninternal.server.query.*; +import io.ebeaninternal.server.querydefn.*; import io.ebeaninternal.server.rawsql.SpiRawSql; import io.ebeaninternal.server.text.csv.TCsvReader; import io.ebeaninternal.server.transaction.DefaultPersistenceContext; @@ -101,12 +46,12 @@ import io.ebeaninternal.server.transaction.TransactionManager; import io.ebeaninternal.util.ParamTypeHelper; import io.ebeaninternal.util.ParamTypeHelper.TypeInfo; import io.ebeanservice.docstore.api.DocStoreIntegration; -import org.slf4j.Logger; import javax.persistence.NonUniqueResultException; import javax.persistence.OptimisticLockException; import javax.persistence.PersistenceException; import javax.sql.DataSource; +import java.lang.System.Logger.Level; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; @@ -129,7 +74,7 @@ import static java.util.stream.StreamSupport.stream; @NonNullApi public final class DefaultServer implements SpiServer, SpiEbeanServer { - private static final Logger log = CoreLog.internal; + private static final System.Logger log = CoreLog.internal; private final ReentrantLock lock = new ReentrantLock(); private final DatabaseConfig config; @@ -386,7 +331,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { if (config.isQueryPlanCapture()) { long secs = config.getQueryPlanCapturePeriodSecs(); if (secs > 10) { - log.info("capture query plan enabled, every {}secs", secs); + log.log(Level.INFO, "capture query plan enabled, every {0}secs", secs); backgroundExecutor.scheduleWithFixedDelay(this::collectQueryPlans, secs, secs, TimeUnit.SECONDS); } } @@ -434,7 +379,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { * Shutdown the services like threads and DataSource. */ private void shutdownInternal(boolean shutdownDataSource, boolean deregisterDriver) { - log.trace("shutting down instance {}", serverName); + log.log(Level.TRACE, "shutting down instance {0}", serverName); if (shutdown) { // already shutdown return; @@ -463,7 +408,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { try { plugin.shutdown(); } catch (Exception e) { - log.error("Error when shutting down plugin", e); + log.log(Level.ERROR, "Error when shutting down plugin", e); } } } @@ -2038,7 +1983,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { return desc(bean.getClass()).getId(eb); } - private BeanDescriptor desc(Class beanClass) { + private BeanDescriptor desc(Class beanClass) { BeanDescriptor desc = descriptorManager.descriptor(beanClass); if (desc == null) { throw new PersistenceException(beanClass.getName() + " is NOT an Entity Bean registered with this server?"); @@ -2130,7 +2075,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { try { serverCacheManager.clearLocal(Class.forName(cache)); } catch (Exception e) { - log.error("Error clearing local cache for type " + cache, e); + log.log(Level.ERROR, "Error clearing local cache for type " + cache, e); } } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultSlowQueryListener.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultSlowQueryListener.java index 64c813213..6dc42b211 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultSlowQueryListener.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultSlowQueryListener.java @@ -1,17 +1,18 @@ package io.ebeaninternal.server.core; +import io.avaje.applog.AppLog; import io.ebean.bean.ObjectGraphNode; import io.ebean.config.SlowQueryEvent; import io.ebean.config.SlowQueryListener; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; + +import static java.lang.System.Logger.Level.WARNING; /** * Default slow query listener implementation that logs a warning message. */ final class DefaultSlowQueryListener implements SlowQueryListener { - private static final Logger log = LoggerFactory.getLogger("io.ebean.SlowQuery"); + private static final System.Logger log = AppLog.getLogger("io.ebean.SlowQuery"); @Override public void process(SlowQueryEvent event) { @@ -20,6 +21,6 @@ final class DefaultSlowQueryListener implements SlowQueryListener { if (node != null) { firstStack = node.getOriginQueryPoint().getTopElement(); } - log.warn("Slow query warning - millis:{} rows:{} caller[{}] sql[{}]", event.getTimeMillis(), event.getRowCount(), firstStack, event.getSql()); + log.log(WARNING, "Slow query warning - millis:{0} rows:{1} caller[{2}] sql[{3}]", event.getTimeMillis(), event.getRowCount(), firstStack, event.getSql()); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfigXmlMap.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfigXmlMap.java index 826cc3471..4bd2545ed 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfigXmlMap.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfigXmlMap.java @@ -6,6 +6,7 @@ import io.ebeaninternal.xmapping.api.XmapDto; import io.ebeaninternal.xmapping.api.XmapEbean; import io.ebeaninternal.xmapping.api.XmapRawSql; +import java.lang.System.Logger.Level; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -55,7 +56,7 @@ final class InternalConfigXmlMap { try { dtoClass = Class.forName(dto.getClazz(), false, classLoader); } catch (Exception e) { - CoreLog.internal.error("Could not load dto bean class " + dto.getClazz() + " for ebean xml entry"); + CoreLog.internal.log(Level.ERROR, "Could not load dto bean class " + dto.getClazz() + " for ebean xml entry"); return; } DtoNamedQueries namedQueries = dtoNamedQueries.computeIfAbsent(dtoClass, aClass -> new DtoNamedQueries()); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java index e6944a9e9..c8b7f8810 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java @@ -56,8 +56,8 @@ import io.ebeanservice.docstore.api.DocStoreFactory; import io.ebeanservice.docstore.api.DocStoreIntegration; import io.ebeanservice.docstore.api.DocStoreUpdateProcessor; import io.ebeanservice.docstore.none.NoneDocStoreFactory; -import org.slf4j.Logger; +import java.lang.System.Logger.Level; import java.util.*; /** @@ -66,7 +66,7 @@ import java.util.*; */ public final class InternalConfiguration { - private static final Logger log = CoreLog.internal; + private static final System.Logger log = CoreLog.internal; private final TableModState tableModState; private final boolean online; @@ -246,7 +246,7 @@ public final class InternalConfiguration { */ ReadAuditLogger getReadAuditLogger() { ReadAuditLogger found = bootupClasses.getReadAuditLogger(); - return plugin(found != null ? found : jacksonCorePresent? new DefaultReadAuditLogger(): null); + return plugin(found != null ? found : jacksonCorePresent ? new DefaultReadAuditLogger() : null); } /** @@ -433,7 +433,7 @@ public final class InternalConfiguration { externalTransactionManager = new JtaTransactionManager(); } if (externalTransactionManager != null) { - log.info("Using Transaction Manager [" + externalTransactionManager.getClass() + "]"); + log.log(Level.INFO, "Using Transaction Manager {0}", externalTransactionManager.getClass()); return new ExternalTransactionScopeManager(externalTransactionManager); } else { return new DefaultTransactionScopeManager(); @@ -523,7 +523,7 @@ public final class InternalConfiguration { if (iterator.hasNext()) { // use the cacheFactory (via classpath service loader) plugin = iterator.next(); - log.debug("using ServerCacheFactory {}", plugin.getClass()); + log.log(Level.DEBUG, "using ServerCacheFactory {0}", plugin.getClass()); } else { // use the built in default l2 caching which is local cache based localL2Caching = true; @@ -605,6 +605,7 @@ public final class InternalConfiguration { private static class NoopDdl implements SpiDdlGenerator { private final boolean ddlRun; + NoopDdl(boolean ddlRun) { this.ddlRun = ddlRun; } @@ -612,7 +613,7 @@ public final class InternalConfiguration { @Override public void execute(boolean online) { if (online && ddlRun) { - CoreLog.log.error("Configured to run DDL but ebean-ddl-generator is not in the classpath (or ebean-test in the test classpath?)"); + CoreLog.log.log(Level.ERROR, "Configured to run DDL but ebean-ddl-generator is not in the classpath (or ebean-test in the test classpath?)"); } } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java index 695960f6b..23df28e38 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java @@ -24,6 +24,8 @@ import java.util.*; import java.util.function.Consumer; import java.util.function.Predicate; +import static java.lang.System.Logger.Level.ERROR; + /** * Wraps the objects involved in executing a Query. */ @@ -244,7 +246,7 @@ public final class OrmQueryRequest extends BeanRequest implements SpiOrmQuery // Just log this and carry on. A previous exception has been // thrown and if this rollback throws exception it likely means // that the connection is broken (and the dataSource and db will cleanup) - CoreLog.log.error("Error trying to rollback a transaction (after a prior exception thrown)", e); + CoreLog.log.log(ERROR, "Error trying to rollback a transaction (after a prior exception thrown)", e); } } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClassPathSearch.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClassPathSearch.java index 1c378cbf9..031c87688 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClassPathSearch.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClassPathSearch.java @@ -4,8 +4,8 @@ import io.avaje.classpath.scanner.ClassPathScanner; import io.ebean.config.DatabaseConfig; import io.ebeaninternal.api.CoreLog; import io.ebeaninternal.server.core.ClassPathScanners; -import org.slf4j.Logger; +import java.lang.System.Logger.Level; import java.util.List; import java.util.Set; @@ -14,7 +14,7 @@ import java.util.Set; */ public class BootupClassPathSearch { - private static final Logger log = CoreLog.internal; + private static final System.Logger log = CoreLog.internal; private final List packages; private final List scanners; @@ -42,7 +42,6 @@ public class BootupClassPathSearch { * Search the classPath for the classes we are interested in. */ private BootupClasses getBootupClasses() { - try { BootupClasses bc = new BootupClasses(); @@ -59,7 +58,7 @@ public class BootupClassPathSearch { } long searchTime = System.currentTimeMillis() - st; - log.debug("Classpath search entities[{}] searchTime[{}] in packages[{}]", bc.getEntities().size(), searchTime, packages); + log.log(Level.DEBUG, "Classpath search entities[{0}] searchTime[{1}] in packages[{2}]", bc.getEntities().size(), searchTime, packages); return bc; } catch (Exception ex) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java index 3fc4bbb95..b3f777c6f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java @@ -13,12 +13,12 @@ import io.ebean.event.readaudit.ReadAuditLogger; import io.ebean.event.readaudit.ReadAuditPrepare; import io.ebean.util.AnnotationUtil; import io.ebeaninternal.api.CoreLog; -import org.slf4j.Logger; import javax.persistence.AttributeConverter; import javax.persistence.Embeddable; import javax.persistence.Entity; import javax.persistence.Table; +import java.lang.System.Logger.Level; import java.lang.annotation.Annotation; import java.lang.reflect.Modifier; import java.util.ArrayList; @@ -31,7 +31,7 @@ import java.util.function.Predicate; */ public class BootupClasses implements Predicate> { - private static final Logger log = CoreLog.internal; + private static final System.Logger log = CoreLog.internal; private final List> embeddableList = new ArrayList<>(); private final List> entityList = new ArrayList<>(); @@ -205,13 +205,13 @@ public class BootupClasses implements Predicate> { try { return cls.getConstructor().newInstance(); } catch (NoSuchMethodException e) { - log.debug("Ignore/expected - no default constructor: " +e.getMessage()); + log.log(Level.DEBUG, "Ignore/expected - no default constructor: " + e.getMessage()); return null; } catch (Exception e) { if (logOnException) { // not expected but we log and carry on - log.error("Error creating " + cls, e); + log.log(Level.ERROR, "Error creating " + cls, e); return null; } else { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/ManifestReader.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/ManifestReader.java index d9a651293..a9dbf21ab 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/ManifestReader.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/ManifestReader.java @@ -3,10 +3,10 @@ package io.ebeaninternal.server.core.bootup; import io.ebean.util.StringHelper; import io.ebeaninternal.api.CoreLog; import io.ebeaninternal.util.UrlHelper; -import org.slf4j.Logger; import java.io.IOException; import java.io.InputStream; +import java.lang.System.Logger.Level; import java.net.URL; import java.util.Collections; import java.util.Enumeration; @@ -20,7 +20,7 @@ import java.util.jar.Manifest; */ class ManifestReader { - private static final Logger log = CoreLog.internal; + private static final System.Logger log = CoreLog.internal; private final Set packageSet = new HashSet<>(); private final ClassLoader classLoader; @@ -55,7 +55,6 @@ class ManifestReader { * Read all the specific manifest files and return the set of packages containing type query beans. */ private Set read(ClassLoader classLoader, String resourcePath) { - try { Enumeration resources = classLoader.getResources(resourcePath); while (resources.hasMoreElements()) { @@ -64,7 +63,7 @@ class ManifestReader { } } } catch (IOException e) { - log.warn("Error reading " + resourcePath + " manifest resources", e); + log.log(Level.WARNING, "Error reading " + resourcePath + " manifest resources", e); } return packageSet; } @@ -73,7 +72,6 @@ class ManifestReader { * Read the entity packages from the manifest. */ private void read(Manifest manifest) throws IOException { - Attributes attributes = manifest.getMainAttributes(); String agentOnlyUse = attributes.getValue("agent-use-only"); if (agentOnlyUse == null || !"true".equalsIgnoreCase(agentOnlyUse.trim())) { 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 2ba7bf20b..4fd54268f 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 @@ -54,11 +54,11 @@ import io.ebeanservice.docstore.api.DocStoreUpdates; import io.ebeanservice.docstore.api.mapping.DocMappingBuilder; import io.ebeanservice.docstore.api.mapping.DocPropertyMapping; import io.ebeanservice.docstore.api.mapping.DocumentMapping; -import org.slf4j.Logger; import javax.persistence.PersistenceException; import java.io.IOException; import java.io.StringWriter; +import java.lang.System.Logger.Level; import java.lang.reflect.Modifier; import java.sql.SQLException; import java.sql.Types; @@ -74,7 +74,7 @@ import static io.ebeaninternal.server.persist.DmlUtil.isNullOrZero; */ public class BeanDescriptor implements BeanType, STreeType, SpiBeanType { - private static final Logger log = CoreLog.internal; + private static final System.Logger log = CoreLog.internal; public enum EntityType { ORM, EMBEDDED, VIEW, SQL, DOC @@ -494,9 +494,6 @@ public class BeanDescriptor implements BeanType, STreeType, SpiBeanType { * as they are used to get the imported and exported properties. */ void initialiseId(BeanDescriptorInitContext initContext) { - if (log.isTraceEnabled()) { - log.trace("BeanDescriptor initialise " + fullName); - } if (draftable) { initContext.addDraft(baseTable, draftTable); } @@ -795,7 +792,7 @@ public class BeanDescriptor implements BeanType, STreeType, SpiBeanType { changeJson.flush(); return beanChange(ChangeType.UPDATE, request.beanId(), changeJson.newJson(), changeJson.oldJson()); } catch (RuntimeException e) { - log.error("Failed to write ChangeLog entry for update", e); + log.log(Level.ERROR, "Failed to write ChangeLog entry for update", e); return null; } } @@ -811,7 +808,7 @@ public class BeanDescriptor implements BeanType, STreeType, SpiBeanType { jsonWriter.flush(); return beanChange(ChangeType.INSERT, request.beanId(), writer.toString(), null); } catch (IOException e) { - log.error("Failed to write ChangeLog entry for insert", e); + log.log(Level.ERROR, "Failed to write ChangeLog entry for insert", e); return null; } } @@ -2291,11 +2288,11 @@ public class BeanDescriptor implements BeanType, STreeType, SpiBeanType { private ElComparator createPropertyComparator(SortByClause.Property sortProp) { ElPropertyValue elGetValue = elGetValue(sortProp.getName()); if (elGetValue == null) { - log.error("Sort property [" + sortProp + "] not found in " + beanType + ". Cannot sort."); + log.log(Level.ERROR, "Sort property [" + sortProp + "] not found in " + beanType + ". Cannot sort."); return new ElComparatorNoop<>(); } if (elGetValue.isAssocMany()) { - log.error("Sort property [" + sortProp + "] in " + beanType + " is a many-property. Cannot sort."); + log.log(Level.ERROR, "Sort property [" + sortProp + "] in " + beanType + " is a many-property. Cannot sort."); return new ElComparatorNoop<>(); } Boolean nullsHigh = sortProp.getNullsHigh(); @@ -2771,7 +2768,7 @@ public class BeanDescriptor implements BeanType, STreeType, SpiBeanType { public void markAsDeleted(EntityBean bean) { if (softDeleteProperty == null) { Object id = getId(bean); - log.info("(Lazy) loading unsuccessful for type:{} id:{} - expecting when bean has been deleted", name(), id); + log.log(Level.INFO, "(Lazy) loading unsuccessful for type:{0} id:{1} - expecting when bean has been deleted", name(), id); bean._ebean_getIntercept().setLazyLoadFailure(id); } else { softDeleteValue(bean); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java index 725a850e2..4e0c39b39 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java @@ -1,5 +1,6 @@ package io.ebeaninternal.server.deploy; +import io.avaje.applog.AppLog; import io.ebean.bean.BeanCollection; import io.ebean.bean.EntityBean; import io.ebean.bean.EntityBeanIntercept; @@ -13,10 +14,9 @@ import io.ebeaninternal.server.core.CacheOptions; import io.ebeaninternal.server.core.PersistRequest; import io.ebeaninternal.server.core.PersistRequestBean; import io.ebeaninternal.server.transaction.DefaultPersistenceContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.IOException; +import java.lang.System.Logger.Level; import java.util.*; /** @@ -26,12 +26,12 @@ import java.util.*; */ final class BeanDescriptorCacheHelp { - private static final Logger log = CoreLog.internal; + private static final System.Logger log = CoreLog.internal; - private static final Logger queryLog = LoggerFactory.getLogger("io.ebean.cache.QUERY"); - private static final Logger beanLog = LoggerFactory.getLogger("io.ebean.cache.BEAN"); - private static final Logger manyLog = LoggerFactory.getLogger("io.ebean.cache.COLL"); - private static final Logger natLog = LoggerFactory.getLogger("io.ebean.cache.NATKEY"); + private static final System.Logger queryLog = AppLog.getLogger("io.ebean.cache.QUERY"); + private static final System.Logger beanLog = AppLog.getLogger("io.ebean.cache.BEAN"); + private static final System.Logger manyLog = AppLog.getLogger("io.ebean.cache.COLL"); + private static final System.Logger natLog = AppLog.getLogger("io.ebean.cache.NATKEY"); private final BeanDescriptor desc; private final SpiCacheManager cacheManager; @@ -104,10 +104,10 @@ final class BeanDescriptorCacheHelp { void deriveNotifyFlags() { cacheNotifyOnAll = (invalidateQueryCache || beanCache != null || queryCache != null); cacheNotifyOnDelete = !cacheNotifyOnAll && isNotifyOnDeletes(); - if (log.isDebugEnabled()) { + if (log.isLoggable(Level.DEBUG)) { if (cacheNotifyOnAll || cacheNotifyOnDelete) { String notifyMode = cacheNotifyOnAll ? "All" : "Delete"; - log.debug("l2 caching on {} - beanCaching:{} queryCaching:{} notifyMode:{} ", + log.log(Level.DEBUG, "l2 caching on {0} - beanCaching:{1} queryCaching:{2} notifyMode:{3} ", desc.fullName(), isBeanCaching(), isQueryCaching(), notifyMode); } } @@ -178,8 +178,8 @@ final class BeanDescriptorCacheHelp { */ void queryCacheClear() { if (queryCache != null) { - if (queryLog.isDebugEnabled()) { - queryLog.debug(" CLEAR {}", cacheName); + if (queryLog.isLoggable(Level.DEBUG)) { + queryLog.log(Level.DEBUG, " CLEAR {0}", cacheName); } queryCache.clear(); } @@ -202,11 +202,11 @@ final class BeanDescriptorCacheHelp { throw new IllegalStateException("No query cache enabled on " + desc + ". Need explicit @Cache(enableQueryCache=true)"); } Object queryResult = queryCache.get(id); - if (queryLog.isDebugEnabled()) { + if (queryLog.isLoggable(Level.DEBUG)) { if (queryResult == null) { - queryLog.debug(" GET {}({}) - cache miss", cacheName, id); + queryLog.log(Level.DEBUG, " GET {0}({1}) - cache miss", cacheName, id); } else { - queryLog.debug(" GET {}({}) - hit", cacheName, id); + queryLog.log(Level.DEBUG, " GET {0}({1}) - hit", cacheName, id); } } return queryResult; @@ -219,8 +219,8 @@ final class BeanDescriptorCacheHelp { if (queryCache == null) { throw new IllegalStateException("No query cache enabled on " + desc + ". Need explicit @Cache(enableQueryCache=true)"); } - if (queryLog.isDebugEnabled()) { - queryLog.debug(" PUT {}({})", cacheName, id); + if (queryLog.isLoggable(Level.DEBUG)) { + queryLog.log(Level.DEBUG, " PUT {0}({1})", cacheName, id); } queryCache.put(id, entry); } @@ -228,16 +228,16 @@ final class BeanDescriptorCacheHelp { void manyPropRemove(String propertyName, Object parentId) { ServerCache collectionIdsCache = cacheManager.getCollectionIdsCache(beanType, propertyName); - if (manyLog.isTraceEnabled()) { - manyLog.trace(" REMOVE {}({}).{}", cacheName, parentId, propertyName); + if (manyLog.isLoggable(Level.TRACE)) { + manyLog.log(Level.TRACE, " REMOVE {0}({1}).{2}", cacheName, parentId, propertyName); } collectionIdsCache.remove(parentId); } void manyPropClear(String propertyName) { ServerCache collectionIdsCache = cacheManager.getCollectionIdsCache(beanType, propertyName); - if (manyLog.isDebugEnabled()) { - manyLog.debug(" CLEAR {}(*).{} ", cacheName, propertyName); + if (manyLog.isLoggable(Level.DEBUG)) { + manyLog.log(Level.DEBUG, " CLEAR {0}(*).{1} ", cacheName, propertyName); } collectionIdsCache.clear(); } @@ -249,11 +249,11 @@ final class BeanDescriptorCacheHelp { ServerCache collectionIdsCache = cacheManager.getCollectionIdsCache(beanType, propertyName); CachedManyIds entry = (CachedManyIds) collectionIdsCache.get(parentId); if (entry == null) { - if (manyLog.isTraceEnabled()) { - manyLog.trace(" GET {}({}).{} - cache miss", cacheName, parentId, propertyName); + if (manyLog.isLoggable(Level.TRACE)) { + manyLog.log(Level.TRACE, " GET {0}({1}).{2} - cache miss", cacheName, parentId, propertyName); } - } else if (manyLog.isDebugEnabled()) { - manyLog.debug(" GET {}({}).{} - hit", cacheName, parentId, propertyName); + } else if (manyLog.isLoggable(Level.DEBUG)) { + manyLog.log(Level.DEBUG, " GET {0}({1}).{2} - hit", cacheName, parentId, propertyName); } return entry; } @@ -303,12 +303,12 @@ final class BeanDescriptorCacheHelp { changes.put(many.name(), asJson); CachedBeanData newData = data.update(changes, data.getVersion()); - if (beanLog.isDebugEnabled()) { - beanLog.debug(" UPDATE {}({}) changes:{}", cacheName, parentId, changes); + if (beanLog.isLoggable(Level.DEBUG)) { + beanLog.log(Level.DEBUG, " UPDATE {0}({1}) changes:{2}", cacheName, parentId, changes); } beanCache.put(parentId, newData); } catch (IOException e) { - log.error("Error updating L2 cache", e); + log.log(Level.ERROR, "Error updating L2 cache", e); } } } else { @@ -321,8 +321,8 @@ final class BeanDescriptorCacheHelp { void cachePutManyIds(Object parentId, String manyName, CachedManyIds entry) { ServerCache collectionIdsCache = cacheManager.getCollectionIdsCache(beanType, manyName); - if (manyLog.isDebugEnabled()) { - manyLog.debug(" PUT {}({}).{} - ids:{}", cacheName, parentId, manyName, entry); + if (manyLog.isLoggable(Level.DEBUG)) { + manyLog.log(Level.DEBUG, " PUT {0}({1}).{2} - ids:{3}", cacheName, parentId, manyName, entry); } collectionIdsCache.put(parentId, entry); } @@ -353,8 +353,8 @@ final class BeanDescriptorCacheHelp { return new BeanCacheResult<>(); } Map beanDataMap = beanCache.getAll(keys); - if (beanLog.isTraceEnabled()) { - beanLog.trace(" MGET {}({}) - hits:{}", cacheName, ids, beanDataMap.keySet()); + if (beanLog.isLoggable(Level.TRACE)) { + beanLog.log(Level.TRACE, " MGET {0}({1}) - hits:{2}", cacheName, ids, beanDataMap.keySet()); } BeanCacheResult result = new BeanCacheResult<>(); for (Map.Entry entry : beanDataMap.entrySet()) { @@ -375,8 +375,8 @@ final class BeanDescriptorCacheHelp { // naturalKey -> Id map Map naturalKeyMap = naturalKeyCache.getAll(keys); - if (natLog.isTraceEnabled()) { - natLog.trace(" MLOOKUP {}({}) - hits:{}", cacheName, keys, naturalKeyMap); + if (natLog.isLoggable(Level.TRACE)) { + natLog.log(Level.TRACE, " MLOOKUP {0}({1}) - hits:{2}", cacheName, keys, naturalKeyMap); } BeanCacheResult result = new BeanCacheResult<>(); @@ -392,8 +392,8 @@ final class BeanDescriptorCacheHelp { Set ids = new HashSet<>(naturalKeyMap.values()); Map beanDataMap = beanCache.getAll(ids); - if (beanLog.isTraceEnabled()) { - beanLog.trace(" MGET {}({}) - hits:{}", cacheName, ids, beanDataMap.keySet()); + if (beanLog.isLoggable(Level.TRACE)) { + beanLog.log(Level.TRACE, " MGET {0}({1}) - hits:{2}", cacheName, ids, beanDataMap.keySet()); } // process the hits into beans etc for (Map.Entry entry : beanDataMap.entrySet()) { @@ -437,8 +437,8 @@ final class BeanDescriptorCacheHelp { */ void beanCacheClear() { if (beanCache != null) { - if (beanLog.isDebugEnabled()) { - beanLog.debug(" CLEAR {}", cacheName); + if (beanLog.isLoggable(Level.DEBUG)) { + beanLog.log(Level.DEBUG, " CLEAR {0}", cacheName); } beanCache.clear(); } @@ -507,14 +507,14 @@ final class BeanDescriptorCacheHelp { } } } - if (beanLog.isDebugEnabled()) { - beanLog.debug(" MPUT {}({})", cacheName, map.keySet()); + if (beanLog.isLoggable(Level.DEBUG)) { + beanLog.log(Level.DEBUG, " MPUT {0}({1})", cacheName, map.keySet()); } getBeanCache().putAll(map); if (natKeys != null && !natKeys.isEmpty()) { - if (natLog.isDebugEnabled()) { - natLog.debug(" MPUT {}({}, {})", cacheName, naturalKey, natKeys.keySet()); + if (natLog.isLoggable(Level.DEBUG)) { + natLog.log(Level.DEBUG, " MPUT {0}({1}, {2})", cacheName, naturalKey, natKeys.keySet()); } naturalKeyCache.putAll(natKeys); } @@ -526,15 +526,15 @@ final class BeanDescriptorCacheHelp { void beanCachePutDirect(EntityBean bean) { CachedBeanData beanData = beanExtractData(desc, bean); String key = desc.cacheKeyForBean(bean); - if (beanLog.isDebugEnabled()) { - beanLog.debug(" PUT {}({}) data:{}", cacheName, key, beanData); + if (beanLog.isLoggable(Level.DEBUG)) { + beanLog.log(Level.DEBUG, " PUT {0}({1}) data:{2}", cacheName, key, beanData); } getBeanCache().put(key, beanData); if (naturalKey != null) { String naturalKey = calculateNaturalKey(beanData); if (naturalKey != null) { - if (natLog.isDebugEnabled()) { - natLog.debug(" PUT {}({}, {})", cacheName, naturalKey, key); + if (natLog.isLoggable(Level.DEBUG)) { + natLog.log(Level.DEBUG, " PUT {0}({1}, {2})", cacheName, naturalKey, key); } naturalKeyCache.put(naturalKey, key); } @@ -575,13 +575,13 @@ final class BeanDescriptorCacheHelp { private T beanCacheGetInternal(String key, Boolean readOnly, PersistenceContext context) { CachedBeanData data = (CachedBeanData) getBeanCache().get(key); if (data == null) { - if (beanLog.isTraceEnabled()) { - beanLog.trace(" GET {}({}) - cache miss", cacheName, key); + if (beanLog.isLoggable(Level.TRACE)) { + beanLog.log(Level.TRACE, " GET {0}({1}) - cache miss", cacheName, key); } return null; } - if (beanLog.isTraceEnabled()) { - beanLog.trace(" GET {}({}) - hit", cacheName, key); + if (beanLog.isLoggable(Level.TRACE)) { + beanLog.log(Level.TRACE, " GET {0}({1}) - hit", cacheName, key); } return convertToBean(key, readOnly, context, data); } @@ -591,8 +591,8 @@ final class BeanDescriptorCacheHelp { if (cacheSharableBeans && !Boolean.FALSE.equals(readOnly)) { Object bean = data.getSharableBean(); if (bean != null) { - if (beanLog.isTraceEnabled()) { - beanLog.trace(" GET {}({}) - hit shared bean", cacheName, id); + if (beanLog.isLoggable(Level.TRACE)) { + beanLog.log(Level.TRACE, " GET {0}({1}) - hit shared bean", cacheName, id); } if (desc.isReadAuditing()) { desc.readAuditBean("l2", "", bean); @@ -680,8 +680,8 @@ final class BeanDescriptorCacheHelp { */ void beanCacheApplyInvalidate(Collection keys) { if (beanCache != null) { - if (beanLog.isDebugEnabled()) { - beanLog.debug(" MREMOVE {}({})", cacheName, keys); + if (beanLog.isLoggable(Level.DEBUG)) { + beanLog.log(Level.DEBUG, " MREMOVE {0}({1})", cacheName, keys); } beanCache.removeAll(new HashSet<>(keys)); } @@ -700,8 +700,8 @@ final class BeanDescriptorCacheHelp { } Map hits = getBeanCache().getAll(ebis.keySet()); - if (beanLog.isTraceEnabled()) { - beanLog.trace(" MLOAD {}({}) - got hits ({})", cacheName, ebis.keySet(), hits.size()); + if (beanLog.isLoggable(Level.TRACE)) { + beanLog.log(Level.TRACE, " MLOAD {0}({1}) - got hits ({2})", cacheName, ebis.keySet(), hits.size()); } Set loaded = new HashSet<>(); @@ -713,19 +713,19 @@ final class BeanDescriptorCacheHelp { CachedBeanData cacheData = (CachedBeanData) hit.getValue(); if (lazyLoadProperty > -1 && !cacheData.isLoaded(propertyName)) { - if (beanLog.isTraceEnabled()) { - beanLog.trace(" load {}({}) - cache miss on property({})", cacheName, key, propertyName); + if (beanLog.isLoggable(Level.TRACE)) { + beanLog.log(Level.TRACE, " load {0}({1}) - cache miss on property({2})", cacheName, key, propertyName); } } else { CachedBeanDataToBean.load(desc, ebi.getOwner(), cacheData, context); loaded.add(ebi); - if (beanLog.isDebugEnabled()) { - beanLog.debug(" load {}({}) - hit", cacheName, key); + if (beanLog.isLoggable(Level.DEBUG)) { + beanLog.log(Level.DEBUG, " load {0}({1}) - hit", cacheName, key); } } } - if (!ebis.isEmpty() && beanLog.isTraceEnabled()) { - beanLog.trace(" load {}({}) - cache miss", cacheName, ebis.keySet()); + if (!ebis.isEmpty() && beanLog.isLoggable(Level.TRACE)) { + beanLog.log(Level.TRACE, " load {0}({1}) - cache miss", cacheName, ebis.keySet()); } return loaded; } @@ -736,21 +736,21 @@ final class BeanDescriptorCacheHelp { boolean beanCacheLoad(EntityBean bean, EntityBeanIntercept ebi, String key, PersistenceContext context) { CachedBeanData cacheData = (CachedBeanData) getBeanCache().get(key); if (cacheData == null) { - if (beanLog.isTraceEnabled()) { - beanLog.trace(" LOAD {}({}) - cache miss", cacheName, key); + if (beanLog.isLoggable(Level.TRACE)) { + beanLog.log(Level.TRACE, " LOAD {0}({1}) - cache miss", cacheName, key); } return false; } int lazyLoadProperty = ebi.getLazyLoadPropertyIndex(); if (lazyLoadProperty > -1 && !cacheData.isLoaded(ebi.getLazyLoadProperty())) { - if (beanLog.isTraceEnabled()) { - beanLog.trace(" LOAD {}({}) - cache miss on property({})", cacheName, key, ebi.getLazyLoadProperty()); + if (beanLog.isLoggable(Level.TRACE)) { + beanLog.log(Level.TRACE, " LOAD {0}({1}) - cache miss on property({2})", cacheName, key, ebi.getLazyLoadProperty()); } return false; } CachedBeanDataToBean.load(desc, bean, cacheData, context); - if (beanLog.isDebugEnabled()) { - beanLog.debug(" LOAD {}({}) - hit", cacheName, key); + if (beanLog.isLoggable(Level.DEBUG)) { + beanLog.log(Level.DEBUG, " LOAD {0}({1}) - hit", cacheName, key); } return true; } @@ -874,8 +874,8 @@ final class BeanDescriptorCacheHelp { if (existingData != null) { long currentVersion = existingData.getVersion(); if (version > 0 && version < currentVersion) { - if (beanLog.isDebugEnabled()) { - beanLog.debug(" REMOVE {}({}) - version conflict old:{} new:{}", cacheName, key, currentVersion, version); + if (beanLog.isLoggable(Level.DEBUG)) { + beanLog.log(Level.DEBUG, " REMOVE {0}({1}) - version conflict old:{2} new:{3}", cacheName, key, currentVersion, version); } cache.remove(key); } else { @@ -883,16 +883,16 @@ final class BeanDescriptorCacheHelp { version = currentVersion; } CachedBeanData newData = existingData.update(changes, version); - if (beanLog.isDebugEnabled()) { - beanLog.debug(" UPDATE {}({}) changes:{}", cacheName, key, changes); + if (beanLog.isLoggable(Level.DEBUG)) { + beanLog.log(Level.DEBUG, " UPDATE {0}({1}) changes:{2}", cacheName, key, changes); } cache.put(key, newData); } if (updateNaturalKey) { Object oldKey = calculateNaturalKey(existingData); if (oldKey != null) { - if (natLog.isDebugEnabled()) { - natLog.debug(".. update {} REMOVE({}) - old key for ({})", cacheName, oldKey, key); + if (natLog.isLoggable(Level.DEBUG)) { + natLog.log(Level.DEBUG, ".. update {0} REMOVE({1}) - old key for ({2})", cacheName, oldKey, key); } naturalKeyCache.remove(oldKey); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java index 82f29361c..0074b550a 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java @@ -41,13 +41,13 @@ import io.ebeaninternal.xmapping.api.XmapNamedQuery; import io.ebeaninternal.xmapping.api.XmapRawSql; import io.ebeanservice.docstore.api.DocStoreBeanAdapter; import io.ebeanservice.docstore.api.DocStoreFactory; -import org.slf4j.Logger; import javax.persistence.MappedSuperclass; import javax.persistence.PersistenceException; import javax.persistence.Transient; import javax.sql.DataSource; import java.io.Serializable; +import java.lang.System.Logger.Level; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.*; @@ -58,7 +58,7 @@ import java.util.concurrent.TimeUnit; */ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTypeManager { - private static final Logger log = CoreLog.internal; + private static final System.Logger log = CoreLog.internal; private static final BeanDescComparator beanDescComparator = new BeanDescComparator(); public static final String JAVA_LANG_RECORD = "java.lang.Record"; @@ -309,7 +309,7 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy } catch (BeanNotEnhancedException e) { throw e; } catch (RuntimeException e) { - log.error("Error in deployment", e); + log.log(Level.ERROR, "Error in deployment", e); throw e; } } @@ -332,13 +332,13 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy try { entityClass = Class.forName(entityClassName, false, classLoader); } catch (Exception e) { - log.error("Could not load entity bean class " + entityClassName + " for ebean.xml entry"); + log.log(Level.ERROR, "Could not load entity bean class " + entityClassName + " for ebean.xml entry"); return; } DeployBeanInfo info = deployInfoMap.get(entityClass); if (info == null) { - log.error("No entity bean for ebean.xml entry " + entityClassName); + log.log(Level.ERROR, "No entity bean for ebean.xml entry " + entityClassName); } else { for (XmapRawSql sql : entityDeploy.getRawSql()) { @@ -601,11 +601,11 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy int pc = postConstructManager.getRegisterCount(); int lc = persistListenerManager.getRegisterCount(); int fc = beanFinderManager.getRegisterCount(); - log.debug("BeanPersistControllers[{}] BeanFinders[{}] BeanPersistListeners[{}] BeanQueryAdapters[{}] BeanPostLoaders[{}] BeanPostConstructors[{}]", cc, fc, lc, qa, pl, pc); + log.log(Level.DEBUG, "BeanPersistControllers[{0}] BeanFinders[{1}] BeanPersistListeners[{2}] BeanQueryAdapters[{3}] BeanPostLoaders[{4}] BeanPostConstructors[{5}]", cc, fc, lc, qa, pl, pc); } private void logStatus() { - log.debug("Entities[{}]", entityBeanCount); + log.log(Level.DEBUG, "Entities[{0}]", entityBeanCount); } /** @@ -865,13 +865,13 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy for (String possibleMappedBy : matchSet) { String possibleLower = possibleMappedBy.toLowerCase(); if (possibleLower.contains(searchName)) { - // we have a match.. + // we have a match prop.setMappedBy(possibleMappedBy); - - String m = "Implicitly found mappedBy for " + targetDesc + "." + prop; - m += " by searching for [" + searchName + "] against " + matchSet; - log.debug(m); - + if (log.isLoggable(Level.DEBUG)) { + String m = "Implicitly found mappedBy for " + targetDesc + "." + prop; + m += " by searching for [" + searchName + "] against " + matchSet; + log.log(Level.DEBUG, m); + } return true; } } @@ -1207,12 +1207,12 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy final DeployIdentityMode identityMode = desc.getIdentityMode(); if (identityMode.isSequence() && !dbIdentity.isSupportsSequence()) { // explicit sequence but not supported by the DatabasePlatform - log.info("Explicit sequence on " + desc.getFullName() + " but not supported by DB Platform - ignored"); + log.log(Level.INFO, "Explicit sequence on {0} but not supported by DB Platform - ignored", desc.getFullName()); identityMode.setIdType(IdType.AUTO); } if (identityMode.isIdentity() && !dbIdentity.isSupportsIdentity()) { // explicit identity but not supported by the DatabasePlatform - log.info("Explicit Identity on " + desc.getFullName() + " but not supported by DB Platform - ignored"); + log.log(Level.INFO, "Explicit Identity on {0} but not supported by DB Platform - ignored", desc.getFullName()); identityMode.setIdType(IdType.AUTO); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanFinderManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanFinderManager.java index ecb99e8b1..5bcf1883f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanFinderManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanFinderManager.java @@ -4,16 +4,17 @@ import io.ebean.event.BeanFindController; import io.ebeaninternal.api.CoreLog; import io.ebeaninternal.server.core.bootup.BootupClasses; import io.ebeaninternal.server.deploy.meta.DeployBeanDescriptor; -import org.slf4j.Logger; import java.util.List; +import static java.lang.System.Logger.Level.DEBUG; + /** * Default implementation for BeanFinderFactory. */ final class BeanFinderManager { - private static final Logger log = CoreLog.internal; + private static final System.Logger log = CoreLog.internal; private final List list; @@ -31,7 +32,7 @@ final class BeanFinderManager { void addFindControllers(DeployBeanDescriptor deployDesc) { for (BeanFindController c : list) { if (c.isRegisterFor(deployDesc.getBeanType())) { - log.debug("BeanFindController on[{}] {}", deployDesc.getFullName(), c.getClass().getName()); + log.log(DEBUG, "BeanFindController on[{0}] {1}", deployDesc.getFullName(), c.getClass().getName()); deployDesc.setBeanFinder(c); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java index 4d5e98916..a119ddb90 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java @@ -44,6 +44,7 @@ import javax.persistence.PersistenceException; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; +import java.lang.System.Logger.Level; import java.lang.reflect.Field; import java.sql.SQLException; import java.sql.Types; @@ -1433,7 +1434,7 @@ public class BeanProperty implements ElPropertyValue, Property, STreeProperty { objValue = null; String msg = "Error trying to use Jackson ObjectMapper to read transient property " + fullName() + " - consider marking this property with @JsonIgnore"; - CoreLog.log.error(msg, e); + CoreLog.log.log(Level.ERROR, msg, e); } } if (jsonDeserialize) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssoc.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssoc.java index 147f623a1..c2bd2bb4d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssoc.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssoc.java @@ -27,6 +27,7 @@ import io.ebeanservice.docstore.api.mapping.DocPropertyMapping; import io.ebeanservice.docstore.api.support.DocStructure; import javax.persistence.PersistenceException; +import java.lang.System.Logger.Level; import java.util.ArrayList; import java.util.List; @@ -432,7 +433,7 @@ public abstract class BeanPropertyAssoc extends BeanProperty implements STree if (!idProp.isEmbedded()) { // simple single scalar id if (cols.length != 1) { - CoreLog.log.error("No Imported Id column for [" + idProp + "] in table [" + join.getTable() + "]"); + CoreLog.log.log(Level.ERROR, "No Imported Id column for [" + idProp + "] in table [" + join.getTable() + "]"); return null; } else { BeanProperty[] idProps = {idProp}; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java index 2afae6a9d..fab75feea 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java @@ -24,6 +24,7 @@ import io.ebeaninternal.server.query.SqlBeanLoad; import javax.persistence.PersistenceException; import java.io.IOException; import java.io.StringWriter; +import java.lang.System.Logger.Level; import java.util.*; /** @@ -667,7 +668,7 @@ public class BeanPropertyAssocMany extends BeanPropertyAssoc implements ST } } catch (PersistenceException e) { // not found as individual scalar properties - CoreLog.log.error("Could not find a exported property?", e); + CoreLog.log.log(Level.ERROR, "Could not find a exported property?", e); } } else { if (idProp != null) { @@ -962,7 +963,7 @@ public class BeanPropertyAssocMany extends BeanPropertyAssoc implements ST setValue(bean, collection); } } catch (Exception e) { - CoreLog.log.error("Error setting value from L2 cache", e); + CoreLog.log.log(Level.ERROR, "Error setting value from L2 cache", e); } } @@ -975,7 +976,7 @@ public class BeanPropertyAssocMany extends BeanPropertyAssoc implements ST } return jsonWriteCollection(collection); } catch (Exception e) { - CoreLog.log.error("Error building value element collection json for L2 cache", e); + CoreLog.log.log(Level.ERROR, "Error building value element collection json for L2 cache", e); return null; } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanQueryAdapterManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanQueryAdapterManager.java index 45bced3a2..6eb8d20e3 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanQueryAdapterManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanQueryAdapterManager.java @@ -7,6 +7,8 @@ import io.ebeaninternal.server.deploy.meta.DeployBeanDescriptor; import java.util.List; +import static java.lang.System.Logger.Level.DEBUG; + /** * Default implementation for creating BeanControllers. */ @@ -28,7 +30,7 @@ final class BeanQueryAdapterManager { void addQueryAdapter(DeployBeanDescriptor deployDesc) { for (BeanQueryAdapter c : list) { if (c.isRegisterFor(deployDesc.getBeanType())) { - CoreLog.internal.debug("BeanQueryAdapter on[{}] {}", deployDesc.getFullName(), c.getClass().getName()); + CoreLog.internal.log(DEBUG, "BeanQueryAdapter on[{0}] {1}", deployDesc.getFullName(), c.getClass().getName()); deployDesc.addQueryAdapter(c); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanTable.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanTable.java index 0a503314d..80bed8585 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanTable.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanTable.java @@ -6,6 +6,8 @@ import io.ebeaninternal.server.deploy.meta.DeployBeanTable; import io.ebeaninternal.server.deploy.meta.DeployTableJoin; import io.ebeaninternal.server.deploy.meta.DeployTableJoinColumn; +import java.lang.System.Logger.Level; + /** * Used for associated beans in place of a BeanDescriptor. This is done to avoid @@ -105,7 +107,7 @@ public final class BeanTable { if (complexKey) { // just to copy the column name rather than prefix with the foreignKeyPrefix. // I think that with complex keys this is the more common approach. - CoreLog.internal.debug("On table[{}] foreign key column [{}]", baseTable, lc); + CoreLog.internal.log(Level.DEBUG, "On table[{0}] foreign key column [{1}]", baseTable, lc); fk = lc; } if (sqlFormulaSelect != null) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/PersistControllerManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/PersistControllerManager.java index 0497d7ef9..196e4be20 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/PersistControllerManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/PersistControllerManager.java @@ -7,6 +7,8 @@ import io.ebeaninternal.server.deploy.meta.DeployBeanDescriptor; import java.util.List; +import static java.lang.System.Logger.Level.DEBUG; + /** * Default implementation for creating BeanControllers. */ @@ -28,7 +30,7 @@ final class PersistControllerManager { void addPersistControllers(DeployBeanDescriptor deployDesc) { for (BeanPersistController c : list) { if (c.isRegisterFor(deployDesc.getBeanType())) { - CoreLog.log.debug("BeanPersistController on[{}] {}", deployDesc.getFullName(), c.getClass().getName()); + CoreLog.log.log(DEBUG, "BeanPersistController on[{0}] {1}", deployDesc.getFullName(), c.getClass().getName()); deployDesc.addPersistController(c); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/PersistListenerManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/PersistListenerManager.java index ec0fd3edb..5c771b026 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/PersistListenerManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/PersistListenerManager.java @@ -7,6 +7,8 @@ import io.ebeaninternal.server.deploy.meta.DeployBeanDescriptor; import java.util.List; +import static java.lang.System.Logger.Level.DEBUG; + /** * Manages the assignment/registration of BeanPersistListener with their * respective DeployBeanDescriptor's. @@ -29,7 +31,7 @@ final class PersistListenerManager { void addPersistListeners(DeployBeanDescriptor deployDesc) { for (BeanPersistListener listener : list) { if (listener.isRegisterFor(deployDesc.getBeanType())) { - CoreLog.log.debug("BeanPersistListener on[{}] {}", deployDesc.getFullName(), listener.getClass().getName()); + CoreLog.log.log(DEBUG, "BeanPersistListener on[{0}] {1}", deployDesc.getFullName(), listener.getClass().getName()); deployDesc.addPersistListener(listener); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/PostConstructManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/PostConstructManager.java index 33b3a5f76..525a87fb3 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/PostConstructManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/PostConstructManager.java @@ -7,6 +7,8 @@ import io.ebeaninternal.server.deploy.meta.DeployBeanDescriptor; import java.util.List; +import static java.lang.System.Logger.Level.DEBUG; + /** * Default implementation for creating BeanControllers. */ @@ -28,7 +30,7 @@ final class PostConstructManager { void addPostConstructListeners(DeployBeanDescriptor deployDesc) { for (BeanPostConstructListener c : list) { if (c.isRegisterFor(deployDesc.getBeanType())) { - CoreLog.log.debug("BeanPostLoad on[{}] {}", deployDesc.getFullName(), c.getClass().getName()); + CoreLog.log.log(DEBUG, "BeanPostLoad on[{0}] {1}", deployDesc.getFullName(), c.getClass().getName()); deployDesc.addPostConstructListener(c); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/PostLoadManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/PostLoadManager.java index babc69c76..1638c1682 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/PostLoadManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/PostLoadManager.java @@ -7,6 +7,8 @@ import io.ebeaninternal.server.deploy.meta.DeployBeanDescriptor; import java.util.List; +import static java.lang.System.Logger.Level.DEBUG; + /** * Default implementation for creating BeanControllers. */ @@ -28,7 +30,7 @@ final class PostLoadManager { void addPostLoad(DeployBeanDescriptor deployDesc) { for (BeanPostLoad c : list) { if (c.isRegisterFor(deployDesc.getBeanType())) { - CoreLog.log.debug("BeanPostLoad on[{}] {}", deployDesc.getFullName(), c.getClass().getName()); + CoreLog.log.log(DEBUG, "BeanPostLoad on[{0}] {1}", deployDesc.getFullName(), c.getClass().getName()); deployDesc.addPostLoad(c); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanPropertyLists.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanPropertyLists.java index 4605a2d6b..e33dd310c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanPropertyLists.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanPropertyLists.java @@ -11,6 +11,8 @@ import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; +import static java.lang.System.Logger.Level.WARNING; + /** * Helper object to classify BeanProperties into appropriate lists. */ @@ -222,7 +224,7 @@ public final class DeployBeanPropertyLists { if (versionProperty == null) { versionProperty = prop; } else { - CoreLog.internal.warn("Multiple @Version properties - property " + prop.fullName() + " not treated as a version property"); + CoreLog.internal.log(WARNING, "Multiple @Version properties - property " + prop.fullName() + " not treated as a version property"); } } else if (prop.isDraftDirty()) { draftDirty = prop; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java index 18b087305..e37d9ea40 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java @@ -15,6 +15,7 @@ import io.ebeaninternal.server.deploy.meta.DeployTableJoinColumn; import io.ebeaninternal.server.query.SqlJoinType; import javax.persistence.*; +import java.lang.System.Logger.Level; /** * Read the deployment annotations for Associated One beans. @@ -213,10 +214,10 @@ final class AnnotationAssocOnes extends AnnotationAssoc { prop.setPrimaryKeyJoin(true); if (!primaryKeyJoin.name().isEmpty()) { - CoreLog.internal.info("Automatically determining join columns for @PrimaryKeyJoinColumn - ignoring PrimaryKeyJoinColumn.name attribute [{}] on {}", primaryKeyJoin.name(), prop.getFullBeanName()); + CoreLog.internal.log(Level.INFO, "Automatically determining join columns for @PrimaryKeyJoinColumn - ignoring PrimaryKeyJoinColumn.name attribute [{0}] on {1}", primaryKeyJoin.name(), prop.getFullBeanName()); } if (!primaryKeyJoin.referencedColumnName().isEmpty()) { - CoreLog.internal.info("Automatically determining join columns for @PrimaryKeyJoinColumn - Ignoring PrimaryKeyJoinColumn.referencedColumnName attribute [{}] on {}", primaryKeyJoin.referencedColumnName(), prop.getFullBeanName()); + CoreLog.internal.log(Level.INFO, "Automatically determining join columns for @PrimaryKeyJoinColumn - Ignoring PrimaryKeyJoinColumn.referencedColumnName attribute [{0}] on {1}", primaryKeyJoin.referencedColumnName(), prop.getFullBeanName()); } BeanTable baseBeanTable = factory.beanTable(info.getDescriptor().getBeanType()); String localPrimaryKey = baseBeanTable.getIdColumn(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationClass.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationClass.java index 956fa66c7..36fdc915f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationClass.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationClass.java @@ -32,6 +32,8 @@ import javax.persistence.NamedQuery; import javax.persistence.Table; import javax.persistence.UniqueConstraint; +import java.lang.System.Logger.Level; + import static io.ebean.util.AnnotationUtil.typeGet; /** @@ -65,7 +67,7 @@ final class AnnotationClass extends AnnotationParser { Column column = override.column(); DeployBeanProperty beanProperty = descriptor.getBeanProperty(propertyName); if (beanProperty == null) { - CoreLog.log.error("AttributeOverride property [" + propertyName + "] not found on " + descriptor.getFullName()); + CoreLog.log.log(Level.ERROR, "AttributeOverride property [" + propertyName + "] not found on " + descriptor.getFullName()); } else { readColumn(column, beanProperty); } 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 426c92048..14579b621 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 @@ -11,6 +11,7 @@ import io.ebeaninternal.server.type.TypeManager; import javax.persistence.PersistenceException; import javax.persistence.Transient; +import java.lang.System.Logger.Level; import java.lang.reflect.*; /** @@ -84,7 +85,7 @@ public final class DeployCreateProperties { if (replaced != null && !replaced.isTransient()) { String msg = "Huh??? property " + prop.getFullBeanName() + " being defined twice"; msg += " but replaced property was not transient? This is not expected?"; - CoreLog.log.warn(msg); + CoreLog.log.log(Level.WARNING, msg); } } } @@ -111,7 +112,7 @@ public final class DeployCreateProperties { return new DeployBeanPropertySimpleCollection(desc, targetType, manyType); } } catch (NullPointerException e) { - CoreLog.internal.debug("expected non-scalar type {}", e.getMessage()); + CoreLog.internal.log(Level.DEBUG, "expected non-scalar type {0}", e.getMessage()); } return new DeployBeanPropertyAssocMany(desc, targetType, manyType); } @@ -132,7 +133,7 @@ public final class DeployCreateProperties { // not supporting this field (generic type used) return null; } - CoreLog.internal.warn("Could not find parameter type (via reflection) on " + desc.getFullName() + " " + field.getName()); + CoreLog.internal.log(Level.WARNING, "Could not find parameter type (via reflection) on " + desc.getFullName() + " " + field.getName()); } return createManyType(desc, targetType, manyType); } @@ -151,7 +152,7 @@ public final class DeployCreateProperties { return new DeployBeanPropertyAssocOne(desc, propertyType); } catch (Exception e) { - CoreLog.log.error("Error with " + desc + " field:" + field.getName(), e); + CoreLog.log.log(Level.ERROR, "Error with " + desc + " field:" + field.getName(), e); return null; } } 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 43acbf342..454bc65e1 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 @@ -3,6 +3,7 @@ package io.ebeaninternal.server.dto; import io.ebeaninternal.api.CoreLog; import io.ebeaninternal.server.type.TypeManager; +import java.lang.System.Logger.Level; import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.lang.reflect.Modifier; @@ -39,7 +40,7 @@ final class DtoMetaBuilder { final String name = propertyName(method.getName()); properties.add(new DtoMetaProperty(typeManager, dtoType, method, name)); } catch (Exception e) { - CoreLog.log.debug("exclude on " + dtoType + " method " + method, e); + CoreLog.log.log(Level.DEBUG, "exclude on " + dtoType + " method " + method, e); } } } @@ -77,7 +78,7 @@ final class DtoMetaBuilder { constructorList.add(new DtoMetaConstructor(typeManager, constructor, dtoType)); } catch (Exception e) { // we don't want that constructor - CoreLog.log.debug("exclude on " + dtoType + " constructor " + constructor, e); + CoreLog.log.log(Level.DEBUG, "exclude on " + dtoType + " constructor " + constructor, e); } } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonExecutorService.java b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonExecutorService.java index af23a086d..de9b959ef 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonExecutorService.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonExecutorService.java @@ -1,9 +1,8 @@ package io.ebeaninternal.server.executor; +import io.avaje.applog.AppLog; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - +import java.lang.System.Logger.Level; import java.util.concurrent.*; import java.util.concurrent.locks.ReentrantLock; @@ -14,7 +13,7 @@ import java.util.concurrent.locks.ReentrantLock; */ final class DaemonExecutorService { - private static final Logger logger = LoggerFactory.getLogger(DaemonExecutorService.class); + private static final System.Logger logger = AppLog.getLogger(DaemonExecutorService.class); private final ReentrantLock lock = new ReentrantLock(false); private final String namePrefix; @@ -44,19 +43,19 @@ final class DaemonExecutorService { lock.lock(); try { if (service.isShutdown()) { - logger.debug("DaemonExecutorService[{}] already shut down", namePrefix); + logger.log(Level.DEBUG, "DaemonExecutorService[{0}] already shut down", namePrefix); return; } try { - logger.debug("DaemonExecutorService[{}] shutting down...", namePrefix); + logger.log(Level.DEBUG, "DaemonExecutorService[{0}] shutting down...", namePrefix); service.shutdown(); if (!service.awaitTermination(shutdownWaitSeconds, TimeUnit.SECONDS)) { - logger.info("DaemonExecutorService[{}] shut down timeout exceeded. Terminating running threads.", namePrefix); + logger.log(Level.INFO, "DaemonExecutorService[{0}] shut down timeout exceeded. Terminating running threads.", namePrefix); service.shutdownNow(); } } catch (Exception e) { - logger.error("Error during shutdown of DaemonThreadPool[" + namePrefix + "]", e); + logger.log(Level.ERROR, "Error during shutdown of DaemonThreadPool[" + namePrefix + "]", e); e.printStackTrace(); } } finally { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonScheduleThreadPool.java b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonScheduleThreadPool.java index 98265905f..1a7c23b3e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonScheduleThreadPool.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonScheduleThreadPool.java @@ -1,8 +1,8 @@ package io.ebeaninternal.server.executor; import io.ebeaninternal.api.CoreLog; -import org.slf4j.Logger; +import java.lang.System.Logger.Level; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; @@ -12,7 +12,7 @@ import java.util.concurrent.locks.ReentrantLock; */ public final class DaemonScheduleThreadPool extends ScheduledThreadPoolExecutor { - private static final Logger log = CoreLog.log; + private static final System.Logger log = CoreLog.log; private final ReentrantLock lock = new ReentrantLock(); private final String namePrefix; @@ -38,19 +38,19 @@ public final class DaemonScheduleThreadPool extends ScheduledThreadPoolExecutor lock.lock(); try { if (super.isShutdown()) { - log.debug("Already shutdown threadPool {}", namePrefix); + log.log(Level.DEBUG, "Already shutdown threadPool {0}", namePrefix); return; } try { - log.trace("shutting down threadPool {}", namePrefix); + log.log(Level.TRACE, "shutting down threadPool {0}", namePrefix); super.shutdown(); if (!super.awaitTermination(shutdownWaitSeconds, TimeUnit.SECONDS)) { - log.info("Shutdown wait timeout exceeded. Terminating running threads for {}", namePrefix); + log.log(Level.INFO, "Shutdown wait timeout exceeded. Terminating running threads for {0}", namePrefix); super.shutdownNow(); } - log.trace("shutdown complete for threadPool {}", namePrefix); + log.log(Level.TRACE, "shutdown complete for threadPool {0}", namePrefix); } catch (Exception e) { - log.error("Error during shutdown of threadPool " + namePrefix, e); + log.log(Level.ERROR, "Error during shutdown of threadPool " + namePrefix, e); e.printStackTrace(); } } finally { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java index b4c13a8bd..ce0254a22 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java @@ -1,21 +1,20 @@ package io.ebeaninternal.server.executor; +import io.avaje.applog.AppLog; import io.avaje.lang.NonNullApi; import io.ebean.config.BackgroundExecutorWrapper; import io.ebeaninternal.api.SpiBackgroundExecutor; +import java.lang.System.Logger.Level; import java.util.concurrent.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - /** * The default implementation of the BackgroundExecutor. */ @NonNullApi public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { - private static final Logger log = LoggerFactory.getLogger("io.ebean.BackgroundExecutor"); + private static final System.Logger log = AppLog.getLogger("io.ebean.BackgroundExecutor"); private final ScheduledExecutorService schedulePool; private final DaemonExecutorService pool; @@ -28,7 +27,7 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { this.schedulePool = new DaemonScheduleThreadPool(schedulePoolSize, shutdownWaitSeconds, namePrefix + "-periodic-"); this.pool = new DaemonExecutorService(shutdownWaitSeconds, namePrefix); this.wrapper = wrapper; - log.debug("Created backgroundExecutor {} (schedulePoolSize={}, shutdownWaitSeconds={})", namePrefix, schedulePoolSize, shutdownWaitSeconds); + log.log(Level.DEBUG, "Created backgroundExecutor {0} (schedulePoolSize={1}, shutdownWaitSeconds={2})", namePrefix, schedulePoolSize, shutdownWaitSeconds); } /** @@ -59,20 +58,20 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { * This is used in methods that accepts a Runnable and return * either void or ScheduledFuture, as there is * normally no Future.get() call. - * + *

* Note: When submitting a Callable, you must check * Future.get() for exceptions. */ private Runnable logExceptions(Runnable task) { long queued = System.nanoTime(); - log.trace("Queued {}", task); + log.log(Level.TRACE, "Queued {0}", task); return () -> { try { - if (log.isTraceEnabled()) { + if (log.isLoggable(Level.TRACE)) { long start = System.nanoTime(); - log.trace("Start {} (delay time {} us)", task, (start - queued) / 1000L); + log.log(Level.TRACE, "Start {0} (delay time {1} us)", task, (start - queued) / 1000L); task.run(); - log.trace("Stop {} (exec time {} us)", task, (System.nanoTime() - start) / 1000L); + log.log(Level.TRACE, "Stop {0} (exec time {1} us)", task, (System.nanoTime() - start) / 1000L); } else { task.run(); } @@ -80,7 +79,7 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { // log any exception here. Note they will not bubble up to the calling user // unless Future.get() is checked. (Which is almost never done on scheduled // background executions) - log.error("Error while executing the task {}", task, t); + log.log(Level.ERROR, "Error while executing the task " + task, t); throw t; } }; @@ -128,10 +127,10 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { @Override public void shutdown() { - log.trace("BackgroundExecutor shutting down"); + log.log(Level.TRACE, "BackgroundExecutor shutting down"); schedulePool.shutdown(); pool.shutdown(); - log.debug("BackgroundExecutor stopped"); + log.log(Level.DEBUG, "BackgroundExecutor stopped"); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/idgen/UuidV1IdGenerator.java b/ebean-core/src/main/java/io/ebeaninternal/server/idgen/UuidV1IdGenerator.java index 083e08df2..c7ae7e0d3 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/idgen/UuidV1IdGenerator.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/idgen/UuidV1IdGenerator.java @@ -1,6 +1,7 @@ package io.ebeaninternal.server.idgen; import java.io.*; +import java.lang.System.Logger.Level; import java.net.NetworkInterface; import java.net.SocketException; import java.util.*; @@ -8,12 +9,11 @@ import java.util.concurrent.ConcurrentHashMap; /** * IdGenerator for java util UUID. - * + *

* It extends the UuidV1RndIdGenerator so that it can generate rfc4122 compliant Type 1 UUIDs. - * + *

* This generator produces real Type 1 UUIDs (best for sqlserver) - You should use this generator only, * if you can guarantee, that mac addess is uniqe or specify 'ebean.uuidNodeId' in your config file. - * */ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { @@ -34,7 +34,7 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { * Returns an instance for given file. */ public static UuidV1IdGenerator getInstance(File file, String nodeId) { - return INSTANCES.computeIfAbsent(file, f ->new UuidV1IdGenerator(f, nodeId == null ? null : nodeId.toLowerCase())); + return INSTANCES.computeIfAbsent(file, f -> new UuidV1IdGenerator(f, nodeId == null ? null : nodeId.toLowerCase())); } /** @@ -60,7 +60,7 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { /** * Find hardware ID. - * + *

* We check all non-loopback networkinterfaces for valid hardwareAddresses * We prefer to take the first non virtual "up" device. If no device (with valid addr) is up, * we take the first down device. @@ -71,21 +71,18 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { while (e.hasMoreElements()) { NetworkInterface network = e.nextElement(); try { - log.trace("Probing interface {}", network); if (!network.isLoopback()) { byte[] addr = network.getHardwareAddress(); if (validAddr(addr)) { if (network.isUp() && !network.isVirtual()) { - log.debug("Using interface {}", network); return addr; } else if (fallbackAddr == null) { - log.debug("Using interface {} as fallback", network); fallbackAddr = addr; } } } } catch (SocketException ex) { - log.debug("Skipping {}", network, ex); + log.log(Level.DEBUG, "Skipping " + network, ex); } } return fallbackAddr; @@ -98,7 +95,7 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { if (addr != null && addr.length >= 6) { // valid addr has 6 bytes // check if vendor is != 0x000000 or 0xFFFFFF return (addr[0] != 0x00 && addr[1] != 0x00 && addr[2] != 0x00) - ||(addr[0] != 0xFF && addr[1] != 0xFF && addr[2] != 0xFF); + || (addr[0] != 0xFF && addr[1] != 0xFF && addr[2] != 0xFF); } return false; } @@ -122,7 +119,7 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { // See, if there is an alternative MAC address set. nodeId = parseAlternativeNodeId(altNodeId); restoreState(); - log.info("Explicitly using ID {} to generate Type 1 UUIDs", getNodeIdentifier()); + log.log(Level.INFO, "Explicitly using ID {0} to generate Type 1 UUIDs", getNodeIdentifier()); } UUID uuid = nextId(null); long ts = timeStamp.get(); @@ -130,9 +127,9 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { ts /= MILLIS_TO_UUID; saveState(); - log.debug("Saved state: clockSeq {}, timestamp {}, uuid {}, stateFile: {})", clockSeq.get(), new Date(ts), uuid, stateFile); + log.log(Level.DEBUG, "Saved state: clockSeq {0}, timestamp {1}, uuid {2}, stateFile: {3})", clockSeq.get(), new Date(ts), uuid, stateFile); } catch (IOException e) { - log.error("There was a problem while detecting the nodeId. Falling back to random mode. Try using to specify 'ebean.uuidNodeId' property", e); + log.log(Level.ERROR, "There was a problem while detecting the nodeId. Falling back to random mode. Try using to specify 'ebean.uuidNodeId' property", e); useRandomMode(); } } @@ -141,7 +138,7 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { * Tries to initialize the generator by retrieving the MAC address from * hardware. If there is no suitable network interface found, it will fall back * to "generate" mode. - * + * * @throws IOException if state file is not readable or tryGenerateMode also * fails. */ @@ -149,16 +146,16 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { try { nodeId = getHardwareId(); } catch (IOException e) { - log.error("Error while reading MAC address. Fall back to 'generate' mode", e); + log.log(Level.ERROR, "Error while reading MAC address. Fall back to 'generate' mode", e); tryGenerateMode(); } if (nodeId != null) { restoreState(); - log.info("Using MAC {} to generate Type 1 UUIDs", getNodeIdentifier()); + log.log(Level.INFO, "Using MAC {0} to generate Type 1 UUIDs", getNodeIdentifier()); return; } - log.warn("No suitable network interface found. Fall back to 'generate' mode"); + log.log(Level.WARNING, "No suitable network interface found. Fall back to 'generate' mode"); tryGenerateMode(); } @@ -168,11 +165,11 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { */ private void tryGenerateMode() throws IOException { if (restoreState()) { - log.info("Using recently generated nodeId {} to generate Type 1 UUIDs", getNodeIdentifier()); + log.log(Level.INFO, "Using recently generated nodeId {0} to generate Type 1 UUIDs", getNodeIdentifier()); } else { // RFC 4.5 use random portion for node nodeId = super.getNodeIdBytes(); - log.info("Using a newly generated nodeId {} to generate Type 1 UUIDs", getNodeIdentifier()); + log.log(Level.INFO, "Using a newly generated nodeId {0} to generate Type 1 UUIDs", getNodeIdentifier()); } } @@ -183,7 +180,7 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { private void useRandomMode() { canSaveState = false; nodeId = super.getNodeIdBytes(); - log.info("Explicitly using a new random ID {} to generate Type 1 UUIDs", getNodeIdentifier()); + log.log(Level.INFO, "Explicitly using a new random ID {0} to generate Type 1 UUIDs", getNodeIdentifier()); } /** @@ -206,7 +203,6 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { private boolean restoreState() throws IOException { Properties prop = new Properties(); if (!stateFile.exists()) { - log.debug("State file '{}' does not exist", stateFile); return false; } try (InputStream is = new FileInputStream(stateFile)) { @@ -215,28 +211,27 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { String propNodeId = prop.getProperty("nodeId"); if (propNodeId == null || propNodeId.isEmpty()) { - log.warn("State file '{}' is incomplete", stateFile); + log.log(Level.WARNING, "State file '{0}' is incomplete", stateFile); return false; // we cannot restore } try { if (nodeId == null) { nodeId = parseAlternativeNodeId(propNodeId); } else if (!getNodeIdentifier().equals(propNodeId)) { - log.warn( - "The nodeId in the state file '{}' has changed from {} to {}. " - + "This can happen when MAC address changes or when two containers share the same state file", - stateFile, propNodeId, getNodeIdentifier()); + log.log(Level.WARNING, + "The nodeId in the state file '{0}' has changed from {1} to {2}. " + + "This can happen when MAC address changes or when two containers share the same state file", + stateFile, propNodeId, getNodeIdentifier()); return false; } Integer seq = Integer.valueOf(prop.getProperty("clockSeq")) & 0x3FFF; Long ts = Long.valueOf(prop.getProperty("timeStamp")); clockSeq.set(seq); timeStamp.set(ts); - log.debug("State successfully restored: {}", prop); return true; - + } catch (IllegalArgumentException nfe) { - log.error("State file '{}' is corrupt", stateFile, nfe); + log.log(Level.ERROR, "State file corrupt: " + stateFile, nfe); } return false; } @@ -259,9 +254,8 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { } try (OutputStream os = new FileOutputStream(stateFile)) { prop.store(os, "ebean uuid state file"); - log.debug("Persisted state to '{}'", stateFile); } catch (IOException e) { - log.error("Could not persist uuid state to '{}'", stateFile, e); + log.log(Level.ERROR, "Could not persist uuid state to: " + stateFile, e); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/idgen/UuidV1RndIdGenerator.java b/ebean-core/src/main/java/io/ebeaninternal/server/idgen/UuidV1RndIdGenerator.java index a8fd0b52b..e5a34d135 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/idgen/UuidV1RndIdGenerator.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/idgen/UuidV1RndIdGenerator.java @@ -1,17 +1,16 @@ package io.ebeaninternal.server.idgen; +import io.avaje.applog.AppLog; import io.ebean.Transaction; import io.ebean.config.dbplatform.PlatformIdGenerator; +import java.lang.System.Logger.Level; import java.security.SecureRandom; import java.util.UUID; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.locks.ReentrantLock; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - /** * IdGenerator for (pseudo) type 1 UUIDs. * @@ -27,7 +26,7 @@ import org.slf4j.LoggerFactory; */ public class UuidV1RndIdGenerator implements PlatformIdGenerator { - protected static final Logger log = LoggerFactory.getLogger("io.ebean.IDGEN"); + protected static final System.Logger log = AppLog.getLogger("io.ebean.IDGEN"); // UUID epoch 1582-10-15 00:00:00 and the Unix epoch 1970-01-01 00:00:00. protected static final long UUID_EPOCH_OFFSET = 0x01B21DD213814000L; @@ -106,7 +105,7 @@ public class UuidV1RndIdGenerator implements PlatformIdGenerator { delta = current - last; if (delta < -10000 * 20000) { - log.info("Clock skew of {} ms detected", delta / -10000); + log.log(Level.INFO, "Clock skew of {} ms detected", delta / -10000); // The clock was adjusted back about 2 seconds, or we were generating a lot of ids too fast // if so, we try to set the current as last and also increment the clockSeq. lock.lock(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/logger/DLoggerFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/logger/DLoggerFactory.java index 90f6cbafa..d52e8cb3b 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/logger/DLoggerFactory.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/logger/DLoggerFactory.java @@ -1,8 +1,8 @@ package io.ebeaninternal.server.logger; +import io.avaje.applog.AppLog; import io.ebeaninternal.api.SpiLogger; import io.ebeaninternal.api.SpiLoggerFactory; -import org.slf4j.LoggerFactory; /** * Default SpiLoggerFactory implementation. @@ -14,6 +14,6 @@ public final class DLoggerFactory implements SpiLoggerFactory { */ @Override public SpiLogger create(String name) { - return new DSpiLogger(LoggerFactory.getLogger(name)); + return new DSpiLogger(AppLog.getLogger(name)); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/logger/DSpiLogger.java b/ebean-core/src/main/java/io/ebeaninternal/server/logger/DSpiLogger.java index 7c59031ae..adc648275 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/logger/DSpiLogger.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/logger/DSpiLogger.java @@ -1,33 +1,34 @@ package io.ebeaninternal.server.logger; import io.ebeaninternal.api.SpiLogger; -import org.slf4j.Logger; + +import java.lang.System.Logger.Level; final class DSpiLogger implements SpiLogger { - private final Logger logger; + private final System.Logger logger; - DSpiLogger(Logger logger) { + DSpiLogger(System.Logger logger) { this.logger = logger; } @Override public boolean isDebug() { - return logger.isDebugEnabled(); + return logger.isLoggable(Level.DEBUG); } @Override public boolean isTrace() { - return logger.isTraceEnabled(); + return logger.isLoggable(Level.TRACE); } @Override public void debug(String msg) { - logger.debug(msg); + logger.log(Level.DEBUG, msg); } @Override public void trace(String msg) { - logger.trace(msg); + logger.log(Level.TRACE, msg); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/BatchedPstmt.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/BatchedPstmt.java index 7b3e74085..ccf068973 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/BatchedPstmt.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/BatchedPstmt.java @@ -6,6 +6,7 @@ import io.ebeaninternal.api.SpiTransaction; import java.io.IOException; import java.io.InputStream; +import java.lang.System.Logger.Level; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; @@ -135,7 +136,7 @@ public final class BatchedPstmt implements SpiProfileTransactionEvent { try { pstmt.close(); } catch (SQLException e) { - CoreLog.log.warn("BatchedPstmt Error closing statement", e); + CoreLog.log.log(Level.WARNING, "BatchedPstmt Error closing statement", e); } finally { pstmt = null; } @@ -201,7 +202,7 @@ public final class BatchedPstmt implements SpiProfileTransactionEvent { try { inputStream.close(); } catch (IOException e) { - CoreLog.log.warn("BatchedPstmt Error closing inputStream ", e); + CoreLog.log.log(Level.WARNING, "BatchedPstmt Error closing inputStream ", e); } } inputStreams = null; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java index ca81e4ac8..779362ee8 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java @@ -12,6 +12,7 @@ import io.ebeaninternal.server.persist.platform.MultiValueBind; import io.ebeaninternal.server.type.*; import javax.persistence.PersistenceException; +import java.lang.System.Logger.Level; import java.math.BigDecimal; import java.sql.*; import java.util.Collection; @@ -132,7 +133,7 @@ public final class Binder { } } catch (SQLException ex) { - CoreLog.log.warn("error binding parameter [{}][{}]", (dataBind.currentPos() - 1), value); + CoreLog.log.log(Level.WARNING, "error binding parameter [{0}][{1}]", (dataBind.currentPos() - 1), value); throw ex; } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java index aa2fc8bc2..728c4efcb 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java @@ -1,5 +1,6 @@ package io.ebeaninternal.server.persist; +import io.avaje.applog.AppLog; import io.ebean.*; import io.ebean.bean.BeanCollection; import io.ebean.bean.BeanCollection.ModifyListenMode; @@ -11,9 +12,8 @@ import io.ebeaninternal.api.*; import io.ebeaninternal.server.core.*; import io.ebeaninternal.server.core.PersistRequest.Type; import io.ebeaninternal.server.deploy.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.lang.System.Logger.Level; import java.sql.SQLException; import java.util.*; @@ -33,8 +33,8 @@ import java.util.*; */ public final class DefaultPersister implements Persister { - private static final Logger PUB = LoggerFactory.getLogger("io.ebean.PUB"); - private static final Logger log = CoreLog.internal; + private static final System.Logger PUB = AppLog.getLogger("io.ebean.PUB"); + private static final System.Logger log = CoreLog.internal; /** * Actually does the persisting work. @@ -143,7 +143,7 @@ public final class DefaultPersister implements Persister { DraftHandler draftHandler = new DraftHandler<>(desc, transaction); List liveBeans = draftHandler.fetchSourceBeans(query, false); - PUB.debug("draftRestore [{}] count[{}]", desc.name(), liveBeans.size()); + PUB.log(Level.DEBUG, "draftRestore [{0}] count[{1}]", desc.name(), liveBeans.size()); if (liveBeans.isEmpty()) { return Collections.emptyList(); } @@ -156,11 +156,11 @@ public final class DefaultPersister implements Persister { // reset @DraftDirty and @DraftReset properties draftHandler.resetDraft(draftBean); - PUB.trace("draftRestore bean [{}] id[{}]", desc.name(), draftHandler.getId()); + PUB.log(Level.TRACE, "draftRestore bean [{0}] id[{1}]", desc.name(), draftHandler.getId()); update(createRequest(draftBean, transaction, null, mgr, Type.UPDATE, Flags.RECURSE)); } - PUB.debug("draftRestore - complete for [{}]", desc.name()); + PUB.log(Level.DEBUG, "draftRestore - complete for [{0}]", desc.name()); return draftHandler.getDrafts(); } @@ -185,7 +185,7 @@ public final class DefaultPersister implements Persister { DraftHandler draftHandler = new DraftHandler<>(desc, transaction); List draftBeans = draftHandler.fetchSourceBeans(query, true); - PUB.debug("publish [{}] count[{}]", desc.name(), draftBeans.size()); + PUB.log(Level.DEBUG, "publish [{0}] count[{1}]", desc.name(), draftBeans.size()); if (draftBeans.isEmpty()) { return Collections.emptyList(); } @@ -202,7 +202,7 @@ public final class DefaultPersister implements Persister { draftHandler.resetDraft(draftBean); Type persistType = draftHandler.isInsert() ? Type.INSERT : Type.UPDATE; - PUB.trace("publish bean [{}] id[{}] type[{}]", desc.name(), draftHandler.getId(), persistType); + PUB.log(Level.TRACE, "publish bean [{0}] id[{1}] type[{2}]", desc.name(), draftHandler.getId(), persistType); PersistRequestBean request = createRequest(liveBean, transaction, null, mgr, persistType, Flags.PUBLISH_RECURSE); if (persistType == Type.INSERT) { @@ -214,7 +214,7 @@ public final class DefaultPersister implements Persister { } draftHandler.updateDrafts(transaction, mgr); - PUB.debug("publish - complete for [{}]", desc.name()); + PUB.log(Level.DEBUG, "publish - complete for [{0}]", desc.name()); return livePublish; } @@ -270,7 +270,7 @@ public final class DefaultPersister implements Persister { void updateDrafts(Transaction transaction, BeanManager mgr) { if (!draftUpdates.isEmpty()) { // update the dirty status on the drafts that have been published - PUB.debug("publish - update dirty status on [{}] drafts", draftUpdates.size()); + PUB.log(Level.DEBUG, "publish - update dirty status on [{0}] drafts", draftUpdates.size()); for (T draftUpdate : draftUpdates) { update(createRequest(draftUpdate, transaction, null, mgr, Type.UPDATE, Flags.ZERO)); } @@ -491,8 +491,8 @@ public final class DefaultPersister implements Persister { } if (request.isDirty()) { request.executeOrQueue(); - } else if (log.isDebugEnabled()) { - log.debug("Update skipped as bean is unchanged: {}", request.bean()); + } else if (log.isLoggable(Level.DEBUG)) { + log.log(Level.DEBUG, "Update skipped as bean is unchanged: {0}", request.bean()); } if (request.isPersistCascade()) { // save all the beans in assocMany's after @@ -538,8 +538,8 @@ public final class DefaultPersister implements Persister { if (req.isRegisteredForDeleteBean()) { // skip deleting bean. Used where cascade is on // both sides of a relationship - if (log.isDebugEnabled()) { - log.debug("skipping delete on alreadyRegistered {}", req.bean()); + if (log.isLoggable(Level.DEBUG)) { + log.log(Level.DEBUG, "skipping delete on alreadyRegistered {0}", req.bean()); } return 0; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBase.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBase.java index be42d42c2..c839ac9e6 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBase.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBase.java @@ -9,6 +9,7 @@ import io.ebeaninternal.server.core.PersistRequestBean; import io.ebeaninternal.server.deploy.BeanPropertyAssocMany; import java.io.IOException; +import java.lang.System.Logger.Level; /** * Base for saving entity bean collections and element collections. @@ -71,7 +72,7 @@ abstract class SaveManyBase implements SaveMany { String asJson = many.jsonWriteCollection(value); request.addCollectionChange(many.name(), asJson); } catch (IOException e) { - CoreLog.log.error("Error build element collection entry for L2 cache", e); + CoreLog.log.log(Level.ERROR, "Error build element collection entry for L2 cache", e); } } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBeans.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBeans.java index 7b7c2d970..5b6858e78 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBeans.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBeans.java @@ -318,7 +318,7 @@ final class SaveManyBeans extends SaveManyBase { if (transaction.isLogSummary()) { transaction.logSummary(m); } - CoreLog.log.warn(m); + CoreLog.log.log(System.Logger.Level.WARNING, m); } else { if (!many.hasImportedId(otherBean)) { throw new PersistenceException("ManyToMany bean " + otherBean + " does not have an Id value."); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DmlHandler.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DmlHandler.java index 7b82e7faa..ef3d9d098 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DmlHandler.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/DmlHandler.java @@ -15,6 +15,8 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; +import static java.lang.System.Logger.Level.ERROR; + /** * Base class for Handler implementations. */ @@ -123,7 +125,7 @@ public abstract class DmlHandler implements PersistHandler, BindableRequest { dataBind.close(); } } catch (SQLException ex) { - CoreLog.log.error(null, ex); + CoreLog.log.log(ERROR, "Error closing DataBind", ex); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java index b7457bbbb..6fc84bfb5 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQuery.java @@ -25,6 +25,8 @@ import java.sql.SQLException; import java.util.*; import java.util.concurrent.locks.ReentrantLock; +import static java.lang.System.Logger.Level.ERROR; + /** * An object that represents a SqlSelect statement. *

@@ -344,7 +346,7 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi auditIterateLogMessage(); } } catch (Throwable e) { - CoreLog.log.error("Error logging read audit logs", e); + CoreLog.log.log(ERROR, "Error logging read audit logs", e); } try { if (dataReader != null) { @@ -352,7 +354,7 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi dataReader = null; } } catch (SQLException e) { - CoreLog.log.error("Error closing dataReader", e); + CoreLog.log.log(ERROR, "Error closing dataReader", e); } JdbcClose.close(pstmt); pstmt = null; @@ -548,7 +550,7 @@ public final class CQuery implements DbReadContext, CancelableQuery, SpiProfi } transaction().profileEvent(this); } catch (Exception e) { - CoreLog.log.error("Error updating execution statistics", e); + CoreLog.log.log(ERROR, "Error updating execution statistics", e); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java index 894bcfce5..ad2cdbae8 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java @@ -11,16 +11,14 @@ import io.ebean.config.DatabaseConfig; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.util.JdbcClose; import io.ebean.util.StringHelper; -import io.ebeaninternal.api.CoreLog; import io.ebeaninternal.api.SpiQuery; import io.ebeaninternal.api.SpiTransaction; import io.ebeaninternal.server.core.DiffHelp; import io.ebeaninternal.server.core.OrmQueryRequest; import io.ebeaninternal.server.core.SpiResultSet; import io.ebeaninternal.server.deploy.BeanDescriptor; -import io.ebeaninternal.server.util.Str; import io.ebeaninternal.server.persist.Binder; -import org.slf4j.Logger; +import io.ebeaninternal.server.util.Str; import javax.persistence.PersistenceException; import java.sql.ResultSet; @@ -32,7 +30,6 @@ import java.util.*; */ public final class CQueryEngine { - private static final Logger log = CoreLog.log; private static final String T0 = "t0"; private final int defaultFetchSizeFindList; @@ -195,7 +192,6 @@ public final class CQueryEngine { } if (!cquery.prepareBindExecuteQueryForwardOnly(forwardOnlyHintOnFindIterate)) { // query has been cancelled already - log.trace("Future fetch already cancelled"); return null; } if (request.logSql()) { @@ -349,7 +345,6 @@ public final class CQueryEngine { } if (!cquery.prepareBindExecuteQuery()) { // query has been cancelled already - log.trace("Future fetch already cancelled"); return null; } if (request.logSql()) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java index f2fb587f2..78b20dc1c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryFetchSingleAttribute.java @@ -19,6 +19,8 @@ import java.util.Collection; import java.util.Set; import java.util.concurrent.locks.ReentrantLock; +import static java.lang.System.Logger.Level.ERROR; + /** * Base compiled query request for single attribute queries. */ @@ -153,7 +155,7 @@ final class CQueryFetchSingleAttribute implements SpiProfileTransactionEvent, Ca dataReader = null; } } catch (SQLException e) { - CoreLog.log.error("Error closing DataReader", e); + CoreLog.log.log(ERROR, "Error closing DataReader", e); } JdbcClose.close(pstmt); pstmt = null; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java index 7ab1b8a39..490949ab1 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlan.java @@ -23,6 +23,8 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.Set; +import static java.lang.System.Logger.Level.ERROR; + /** * Represents a query for a given SQL statement. *

@@ -313,7 +315,7 @@ public class CQueryPlan implements SpiQueryPlan { predicates.bind(capture); bindCapture.setBind(capture.bindCapture(), executionTimeMicros, startNanos); } catch (SQLException e) { - CoreLog.log.error("Error capturing bind values", e); + CoreLog.log.log(ERROR, "Error capturing bind values", e); } } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanManager.java index e1cb2d3c3..33f353176 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanManager.java @@ -7,6 +7,7 @@ import io.ebeaninternal.api.*; import io.ebeaninternal.server.transaction.TransactionManager; import io.ebeaninternal.server.type.bindcapture.BindCapture; +import java.lang.System.Logger.Level; import java.sql.Connection; import java.sql.SQLException; import java.util.List; @@ -64,7 +65,7 @@ public final class CQueryPlanManager implements QueryPlanManager { } return req.plans(); } catch (SQLException e) { - CoreLog.log.error("Error during query plan collection", e); + CoreLog.log.log(Level.ERROR, "Error during query plan collection", e); return emptyList(); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java index 414484d1e..01e64642f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java @@ -26,6 +26,8 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import static java.lang.System.Logger.Level.WARNING; + /** * Compile Query Predicates. *

@@ -339,7 +341,7 @@ public final class CQueryPredicates { msg += "] with an incorrect orderBy [" + orderBy + "]. The id property [" + orderById + "]"; msg += " must come before the many property [" + manyProp.name() + "] in the orderBy."; msg += " Ebean has automatically modified the orderBy clause to do this."; - CoreLog.log.warn(msg); + CoreLog.log.log(WARNING, msg); } // the id needs to come before the manyPropName orderBy = orderBy.substring(0, manyPos) + orderById + ", " + orderBy.substring(manyPos); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerExplain.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerExplain.java index d87f66ed6..70c0df722 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerExplain.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerExplain.java @@ -10,6 +10,8 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import static java.lang.System.Logger.Level.WARNING; + /** * A QueryPlanLogger that prefixes "EXPLAIN " to the query. This works for Postgres, H2 and MySql. */ @@ -23,7 +25,7 @@ public final class QueryPlanLoggerExplain extends QueryPlanLogger { return readQueryPlan(plan, bind, rset); } } catch (SQLException e) { - CoreLog.log.warn("Could not log query plan", e); + CoreLog.log.log(WARNING, "Could not log query plan", e); return null; } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerOracle.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerOracle.java index f5454bb76..45c3094af 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerOracle.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerOracle.java @@ -12,6 +12,8 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; +import static java.lang.System.Logger.Level.WARNING; + /** * A QueryPlanLogger for oracle. * @@ -30,7 +32,7 @@ public final class QueryPlanLoggerOracle extends QueryPlanLogger { return readQueryPlan(plan, bind, rset); } } catch (SQLException e) { - CoreLog.log.warn("Could not log query plan", e); + CoreLog.log.log(WARNING, "Could not log query plan", e); return null; } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerPostgres.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerPostgres.java index db99ef672..8b5253c90 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerPostgres.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerPostgres.java @@ -10,6 +10,8 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import static java.lang.System.Logger.Level.WARNING; + /** * A QueryPlanLogger for Postgres that prefixes "EXPLAIN ANALYZE" to the query. */ @@ -24,7 +26,7 @@ public final class QueryPlanLoggerPostgres extends QueryPlanLogger { return readQueryPlanBasic(plan, bind, rset); } } catch (SQLException e) { - CoreLog.log.warn("Could not log query plan: " + explain, e); + CoreLog.log.log(WARNING, "Could not log query plan: " + explain, e); return null; } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerSqlServer.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerSqlServer.java index 75df42bc1..2da90d98f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerSqlServer.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/QueryPlanLoggerSqlServer.java @@ -11,6 +11,8 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; +import static java.lang.System.Logger.Level.WARNING; + /** * A QueryPlanLogger for SqlServer. It will return the plan as XML, which can be opened in * Microsoft SQL Server Management Studio. @@ -42,13 +44,13 @@ public final class QueryPlanLoggerSqlServer extends QueryPlanLogger { return createPlan(plan, bind.toString(), xml); } catch (SQLException e) { - CoreLog.log.warn("Could not log query plan", e); + CoreLog.log.log(WARNING, "Could not log query plan", e); return null; } finally { stmt.execute("set statistics xml off"); } } catch (SQLException e) { - CoreLog.log.warn("Could not log query plan", e); + CoreLog.log.log(WARNING, "Could not log query plan", e); return null; } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java index a018b081f..30586c4f7 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java @@ -11,23 +11,16 @@ import io.ebeaninternal.server.deploy.InheritInfo; import io.ebeaninternal.server.deploy.TableJoin; import io.ebeaninternal.server.querydefn.OrmQueryDetail; import io.ebeaninternal.server.querydefn.OrmQueryProperties; -import org.slf4j.Logger; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.lang.System.Logger.Level; +import java.util.*; /** * Factory for SqlTree. */ public final class SqlTreeBuilder { - private static final Logger log = CoreLog.internal; + private static final System.Logger log = CoreLog.internal; private final SpiQuery query; private final STreeType desc; @@ -92,10 +85,10 @@ public final class SqlTreeBuilder { this.disableLazyLoad = query.isDisableLazyLoading(); this.readOnly = Boolean.TRUE.equals(query.isReadOnly()); this.subQuery = Type.SQ_EXISTS == query.getType() - || Type.SQ_IN == query.getType() - || Type.ID_LIST == query.getType() - || Type.DELETE == query.getType() - || query.isCountDistinct(); + || Type.SQ_IN == query.getType() + || Type.ID_LIST == query.getType() + || Type.DELETE == query.getType() + || query.isCountDistinct(); this.includeJoin = query.getM2mIncludeJoin(); this.manyWhereJoins = query.getManyWhereJoins(); this.queryDetail = query.getDetail(); @@ -392,7 +385,7 @@ public final class SqlTreeBuilder { private void addPropertyToSubQuery(SqlTreeProperties selectProps, STreeType desc, String propName, String path) { STreeProperty p = desc.findPropertyWithDynamic(propName, path); if (p == null) { - log.error("property [" + propName + "]not found on " + desc + " for query - excluding it."); + log.log(Level.ERROR, "property [{0}] not found on {1} for query - excluding it.", propName, desc); return; } else if (p instanceof STreePropertyAssoc && p.isEmbedded()) { // if the property is embedded we need to lookup the real column name @@ -427,13 +420,13 @@ public final class SqlTreeBuilder { if (p != null) { selectProps.add(p); } else { - log.error("property [" + propName + "] not found on " + desc + " for query - excluding it."); + log.log(Level.ERROR, "property [{0}] not found on {1} for query - excluding it.", propName, desc); } } else if (p.isEmbedded() || (p instanceof STreePropertyAssoc && !queryProps.isIncludedBeanJoin(p.name()))) { // add the embedded bean or the *ToOne assoc bean. We skip the check that the *ToOne propName maps to Id property ... selectProps.add(p); } else { - log.error("property [" + p.fullName() + "] expected to be an embedded or *ToOne bean for query - excluding it."); + log.log(Level.ERROR, "property [{0}] expected to be an embedded or *ToOne bean for query - excluding it.", p.fullName()); } } @@ -442,7 +435,7 @@ public final class SqlTreeBuilder { // sub class hierarchy if required STreeProperty p = desc.findPropertyWithDynamic(propName, queryProps.getPath()); if (p == null) { - log.error("property [" + propName + "] not found on " + desc + " for query - excluding it."); + log.log(Level.ERROR, "property [{0}] not found on {1} for query - excluding it.", propName, desc); p = desc.findProperty("id"); selectProps.add(p); @@ -542,9 +535,6 @@ public final class SqlTreeBuilder { if (queryDetail.includesPath(propName)) { if (manyProperty != null) { // only one many associated allowed to be included in fetch - if (log.isDebugEnabled()) { - log.debug("Not joining [" + propName + "] as already joined to a Many[" + manyProperty + "]."); - } return false; } manyProperty = manyProp; @@ -559,7 +549,6 @@ public final class SqlTreeBuilder { * Return true if this node is FULLY included resulting in table join. If the * node is not included but its parent has been included then a "bean proxy" * is added and false is returned. - *

*/ private boolean isIncludeBean(String prefix) { if (queryDetail.includesPath(prefix)) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/readaudit/DefaultReadAuditLogger.java b/ebean-core/src/main/java/io/ebeaninternal/server/readaudit/DefaultReadAuditLogger.java index 72b5ee85f..b49f3baf4 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/readaudit/DefaultReadAuditLogger.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/readaudit/DefaultReadAuditLogger.java @@ -1,17 +1,17 @@ package io.ebeaninternal.server.readaudit; +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonGenerator; +import io.avaje.applog.AppLog; import io.ebean.event.readaudit.ReadAuditLogger; import io.ebean.event.readaudit.ReadAuditQueryPlan; import io.ebean.event.readaudit.ReadEvent; import io.ebean.text.json.EJson; -import com.fasterxml.jackson.core.JsonFactory; -import com.fasterxml.jackson.core.JsonGenerator; import io.ebeaninternal.api.CoreLog; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.IOException; import java.io.StringWriter; +import java.lang.System.Logger.Level; import java.util.Map; /** @@ -19,8 +19,8 @@ import java.util.Map; */ public class DefaultReadAuditLogger implements ReadAuditLogger { - private static final Logger queryLogger = LoggerFactory.getLogger("io.ebean.ReadAuditQuery"); - private static final Logger auditLogger = LoggerFactory.getLogger("io.ebean.ReadAudit"); + private static final System.Logger queryLogger = AppLog.getLogger("io.ebean.ReadAuditQuery"); + private static final System.Logger auditLogger = AppLog.getLogger("io.ebean.ReadAudit"); protected final JsonFactory jsonFactory = new JsonFactory(); protected int defaultQueryBuffer = 500; @@ -48,9 +48,9 @@ public class DefaultReadAuditLogger implements ReadAuditLogger { } gen.writeEndObject(); gen.flush(); - queryLogger.info(writer.toString()); + queryLogger.log(Level.INFO, writer.toString()); } catch (IOException e) { - CoreLog.log.error("Error writing Read audit event", e); + CoreLog.log.log(Level.ERROR, "Error writing Read audit event", e); } } @@ -75,9 +75,9 @@ public class DefaultReadAuditLogger implements ReadAuditLogger { StringWriter writer = new StringWriter(defaultReadBuffer); JsonGenerator gen = jsonFactory.createGenerator(writer); writeDetails(gen, event); - auditLogger.info(writer.toString()); + auditLogger.log(Level.INFO, writer.toString()); } catch (IOException e) { - CoreLog.log.error("Error writing Read audit event", e); + CoreLog.log.log(Level.ERROR, "Error writing Read audit event", e); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileHandler.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileHandler.java index 16c4aafad..028b40c19 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileHandler.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileHandler.java @@ -7,9 +7,11 @@ import io.ebean.plugin.SpiServer; import io.ebean.util.IOUtils; import io.ebeaninternal.api.CoreLog; import io.ebeaninternal.api.SpiProfileHandler; -import org.slf4j.Logger; -import java.io.*; +import java.io.File; +import java.io.IOException; +import java.io.Writer; +import java.lang.System.Logger.Level; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatterBuilder; @@ -31,8 +33,9 @@ import static java.time.temporal.ChronoField.*; */ public final class DefaultProfileHandler implements SpiProfileHandler, Plugin { - private static final Logger log = CoreLog.internal; + private static final System.Logger log = CoreLog.internal; private static final DateTimeFormatter DTF; + static { DTF = new DateTimeFormatterBuilder() .parseCaseInsensitive() @@ -76,7 +79,7 @@ public final class DefaultProfileHandler implements SpiProfileHandler, Plugin { this.executor = Executors.newSingleThreadExecutor(); this.dir = new File(config.getDirectory()); if (!dir.exists() && !dir.mkdirs()) { - log.error("failed to mkdirs " + dir.getAbsolutePath()); + log.log(Level.ERROR, "failed to mkdirs " + dir.getAbsolutePath()); } incrementFile(); } @@ -106,7 +109,7 @@ public final class DefaultProfileHandler implements SpiProfileHandler, Plugin { out.close(); out = null; } catch (IOException e) { - log.error("Failed to flush and close transaction profiling file ", e); + log.log(Level.ERROR, "Failed to flush and close transaction profiling file ", e); } } } finally { @@ -126,7 +129,7 @@ public final class DefaultProfileHandler implements SpiProfileHandler, Plugin { File file = new File(dir, "txprofile-" + now + ".tprofile"); out = IOUtils.newWriter(file); } catch (IOException e) { - log.error("Not expected", e); + log.log(Level.ERROR, "Not expected", e); } } finally { lock.unlock(); @@ -149,7 +152,7 @@ public final class DefaultProfileHandler implements SpiProfileHandler, Plugin { } flushCurrentFile(); } catch (Exception e) { - log.warn("Error on collect", e); + log.log(Level.WARNING, "Error on collect", e); } } @@ -180,10 +183,10 @@ public final class DefaultProfileHandler implements SpiProfileHandler, Plugin { if (profileCounter % profilesPerFile == 0) { incrementFile(); - log.debug("profiled {} transactions", profileCounter); + log.log(Level.DEBUG, "profiled {0} transactions", profileCounter); } } catch (IOException e) { - log.warn("Error writing transaction profiling", e); + log.log(Level.WARNING, "Error writing transaction profiling", e); } } @@ -247,16 +250,16 @@ public final class DefaultProfileHandler implements SpiProfileHandler, Plugin { @Override public void shutdown() { shutdown = true; - log.trace("shutting down"); + log.log(Level.TRACE, "shutting down"); try { executor.shutdown(); if (!executor.awaitTermination(4, TimeUnit.SECONDS)) { - log.info("Shut down timeout exceeded. Terminating profiling consumer thread."); + log.log(Level.INFO, "Shut down timeout exceeded. Terminating profiling consumer thread."); executor.shutdownNow(); } } catch (InterruptedException e) { Thread.currentThread().interrupt(); - log.warn("Interrupt on shutdown", e); + log.log(Level.WARNING, "Interrupt on shutdown", e); } flushCurrentFile(); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java index 42f585707..9ee5aa5a0 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java @@ -12,6 +12,7 @@ import io.ebeaninternal.server.persist.BatchControl; import io.ebeanservice.docstore.api.DocStoreTransaction; import javax.persistence.PersistenceException; +import java.lang.System.Logger.Level; import java.sql.Connection; import java.sql.SQLException; import java.util.HashMap; @@ -483,7 +484,7 @@ final class ImplicitReadOnlyTransaction implements SpiTransaction, TxnProfileEve } catch (Exception ex) { // the connection pool will automatically remove the // connection if it does not pass the test - CoreLog.log.error("Error closing connection", ex); + CoreLog.log.log(Level.ERROR, "Error closing connection", ex); } connection = null; active = false; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java index 4fb74db18..38021986f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java @@ -14,10 +14,10 @@ import io.ebeaninternal.server.persist.BatchControl; import io.ebeaninternal.server.persist.BatchedSqlException; import io.ebeaninternal.server.util.Str; import io.ebeanservice.docstore.api.DocStoreTransaction; -import org.slf4j.Logger; import javax.persistence.PersistenceException; import javax.persistence.RollbackException; +import java.lang.System.Logger.Level; import java.sql.Connection; import java.sql.SQLException; import java.util.*; @@ -28,7 +28,7 @@ import java.util.function.Consumer; */ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { - private static final Logger log = CoreLog.log; + private static final System.Logger log = CoreLog.log; private static final Object PLACEHOLDER = new Object(); private static final String illegalStateMessage = "Transaction is Inactive"; @@ -356,7 +356,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { try { consumer.accept(callbackList.get(i)); } catch (Exception e) { - log.error("Error executing transaction callback", e); + log.log(Level.ERROR, "Error executing transaction callback", e); } } } @@ -884,7 +884,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { connection.setReadOnly(false); } } catch (SQLException e) { - log.error("Error setting to readOnly?", e); + log.log(Level.ERROR, "Error setting to readOnly?", e); } try { if (autoCommit) { @@ -892,14 +892,14 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { connection.setAutoCommit(true); } } catch (SQLException e) { - log.error("Error setting to readOnly?", e); + log.log(Level.ERROR, "Error setting to readOnly?", e); } try { connection.close(); } catch (Exception ex) { // the connection pool will automatically remove the // connection if it does not pass the test - log.error("Error closing connection", ex); + log.log(Level.ERROR, "Error closing connection", ex); } connection = null; active = false; @@ -932,7 +932,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { } withEachCallback(TransactionCallback::postCommit); } catch (SQLException e) { - log.error("Error when ending a query only transaction via " + onQueryOnly, e); + log.log(Level.ERROR, "Error when ending a query only transaction via " + onQueryOnly, e); } } @@ -1056,7 +1056,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { private RuntimeException wrapIfNeeded(Exception e) { if (e instanceof PersistenceException) { // keep more specific exception if we have it - return (PersistenceException)e; + return (PersistenceException) e; } return new RollbackException(e); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java index f5edf2688..3845d0776 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java @@ -4,7 +4,6 @@ import io.ebean.config.ExternalTransactionManager; import io.ebean.util.JdbcClose; import io.ebeaninternal.api.CoreLog; import io.ebeaninternal.api.SpiTransaction; -import org.slf4j.Logger; import javax.naming.InitialContext; import javax.naming.NamingException; @@ -14,13 +13,14 @@ import javax.transaction.Status; import javax.transaction.Synchronization; import javax.transaction.TransactionSynchronizationRegistry; import javax.transaction.UserTransaction; +import java.lang.System.Logger.Level; /** * Hook into external JTA transaction manager. */ public final class JtaTransactionManager implements ExternalTransactionManager { - private static final Logger log = CoreLog.internal; + private static final System.Logger log = CoreLog.internal; private static final String EBEAN_TXN_RESOURCE = "EBEAN_TXN_RESOURCE"; private TransactionManager transactionManager; @@ -87,15 +87,15 @@ public final class JtaTransactionManager implements ExternalTransactionManager { SpiTransaction currentEbeanTransaction = scope.inScope(); if (currentEbeanTransaction != null) { // NOT expecting this so log WARNING - log.warn("JTA Transaction - no current txn BUT using current Ebean one {}", currentEbeanTransaction.getId()); + log.log(Level.WARNING, "JTA Transaction - no current txn BUT using current Ebean one {0}", currentEbeanTransaction.getId()); return currentEbeanTransaction; } UserTransaction ut = getUserTransaction(); if (ut == null) { // no current JTA transaction - if (log.isDebugEnabled()) { - log.debug("JTA Transaction - no current txn"); + if (log.isLoggable(Level.DEBUG)) { + log.log(Level.DEBUG, "JTA Transaction - no current txn"); } return null; } @@ -181,27 +181,21 @@ public final class JtaTransactionManager implements ExternalTransactionManager { public void afterCompletion(int status) { switch (status) { case Status.STATUS_COMMITTED: - if (log.isDebugEnabled()) { - log.debug("Jta Txn [" + transaction.getId() + "] committed"); - } + log.log(Level.DEBUG, "Jta Txn [{0}] committed", transaction.getId()); transaction.postCommit(); // Remove this transaction object as it is completed transactionManager.scope().clearExternal(); break; case Status.STATUS_ROLLEDBACK: - if (log.isDebugEnabled()) { - log.debug("Jta Txn [" + transaction.getId() + "] rollback"); - } + log.log(Level.DEBUG, "Jta Txn [{0}] rollback", transaction.getId()); transaction.postRollback(null); // Remove this transaction object as it is completed transactionManager.scope().clearExternal(); break; default: - if (log.isDebugEnabled()) { - log.debug("Jta Txn [" + transaction.getId() + "] status:" + status); - } + log.log(Level.DEBUG, "Jta Txn [{0}] status:{1}", transaction.getId(), status); } // No matter the completion status of the transaction, we release the connection we got from the pool. diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/PostCommitProcessing.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/PostCommitProcessing.java index 51f3ece39..b1a3ee4f8 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/PostCommitProcessing.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/PostCommitProcessing.java @@ -10,8 +10,8 @@ import io.ebeaninternal.server.cache.CacheChangeSet; import io.ebeaninternal.server.cluster.ClusterManager; import io.ebeaninternal.server.core.PersistRequestBean; import io.ebeanservice.docstore.api.DocStoreUpdates; -import org.slf4j.Logger; +import java.lang.System.Logger.Level; import java.util.List; import java.util.Set; @@ -23,7 +23,7 @@ import java.util.Set; */ final class PostCommitProcessing { - private static final Logger log = CoreLog.internal; + private static final System.Logger log = CoreLog.internal; private final ClusterManager clusterManager; private final TransactionEvent event; @@ -104,8 +104,8 @@ final class PostCommitProcessing { private void notifyCluster() { if (remoteTransactionEvent != null && !remoteTransactionEvent.isEmpty()) { // send the interesting events to the cluster - if (log.isDebugEnabled()) { - log.debug("Cluster Send: {}", remoteTransactionEvent); + if (log.isLoggable(Level.DEBUG)) { + log.log(Level.DEBUG, "Cluster Send: {0}", remoteTransactionEvent); } clusterManager.broadcast(remoteTransactionEvent); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TableModState.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TableModState.java index d3793a8e4..c1ba2e773 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TableModState.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TableModState.java @@ -1,12 +1,12 @@ package io.ebeaninternal.server.transaction; +import io.avaje.applog.AppLog; import io.ebean.cache.QueryCacheEntry; import io.ebean.cache.QueryCacheEntryValidate; import io.ebean.cache.ServerCacheNotification; import io.ebean.cache.ServerCacheNotify; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.lang.System.Logger.Level; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -19,7 +19,7 @@ import java.util.concurrent.ConcurrentHashMap; */ public final class TableModState implements QueryCacheEntryValidate, ServerCacheNotify { - private static final Logger log = LoggerFactory.getLogger("io.ebean.cache.TABLEMOD"); + private static final System.Logger log = AppLog.getLogger("io.ebean.cache.TABLEMOD"); private final Map tableModStamp = new ConcurrentHashMap<>(); @@ -34,8 +34,8 @@ public final class TableModState implements QueryCacheEntryValidate, ServerCache for (String tableName : touchedTables) { tableModStamp.put(tableName, modNanoTime); } - if (log.isDebugEnabled()) { - log.debug("TableModState updated - touched:{} modNanoTime:{}", touchedTables, modNanoTime); + if (log.isLoggable(Level.DEBUG)) { + log.log(Level.DEBUG, "TableModState updated - touched:{0} modNanoTime:{1}", touchedTables, modNanoTime); } } @@ -46,8 +46,8 @@ public final class TableModState implements QueryCacheEntryValidate, ServerCache for (String tableName : tables) { Long modTime = tableModStamp.get(tableName); if (modTime != null && modTime >= sinceNanoTime) { - if (log.isTraceEnabled()) { - log.trace("Invalidate on table:{}", tableName); + if (log.isLoggable(Level.TRACE)) { + log.log(Level.TRACE, "Invalidate on table:{0}", tableName); } return false; } @@ -68,15 +68,13 @@ public final class TableModState implements QueryCacheEntryValidate, ServerCache * Update the table modification timestamps based on remote table modification events. *

* Generally this is used with distributed caches (Hazelcast, Ignite etc) via topic. - *

*/ @Override public void notify(ServerCacheNotification notification) { - // use local clock - for slightly more aggressive invalidation (as later) // that removes any concern regarding clock syncing across cluster - if (log.isDebugEnabled()) { - log.debug("ServerCacheNotification:{}", notification); + if (log.isLoggable(Level.DEBUG)) { + log.log(Level.DEBUG, "ServerCacheNotification:{0}", notification); } touch(notification.getDependentTables()); } @@ -85,14 +83,12 @@ public final class TableModState implements QueryCacheEntryValidate, ServerCache * Update from Remote transaction event. *

* Generally this is used with Clustering (ebean-cluster, k8scache). - *

*/ public void notify(RemoteTableMod tableMod) { - // use local clock - for slightly more aggressive invalidation (as later) // that removes any concern regarding clock syncing across cluster - if (log.isDebugEnabled()) { - log.debug("RemoteTableMod:{}", tableMod); + if (log.isLoggable(Level.DEBUG)) { + log.log(Level.DEBUG, "RemoteTableMod:{0}", tableMod); } touch(tableMod.getTables()); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java index 381ecea41..ace9d4f77 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java @@ -1,5 +1,6 @@ package io.ebeaninternal.server.transaction; +import io.avaje.applog.AppLog; import io.ebean.BackgroundExecutor; import io.ebean.ProfileLocation; import io.ebean.TxScope; @@ -28,11 +29,10 @@ import io.ebeaninternal.server.profile.TimedProfileLocationRegistry; import io.ebeanservice.docstore.api.DocStoreTransaction; import io.ebeanservice.docstore.api.DocStoreUpdateProcessor; import io.ebeanservice.docstore.api.DocStoreUpdates; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.persistence.PersistenceException; import javax.sql.DataSource; +import java.lang.System.Logger.Level; import java.sql.Connection; import java.sql.SQLException; import java.util.List; @@ -47,8 +47,8 @@ import java.util.concurrent.atomic.AtomicLong; */ public class TransactionManager implements SpiTransactionManager { - private static final Logger log = CoreLog.log; - private static final Logger clusterLogger = LoggerFactory.getLogger("io.ebean.Cluster"); + private static final System.Logger log = CoreLog.log; + private static final System.Logger clusterLogger = AppLog.getLogger("io.ebean.Cluster"); private final SpiServer server; private final BeanDescriptorManager beanDescriptorManager; @@ -365,7 +365,7 @@ public class TransactionManager implements SpiTransactionManager { txnLogger.debug(msg); } } catch (Exception ex) { - log.error("Error while notifying TransactionEventListener of rollback event", ex); + log.log(Level.ERROR, "Error while notifying TransactionEventListener of rollback event", ex); } } @@ -416,7 +416,7 @@ public class TransactionManager implements SpiTransactionManager { postCommit.notifyLocalCache(); backgroundExecutor.execute(postCommit.backgroundNotify()); } catch (Exception ex) { - log.error("NotifyOfCommit failed. L2 Cache potentially not notified.", ex); + log.log(Level.ERROR, "NotifyOfCommit failed. L2 Cache potentially not notified.", ex); } } @@ -442,8 +442,8 @@ public class TransactionManager implements SpiTransactionManager { * Notify local BeanPersistListeners etc of events from another server in the cluster. */ public final void remoteTransactionEvent(RemoteTransactionEvent remoteEvent) { - if (clusterLogger.isDebugEnabled()) { - clusterLogger.debug("processing {}", remoteEvent); + if (clusterLogger.isLoggable(Level.DEBUG)) { + clusterLogger.log(Level.DEBUG, "processing {0}", remoteEvent); } CacheChangeSet changeSet = new CacheChangeSet(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/DataBind.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/DataBind.java index ab17244e4..a33494277 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/DataBind.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/DataBind.java @@ -4,18 +4,10 @@ import io.ebean.core.type.DataBinder; import io.ebeaninternal.api.CoreLog; import io.ebeaninternal.server.core.timezone.DataTimeZone; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.Reader; -import java.io.StringReader; +import java.io.*; +import java.lang.System.Logger.Level; import java.math.BigDecimal; -import java.sql.Array; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.SQLException; -import java.sql.Time; -import java.sql.Timestamp; +import java.sql.*; import java.util.ArrayList; import java.util.Calendar; import java.util.List; @@ -109,7 +101,7 @@ public class DataBind implements DataBinder { try { inputStream.close(); } catch (IOException e) { - CoreLog.log.warn("Error closing InputStream that was bound to PreparedStatement", e); + CoreLog.log.log(Level.WARNING, "Error closing InputStream that was bound to PreparedStatement", e); } } inputStreams = null; 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 165d86c5a..c44670c73 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 @@ -25,11 +25,11 @@ import org.joda.time.DateTime; import org.joda.time.LocalDate; import org.joda.time.LocalDateTime; import org.joda.time.LocalTime; -import org.slf4j.Logger; import javax.persistence.AttributeConverter; import javax.persistence.EnumType; import java.io.File; +import java.lang.System.Logger.Level; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.ParameterizedType; @@ -52,7 +52,7 @@ import java.util.concurrent.ConcurrentHashMap; */ public final class DefaultTypeManager implements TypeManager { - private static final Logger log = CoreLog.internal; + private static final System.Logger log = CoreLog.internal; private final ConcurrentHashMap, ScalarType> typeMap; private final ConcurrentHashMap> nativeMap; @@ -194,7 +194,6 @@ public final class DefaultTypeManager implements TypeManager { ExtraTypeFactory plugin = iterator.next(); List> types = plugin.createTypes(config, objectMapper); for (ScalarType type : types) { - log.debug("adding ScalarType {}", type.getClass()); add(type); } } @@ -220,10 +219,10 @@ public final class DefaultTypeManager implements TypeManager { } private void logAdd(ScalarType scalarType) { - if (log.isTraceEnabled()) { + if (log.isLoggable(Level.TRACE)) { String msg = "ScalarType register [" + scalarType.getClass().getName() + "]"; msg += " for [" + scalarType.getType().getName() + "]"; - log.trace(msg); + log.log(Level.TRACE, msg); } } @@ -676,7 +675,7 @@ public final class DefaultTypeManager implements TypeManager { } add(scalarType); } catch (Exception e) { - log.error("Error loading ScalarType [" + cls.getName() + "]", e); + log.log(Level.ERROR, "Error loading ScalarType [" + cls.getName() + "]", e); } } } @@ -707,10 +706,10 @@ public final class DefaultTypeManager implements TypeManager { } ScalarTypeConverter converter = foundType.getDeclaredConstructor().newInstance(); ScalarTypeWrapper stw = new ScalarTypeWrapper(logicalType, wrappedType, converter); - log.debug("Register ScalarTypeWrapper from {} -> {} using:{}", logicalType, persistType, foundType); + log.log(Level.DEBUG, "Register ScalarTypeWrapper from {0} -> {1} using:{2}", logicalType, persistType, foundType); add(stw); } catch (Exception e) { - log.error("Error registering ScalarTypeConverter [" + foundType.getName() + "]", e); + log.log(Level.ERROR, "Error registering ScalarTypeConverter [" + foundType.getName() + "]", e); } } } @@ -731,10 +730,10 @@ public final class DefaultTypeManager implements TypeManager { } AttributeConverter converter = foundType.getDeclaredConstructor().newInstance(); ScalarTypeWrapper stw = new ScalarTypeWrapper(logicalType, wrappedType, new AttributeConverterAdapter(converter)); - log.debug("Register ScalarTypeWrapper from {} -> {} using:{}", logicalType, persistType, foundType); + log.log(Level.DEBUG, "Register ScalarTypeWrapper from {0} -> {1} using:{2}", logicalType, persistType, foundType); add(stw); } catch (Exception e) { - log.error("Error registering AttributeConverter [" + foundType.getName() + "]", e); + log.log(Level.ERROR, "Error registering AttributeConverter [" + foundType.getName() + "]", e); } } } @@ -744,7 +743,6 @@ public final class DefaultTypeManager implements TypeManager { */ private void initialiseJacksonTypes(DatabaseConfig config) { if (objectMapper != null) { - log.trace("Registering JsonNode type support"); ObjectMapper mapper = (ObjectMapper) objectMapper; jsonNodeClob = new ScalarTypeJsonNode.Clob(mapper); jsonNodeBlob = new ScalarTypeJsonNode.Blob(mapper); @@ -807,7 +805,7 @@ public final class DefaultTypeManager implements TypeManager { // detect if Joda classes are in the classpath if (config.getClassLoadConfig().isJodaTimePresent()) { // Joda classes are in the classpath so register the types - log.debug("Registering Joda data types"); + log.log(Level.DEBUG, "Registering Joda data types"); addType(LocalDateTime.class, new ScalarTypeJodaLocalDateTime(jsonDateTime)); addType(DateTime.class, new ScalarTypeJodaDateTime(jsonDateTime)); if (config.getDatabasePlatform().supportsNativeJavaTime()) { @@ -822,11 +820,9 @@ public final class DefaultTypeManager implements TypeManager { if ("normal".equalsIgnoreCase(jodaLocalTimeMode)) { // use the expected/normal local time zone addType(LocalTime.class, new ScalarTypeJodaLocalTime()); - log.debug("registered ScalarTypeJodaLocalTime"); } else if ("utc".equalsIgnoreCase(jodaLocalTimeMode)) { // use the old UTC based addType(LocalTime.class, new ScalarTypeJodaLocalTimeUTC()); - log.debug("registered ScalarTypeJodaLocalTimeUTC"); } } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFile.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFile.java index be712b659..cddd89231 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFile.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFile.java @@ -9,6 +9,7 @@ import io.ebean.text.TextException; import io.ebeaninternal.api.CoreLog; import java.io.*; +import java.lang.System.Logger.Level; import java.sql.SQLException; import java.sql.Types; @@ -169,14 +170,14 @@ final class ScalarTypeFile extends ScalarTypeBase { try { output.close(); } catch (IOException e) { - CoreLog.log.error("Error when closing outputstream", e); + CoreLog.log.log(Level.ERROR, "Error when closing outputStream", e); } } if (input != null) { try { input.close(); } catch (IOException e) { - CoreLog.log.error("Error when closing inputstream ", e); + CoreLog.log.log(Level.ERROR, "Error when closing inputStream ", e); } } } diff --git a/ebean-core/src/main/java/module-info.java b/ebean-core/src/main/java/module-info.java index a0462e27b..7511a8d0b 100644 --- a/ebean-core/src/main/java/module-info.java +++ b/ebean-core/src/main/java/module-info.java @@ -27,7 +27,6 @@ module io.ebean.core { requires io.avaje.classpath.scanner.api; requires io.avaje.classpath.scanner; requires io.ebean.types; - requires org.slf4j; requires static io.avaje.jsr305x; requires static com.fasterxml.jackson.annotation; diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java index 74ae5a64c..e91a067f4 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java @@ -1,5 +1,6 @@ package io.ebeaninternal.dbmigration; +import io.avaje.applog.AppLog; import io.ebean.annotation.Platform; import io.ebean.config.DatabaseConfig; import io.ebean.config.dbplatform.DatabasePlatform; @@ -11,11 +12,10 @@ import io.ebeaninternal.api.SpiDdlGenerator; import io.ebeaninternal.api.SpiEbeanServer; import io.ebeaninternal.dbmigration.model.CurrentModel; import io.ebeaninternal.extraddl.model.ExtraDdlXmlReader; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.persistence.PersistenceException; import java.io.*; +import java.lang.System.Logger.Level; import java.sql.Connection; import java.sql.SQLException; @@ -27,7 +27,7 @@ import java.sql.SQLException; */ public class DdlGenerator implements SpiDdlGenerator { - private static final Logger log = LoggerFactory.getLogger(DdlGenerator.class); + private static final System.Logger log = AppLog.getLogger(DdlGenerator.class); private static final String[] BUILD_DIRS = {"target", "build"}; private final SpiEbeanServer server; @@ -60,7 +60,7 @@ public class DdlGenerator implements SpiDdlGenerator { this.platform = databasePlatform.getPlatform(); this.platformName = platform.base().name(); if (!config.getTenantMode().isDdlEnabled() && config.isDdlRun()) { - log.warn("DDL can't be run on startup with TenantMode " + config.getTenantMode()); + log.log(Level.WARNING, "DDL can't be run on startup with TenantMode " + config.getTenantMode()); this.runDdl = false; this.useMigrationStoredProcedures = false; } else { @@ -224,7 +224,7 @@ public class DdlGenerator implements SpiDdlGenerator { if (sqlScript != null) { try (InputStream is = getClassLoader().getResourceAsStream(sqlScript)) { if (is == null) { - log.warn("sql script {} was not found as a resource", sqlScript); + log.log(Level.WARNING, "sql script {0} was not found as a resource", sqlScript); } else { String content = readContent(IOUtils.newReader(is)); // 'is' is closed runScript(connection, false, content, sqlScript); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java index ed592e9d2..9f9384d0d 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java @@ -1,5 +1,6 @@ package io.ebeaninternal.dbmigration; +import io.avaje.applog.AppLog; import io.ebean.DB; import io.ebean.Database; import io.ebean.annotation.Platform; @@ -21,12 +22,11 @@ import io.ebeaninternal.dbmigration.model.*; import io.ebeaninternal.extraddl.model.DdlScript; import io.ebeaninternal.extraddl.model.ExtraDdl; import io.ebeaninternal.extraddl.model.ExtraDdlXmlReader; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; import java.io.Writer; +import java.lang.System.Logger.Level; import java.util.ArrayList; import java.util.List; import java.util.Properties; @@ -57,7 +57,7 @@ import static io.ebeaninternal.api.PlatformMatch.matchPlatform; */ public class DefaultDbMigration implements DbMigration { - protected static final Logger logger = LoggerFactory.getLogger("io.ebean.GenerateMigration"); + protected static final System.Logger logger = AppLog.getLogger("io.ebean.GenerateMigration"); private static final String initialVersion = "1.0"; private static final String GENERATED_COMMENT = "THIS IS A GENERATED FILE - DO NOT MODIFY"; @@ -402,7 +402,7 @@ public class DefaultDbMigration implements DbMigration { */ private void writeExtraDdl(File migrationDir, DdlScript script) throws IOException { String fullName = repeatableMigrationName(script.isInit(), script.getName()); - logger.debug("writing repeatable script {}", fullName); + logger.log(Level.DEBUG, "writing repeatable script {0}", fullName); File file = new File(migrationDir, fullName); try (Writer writer = IOUtils.newWriter(file)) { writer.write(script.getValue()); @@ -419,7 +419,7 @@ public class DefaultDbMigration implements DbMigration { if (logToSystemOut) { System.out.println("DbMigration> " + message); } else { - logger.error(message); + logger.log(Level.ERROR, message); } } @@ -430,7 +430,7 @@ public class DefaultDbMigration implements DbMigration { if (logToSystemOut) { System.out.println("DbMigration> " + message); } else { - logger.info(message); + logger.log(Level.INFO, message); } } @@ -792,7 +792,7 @@ public class DefaultDbMigration implements DbMigration { case SQLSERVER: throw new IllegalArgumentException("Please choose the more specific SQLSERVER16 or SQLSERVER17 platform. Refer to issue #1340 for details"); case DB2: - logger.warn("Using DB2LegacyPlatform. It is recommended to migrate to db2luw/db2zos/db2fori. Refer to issue #2514 for details"); + logger.log(Level.WARNING, "Using DB2LegacyPlatform. It is recommended to migrate to db2luw/db2zos/db2fori. Refer to issue #2514 for details"); case GENERIC: return new DatabasePlatform(); default: diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MTable.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MTable.java index 4350bdc83..83b41a4fc 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MTable.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MTable.java @@ -1,16 +1,16 @@ package io.ebeaninternal.dbmigration.model; +import io.avaje.applog.AppLog; import io.ebeaninternal.dbmigration.ddlgeneration.platform.DdlHelp; import io.ebeaninternal.dbmigration.migration.*; import io.ebeaninternal.server.deploy.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.util.*; import static io.ebeaninternal.dbmigration.ddlgeneration.platform.SplitColumns.split; import static io.ebeaninternal.dbmigration.model.MTableIdentity.fromCreateTable; import static io.ebeaninternal.dbmigration.model.MTableIdentity.toCreateTable; +import static java.lang.System.Logger.Level.TRACE; /** * Holds the logical model for a given Table and everything associated to it. @@ -26,7 +26,7 @@ import static io.ebeaninternal.dbmigration.model.MTableIdentity.toCreateTable; */ public class MTable { - private static final Logger logger = LoggerFactory.getLogger(MTable.class); + private static final System.Logger logger = AppLog.getLogger(MTable.class); private String name; private MTable draftTable; @@ -298,7 +298,7 @@ public class MTable { diffDropColumn(modelDiff, existingColumn); } else if (newColumn.isDraftOnly() && !draft) { // effectively a drop column (draft only column on a non-draft table) - logger.trace("... drop column {} from table {} as now draftOnly", newColumn.getName(), name); + logger.log(TRACE, "... drop column {0} from table {1} as now draftOnly", newColumn.getName(), name); diffDropColumn(modelDiff, existingColumn); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MigrationModel.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MigrationModel.java index 9c49ad0aa..e949b17de 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MigrationModel.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MigrationModel.java @@ -1,11 +1,10 @@ package io.ebeaninternal.dbmigration.model; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - +import io.avaje.applog.AppLog; import io.ebean.migration.MigrationVersion; import java.io.File; +import java.lang.System.Logger.Level; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -15,7 +14,7 @@ import java.util.List; */ public class MigrationModel { - private static final Logger logger = LoggerFactory.getLogger(MigrationModel.class); + private static final System.Logger logger = AppLog.getLogger(MigrationModel.class); private final ModelContainer model = new ModelContainer(); private final File modelDirectory; @@ -53,7 +52,7 @@ public class MigrationModel { if (!initMigration) { for (MigrationResource migrationResource : resources) { - logger.debug("read {}", migrationResource); + logger.log(Level.DEBUG, "read {0}", migrationResource); model.apply(migrationResource.read(), migrationResource.version()); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java index 83de7e459..00df18cf8 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java @@ -1,5 +1,6 @@ package io.ebeaninternal.dbmigration.model; +import io.avaje.applog.AppLog; import io.ebean.config.DatabaseConfig; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.util.IOUtils; @@ -10,12 +11,11 @@ import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl; import io.ebeaninternal.dbmigration.migration.ChangeSet; import io.ebeaninternal.dbmigration.migration.ChangeSetType; import io.ebeaninternal.dbmigration.migration.Migration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; import java.io.Writer; +import java.lang.System.Logger.Level; import java.util.List; /** @@ -23,7 +23,7 @@ import java.util.List; */ public class PlatformDdlWriter { - private static final Logger logger = LoggerFactory.getLogger(PlatformDdlWriter.class); + private static final System.Logger logger = AppLog.getLogger(PlatformDdlWriter.class); private final DatabaseConfig databaseConfig; private final PlatformDdl platformDdl; @@ -107,7 +107,7 @@ public class PlatformDdlWriter { File subPath = new File(path, suffix); if (!subPath.exists()) { if (!subPath.mkdirs()) { - logger.error("failed to create directories for " + subPath.getAbsolutePath()); + logger.log(Level.ERROR, "failed to create directories for " + subPath.getAbsolutePath()); } } return subPath; diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java index eac6284d5..379e33bd7 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java @@ -1,14 +1,14 @@ package io.ebeaninternal.extraddl.model; +import io.avaje.applog.AppLog; import io.ebean.annotation.Platform; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; import java.io.IOException; import java.io.InputStream; +import java.lang.System.Logger.Level; import static io.ebeaninternal.api.PlatformMatch.matchPlatform; @@ -17,7 +17,7 @@ import static io.ebeaninternal.api.PlatformMatch.matchPlatform; */ public class ExtraDdlXmlReader { - private static final Logger logger = LoggerFactory.getLogger(ExtraDdlXmlReader.class); + private static final System.Logger logger = AppLog.getLogger(ExtraDdlXmlReader.class); /** * Return the combined extra DDL that should be run given the platform name. @@ -42,7 +42,7 @@ public class ExtraDdlXmlReader { StringBuilder sb = new StringBuilder(300); for (DdlScript script : read.getDdlScript()) { if (script.isDrop() == drops && matchPlatform(platform, script.getPlatforms())) { - logger.debug("include script {}", script.getName()); + logger.log(Level.DEBUG, "include script {}", script.getName()); String value = script.getValue(); sb.append(value); if (value.lastIndexOf(';') == -1) { diff --git a/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java b/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java index 22b03d983..a52377423 100644 --- a/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java +++ b/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java @@ -1,24 +1,24 @@ package io.localtest; +import io.avaje.applog.AppLog; import io.ebean.DB; import io.ebean.Database; import io.ebean.annotation.PersistBatch; import io.ebean.annotation.Platform; import io.ebeaninternal.api.SpiEbeanServer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.lang.System.Logger.Level; import java.sql.Types; public abstract class BaseTestCase { - protected static Logger logger = LoggerFactory.getLogger(BaseTestCase.class); + protected static System.Logger logger = AppLog.getLogger(BaseTestCase.class); /** * this is the clock delta that may occur between testing machine and db server. * If the clock delta of DB server is in future, an "asOf" query may not find the * correct entry. - * + *

* Note: That some tests may use a Thread.sleep to wait, so that the local system clock * can catch up. So don't set that to a too high value. */ @@ -35,7 +35,7 @@ public abstract class BaseTestCase { // First try, if we get the default server. If this fails, all tests will fail. DB.getDefault(); } catch (Throwable e) { - logger.error("Fatal error while getting ebean-server. Exiting...", e); + logger.log(Level.ERROR, "Fatal error while getting ebean-server. Exiting...", e); System.exit(1); } } @@ -47,7 +47,7 @@ public abstract class BaseTestCase { public boolean isSqlServer() { return Platform.SQLSERVER == platform(); } - + public boolean isDB2() { return Platform.DB2 == platform(); } diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 0973886bc..5a5bf08f1 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -18,13 +18,6 @@ - - org.slf4j - slf4j-api - 1.7.33 - provided - - io.ebean ebean-externalmapping-api diff --git a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/InternalConfigXmlRead.java b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/InternalConfigXmlRead.java index 7880b10ae..19ebdfa09 100644 --- a/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/InternalConfigXmlRead.java +++ b/ebean-externalmapping-xml/src/main/java/io/ebeaninternal/xmlmapping/InternalConfigXmlRead.java @@ -4,8 +4,6 @@ import io.avaje.classpath.scanner.ClassPathScanner; import io.avaje.classpath.scanner.ClassPathScannerFactory; import io.avaje.classpath.scanner.Resource; import io.ebeaninternal.xmapping.api.XmapEbean; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.List; @@ -16,8 +14,6 @@ import java.util.ServiceLoader; */ class InternalConfigXmlRead { - private static final Logger log = LoggerFactory.getLogger(InternalConfigXmlRead.class); - private final ToXmapEbean to = new ToXmapEbean(); private final ClassLoader classLoader; private final List mappingLocations; @@ -40,7 +36,6 @@ class InternalConfigXmlRead { private List xmlMappingResources() { List scanners = scanners(); List resourceList = new ArrayList<>(); - long st = System.currentTimeMillis(); if (mappingLocations != null && !mappingLocations.isEmpty()) { for (ClassPathScanner finder : scanners) { for (String mappingLocation : mappingLocations) { @@ -48,8 +43,6 @@ class InternalConfigXmlRead { } } } - long searchTime = System.currentTimeMillis() - st; - log.debug("Classpath search mappings[{}] searchTime[{}]", resourceList.size(), searchTime); return resourceList; } diff --git a/ebean-externalmapping-xml/src/main/java/module-info.java b/ebean-externalmapping-xml/src/main/java/module-info.java index de792b2df..420f85c53 100644 --- a/ebean-externalmapping-xml/src/main/java/module-info.java +++ b/ebean-externalmapping-xml/src/main/java/module-info.java @@ -14,7 +14,6 @@ module io.ebean.xmapping.xml { requires transitive java.xml.bind; requires io.avaje.classpath.scanner.api; requires io.avaje.classpath.scanner; - requires static org.slf4j; requires static java.sql; // for testing uses ClassPathScannerFactory; diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 5e00d8e38..493d5d33b 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -54,14 +54,6 @@ provided - - - org.slf4j - slf4j-api - 1.7.33 - provided - - org.geolatte diff --git a/ebean-redis/src/main/java/io/ebean/redis/RedisCache.java b/ebean-redis/src/main/java/io/ebean/redis/RedisCache.java index 83633aaeb..a934b8411 100644 --- a/ebean-redis/src/main/java/io/ebean/redis/RedisCache.java +++ b/ebean-redis/src/main/java/io/ebean/redis/RedisCache.java @@ -1,5 +1,6 @@ package io.ebean.redis; +import io.avaje.applog.AppLog; import io.ebean.cache.ServerCache; import io.ebean.cache.ServerCacheConfig; import io.ebean.cache.ServerCacheOptions; @@ -11,19 +12,20 @@ import io.ebean.metric.TimedMetric; import io.ebean.metric.TimedMetricStats; import io.ebean.redis.encode.Encode; import io.ebean.redis.encode.EncodePrefixKey; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import redis.clients.jedis.*; +import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisPool; +import redis.clients.jedis.Transaction; import redis.clients.jedis.params.ScanParams; import redis.clients.jedis.params.SetParams; import redis.clients.jedis.resps.ScanResult; import redis.clients.jedis.util.SafeEncoder; +import java.lang.System.Logger.Level; import java.util.*; final class RedisCache implements ServerCache { - private static final Logger log = LoggerFactory.getLogger(RedisCache.class); + private static final System.Logger log = AppLog.getLogger(RedisCache.class); private static final String CURSOR_0 = "0"; private static final byte[] CURSOR_0_BYTES = SafeEncoder.encode(CURSOR_0); @@ -67,7 +69,7 @@ final class RedisCache implements ServerCache { if (cacheOptions != null) { final int maxSecsToLive = cacheOptions.getMaxSecsToLive(); if (maxSecsToLive > 0) { - return new SetParams().ex((long)maxSecsToLive); + return new SetParams().ex((long) maxSecsToLive); } } return null; @@ -104,17 +106,17 @@ final class RedisCache implements ServerCache { } return valueEncode.decode(data); } catch (Exception e) { - log.error("Error decoding data, treated as cache miss", e); + log.log(Level.ERROR, "Error decoding data, treated as cache miss", e); return null; } } private void errorOnRead(Exception e) { - log.warn("Error when reading redis cache", e); + log.log(Level.WARNING, "Error when reading redis cache", e); } private void errorOnWrite(Exception e) { - log.warn("Error when writing redis cache", e); + log.log(Level.WARNING, "Error when writing redis cache", e); } @Override diff --git a/ebean-redis/src/main/java/io/ebean/redis/RedisCacheFactory.java b/ebean-redis/src/main/java/io/ebean/redis/RedisCacheFactory.java index 3b08ef21f..4dd991c05 100644 --- a/ebean-redis/src/main/java/io/ebean/redis/RedisCacheFactory.java +++ b/ebean-redis/src/main/java/io/ebean/redis/RedisCacheFactory.java @@ -1,11 +1,8 @@ package io.ebean.redis; +import io.avaje.applog.AppLog; import io.ebean.BackgroundExecutor; -import io.ebean.cache.ServerCache; -import io.ebean.cache.ServerCacheConfig; -import io.ebean.cache.ServerCacheFactory; -import io.ebean.cache.ServerCacheNotification; -import io.ebean.cache.ServerCacheNotify; +import io.ebean.cache.*; import io.ebean.config.DatabaseConfig; import io.ebean.meta.MetricVisitor; import io.ebean.metric.MetricFactory; @@ -18,18 +15,13 @@ import io.ebean.redis.topic.DaemonTopicRunner; import io.ebeaninternal.server.cache.DefaultServerCache; import io.ebeaninternal.server.cache.DefaultServerCacheConfig; import io.ebeaninternal.server.cache.DefaultServerQueryCache; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import redis.clients.jedis.BinaryJedisPubSub; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.util.SafeEncoder; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; +import java.io.*; +import java.lang.System.Logger.Level; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.Map; @@ -41,11 +33,11 @@ import static java.util.Arrays.asList; final class RedisCacheFactory implements ServerCacheFactory { - private static final Logger log = LoggerFactory.getLogger(RedisCacheFactory.class); + private static final System.Logger log = AppLog.getLogger(RedisCacheFactory.class); - private static final Logger queryLogger = LoggerFactory.getLogger("io.ebean.cache.QUERY"); - private static final Logger logger = LoggerFactory.getLogger("io.ebean.cache.CACHE"); - private static final Logger tableModLogger = LoggerFactory.getLogger("io.ebean.cache.TABLEMODS"); + private static final System.Logger queryLogger = AppLog.getLogger("io.ebean.cache.QUERY"); + private static final System.Logger logger = AppLog.getLogger("io.ebean.cache.CACHE"); + private static final System.Logger tableModLogger = AppLog.getLogger("io.ebean.cache.TABLEMODS"); private static final int MSG_NEARCACHE_CLEAR = 1; private static final int MSG_NEARCACHE_KEYS = 2; @@ -113,7 +105,7 @@ final class RedisCacheFactory implements ServerCacheFactory { redisConfig = new RedisConfig(); } redisConfig.loadProperties(config.getProperties()); - log.info("using l2cache redis host {}:{}", redisConfig.getServer(), redisConfig.getPort()); + log.log(Level.INFO, "using l2cache redis host {0}:{1}", redisConfig.getServer(), redisConfig.getPort()); return redisConfig.createPool(); } @@ -168,7 +160,7 @@ final class RedisCacheFactory implements ServerCacheFactory { try { RQueryCache cache = queryCaches.get(config.getCacheKey()); if (cache == null) { - logger.debug("create query cache [{}]", config.getCacheKey()); + logger.log(Level.DEBUG, "create query cache [{0}]", config.getCacheKey()); cache = new RQueryCache(new DefaultServerCacheConfig(config)); cache.periodicTrim(executor); queryCaches.put(config.getCacheKey(), cache); @@ -222,7 +214,7 @@ final class RedisCacheFactory implements ServerCacheFactory { * Process the invalidation message coming from the cluster. */ private void invalidate() { - queryLogger.debug(" CLEAR {}(*) - cluster invalidate", name); + queryLogger.log(Level.DEBUG, " CLEAR {0}(*) - cluster invalidate", name); super.clear(); } } @@ -241,8 +233,8 @@ final class RedisCacheFactory implements ServerCacheFactory { msg.append(table).append(","); } String formattedMsg = msg.toString(); - if (tableModLogger.isDebugEnabled()) { - tableModLogger.debug("Publish TableMods - {}", formattedMsg); + if (tableModLogger.isLoggable(Level.DEBUG)) { + tableModLogger.log(Level.DEBUG, "Publish TableMods - {0}", formattedMsg); } sendTableMod(formattedMsg); } @@ -270,8 +262,8 @@ final class RedisCacheFactory implements ServerCacheFactory { private void processTableNotify(String rawMessage) { long nanos = System.nanoTime(); try { - if (logger.isDebugEnabled()) { - logger.debug("processTableNotify {}", rawMessage); + if (logger.isLoggable(Level.DEBUG)) { + logger.log(Level.DEBUG, "processTableNotify {0}", rawMessage); } Set tables = new HashSet<>(asList(rawMessage.split(","))); listener.notify(new ServerCacheNotification(tables)); @@ -290,7 +282,7 @@ final class RedisCacheFactory implements ServerCacheFactory { try { sendMessage(messageInvalidateKeys(cacheKey, keySet)); } catch (IOException e) { - logger.error("failed to transmit invalidateKeys() message", e); + logger.log(Level.ERROR, "failed to transmit invalidateKeys() message", e); } } @@ -299,7 +291,7 @@ final class RedisCacheFactory implements ServerCacheFactory { try { sendMessage(messageInvalidateKey(cacheKey, id)); } catch (IOException e) { - logger.error("failed to transmit invalidateKeys() message", e); + logger.log(Level.ERROR, "failed to transmit invalidateKeys() message", e); } } @@ -308,7 +300,7 @@ final class RedisCacheFactory implements ServerCacheFactory { try { sendMessage(messageInvalidateClear(cacheKey)); } catch (IOException e) { - logger.error("failed to transmit invalidateKeys() message", e); + logger.log(Level.ERROR, "failed to transmit invalidateKeys() message", e); } } @@ -372,7 +364,7 @@ final class RedisCacheFactory implements ServerCacheFactory { @Override public void notifyConnected() { - logger.info("Established connection to Redis"); + logger.log(Level.INFO, "Established connection to Redis"); } /** @@ -403,8 +395,8 @@ final class RedisCacheFactory implements ServerCacheFactory { } msgType = oi.readInt(); cacheKey = oi.readUTF(); - if (logger.isDebugEnabled()) { - logger.debug("processNearCacheMessage serverId:{} type:{} cacheKey:{}", sourceServerId, msgType, cacheKey); + if (logger.isLoggable(Level.DEBUG)) { + logger.log(Level.DEBUG, "processNearCacheMessage serverId:{0} type:{1} cacheKey:{2}", sourceServerId, msgType, cacheKey); } switch (msgType) { @@ -431,7 +423,7 @@ final class RedisCacheFactory implements ServerCacheFactory { } } catch (IOException | ClassNotFoundException e) { - logger.error("failed to decode near cache message [" + SafeEncoder.encode(message) + "] for cache:" + cacheKey, e); + logger.log(Level.ERROR, "failed to decode near cache message [" + SafeEncoder.encode(message) + "] for cache:" + cacheKey, e); if (cacheKey != null) { nearCacheInvalidateClear(cacheKey); } @@ -457,10 +449,10 @@ final class RedisCacheFactory implements ServerCacheFactory { queryCacheInvalidate(split[2]); break; default: - logger.error("Unknown L2 message type[{}] on redis channel - message[{}] ", split[0], message); + logger.log(Level.ERROR, "Unknown L2 message type[{0}] on redis channel - message[{1}] ", split[0], message); } } catch (Exception e) { - logger.error("Error handling L2 message[" + message + "]", e); + logger.log(Level.ERROR, "Error handling L2 message[" + message + "]", e); } } } @@ -503,7 +495,7 @@ final class RedisCacheFactory implements ServerCacheFactory { } private void warnNearCacheNotFound(String cacheKey) { - logger.warn("No near cache found for cacheKey [" + cacheKey + "] yet - probably on startup"); + logger.log(Level.WARNING, "No near cache found for cacheKey [" + cacheKey + "] yet - probably on startup"); } } diff --git a/ebean-redis/src/main/java/io/ebean/redis/topic/DaemonTopicRunner.java b/ebean-redis/src/main/java/io/ebean/redis/topic/DaemonTopicRunner.java index a6b682bce..1eab91402 100644 --- a/ebean-redis/src/main/java/io/ebean/redis/topic/DaemonTopicRunner.java +++ b/ebean-redis/src/main/java/io/ebean/redis/topic/DaemonTopicRunner.java @@ -1,11 +1,11 @@ package io.ebean.redis.topic; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import io.avaje.applog.AppLog; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.exceptions.JedisException; +import java.lang.System.Logger.Level; import java.util.Timer; import java.util.TimerTask; @@ -18,7 +18,7 @@ import java.util.TimerTask; */ public final class DaemonTopicRunner { - private static final Logger log = LoggerFactory.getLogger(DaemonTopicRunner.class); + private static final System.Logger log = AppLog.getLogger(DaemonTopicRunner.class); private static final long reconnectWaitMillis = 1000; @@ -49,13 +49,13 @@ public final class DaemonTopicRunner { try { subscribe(); } catch (JedisException e) { - log.debug("... redis subscribe connection attempt:{} failed:{}", attempts, e.getMessage()); + log.log(Level.DEBUG, "... redis subscribe connection attempt:{0} failed:{1}", attempts, e.getMessage()); try { // wait a little before retrying Thread.sleep(reconnectWaitMillis); } catch (InterruptedException e1) { Thread.currentThread().interrupt(); - log.warn("Interrupted redis re-connection wait", e1); + log.log(Level.WARNING, "Interrupted redis re-connection wait", e1); } } } @@ -70,13 +70,13 @@ public final class DaemonTopicRunner { try { daemonTopic.subscribe(jedis); } catch (Exception e) { - log.error("Lost connection to topic, starting re-connection loop", e); + log.log(Level.ERROR, "Lost connection to topic, starting re-connection loop", e); attemptConnections(); } finally { try { jedis.close(); } catch (Exception e) { - log.warn("Error closing probably broken Redis connection", e); + log.log(Level.WARNING, "Error closing probably broken Redis connection", e); } } } diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 068a8b705..73ac74db4 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -14,10 +14,9 @@ - org.slf4j - slf4j-api - 1.7.32 - provided + io.avaje + avaje-applog + 1.0 diff --git a/ebean-test/src/main/java/io/ebean/test/CapturingLoggerFactory.java b/ebean-test/src/main/java/io/ebean/test/CapturingLoggerFactory.java index aecc77026..71822c136 100644 --- a/ebean-test/src/main/java/io/ebean/test/CapturingLoggerFactory.java +++ b/ebean-test/src/main/java/io/ebean/test/CapturingLoggerFactory.java @@ -1,9 +1,10 @@ package io.ebean.test; +import io.avaje.applog.AppLog; import io.ebeaninternal.api.SpiLogger; import io.ebeaninternal.api.SpiLoggerFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; + +import java.lang.System.Logger.Level; /** * Create a logger that captures the SQL and register it for later access in tests. @@ -15,7 +16,7 @@ public class CapturingLoggerFactory implements SpiLoggerFactory { @Override public SpiLogger create(String name) { - SpiLogger logger = new LogAdapter(LoggerFactory.getLogger(name)); + SpiLogger logger = new LogAdapter(AppLog.getLogger(name)); if (name.equals("io.ebean.SQL")) { return LoggedSql.register(logger); } @@ -24,30 +25,30 @@ public class CapturingLoggerFactory implements SpiLoggerFactory { private static final class LogAdapter implements SpiLogger { - private final Logger logger; + private final System.Logger logger; - LogAdapter(Logger logger) { + LogAdapter(System.Logger logger) { this.logger = logger; } @Override public boolean isDebug() { - return logger.isDebugEnabled(); + return logger.isLoggable(Level.DEBUG); } @Override public boolean isTrace() { - return logger.isTraceEnabled(); + return logger.isLoggable(Level.TRACE); } @Override public void debug(String msg) { - logger.debug(msg); + logger.log(Level.DEBUG, msg); } @Override public void trace(String msg) { - logger.trace(msg); + logger.log(Level.TRACE, msg); } } } diff --git a/ebean-test/src/main/java/io/ebean/test/config/AutoConfigureForTesting.java b/ebean-test/src/main/java/io/ebean/test/config/AutoConfigureForTesting.java index fbe48318d..32d7df424 100644 --- a/ebean-test/src/main/java/io/ebean/test/config/AutoConfigureForTesting.java +++ b/ebean-test/src/main/java/io/ebean/test/config/AutoConfigureForTesting.java @@ -1,14 +1,14 @@ package io.ebean.test.config; +import io.avaje.applog.AppLog; import io.ebean.config.AutoConfigure; import io.ebean.config.DatabaseConfig; import io.ebean.datasource.DataSourceConfig; import io.ebean.test.config.platform.PlatformAutoConfig; import io.ebean.test.config.provider.ProviderAutoConfig; import io.ebean.test.containers.DockerHost; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.lang.System.Logger.Level; import java.util.Properties; /** @@ -21,7 +21,7 @@ import java.util.Properties; */ public class AutoConfigureForTesting implements AutoConfigure { - private static final Logger log = LoggerFactory.getLogger("io.ebean.test"); + private static final System.Logger log = AppLog.getLogger("io.ebean.test"); /** * System property that can override the platform. mvn clean test -Ddb=sqlserver @@ -38,7 +38,7 @@ public class AutoConfigureForTesting implements AutoConfigure { io.avaje.config.Config.asConfiguration().evalModify(properties); } if (!config.isDefaultServer()) { - log.info("skip automatic testing config on non-default server name:{} register:{}", config.getName(), config.isRegister()); + log.log(Level.INFO, "skip automatic testing config on non-default server name:{0} register:{1}", config.getName(), config.isRegister()); return; } if (isExtraServer(config, properties)) { @@ -46,7 +46,7 @@ public class AutoConfigureForTesting implements AutoConfigure { return; } String testPlatform = properties.getProperty("ebean.test.platform"); - log.debug("automatic testing config - with ebean.test.platform:{} name:{} environmentDb:{}", testPlatform, config.getName(), environmentDb); + log.log(Level.DEBUG, "automatic testing config - with ebean.test.platform:{0} name:{1} environmentDb:{2}", testPlatform, config.getName(), environmentDb); if (RunOnceMarker.isRun()) { setupPlatform(environmentDb, config); } diff --git a/ebean-test/src/main/java/io/ebean/test/config/platform/Config.java b/ebean-test/src/main/java/io/ebean/test/config/platform/Config.java index 44207a393..115a83107 100644 --- a/ebean-test/src/main/java/io/ebean/test/config/platform/Config.java +++ b/ebean-test/src/main/java/io/ebean/test/config/platform/Config.java @@ -1,11 +1,11 @@ package io.ebean.test.config.platform; +import io.avaje.applog.AppLog; import io.ebean.config.DatabaseConfig; import io.ebean.datasource.DataSourceConfig; import io.ebean.test.containers.DockerHost; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.lang.System.Logger.Level; import java.util.Properties; /** @@ -13,7 +13,7 @@ import java.util.Properties; */ class Config { - private static final Logger log = LoggerFactory.getLogger("io.ebean.test"); + private static final System.Logger log = AppLog.getLogger("io.ebean.test"); /** * Common optional docker parameters that we just transfer to docker properties. @@ -193,7 +193,7 @@ class Config { ds.setDriver(driverClass); config.setDataSourceConfig(ds); - log.info("Using jdbc settings - username:{} url:{} driver:{}", ds.getUsername(), ds.getUrl(), ds.getDriver()); + log.log(Level.INFO, "Using jdbc settings - username:{0} url:{1} driver:{2}", ds.getUsername(), ds.getUrl(), ds.getDriver()); if (driverClass != null) { try { 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 97ce65e38..f378f517c 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 @@ -1,10 +1,10 @@ package io.ebean.test.config.platform; +import io.avaje.applog.AppLog; import io.ebean.config.DatabaseConfig; import io.ebean.test.containers.ContainerFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.lang.System.Logger.Level; import java.util.HashMap; import java.util.Map; import java.util.Properties; @@ -14,7 +14,7 @@ import static java.util.concurrent.CompletableFuture.runAsync; public class PlatformAutoConfig { - private static final Logger log = LoggerFactory.getLogger("io.ebean.test"); + private static final System.Logger log = AppLog.getLogger("io.ebean.test"); /** * Known platforms we can setup locally or via docker container. @@ -62,7 +62,7 @@ public class PlatformAutoConfig { Config config = new Config(db, platform, databaseName, this.config); platformSetup.setupExtraDbDataSource(config); - log.debug("configured dataSource for extraDb name:{} url:{}", db, this.config.getDataSourceConfig().getUrl()); + log.log(Level.DEBUG, "configured dataSource for extraDb name:{0} url:{1}", db, this.config.getDataSourceConfig().getUrl()); } } @@ -92,9 +92,9 @@ public class PlatformAutoConfig { Properties dockerProperties = platformSetup.setup(config); if (!dockerProperties.isEmpty()) { if (isDebug()) { - log.info("Docker properties: {}", dockerProperties); + log.log(Level.INFO, "Docker properties: {0}", dockerProperties); } else { - log.debug("Docker properties: {}", dockerProperties); + log.log(Level.DEBUG, "Docker properties: {0}", dockerProperties); } // start the docker container with appropriate configuration new ContainerFactory(dockerProperties, config.getDockerPlatform()).startContainers(); @@ -130,7 +130,7 @@ public class PlatformAutoConfig { } this.platformSetup = KNOWN_PLATFORMS.get(platform); if (platformSetup == null) { - log.warn("unknown platform {} - skipping platform setup", platform); + log.log(Level.WARNING, "unknown platform {0} - skipping platform setup", platform); } return platformSetup != null; } diff --git a/ebean-test/src/main/java/io/ebean/test/config/provider/ProviderAutoConfig.java b/ebean-test/src/main/java/io/ebean/test/config/provider/ProviderAutoConfig.java index 21219ef65..48abb54cf 100644 --- a/ebean-test/src/main/java/io/ebean/test/config/provider/ProviderAutoConfig.java +++ b/ebean-test/src/main/java/io/ebean/test/config/provider/ProviderAutoConfig.java @@ -1,12 +1,12 @@ package io.ebean.test.config.provider; +import io.avaje.applog.AppLog; import io.ebean.config.CurrentTenantProvider; import io.ebean.config.CurrentUserProvider; import io.ebean.config.DatabaseConfig; import io.ebean.config.EncryptKeyManager; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.lang.System.Logger.Level; import java.util.Properties; /** @@ -14,7 +14,7 @@ import java.util.Properties; */ public class ProviderAutoConfig { - private static final Logger log = LoggerFactory.getLogger("io.ebean.test"); + private static final System.Logger log = AppLog.getLogger("io.ebean.test"); private final DatabaseConfig config; private final Properties properties; @@ -44,12 +44,12 @@ public class ProviderAutoConfig { if (keyManager == null) { // Must be 16 Chars for Oracle function String keyVal = properties.getProperty("ebean.test.encryptKey", "simple0123456789"); - log.debug("for testing - using FixedEncryptKeyManager() keyVal:{}", keyVal); + log.log(Level.DEBUG, "for testing - using FixedEncryptKeyManager() keyVal:{0}", keyVal); config.setEncryptKeyManager(new FixedEncryptKeyManager(keyVal)); } if (providerSetFlag > 0) { - log.info(msg(providerSetFlag)); + log.log(Level.INFO, msg(providerSetFlag)); } } diff --git a/ebean-test/src/main/java/module-info.java b/ebean-test/src/main/java/module-info.java index a23d1e65b..823483a0e 100644 --- a/ebean-test/src/main/java/module-info.java +++ b/ebean-test/src/main/java/module-info.java @@ -9,7 +9,6 @@ module io.ebean.test { provides io.ebeaninternal.api.SpiLoggerFactory with io.ebean.test.CapturingLoggerFactory; provides io.ebean.config.AutoConfigure with io.ebean.test.config.AutoConfigureForTesting; - requires transitive org.slf4j; requires transitive io.ebean.datasource; requires transitive io.ebean.core; requires transitive io.ebean.ddl.generator; @@ -24,6 +23,7 @@ module io.ebean.test { requires transitive com.h2database; // support testing + requires static org.slf4j; requires static org.junit.jupiter.api; requires static jdk.management; requires static io.avaje.jsr305x; diff --git a/platforms/h2/src/main/java/io/ebean/platform/h2/H2HistoryTrigger.java b/platforms/h2/src/main/java/io/ebean/platform/h2/H2HistoryTrigger.java index 1cd6b8848..9cab33032 100644 --- a/platforms/h2/src/main/java/io/ebean/platform/h2/H2HistoryTrigger.java +++ b/platforms/h2/src/main/java/io/ebean/platform/h2/H2HistoryTrigger.java @@ -1,19 +1,21 @@ package io.ebean.platform.h2; +import io.avaje.applog.AppLog; import org.h2.api.Trigger; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import java.sql.*; +import java.lang.System.Logger.Level; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; import java.time.LocalDateTime; -import java.util.Arrays; /** * H2 database trigger used to populate history tables to support the @History feature. */ public class H2HistoryTrigger implements Trigger { - private static final Logger log = LoggerFactory.getLogger(H2HistoryTrigger.class); + private static final System.Logger log = AppLog.getLogger(H2HistoryTrigger.class); /** * Hardcoding the column and history table suffix for now. Not sure how to get that @@ -70,7 +72,7 @@ public class H2HistoryTrigger implements Trigger { insertSql.append(");"); this.insertHistorySql = insertSql.toString(); - log.debug("History table insert sql: {}", insertHistorySql); + log.log(Level.DEBUG, "History table insert sql: {0}", insertHistorySql); } @Override @@ -83,9 +85,6 @@ public class H2HistoryTrigger implements Trigger { // update event. Set the effective start timestamp to now. newRow[effectStartPosition] = now; } - if (log.isTraceEnabled()) { - log.trace("History insert: {}", Arrays.toString(oldRow)); - } insertIntoHistory(connection, oldRow); } } diff --git a/pom.xml b/pom.xml index 85ab5a776..196211980 100644 --- a/pom.xml +++ b/pom.xml @@ -56,13 +56,6 @@ - - org.slf4j - slf4j-api - 1.7.36 - provided - - ch.qos.logback logback-classic From 4252445eb48c5aeb91b9f6e1808a3af68711cb72 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 23 Aug 2022 15:18:46 +1200 Subject: [PATCH 023/127] Use AppLog and System.Logger for logging - static imports --- .../src/main/java/io/ebean/DbContext.java | 5 +- .../src/main/java/io/ebean/EbeanVersion.java | 11 +- .../config/dbplatform/DatabasePlatform.java | 9 +- .../dbplatform/SequenceIdGenerator.java | 8 +- .../java/io/ebean/event/ShutdownManager.java | 15 +- .../io/ebean/text/csv/DefaultCsvCallback.java | 7 +- .../main/java/io/ebean/util/JdbcClose.java | 13 +- .../service/DefaultAutoTuneService.java | 25 ++-- .../service/ProfileOriginNodeUsage.java | 7 +- .../server/cache/DefaultCacheHolder.java | 10 +- .../server/cache/DefaultServerCache.java | 10 +- .../cache/DefaultServerCacheManager.java | 12 +- .../changelog/DefaultChangeLogListener.java | 8 +- .../server/cluster/ClusterManager.java | 7 +- .../server/core/BeanRequest.java | 4 +- .../server/core/DatabasePlatformFactory.java | 8 +- .../server/core/DefaultBeanLoader.java | 7 +- .../server/core/DefaultContainer.java | 11 +- .../server/core/DefaultServer.java | 10 +- .../server/core/InternalConfigXmlMap.java | 5 +- .../server/core/InternalConfiguration.java | 9 +- .../core/bootup/BootupClassPathSearch.java | 5 +- .../server/core/bootup/BootupClasses.java | 8 +- .../server/core/bootup/ManifestReader.java | 5 +- .../server/deploy/BeanDescriptor.java | 13 +- .../deploy/BeanDescriptorCacheHelp.java | 135 +++++++++--------- .../server/deploy/BeanDescriptorManager.java | 21 +-- .../server/deploy/BeanProperty.java | 5 +- .../server/deploy/BeanPropertyAssoc.java | 5 +- .../server/deploy/BeanPropertyAssocMany.java | 9 +- .../server/deploy/BeanTable.java | 4 +- .../deploy/parse/AnnotationAssocOnes.java | 7 +- .../server/deploy/parse/AnnotationClass.java | 28 +--- .../deploy/parse/DeployCreateProperties.java | 11 +- .../server/dto/DtoMetaBuilder.java | 7 +- .../executor/DaemonExecutorService.java | 11 +- .../executor/DaemonScheduleThreadPool.java | 13 +- .../executor/DefaultBackgroundExecutor.java | 19 +-- .../server/idgen/UuidV1IdGenerator.java | 31 ++-- .../server/idgen/UuidV1RndIdGenerator.java | 5 +- .../server/logger/DSpiLogger.java | 11 +- .../server/persist/BatchedPstmt.java | 7 +- .../ebeaninternal/server/persist/Binder.java | 5 +- .../server/persist/DefaultPersister.java | 26 ++-- .../server/persist/SaveManyBase.java | 5 +- .../server/query/CQueryPlanManager.java | 4 +- .../server/query/SqlTreeBuilder.java | 11 +- .../readaudit/DefaultReadAuditLogger.java | 12 +- .../transaction/DefaultProfileHandler.java | 20 +-- .../ImplicitReadOnlyTransaction.java | 5 +- .../server/transaction/JdbcTransaction.java | 13 +- .../transaction/JtaTransactionManager.java | 16 ++- .../transaction/PostCommitProcessing.java | 7 +- .../server/transaction/TableModState.java | 20 +-- .../transaction/TransactionManager.java | 12 +- .../ebeaninternal/server/type/DataBind.java | 5 +- .../server/type/DefaultTypeManager.java | 19 +-- .../server/type/ScalarTypeFile.java | 7 +- .../dbmigration/DdlGenerator.java | 7 +- .../dbmigration/DefaultDbMigration.java | 10 +- .../dbmigration/model/MigrationModel.java | 5 +- .../dbmigration/model/PlatformDdlWriter.java | 5 +- .../extraddl/model/ExtraDdlXmlReader.java | 4 +- .../test/java/io/localtest/BaseTestCase.java | 5 +- .../main/java/io/ebean/redis/RedisCache.java | 10 +- .../io/ebean/redis/RedisCacheFactory.java | 36 ++--- .../ebean/redis/topic/DaemonTopicRunner.java | 11 +- .../io/ebean/test/CapturingLoggerFactory.java | 11 +- .../test/config/AutoConfigureForTesting.java | 8 +- .../io/ebean/test/config/platform/Config.java | 6 +- .../config/platform/PlatformAutoConfig.java | 10 +- .../config/provider/ProviderAutoConfig.java | 8 +- .../ebean/platform/h2/H2HistoryTrigger.java | 5 +- 73 files changed, 473 insertions(+), 416 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/DbContext.java b/ebean-api/src/main/java/io/ebean/DbContext.java index c098f079a..3dca530a6 100644 --- a/ebean-api/src/main/java/io/ebean/DbContext.java +++ b/ebean-api/src/main/java/io/ebean/DbContext.java @@ -4,11 +4,12 @@ import io.ebean.config.BeanNotEnhancedException; import io.ebean.datasource.DataSourceConfigurationException; import javax.persistence.PersistenceException; -import java.lang.System.Logger.Level; import java.util.HashMap; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.locks.ReentrantLock; +import static java.lang.System.Logger.Level.ERROR; + /** * Holds Database instances. */ @@ -52,7 +53,7 @@ final class DbContext { throw new DataSourceConfigurationException(msg, e); } catch (Throwable e) { - log.log(Level.ERROR, "Error trying to create the default Database", e); + log.log(ERROR, "Error trying to create the default Database", e); throw new RuntimeException(e); } } diff --git a/ebean-api/src/main/java/io/ebean/EbeanVersion.java b/ebean-api/src/main/java/io/ebean/EbeanVersion.java index 7eaf5a52a..aeb855efc 100644 --- a/ebean-api/src/main/java/io/ebean/EbeanVersion.java +++ b/ebean-api/src/main/java/io/ebean/EbeanVersion.java @@ -6,9 +6,10 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.LineNumberReader; -import java.lang.System.Logger.Level; import java.util.Properties; +import static java.lang.System.Logger.Level.*; + /** * Class to determine the ebean version. * @@ -36,12 +37,12 @@ public final class EbeanVersion { if (in != null) { try (LineNumberReader reader = new LineNumberReader(new InputStreamReader(in))) { version = reader.readLine(); - log.log(Level.INFO, "ebean version: {0}", version); + log.log(INFO, "ebean version: {0}", version); } } } } catch (IOException e) { - log.log(Level.WARNING, "Could not determine ebean version: {0}", e.getMessage()); + log.log(WARNING, "Could not determine ebean version: {0}", e.getMessage()); } } @@ -53,13 +54,13 @@ public final class EbeanVersion { String agentVersion = readVersion(in); if (agentVersion != null) { if (checkMinAgentVersion(agentVersion)) { - log.log(Level.ERROR, "Expected minimum ebean-agent version {0}.{1}.0 but we have {2}, please update the ebean-agent", MIN_AGENT_MAJOR_VERSION, MIN_AGENT_MINOR_VERSION, agentVersion); + log.log(ERROR, "Expected minimum ebean-agent version {0}.{1}.0 but we have {2}, please update the ebean-agent", MIN_AGENT_MAJOR_VERSION, MIN_AGENT_MINOR_VERSION, agentVersion); } } } } } catch (IOException e) { - log.log(Level.WARNING, "Could not check minimum ebean-agent version {0}.{1}.0 required due to - {2}", MIN_AGENT_MAJOR_VERSION, MIN_AGENT_MINOR_VERSION, e.getMessage()); + log.log(WARNING, "Could not check minimum ebean-agent version {0}.{1}.0 required due to - {2}", MIN_AGENT_MAJOR_VERSION, MIN_AGENT_MINOR_VERSION, e.getMessage()); } } diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java index 53d416372..3bb2cced8 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java @@ -11,9 +11,10 @@ import io.ebean.util.JdbcClose; import javax.persistence.PersistenceException; import javax.sql.DataSource; -import java.lang.System.Logger.Level; import java.sql.*; +import static java.lang.System.Logger.Level.*; + /** * Database platform specific settings. */ @@ -659,7 +660,7 @@ public class DatabasePlatform { if (isQuote(dbName.charAt(dbName.length() - 1))) { return openQuote + dbName.substring(1, dbName.length() - 1) + closeQuote; } else { - log.log(Level.ERROR, "Missing backquote on [" + dbName + "]"); + log.log(ERROR, "Missing backquote on [" + dbName + "]"); } } else if (allQuotedIdentifiers) { return openQuote + dbName + closeQuote; @@ -722,7 +723,7 @@ public class DatabasePlatform { protected String withForUpdate(String sql, Query.LockWait lockWait, Query.LockType lockType) { // silently assume the database does not support the "for update" clause. - log.log(Level.INFO, "it seems your database does not support the 'for update' clause"); + log.log(INFO, "it seems your database does not support the 'for update' clause"); return sql; } @@ -756,7 +757,7 @@ public class DatabasePlatform { if (!schemaExists(dbSchema, connection)) { Statement query = connection.createStatement(); try { - log.log(Level.DEBUG, "create schema:{0}", dbSchema); + log.log(DEBUG, "create schema:{0}", dbSchema); query.executeUpdate("create schema " + dbSchema); } finally { JdbcClose.close(query); diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/SequenceIdGenerator.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/SequenceIdGenerator.java index 658c5e94e..246e8f1c0 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/SequenceIdGenerator.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/SequenceIdGenerator.java @@ -7,7 +7,6 @@ import io.ebean.util.JdbcClose; import javax.persistence.PersistenceException; import javax.sql.DataSource; -import java.lang.System.Logger.Level; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -19,6 +18,9 @@ import java.util.TreeSet; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.locks.ReentrantLock; +import static java.lang.System.Logger.Level.DEBUG; +import static java.lang.System.Logger.Level.ERROR; + /** * Database sequence based IdGenerator. */ @@ -120,7 +122,7 @@ public abstract class SequenceIdGenerator implements PlatformIdGenerator { protected void loadInBackground(final int requestSize) { if (currentlyBackgroundLoading.get()) { // skip as already background loading - log.log(Level.DEBUG, "... skip background sequence load (another load in progress)"); + log.log(DEBUG, "... skip background sequence load (another load in progress)"); return; } currentlyBackgroundLoading.set(true); @@ -161,7 +163,7 @@ public abstract class SequenceIdGenerator implements PlatformIdGenerator { } catch (SQLException e) { if (e.getMessage().contains("Database is already closed")) { String msg = "Error getting SEQ when DB shutting down " + e.getMessage(); - log.log(Level.ERROR, msg); + log.log(ERROR, msg); System.out.println(msg); return Collections.emptyList(); } else { diff --git a/ebean-api/src/main/java/io/ebean/event/ShutdownManager.java b/ebean-api/src/main/java/io/ebean/event/ShutdownManager.java index 2547ee542..3de1bb10b 100644 --- a/ebean-api/src/main/java/io/ebean/event/ShutdownManager.java +++ b/ebean-api/src/main/java/io/ebean/event/ShutdownManager.java @@ -4,7 +4,6 @@ import io.ebean.Database; import io.ebean.EbeanVersion; import io.ebean.service.SpiContainer; -import java.lang.System.Logger.Level; import java.sql.Driver; import java.sql.DriverManager; import java.sql.SQLException; @@ -13,6 +12,8 @@ import java.util.Enumeration; import java.util.List; import java.util.concurrent.locks.ReentrantLock; +import static java.lang.System.Logger.Level.*; + /** * Manages the shutdown of Ebean. *

@@ -121,8 +122,8 @@ public final class ShutdownManager { // Already run shutdown... return; } - if (log.isLoggable(Level.DEBUG)) { - log.log(Level.DEBUG, "Ebean shutting down"); + if (log.isLoggable(DEBUG)) { + log.log(DEBUG, "Ebean shutting down"); } stopping = true; deregisterShutdownHook(); @@ -134,7 +135,7 @@ public final class ShutdownManager { Runnable r = (Runnable) ClassUtil.newInstance(shutdownRunner); r.run(); } catch (Exception e) { - log.log(Level.ERROR, "Error running custom shutdown runnable", e); + log.log(ERROR, "Error running custom shutdown runnable", e); } } @@ -148,7 +149,7 @@ public final class ShutdownManager { try { server.shutdown(); } catch (Exception ex) { - log.log(Level.ERROR, "Error executing shutdown runnable", ex); + log.log(ERROR, "Error executing shutdown runnable", ex); ex.printStackTrace(); } } @@ -166,10 +167,10 @@ public final class ShutdownManager { while (drivers.hasMoreElements()) { Driver driver = drivers.nextElement(); try { - log.log(Level.INFO, "De-registering jdbc driver: " + driver); + log.log(INFO, "De-registering jdbc driver: " + driver); DriverManager.deregisterDriver(driver); } catch (SQLException e) { - log.log(Level.ERROR, "Error de-registering driver " + driver, e); + log.log(ERROR, "Error de-registering driver " + driver, e); } } } diff --git a/ebean-api/src/main/java/io/ebean/text/csv/DefaultCsvCallback.java b/ebean-api/src/main/java/io/ebean/text/csv/DefaultCsvCallback.java index d2e6d3f98..3fcc8cc51 100644 --- a/ebean-api/src/main/java/io/ebean/text/csv/DefaultCsvCallback.java +++ b/ebean-api/src/main/java/io/ebean/text/csv/DefaultCsvCallback.java @@ -4,7 +4,8 @@ import io.ebean.Database; import io.ebean.EbeanVersion; import io.ebean.Transaction; -import java.lang.System.Logger.Level; +import static java.lang.System.Logger.Level.DEBUG; +import static java.lang.System.Logger.Level.INFO; /** * Provides the default implementation of CsvCallback. @@ -129,7 +130,7 @@ public class DefaultCsvCallback implements CsvCallback { // related beans (e.g. customer -> customer.billingAddress server.save(bean, transaction); if (logInfoFrequency > 0 && (row % logInfoFrequency == 0)) { - log.log(Level.DEBUG, "processed {0} rows", row); + log.log(DEBUG, "processed {0} rows", row); } } @@ -140,7 +141,7 @@ public class DefaultCsvCallback implements CsvCallback { public void end(int row) { commitTransactionIfCreated(); exeTime = System.currentTimeMillis() - startTime; - log.log(Level.INFO, "Csv finished, rows[{0}] exeMillis[{1}]", row, exeTime); + log.log(INFO, "Csv finished, rows[{0}] exeMillis[{1}]", row, exeTime); } /** diff --git a/ebean-api/src/main/java/io/ebean/util/JdbcClose.java b/ebean-api/src/main/java/io/ebean/util/JdbcClose.java index b450db79a..d6b35539c 100644 --- a/ebean-api/src/main/java/io/ebean/util/JdbcClose.java +++ b/ebean-api/src/main/java/io/ebean/util/JdbcClose.java @@ -2,12 +2,13 @@ package io.ebean.util; import io.ebean.EbeanVersion; -import java.lang.System.Logger.Level; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; +import static java.lang.System.Logger.Level.WARNING; + /** * Utility for closing raw Jdbc resources. */ @@ -24,7 +25,7 @@ public final class JdbcClose { statement.close(); } } catch (SQLException e) { - log.log(Level.WARNING, "Error closing statement", e); + log.log(WARNING, "Error closing statement", e); } } @@ -37,7 +38,7 @@ public final class JdbcClose { resultSet.close(); } } catch (SQLException e) { - log.log(Level.WARNING, "Error closing resultSet", e); + log.log(WARNING, "Error closing resultSet", e); } } @@ -50,7 +51,7 @@ public final class JdbcClose { connection.close(); } } catch (SQLException e) { - log.log(Level.WARNING, "Error closing connection", e); + log.log(WARNING, "Error closing connection", e); } } @@ -63,7 +64,7 @@ public final class JdbcClose { connection.rollback(); } } catch (SQLException e) { - log.log(Level.WARNING, "Error on connection rollback", e); + log.log(WARNING, "Error on connection rollback", e); } } @@ -76,7 +77,7 @@ public final class JdbcClose { stmt.cancel(); } } catch (SQLException e) { - log.log(Level.WARNING, "Error on cancelling statement", e); + log.log(WARNING, "Error on cancelling statement", e); } } } diff --git a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/DefaultAutoTuneService.java b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/DefaultAutoTuneService.java index be43c42af..a0031f938 100644 --- a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/DefaultAutoTuneService.java +++ b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/DefaultAutoTuneService.java @@ -12,10 +12,11 @@ import io.ebeaninternal.server.autotune.model.Origin; import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.lang.System.Logger.Level; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; +import static java.lang.System.Logger.Level.*; + /** * Implementation of the AutoTuneService which is comprised of profiling and query tuning. */ @@ -111,7 +112,7 @@ public class DefaultAutoTuneService implements AutoTuneService { if (stream != null) { loadAutoTuneProfiling(AutoTuneXmlReader.read(stream)); } else { - logger.log(Level.WARNING, "AutoTune file {0} not found - no initial automatic query tuning", tuningFile); + logger.log(WARNING, "AutoTune file {0} not found - no initial automatic query tuning", tuningFile); } } catch (IOException e) { throw new IllegalStateException("Error on auto close of " + tuningFile, e); @@ -120,7 +121,7 @@ public class DefaultAutoTuneService implements AutoTuneService { } private void loadAutoTuneProfiling(Autotune profiling) { - logger.log(Level.INFO, "AutoTune loading {0} tuning entries", profiling.getOrigin().size()); + logger.log(INFO, "AutoTune loading {0} tuning entries", profiling.getOrigin().size()); for (Origin origin : profiling.getOrigin()) { queryTuner.put(origin); } @@ -141,17 +142,17 @@ public class DefaultAutoTuneService implements AutoTuneService { event.process(); if (event.isEmpty()) { long exeMillis = System.currentTimeMillis() - start; - logger.log(Level.DEBUG, "No query tuning updates for server:{0} executionMillis:{1}", serverName, exeMillis); + logger.log(DEBUG, "No query tuning updates for server:{0} executionMillis:{1}", serverName, exeMillis); } else { // report the query tuning changes that have been made runtimeChangeCount += event.getChangeCount(); event.writeFile(profilingFile + "-" + serverName + "-update"); long exeMillis = System.currentTimeMillis() - start; - logger.log(Level.INFO, "query tuning updates - new:{0} diff:{1} for server:{2} executionMillis:{3}", event.getNewCount(), event.getDiffCount(), serverName, exeMillis); + logger.log(INFO, "query tuning updates - new:{0} diff:{1} for server:{2} executionMillis:{3}", event.getNewCount(), event.getDiffCount(), serverName, exeMillis); } } catch (Throwable e) { - logger.log(Level.ERROR, "Error collecting or applying automatic query tuning", e); + logger.log(ERROR, "Error collecting or applying automatic query tuning", e); } } finally { lock.unlock(); @@ -172,11 +173,11 @@ public class DefaultAutoTuneService implements AutoTuneService { AutoTuneDiffCollection event = new AutoTuneDiffCollection(profiling, queryTuner, false); event.process(); if (event.isEmpty()) { - logger.log(Level.INFO, "No new or diff entries for profiling server:{0}", serverName); + logger.log(INFO, "No new or diff entries for profiling server:{0}", serverName); } else { event.writeFile(profilingFile + "-" + serverName); - logger.log(Level.INFO, "writing new:{0} diff:{1} profiling entries for server:{2}", event.getNewCount(), event.getDiffCount(), serverName); + logger.log(INFO, "writing new:{0} diff:{1} profiling entries for server:{2}", event.getNewCount(), event.getDiffCount(), serverName); } } } finally { @@ -196,7 +197,7 @@ public class DefaultAutoTuneService implements AutoTuneService { private void outputAllTuning() { if (runtimeChangeCount == 0) { - logger.log(Level.INFO, "no runtime query tuning changes for server:{0}", serverName); + logger.log(INFO, "no runtime query tuning changes for server:{0}", serverName); } else { AutoTuneAllCollection event = new AutoTuneAllCollection(queryTuner); @@ -205,12 +206,12 @@ public class DefaultAutoTuneService implements AutoTuneService { if (existingTuning.exists()) { // rename the existing autotune.xml file (appending 'now') if (!existingTuning.renameTo(new File(tuningFile + "." + AutoTuneXmlWriter.now()))) { - logger.log(Level.WARNING, "Failed to rename autotune file [{0}]", tuningFile); + logger.log(WARNING, "Failed to rename autotune file [{0}]", tuningFile); } } event.writeFile(tuningFile, false); - logger.log(Level.INFO, "query tuning detected [{0}] changes, writing all [{1}] tuning entries for server:{2}", runtimeChangeCount, size, serverName); + logger.log(INFO, "query tuning detected [{0}] changes, writing all [{1}] tuning entries for server:{2}", runtimeChangeCount, size, serverName); } } @@ -279,7 +280,7 @@ public class DefaultAutoTuneService implements AutoTuneService { } catch (InterruptedException e) { // restore the interrupted status Thread.currentThread().interrupt(); - logger.log(Level.WARNING, "Error while sleeping after System.gc() request.", e); + logger.log(WARNING, "Error while sleeping after System.gc() request.", e); } } diff --git a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/ProfileOriginNodeUsage.java b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/ProfileOriginNodeUsage.java index fb9007ebf..408d9c1ff 100644 --- a/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/ProfileOriginNodeUsage.java +++ b/ebean-autotune/src/main/java/io/ebeaninternal/server/autotune/service/ProfileOriginNodeUsage.java @@ -9,11 +9,12 @@ import io.ebeaninternal.server.deploy.BeanProperty; import io.ebeaninternal.server.deploy.BeanPropertyAssoc; import io.ebeaninternal.server.el.ElPropertyValue; -import java.lang.System.Logger.Level; import java.util.LinkedHashSet; import java.util.Set; import java.util.concurrent.locks.ReentrantLock; +import static java.lang.System.Logger.Level.WARNING; + /** * Collects usages statistics for a given node in the object graph. */ @@ -45,7 +46,7 @@ public class ProfileOriginNodeUsage { if (path != null) { ElPropertyValue elGetValue = rootDesc.elGetValue(path); if (elGetValue == null) { - logger.log(Level.WARNING, "AutoTune: Can't find join for path[" + path + "] for " + rootDesc.name()); + logger.log(WARNING, "AutoTune: Can't find join for path[" + path + "] for " + rootDesc.name()); return; } else { BeanProperty beanProperty = elGetValue.beanProperty(); @@ -61,7 +62,7 @@ public class ProfileOriginNodeUsage { for (String propName : aggregateUsed) { BeanProperty beanProp = desc.findPropertyFromPath(propName); if (beanProp == null) { - logger.log(Level.WARNING, "AutoTune: Can't find property[" + propName + "] for " + desc.name()); + logger.log(WARNING, "AutoTune: Can't find property[" + propName + "] for " + desc.name()); } else { if (beanProp.isId()) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultCacheHolder.java b/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultCacheHolder.java index cf6a02089..aff1929b6 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultCacheHolder.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultCacheHolder.java @@ -9,12 +9,14 @@ import io.ebean.config.CurrentTenantProvider; import io.ebean.meta.MetricVisitor; import io.ebean.util.AnnotationUtil; -import java.lang.System.Logger.Level; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentSkipListSet; import java.util.concurrent.locks.ReentrantLock; +import static java.lang.System.Logger.Level.DEBUG; +import static java.lang.System.Logger.Level.TRACE; + /** * Manages the construction of caches. */ @@ -89,7 +91,7 @@ final class DefaultCacheHolder { } void clearAll() { - log.log(Level.DEBUG, "clearAll"); + log.log(DEBUG, "clearAll"); for (ServerCache serverCache : allCaches.values()) { serverCache.clear(); } @@ -97,7 +99,7 @@ final class DefaultCacheHolder { public void clear(String name) { - log.log(Level.DEBUG, "clear {0}", name); + log.log(DEBUG, "clear {0}", name); clearIfExists(key(name, ServerCacheType.QUERY)); clearIfExists(key(name, ServerCacheType.BEAN)); clearIfExists(key(name, ServerCacheType.NATURAL_KEY)); @@ -112,7 +114,7 @@ final class DefaultCacheHolder { private void clearIfExists(String fullKey) { ServerCache cache = allCaches.get(fullKey); if (cache != null) { - log.log(Level.TRACE, "clear cache {0}", fullKey); + log.log(TRACE, "clear cache {0}", fullKey); cache.clear(); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCache.java b/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCache.java index e5bfd2628..e68c9a308 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCache.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCache.java @@ -9,13 +9,15 @@ import io.ebean.metric.CountMetric; import io.ebean.metric.MetricFactory; import java.io.Serializable; -import java.lang.System.Logger.Level; import java.lang.ref.SoftReference; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.locks.ReentrantLock; +import static java.lang.System.Logger.Level.TRACE; +import static java.lang.System.Logger.Level.WARNING; + /** * The default cache implementation. *

@@ -287,13 +289,13 @@ public class DefaultServerCache implements ServerCache { evictCount.add(trimmedByGC); evictCount.add(trimmedByTTL); evictCount.add(trimmedByLRU); - if (logger.isLoggable(Level.TRACE)) { + if (logger.isLoggable(TRACE)) { long exeMicros = TimeUnit.MICROSECONDS.convert(System.nanoTime() - startNanos, TimeUnit.NANOSECONDS); - logger.log(Level.TRACE, "Executed trim of cache {0} in [{1}]millis idle[{2}] timeToLive[{3}] accessTime[{4}] gc[{5}]", + logger.log(TRACE, "Executed trim of cache {0} in [{1}]millis idle[{2}] timeToLive[{3}] accessTime[{4}] gc[{5}]", name, exeMicros, trimmedByIdle, trimmedByTTL, trimmedByLRU, trimmedByGC); } } catch (Throwable e) { - logger.log(Level.WARNING, "Error during trim of DefaultServerCache [" + name + "]. Cache might be bigger than desired.", e); + logger.log(WARNING, "Error during trim of DefaultServerCache [" + name + "]. Cache might be bigger than desired.", e); } } finally { lock.unlock(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCacheManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCacheManager.java index 6142f6d50..0b7264ff9 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCacheManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/cache/DefaultServerCacheManager.java @@ -9,9 +9,11 @@ import io.ebeaninternal.api.SpiCacheRegion; import io.ebeaninternal.server.cluster.ClusterManager; import io.ebeaninternal.server.deploy.DCacheRegion; -import java.lang.System.Logger.Level; import java.util.*; +import static java.lang.System.Logger.Level.DEBUG; +import static java.lang.System.Logger.Level.INFO; + /** * Manages the bean and query caches. */ @@ -65,23 +67,23 @@ public final class DefaultServerCacheManager implements SpiCacheManager { enabled.add(region.name()); if (!region.isEnabled()) { region.setEnabled(true); - log.log(Level.DEBUG, "Cache region[{0}] enabled", region.name()); + log.log(DEBUG, "Cache region[{0}] enabled", region.name()); } } else { disabled.add(region.name()); if (region.isEnabled()) { region.setEnabled(false); - log.log(Level.DEBUG, "Cache region[{0}] disabled", region.name()); + log.log(DEBUG, "Cache region[{0}] disabled", region.name()); } } } - log.log(Level.INFO, "Cache regions enabled:{0} disabled:{1}", enabled, disabled); + log.log(INFO, "Cache regions enabled:{0} disabled:{1}", enabled, disabled); } } @Override public void setAllRegionsEnabled(boolean enabled) { - log.log(Level.DEBUG, "All cache regions enabled[{0}]", enabled); + log.log(DEBUG, "All cache regions enabled[{0}]", enabled); for (SpiCacheRegion region : regionMap.values()) { region.setEnabled(enabled); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogListener.java b/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogListener.java index c85edd315..7ababb99f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogListener.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/changelog/DefaultChangeLogListener.java @@ -10,9 +10,11 @@ import io.ebean.plugin.SpiServer; import io.ebeaninternal.api.CoreLog; import java.io.StringWriter; -import java.lang.System.Logger.Level; import java.util.Properties; +import static java.lang.System.Logger.Level.ERROR; +import static java.lang.System.Logger.Level.INFO; + /** * Simply logs the change sets in JSON form to logger named io.ebean.ChangeLog. */ @@ -65,9 +67,9 @@ public final class DefaultChangeLogListener implements ChangeLogListener, Plugin try { StringWriter writer = new StringWriter(getBufferSize(beanChange)); jsonBuilder.writeBeanJson(writer, beanChange, changeSet); - changeLog.log(Level.INFO, writer.toString()); + changeLog.log(INFO, writer.toString()); } catch (Exception e) { - CoreLog.log.log(Level.ERROR, "Exception logging beanChange " + beanChange, e); + CoreLog.log.log(ERROR, "Exception logging beanChange " + beanChange, e); } } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/cluster/ClusterManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/cluster/ClusterManager.java index 4af7e1fce..e370534d9 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/cluster/ClusterManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/cluster/ClusterManager.java @@ -5,12 +5,13 @@ import io.ebean.Database; import io.ebean.config.ContainerConfig; import io.ebeaninternal.server.transaction.RemoteTransactionEvent; -import java.lang.System.Logger.Level; import java.util.Iterator; import java.util.ServiceLoader; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.locks.ReentrantLock; +import static java.lang.System.Logger.Level.DEBUG; + /** * Manages the cluster service. */ @@ -112,8 +113,8 @@ public class ClusterManager implements ServerLookup { */ public void broadcast(RemoteTransactionEvent event) { if (broadcast != null) { - if (clusterLogger.isLoggable(Level.DEBUG)) { - clusterLogger.log(Level.DEBUG, "sending: {0}", event); + if (clusterLogger.isLoggable(DEBUG)) { + clusterLogger.log(DEBUG, "sending: {0}", event); } broadcast.broadcast(event); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/BeanRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/BeanRequest.java index 6d68210bd..b8224bc23 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/BeanRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/BeanRequest.java @@ -6,7 +6,7 @@ import io.ebeaninternal.api.SpiEbeanServer; import io.ebeaninternal.api.SpiTransaction; import io.ebeaninternal.server.core.timezone.DataTimeZone; -import java.lang.System.Logger.Level; +import static java.lang.System.Logger.Level.ERROR; /** * Base class for find and persist requests. @@ -63,7 +63,7 @@ public abstract class BeanRequest { // Just log this and carry on. A previous exception has been // thrown and if this rollback throws exception it likely means // that the connection is broken (and the dataSource and db will cleanup) - CoreLog.log.log(Level.ERROR, "Error trying to rollback a transaction (after a prior exception thrown)", e); + CoreLog.log.log(ERROR, "Error trying to rollback a transaction (after a prior exception thrown)", e); } } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DatabasePlatformFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DatabasePlatformFactory.java index 265e71cba..8fa1093be 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DatabasePlatformFactory.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DatabasePlatformFactory.java @@ -8,7 +8,6 @@ import io.ebeaninternal.api.DbOffline; import javax.persistence.PersistenceException; import javax.sql.DataSource; -import java.lang.System.Logger.Level; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.SQLException; @@ -16,6 +15,9 @@ import java.util.ArrayList; import java.util.List; import java.util.ServiceLoader; +import static java.lang.System.Logger.Level.DEBUG; +import static java.lang.System.Logger.Level.INFO; + /** * Create a DatabasePlatform from the configuration. *

@@ -39,7 +41,7 @@ public class DatabasePlatformFactory { try { String offlinePlatform = DbOffline.getPlatform(); if (offlinePlatform != null) { - CoreLog.log.log(Level.INFO, "offline platform [{0}]", offlinePlatform); + CoreLog.log.log(INFO, "offline platform [{0}]", offlinePlatform); return byDatabaseName(offlinePlatform); } if (config.getDatabasePlatformName() != null) { @@ -88,7 +90,7 @@ public class DatabasePlatformFactory { String dbProductName = metaData.getDatabaseProductName().toLowerCase(); final int majorVersion = metaData.getDatabaseMajorVersion(); final int minorVersion = metaData.getDatabaseMinorVersion(); - CoreLog.log.log(Level.DEBUG, "platform for productName[{0}] version[{1}.{2}]", dbProductName, majorVersion, minorVersion); + CoreLog.log.log(DEBUG, "platform for productName[{0}] version[{1}.{2}]", dbProductName, majorVersion, minorVersion); for (DatabasePlatformProvider provider : providers) { if (provider.matchByProductName(dbProductName)) { return provider.create(majorVersion, minorVersion, metaData, connection); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java index 7cd82edeb..8e1f2fb84 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultBeanLoader.java @@ -14,10 +14,11 @@ import io.ebeaninternal.server.deploy.BeanPropertyAssocMany; import io.ebeaninternal.server.transaction.DefaultPersistenceContext; import javax.persistence.EntityNotFoundException; -import java.lang.System.Logger.Level; import java.util.List; import java.util.Set; +import static java.lang.System.Logger.Level.DEBUG; + /** * Helper to handle lazy loading and refreshing of beans. */ @@ -108,8 +109,8 @@ final class DefaultBeanLoader { server.findOne(query, null); if (beanCollection != null) { if (beanCollection.checkEmptyLazyLoad()) { - if (log.isLoggable(Level.DEBUG)) { - log.log(Level.DEBUG, "BeanCollection after load was empty. Owner:" + beanCollection.getOwnerBean()); + if (log.isLoggable(DEBUG)) { + log.log(DEBUG, "BeanCollection after load was empty. Owner:" + beanCollection.getOwnerBean()); } } else if (useManyIdCache) { parentDesc.cacheManyPropPut(many, beanCollection, parentId); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java index eb1cb1fe2..16df24f4c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java @@ -14,7 +14,6 @@ import io.ebeaninternal.server.core.bootup.BootupClasses; import io.ebeaninternal.server.executor.DefaultBackgroundExecutor; import javax.persistence.PersistenceException; -import java.lang.System.Logger.Level; import java.net.URL; import java.sql.Connection; import java.sql.SQLException; @@ -22,6 +21,8 @@ import java.util.List; import java.util.ServiceLoader; import java.util.concurrent.locks.ReentrantLock; +import static java.lang.System.Logger.Level.*; + /** * Default Server side implementation of ServerFactory. */ @@ -107,7 +108,7 @@ public final class DefaultContainer implements SpiContainer { startServer(online, server); } DbOffline.reset(); - log.log(Level.INFO, "Started database[{0}] platform[{1}] in {2}ms", config.getName(), config.getDatabasePlatform().getPlatform(), System.currentTimeMillis() - start); + log.log(INFO, "Started database[{0}] platform[{1}] in {2}ms", config.getName(), config.getDatabasePlatform().getPlatform(), System.currentTimeMillis() - start); return server; } finally { lock.unlock(); @@ -136,7 +137,7 @@ public final class DefaultContainer implements SpiContainer { private void checkMissingModulePathProvides() { URL servicesFile = ClassLoader.getSystemResource("META-INF/services/io.ebean.config.EntityClassRegister"); if (servicesFile != null) { - log.log(Level.ERROR, "module-info.java is probably missing 'provides io.ebean.config.EntityClassRegister with EbeanEntityRegister' clause. EntityClassRegister exists but was not service loaded."); + log.log(ERROR, "module-info.java is probably missing 'provides io.ebean.config.EntityClassRegister with EbeanEntityRegister' clause. EntityClassRegister exists but was not service loaded."); } } @@ -214,7 +215,7 @@ public final class DefaultContainer implements SpiContainer { */ private void setDataSource(DatabaseConfig config) { if (isOfflineMode(config)) { - log.log(Level.DEBUG, "... DbOffline using platform [{0}]", DbOffline.getPlatform()); + log.log(DEBUG, "... DbOffline using platform [{0}]", DbOffline.getPlatform()); } else { InitDataSource.init(config); } @@ -250,7 +251,7 @@ public final class DefaultContainer implements SpiContainer { } try (Connection connection = config.getDataSource().getConnection()) { if (connection.getAutoCommit()) { - log.log(Level.WARNING, "DataSource [{0}] has autoCommit defaulting to true!", config.getName()); + log.log(WARNING, "DataSource [{0}] has autoCommit defaulting to true!", config.getName()); } return true; } catch (SQLException ex) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java index b6b498b0d..d0333acda 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java @@ -51,7 +51,6 @@ import javax.persistence.NonUniqueResultException; import javax.persistence.OptimisticLockException; import javax.persistence.PersistenceException; import javax.sql.DataSource; -import java.lang.System.Logger.Level; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; @@ -65,6 +64,7 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Stream; +import static java.lang.System.Logger.Level.*; import static java.util.Spliterators.spliteratorUnknownSize; import static java.util.stream.StreamSupport.stream; @@ -331,7 +331,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { if (config.isQueryPlanCapture()) { long secs = config.getQueryPlanCapturePeriodSecs(); if (secs > 10) { - log.log(Level.INFO, "capture query plan enabled, every {0}secs", secs); + log.log(INFO, "capture query plan enabled, every {0}secs", secs); backgroundExecutor.scheduleWithFixedDelay(this::collectQueryPlans, secs, secs, TimeUnit.SECONDS); } } @@ -379,7 +379,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { * Shutdown the services like threads and DataSource. */ private void shutdownInternal(boolean shutdownDataSource, boolean deregisterDriver) { - log.log(Level.TRACE, "shutting down instance {0}", serverName); + log.log(TRACE, "shutting down instance {0}", serverName); if (shutdown) { // already shutdown return; @@ -408,7 +408,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { try { plugin.shutdown(); } catch (Exception e) { - log.log(Level.ERROR, "Error when shutting down plugin", e); + log.log(ERROR, "Error when shutting down plugin", e); } } } @@ -2075,7 +2075,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { try { serverCacheManager.clearLocal(Class.forName(cache)); } catch (Exception e) { - log.log(Level.ERROR, "Error clearing local cache for type " + cache, e); + log.log(ERROR, "Error clearing local cache for type " + cache, e); } } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfigXmlMap.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfigXmlMap.java index 4bd2545ed..c55467ce4 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfigXmlMap.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfigXmlMap.java @@ -6,11 +6,12 @@ import io.ebeaninternal.xmapping.api.XmapDto; import io.ebeaninternal.xmapping.api.XmapEbean; import io.ebeaninternal.xmapping.api.XmapRawSql; -import java.lang.System.Logger.Level; import java.util.HashMap; import java.util.List; import java.util.Map; +import static java.lang.System.Logger.Level.ERROR; + /** * Reads the Xml deployment information. */ @@ -56,7 +57,7 @@ final class InternalConfigXmlMap { try { dtoClass = Class.forName(dto.getClazz(), false, classLoader); } catch (Exception e) { - CoreLog.internal.log(Level.ERROR, "Could not load dto bean class " + dto.getClazz() + " for ebean xml entry"); + CoreLog.internal.log(ERROR, "Could not load dto bean class " + dto.getClazz() + " for ebean xml entry"); return; } DtoNamedQueries namedQueries = dtoNamedQueries.computeIfAbsent(dtoClass, aClass -> new DtoNamedQueries()); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java index c8b7f8810..51e4a7d5f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java @@ -57,9 +57,10 @@ import io.ebeanservice.docstore.api.DocStoreIntegration; import io.ebeanservice.docstore.api.DocStoreUpdateProcessor; import io.ebeanservice.docstore.none.NoneDocStoreFactory; -import java.lang.System.Logger.Level; import java.util.*; +import static java.lang.System.Logger.Level.*; + /** * Used to extend the DatabaseConfig with additional objects used to configure and * construct an Database. @@ -433,7 +434,7 @@ public final class InternalConfiguration { externalTransactionManager = new JtaTransactionManager(); } if (externalTransactionManager != null) { - log.log(Level.INFO, "Using Transaction Manager {0}", externalTransactionManager.getClass()); + log.log(INFO, "Using Transaction Manager {0}", externalTransactionManager.getClass()); return new ExternalTransactionScopeManager(externalTransactionManager); } else { return new DefaultTransactionScopeManager(); @@ -523,7 +524,7 @@ public final class InternalConfiguration { if (iterator.hasNext()) { // use the cacheFactory (via classpath service loader) plugin = iterator.next(); - log.log(Level.DEBUG, "using ServerCacheFactory {0}", plugin.getClass()); + log.log(DEBUG, "using ServerCacheFactory {0}", plugin.getClass()); } else { // use the built in default l2 caching which is local cache based localL2Caching = true; @@ -613,7 +614,7 @@ public final class InternalConfiguration { @Override public void execute(boolean online) { if (online && ddlRun) { - CoreLog.log.log(Level.ERROR, "Configured to run DDL but ebean-ddl-generator is not in the classpath (or ebean-test in the test classpath?)"); + CoreLog.log.log(ERROR, "Configured to run DDL but ebean-ddl-generator is not in the classpath (or ebean-test in the test classpath?)"); } } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClassPathSearch.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClassPathSearch.java index 031c87688..8e2dd4d7f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClassPathSearch.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClassPathSearch.java @@ -5,10 +5,11 @@ import io.ebean.config.DatabaseConfig; import io.ebeaninternal.api.CoreLog; import io.ebeaninternal.server.core.ClassPathScanners; -import java.lang.System.Logger.Level; import java.util.List; import java.util.Set; +import static java.lang.System.Logger.Level.DEBUG; + /** * Searches for interesting classes such as Entities, Embedded and ScalarTypes. */ @@ -58,7 +59,7 @@ public class BootupClassPathSearch { } long searchTime = System.currentTimeMillis() - st; - log.log(Level.DEBUG, "Classpath search entities[{0}] searchTime[{1}] in packages[{2}]", bc.getEntities().size(), searchTime, packages); + log.log(DEBUG, "Classpath search entities[{0}] searchTime[{1}] in packages[{2}]", bc.getEntities().size(), searchTime, packages); return bc; } catch (Exception ex) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java index b3f777c6f..40c4ad442 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/BootupClasses.java @@ -18,13 +18,15 @@ import javax.persistence.AttributeConverter; import javax.persistence.Embeddable; import javax.persistence.Entity; import javax.persistence.Table; -import java.lang.System.Logger.Level; import java.lang.annotation.Annotation; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.List; import java.util.function.Predicate; +import static java.lang.System.Logger.Level.DEBUG; +import static java.lang.System.Logger.Level.ERROR; + /** * Interesting classes for a EbeanServer such as Embeddable, Entity, * ScalarTypes, Finders, Listeners and Controllers. @@ -205,13 +207,13 @@ public class BootupClasses implements Predicate> { try { return cls.getConstructor().newInstance(); } catch (NoSuchMethodException e) { - log.log(Level.DEBUG, "Ignore/expected - no default constructor: " + e.getMessage()); + log.log(DEBUG, "Ignore/expected - no default constructor: " + e.getMessage()); return null; } catch (Exception e) { if (logOnException) { // not expected but we log and carry on - log.log(Level.ERROR, "Error creating " + cls, e); + log.log(ERROR, "Error creating " + cls, e); return null; } else { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/ManifestReader.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/ManifestReader.java index a9dbf21ab..456b90987 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/ManifestReader.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/bootup/ManifestReader.java @@ -6,7 +6,6 @@ import io.ebeaninternal.util.UrlHelper; import java.io.IOException; import java.io.InputStream; -import java.lang.System.Logger.Level; import java.net.URL; import java.util.Collections; import java.util.Enumeration; @@ -15,6 +14,8 @@ import java.util.Set; import java.util.jar.Attributes; import java.util.jar.Manifest; +import static java.lang.System.Logger.Level.WARNING; + /** * Reads all the META-INF/ebean.mf resources with the package locations of entity beans. */ @@ -63,7 +64,7 @@ class ManifestReader { } } } catch (IOException e) { - log.log(Level.WARNING, "Error reading " + resourcePath + " manifest resources", e); + log.log(WARNING, "Error reading " + resourcePath + " manifest resources", e); } return packageSet; } 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 4fd54268f..d86e75a7b 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 @@ -58,7 +58,6 @@ import io.ebeanservice.docstore.api.mapping.DocumentMapping; import javax.persistence.PersistenceException; import java.io.IOException; import java.io.StringWriter; -import java.lang.System.Logger.Level; import java.lang.reflect.Modifier; import java.sql.SQLException; import java.sql.Types; @@ -68,6 +67,8 @@ import java.util.function.Consumer; import java.util.stream.Collectors; import static io.ebeaninternal.server.persist.DmlUtil.isNullOrZero; +import static java.lang.System.Logger.Level.ERROR; +import static java.lang.System.Logger.Level.INFO; /** * Describes Beans including their deployment information. @@ -792,7 +793,7 @@ public class BeanDescriptor implements BeanType, STreeType, SpiBeanType { changeJson.flush(); return beanChange(ChangeType.UPDATE, request.beanId(), changeJson.newJson(), changeJson.oldJson()); } catch (RuntimeException e) { - log.log(Level.ERROR, "Failed to write ChangeLog entry for update", e); + log.log(ERROR, "Failed to write ChangeLog entry for update", e); return null; } } @@ -808,7 +809,7 @@ public class BeanDescriptor implements BeanType, STreeType, SpiBeanType { jsonWriter.flush(); return beanChange(ChangeType.INSERT, request.beanId(), writer.toString(), null); } catch (IOException e) { - log.log(Level.ERROR, "Failed to write ChangeLog entry for insert", e); + log.log(ERROR, "Failed to write ChangeLog entry for insert", e); return null; } } @@ -2288,11 +2289,11 @@ public class BeanDescriptor implements BeanType, STreeType, SpiBeanType { private ElComparator createPropertyComparator(SortByClause.Property sortProp) { ElPropertyValue elGetValue = elGetValue(sortProp.getName()); if (elGetValue == null) { - log.log(Level.ERROR, "Sort property [" + sortProp + "] not found in " + beanType + ". Cannot sort."); + log.log(ERROR, "Sort property [" + sortProp + "] not found in " + beanType + ". Cannot sort."); return new ElComparatorNoop<>(); } if (elGetValue.isAssocMany()) { - log.log(Level.ERROR, "Sort property [" + sortProp + "] in " + beanType + " is a many-property. Cannot sort."); + log.log(ERROR, "Sort property [" + sortProp + "] in " + beanType + " is a many-property. Cannot sort."); return new ElComparatorNoop<>(); } Boolean nullsHigh = sortProp.getNullsHigh(); @@ -2768,7 +2769,7 @@ public class BeanDescriptor implements BeanType, STreeType, SpiBeanType { public void markAsDeleted(EntityBean bean) { if (softDeleteProperty == null) { Object id = getId(bean); - log.log(Level.INFO, "(Lazy) loading unsuccessful for type:{0} id:{1} - expecting when bean has been deleted", name(), id); + log.log(INFO, "(Lazy) loading unsuccessful for type:{0} id:{1} - expecting when bean has been deleted", name(), id); bean._ebean_getIntercept().setLazyLoadFailure(id); } else { softDeleteValue(bean); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java index 4e0c39b39..015fcbe70 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorCacheHelp.java @@ -16,9 +16,10 @@ import io.ebeaninternal.server.core.PersistRequestBean; import io.ebeaninternal.server.transaction.DefaultPersistenceContext; import java.io.IOException; -import java.lang.System.Logger.Level; import java.util.*; +import static java.lang.System.Logger.Level.*; + /** * Helper for BeanDescriptor that manages the bean, query and collection caches. * @@ -104,10 +105,10 @@ final class BeanDescriptorCacheHelp { void deriveNotifyFlags() { cacheNotifyOnAll = (invalidateQueryCache || beanCache != null || queryCache != null); cacheNotifyOnDelete = !cacheNotifyOnAll && isNotifyOnDeletes(); - if (log.isLoggable(Level.DEBUG)) { + if (log.isLoggable(DEBUG)) { if (cacheNotifyOnAll || cacheNotifyOnDelete) { String notifyMode = cacheNotifyOnAll ? "All" : "Delete"; - log.log(Level.DEBUG, "l2 caching on {0} - beanCaching:{1} queryCaching:{2} notifyMode:{3} ", + log.log(DEBUG, "l2 caching on {0} - beanCaching:{1} queryCaching:{2} notifyMode:{3} ", desc.fullName(), isBeanCaching(), isQueryCaching(), notifyMode); } } @@ -178,8 +179,8 @@ final class BeanDescriptorCacheHelp { */ void queryCacheClear() { if (queryCache != null) { - if (queryLog.isLoggable(Level.DEBUG)) { - queryLog.log(Level.DEBUG, " CLEAR {0}", cacheName); + if (queryLog.isLoggable(DEBUG)) { + queryLog.log(DEBUG, " CLEAR {0}", cacheName); } queryCache.clear(); } @@ -202,11 +203,11 @@ final class BeanDescriptorCacheHelp { throw new IllegalStateException("No query cache enabled on " + desc + ". Need explicit @Cache(enableQueryCache=true)"); } Object queryResult = queryCache.get(id); - if (queryLog.isLoggable(Level.DEBUG)) { + if (queryLog.isLoggable(DEBUG)) { if (queryResult == null) { - queryLog.log(Level.DEBUG, " GET {0}({1}) - cache miss", cacheName, id); + queryLog.log(DEBUG, " GET {0}({1}) - cache miss", cacheName, id); } else { - queryLog.log(Level.DEBUG, " GET {0}({1}) - hit", cacheName, id); + queryLog.log(DEBUG, " GET {0}({1}) - hit", cacheName, id); } } return queryResult; @@ -219,8 +220,8 @@ final class BeanDescriptorCacheHelp { if (queryCache == null) { throw new IllegalStateException("No query cache enabled on " + desc + ". Need explicit @Cache(enableQueryCache=true)"); } - if (queryLog.isLoggable(Level.DEBUG)) { - queryLog.log(Level.DEBUG, " PUT {0}({1})", cacheName, id); + if (queryLog.isLoggable(DEBUG)) { + queryLog.log(DEBUG, " PUT {0}({1})", cacheName, id); } queryCache.put(id, entry); } @@ -228,16 +229,16 @@ final class BeanDescriptorCacheHelp { void manyPropRemove(String propertyName, Object parentId) { ServerCache collectionIdsCache = cacheManager.getCollectionIdsCache(beanType, propertyName); - if (manyLog.isLoggable(Level.TRACE)) { - manyLog.log(Level.TRACE, " REMOVE {0}({1}).{2}", cacheName, parentId, propertyName); + if (manyLog.isLoggable(TRACE)) { + manyLog.log(TRACE, " REMOVE {0}({1}).{2}", cacheName, parentId, propertyName); } collectionIdsCache.remove(parentId); } void manyPropClear(String propertyName) { ServerCache collectionIdsCache = cacheManager.getCollectionIdsCache(beanType, propertyName); - if (manyLog.isLoggable(Level.DEBUG)) { - manyLog.log(Level.DEBUG, " CLEAR {0}(*).{1} ", cacheName, propertyName); + if (manyLog.isLoggable(DEBUG)) { + manyLog.log(DEBUG, " CLEAR {0}(*).{1} ", cacheName, propertyName); } collectionIdsCache.clear(); } @@ -249,11 +250,11 @@ final class BeanDescriptorCacheHelp { ServerCache collectionIdsCache = cacheManager.getCollectionIdsCache(beanType, propertyName); CachedManyIds entry = (CachedManyIds) collectionIdsCache.get(parentId); if (entry == null) { - if (manyLog.isLoggable(Level.TRACE)) { - manyLog.log(Level.TRACE, " GET {0}({1}).{2} - cache miss", cacheName, parentId, propertyName); + if (manyLog.isLoggable(TRACE)) { + manyLog.log(TRACE, " GET {0}({1}).{2} - cache miss", cacheName, parentId, propertyName); } - } else if (manyLog.isLoggable(Level.DEBUG)) { - manyLog.log(Level.DEBUG, " GET {0}({1}).{2} - hit", cacheName, parentId, propertyName); + } else if (manyLog.isLoggable(DEBUG)) { + manyLog.log(DEBUG, " GET {0}({1}).{2} - hit", cacheName, parentId, propertyName); } return entry; } @@ -303,12 +304,12 @@ final class BeanDescriptorCacheHelp { changes.put(many.name(), asJson); CachedBeanData newData = data.update(changes, data.getVersion()); - if (beanLog.isLoggable(Level.DEBUG)) { - beanLog.log(Level.DEBUG, " UPDATE {0}({1}) changes:{2}", cacheName, parentId, changes); + if (beanLog.isLoggable(DEBUG)) { + beanLog.log(DEBUG, " UPDATE {0}({1}) changes:{2}", cacheName, parentId, changes); } beanCache.put(parentId, newData); } catch (IOException e) { - log.log(Level.ERROR, "Error updating L2 cache", e); + log.log(ERROR, "Error updating L2 cache", e); } } } else { @@ -321,8 +322,8 @@ final class BeanDescriptorCacheHelp { void cachePutManyIds(Object parentId, String manyName, CachedManyIds entry) { ServerCache collectionIdsCache = cacheManager.getCollectionIdsCache(beanType, manyName); - if (manyLog.isLoggable(Level.DEBUG)) { - manyLog.log(Level.DEBUG, " PUT {0}({1}).{2} - ids:{3}", cacheName, parentId, manyName, entry); + if (manyLog.isLoggable(DEBUG)) { + manyLog.log(DEBUG, " PUT {0}({1}).{2} - ids:{3}", cacheName, parentId, manyName, entry); } collectionIdsCache.put(parentId, entry); } @@ -353,8 +354,8 @@ final class BeanDescriptorCacheHelp { return new BeanCacheResult<>(); } Map beanDataMap = beanCache.getAll(keys); - if (beanLog.isLoggable(Level.TRACE)) { - beanLog.log(Level.TRACE, " MGET {0}({1}) - hits:{2}", cacheName, ids, beanDataMap.keySet()); + if (beanLog.isLoggable(TRACE)) { + beanLog.log(TRACE, " MGET {0}({1}) - hits:{2}", cacheName, ids, beanDataMap.keySet()); } BeanCacheResult result = new BeanCacheResult<>(); for (Map.Entry entry : beanDataMap.entrySet()) { @@ -375,8 +376,8 @@ final class BeanDescriptorCacheHelp { // naturalKey -> Id map Map naturalKeyMap = naturalKeyCache.getAll(keys); - if (natLog.isLoggable(Level.TRACE)) { - natLog.log(Level.TRACE, " MLOOKUP {0}({1}) - hits:{2}", cacheName, keys, naturalKeyMap); + if (natLog.isLoggable(TRACE)) { + natLog.log(TRACE, " MLOOKUP {0}({1}) - hits:{2}", cacheName, keys, naturalKeyMap); } BeanCacheResult result = new BeanCacheResult<>(); @@ -392,8 +393,8 @@ final class BeanDescriptorCacheHelp { Set ids = new HashSet<>(naturalKeyMap.values()); Map beanDataMap = beanCache.getAll(ids); - if (beanLog.isLoggable(Level.TRACE)) { - beanLog.log(Level.TRACE, " MGET {0}({1}) - hits:{2}", cacheName, ids, beanDataMap.keySet()); + if (beanLog.isLoggable(TRACE)) { + beanLog.log(TRACE, " MGET {0}({1}) - hits:{2}", cacheName, ids, beanDataMap.keySet()); } // process the hits into beans etc for (Map.Entry entry : beanDataMap.entrySet()) { @@ -437,8 +438,8 @@ final class BeanDescriptorCacheHelp { */ void beanCacheClear() { if (beanCache != null) { - if (beanLog.isLoggable(Level.DEBUG)) { - beanLog.log(Level.DEBUG, " CLEAR {0}", cacheName); + if (beanLog.isLoggable(DEBUG)) { + beanLog.log(DEBUG, " CLEAR {0}", cacheName); } beanCache.clear(); } @@ -507,14 +508,14 @@ final class BeanDescriptorCacheHelp { } } } - if (beanLog.isLoggable(Level.DEBUG)) { - beanLog.log(Level.DEBUG, " MPUT {0}({1})", cacheName, map.keySet()); + if (beanLog.isLoggable(DEBUG)) { + beanLog.log(DEBUG, " MPUT {0}({1})", cacheName, map.keySet()); } getBeanCache().putAll(map); if (natKeys != null && !natKeys.isEmpty()) { - if (natLog.isLoggable(Level.DEBUG)) { - natLog.log(Level.DEBUG, " MPUT {0}({1}, {2})", cacheName, naturalKey, natKeys.keySet()); + if (natLog.isLoggable(DEBUG)) { + natLog.log(DEBUG, " MPUT {0}({1}, {2})", cacheName, naturalKey, natKeys.keySet()); } naturalKeyCache.putAll(natKeys); } @@ -526,15 +527,15 @@ final class BeanDescriptorCacheHelp { void beanCachePutDirect(EntityBean bean) { CachedBeanData beanData = beanExtractData(desc, bean); String key = desc.cacheKeyForBean(bean); - if (beanLog.isLoggable(Level.DEBUG)) { - beanLog.log(Level.DEBUG, " PUT {0}({1}) data:{2}", cacheName, key, beanData); + if (beanLog.isLoggable(DEBUG)) { + beanLog.log(DEBUG, " PUT {0}({1}) data:{2}", cacheName, key, beanData); } getBeanCache().put(key, beanData); if (naturalKey != null) { String naturalKey = calculateNaturalKey(beanData); if (naturalKey != null) { - if (natLog.isLoggable(Level.DEBUG)) { - natLog.log(Level.DEBUG, " PUT {0}({1}, {2})", cacheName, naturalKey, key); + if (natLog.isLoggable(DEBUG)) { + natLog.log(DEBUG, " PUT {0}({1}, {2})", cacheName, naturalKey, key); } naturalKeyCache.put(naturalKey, key); } @@ -575,13 +576,13 @@ final class BeanDescriptorCacheHelp { private T beanCacheGetInternal(String key, Boolean readOnly, PersistenceContext context) { CachedBeanData data = (CachedBeanData) getBeanCache().get(key); if (data == null) { - if (beanLog.isLoggable(Level.TRACE)) { - beanLog.log(Level.TRACE, " GET {0}({1}) - cache miss", cacheName, key); + if (beanLog.isLoggable(TRACE)) { + beanLog.log(TRACE, " GET {0}({1}) - cache miss", cacheName, key); } return null; } - if (beanLog.isLoggable(Level.TRACE)) { - beanLog.log(Level.TRACE, " GET {0}({1}) - hit", cacheName, key); + if (beanLog.isLoggable(TRACE)) { + beanLog.log(TRACE, " GET {0}({1}) - hit", cacheName, key); } return convertToBean(key, readOnly, context, data); } @@ -591,8 +592,8 @@ final class BeanDescriptorCacheHelp { if (cacheSharableBeans && !Boolean.FALSE.equals(readOnly)) { Object bean = data.getSharableBean(); if (bean != null) { - if (beanLog.isLoggable(Level.TRACE)) { - beanLog.log(Level.TRACE, " GET {0}({1}) - hit shared bean", cacheName, id); + if (beanLog.isLoggable(TRACE)) { + beanLog.log(TRACE, " GET {0}({1}) - hit shared bean", cacheName, id); } if (desc.isReadAuditing()) { desc.readAuditBean("l2", "", bean); @@ -680,8 +681,8 @@ final class BeanDescriptorCacheHelp { */ void beanCacheApplyInvalidate(Collection keys) { if (beanCache != null) { - if (beanLog.isLoggable(Level.DEBUG)) { - beanLog.log(Level.DEBUG, " MREMOVE {0}({1})", cacheName, keys); + if (beanLog.isLoggable(DEBUG)) { + beanLog.log(DEBUG, " MREMOVE {0}({1})", cacheName, keys); } beanCache.removeAll(new HashSet<>(keys)); } @@ -700,8 +701,8 @@ final class BeanDescriptorCacheHelp { } Map hits = getBeanCache().getAll(ebis.keySet()); - if (beanLog.isLoggable(Level.TRACE)) { - beanLog.log(Level.TRACE, " MLOAD {0}({1}) - got hits ({2})", cacheName, ebis.keySet(), hits.size()); + if (beanLog.isLoggable(TRACE)) { + beanLog.log(TRACE, " MLOAD {0}({1}) - got hits ({2})", cacheName, ebis.keySet(), hits.size()); } Set loaded = new HashSet<>(); @@ -713,19 +714,19 @@ final class BeanDescriptorCacheHelp { CachedBeanData cacheData = (CachedBeanData) hit.getValue(); if (lazyLoadProperty > -1 && !cacheData.isLoaded(propertyName)) { - if (beanLog.isLoggable(Level.TRACE)) { - beanLog.log(Level.TRACE, " load {0}({1}) - cache miss on property({2})", cacheName, key, propertyName); + if (beanLog.isLoggable(TRACE)) { + beanLog.log(TRACE, " load {0}({1}) - cache miss on property({2})", cacheName, key, propertyName); } } else { CachedBeanDataToBean.load(desc, ebi.getOwner(), cacheData, context); loaded.add(ebi); - if (beanLog.isLoggable(Level.DEBUG)) { - beanLog.log(Level.DEBUG, " load {0}({1}) - hit", cacheName, key); + if (beanLog.isLoggable(DEBUG)) { + beanLog.log(DEBUG, " load {0}({1}) - hit", cacheName, key); } } } - if (!ebis.isEmpty() && beanLog.isLoggable(Level.TRACE)) { - beanLog.log(Level.TRACE, " load {0}({1}) - cache miss", cacheName, ebis.keySet()); + if (!ebis.isEmpty() && beanLog.isLoggable(TRACE)) { + beanLog.log(TRACE, " load {0}({1}) - cache miss", cacheName, ebis.keySet()); } return loaded; } @@ -736,21 +737,21 @@ final class BeanDescriptorCacheHelp { boolean beanCacheLoad(EntityBean bean, EntityBeanIntercept ebi, String key, PersistenceContext context) { CachedBeanData cacheData = (CachedBeanData) getBeanCache().get(key); if (cacheData == null) { - if (beanLog.isLoggable(Level.TRACE)) { - beanLog.log(Level.TRACE, " LOAD {0}({1}) - cache miss", cacheName, key); + if (beanLog.isLoggable(TRACE)) { + beanLog.log(TRACE, " LOAD {0}({1}) - cache miss", cacheName, key); } return false; } int lazyLoadProperty = ebi.getLazyLoadPropertyIndex(); if (lazyLoadProperty > -1 && !cacheData.isLoaded(ebi.getLazyLoadProperty())) { - if (beanLog.isLoggable(Level.TRACE)) { - beanLog.log(Level.TRACE, " LOAD {0}({1}) - cache miss on property({2})", cacheName, key, ebi.getLazyLoadProperty()); + if (beanLog.isLoggable(TRACE)) { + beanLog.log(TRACE, " LOAD {0}({1}) - cache miss on property({2})", cacheName, key, ebi.getLazyLoadProperty()); } return false; } CachedBeanDataToBean.load(desc, bean, cacheData, context); - if (beanLog.isLoggable(Level.DEBUG)) { - beanLog.log(Level.DEBUG, " LOAD {0}({1}) - hit", cacheName, key); + if (beanLog.isLoggable(DEBUG)) { + beanLog.log(DEBUG, " LOAD {0}({1}) - hit", cacheName, key); } return true; } @@ -874,8 +875,8 @@ final class BeanDescriptorCacheHelp { if (existingData != null) { long currentVersion = existingData.getVersion(); if (version > 0 && version < currentVersion) { - if (beanLog.isLoggable(Level.DEBUG)) { - beanLog.log(Level.DEBUG, " REMOVE {0}({1}) - version conflict old:{2} new:{3}", cacheName, key, currentVersion, version); + if (beanLog.isLoggable(DEBUG)) { + beanLog.log(DEBUG, " REMOVE {0}({1}) - version conflict old:{2} new:{3}", cacheName, key, currentVersion, version); } cache.remove(key); } else { @@ -883,16 +884,16 @@ final class BeanDescriptorCacheHelp { version = currentVersion; } CachedBeanData newData = existingData.update(changes, version); - if (beanLog.isLoggable(Level.DEBUG)) { - beanLog.log(Level.DEBUG, " UPDATE {0}({1}) changes:{2}", cacheName, key, changes); + if (beanLog.isLoggable(DEBUG)) { + beanLog.log(DEBUG, " UPDATE {0}({1}) changes:{2}", cacheName, key, changes); } cache.put(key, newData); } if (updateNaturalKey) { Object oldKey = calculateNaturalKey(existingData); if (oldKey != null) { - if (natLog.isLoggable(Level.DEBUG)) { - natLog.log(Level.DEBUG, ".. update {0} REMOVE({1}) - old key for ({2})", cacheName, oldKey, key); + if (natLog.isLoggable(DEBUG)) { + natLog.log(DEBUG, ".. update {0} REMOVE({1}) - old key for ({2})", cacheName, oldKey, key); } naturalKeyCache.remove(oldKey); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java index 0074b550a..bfdc4cd17 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java @@ -47,12 +47,13 @@ import javax.persistence.PersistenceException; import javax.persistence.Transient; import javax.sql.DataSource; import java.io.Serializable; -import java.lang.System.Logger.Level; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.*; import java.util.concurrent.TimeUnit; +import static java.lang.System.Logger.Level.*; + /** * Creates BeanDescriptors. */ @@ -309,7 +310,7 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy } catch (BeanNotEnhancedException e) { throw e; } catch (RuntimeException e) { - log.log(Level.ERROR, "Error in deployment", e); + log.log(ERROR, "Error in deployment", e); throw e; } } @@ -332,13 +333,13 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy try { entityClass = Class.forName(entityClassName, false, classLoader); } catch (Exception e) { - log.log(Level.ERROR, "Could not load entity bean class " + entityClassName + " for ebean.xml entry"); + log.log(ERROR, "Could not load entity bean class " + entityClassName + " for ebean.xml entry"); return; } DeployBeanInfo info = deployInfoMap.get(entityClass); if (info == null) { - log.log(Level.ERROR, "No entity bean for ebean.xml entry " + entityClassName); + log.log(ERROR, "No entity bean for ebean.xml entry " + entityClassName); } else { for (XmapRawSql sql : entityDeploy.getRawSql()) { @@ -601,11 +602,11 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy int pc = postConstructManager.getRegisterCount(); int lc = persistListenerManager.getRegisterCount(); int fc = beanFinderManager.getRegisterCount(); - log.log(Level.DEBUG, "BeanPersistControllers[{0}] BeanFinders[{1}] BeanPersistListeners[{2}] BeanQueryAdapters[{3}] BeanPostLoaders[{4}] BeanPostConstructors[{5}]", cc, fc, lc, qa, pl, pc); + log.log(DEBUG, "BeanPersistControllers[{0}] BeanFinders[{1}] BeanPersistListeners[{2}] BeanQueryAdapters[{3}] BeanPostLoaders[{4}] BeanPostConstructors[{5}]", cc, fc, lc, qa, pl, pc); } private void logStatus() { - log.log(Level.DEBUG, "Entities[{0}]", entityBeanCount); + log.log(DEBUG, "Entities[{0}]", entityBeanCount); } /** @@ -867,10 +868,10 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy if (possibleLower.contains(searchName)) { // we have a match prop.setMappedBy(possibleMappedBy); - if (log.isLoggable(Level.DEBUG)) { + if (log.isLoggable(DEBUG)) { String m = "Implicitly found mappedBy for " + targetDesc + "." + prop; m += " by searching for [" + searchName + "] against " + matchSet; - log.log(Level.DEBUG, m); + log.log(DEBUG, m); } return true; } @@ -1207,12 +1208,12 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy final DeployIdentityMode identityMode = desc.getIdentityMode(); if (identityMode.isSequence() && !dbIdentity.isSupportsSequence()) { // explicit sequence but not supported by the DatabasePlatform - log.log(Level.INFO, "Explicit sequence on {0} but not supported by DB Platform - ignored", desc.getFullName()); + log.log(INFO, "Explicit sequence on {0} but not supported by DB Platform - ignored", desc.getFullName()); identityMode.setIdType(IdType.AUTO); } if (identityMode.isIdentity() && !dbIdentity.isSupportsIdentity()) { // explicit identity but not supported by the DatabasePlatform - log.log(Level.INFO, "Explicit Identity on {0} but not supported by DB Platform - ignored", desc.getFullName()); + log.log(INFO, "Explicit Identity on {0} but not supported by DB Platform - ignored", desc.getFullName()); identityMode.setIdType(IdType.AUTO); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java index a119ddb90..2133ef767 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java @@ -44,7 +44,6 @@ import javax.persistence.PersistenceException; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; -import java.lang.System.Logger.Level; import java.lang.reflect.Field; import java.sql.SQLException; import java.sql.Types; @@ -52,6 +51,8 @@ import java.util.List; import java.util.Map; import java.util.Set; +import static java.lang.System.Logger.Level.ERROR; + /** * Description of a property of a bean. Includes its deployment information such * as database column mapping information. @@ -1434,7 +1435,7 @@ public class BeanProperty implements ElPropertyValue, Property, STreeProperty { objValue = null; String msg = "Error trying to use Jackson ObjectMapper to read transient property " + fullName() + " - consider marking this property with @JsonIgnore"; - CoreLog.log.log(Level.ERROR, msg, e); + CoreLog.log.log(ERROR, msg, e); } } if (jsonDeserialize) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssoc.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssoc.java index c2bd2bb4d..d98f6d849 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssoc.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssoc.java @@ -27,10 +27,11 @@ import io.ebeanservice.docstore.api.mapping.DocPropertyMapping; import io.ebeanservice.docstore.api.support.DocStructure; import javax.persistence.PersistenceException; -import java.lang.System.Logger.Level; import java.util.ArrayList; import java.util.List; +import static java.lang.System.Logger.Level.ERROR; + /** * Abstract base for properties mapped to an associated bean, list, set or map. */ @@ -433,7 +434,7 @@ public abstract class BeanPropertyAssoc extends BeanProperty implements STree if (!idProp.isEmbedded()) { // simple single scalar id if (cols.length != 1) { - CoreLog.log.log(Level.ERROR, "No Imported Id column for [" + idProp + "] in table [" + join.getTable() + "]"); + CoreLog.log.log(ERROR, "No Imported Id column for [" + idProp + "] in table [" + join.getTable() + "]"); return null; } else { BeanProperty[] idProps = {idProp}; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java index fab75feea..a96ea496e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocMany.java @@ -24,9 +24,10 @@ import io.ebeaninternal.server.query.SqlBeanLoad; import javax.persistence.PersistenceException; import java.io.IOException; import java.io.StringWriter; -import java.lang.System.Logger.Level; import java.util.*; +import static java.lang.System.Logger.Level.ERROR; + /** * Property mapped to a List Set or Map. */ @@ -668,7 +669,7 @@ public class BeanPropertyAssocMany extends BeanPropertyAssoc implements ST } } catch (PersistenceException e) { // not found as individual scalar properties - CoreLog.log.log(Level.ERROR, "Could not find a exported property?", e); + CoreLog.log.log(ERROR, "Could not find a exported property?", e); } } else { if (idProp != null) { @@ -963,7 +964,7 @@ public class BeanPropertyAssocMany extends BeanPropertyAssoc implements ST setValue(bean, collection); } } catch (Exception e) { - CoreLog.log.log(Level.ERROR, "Error setting value from L2 cache", e); + CoreLog.log.log(ERROR, "Error setting value from L2 cache", e); } } @@ -976,7 +977,7 @@ public class BeanPropertyAssocMany extends BeanPropertyAssoc implements ST } return jsonWriteCollection(collection); } catch (Exception e) { - CoreLog.log.log(Level.ERROR, "Error building value element collection json for L2 cache", e); + CoreLog.log.log(ERROR, "Error building value element collection json for L2 cache", e); return null; } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanTable.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanTable.java index 80bed8585..0cc2f6ccf 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanTable.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanTable.java @@ -6,7 +6,7 @@ import io.ebeaninternal.server.deploy.meta.DeployBeanTable; import io.ebeaninternal.server.deploy.meta.DeployTableJoin; import io.ebeaninternal.server.deploy.meta.DeployTableJoinColumn; -import java.lang.System.Logger.Level; +import static java.lang.System.Logger.Level.DEBUG; /** @@ -107,7 +107,7 @@ public final class BeanTable { if (complexKey) { // just to copy the column name rather than prefix with the foreignKeyPrefix. // I think that with complex keys this is the more common approach. - CoreLog.internal.log(Level.DEBUG, "On table[{0}] foreign key column [{1}]", baseTable, lc); + CoreLog.internal.log(DEBUG, "On table[{0}] foreign key column [{1}]", baseTable, lc); fk = lc; } if (sqlFormulaSelect != null) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java index e37d9ea40..598962fcf 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocOnes.java @@ -15,7 +15,8 @@ import io.ebeaninternal.server.deploy.meta.DeployTableJoinColumn; import io.ebeaninternal.server.query.SqlJoinType; import javax.persistence.*; -import java.lang.System.Logger.Level; + +import static java.lang.System.Logger.Level.INFO; /** * Read the deployment annotations for Associated One beans. @@ -214,10 +215,10 @@ final class AnnotationAssocOnes extends AnnotationAssoc { prop.setPrimaryKeyJoin(true); if (!primaryKeyJoin.name().isEmpty()) { - CoreLog.internal.log(Level.INFO, "Automatically determining join columns for @PrimaryKeyJoinColumn - ignoring PrimaryKeyJoinColumn.name attribute [{0}] on {1}", primaryKeyJoin.name(), prop.getFullBeanName()); + CoreLog.internal.log(INFO, "Automatically determining join columns for @PrimaryKeyJoinColumn - ignoring PrimaryKeyJoinColumn.name attribute [{0}] on {1}", primaryKeyJoin.name(), prop.getFullBeanName()); } if (!primaryKeyJoin.referencedColumnName().isEmpty()) { - CoreLog.internal.log(Level.INFO, "Automatically determining join columns for @PrimaryKeyJoinColumn - Ignoring PrimaryKeyJoinColumn.referencedColumnName attribute [{0}] on {1}", primaryKeyJoin.referencedColumnName(), prop.getFullBeanName()); + CoreLog.internal.log(INFO, "Automatically determining join columns for @PrimaryKeyJoinColumn - Ignoring PrimaryKeyJoinColumn.referencedColumnName attribute [{0}] on {1}", primaryKeyJoin.referencedColumnName(), prop.getFullBeanName()); } BeanTable baseBeanTable = factory.beanTable(info.getDescriptor().getBeanType()); String localPrimaryKey = baseBeanTable.getIdColumn(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationClass.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationClass.java index 36fdc915f..662b73be8 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationClass.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationClass.java @@ -1,19 +1,7 @@ package io.ebeaninternal.server.deploy.parse; -import io.ebean.annotation.Cache; -import io.ebean.annotation.DbComment; -import io.ebean.annotation.DbPartition; -import io.ebean.annotation.DocStore; -import io.ebean.annotation.Draftable; -import io.ebean.annotation.DraftableElement; -import io.ebean.annotation.History; -import io.ebean.annotation.Identity; import io.ebean.annotation.Index; -import io.ebean.annotation.InvalidateQueryCache; -import io.ebean.annotation.ReadAudit; -import io.ebean.annotation.StorageEngine; -import io.ebean.annotation.Tablespace; -import io.ebean.annotation.View; +import io.ebean.annotation.*; import io.ebean.config.TableName; import io.ebeaninternal.api.CoreLog; import io.ebeaninternal.server.deploy.BeanDescriptor.EntityType; @@ -23,18 +11,10 @@ import io.ebeaninternal.server.deploy.PartitionMeta; import io.ebeaninternal.server.deploy.TablespaceMeta; import io.ebeaninternal.server.deploy.meta.DeployBeanProperty; -import javax.persistence.AttributeOverride; -import javax.persistence.Column; -import javax.persistence.Embeddable; -import javax.persistence.Entity; -import javax.persistence.IdClass; -import javax.persistence.NamedQuery; -import javax.persistence.Table; -import javax.persistence.UniqueConstraint; - -import java.lang.System.Logger.Level; +import javax.persistence.*; import static io.ebean.util.AnnotationUtil.typeGet; +import static java.lang.System.Logger.Level.ERROR; /** * Read the class level deployment annotations. @@ -67,7 +47,7 @@ final class AnnotationClass extends AnnotationParser { Column column = override.column(); DeployBeanProperty beanProperty = descriptor.getBeanProperty(propertyName); if (beanProperty == null) { - CoreLog.log.log(Level.ERROR, "AttributeOverride property [" + propertyName + "] not found on " + descriptor.getFullName()); + CoreLog.log.log(ERROR, "AttributeOverride property [" + propertyName + "] not found on " + descriptor.getFullName()); } else { readColumn(column, beanProperty); } 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 14579b621..cab048376 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 @@ -11,9 +11,10 @@ import io.ebeaninternal.server.type.TypeManager; import javax.persistence.PersistenceException; import javax.persistence.Transient; -import java.lang.System.Logger.Level; import java.lang.reflect.*; +import static java.lang.System.Logger.Level.*; + /** * Create the properties for a bean. *

@@ -85,7 +86,7 @@ public final class DeployCreateProperties { if (replaced != null && !replaced.isTransient()) { String msg = "Huh??? property " + prop.getFullBeanName() + " being defined twice"; msg += " but replaced property was not transient? This is not expected?"; - CoreLog.log.log(Level.WARNING, msg); + CoreLog.log.log(WARNING, msg); } } } @@ -112,7 +113,7 @@ public final class DeployCreateProperties { return new DeployBeanPropertySimpleCollection(desc, targetType, manyType); } } catch (NullPointerException e) { - CoreLog.internal.log(Level.DEBUG, "expected non-scalar type {0}", e.getMessage()); + CoreLog.internal.log(DEBUG, "expected non-scalar type {0}", e.getMessage()); } return new DeployBeanPropertyAssocMany(desc, targetType, manyType); } @@ -133,7 +134,7 @@ public final class DeployCreateProperties { // not supporting this field (generic type used) return null; } - CoreLog.internal.log(Level.WARNING, "Could not find parameter type (via reflection) on " + desc.getFullName() + " " + field.getName()); + CoreLog.internal.log(WARNING, "Could not find parameter type (via reflection) on " + desc.getFullName() + " " + field.getName()); } return createManyType(desc, targetType, manyType); } @@ -152,7 +153,7 @@ public final class DeployCreateProperties { return new DeployBeanPropertyAssocOne(desc, propertyType); } catch (Exception e) { - CoreLog.log.log(Level.ERROR, "Error with " + desc + " field:" + field.getName(), e); + CoreLog.log.log(ERROR, "Error with " + desc + " field:" + field.getName(), e); return null; } } 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 454bc65e1..67f4d9912 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 @@ -3,13 +3,14 @@ package io.ebeaninternal.server.dto; import io.ebeaninternal.api.CoreLog; import io.ebeaninternal.server.type.TypeManager; -import java.lang.System.Logger.Level; import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.List; +import static java.lang.System.Logger.Level.DEBUG; + /** * Build the DtoMeta for a bean. *

@@ -40,7 +41,7 @@ final class DtoMetaBuilder { final String name = propertyName(method.getName()); properties.add(new DtoMetaProperty(typeManager, dtoType, method, name)); } catch (Exception e) { - CoreLog.log.log(Level.DEBUG, "exclude on " + dtoType + " method " + method, e); + CoreLog.log.log(DEBUG, "exclude on " + dtoType + " method " + method, e); } } } @@ -78,7 +79,7 @@ final class DtoMetaBuilder { constructorList.add(new DtoMetaConstructor(typeManager, constructor, dtoType)); } catch (Exception e) { // we don't want that constructor - CoreLog.log.log(Level.DEBUG, "exclude on " + dtoType + " constructor " + constructor, e); + CoreLog.log.log(DEBUG, "exclude on " + dtoType + " constructor " + constructor, e); } } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonExecutorService.java b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonExecutorService.java index de9b959ef..ea7ce58e4 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonExecutorService.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonExecutorService.java @@ -2,10 +2,11 @@ package io.ebeaninternal.server.executor; import io.avaje.applog.AppLog; -import java.lang.System.Logger.Level; import java.util.concurrent.*; import java.util.concurrent.locks.ReentrantLock; +import static java.lang.System.Logger.Level.*; + /** * A "CachedThreadPool" based on Daemon threads. *

@@ -43,19 +44,19 @@ final class DaemonExecutorService { lock.lock(); try { if (service.isShutdown()) { - logger.log(Level.DEBUG, "DaemonExecutorService[{0}] already shut down", namePrefix); + logger.log(DEBUG, "DaemonExecutorService[{0}] already shut down", namePrefix); return; } try { - logger.log(Level.DEBUG, "DaemonExecutorService[{0}] shutting down...", namePrefix); + logger.log(DEBUG, "DaemonExecutorService[{0}] shutting down...", namePrefix); service.shutdown(); if (!service.awaitTermination(shutdownWaitSeconds, TimeUnit.SECONDS)) { - logger.log(Level.INFO, "DaemonExecutorService[{0}] shut down timeout exceeded. Terminating running threads.", namePrefix); + logger.log(INFO, "DaemonExecutorService[{0}] shut down timeout exceeded. Terminating running threads.", namePrefix); service.shutdownNow(); } } catch (Exception e) { - logger.log(Level.ERROR, "Error during shutdown of DaemonThreadPool[" + namePrefix + "]", e); + logger.log(ERROR, "Error during shutdown of DaemonThreadPool[" + namePrefix + "]", e); e.printStackTrace(); } } finally { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonScheduleThreadPool.java b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonScheduleThreadPool.java index 1a7c23b3e..1dd961c6c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonScheduleThreadPool.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DaemonScheduleThreadPool.java @@ -2,11 +2,12 @@ package io.ebeaninternal.server.executor; import io.ebeaninternal.api.CoreLog; -import java.lang.System.Logger.Level; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; +import static java.lang.System.Logger.Level.*; + /** * Daemon based ScheduleThreadPool. */ @@ -38,19 +39,19 @@ public final class DaemonScheduleThreadPool extends ScheduledThreadPoolExecutor lock.lock(); try { if (super.isShutdown()) { - log.log(Level.DEBUG, "Already shutdown threadPool {0}", namePrefix); + log.log(DEBUG, "Already shutdown threadPool {0}", namePrefix); return; } try { - log.log(Level.TRACE, "shutting down threadPool {0}", namePrefix); + log.log(TRACE, "shutting down threadPool {0}", namePrefix); super.shutdown(); if (!super.awaitTermination(shutdownWaitSeconds, TimeUnit.SECONDS)) { - log.log(Level.INFO, "Shutdown wait timeout exceeded. Terminating running threads for {0}", namePrefix); + log.log(INFO, "Shutdown wait timeout exceeded. Terminating running threads for {0}", namePrefix); super.shutdownNow(); } - log.log(Level.TRACE, "shutdown complete for threadPool {0}", namePrefix); + log.log(TRACE, "shutdown complete for threadPool {0}", namePrefix); } catch (Exception e) { - log.log(Level.ERROR, "Error during shutdown of threadPool " + namePrefix, e); + log.log(ERROR, "Error during shutdown of threadPool " + namePrefix, e); e.printStackTrace(); } } finally { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java index ce0254a22..f134f9da7 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/executor/DefaultBackgroundExecutor.java @@ -5,9 +5,10 @@ import io.avaje.lang.NonNullApi; import io.ebean.config.BackgroundExecutorWrapper; import io.ebeaninternal.api.SpiBackgroundExecutor; -import java.lang.System.Logger.Level; import java.util.concurrent.*; +import static java.lang.System.Logger.Level.*; + /** * The default implementation of the BackgroundExecutor. */ @@ -27,7 +28,7 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { this.schedulePool = new DaemonScheduleThreadPool(schedulePoolSize, shutdownWaitSeconds, namePrefix + "-periodic-"); this.pool = new DaemonExecutorService(shutdownWaitSeconds, namePrefix); this.wrapper = wrapper; - log.log(Level.DEBUG, "Created backgroundExecutor {0} (schedulePoolSize={1}, shutdownWaitSeconds={2})", namePrefix, schedulePoolSize, shutdownWaitSeconds); + log.log(DEBUG, "Created backgroundExecutor {0} (schedulePoolSize={1}, shutdownWaitSeconds={2})", namePrefix, schedulePoolSize, shutdownWaitSeconds); } /** @@ -64,14 +65,14 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { */ private Runnable logExceptions(Runnable task) { long queued = System.nanoTime(); - log.log(Level.TRACE, "Queued {0}", task); + log.log(TRACE, "Queued {0}", task); return () -> { try { - if (log.isLoggable(Level.TRACE)) { + if (log.isLoggable(TRACE)) { long start = System.nanoTime(); - log.log(Level.TRACE, "Start {0} (delay time {1} us)", task, (start - queued) / 1000L); + log.log(TRACE, "Start {0} (delay time {1} us)", task, (start - queued) / 1000L); task.run(); - log.log(Level.TRACE, "Stop {0} (exec time {1} us)", task, (System.nanoTime() - start) / 1000L); + log.log(TRACE, "Stop {0} (exec time {1} us)", task, (System.nanoTime() - start) / 1000L); } else { task.run(); } @@ -79,7 +80,7 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { // log any exception here. Note they will not bubble up to the calling user // unless Future.get() is checked. (Which is almost never done on scheduled // background executions) - log.log(Level.ERROR, "Error while executing the task " + task, t); + log.log(ERROR, "Error while executing the task " + task, t); throw t; } }; @@ -127,10 +128,10 @@ public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor { @Override public void shutdown() { - log.log(Level.TRACE, "BackgroundExecutor shutting down"); + log.log(TRACE, "BackgroundExecutor shutting down"); schedulePool.shutdown(); pool.shutdown(); - log.log(Level.DEBUG, "BackgroundExecutor stopped"); + log.log(DEBUG, "BackgroundExecutor stopped"); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/idgen/UuidV1IdGenerator.java b/ebean-core/src/main/java/io/ebeaninternal/server/idgen/UuidV1IdGenerator.java index c7ae7e0d3..d17a8385d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/idgen/UuidV1IdGenerator.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/idgen/UuidV1IdGenerator.java @@ -1,12 +1,13 @@ package io.ebeaninternal.server.idgen; import java.io.*; -import java.lang.System.Logger.Level; import java.net.NetworkInterface; import java.net.SocketException; import java.util.*; import java.util.concurrent.ConcurrentHashMap; +import static java.lang.System.Logger.Level.*; + /** * IdGenerator for java util UUID. *

@@ -82,7 +83,7 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { } } } catch (SocketException ex) { - log.log(Level.DEBUG, "Skipping " + network, ex); + log.log(DEBUG, "Skipping " + network, ex); } } return fallbackAddr; @@ -119,7 +120,7 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { // See, if there is an alternative MAC address set. nodeId = parseAlternativeNodeId(altNodeId); restoreState(); - log.log(Level.INFO, "Explicitly using ID {0} to generate Type 1 UUIDs", getNodeIdentifier()); + log.log(INFO, "Explicitly using ID {0} to generate Type 1 UUIDs", getNodeIdentifier()); } UUID uuid = nextId(null); long ts = timeStamp.get(); @@ -127,9 +128,9 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { ts /= MILLIS_TO_UUID; saveState(); - log.log(Level.DEBUG, "Saved state: clockSeq {0}, timestamp {1}, uuid {2}, stateFile: {3})", clockSeq.get(), new Date(ts), uuid, stateFile); + log.log(DEBUG, "Saved state: clockSeq {0}, timestamp {1}, uuid {2}, stateFile: {3})", clockSeq.get(), new Date(ts), uuid, stateFile); } catch (IOException e) { - log.log(Level.ERROR, "There was a problem while detecting the nodeId. Falling back to random mode. Try using to specify 'ebean.uuidNodeId' property", e); + log.log(ERROR, "There was a problem while detecting the nodeId. Falling back to random mode. Try using to specify 'ebean.uuidNodeId' property", e); useRandomMode(); } } @@ -146,16 +147,16 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { try { nodeId = getHardwareId(); } catch (IOException e) { - log.log(Level.ERROR, "Error while reading MAC address. Fall back to 'generate' mode", e); + log.log(ERROR, "Error while reading MAC address. Fall back to 'generate' mode", e); tryGenerateMode(); } if (nodeId != null) { restoreState(); - log.log(Level.INFO, "Using MAC {0} to generate Type 1 UUIDs", getNodeIdentifier()); + log.log(INFO, "Using MAC {0} to generate Type 1 UUIDs", getNodeIdentifier()); return; } - log.log(Level.WARNING, "No suitable network interface found. Fall back to 'generate' mode"); + log.log(WARNING, "No suitable network interface found. Fall back to 'generate' mode"); tryGenerateMode(); } @@ -165,11 +166,11 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { */ private void tryGenerateMode() throws IOException { if (restoreState()) { - log.log(Level.INFO, "Using recently generated nodeId {0} to generate Type 1 UUIDs", getNodeIdentifier()); + log.log(INFO, "Using recently generated nodeId {0} to generate Type 1 UUIDs", getNodeIdentifier()); } else { // RFC 4.5 use random portion for node nodeId = super.getNodeIdBytes(); - log.log(Level.INFO, "Using a newly generated nodeId {0} to generate Type 1 UUIDs", getNodeIdentifier()); + log.log(INFO, "Using a newly generated nodeId {0} to generate Type 1 UUIDs", getNodeIdentifier()); } } @@ -180,7 +181,7 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { private void useRandomMode() { canSaveState = false; nodeId = super.getNodeIdBytes(); - log.log(Level.INFO, "Explicitly using a new random ID {0} to generate Type 1 UUIDs", getNodeIdentifier()); + log.log(INFO, "Explicitly using a new random ID {0} to generate Type 1 UUIDs", getNodeIdentifier()); } /** @@ -211,14 +212,14 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { String propNodeId = prop.getProperty("nodeId"); if (propNodeId == null || propNodeId.isEmpty()) { - log.log(Level.WARNING, "State file '{0}' is incomplete", stateFile); + log.log(WARNING, "State file '{0}' is incomplete", stateFile); return false; // we cannot restore } try { if (nodeId == null) { nodeId = parseAlternativeNodeId(propNodeId); } else if (!getNodeIdentifier().equals(propNodeId)) { - log.log(Level.WARNING, + log.log(WARNING, "The nodeId in the state file '{0}' has changed from {1} to {2}. " + "This can happen when MAC address changes or when two containers share the same state file", stateFile, propNodeId, getNodeIdentifier()); @@ -231,7 +232,7 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { return true; } catch (IllegalArgumentException nfe) { - log.log(Level.ERROR, "State file corrupt: " + stateFile, nfe); + log.log(ERROR, "State file corrupt: " + stateFile, nfe); } return false; } @@ -255,7 +256,7 @@ public class UuidV1IdGenerator extends UuidV1RndIdGenerator { try (OutputStream os = new FileOutputStream(stateFile)) { prop.store(os, "ebean uuid state file"); } catch (IOException e) { - log.log(Level.ERROR, "Could not persist uuid state to: " + stateFile, e); + log.log(ERROR, "Could not persist uuid state to: " + stateFile, e); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/idgen/UuidV1RndIdGenerator.java b/ebean-core/src/main/java/io/ebeaninternal/server/idgen/UuidV1RndIdGenerator.java index e5a34d135..484d92698 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/idgen/UuidV1RndIdGenerator.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/idgen/UuidV1RndIdGenerator.java @@ -4,13 +4,14 @@ import io.avaje.applog.AppLog; import io.ebean.Transaction; import io.ebean.config.dbplatform.PlatformIdGenerator; -import java.lang.System.Logger.Level; import java.security.SecureRandom; import java.util.UUID; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.locks.ReentrantLock; +import static java.lang.System.Logger.Level.INFO; + /** * IdGenerator for (pseudo) type 1 UUIDs. * @@ -105,7 +106,7 @@ public class UuidV1RndIdGenerator implements PlatformIdGenerator { delta = current - last; if (delta < -10000 * 20000) { - log.log(Level.INFO, "Clock skew of {} ms detected", delta / -10000); + log.log(INFO, "Clock skew of {} ms detected", delta / -10000); // The clock was adjusted back about 2 seconds, or we were generating a lot of ids too fast // if so, we try to set the current as last and also increment the clockSeq. lock.lock(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/logger/DSpiLogger.java b/ebean-core/src/main/java/io/ebeaninternal/server/logger/DSpiLogger.java index adc648275..922667037 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/logger/DSpiLogger.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/logger/DSpiLogger.java @@ -2,7 +2,8 @@ package io.ebeaninternal.server.logger; import io.ebeaninternal.api.SpiLogger; -import java.lang.System.Logger.Level; +import static java.lang.System.Logger.Level.DEBUG; +import static java.lang.System.Logger.Level.TRACE; final class DSpiLogger implements SpiLogger { @@ -14,21 +15,21 @@ final class DSpiLogger implements SpiLogger { @Override public boolean isDebug() { - return logger.isLoggable(Level.DEBUG); + return logger.isLoggable(DEBUG); } @Override public boolean isTrace() { - return logger.isLoggable(Level.TRACE); + return logger.isLoggable(TRACE); } @Override public void debug(String msg) { - logger.log(Level.DEBUG, msg); + logger.log(DEBUG, msg); } @Override public void trace(String msg) { - logger.log(Level.TRACE, msg); + logger.log(TRACE, msg); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/BatchedPstmt.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/BatchedPstmt.java index ccf068973..ddd1747a1 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/BatchedPstmt.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/BatchedPstmt.java @@ -6,13 +6,14 @@ import io.ebeaninternal.api.SpiTransaction; import java.io.IOException; import java.io.InputStream; -import java.lang.System.Logger.Level; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; +import static java.lang.System.Logger.Level.WARNING; + /** * A batched statement that is held in BatchedPstmtHolder. It has a list of * BatchPostExecute which it will process after the statement is executed. @@ -136,7 +137,7 @@ public final class BatchedPstmt implements SpiProfileTransactionEvent { try { pstmt.close(); } catch (SQLException e) { - CoreLog.log.log(Level.WARNING, "BatchedPstmt Error closing statement", e); + CoreLog.log.log(WARNING, "BatchedPstmt Error closing statement", e); } finally { pstmt = null; } @@ -202,7 +203,7 @@ public final class BatchedPstmt implements SpiProfileTransactionEvent { try { inputStream.close(); } catch (IOException e) { - CoreLog.log.log(Level.WARNING, "BatchedPstmt Error closing inputStream ", e); + CoreLog.log.log(WARNING, "BatchedPstmt Error closing inputStream ", e); } } inputStreams = null; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java index 779362ee8..de8e16eb0 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java @@ -12,12 +12,13 @@ import io.ebeaninternal.server.persist.platform.MultiValueBind; import io.ebeaninternal.server.type.*; import javax.persistence.PersistenceException; -import java.lang.System.Logger.Level; import java.math.BigDecimal; import java.sql.*; import java.util.Collection; import java.util.List; +import static java.lang.System.Logger.Level.WARNING; + /** * Binds bean values to a PreparedStatement. */ @@ -133,7 +134,7 @@ public final class Binder { } } catch (SQLException ex) { - CoreLog.log.log(Level.WARNING, "error binding parameter [{0}][{1}]", (dataBind.currentPos() - 1), value); + CoreLog.log.log(WARNING, "error binding parameter [{0}][{1}]", (dataBind.currentPos() - 1), value); throw ex; } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java index 728c4efcb..104ccbe74 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java @@ -13,10 +13,12 @@ import io.ebeaninternal.server.core.*; import io.ebeaninternal.server.core.PersistRequest.Type; import io.ebeaninternal.server.deploy.*; -import java.lang.System.Logger.Level; import java.sql.SQLException; import java.util.*; +import static java.lang.System.Logger.Level.DEBUG; +import static java.lang.System.Logger.Level.TRACE; + /** * Persister implementation using DML. *

@@ -143,7 +145,7 @@ public final class DefaultPersister implements Persister { DraftHandler draftHandler = new DraftHandler<>(desc, transaction); List liveBeans = draftHandler.fetchSourceBeans(query, false); - PUB.log(Level.DEBUG, "draftRestore [{0}] count[{1}]", desc.name(), liveBeans.size()); + PUB.log(DEBUG, "draftRestore [{0}] count[{1}]", desc.name(), liveBeans.size()); if (liveBeans.isEmpty()) { return Collections.emptyList(); } @@ -156,11 +158,11 @@ public final class DefaultPersister implements Persister { // reset @DraftDirty and @DraftReset properties draftHandler.resetDraft(draftBean); - PUB.log(Level.TRACE, "draftRestore bean [{0}] id[{1}]", desc.name(), draftHandler.getId()); + PUB.log(TRACE, "draftRestore bean [{0}] id[{1}]", desc.name(), draftHandler.getId()); update(createRequest(draftBean, transaction, null, mgr, Type.UPDATE, Flags.RECURSE)); } - PUB.log(Level.DEBUG, "draftRestore - complete for [{0}]", desc.name()); + PUB.log(DEBUG, "draftRestore - complete for [{0}]", desc.name()); return draftHandler.getDrafts(); } @@ -185,7 +187,7 @@ public final class DefaultPersister implements Persister { DraftHandler draftHandler = new DraftHandler<>(desc, transaction); List draftBeans = draftHandler.fetchSourceBeans(query, true); - PUB.log(Level.DEBUG, "publish [{0}] count[{1}]", desc.name(), draftBeans.size()); + PUB.log(DEBUG, "publish [{0}] count[{1}]", desc.name(), draftBeans.size()); if (draftBeans.isEmpty()) { return Collections.emptyList(); } @@ -202,7 +204,7 @@ public final class DefaultPersister implements Persister { draftHandler.resetDraft(draftBean); Type persistType = draftHandler.isInsert() ? Type.INSERT : Type.UPDATE; - PUB.log(Level.TRACE, "publish bean [{0}] id[{1}] type[{2}]", desc.name(), draftHandler.getId(), persistType); + PUB.log(TRACE, "publish bean [{0}] id[{1}] type[{2}]", desc.name(), draftHandler.getId(), persistType); PersistRequestBean request = createRequest(liveBean, transaction, null, mgr, persistType, Flags.PUBLISH_RECURSE); if (persistType == Type.INSERT) { @@ -214,7 +216,7 @@ public final class DefaultPersister implements Persister { } draftHandler.updateDrafts(transaction, mgr); - PUB.log(Level.DEBUG, "publish - complete for [{0}]", desc.name()); + PUB.log(DEBUG, "publish - complete for [{0}]", desc.name()); return livePublish; } @@ -270,7 +272,7 @@ public final class DefaultPersister implements Persister { void updateDrafts(Transaction transaction, BeanManager mgr) { if (!draftUpdates.isEmpty()) { // update the dirty status on the drafts that have been published - PUB.log(Level.DEBUG, "publish - update dirty status on [{0}] drafts", draftUpdates.size()); + PUB.log(DEBUG, "publish - update dirty status on [{0}] drafts", draftUpdates.size()); for (T draftUpdate : draftUpdates) { update(createRequest(draftUpdate, transaction, null, mgr, Type.UPDATE, Flags.ZERO)); } @@ -491,8 +493,8 @@ public final class DefaultPersister implements Persister { } if (request.isDirty()) { request.executeOrQueue(); - } else if (log.isLoggable(Level.DEBUG)) { - log.log(Level.DEBUG, "Update skipped as bean is unchanged: {0}", request.bean()); + } else if (log.isLoggable(DEBUG)) { + log.log(DEBUG, "Update skipped as bean is unchanged: {0}", request.bean()); } if (request.isPersistCascade()) { // save all the beans in assocMany's after @@ -538,8 +540,8 @@ public final class DefaultPersister implements Persister { if (req.isRegisteredForDeleteBean()) { // skip deleting bean. Used where cascade is on // both sides of a relationship - if (log.isLoggable(Level.DEBUG)) { - log.log(Level.DEBUG, "skipping delete on alreadyRegistered {0}", req.bean()); + if (log.isLoggable(DEBUG)) { + log.log(DEBUG, "skipping delete on alreadyRegistered {0}", req.bean()); } return 0; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBase.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBase.java index c839ac9e6..b01d685a3 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBase.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBase.java @@ -9,7 +9,8 @@ import io.ebeaninternal.server.core.PersistRequestBean; import io.ebeaninternal.server.deploy.BeanPropertyAssocMany; import java.io.IOException; -import java.lang.System.Logger.Level; + +import static java.lang.System.Logger.Level.ERROR; /** * Base for saving entity bean collections and element collections. @@ -72,7 +73,7 @@ abstract class SaveManyBase implements SaveMany { String asJson = many.jsonWriteCollection(value); request.addCollectionChange(many.name(), asJson); } catch (IOException e) { - CoreLog.log.log(Level.ERROR, "Error build element collection entry for L2 cache", e); + CoreLog.log.log(ERROR, "Error build element collection entry for L2 cache", e); } } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanManager.java index 33f353176..88818d687 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPlanManager.java @@ -7,12 +7,12 @@ import io.ebeaninternal.api.*; import io.ebeaninternal.server.transaction.TransactionManager; import io.ebeaninternal.server.type.bindcapture.BindCapture; -import java.lang.System.Logger.Level; import java.sql.Connection; import java.sql.SQLException; import java.util.List; import java.util.concurrent.ConcurrentHashMap; +import static java.lang.System.Logger.Level.ERROR; import static java.util.Collections.emptyList; public final class CQueryPlanManager implements QueryPlanManager { @@ -65,7 +65,7 @@ public final class CQueryPlanManager implements QueryPlanManager { } return req.plans(); } catch (SQLException e) { - CoreLog.log.log(Level.ERROR, "Error during query plan collection", e); + CoreLog.log.log(ERROR, "Error during query plan collection", e); return emptyList(); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java index 30586c4f7..412c74fc8 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/SqlTreeBuilder.java @@ -12,9 +12,10 @@ import io.ebeaninternal.server.deploy.TableJoin; import io.ebeaninternal.server.querydefn.OrmQueryDetail; import io.ebeaninternal.server.querydefn.OrmQueryProperties; -import java.lang.System.Logger.Level; import java.util.*; +import static java.lang.System.Logger.Level.ERROR; + /** * Factory for SqlTree. */ @@ -385,7 +386,7 @@ public final class SqlTreeBuilder { private void addPropertyToSubQuery(SqlTreeProperties selectProps, STreeType desc, String propName, String path) { STreeProperty p = desc.findPropertyWithDynamic(propName, path); if (p == null) { - log.log(Level.ERROR, "property [{0}] not found on {1} for query - excluding it.", propName, desc); + log.log(ERROR, "property [{0}] not found on {1} for query - excluding it.", propName, desc); return; } else if (p instanceof STreePropertyAssoc && p.isEmbedded()) { // if the property is embedded we need to lookup the real column name @@ -420,13 +421,13 @@ public final class SqlTreeBuilder { if (p != null) { selectProps.add(p); } else { - log.log(Level.ERROR, "property [{0}] not found on {1} for query - excluding it.", propName, desc); + log.log(ERROR, "property [{0}] not found on {1} for query - excluding it.", propName, desc); } } else if (p.isEmbedded() || (p instanceof STreePropertyAssoc && !queryProps.isIncludedBeanJoin(p.name()))) { // add the embedded bean or the *ToOne assoc bean. We skip the check that the *ToOne propName maps to Id property ... selectProps.add(p); } else { - log.log(Level.ERROR, "property [{0}] expected to be an embedded or *ToOne bean for query - excluding it.", p.fullName()); + log.log(ERROR, "property [{0}] expected to be an embedded or *ToOne bean for query - excluding it.", p.fullName()); } } @@ -435,7 +436,7 @@ public final class SqlTreeBuilder { // sub class hierarchy if required STreeProperty p = desc.findPropertyWithDynamic(propName, queryProps.getPath()); if (p == null) { - log.log(Level.ERROR, "property [{0}] not found on {1} for query - excluding it.", propName, desc); + log.log(ERROR, "property [{0}] not found on {1} for query - excluding it.", propName, desc); p = desc.findProperty("id"); selectProps.add(p); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/readaudit/DefaultReadAuditLogger.java b/ebean-core/src/main/java/io/ebeaninternal/server/readaudit/DefaultReadAuditLogger.java index b49f3baf4..1e14578de 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/readaudit/DefaultReadAuditLogger.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/readaudit/DefaultReadAuditLogger.java @@ -11,9 +11,11 @@ import io.ebeaninternal.api.CoreLog; import java.io.IOException; import java.io.StringWriter; -import java.lang.System.Logger.Level; import java.util.Map; +import static java.lang.System.Logger.Level.ERROR; +import static java.lang.System.Logger.Level.INFO; + /** * Default implementation of ReadAuditLogger that writes the event in JSON format to standard loggers. */ @@ -48,9 +50,9 @@ public class DefaultReadAuditLogger implements ReadAuditLogger { } gen.writeEndObject(); gen.flush(); - queryLogger.log(Level.INFO, writer.toString()); + queryLogger.log(INFO, writer.toString()); } catch (IOException e) { - CoreLog.log.log(Level.ERROR, "Error writing Read audit event", e); + CoreLog.log.log(ERROR, "Error writing Read audit event", e); } } @@ -75,9 +77,9 @@ public class DefaultReadAuditLogger implements ReadAuditLogger { StringWriter writer = new StringWriter(defaultReadBuffer); JsonGenerator gen = jsonFactory.createGenerator(writer); writeDetails(gen, event); - auditLogger.log(Level.INFO, writer.toString()); + auditLogger.log(INFO, writer.toString()); } catch (IOException e) { - CoreLog.log.log(Level.ERROR, "Error writing Read audit event", e); + CoreLog.log.log(ERROR, "Error writing Read audit event", e); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileHandler.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileHandler.java index 028b40c19..c690a8061 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileHandler.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/DefaultProfileHandler.java @@ -11,7 +11,6 @@ import io.ebeaninternal.api.SpiProfileHandler; import java.io.File; import java.io.IOException; import java.io.Writer; -import java.lang.System.Logger.Level; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatterBuilder; @@ -22,6 +21,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; +import static java.lang.System.Logger.Level.*; import static java.time.temporal.ChronoField.*; /** @@ -79,7 +79,7 @@ public final class DefaultProfileHandler implements SpiProfileHandler, Plugin { this.executor = Executors.newSingleThreadExecutor(); this.dir = new File(config.getDirectory()); if (!dir.exists() && !dir.mkdirs()) { - log.log(Level.ERROR, "failed to mkdirs " + dir.getAbsolutePath()); + log.log(ERROR, "failed to mkdirs " + dir.getAbsolutePath()); } incrementFile(); } @@ -109,7 +109,7 @@ public final class DefaultProfileHandler implements SpiProfileHandler, Plugin { out.close(); out = null; } catch (IOException e) { - log.log(Level.ERROR, "Failed to flush and close transaction profiling file ", e); + log.log(ERROR, "Failed to flush and close transaction profiling file ", e); } } } finally { @@ -129,7 +129,7 @@ public final class DefaultProfileHandler implements SpiProfileHandler, Plugin { File file = new File(dir, "txprofile-" + now + ".tprofile"); out = IOUtils.newWriter(file); } catch (IOException e) { - log.log(Level.ERROR, "Not expected", e); + log.log(ERROR, "Not expected", e); } } finally { lock.unlock(); @@ -152,7 +152,7 @@ public final class DefaultProfileHandler implements SpiProfileHandler, Plugin { } flushCurrentFile(); } catch (Exception e) { - log.log(Level.WARNING, "Error on collect", e); + log.log(WARNING, "Error on collect", e); } } @@ -183,10 +183,10 @@ public final class DefaultProfileHandler implements SpiProfileHandler, Plugin { if (profileCounter % profilesPerFile == 0) { incrementFile(); - log.log(Level.DEBUG, "profiled {0} transactions", profileCounter); + log.log(DEBUG, "profiled {0} transactions", profileCounter); } } catch (IOException e) { - log.log(Level.WARNING, "Error writing transaction profiling", e); + log.log(WARNING, "Error writing transaction profiling", e); } } @@ -250,16 +250,16 @@ public final class DefaultProfileHandler implements SpiProfileHandler, Plugin { @Override public void shutdown() { shutdown = true; - log.log(Level.TRACE, "shutting down"); + log.log(TRACE, "shutting down"); try { executor.shutdown(); if (!executor.awaitTermination(4, TimeUnit.SECONDS)) { - log.log(Level.INFO, "Shut down timeout exceeded. Terminating profiling consumer thread."); + log.log(INFO, "Shut down timeout exceeded. Terminating profiling consumer thread."); executor.shutdownNow(); } } catch (InterruptedException e) { Thread.currentThread().interrupt(); - log.log(Level.WARNING, "Interrupt on shutdown", e); + log.log(WARNING, "Interrupt on shutdown", e); } flushCurrentFile(); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java index 9ee5aa5a0..2dfa2a454 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java @@ -12,12 +12,13 @@ import io.ebeaninternal.server.persist.BatchControl; import io.ebeanservice.docstore.api.DocStoreTransaction; import javax.persistence.PersistenceException; -import java.lang.System.Logger.Level; import java.sql.Connection; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; +import static java.lang.System.Logger.Level.ERROR; + /** * Read only transaction expected to use autoCommit connection and for implicit use only. *

@@ -484,7 +485,7 @@ final class ImplicitReadOnlyTransaction implements SpiTransaction, TxnProfileEve } catch (Exception ex) { // the connection pool will automatically remove the // connection if it does not pass the test - CoreLog.log.log(Level.ERROR, "Error closing connection", ex); + CoreLog.log.log(ERROR, "Error closing connection", ex); } connection = null; active = false; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java index 38021986f..35fb61307 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java @@ -17,12 +17,13 @@ import io.ebeanservice.docstore.api.DocStoreTransaction; import javax.persistence.PersistenceException; import javax.persistence.RollbackException; -import java.lang.System.Logger.Level; import java.sql.Connection; import java.sql.SQLException; import java.util.*; import java.util.function.Consumer; +import static java.lang.System.Logger.Level.ERROR; + /** * JDBC Connection based transaction. */ @@ -356,7 +357,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { try { consumer.accept(callbackList.get(i)); } catch (Exception e) { - log.log(Level.ERROR, "Error executing transaction callback", e); + log.log(ERROR, "Error executing transaction callback", e); } } } @@ -884,7 +885,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { connection.setReadOnly(false); } } catch (SQLException e) { - log.log(Level.ERROR, "Error setting to readOnly?", e); + log.log(ERROR, "Error setting to readOnly?", e); } try { if (autoCommit) { @@ -892,14 +893,14 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { connection.setAutoCommit(true); } } catch (SQLException e) { - log.log(Level.ERROR, "Error setting to readOnly?", e); + log.log(ERROR, "Error setting to readOnly?", e); } try { connection.close(); } catch (Exception ex) { // the connection pool will automatically remove the // connection if it does not pass the test - log.log(Level.ERROR, "Error closing connection", ex); + log.log(ERROR, "Error closing connection", ex); } connection = null; active = false; @@ -932,7 +933,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { } withEachCallback(TransactionCallback::postCommit); } catch (SQLException e) { - log.log(Level.ERROR, "Error when ending a query only transaction via " + onQueryOnly, e); + log.log(ERROR, "Error when ending a query only transaction via " + onQueryOnly, e); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java index 3845d0776..73bc98981 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JtaTransactionManager.java @@ -13,7 +13,9 @@ import javax.transaction.Status; import javax.transaction.Synchronization; import javax.transaction.TransactionSynchronizationRegistry; import javax.transaction.UserTransaction; -import java.lang.System.Logger.Level; + +import static java.lang.System.Logger.Level.DEBUG; +import static java.lang.System.Logger.Level.WARNING; /** * Hook into external JTA transaction manager. @@ -87,15 +89,15 @@ public final class JtaTransactionManager implements ExternalTransactionManager { SpiTransaction currentEbeanTransaction = scope.inScope(); if (currentEbeanTransaction != null) { // NOT expecting this so log WARNING - log.log(Level.WARNING, "JTA Transaction - no current txn BUT using current Ebean one {0}", currentEbeanTransaction.getId()); + log.log(WARNING, "JTA Transaction - no current txn BUT using current Ebean one {0}", currentEbeanTransaction.getId()); return currentEbeanTransaction; } UserTransaction ut = getUserTransaction(); if (ut == null) { // no current JTA transaction - if (log.isLoggable(Level.DEBUG)) { - log.log(Level.DEBUG, "JTA Transaction - no current txn"); + if (log.isLoggable(DEBUG)) { + log.log(DEBUG, "JTA Transaction - no current txn"); } return null; } @@ -181,21 +183,21 @@ public final class JtaTransactionManager implements ExternalTransactionManager { public void afterCompletion(int status) { switch (status) { case Status.STATUS_COMMITTED: - log.log(Level.DEBUG, "Jta Txn [{0}] committed", transaction.getId()); + log.log(DEBUG, "Jta Txn [{0}] committed", transaction.getId()); transaction.postCommit(); // Remove this transaction object as it is completed transactionManager.scope().clearExternal(); break; case Status.STATUS_ROLLEDBACK: - log.log(Level.DEBUG, "Jta Txn [{0}] rollback", transaction.getId()); + log.log(DEBUG, "Jta Txn [{0}] rollback", transaction.getId()); transaction.postRollback(null); // Remove this transaction object as it is completed transactionManager.scope().clearExternal(); break; default: - log.log(Level.DEBUG, "Jta Txn [{0}] status:{1}", transaction.getId(), status); + log.log(DEBUG, "Jta Txn [{0}] status:{1}", transaction.getId(), status); } // No matter the completion status of the transaction, we release the connection we got from the pool. diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/PostCommitProcessing.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/PostCommitProcessing.java index b1a3ee4f8..f36dd7ede 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/PostCommitProcessing.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/PostCommitProcessing.java @@ -11,10 +11,11 @@ import io.ebeaninternal.server.cluster.ClusterManager; import io.ebeaninternal.server.core.PersistRequestBean; import io.ebeanservice.docstore.api.DocStoreUpdates; -import java.lang.System.Logger.Level; import java.util.List; import java.util.Set; +import static java.lang.System.Logger.Level.DEBUG; + /** * Performs post commit processing using a background thread. *

@@ -104,8 +105,8 @@ final class PostCommitProcessing { private void notifyCluster() { if (remoteTransactionEvent != null && !remoteTransactionEvent.isEmpty()) { // send the interesting events to the cluster - if (log.isLoggable(Level.DEBUG)) { - log.log(Level.DEBUG, "Cluster Send: {0}", remoteTransactionEvent); + if (log.isLoggable(DEBUG)) { + log.log(DEBUG, "Cluster Send: {0}", remoteTransactionEvent); } clusterManager.broadcast(remoteTransactionEvent); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TableModState.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TableModState.java index c1ba2e773..37669d3a3 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TableModState.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TableModState.java @@ -6,11 +6,13 @@ import io.ebean.cache.QueryCacheEntryValidate; import io.ebean.cache.ServerCacheNotification; import io.ebean.cache.ServerCacheNotify; -import java.lang.System.Logger.Level; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import static java.lang.System.Logger.Level.DEBUG; +import static java.lang.System.Logger.Level.TRACE; + /** * Holds timestamp of last modification per table. *

@@ -34,8 +36,8 @@ public final class TableModState implements QueryCacheEntryValidate, ServerCache for (String tableName : touchedTables) { tableModStamp.put(tableName, modNanoTime); } - if (log.isLoggable(Level.DEBUG)) { - log.log(Level.DEBUG, "TableModState updated - touched:{0} modNanoTime:{1}", touchedTables, modNanoTime); + if (log.isLoggable(DEBUG)) { + log.log(DEBUG, "TableModState updated - touched:{0} modNanoTime:{1}", touchedTables, modNanoTime); } } @@ -46,8 +48,8 @@ public final class TableModState implements QueryCacheEntryValidate, ServerCache for (String tableName : tables) { Long modTime = tableModStamp.get(tableName); if (modTime != null && modTime >= sinceNanoTime) { - if (log.isLoggable(Level.TRACE)) { - log.log(Level.TRACE, "Invalidate on table:{0}", tableName); + if (log.isLoggable(TRACE)) { + log.log(TRACE, "Invalidate on table:{0}", tableName); } return false; } @@ -73,8 +75,8 @@ public final class TableModState implements QueryCacheEntryValidate, ServerCache public void notify(ServerCacheNotification notification) { // use local clock - for slightly more aggressive invalidation (as later) // that removes any concern regarding clock syncing across cluster - if (log.isLoggable(Level.DEBUG)) { - log.log(Level.DEBUG, "ServerCacheNotification:{0}", notification); + if (log.isLoggable(DEBUG)) { + log.log(DEBUG, "ServerCacheNotification:{0}", notification); } touch(notification.getDependentTables()); } @@ -87,8 +89,8 @@ public final class TableModState implements QueryCacheEntryValidate, ServerCache public void notify(RemoteTableMod tableMod) { // use local clock - for slightly more aggressive invalidation (as later) // that removes any concern regarding clock syncing across cluster - if (log.isLoggable(Level.DEBUG)) { - log.log(Level.DEBUG, "RemoteTableMod:{0}", tableMod); + if (log.isLoggable(DEBUG)) { + log.log(DEBUG, "RemoteTableMod:{0}", tableMod); } touch(tableMod.getTables()); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java index ace9d4f77..523315eee 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java @@ -32,7 +32,6 @@ import io.ebeanservice.docstore.api.DocStoreUpdates; import javax.persistence.PersistenceException; import javax.sql.DataSource; -import java.lang.System.Logger.Level; import java.sql.Connection; import java.sql.SQLException; import java.util.List; @@ -40,6 +39,9 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicLong; +import static java.lang.System.Logger.Level.DEBUG; +import static java.lang.System.Logger.Level.ERROR; + /** * Manages transactions. *

@@ -365,7 +367,7 @@ public class TransactionManager implements SpiTransactionManager { txnLogger.debug(msg); } } catch (Exception ex) { - log.log(Level.ERROR, "Error while notifying TransactionEventListener of rollback event", ex); + log.log(ERROR, "Error while notifying TransactionEventListener of rollback event", ex); } } @@ -416,7 +418,7 @@ public class TransactionManager implements SpiTransactionManager { postCommit.notifyLocalCache(); backgroundExecutor.execute(postCommit.backgroundNotify()); } catch (Exception ex) { - log.log(Level.ERROR, "NotifyOfCommit failed. L2 Cache potentially not notified.", ex); + log.log(ERROR, "NotifyOfCommit failed. L2 Cache potentially not notified.", ex); } } @@ -442,8 +444,8 @@ public class TransactionManager implements SpiTransactionManager { * Notify local BeanPersistListeners etc of events from another server in the cluster. */ public final void remoteTransactionEvent(RemoteTransactionEvent remoteEvent) { - if (clusterLogger.isLoggable(Level.DEBUG)) { - clusterLogger.log(Level.DEBUG, "processing {0}", remoteEvent); + if (clusterLogger.isLoggable(DEBUG)) { + clusterLogger.log(DEBUG, "processing {0}", remoteEvent); } CacheChangeSet changeSet = new CacheChangeSet(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/DataBind.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/DataBind.java index a33494277..b4ce613be 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/DataBind.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/DataBind.java @@ -5,13 +5,14 @@ import io.ebeaninternal.api.CoreLog; import io.ebeaninternal.server.core.timezone.DataTimeZone; import java.io.*; -import java.lang.System.Logger.Level; import java.math.BigDecimal; import java.sql.*; import java.util.ArrayList; import java.util.Calendar; import java.util.List; +import static java.lang.System.Logger.Level.WARNING; + public class DataBind implements DataBinder { private final DataTimeZone dataTimeZone; @@ -101,7 +102,7 @@ public class DataBind implements DataBinder { try { inputStream.close(); } catch (IOException e) { - CoreLog.log.log(Level.WARNING, "Error closing InputStream that was bound to PreparedStatement", e); + CoreLog.log.log(WARNING, "Error closing InputStream that was bound to PreparedStatement", e); } } inputStreams = null; 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 c44670c73..a1b7c3798 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 @@ -29,7 +29,6 @@ import org.joda.time.LocalTime; import javax.persistence.AttributeConverter; import javax.persistence.EnumType; import java.io.File; -import java.lang.System.Logger.Level; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.ParameterizedType; @@ -45,6 +44,8 @@ import java.time.*; import java.util.*; import java.util.concurrent.ConcurrentHashMap; +import static java.lang.System.Logger.Level.*; + /** * Default implementation of TypeManager. *

@@ -219,10 +220,10 @@ public final class DefaultTypeManager implements TypeManager { } private void logAdd(ScalarType scalarType) { - if (log.isLoggable(Level.TRACE)) { + if (log.isLoggable(TRACE)) { String msg = "ScalarType register [" + scalarType.getClass().getName() + "]"; msg += " for [" + scalarType.getType().getName() + "]"; - log.log(Level.TRACE, msg); + log.log(TRACE, msg); } } @@ -675,7 +676,7 @@ public final class DefaultTypeManager implements TypeManager { } add(scalarType); } catch (Exception e) { - log.log(Level.ERROR, "Error loading ScalarType [" + cls.getName() + "]", e); + log.log(ERROR, "Error loading ScalarType [" + cls.getName() + "]", e); } } } @@ -706,10 +707,10 @@ public final class DefaultTypeManager implements TypeManager { } ScalarTypeConverter converter = foundType.getDeclaredConstructor().newInstance(); ScalarTypeWrapper stw = new ScalarTypeWrapper(logicalType, wrappedType, converter); - log.log(Level.DEBUG, "Register ScalarTypeWrapper from {0} -> {1} using:{2}", logicalType, persistType, foundType); + log.log(DEBUG, "Register ScalarTypeWrapper from {0} -> {1} using:{2}", logicalType, persistType, foundType); add(stw); } catch (Exception e) { - log.log(Level.ERROR, "Error registering ScalarTypeConverter [" + foundType.getName() + "]", e); + log.log(ERROR, "Error registering ScalarTypeConverter [" + foundType.getName() + "]", e); } } } @@ -730,10 +731,10 @@ public final class DefaultTypeManager implements TypeManager { } AttributeConverter converter = foundType.getDeclaredConstructor().newInstance(); ScalarTypeWrapper stw = new ScalarTypeWrapper(logicalType, wrappedType, new AttributeConverterAdapter(converter)); - log.log(Level.DEBUG, "Register ScalarTypeWrapper from {0} -> {1} using:{2}", logicalType, persistType, foundType); + log.log(DEBUG, "Register ScalarTypeWrapper from {0} -> {1} using:{2}", logicalType, persistType, foundType); add(stw); } catch (Exception e) { - log.log(Level.ERROR, "Error registering AttributeConverter [" + foundType.getName() + "]", e); + log.log(ERROR, "Error registering AttributeConverter [" + foundType.getName() + "]", e); } } } @@ -805,7 +806,7 @@ public final class DefaultTypeManager implements TypeManager { // detect if Joda classes are in the classpath if (config.getClassLoadConfig().isJodaTimePresent()) { // Joda classes are in the classpath so register the types - log.log(Level.DEBUG, "Registering Joda data types"); + log.log(DEBUG, "Registering Joda data types"); addType(LocalDateTime.class, new ScalarTypeJodaLocalDateTime(jsonDateTime)); addType(DateTime.class, new ScalarTypeJodaDateTime(jsonDateTime)); if (config.getDatabasePlatform().supportsNativeJavaTime()) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFile.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFile.java index cddd89231..73037a58a 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFile.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFile.java @@ -9,10 +9,11 @@ import io.ebean.text.TextException; import io.ebeaninternal.api.CoreLog; import java.io.*; -import java.lang.System.Logger.Level; import java.sql.SQLException; import java.sql.Types; +import static java.lang.System.Logger.Level.ERROR; + /** * ScalarType for streaming between a File and the database. */ @@ -170,14 +171,14 @@ final class ScalarTypeFile extends ScalarTypeBase { try { output.close(); } catch (IOException e) { - CoreLog.log.log(Level.ERROR, "Error when closing outputStream", e); + CoreLog.log.log(ERROR, "Error when closing outputStream", e); } } if (input != null) { try { input.close(); } catch (IOException e) { - CoreLog.log.log(Level.ERROR, "Error when closing inputStream ", e); + CoreLog.log.log(ERROR, "Error when closing inputStream ", e); } } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java index e91a067f4..7f9c2ba6b 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java @@ -15,10 +15,11 @@ import io.ebeaninternal.extraddl.model.ExtraDdlXmlReader; import javax.persistence.PersistenceException; import java.io.*; -import java.lang.System.Logger.Level; import java.sql.Connection; import java.sql.SQLException; +import static java.lang.System.Logger.Level.WARNING; + /** * Controls the generation and execution of "Create All" and "Drop All" DDL scripts. *

@@ -60,7 +61,7 @@ public class DdlGenerator implements SpiDdlGenerator { this.platform = databasePlatform.getPlatform(); this.platformName = platform.base().name(); if (!config.getTenantMode().isDdlEnabled() && config.isDdlRun()) { - log.log(Level.WARNING, "DDL can't be run on startup with TenantMode " + config.getTenantMode()); + log.log(WARNING, "DDL can't be run on startup with TenantMode " + config.getTenantMode()); this.runDdl = false; this.useMigrationStoredProcedures = false; } else { @@ -224,7 +225,7 @@ public class DdlGenerator implements SpiDdlGenerator { if (sqlScript != null) { try (InputStream is = getClassLoader().getResourceAsStream(sqlScript)) { if (is == null) { - log.log(Level.WARNING, "sql script {0} was not found as a resource", sqlScript); + log.log(WARNING, "sql script {0} was not found as a resource", sqlScript); } else { String content = readContent(IOUtils.newReader(is)); // 'is' is closed runScript(connection, false, content, sqlScript); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java index 9f9384d0d..f20b39121 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java @@ -26,13 +26,13 @@ import io.ebeaninternal.extraddl.model.ExtraDdlXmlReader; import java.io.File; import java.io.IOException; import java.io.Writer; -import java.lang.System.Logger.Level; import java.util.ArrayList; import java.util.List; import java.util.Properties; import java.util.ServiceLoader; import static io.ebeaninternal.api.PlatformMatch.matchPlatform; +import static java.lang.System.Logger.Level.*; /** * Generates DB Migration xml and sql scripts. @@ -402,7 +402,7 @@ public class DefaultDbMigration implements DbMigration { */ private void writeExtraDdl(File migrationDir, DdlScript script) throws IOException { String fullName = repeatableMigrationName(script.isInit(), script.getName()); - logger.log(Level.DEBUG, "writing repeatable script {0}", fullName); + logger.log(DEBUG, "writing repeatable script {0}", fullName); File file = new File(migrationDir, fullName); try (Writer writer = IOUtils.newWriter(file)) { writer.write(script.getValue()); @@ -419,7 +419,7 @@ public class DefaultDbMigration implements DbMigration { if (logToSystemOut) { System.out.println("DbMigration> " + message); } else { - logger.log(Level.ERROR, message); + logger.log(ERROR, message); } } @@ -430,7 +430,7 @@ public class DefaultDbMigration implements DbMigration { if (logToSystemOut) { System.out.println("DbMigration> " + message); } else { - logger.log(Level.INFO, message); + logger.log(INFO, message); } } @@ -792,7 +792,7 @@ public class DefaultDbMigration implements DbMigration { case SQLSERVER: throw new IllegalArgumentException("Please choose the more specific SQLSERVER16 or SQLSERVER17 platform. Refer to issue #1340 for details"); case DB2: - logger.log(Level.WARNING, "Using DB2LegacyPlatform. It is recommended to migrate to db2luw/db2zos/db2fori. Refer to issue #2514 for details"); + logger.log(WARNING, "Using DB2LegacyPlatform. It is recommended to migrate to db2luw/db2zos/db2fori. Refer to issue #2514 for details"); case GENERIC: return new DatabasePlatform(); default: diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MigrationModel.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MigrationModel.java index e949b17de..696a9feb8 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MigrationModel.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/MigrationModel.java @@ -4,11 +4,12 @@ import io.avaje.applog.AppLog; import io.ebean.migration.MigrationVersion; import java.io.File; -import java.lang.System.Logger.Level; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import static java.lang.System.Logger.Level.DEBUG; + /** * Build the model from the series of migrations. */ @@ -52,7 +53,7 @@ public class MigrationModel { if (!initMigration) { for (MigrationResource migrationResource : resources) { - logger.log(Level.DEBUG, "read {0}", migrationResource); + logger.log(DEBUG, "read {0}", migrationResource); model.apply(migrationResource.read(), migrationResource.version()); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java index 00df18cf8..6f9e424a5 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/PlatformDdlWriter.java @@ -15,9 +15,10 @@ import io.ebeaninternal.dbmigration.migration.Migration; import java.io.File; import java.io.IOException; import java.io.Writer; -import java.lang.System.Logger.Level; import java.util.List; +import static java.lang.System.Logger.Level.ERROR; + /** * Writes migration changes as platform specific DDL. */ @@ -107,7 +108,7 @@ public class PlatformDdlWriter { File subPath = new File(path, suffix); if (!subPath.exists()) { if (!subPath.mkdirs()) { - logger.log(Level.ERROR, "failed to create directories for " + subPath.getAbsolutePath()); + logger.log(ERROR, "failed to create directories for " + subPath.getAbsolutePath()); } } return subPath; diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java index 379e33bd7..3ff9034d1 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java @@ -8,9 +8,9 @@ import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; import java.io.IOException; import java.io.InputStream; -import java.lang.System.Logger.Level; import static io.ebeaninternal.api.PlatformMatch.matchPlatform; +import static java.lang.System.Logger.Level.DEBUG; /** * Read ExtraDdl from an XML document. @@ -42,7 +42,7 @@ public class ExtraDdlXmlReader { StringBuilder sb = new StringBuilder(300); for (DdlScript script : read.getDdlScript()) { if (script.isDrop() == drops && matchPlatform(platform, script.getPlatforms())) { - logger.log(Level.DEBUG, "include script {}", script.getName()); + logger.log(DEBUG, "include script {}", script.getName()); String value = script.getValue(); sb.append(value); if (value.lastIndexOf(';') == -1) { diff --git a/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java b/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java index a52377423..37e701fe6 100644 --- a/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java +++ b/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java @@ -7,9 +7,10 @@ import io.ebean.annotation.PersistBatch; import io.ebean.annotation.Platform; import io.ebeaninternal.api.SpiEbeanServer; -import java.lang.System.Logger.Level; import java.sql.Types; +import static java.lang.System.Logger.Level.ERROR; + public abstract class BaseTestCase { protected static System.Logger logger = AppLog.getLogger(BaseTestCase.class); @@ -35,7 +36,7 @@ public abstract class BaseTestCase { // First try, if we get the default server. If this fails, all tests will fail. DB.getDefault(); } catch (Throwable e) { - logger.log(Level.ERROR, "Fatal error while getting ebean-server. Exiting...", e); + logger.log(ERROR, "Fatal error while getting ebean-server. Exiting...", e); System.exit(1); } } diff --git a/ebean-redis/src/main/java/io/ebean/redis/RedisCache.java b/ebean-redis/src/main/java/io/ebean/redis/RedisCache.java index a934b8411..72aba98d4 100644 --- a/ebean-redis/src/main/java/io/ebean/redis/RedisCache.java +++ b/ebean-redis/src/main/java/io/ebean/redis/RedisCache.java @@ -20,9 +20,11 @@ import redis.clients.jedis.params.SetParams; import redis.clients.jedis.resps.ScanResult; import redis.clients.jedis.util.SafeEncoder; -import java.lang.System.Logger.Level; import java.util.*; +import static java.lang.System.Logger.Level.ERROR; +import static java.lang.System.Logger.Level.WARNING; + final class RedisCache implements ServerCache { private static final System.Logger log = AppLog.getLogger(RedisCache.class); @@ -106,17 +108,17 @@ final class RedisCache implements ServerCache { } return valueEncode.decode(data); } catch (Exception e) { - log.log(Level.ERROR, "Error decoding data, treated as cache miss", e); + log.log(ERROR, "Error decoding data, treated as cache miss", e); return null; } } private void errorOnRead(Exception e) { - log.log(Level.WARNING, "Error when reading redis cache", e); + log.log(WARNING, "Error when reading redis cache", e); } private void errorOnWrite(Exception e) { - log.log(Level.WARNING, "Error when writing redis cache", e); + log.log(WARNING, "Error when writing redis cache", e); } @Override diff --git a/ebean-redis/src/main/java/io/ebean/redis/RedisCacheFactory.java b/ebean-redis/src/main/java/io/ebean/redis/RedisCacheFactory.java index 4dd991c05..808576ea1 100644 --- a/ebean-redis/src/main/java/io/ebean/redis/RedisCacheFactory.java +++ b/ebean-redis/src/main/java/io/ebean/redis/RedisCacheFactory.java @@ -21,7 +21,6 @@ import redis.clients.jedis.JedisPool; import redis.clients.jedis.util.SafeEncoder; import java.io.*; -import java.lang.System.Logger.Level; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.Map; @@ -29,6 +28,7 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.locks.ReentrantLock; +import static java.lang.System.Logger.Level.*; import static java.util.Arrays.asList; final class RedisCacheFactory implements ServerCacheFactory { @@ -105,7 +105,7 @@ final class RedisCacheFactory implements ServerCacheFactory { redisConfig = new RedisConfig(); } redisConfig.loadProperties(config.getProperties()); - log.log(Level.INFO, "using l2cache redis host {0}:{1}", redisConfig.getServer(), redisConfig.getPort()); + log.log(INFO, "using l2cache redis host {0}:{1}", redisConfig.getServer(), redisConfig.getPort()); return redisConfig.createPool(); } @@ -160,7 +160,7 @@ final class RedisCacheFactory implements ServerCacheFactory { try { RQueryCache cache = queryCaches.get(config.getCacheKey()); if (cache == null) { - logger.log(Level.DEBUG, "create query cache [{0}]", config.getCacheKey()); + logger.log(DEBUG, "create query cache [{0}]", config.getCacheKey()); cache = new RQueryCache(new DefaultServerCacheConfig(config)); cache.periodicTrim(executor); queryCaches.put(config.getCacheKey(), cache); @@ -214,7 +214,7 @@ final class RedisCacheFactory implements ServerCacheFactory { * Process the invalidation message coming from the cluster. */ private void invalidate() { - queryLogger.log(Level.DEBUG, " CLEAR {0}(*) - cluster invalidate", name); + queryLogger.log(DEBUG, " CLEAR {0}(*) - cluster invalidate", name); super.clear(); } } @@ -233,8 +233,8 @@ final class RedisCacheFactory implements ServerCacheFactory { msg.append(table).append(","); } String formattedMsg = msg.toString(); - if (tableModLogger.isLoggable(Level.DEBUG)) { - tableModLogger.log(Level.DEBUG, "Publish TableMods - {0}", formattedMsg); + if (tableModLogger.isLoggable(DEBUG)) { + tableModLogger.log(DEBUG, "Publish TableMods - {0}", formattedMsg); } sendTableMod(formattedMsg); } @@ -262,8 +262,8 @@ final class RedisCacheFactory implements ServerCacheFactory { private void processTableNotify(String rawMessage) { long nanos = System.nanoTime(); try { - if (logger.isLoggable(Level.DEBUG)) { - logger.log(Level.DEBUG, "processTableNotify {0}", rawMessage); + if (logger.isLoggable(DEBUG)) { + logger.log(DEBUG, "processTableNotify {0}", rawMessage); } Set tables = new HashSet<>(asList(rawMessage.split(","))); listener.notify(new ServerCacheNotification(tables)); @@ -282,7 +282,7 @@ final class RedisCacheFactory implements ServerCacheFactory { try { sendMessage(messageInvalidateKeys(cacheKey, keySet)); } catch (IOException e) { - logger.log(Level.ERROR, "failed to transmit invalidateKeys() message", e); + logger.log(ERROR, "failed to transmit invalidateKeys() message", e); } } @@ -291,7 +291,7 @@ final class RedisCacheFactory implements ServerCacheFactory { try { sendMessage(messageInvalidateKey(cacheKey, id)); } catch (IOException e) { - logger.log(Level.ERROR, "failed to transmit invalidateKeys() message", e); + logger.log(ERROR, "failed to transmit invalidateKeys() message", e); } } @@ -300,7 +300,7 @@ final class RedisCacheFactory implements ServerCacheFactory { try { sendMessage(messageInvalidateClear(cacheKey)); } catch (IOException e) { - logger.log(Level.ERROR, "failed to transmit invalidateKeys() message", e); + logger.log(ERROR, "failed to transmit invalidateKeys() message", e); } } @@ -364,7 +364,7 @@ final class RedisCacheFactory implements ServerCacheFactory { @Override public void notifyConnected() { - logger.log(Level.INFO, "Established connection to Redis"); + logger.log(INFO, "Established connection to Redis"); } /** @@ -395,8 +395,8 @@ final class RedisCacheFactory implements ServerCacheFactory { } msgType = oi.readInt(); cacheKey = oi.readUTF(); - if (logger.isLoggable(Level.DEBUG)) { - logger.log(Level.DEBUG, "processNearCacheMessage serverId:{0} type:{1} cacheKey:{2}", sourceServerId, msgType, cacheKey); + if (logger.isLoggable(DEBUG)) { + logger.log(DEBUG, "processNearCacheMessage serverId:{0} type:{1} cacheKey:{2}", sourceServerId, msgType, cacheKey); } switch (msgType) { @@ -423,7 +423,7 @@ final class RedisCacheFactory implements ServerCacheFactory { } } catch (IOException | ClassNotFoundException e) { - logger.log(Level.ERROR, "failed to decode near cache message [" + SafeEncoder.encode(message) + "] for cache:" + cacheKey, e); + logger.log(ERROR, "failed to decode near cache message [" + SafeEncoder.encode(message) + "] for cache:" + cacheKey, e); if (cacheKey != null) { nearCacheInvalidateClear(cacheKey); } @@ -449,10 +449,10 @@ final class RedisCacheFactory implements ServerCacheFactory { queryCacheInvalidate(split[2]); break; default: - logger.log(Level.ERROR, "Unknown L2 message type[{0}] on redis channel - message[{1}] ", split[0], message); + logger.log(ERROR, "Unknown L2 message type[{0}] on redis channel - message[{1}] ", split[0], message); } } catch (Exception e) { - logger.log(Level.ERROR, "Error handling L2 message[" + message + "]", e); + logger.log(ERROR, "Error handling L2 message[" + message + "]", e); } } } @@ -495,7 +495,7 @@ final class RedisCacheFactory implements ServerCacheFactory { } private void warnNearCacheNotFound(String cacheKey) { - logger.log(Level.WARNING, "No near cache found for cacheKey [" + cacheKey + "] yet - probably on startup"); + logger.log(WARNING, "No near cache found for cacheKey [" + cacheKey + "] yet - probably on startup"); } } diff --git a/ebean-redis/src/main/java/io/ebean/redis/topic/DaemonTopicRunner.java b/ebean-redis/src/main/java/io/ebean/redis/topic/DaemonTopicRunner.java index 1eab91402..374eab001 100644 --- a/ebean-redis/src/main/java/io/ebean/redis/topic/DaemonTopicRunner.java +++ b/ebean-redis/src/main/java/io/ebean/redis/topic/DaemonTopicRunner.java @@ -5,10 +5,11 @@ import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.exceptions.JedisException; -import java.lang.System.Logger.Level; import java.util.Timer; import java.util.TimerTask; +import static java.lang.System.Logger.Level.*; + /** * Subscribe to redis topic listening for changes. *

@@ -49,13 +50,13 @@ public final class DaemonTopicRunner { try { subscribe(); } catch (JedisException e) { - log.log(Level.DEBUG, "... redis subscribe connection attempt:{0} failed:{1}", attempts, e.getMessage()); + log.log(DEBUG, "... redis subscribe connection attempt:{0} failed:{1}", attempts, e.getMessage()); try { // wait a little before retrying Thread.sleep(reconnectWaitMillis); } catch (InterruptedException e1) { Thread.currentThread().interrupt(); - log.log(Level.WARNING, "Interrupted redis re-connection wait", e1); + log.log(WARNING, "Interrupted redis re-connection wait", e1); } } } @@ -70,13 +71,13 @@ public final class DaemonTopicRunner { try { daemonTopic.subscribe(jedis); } catch (Exception e) { - log.log(Level.ERROR, "Lost connection to topic, starting re-connection loop", e); + log.log(ERROR, "Lost connection to topic, starting re-connection loop", e); attemptConnections(); } finally { try { jedis.close(); } catch (Exception e) { - log.log(Level.WARNING, "Error closing probably broken Redis connection", e); + log.log(WARNING, "Error closing probably broken Redis connection", e); } } } diff --git a/ebean-test/src/main/java/io/ebean/test/CapturingLoggerFactory.java b/ebean-test/src/main/java/io/ebean/test/CapturingLoggerFactory.java index 71822c136..c7887dd75 100644 --- a/ebean-test/src/main/java/io/ebean/test/CapturingLoggerFactory.java +++ b/ebean-test/src/main/java/io/ebean/test/CapturingLoggerFactory.java @@ -4,7 +4,8 @@ import io.avaje.applog.AppLog; import io.ebeaninternal.api.SpiLogger; import io.ebeaninternal.api.SpiLoggerFactory; -import java.lang.System.Logger.Level; +import static java.lang.System.Logger.Level.DEBUG; +import static java.lang.System.Logger.Level.TRACE; /** * Create a logger that captures the SQL and register it for later access in tests. @@ -33,22 +34,22 @@ public class CapturingLoggerFactory implements SpiLoggerFactory { @Override public boolean isDebug() { - return logger.isLoggable(Level.DEBUG); + return logger.isLoggable(DEBUG); } @Override public boolean isTrace() { - return logger.isLoggable(Level.TRACE); + return logger.isLoggable(TRACE); } @Override public void debug(String msg) { - logger.log(Level.DEBUG, msg); + logger.log(DEBUG, msg); } @Override public void trace(String msg) { - logger.log(Level.TRACE, msg); + logger.log(TRACE, msg); } } } diff --git a/ebean-test/src/main/java/io/ebean/test/config/AutoConfigureForTesting.java b/ebean-test/src/main/java/io/ebean/test/config/AutoConfigureForTesting.java index 32d7df424..f9a82cd91 100644 --- a/ebean-test/src/main/java/io/ebean/test/config/AutoConfigureForTesting.java +++ b/ebean-test/src/main/java/io/ebean/test/config/AutoConfigureForTesting.java @@ -8,9 +8,11 @@ import io.ebean.test.config.platform.PlatformAutoConfig; import io.ebean.test.config.provider.ProviderAutoConfig; import io.ebean.test.containers.DockerHost; -import java.lang.System.Logger.Level; import java.util.Properties; +import static java.lang.System.Logger.Level.DEBUG; +import static java.lang.System.Logger.Level.INFO; + /** * Automatically configure ServerConfig for testing purposes. *

@@ -38,7 +40,7 @@ public class AutoConfigureForTesting implements AutoConfigure { io.avaje.config.Config.asConfiguration().evalModify(properties); } if (!config.isDefaultServer()) { - log.log(Level.INFO, "skip automatic testing config on non-default server name:{0} register:{1}", config.getName(), config.isRegister()); + log.log(INFO, "skip automatic testing config on non-default server name:{0} register:{1}", config.getName(), config.isRegister()); return; } if (isExtraServer(config, properties)) { @@ -46,7 +48,7 @@ public class AutoConfigureForTesting implements AutoConfigure { return; } String testPlatform = properties.getProperty("ebean.test.platform"); - log.log(Level.DEBUG, "automatic testing config - with ebean.test.platform:{0} name:{1} environmentDb:{2}", testPlatform, config.getName(), environmentDb); + log.log(DEBUG, "automatic testing config - with ebean.test.platform:{0} name:{1} environmentDb:{2}", testPlatform, config.getName(), environmentDb); if (RunOnceMarker.isRun()) { setupPlatform(environmentDb, config); } diff --git a/ebean-test/src/main/java/io/ebean/test/config/platform/Config.java b/ebean-test/src/main/java/io/ebean/test/config/platform/Config.java index 115a83107..e85edb93e 100644 --- a/ebean-test/src/main/java/io/ebean/test/config/platform/Config.java +++ b/ebean-test/src/main/java/io/ebean/test/config/platform/Config.java @@ -5,9 +5,10 @@ import io.ebean.config.DatabaseConfig; import io.ebean.datasource.DataSourceConfig; import io.ebean.test.containers.DockerHost; -import java.lang.System.Logger.Level; import java.util.Properties; +import static java.lang.System.Logger.Level.INFO; + /** * Config for a database / datasource with associated DDL mode and Docker configuration. */ @@ -193,8 +194,7 @@ class Config { ds.setDriver(driverClass); config.setDataSourceConfig(ds); - log.log(Level.INFO, "Using jdbc settings - username:{0} url:{1} driver:{2}", ds.getUsername(), ds.getUrl(), ds.getDriver()); - + log.log(INFO, "Using jdbc settings - username:{0} url:{1} driver:{2}", ds.getUsername(), ds.getUrl(), ds.getDriver()); if (driverClass != null) { try { Class.forName(driverClass); 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 f378f517c..8321f0825 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 @@ -4,11 +4,11 @@ import io.avaje.applog.AppLog; import io.ebean.config.DatabaseConfig; import io.ebean.test.containers.ContainerFactory; -import java.lang.System.Logger.Level; import java.util.HashMap; import java.util.Map; import java.util.Properties; +import static java.lang.System.Logger.Level.*; import static java.util.concurrent.CompletableFuture.allOf; import static java.util.concurrent.CompletableFuture.runAsync; @@ -62,7 +62,7 @@ public class PlatformAutoConfig { Config config = new Config(db, platform, databaseName, this.config); platformSetup.setupExtraDbDataSource(config); - log.log(Level.DEBUG, "configured dataSource for extraDb name:{0} url:{1}", db, this.config.getDataSourceConfig().getUrl()); + log.log(DEBUG, "configured dataSource for extraDb name:{0} url:{1}", db, this.config.getDataSourceConfig().getUrl()); } } @@ -92,9 +92,9 @@ public class PlatformAutoConfig { Properties dockerProperties = platformSetup.setup(config); if (!dockerProperties.isEmpty()) { if (isDebug()) { - log.log(Level.INFO, "Docker properties: {0}", dockerProperties); + log.log(INFO, "Docker properties: {0}", dockerProperties); } else { - log.log(Level.DEBUG, "Docker properties: {0}", dockerProperties); + log.log(DEBUG, "Docker properties: {0}", dockerProperties); } // start the docker container with appropriate configuration new ContainerFactory(dockerProperties, config.getDockerPlatform()).startContainers(); @@ -130,7 +130,7 @@ public class PlatformAutoConfig { } this.platformSetup = KNOWN_PLATFORMS.get(platform); if (platformSetup == null) { - log.log(Level.WARNING, "unknown platform {0} - skipping platform setup", platform); + log.log(WARNING, "unknown platform {0} - skipping platform setup", platform); } return platformSetup != null; } diff --git a/ebean-test/src/main/java/io/ebean/test/config/provider/ProviderAutoConfig.java b/ebean-test/src/main/java/io/ebean/test/config/provider/ProviderAutoConfig.java index 48abb54cf..0be14af3a 100644 --- a/ebean-test/src/main/java/io/ebean/test/config/provider/ProviderAutoConfig.java +++ b/ebean-test/src/main/java/io/ebean/test/config/provider/ProviderAutoConfig.java @@ -6,9 +6,11 @@ import io.ebean.config.CurrentUserProvider; import io.ebean.config.DatabaseConfig; import io.ebean.config.EncryptKeyManager; -import java.lang.System.Logger.Level; import java.util.Properties; +import static java.lang.System.Logger.Level.DEBUG; +import static java.lang.System.Logger.Level.INFO; + /** * Auto configuration of User and Tenant providers and Encrypt key manager for testing purposes. */ @@ -44,12 +46,12 @@ public class ProviderAutoConfig { if (keyManager == null) { // Must be 16 Chars for Oracle function String keyVal = properties.getProperty("ebean.test.encryptKey", "simple0123456789"); - log.log(Level.DEBUG, "for testing - using FixedEncryptKeyManager() keyVal:{0}", keyVal); + log.log(DEBUG, "for testing - using FixedEncryptKeyManager() keyVal:{0}", keyVal); config.setEncryptKeyManager(new FixedEncryptKeyManager(keyVal)); } if (providerSetFlag > 0) { - log.log(Level.INFO, msg(providerSetFlag)); + log.log(INFO, msg(providerSetFlag)); } } diff --git a/platforms/h2/src/main/java/io/ebean/platform/h2/H2HistoryTrigger.java b/platforms/h2/src/main/java/io/ebean/platform/h2/H2HistoryTrigger.java index 9cab33032..92df36731 100644 --- a/platforms/h2/src/main/java/io/ebean/platform/h2/H2HistoryTrigger.java +++ b/platforms/h2/src/main/java/io/ebean/platform/h2/H2HistoryTrigger.java @@ -3,13 +3,14 @@ package io.ebean.platform.h2; import io.avaje.applog.AppLog; import org.h2.api.Trigger; -import java.lang.System.Logger.Level; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.time.LocalDateTime; +import static java.lang.System.Logger.Level.DEBUG; + /** * H2 database trigger used to populate history tables to support the @History feature. */ @@ -72,7 +73,7 @@ public class H2HistoryTrigger implements Trigger { insertSql.append(");"); this.insertHistorySql = insertSql.toString(); - log.log(Level.DEBUG, "History table insert sql: {0}", insertHistorySql); + log.log(DEBUG, "History table insert sql: {0}", insertHistorySql); } @Override From c297ebda5a19a700d0652ac80aec981bafd8b6b0 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 23 Aug 2022 16:09:45 +1200 Subject: [PATCH 024/127] No effective change, fix typo in DatabasePlatform variable name --- .../java/io/ebean/config/dbplatform/DatabasePlatform.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java index 3bb2cced8..faed5973d 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java @@ -670,8 +670,8 @@ public class DatabasePlatform { } private boolean isQuote(char ch) { - for (char identifer : QUOTED_IDENTIFIERS) { - if (identifer == ch) { + for (char identifier : QUOTED_IDENTIFIERS) { + if (identifier == ch) { return true; } } From 01155c3466ccde48a3a9e241fa48c82f20a7134d Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 23 Aug 2022 18:16:51 +1200 Subject: [PATCH 025/127] #2798 - SQL Anywhere: invalid escape character on like expression --- .../xtest/platform/PlatformLikeTest.java | 76 +++++++++++++++++++ .../sqlanywhere/SqlAnywherePlatform.java | 2 +- 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 ebean-test/src/test/java/io/ebean/xtest/platform/PlatformLikeTest.java diff --git a/ebean-test/src/test/java/io/ebean/xtest/platform/PlatformLikeTest.java b/ebean-test/src/test/java/io/ebean/xtest/platform/PlatformLikeTest.java new file mode 100644 index 000000000..db1e27aa4 --- /dev/null +++ b/ebean-test/src/test/java/io/ebean/xtest/platform/PlatformLikeTest.java @@ -0,0 +1,76 @@ +package io.ebean.xtest.platform; + +import io.ebean.config.dbplatform.DatabasePlatform; +import io.ebean.platform.cockroach.CockroachPlatform; +import io.ebean.platform.db2.DB2LuwPlatform; +import io.ebean.platform.h2.H2Platform; +import io.ebean.platform.hana.HanaPlatform; +import io.ebean.platform.mariadb.MariaDbPlatform; +import io.ebean.platform.mysql.MySql55Platform; +import io.ebean.platform.mysql.MySqlPlatform; +import io.ebean.platform.oracle.Oracle11Platform; +import io.ebean.platform.oracle.Oracle12Platform; +import io.ebean.platform.oracle.OraclePlatform; +import io.ebean.platform.postgres.Postgres9Platform; +import io.ebean.platform.postgres.PostgresPlatform; +import io.ebean.platform.sqlanywhere.SqlAnywherePlatform; +import io.ebean.platform.sqlite.SQLitePlatform; +import io.ebean.platform.sqlserver.SqlServer17Platform; +import io.ebean.platform.yugabyte.YugabytePlatform; +import org.junit.jupiter.api.Test; + +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +class PlatformLikeTest { + + DatabasePlatform h2 = new H2Platform(); + DatabasePlatform pg = new PostgresPlatform(); + DatabasePlatform pg9 = new Postgres9Platform(); + DatabasePlatform cockroach = new CockroachPlatform(); + DatabasePlatform yugabyte = new YugabytePlatform(); + DatabasePlatform mysql = new MySqlPlatform(); + DatabasePlatform mysql55 = new MySql55Platform(); + DatabasePlatform maria = new MariaDbPlatform(); + + DatabasePlatform sqlite = new SQLitePlatform(); + DatabasePlatform sqlAnywhere = new SqlAnywherePlatform(); + DatabasePlatform sqlServer17 = new SqlServer17Platform(); + DatabasePlatform oracle = new OraclePlatform(); + DatabasePlatform oracle11 = new Oracle11Platform(); + DatabasePlatform oracle12 = new Oracle12Platform(); + DatabasePlatform hana = new HanaPlatform(); + DatabasePlatform db2Luw = new DB2LuwPlatform(); + + @Test + void rawLike_escapeEmpty() { + for (DatabasePlatform platform : List.of(h2, pg, pg9, yugabyte, cockroach, mysql, mysql55, maria)) { + assertThat(platform.getLikeClause(true)).isEqualTo("like ? escape''"); + assertThat(platform.getLikeClause(false)).isEqualTo("like ? escape'|'"); + } + } + + @Test + void ansi_rawLike() { + for (DatabasePlatform platform : List.of(sqlite, sqlAnywhere, sqlServer17, oracle, oracle11, oracle12, hana, db2Luw)) { + assertThat(platform.getLikeClause(true)).isEqualTo("like ?"); + } + } + + @Test + void escapeLike_noEscape() { + for (DatabasePlatform platform : List.of(sqlite, sqlServer17)) { + assertThat(platform.getLikeClause(false)).isEqualTo("like ?"); + } + } + + + @Test + void ansi_escapeLike() { + for (DatabasePlatform platform : List.of(sqlAnywhere, oracle, oracle11, oracle12, hana, db2Luw)) { + assertThat(platform.getLikeClause(false)).isEqualTo("like ? escape'|'"); + } + } + +} diff --git a/platforms/sqlanywhere/src/main/java/io/ebean/platform/sqlanywhere/SqlAnywherePlatform.java b/platforms/sqlanywhere/src/main/java/io/ebean/platform/sqlanywhere/SqlAnywherePlatform.java index 7a8894b21..a9aa3f41d 100644 --- a/platforms/sqlanywhere/src/main/java/io/ebean/platform/sqlanywhere/SqlAnywherePlatform.java +++ b/platforms/sqlanywhere/src/main/java/io/ebean/platform/sqlanywhere/SqlAnywherePlatform.java @@ -21,7 +21,7 @@ public class SqlAnywherePlatform extends DatabasePlatform { super(); this.platform = Platform.SQLANYWHERE; this.dbIdentity.setIdType(IdType.IDENTITY); - + this.likeClauseRaw = "like ?"; this.sqlLimiter = new SqlAnywhereLimiter(); this.dbIdentity.setSupportsGetGeneratedKeys(false); this.dbIdentity.setSelectLastInsertedIdTemplate("select @@IDENTITY as X"); From 6c7cedc1f19c5b84ad42a7828498d49004c5b523 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 25 Aug 2022 10:19:11 +1200 Subject: [PATCH 026/127] #2799 - Remove unused DatabasePlatform.treatEmptyStringsAsNull --- .../ebean/config/dbplatform/DatabasePlatform.java | 14 -------------- .../io/ebean/platform/oracle/OraclePlatform.java | 1 - 2 files changed, 15 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java index faed5973d..854ff0dc1 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java @@ -140,11 +140,6 @@ public class DatabasePlatform { */ protected int clobDbType = Types.CLOB; - /** - * For Oracle treat empty strings as null. - */ - protected boolean treatEmptyStringsAsNull; - /** * The database platform name. */ @@ -542,15 +537,6 @@ public class DatabasePlatform { return clobDbType; } - /** - * Return true if empty strings should be treated as null. - * - * @return true, if checks if is treat empty strings as null - */ - public boolean isTreatEmptyStringsAsNull() { - return treatEmptyStringsAsNull; - } - /** * Return true if a compound ID in (...) type expression needs to be in * expanded form of (a=? and b=?) or (a=? and b=?) or ... rather than (a,b) in diff --git a/platforms/oracle/src/main/java/io/ebean/platform/oracle/OraclePlatform.java b/platforms/oracle/src/main/java/io/ebean/platform/oracle/OraclePlatform.java index a76880606..b067907f7 100644 --- a/platforms/oracle/src/main/java/io/ebean/platform/oracle/OraclePlatform.java +++ b/platforms/oracle/src/main/java/io/ebean/platform/oracle/OraclePlatform.java @@ -38,7 +38,6 @@ public class OraclePlatform extends DatabasePlatform { this.dbDefaultValue.setFalse("0"); this.dbDefaultValue.setTrue("1"); this.dbDefaultValue.setNow("current_timestamp"); - this.treatEmptyStringsAsNull = true; this.likeClauseRaw = "like ?"; this.exceptionTranslator = From 341b9a74493e67155b1c3eead6a72a205fdc9636 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 25 Aug 2022 10:23:14 +1200 Subject: [PATCH 027/127] Refactor DatabasePlatform - remove unused method tableExists() --- .../ebean/config/dbplatform/DatabasePlatform.java | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java index 854ff0dc1..9517462b7 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java @@ -769,19 +769,6 @@ public class DatabasePlatform { return false; } - /** - * Return true if the table exists. - */ - public boolean tableExists(Connection connection, String catalog, String schema, String table) throws SQLException { - DatabaseMetaData metaData = connection.getMetaData(); - ResultSet tables = metaData.getTables(catalog, schema, table, null); - try { - return tables.next(); - } finally { - JdbcClose.close(tables); - } - } - /** * Escapes the like string for this DB-Platform */ From 456086fb3cabf5ff235024b99f2117bb0781566c Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 25 Aug 2022 10:34:39 +1200 Subject: [PATCH 028/127] Refactor DatabasePlatform - rename getters to accessors Although this is public API these getters are not expected to be used by application code so, I feel comfortable making this change. --- .../config/AbstractNamingConvention.java | 2 +- .../java/io/ebean/config/DatabaseConfig.java | 2 +- .../config/dbplatform/DatabasePlatform.java | 70 +++++++++---------- .../server/core/AbstractSqlQueryRequest.java | 2 +- .../server/core/DefaultContainer.java | 2 +- .../server/core/DefaultServer.java | 6 +- .../server/core/InitDataSource.java | 2 +- .../server/core/InternalConfiguration.java | 10 +-- .../server/core/OrmQueryRequest.java | 4 +- .../server/deploy/BeanDescriptorManager.java | 10 +-- .../server/deploy/parse/AnnotationBase.java | 2 +- .../server/deploy/parse/AnnotationFields.java | 2 +- .../platform/DbExpressionHandlerFactory.java | 2 +- .../server/persist/DefaultPersister.java | 2 +- .../server/persist/dml/InsertMeta.java | 4 +- .../server/persist/dml/MetaFactory.java | 2 +- .../server/query/CQueryBuilder.java | 16 ++--- .../server/query/CQueryEngine.java | 6 +- .../transaction/TransactionManager.java | 2 +- .../server/type/DefaultTypeFactory.java | 2 +- .../server/type/DefaultTypeManager.java | 10 +-- .../dbmigration/DdlGenerator.java | 4 +- .../dbmigration/DefaultDbMigration.java | 6 +- .../dbmigration/IndexMigration.java | 2 +- .../ddlgeneration/PlatformDdlBuilder.java | 2 +- .../ddlgeneration/platform/BaseTableDdl.java | 6 +- .../ddlgeneration/platform/MySqlDdl.java | 2 +- .../ddlgeneration/platform/PlatformDdl.java | 12 ++-- .../model/build/ModelBuildContext.java | 2 +- .../dbmigration/HanaPlatformTest.java | 4 +- .../dbmigration/SqlserverPlatformTest.java | 6 +- .../platform/PlatformTypeConverterTest.java | 10 +-- .../test/java/io/localtest/BaseTestCase.java | 8 +-- .../java/io/ebean/xtest/BaseTestCase.java | 12 ++-- .../config/PlatformNoGeneratedKeysTest.java | 2 +- .../config/dbplatform/DbTypeMapTest.java | 14 ++-- .../config/dbplatform/HanaPlatformTest.java | 4 +- .../dbplatform/SqlserverPlatformTest.java | 6 +- .../sqlserver/SqlServer2016PlatformTest.java | 2 +- .../xtest/dbmigration/DbMigrationTest.java | 2 +- .../xtest/platform/PlatformLikeTest.java | 10 +-- .../org/tests/basic/encrypt/TestEncrypt.java | 2 +- .../batchinsert/TestBatchInsertSimple.java | 2 +- .../TestBatchOnCascadeExceptionHandling.java | 2 +- .../org/tests/idkeys/TestGeneratedKeys.java | 4 +- .../TestElementCollectionBasicCache.java | 2 +- .../TestElementCollectionBasicMapCache.java | 2 +- .../clickhouse/ClickHousePlatform.java | 2 +- .../io/ebean/platform/h2/H2PlatformTest.java | 2 +- .../io/ebean/platform/hana/HanaPlatform.java | 2 +- .../platform/mysql/MySqlPlatformTest.java | 5 +- .../platform/oracle/OraclePlatformTest.java | 10 +-- .../platform/postgres/PostgresPlatform.java | 2 +- .../postgres/PostgresPlatformTest.java | 4 +- .../sqlserver/SqlServerBasePlatform.java | 2 +- .../sqlserver/SqlServerPlatformTest.java | 2 +- 56 files changed, 160 insertions(+), 161 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/config/AbstractNamingConvention.java b/ebean-api/src/main/java/io/ebean/config/AbstractNamingConvention.java index 33d607e97..b317ad7a5 100644 --- a/ebean-api/src/main/java/io/ebean/config/AbstractNamingConvention.java +++ b/ebean-api/src/main/java/io/ebean/config/AbstractNamingConvention.java @@ -237,7 +237,7 @@ public abstract class AbstractNamingConvention implements NamingConvention { } buffer.append(rhsTableName); - int maxTableNameLength = databasePlatform.getMaxTableNameLength(); + int maxTableNameLength = databasePlatform.maxTableNameLength(); // maxConstraintNameLength is used as the max table name length. if (buffer.length() > maxTableNameLength) { diff --git a/ebean-api/src/main/java/io/ebean/config/DatabaseConfig.java b/ebean-api/src/main/java/io/ebean/config/DatabaseConfig.java index 0ed96efda..ca778d02c 100644 --- a/ebean-api/src/main/java/io/ebean/config/DatabaseConfig.java +++ b/ebean-api/src/main/java/io/ebean/config/DatabaseConfig.java @@ -3024,7 +3024,7 @@ public class DatabaseConfig { public PersistBatch appliedPersistBatchOnCascade() { if (persistBatchOnCascade == PersistBatch.INHERIT) { // use the platform default (ALL except SQL Server which has NONE) - return databasePlatform.getPersistBatchOnCascade(); + return databasePlatform.persistBatchOnCascade(); } return persistBatchOnCascade; } diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java index 9517462b7..117da5ac8 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java @@ -288,7 +288,7 @@ public class DatabasePlatform { /** * Return the platform key. */ - public Platform getPlatform() { + public Platform platform() { return platform; } @@ -298,14 +298,14 @@ public class DatabasePlatform { * "generic" is returned when no specific database platform has been set or found. *

*/ - public String getName() { + public String name() { return platform.name().toLowerCase(); } /** * Return true if we are using Sequence batch mode rather than STEP. */ - public boolean isSequenceBatchMode() { + public boolean sequenceBatchMode() { return sequenceBatchMode; } @@ -319,52 +319,52 @@ public class DatabasePlatform { /** * Return true if this database platform supports native ILIKE expression. */ - public boolean isSupportsNativeIlike() { + public boolean supportsNativeIlike() { return supportsNativeIlike; } /** * Return true if the platform supports delete statements with table alias. */ - public boolean isSupportsDeleteTableAlias() { + public boolean supportsDeleteTableAlias() { return supportsDeleteTableAlias; } /** - * Return true if the collation is case sensitive. + * Return true if the collation is case-sensitive. *

* This is expected to be used for testing only. *

*/ - public boolean isCaseSensitiveCollation() { + public boolean caseSensitiveCollation() { return caseSensitiveCollation; } /** * Return true if the platform supports SavepointId values. */ - public boolean isSupportsSavepointId() { + public boolean supportsSavepointId() { return supportsSavepointId; } /** * Return true if migrations should use stored procedures. */ - public boolean isUseMigrationStoredProcedures() { + public boolean useMigrationStoredProcedures() { return useMigrationStoredProcedures; } /** * Return true if the platform supports LIMIT with sql update. */ - public boolean isInlineSqlUpdateLimit() { + public boolean inlineSqlUpdateLimit() { return inlineSqlUpdateLimit; } /** * Return the maximum number of bind values this database platform allows or zero for no limit. */ - public int getMaxInBinding() { + public int maxInBinding() { return maxInBinding; } @@ -374,14 +374,14 @@ public class DatabasePlatform { * This is used when deriving names of intersection tables. *

*/ - public int getMaxTableNameLength() { + public int maxTableNameLength() { return maxTableNameLength; } /** * Return the maximum constraint name allowed for the platform. */ - public int getMaxConstraintNameLength() { + public int maxConstraintNameLength() { return maxConstraintNameLength; } @@ -426,7 +426,7 @@ public class DatabasePlatform { /** * Return the DbEncrypt handler for this DB platform. */ - public DbEncrypt getDbEncrypt() { + public DbEncrypt dbEncrypt() { return dbEncrypt; } @@ -440,7 +440,7 @@ public class DatabasePlatform { /** * Return the history support for this database platform. */ - public DbHistorySupport getHistorySupport() { + public DbHistorySupport historySupport() { return historySupport; } @@ -454,14 +454,14 @@ public class DatabasePlatform { /** * So no except for Postgres and CockroachDB. */ - public boolean isNativeArrayType() { + public boolean nativeArrayType() { return false; } /** * Return true if the DB supports native UUID. */ - public boolean isNativeUuidType() { + public boolean nativeUuidType() { return nativeUuidType; } @@ -470,21 +470,21 @@ public class DatabasePlatform { * * @return the db type map */ - public DbPlatformTypeMapping getDbTypeMap() { + public DbPlatformTypeMapping dbTypeMap() { return dbTypeMap; } /** * Return the mapping for DB column default values. */ - public DbDefaultValue getDbDefaultValue() { + public DbDefaultValue dbDefaultValue() { return dbDefaultValue; } /** * Return the column alias prefix. */ - public String getColumnAliasPrefix() { + public String columnAliasPrefix() { return columnAliasPrefix; } @@ -498,21 +498,21 @@ public class DatabasePlatform { /** * Return the close quote for quoted identifiers. */ - public String getCloseQuote() { + public String closeQuote() { return closeQuote; } /** * Return the open quote for quoted identifiers. */ - public String getOpenQuote() { + public String openQuote() { return openQuote; } /** * Return the JDBC type used to store booleans. */ - public int getBooleanDbType() { + public int booleanDbType() { return booleanDbType; } @@ -523,7 +523,7 @@ public class DatabasePlatform { * example. *

*/ - public int getBlobDbType() { + public int blobDbType() { return blobDbType; } @@ -533,7 +533,7 @@ public class DatabasePlatform { * This is typically Types.CLOB but for Postgres is Types.VARCHAR. *

*/ - public int getClobDbType() { + public int clobDbType() { return clobDbType; } @@ -542,7 +542,7 @@ public class DatabasePlatform { * expanded form of (a=? and b=?) or (a=? and b=?) or ... rather than (a,b) in * ((?,?),(?,?),...); */ - public boolean isIdInExpandedForm() { + public boolean idInExpandedForm() { return idInExpandedForm; } @@ -553,7 +553,7 @@ public class DatabasePlatform { * This specifically is required for MySql when processing large results. *

*/ - public boolean isForwardOnlyHintOnFindIterate() { + public boolean forwardOnlyHintOnFindIterate() { return forwardOnlyHintOnFindIterate; } @@ -571,7 +571,7 @@ public class DatabasePlatform { * This specifically is required for Hana which doesn't support CONCUR_UPDATABLE *

*/ - public boolean isSupportsResultSetConcurrencyModeUpdatable() { + public boolean supportsResultSetConcurrencyModeUpdatable() { return supportsResultSetConcurrencyModeUpdatable; } @@ -591,7 +591,7 @@ public class DatabasePlatform { * * @return the db identity */ - public DbIdentity getDbIdentity() { + public DbIdentity dbIdentity() { return dbIdentity; } @@ -604,14 +604,14 @@ public class DatabasePlatform { * * @return the sql limiter */ - public SqlLimiter getSqlLimiter() { + public SqlLimiter sqlLimiter() { return sqlLimiter; } /** * Return the BasicSqlLimiter for limit/offset of SqlQuery queries. */ - public BasicSqlLimiter getBasicSqlLimiter() { + public BasicSqlLimiter basicSqlLimiter() { return basicSqlLimiter; } @@ -680,14 +680,14 @@ public class DatabasePlatform { /** * Set to true if select count against anonymous view requires an alias. */ - public boolean isSelectCountWithAlias() { + public boolean selectCountWithAlias() { return selectCountWithAlias; } /** * Return true if select count with subquery needs column alias (SQL Server). */ - public boolean isSelectCountWithColumnAlias() { + public boolean selectCountWithColumnAlias() { return selectCountWithColumnAlias; } @@ -718,14 +718,14 @@ public class DatabasePlatform { *

* This may include an escape clause to disable a default escape character. */ - public String getLikeClause(boolean rawLikeExpression) { + public String likeClause(boolean rawLikeExpression) { return rawLikeExpression ? likeClauseRaw : likeClauseEscaped; } /** * Return the platform default JDBC batch mode for persist cascade. */ - public PersistBatch getPersistBatchOnCascade() { + public PersistBatch persistBatchOnCascade() { return persistBatchOnCascade; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/AbstractSqlQueryRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/AbstractSqlQueryRequest.java index 01812fe5f..2424dd2b3 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/AbstractSqlQueryRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/AbstractSqlQueryRequest.java @@ -119,7 +119,7 @@ public abstract class AbstractSqlQueryRequest implements CancelableQuery { int firstRow = query.getFirstRow(); int maxRows = query.getMaxRows(); if (firstRow > 0 || maxRows > 0) { - return server.databasePlatform().getBasicSqlLimiter().limit(sql, firstRow, maxRows); + return server.databasePlatform().basicSqlLimiter().limit(sql, firstRow, maxRows); } return sql; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java index 16df24f4c..f15ab82ff 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultContainer.java @@ -108,7 +108,7 @@ public final class DefaultContainer implements SpiContainer { startServer(online, server); } DbOffline.reset(); - log.log(INFO, "Started database[{0}] platform[{1}] in {2}ms", config.getName(), config.getDatabasePlatform().getPlatform(), System.currentTimeMillis() - start); + log.log(INFO, "Started database[{0}] platform[{1}] in {2}ms", config.getName(), config.getDatabasePlatform().platform(), System.currentTimeMillis() - start); return server; } finally { lock.unlock(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java index d0333acda..02acc09a7 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java @@ -251,7 +251,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { @Override public Platform platform() { - return databasePlatform.getPlatform(); + return databasePlatform.platform(); } @Override @@ -318,7 +318,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { migrationRunner.setDefaultDbSchema(dbSchema); } migrationRunner.setName(config.getName()); - Platform platform = config.getDatabasePlatform().getPlatform(); + Platform platform = config.getDatabasePlatform().platform(); migrationRunner.setBasePlatform(platform.base().name().toLowerCase()); migrationRunner.setPlatform(platform.name().toLowerCase()); migrationRunner.loadProperties(config.getProperties()); @@ -560,7 +560,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { try (Connection connection = dataSource().getConnection()) { for (String table : tables) { executeSql(connection, databasePlatform.truncateStatement(table)); - if (databasePlatform.getPlatform().base() == Platform.DB2) { + if (databasePlatform.platform().base() == Platform.DB2) { // DB2 requires commit after each truncate statement connection.commit(); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/InitDataSource.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/InitDataSource.java index c7e17119f..3eb6dfe3a 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/InitDataSource.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/InitDataSource.java @@ -105,7 +105,7 @@ final class InitDataSource { } boolean isPostgresAllQuotedIdentifiers() { - return config.isAllQuotedIdentifiers() && Platform.POSTGRES == config.getDatabasePlatform().getPlatform().base(); + return config.isAllQuotedIdentifiers() && Platform.POSTGRES == config.getDatabasePlatform().platform().base(); } private DataSource create(DataSourceConfig dsConfig, boolean readOnly) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java index 51e4a7d5f..67c3142fe 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java @@ -116,7 +116,7 @@ public final class InternalConfiguration { this.databasePlatform = config.getDatabasePlatform(); this.expressionFactory = initExpressionFactory(config); this.typeManager = new DefaultTypeManager(config, bootupClasses); - this.multiValueBind = createMultiValueBind(databasePlatform.getPlatform()); + this.multiValueBind = createMultiValueBind(databasePlatform.platform()); this.deployInherit = new DeployInherit(bootupClasses); this.deployCreateProperties = new DeployCreateProperties(typeManager); this.deployUtil = new DeployUtil(typeManager, config); @@ -171,7 +171,7 @@ public final class InternalConfiguration { * Create and return the ExpressionFactory based on configuration and database platform. */ private ExpressionFactory initExpressionFactory(DatabaseConfig config) { - boolean nativeIlike = config.isExpressionNativeIlike() && databasePlatform.isSupportsNativeIlike(); + boolean nativeIlike = config.isExpressionNativeIlike() && databasePlatform.supportsNativeIlike(); return new DefaultExpressionFactory(config.isExpressionEqualsWithNullAsNoop(), nativeIlike); } @@ -265,7 +265,7 @@ public final class InternalConfiguration { DbExpressionHandler jsonHandler = getDbExpressionHandler(databasePlatform); - DbHistorySupport historySupport = databasePlatform.getHistorySupport(); + DbHistorySupport historySupport = databasePlatform.historySupport(); if (historySupport == null) { return new Binder(typeManager, logManager, 0, false, jsonHandler, dataTimeZone, multiValueBind); } @@ -321,7 +321,7 @@ public final class InternalConfiguration { } private Platform getPlatform() { - return getDatabasePlatform().getPlatform(); + return getDatabasePlatform().platform(); } public DatabasePlatform getDatabasePlatform() { @@ -577,7 +577,7 @@ public final class InternalConfiguration { return QueryPlanManager.NOOP; } long threshold = config.getQueryPlanThresholdMicros(); - return new CQueryPlanManager(transactionManager, threshold, queryPlanLogger(databasePlatform.getPlatform()), extraMetrics); + return new CQueryPlanManager(transactionManager, threshold, queryPlanLogger(databasePlatform.platform()), extraMetrics); } /** diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java index 23df28e38..29dd4ac1d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java @@ -100,7 +100,7 @@ public final class OrmQueryRequest extends BeanRequest implements SpiOrmQuery */ @Override public String dbLikeClause(boolean rawLikeExpression) { - return server.databasePlatform().getLikeClause(rawLikeExpression); + return server.databasePlatform().likeClause(rawLikeExpression); } /** @@ -761,7 +761,7 @@ public final class OrmQueryRequest extends BeanRequest implements SpiOrmQuery * Return true if no MaxRows or use LIMIT in SQL update. */ public boolean isInlineSqlUpdateLimit() { - return query.getMaxRows() < 1 || server.databasePlatform().isInlineSqlUpdateLimit(); + return query.getMaxRows() < 1 || server.databasePlatform().inlineSqlUpdateLimit(); } public int forwardOnlyFetchSize() { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java index bfdc4cd17..f54784a34 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java @@ -134,7 +134,7 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy this.encryptKeyManager = this.config.getEncryptKeyManager(); this.databasePlatform = this.config.getDatabasePlatform(); this.multiValueBind = config.getMultiValueBind(); - this.idBinderFactory = new IdBinderFactory(databasePlatform.isIdInExpandedForm(), multiValueBind); + this.idBinderFactory = new IdBinderFactory(databasePlatform.idInExpandedForm(), multiValueBind); this.queryPlanTTLSeconds = this.config.getQueryPlanTTLSeconds(); this.asOfViewSuffix = asOfViewSuffix(databasePlatform, this.config); String versionsBetweenSuffix = versionsBetweenSuffix(databasePlatform, this.config); @@ -142,7 +142,7 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy this.bootupClasses = config.getBootupClasses(); this.createProperties = config.getDeployCreateProperties(); this.namingConvention = this.config.getNamingConvention(); - this.dbIdentity = config.getDatabasePlatform().getDbIdentity(); + this.dbIdentity = config.getDatabasePlatform().dbIdentity(); this.deplyInherit = config.getDeployInherit(); this.deployUtil = config.getDeployUtil(); this.typeManager = deployUtil.getTypeManager(); @@ -196,7 +196,7 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy * Return the AsOfViewSuffix based on the DbHistorySupport. */ private String asOfViewSuffix(DatabasePlatform databasePlatform, DatabaseConfig serverConfig) { - DbHistorySupport historySupport = databasePlatform.getHistorySupport(); + DbHistorySupport historySupport = databasePlatform.historySupport(); // with historySupport returns a simple view suffix or the sql2011 as of timestamp suffix return (historySupport == null) ? serverConfig.getAsOfViewSuffix() : historySupport.getAsOfViewSuffix(serverConfig.getAsOfViewSuffix()); } @@ -205,7 +205,7 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy * Return the versions between timestamp suffix based on the DbHistorySupport. */ private String versionsBetweenSuffix(DatabasePlatform databasePlatform, DatabaseConfig serverConfig) { - DbHistorySupport historySupport = databasePlatform.getHistorySupport(); + DbHistorySupport historySupport = databasePlatform.historySupport(); // with historySupport returns a simple view suffix or the sql2011 versions between timestamp suffix return (historySupport == null) ? serverConfig.getAsOfViewSuffix() : historySupport.getVersionsBetweenSuffix(serverConfig.getAsOfViewSuffix()); } @@ -1251,7 +1251,7 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy String primaryKeyColumn = desc.getSinglePrimaryKeyColumn(); seqName = namingConvention.getSequenceName(desc.getBaseTable(), primaryKeyColumn); } - int stepSize = desc.setIdentitySequenceBatchMode(databasePlatform.isSequenceBatchMode()); + int stepSize = desc.setIdentitySequenceBatchMode(databasePlatform.sequenceBatchMode()); desc.setIdGenerator(createSequenceIdGenerator(seqName, stepSize)); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationBase.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationBase.java index b74035dc0..1d182c6a6 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationBase.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationBase.java @@ -53,7 +53,7 @@ abstract class AnnotationBase { AnnotationBase(DeployUtil util) { this.util = util; this.databasePlatform = util.getDbPlatform(); - this.platform = databasePlatform.getPlatform(); + this.platform = databasePlatform.platform(); this.namingConvention = util.getNamingConvention(); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java index f93fbf028..331b6926d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java @@ -398,7 +398,7 @@ final class AnnotationFields extends AnnotationParser { return; } if (dbEncString) { - DbEncrypt dbEncrypt = util.getDbPlatform().getDbEncrypt(); + DbEncrypt dbEncrypt = util.getDbPlatform().dbEncrypt(); if (dbEncrypt != null) { // check if we have a DB encryption function for this type int jdbcType = prop.getScalarType().getJdbcType(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/DbExpressionHandlerFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/DbExpressionHandlerFactory.java index da3eee778..189b669e2 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/DbExpressionHandlerFactory.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/expression/platform/DbExpressionHandlerFactory.java @@ -10,7 +10,7 @@ public final class DbExpressionHandlerFactory { * Create and return the appropriate platform specific handing of expressions. */ public static DbExpressionHandler from(DatabasePlatform databasePlatform) { - Platform platform = databasePlatform.getPlatform().base(); + Platform platform = databasePlatform.platform().base(); switch (platform) { case H2: return new H2DbExpression(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java index 104ccbe74..f78e11ea8 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/DefaultPersister.java @@ -50,7 +50,7 @@ public final class DefaultPersister implements Persister { this.server = server; this.beanDescriptorManager = descMgr; this.persistExecute = new DefaultPersistExecute(binder, server.config().getPersistBatchSize()); - this.maxInBinding = server.databasePlatform().getMaxInBinding(); + this.maxInBinding = server.databasePlatform().maxInBinding(); } @Override diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/InsertMeta.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/InsertMeta.java index e3a89d1fa..1e59a193c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/InsertMeta.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/InsertMeta.java @@ -38,7 +38,7 @@ final class InsertMeta { private final Platform platform; InsertMeta(DatabasePlatform dbPlatform, BeanDescriptor desc, Bindable shadowFKey, BindableId id, BindableList all) { - this.platform = dbPlatform.getPlatform(); + this.platform = dbPlatform.platform(); this.discriminator = getDiscriminator(desc); this.id = id; this.all = all; @@ -69,7 +69,7 @@ final class InsertMeta { this.supportsSelectLastInsertedId = false; } else { this.identityDbColumns = new String[]{id.getIdentityColumn()}; - this.supportsGetGeneratedKeys = dbPlatform.getDbIdentity().isSupportsGetGeneratedKeys(); + this.supportsGetGeneratedKeys = dbPlatform.dbIdentity().isSupportsGetGeneratedKeys(); this.supportsSelectLastInsertedId = desc.supportsSelectLastInsertedId(); } this.sqlNullId = genSql(true, tableName, false); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/MetaFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/MetaFactory.java index 9819aaf77..28d43f6db 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/MetaFactory.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/dml/MetaFactory.java @@ -40,7 +40,7 @@ final class MetaFactory { MetaFactory(DatabasePlatform dbPlatform) { this.dbPlatform = dbPlatform; // to bind encryption data before or after the encryption key - DbEncrypt dbEncrypt = dbPlatform.getDbEncrypt(); + DbEncrypt dbEncrypt = dbPlatform.dbEncrypt(); boolean bindEncryptDataFirst = dbEncrypt == null || dbEncrypt.isBindEncryptDataFirst(); this.baseFact = new FactoryBaseProperties(bindEncryptDataFirst); this.embeddedFact = new FactoryEmbedded(bindEncryptDataFirst); 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 3f308d99a..3594c19a0 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 @@ -60,11 +60,11 @@ final class CQueryBuilder { this.binder = binder; this.draftSupport = draftSupport; this.historySupport = historySupport; - this.columnAliasPrefix = dbPlatform.getColumnAliasPrefix(); - this.sqlLimiter = dbPlatform.getSqlLimiter(); + this.columnAliasPrefix = dbPlatform.columnAliasPrefix(); + this.sqlLimiter = dbPlatform.sqlLimiter(); this.rawSqlHandler = new CQueryBuilderRawSql(sqlLimiter, dbPlatform); - this.selectCountWithAlias = dbPlatform.isSelectCountWithAlias(); - this.selectCountWithColumnAlias = dbPlatform.isSelectCountWithColumnAlias(); + this.selectCountWithAlias = dbPlatform.selectCountWithAlias(); + this.selectCountWithColumnAlias = dbPlatform.selectCountWithColumnAlias(); } /** @@ -118,10 +118,10 @@ final class CQueryBuilder { private String buildDeleteSql(OrmQueryRequest request, String rootTableAlias, CQueryPredicates predicates, SqlTree sqlTree) { String alias = alias(rootTableAlias); if (sqlTree.noJoins() && !request.query().hasMaxRowsOrFirstRow()) { - if (dbPlatform.isSupportsDeleteTableAlias()) { + if (dbPlatform.supportsDeleteTableAlias()) { // delete from table ... return aliasReplace(buildSqlDelete("delete", request, predicates, sqlTree).getSql(), alias); - } else if (isMySql(dbPlatform.getPlatform())) { + } else if (isMySql(dbPlatform.platform())) { return aliasReplace(buildSqlDelete("delete " + alias, request, predicates, sqlTree).getSql(), alias); } else { // simple - delete from table ... @@ -380,7 +380,7 @@ final class CQueryBuilder { } private String nativeQueryPaging(SpiQuery query, String sql) { - return dbPlatform.getBasicSqlLimiter().limit(sql, query.getFirstRow(), query.getMaxRows()); + return dbPlatform.basicSqlLimiter().limit(sql, query.getFirstRow(), query.getMaxRows()); } /** @@ -399,7 +399,7 @@ final class CQueryBuilder { try { // For SqlServer we need either "selectMethod=cursor" in the connection string or fetch explicitly a cursorable // statement here by specifying ResultSet.CONCUR_UPDATABLE - PreparedStatement statement = connection.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, dbPlatform.isSupportsResultSetConcurrencyModeUpdatable() ? ResultSet.CONCUR_UPDATABLE : ResultSet.CONCUR_READ_ONLY); + PreparedStatement statement = connection.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, dbPlatform.supportsResultSetConcurrencyModeUpdatable() ? ResultSet.CONCUR_UPDATABLE : ResultSet.CONCUR_READ_ONLY); predicates.bind(statement, connection); ResultSet resultSet = statement.executeQuery(); ResultSetMetaData metaData = resultSet.getMetaData(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java index ad2cdbae8..c4fec72dd 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryEngine.java @@ -43,13 +43,13 @@ public final class CQueryEngine { this.dbPlatform = dbPlatform; this.defaultFetchSizeFindEach = config.getJdbcFetchSizeFindEach(); this.defaultFetchSizeFindList = config.getJdbcFetchSizeFindList(); - this.forwardOnlyHintOnFindIterate = dbPlatform.isForwardOnlyHintOnFindIterate(); - this.historySupport = new CQueryHistorySupport(dbPlatform.getHistorySupport(), asOfTableMapping, config.getAsOfSysPeriod()); + this.forwardOnlyHintOnFindIterate = dbPlatform.forwardOnlyHintOnFindIterate(); + this.historySupport = new CQueryHistorySupport(dbPlatform.historySupport(), asOfTableMapping, config.getAsOfSysPeriod()); this.queryBuilder = new CQueryBuilder(dbPlatform, binder, historySupport, new CQueryDraftSupport(draftTableMap)); } public int forwardOnlyFetchSize() { - Platform base = dbPlatform.getPlatform().base(); + Platform base = dbPlatform.platform().base(); return Platform.MYSQL == base ? Integer.MIN_VALUE : 1; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java index 523315eee..9a167fce8 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java @@ -120,7 +120,7 @@ public class TransactionManager implements SpiTransactionManager { this.txnLogger = logManager.txn(); this.txnDebug = txnLogger.isDebug(); this.databasePlatform = options.config.getDatabasePlatform(); - this.supportsSavepointId = databasePlatform.isSupportsSavepointId(); + this.supportsSavepointId = databasePlatform.supportsSavepointId(); this.skipCacheAfterWrite = options.config.isSkipCacheAfterWrite(); this.notifyL2CacheInForeground = options.notifyL2CacheInForeground; this.autoPersistUpdates = options.config.isAutoPersistUpdates(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeFactory.java index b962a4811..f0a700670 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeFactory.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeFactory.java @@ -50,7 +50,7 @@ final class DefaultTypeFactory { return createBoolean(trueValue, falseValue); } // determine based on database platform configuration - int booleanDbType = config.getDatabasePlatform().getBooleanDbType(); + int booleanDbType = config.getDatabasePlatform().booleanDbType(); if (booleanDbType == Types.BIT) { return new ScalarTypeBoolean.BitBoolean(); } 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 a1b7c3798..ca2c35609 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 @@ -167,7 +167,7 @@ public final class DefaultTypeManager implements TypeManager { } private PlatformArrayTypeFactory arrayTypeListFactory(DatabasePlatform databasePlatform) { - if (databasePlatform.isNativeArrayType()) { + if (databasePlatform.nativeArrayType()) { return ScalarTypeArrayList.factory(); } else if (databasePlatform.isPlatform(Platform.H2)) { return ScalarTypeArrayListH2.factory(); @@ -176,7 +176,7 @@ public final class DefaultTypeManager implements TypeManager { } private PlatformArrayTypeFactory arrayTypeSetFactory(DatabasePlatform databasePlatform) { - if (databasePlatform.isNativeArrayType()) { + if (databasePlatform.nativeArrayType()) { return ScalarTypeArraySet.factory(); } else if (databasePlatform.isPlatform(Platform.H2)) { return ScalarTypeArraySetH2.factory(); @@ -834,8 +834,8 @@ public final class DefaultTypeManager implements TypeManager { */ private void initialiseStandard(DatabaseConfig config) { DatabasePlatform databasePlatform = config.getDatabasePlatform(); - int platformClobType = databasePlatform.getClobDbType(); - int platformBlobType = databasePlatform.getBlobDbType(); + int platformClobType = databasePlatform.clobDbType(); + int platformBlobType = databasePlatform.blobDbType(); nativeMap.put(DbPlatformType.HSTORE, hstoreType); @@ -857,7 +857,7 @@ public final class DefaultTypeManager implements TypeManager { } PlatformConfig.DbUuid dbUuid = config.getPlatformConfig().getDbUuid(); - if (offlineMigrationGeneration || (databasePlatform.isNativeUuidType() && dbUuid.useNativeType())) { + if (offlineMigrationGeneration || (databasePlatform.nativeUuidType() && dbUuid.useNativeType())) { addType(UUID.class, new ScalarTypeUUIDNative()); } else { // Store UUID as binary(16) or varchar(40) diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java index 7f9c2ba6b..7567ad4cf 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java @@ -58,7 +58,7 @@ public class DdlGenerator implements SpiDdlGenerator { this.createOnly = config.isDdlCreateOnly(); this.dbSchema = config.getDbSchema(); final DatabasePlatform databasePlatform = server.databasePlatform(); - this.platform = databasePlatform.getPlatform(); + this.platform = databasePlatform.platform(); this.platformName = platform.base().name(); if (!config.getTenantMode().isDdlEnabled() && config.isDdlRun()) { log.log(WARNING, "DDL can't be run on startup with TenantMode " + config.getTenantMode()); @@ -66,7 +66,7 @@ public class DdlGenerator implements SpiDdlGenerator { this.useMigrationStoredProcedures = false; } else { this.runDdl = config.isDdlRun(); - this.useMigrationStoredProcedures = config.getDatabasePlatform().isUseMigrationStoredProcedures(); + this.useMigrationStoredProcedures = config.getDatabasePlatform().useMigrationStoredProcedures(); } this.scriptTransform = createScriptTransform(config); this.baseDir = initBaseDir(); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java index f20b39121..a96957d0a 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java @@ -209,7 +209,7 @@ public class DefaultDbMigration implements DbMigration { public void setPlatform(DatabasePlatform databasePlatform) { this.databasePlatform = databasePlatform; if (!online) { - DbOffline.setPlatform(databasePlatform.getPlatform()); + DbOffline.setPlatform(databasePlatform.platform()); } } @@ -388,8 +388,8 @@ public class DefaultDbMigration implements DbMigration { if (extraDdl != null) { List ddlScript = extraDdl.getDdlScript(); for (DdlScript script : ddlScript) { - if (!script.isDrop() && matchPlatform(dbPlatform.getPlatform(), script.getPlatforms())) { - if (!checkSkip || dbPlatform.isUseMigrationStoredProcedures()) { + if (!script.isDrop() && matchPlatform(dbPlatform.platform(), script.getPlatforms())) { + if (!checkSkip || dbPlatform.useMigrationStoredProcedures()) { writeExtraDdl(migrationDir, script); } } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/IndexMigration.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/IndexMigration.java index c0f6221d7..a2c14388b 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/IndexMigration.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/IndexMigration.java @@ -40,7 +40,7 @@ class IndexMigration { File init() { pathStack.push(""); - String name = "idx_" + databasePlatform.getPlatform().base().name().toLowerCase() + ".migrations"; + String name = "idx_" + databasePlatform.platform().base().name().toLowerCase() + ".migrations"; return new File(topDir, name); } diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/PlatformDdlBuilder.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/PlatformDdlBuilder.java index 07e0be2bf..6302433c5 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/PlatformDdlBuilder.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/PlatformDdlBuilder.java @@ -13,7 +13,7 @@ public class PlatformDdlBuilder { */ public static PlatformDdl create(DatabasePlatform platform) { - switch (platform.getPlatform()) { + switch (platform.platform()) { case H2: return new H2Ddl(platform); case DB2: diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java index 93a8459ea..e9fafccc4 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java @@ -121,7 +121,7 @@ public class BaseTableDdl implements TableDdl { } private List getScriptsForPlatform(List scripts) { - Platform searchPlatform = platformDdl.getPlatform().getPlatform(); + Platform searchPlatform = platformDdl.getPlatform().platform(); for (DdlScript script : scripts) { if (matchPlatform(searchPlatform, script.getPlatforms())) { // just returns the first match (rather than appends them) @@ -444,7 +444,7 @@ public class BaseTableDdl implements TableDdl { } private boolean platformInclude(String platforms) { - return matchPlatform(platformDdl.getPlatform().getPlatform(), platforms); + return matchPlatform(platformDdl.getPlatform().platform(), platforms); } /** @@ -610,7 +610,7 @@ public class BaseTableDdl implements TableDdl { public void generate(DdlWrite writer, DropTable dropTable) { dropTable(writer.applyPostAlter(), dropTable.getName()); if (hasValue(dropTable.getSequenceCol()) - && platformDdl.getPlatform().getDbIdentity().isSupportsSequence()) { + && platformDdl.getPlatform().dbIdentity().isSupportsSequence()) { String sequenceName = dropTable.getSequenceName(); if (!hasValue(sequenceName)) { sequenceName = namingConvention.getSequenceName(dropTable.getName(), dropTable.getSequenceCol()); diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java index 987303b20..9862b9e1c 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/MySqlDdl.java @@ -24,7 +24,7 @@ public class MySqlDdl extends PlatformDdl { this.dropUniqueConstraint = "drop index"; this.historyDdl = new MySqlHistoryDdl(); this.inlineComments = true; - this.useMigrationStoredProcedures = platform.isUseMigrationStoredProcedures(); + this.useMigrationStoredProcedures = platform.useMigrationStoredProcedures(); } /** diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java index 8443f2532..d7e825e86 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java @@ -97,9 +97,9 @@ public class PlatformDdl { public PlatformDdl(DatabasePlatform platform) { this.platform = platform; - this.dbIdentity = platform.getDbIdentity(); - this.dbDefaultValue = platform.getDbDefaultValue(); - this.typeConverter = new PlatformTypeConverter(platform.getDbTypeMap()); + this.dbIdentity = platform.dbIdentity(); + this.dbDefaultValue = platform.dbDefaultValue(); + this.typeConverter = new PlatformTypeConverter(platform.dbTypeMap()); } /** @@ -719,11 +719,11 @@ public class PlatformDdl { * As 36^6 > 31^2, the resulting string is never longer as 6 chars. */ protected String maxConstraintName(String name) { - if (name.length() > platform.getMaxConstraintNameLength()) { + if (name.length() > platform.maxConstraintNameLength()) { int hash = name.hashCode() & 0x7FFFFFFF; name = VowelRemover.trim(name, 4); - if (name.length() > platform.getMaxConstraintNameLength()) { - return name.substring(0, platform.getMaxConstraintNameLength() - 7) + "_" + Integer.toString(hash, 36); + if (name.length() > platform.maxConstraintNameLength()) { + return name.substring(0, platform.maxConstraintNameLength() - 7) + "_" + Integer.toString(hash, 36); } } return name; diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildContext.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildContext.java index a20874497..b0e57619b 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildContext.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/model/build/ModelBuildContext.java @@ -56,7 +56,7 @@ public class ModelBuildContext { if (constraintNaming.getMaxLength() != null) { return constraintNaming.getMaxLength(); } - return new DefaultConstraintMaxLength(databasePlatform.getMaxConstraintNameLength()); + return new DefaultConstraintMaxLength(databasePlatform.maxConstraintNameLength()); } /** diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/HanaPlatformTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/HanaPlatformTest.java index d7d3ff29d..b40708345 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/HanaPlatformTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/HanaPlatformTest.java @@ -49,7 +49,7 @@ public class HanaPlatformTest { HanaPlatform platform = new HanaPlatform(); platform.configure(new PlatformConfig()); - DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + DbPlatformType dbType = platform.dbTypeMap().get(DbPlatformType.UUID); assertThat(dbType.renderType(0, 0)).isEqualTo("varchar(40)"); } @@ -63,7 +63,7 @@ public class HanaPlatformTest { platform.configure(config); - DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + DbPlatformType dbType = platform.dbTypeMap().get(DbPlatformType.UUID); assertThat(dbType.renderType(0, 0)).isEqualTo("varbinary(16)"); } } diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/SqlserverPlatformTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/SqlserverPlatformTest.java index 89e7b087f..402f7bfa9 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/SqlserverPlatformTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/SqlserverPlatformTest.java @@ -38,7 +38,7 @@ public class SqlserverPlatformTest { public void uuid_default() { platform.configure(new PlatformConfig()); - DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + DbPlatformType dbType = platform.dbTypeMap().get(DbPlatformType.UUID); assertThat(dbType.renderType(0, 0)).isEqualTo("uniqueidentifier"); } @@ -52,7 +52,7 @@ public class SqlserverPlatformTest { platform.configure(config); - DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + DbPlatformType dbType = platform.dbTypeMap().get(DbPlatformType.UUID); assertThat(dbType.renderType(0, 0)).isEqualTo("binary(16)"); } @@ -64,7 +64,7 @@ public class SqlserverPlatformTest { platform.configure(config); - DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + DbPlatformType dbType = platform.dbTypeMap().get(DbPlatformType.UUID); assertThat(dbType.renderType(0, 0)).isEqualTo("nvarchar(40)"); } } diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformTypeConverterTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformTypeConverterTest.java index b9665298e..44cddd421 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformTypeConverterTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformTypeConverterTest.java @@ -14,7 +14,7 @@ public class PlatformTypeConverterTest { public void convert_withSuffix_expect_suffix() { PostgresPlatform pg = new PostgresPlatform(); - DbPlatformTypeMapping dbTypeMap = pg.getDbTypeMap(); + DbPlatformTypeMapping dbTypeMap = pg.dbTypeMap(); PlatformTypeConverter converter = new PlatformTypeConverter(dbTypeMap); @@ -30,7 +30,7 @@ public class PlatformTypeConverterTest { public void testConvert_given_postgres() throws Exception { PostgresPlatform pg = new PostgresPlatform(); - DbPlatformTypeMapping dbTypeMap = pg.getDbTypeMap(); + DbPlatformTypeMapping dbTypeMap = pg.dbTypeMap(); PlatformTypeConverter converter = new PlatformTypeConverter(dbTypeMap); @@ -52,7 +52,7 @@ public class PlatformTypeConverterTest { H2Platform platform = new H2Platform(); - DbPlatformTypeMapping dbTypeMap = platform.getDbTypeMap(); + DbPlatformTypeMapping dbTypeMap = platform.dbTypeMap(); PlatformTypeConverter converter = new PlatformTypeConverter(dbTypeMap); @@ -69,7 +69,7 @@ public class PlatformTypeConverterTest { public void testConvertJsonTypes_given_postgres() { PostgresPlatform platform = new PostgresPlatform(); - DbPlatformTypeMapping dbTypeMap = platform.getDbTypeMap(); + DbPlatformTypeMapping dbTypeMap = platform.dbTypeMap(); PlatformTypeConverter converter = new PlatformTypeConverter(dbTypeMap); @@ -84,7 +84,7 @@ public class PlatformTypeConverterTest { public void testConvertJsonTypes_given_h2() { H2Platform platform = new H2Platform(); - DbPlatformTypeMapping dbTypeMap = platform.getDbTypeMap(); + DbPlatformTypeMapping dbTypeMap = platform.dbTypeMap(); PlatformTypeConverter converter = new PlatformTypeConverter(dbTypeMap); diff --git a/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java b/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java index 37e701fe6..48d3b7750 100644 --- a/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java +++ b/ebean-ddl-generator/src/test/java/io/localtest/BaseTestCase.java @@ -78,7 +78,7 @@ public abstract class BaseTestCase { } public boolean isPlatformBooleanNative() { - return Types.BOOLEAN == spiEbeanServer().databasePlatform().getBooleanDbType(); + return Types.BOOLEAN == spiEbeanServer().databasePlatform().booleanDbType(); } public boolean isPlatformOrderNullsSupport() { @@ -86,11 +86,11 @@ public abstract class BaseTestCase { } public boolean isPlatformSupportsDeleteTableAlias() { - return spiEbeanServer().databasePlatform().isSupportsDeleteTableAlias(); + return spiEbeanServer().databasePlatform().supportsDeleteTableAlias(); } public boolean isPersistBatchOnCascade() { - return spiEbeanServer().databasePlatform().getPersistBatchOnCascade() != PersistBatch.NONE; + return spiEbeanServer().databasePlatform().persistBatchOnCascade() != PersistBatch.NONE; } /** @@ -101,7 +101,7 @@ public abstract class BaseTestCase { } protected Platform platform() { - return spiEbeanServer().databasePlatform().getPlatform().base(); + return spiEbeanServer().databasePlatform().platform().base(); } protected SpiEbeanServer spiEbeanServer() { diff --git a/ebean-test/src/test/java/io/ebean/xtest/BaseTestCase.java b/ebean-test/src/test/java/io/ebean/xtest/BaseTestCase.java index cc4d04326..0685992d0 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/BaseTestCase.java +++ b/ebean-test/src/test/java/io/ebean/xtest/BaseTestCase.java @@ -168,7 +168,7 @@ public abstract class BaseTestCase { } public boolean isPlatformCaseSensitive() { - return spiEbeanServer().databasePlatform().isCaseSensitiveCollation(); + return spiEbeanServer().databasePlatform().caseSensitiveCollation(); } public boolean isLimitOffset() { @@ -248,7 +248,7 @@ public abstract class BaseTestCase { } public boolean isPlatformBooleanNative() { - return Types.BOOLEAN == spiEbeanServer().databasePlatform().getBooleanDbType(); + return Types.BOOLEAN == spiEbeanServer().databasePlatform().booleanDbType(); } public boolean isPlatformOrderNullsSupport() { @@ -256,11 +256,11 @@ public abstract class BaseTestCase { } public boolean isPlatformSupportsDeleteTableAlias() { - return spiEbeanServer().databasePlatform().isSupportsDeleteTableAlias(); + return spiEbeanServer().databasePlatform().supportsDeleteTableAlias(); } public boolean isPersistBatchOnCascade() { - return spiEbeanServer().databasePlatform().getPersistBatchOnCascade() != PersistBatch.NONE; + return spiEbeanServer().databasePlatform().persistBatchOnCascade() != PersistBatch.NONE; } /** @@ -279,11 +279,11 @@ public abstract class BaseTestCase { } protected Platform platform() { - return spiEbeanServer().databasePlatform().getPlatform().base(); + return spiEbeanServer().databasePlatform().platform().base(); } protected IdType idType() { - return spiEbeanServer().databasePlatform().getDbIdentity().getIdType(); + return spiEbeanServer().databasePlatform().dbIdentity().getIdType(); } protected SpiEbeanServer spiEbeanServer() { diff --git a/ebean-test/src/test/java/io/ebean/xtest/config/PlatformNoGeneratedKeysTest.java b/ebean-test/src/test/java/io/ebean/xtest/config/PlatformNoGeneratedKeysTest.java index efa396b08..d92c94905 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/config/PlatformNoGeneratedKeysTest.java +++ b/ebean-test/src/test/java/io/ebean/xtest/config/PlatformNoGeneratedKeysTest.java @@ -92,7 +92,7 @@ public class PlatformNoGeneratedKeysTest { config.setName("h2_noGeneratedKeys"); OtherH2Platform platform = new OtherH2Platform(); - DbIdentity dbIdentity = platform.getDbIdentity(); + DbIdentity dbIdentity = platform.dbIdentity(); dbIdentity.setIdType(IdType.IDENTITY); dbIdentity.setSupportsIdentity(true); dbIdentity.setSupportsGetGeneratedKeys(false); diff --git a/ebean-test/src/test/java/io/ebean/xtest/config/dbplatform/DbTypeMapTest.java b/ebean-test/src/test/java/io/ebean/xtest/config/dbplatform/DbTypeMapTest.java index 79f0b0ac8..bafb9e8f8 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/config/dbplatform/DbTypeMapTest.java +++ b/ebean-test/src/test/java/io/ebean/xtest/config/dbplatform/DbTypeMapTest.java @@ -20,7 +20,7 @@ class DbTypeMapTest { @Test void testLookupRender_given_postgresPlatformType() { PostgresPlatform pg = new PostgresPlatform(); - DbPlatformTypeMapping dbTypeMap = pg.getDbTypeMap(); + DbPlatformTypeMapping dbTypeMap = pg.dbTypeMap(); assertThat(dbTypeMap.lookup("clob", false).renderType(0, 0)).isEqualTo("text"); assertThat(dbTypeMap.lookup("CLOB", false).renderType(0, 0)).isEqualTo("text"); @@ -36,7 +36,7 @@ class DbTypeMapTest { @Test void testLookupRender_given_mysql() { - DbPlatformTypeMapping dbTypeMap = new MySqlPlatform().getDbTypeMap(); + DbPlatformTypeMapping dbTypeMap = new MySqlPlatform().dbTypeMap(); assertThat(dbTypeMap.lookup("clob", false).renderType(0, 0)).isEqualTo("longtext"); assertThat(dbTypeMap.lookup("CLOB", false).renderType(0, 0)).isEqualTo("longtext"); @@ -52,7 +52,7 @@ class DbTypeMapTest { @Test void testLookupRender_given_sqlserver17() { - DbPlatformTypeMapping dbTypeMap = new SqlServer17Platform().getDbTypeMap(); + DbPlatformTypeMapping dbTypeMap = new SqlServer17Platform().dbTypeMap(); assertThat(dbTypeMap.lookup("clob", false).renderType(0, 0)).isEqualTo("nvarchar(max)"); assertThat(dbTypeMap.lookup("CLOB", false).renderType(0, 0)).isEqualTo("nvarchar(max)"); @@ -68,7 +68,7 @@ class DbTypeMapTest { @Test void testLookupRender_given_sqlserver16() { - DbPlatformTypeMapping dbTypeMap = new SqlServer16Platform().getDbTypeMap(); + DbPlatformTypeMapping dbTypeMap = new SqlServer16Platform().dbTypeMap(); assertThat(dbTypeMap.lookup("clob", false).renderType(0, 0)).isEqualTo("text"); assertThat(dbTypeMap.lookup("CLOB", false).renderType(0, 0)).isEqualTo("text"); @@ -84,7 +84,7 @@ class DbTypeMapTest { @Test void testLookupRender_given_oracle() { - DbPlatformTypeMapping dbTypeMap = new OraclePlatform().getDbTypeMap(); + DbPlatformTypeMapping dbTypeMap = new OraclePlatform().dbTypeMap(); assertThat(dbTypeMap.lookup("clob", false).renderType(0, 0)).isEqualTo("clob"); assertThat(dbTypeMap.lookup("CLOB", false).renderType(0, 0)).isEqualTo("clob"); @@ -100,7 +100,7 @@ class DbTypeMapTest { @Test void testLookupRender_given_h2() { - DbPlatformTypeMapping dbTypeMap = new H2Platform().getDbTypeMap(); + DbPlatformTypeMapping dbTypeMap = new H2Platform().dbTypeMap(); assertThat(dbTypeMap.lookup("clob", false).renderType(0, 0)).isEqualTo("clob"); assertThat(dbTypeMap.lookup("CLOB", false).renderType(0, 0)).isEqualTo("clob"); @@ -116,7 +116,7 @@ class DbTypeMapTest { @Test void testLookupRender_given_clickhouse() { - DbPlatformTypeMapping dbTypeMap = new ClickHousePlatform().getDbTypeMap(); + DbPlatformTypeMapping dbTypeMap = new ClickHousePlatform().dbTypeMap(); assertThat(dbTypeMap.lookup("clob", false).renderType(0, 0)).isEqualTo("String"); assertThat(dbTypeMap.lookup("CLOB", false).renderType(0, 0)).isEqualTo("String"); diff --git a/ebean-test/src/test/java/io/ebean/xtest/config/dbplatform/HanaPlatformTest.java b/ebean-test/src/test/java/io/ebean/xtest/config/dbplatform/HanaPlatformTest.java index f7fc9392d..aa65aaaa5 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/config/dbplatform/HanaPlatformTest.java +++ b/ebean-test/src/test/java/io/ebean/xtest/config/dbplatform/HanaPlatformTest.java @@ -16,7 +16,7 @@ public class HanaPlatformTest { HanaPlatform platform = new HanaPlatform(); platform.configure(new PlatformConfig()); - DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + DbPlatformType dbType = platform.dbTypeMap().get(DbPlatformType.UUID); assertThat(dbType.renderType(0, 0)).isEqualTo("varchar(40)"); } @@ -30,7 +30,7 @@ public class HanaPlatformTest { platform.configure(config); - DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + DbPlatformType dbType = platform.dbTypeMap().get(DbPlatformType.UUID); assertThat(dbType.renderType(0, 0)).isEqualTo("varbinary(16)"); } } diff --git a/ebean-test/src/test/java/io/ebean/xtest/config/dbplatform/SqlserverPlatformTest.java b/ebean-test/src/test/java/io/ebean/xtest/config/dbplatform/SqlserverPlatformTest.java index fbbb8924c..a81ac11a3 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/config/dbplatform/SqlserverPlatformTest.java +++ b/ebean-test/src/test/java/io/ebean/xtest/config/dbplatform/SqlserverPlatformTest.java @@ -15,7 +15,7 @@ public class SqlserverPlatformTest { public void uuid_default() { platform.configure(new PlatformConfig()); - DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + DbPlatformType dbType = platform.dbTypeMap().get(DbPlatformType.UUID); assertThat(dbType.renderType(0, 0)).isEqualTo("uniqueidentifier"); } @@ -29,7 +29,7 @@ public class SqlserverPlatformTest { platform.configure(config); - DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + DbPlatformType dbType = platform.dbTypeMap().get(DbPlatformType.UUID); assertThat(dbType.renderType(0, 0)).isEqualTo("binary(16)"); } @@ -41,7 +41,7 @@ public class SqlserverPlatformTest { platform.configure(config); - DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + DbPlatformType dbType = platform.dbTypeMap().get(DbPlatformType.UUID); assertThat(dbType.renderType(0, 0)).isEqualTo("nvarchar(40)"); } } diff --git a/ebean-test/src/test/java/io/ebean/xtest/config/dbplatform/sqlserver/SqlServer2016PlatformTest.java b/ebean-test/src/test/java/io/ebean/xtest/config/dbplatform/sqlserver/SqlServer2016PlatformTest.java index 206b7f65d..4fe5836ad 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/config/dbplatform/sqlserver/SqlServer2016PlatformTest.java +++ b/ebean-test/src/test/java/io/ebean/xtest/config/dbplatform/sqlserver/SqlServer2016PlatformTest.java @@ -14,6 +14,6 @@ public class SqlServer2016PlatformTest { @Test public void testHistorySupport() { SqlServer17Platform platform = new SqlServer17Platform(); - assertTrue(platform.getHistorySupport() instanceof SqlServerHistorySupport); + assertTrue(platform.historySupport() instanceof SqlServerHistorySupport); } } diff --git a/ebean-test/src/test/java/io/ebean/xtest/dbmigration/DbMigrationTest.java b/ebean-test/src/test/java/io/ebean/xtest/dbmigration/DbMigrationTest.java index 29da0d419..02378bc86 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/dbmigration/DbMigrationTest.java +++ b/ebean-test/src/test/java/io/ebean/xtest/dbmigration/DbMigrationTest.java @@ -201,7 +201,7 @@ public class DbMigrationTest extends BaseTestCase { System.err.println("FIXME: Oracle history support seems to be broken"); return; } - DbHistorySupport history = server().pluginApi().databasePlatform().getHistorySupport(); + DbHistorySupport history = server().pluginApi().databasePlatform().historySupport(); if (history == null) { return; } diff --git a/ebean-test/src/test/java/io/ebean/xtest/platform/PlatformLikeTest.java b/ebean-test/src/test/java/io/ebean/xtest/platform/PlatformLikeTest.java index db1e27aa4..131613c5f 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/platform/PlatformLikeTest.java +++ b/ebean-test/src/test/java/io/ebean/xtest/platform/PlatformLikeTest.java @@ -46,22 +46,22 @@ class PlatformLikeTest { @Test void rawLike_escapeEmpty() { for (DatabasePlatform platform : List.of(h2, pg, pg9, yugabyte, cockroach, mysql, mysql55, maria)) { - assertThat(platform.getLikeClause(true)).isEqualTo("like ? escape''"); - assertThat(platform.getLikeClause(false)).isEqualTo("like ? escape'|'"); + assertThat(platform.likeClause(true)).isEqualTo("like ? escape''"); + assertThat(platform.likeClause(false)).isEqualTo("like ? escape'|'"); } } @Test void ansi_rawLike() { for (DatabasePlatform platform : List.of(sqlite, sqlAnywhere, sqlServer17, oracle, oracle11, oracle12, hana, db2Luw)) { - assertThat(platform.getLikeClause(true)).isEqualTo("like ?"); + assertThat(platform.likeClause(true)).isEqualTo("like ?"); } } @Test void escapeLike_noEscape() { for (DatabasePlatform platform : List.of(sqlite, sqlServer17)) { - assertThat(platform.getLikeClause(false)).isEqualTo("like ?"); + assertThat(platform.likeClause(false)).isEqualTo("like ?"); } } @@ -69,7 +69,7 @@ class PlatformLikeTest { @Test void ansi_escapeLike() { for (DatabasePlatform platform : List.of(sqlAnywhere, oracle, oracle11, oracle12, hana, db2Luw)) { - assertThat(platform.getLikeClause(false)).isEqualTo("like ? escape'|'"); + assertThat(platform.likeClause(false)).isEqualTo("like ? escape'|'"); } } diff --git a/ebean-test/src/test/java/org/tests/basic/encrypt/TestEncrypt.java b/ebean-test/src/test/java/org/tests/basic/encrypt/TestEncrypt.java index 9998c1669..a0f48a5ed 100644 --- a/ebean-test/src/test/java/org/tests/basic/encrypt/TestEncrypt.java +++ b/ebean-test/src/test/java/org/tests/basic/encrypt/TestEncrypt.java @@ -136,7 +136,7 @@ public class TestEncrypt extends BaseTestCase { assertEquals(EBasicEncrypt.Status.ONE, e2.getStatus()); SpiEbeanServer server = (SpiEbeanServer) DB.getDefault(); - DbEncrypt dbEncrypt = server.databasePlatform().getDbEncrypt(); + DbEncrypt dbEncrypt = server.databasePlatform().dbEncrypt(); if (dbEncrypt == null) { // can not test the where clause diff --git a/ebean-test/src/test/java/org/tests/batchinsert/TestBatchInsertSimple.java b/ebean-test/src/test/java/org/tests/batchinsert/TestBatchInsertSimple.java index 03102a19c..0589c1194 100644 --- a/ebean-test/src/test/java/org/tests/batchinsert/TestBatchInsertSimple.java +++ b/ebean-test/src/test/java/org/tests/batchinsert/TestBatchInsertSimple.java @@ -134,7 +134,7 @@ public class TestBatchInsertSimple extends BaseTestCase { Transaction transaction = DB.beginTransaction(); try { transaction.setBatchMode(true); - transaction.setBatchOnCascade(PersistBatch.ALL.equals(spiEbeanServer().databasePlatform().getPersistBatchOnCascade())); + transaction.setBatchOnCascade(PersistBatch.ALL.equals(spiEbeanServer().databasePlatform().persistBatchOnCascade())); transaction.setBatchSize(20); // escalate based on batchOnCascade value diff --git a/ebean-test/src/test/java/org/tests/batchinsert/TestBatchOnCascadeExceptionHandling.java b/ebean-test/src/test/java/org/tests/batchinsert/TestBatchOnCascadeExceptionHandling.java index c639cd563..d9501c731 100644 --- a/ebean-test/src/test/java/org/tests/batchinsert/TestBatchOnCascadeExceptionHandling.java +++ b/ebean-test/src/test/java/org/tests/batchinsert/TestBatchOnCascadeExceptionHandling.java @@ -90,7 +90,7 @@ public class TestBatchOnCascadeExceptionHandling extends BaseTestCase { Transaction txn = server.beginTransaction(); try { assertThat(txn.isBatchMode()).isFalse(); - assertThat(txn.isBatchOnCascade()).isSameAs(PersistBatch.ALL.equals(spiEbeanServer().databasePlatform().getPersistBatchOnCascade())); + assertThat(txn.isBatchOnCascade()).isSameAs(PersistBatch.ALL.equals(spiEbeanServer().databasePlatform().persistBatchOnCascade())); failingOperation.run(); Assertions.fail("PersistenceException expected"); diff --git a/ebean-test/src/test/java/org/tests/idkeys/TestGeneratedKeys.java b/ebean-test/src/test/java/org/tests/idkeys/TestGeneratedKeys.java index 470469d41..6c0a1d27f 100644 --- a/ebean-test/src/test/java/org/tests/idkeys/TestGeneratedKeys.java +++ b/ebean-test/src/test/java/org/tests/idkeys/TestGeneratedKeys.java @@ -73,7 +73,7 @@ public class TestGeneratedKeys extends BaseTestCase { private long readSequenceValue(Transaction tx, String sequence) throws SQLException { String sql; - switch (spiEbeanServer().databasePlatform().getPlatform().base()) { + switch (spiEbeanServer().databasePlatform().platform().base()) { case H2 : sql = "select currval('" + sequence + "')"; break; @@ -92,7 +92,7 @@ public class TestGeneratedKeys extends BaseTestCase { default : throw new UnsupportedOperationException("reading sequence value from " - + spiEbeanServer().databasePlatform().getPlatform() + + spiEbeanServer().databasePlatform().platform() + " is not supported."); } diff --git a/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicCache.java b/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicCache.java index 36c45e538..ac5e0444f 100644 --- a/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicCache.java +++ b/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicCache.java @@ -92,6 +92,6 @@ public class TestElementCollectionBasicCache extends BaseTestCase { @Override public boolean isPersistBatchOnCascade() { - return ((SpiEbeanServer) DB.getDefault()).databasePlatform().getPersistBatchOnCascade() != PersistBatch.NONE; + return ((SpiEbeanServer) DB.getDefault()).databasePlatform().persistBatchOnCascade() != PersistBatch.NONE; } } diff --git a/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicMapCache.java b/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicMapCache.java index 0516f19f8..92e8935ac 100644 --- a/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicMapCache.java +++ b/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicMapCache.java @@ -98,6 +98,6 @@ public class TestElementCollectionBasicMapCache extends BaseTestCase { @Override public boolean isPersistBatchOnCascade() { - return ((SpiEbeanServer) DB.getDefault()).databasePlatform().getPersistBatchOnCascade() != PersistBatch.NONE; + return ((SpiEbeanServer) DB.getDefault()).databasePlatform().persistBatchOnCascade() != PersistBatch.NONE; } } diff --git a/platforms/clickhouse/src/main/java/io/ebean/platform/clickhouse/ClickHousePlatform.java b/platforms/clickhouse/src/main/java/io/ebean/platform/clickhouse/ClickHousePlatform.java index f7472b99c..32ed69ea9 100644 --- a/platforms/clickhouse/src/main/java/io/ebean/platform/clickhouse/ClickHousePlatform.java +++ b/platforms/clickhouse/src/main/java/io/ebean/platform/clickhouse/ClickHousePlatform.java @@ -48,7 +48,7 @@ public class ClickHousePlatform extends DatabasePlatform { } @Override - public boolean isNativeArrayType() { + public boolean nativeArrayType() { return true; } diff --git a/platforms/h2/src/test/java/io/ebean/platform/h2/H2PlatformTest.java b/platforms/h2/src/test/java/io/ebean/platform/h2/H2PlatformTest.java index 6c034d69f..fbbd5bc9c 100644 --- a/platforms/h2/src/test/java/io/ebean/platform/h2/H2PlatformTest.java +++ b/platforms/h2/src/test/java/io/ebean/platform/h2/H2PlatformTest.java @@ -41,6 +41,6 @@ class H2PlatformTest { } private String defaultDefn(DbType type, DatabasePlatform dbPlatform) { - return dbPlatform.getDbTypeMap().get(type).renderType(0, 0); + return dbPlatform.dbTypeMap().get(type).renderType(0, 0); } } diff --git a/platforms/hana/src/main/java/io/ebean/platform/hana/HanaPlatform.java b/platforms/hana/src/main/java/io/ebean/platform/hana/HanaPlatform.java index 529e95050..310968ad6 100644 --- a/platforms/hana/src/main/java/io/ebean/platform/hana/HanaPlatform.java +++ b/platforms/hana/src/main/java/io/ebean/platform/hana/HanaPlatform.java @@ -93,7 +93,7 @@ public class HanaPlatform extends DatabasePlatform { } @Override - public boolean isUseMigrationStoredProcedures() { + public boolean useMigrationStoredProcedures() { return true; } } diff --git a/platforms/mysql/src/test/java/io/ebean/platform/mysql/MySqlPlatformTest.java b/platforms/mysql/src/test/java/io/ebean/platform/mysql/MySqlPlatformTest.java index d65331043..054ecb7d3 100644 --- a/platforms/mysql/src/test/java/io/ebean/platform/mysql/MySqlPlatformTest.java +++ b/platforms/mysql/src/test/java/io/ebean/platform/mysql/MySqlPlatformTest.java @@ -2,7 +2,6 @@ package io.ebean.platform.mysql; import io.ebean.config.PlatformConfig; import io.ebean.config.dbplatform.DbPlatformType; -import io.ebean.platform.mysql.MySqlPlatform; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; @@ -15,7 +14,7 @@ public class MySqlPlatformTest { MySqlPlatform platform = new MySqlPlatform(); platform.configure(new PlatformConfig()); - DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + DbPlatformType dbType = platform.dbTypeMap().get(DbPlatformType.UUID); assertThat(dbType.renderType(0, 0)).isEqualTo("varchar(40)"); } @@ -28,7 +27,7 @@ public class MySqlPlatformTest { config.setDbUuid(PlatformConfig.DbUuid.AUTO_BINARY); platform.configure(config); - DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + DbPlatformType dbType = platform.dbTypeMap().get(DbPlatformType.UUID); assertThat(dbType.renderType(0, 0)).isEqualTo("binary(16)"); } diff --git a/platforms/oracle/src/test/java/io/ebean/platform/oracle/OraclePlatformTest.java b/platforms/oracle/src/test/java/io/ebean/platform/oracle/OraclePlatformTest.java index af2cc0c51..aacc69210 100644 --- a/platforms/oracle/src/test/java/io/ebean/platform/oracle/OraclePlatformTest.java +++ b/platforms/oracle/src/test/java/io/ebean/platform/oracle/OraclePlatformTest.java @@ -11,26 +11,26 @@ class OraclePlatformTest { @Test void columnAliasPrefix_Oracle11Platform() { Oracle11Platform platform11 = new Oracle11Platform(); - assertThat(platform11.getColumnAliasPrefix()).isEqualTo("c"); + assertThat(platform11.columnAliasPrefix()).isEqualTo("c"); } @Test void columnAliasPrefix_Oracle12Platform() { Oracle12Platform platform12 = new Oracle12Platform(); - assertThat(platform12.getColumnAliasPrefix()).isEqualTo("c"); + assertThat(platform12.columnAliasPrefix()).isEqualTo("c"); } @Test void columnAliasPrefix_OraclePlatform() { OraclePlatform platform = new OraclePlatform(); - assertThat(platform.getColumnAliasPrefix()).isNull(); + assertThat(platform.columnAliasPrefix()).isNull(); } @Test void uuid_default() { OraclePlatform platform = new OraclePlatform(); platform.configure(new PlatformConfig()); - DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + DbPlatformType dbType = platform.dbTypeMap().get(DbPlatformType.UUID); assertThat(dbType.renderType(0, 0)).isEqualTo("varchar2(40)"); } @@ -42,7 +42,7 @@ class OraclePlatformTest { platform.configure(config); - DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + DbPlatformType dbType = platform.dbTypeMap().get(DbPlatformType.UUID); assertThat(dbType.renderType(0, 0)).isEqualTo("raw(16)"); } } diff --git a/platforms/postgres/src/main/java/io/ebean/platform/postgres/PostgresPlatform.java b/platforms/postgres/src/main/java/io/ebean/platform/postgres/PostgresPlatform.java index 6257153dc..f59840998 100644 --- a/platforms/postgres/src/main/java/io/ebean/platform/postgres/PostgresPlatform.java +++ b/platforms/postgres/src/main/java/io/ebean/platform/postgres/PostgresPlatform.java @@ -113,7 +113,7 @@ public class PostgresPlatform extends DatabasePlatform { * So we can generate varchar[], int[], uuid[] column definitions and use the associated scalar types. */ @Override - public boolean isNativeArrayType() { + public boolean nativeArrayType() { return true; } diff --git a/platforms/postgres/src/test/java/io/ebean/platform/postgres/PostgresPlatformTest.java b/platforms/postgres/src/test/java/io/ebean/platform/postgres/PostgresPlatformTest.java index b52e3d216..7fe897f40 100644 --- a/platforms/postgres/src/test/java/io/ebean/platform/postgres/PostgresPlatformTest.java +++ b/platforms/postgres/src/test/java/io/ebean/platform/postgres/PostgresPlatformTest.java @@ -19,7 +19,7 @@ class PostgresPlatformTest { PostgresPlatform platform = new PostgresPlatform(); platform.configure(new PlatformConfig()); - DbPlatformType dbType = platform.getDbTypeMap().get(DbPlatformType.UUID); + DbPlatformType dbType = platform.dbTypeMap().get(DbPlatformType.UUID); String columnDefn = dbType.renderType(0, 0); assertThat(columnDefn).isEqualTo("uuid"); @@ -85,7 +85,7 @@ class PostgresPlatformTest { } private String defaultDefn(DbType type, DatabasePlatform dbPlatform) { - return dbPlatform.getDbTypeMap().get(type).renderType(0, 0); + return dbPlatform.dbTypeMap().get(type).renderType(0, 0); } } diff --git a/platforms/sqlserver/src/main/java/io/ebean/platform/sqlserver/SqlServerBasePlatform.java b/platforms/sqlserver/src/main/java/io/ebean/platform/sqlserver/SqlServerBasePlatform.java index 3cf3ed287..be6f3da13 100644 --- a/platforms/sqlserver/src/main/java/io/ebean/platform/sqlserver/SqlServerBasePlatform.java +++ b/platforms/sqlserver/src/main/java/io/ebean/platform/sqlserver/SqlServerBasePlatform.java @@ -122,7 +122,7 @@ abstract class SqlServerBasePlatform extends DatabasePlatform { } @Override - public boolean isUseMigrationStoredProcedures() { + public boolean useMigrationStoredProcedures() { return true; } } diff --git a/platforms/sqlserver/src/test/java/io/ebean/platform/sqlserver/SqlServerPlatformTest.java b/platforms/sqlserver/src/test/java/io/ebean/platform/sqlserver/SqlServerPlatformTest.java index 18c186df7..75c844962 100644 --- a/platforms/sqlserver/src/test/java/io/ebean/platform/sqlserver/SqlServerPlatformTest.java +++ b/platforms/sqlserver/src/test/java/io/ebean/platform/sqlserver/SqlServerPlatformTest.java @@ -51,6 +51,6 @@ class SqlServerPlatformTest { } private String defaultDefn(DbType type, DatabasePlatform dbPlatform) { - return dbPlatform.getDbTypeMap().get(type).renderType(0, 0); + return dbPlatform.dbTypeMap().get(type).renderType(0, 0); } } From 96b674114c74768738b8e1f65facc6a9aa701762 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 25 Aug 2022 11:26:55 +1200 Subject: [PATCH 029/127] Remove the OnQueryOnly (rollback) feature The better approach these days is to use the read-only datasource with autoCommit --- .../config/dbplatform/DatabasePlatform.java | 36 ------- .../server/transaction/JdbcTransaction.java | 101 ++---------------- .../transaction/TransactionManager.java | 30 ------ 3 files changed, 7 insertions(+), 160 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java index 854ff0dc1..b64568e07 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java @@ -22,23 +22,6 @@ public class DatabasePlatform { private static final System.Logger log = EbeanVersion.log; - /** - * Behavior used when ending a query only transaction (at read committed isolation level). - */ - public enum OnQueryOnly { - - /** - * Rollback the transaction. - */ - ROLLBACK, - - /** - * Commit the transaction - */ - COMMIT - } - - /** * Set to true for MySql, no other jdbc drivers need this workaround. */ @@ -59,11 +42,6 @@ public class DatabasePlatform { */ protected boolean supportsNativeJavaTime = true; - /** - * The behaviour used when ending a read only transaction at read committed isolation level. - */ - protected OnQueryOnly onQueryOnly = OnQueryOnly.COMMIT; - /** * The open quote used by quoted identifiers. */ @@ -409,20 +387,6 @@ public class DatabasePlatform { return null; } - /** - * Return the behaviour to use when ending a read only transaction. - */ - public OnQueryOnly getOnQueryOnly() { - return onQueryOnly; - } - - /** - * Set the behaviour to use when ending a read only transaction. - */ - public void setOnQueryOnly(OnQueryOnly onQueryOnly) { - this.onQueryOnly = onQueryOnly; - } - /** * Return the DbEncrypt handler for this DB platform. */ diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java index 35fb61307..4ae9efef8 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java @@ -4,7 +4,6 @@ import io.ebean.ProfileLocation; import io.ebean.TransactionCallback; import io.ebean.annotation.DocStoreMode; import io.ebean.config.DatabaseConfig; -import io.ebean.config.dbplatform.DatabasePlatform.OnQueryOnly; import io.ebean.event.changelog.BeanChange; import io.ebean.event.changelog.ChangeSet; import io.ebeaninternal.api.*; @@ -33,154 +32,69 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { private static final Object PLACEHOLDER = new Object(); private static final String illegalStateMessage = "Transaction is Inactive"; - /** - * The associated TransactionManager. - */ final TransactionManager manager; - - /** - * The transaction id. - */ private final String id; - + private final String logPrefix; private final boolean logSql; private final boolean logSummary; - + private final boolean explicit; + private final boolean onQueryOnlyCommit; /** * The user defined label to group execution statistics. */ private String label; - - /** - * Flag to indicate if this was an explicitly created Transaction. - */ - private final boolean explicit; - - /** - * Behaviour for ending query only transactions. - */ - private final OnQueryOnly onQueryOnly; - - /** - * The status of the transaction. - */ private boolean active; - private boolean rollbackOnly; - private boolean nestedUseSavepoint; - - /** - * The underlying Connection. - */ Connection connection; - - /** - * Used to queue up persist requests for batch execution. - */ private BatchControl batchControl; - - /** - * The event which holds persisted beans. - */ private TransactionEvent event; - - /** - * Holder of the objects fetched to ensure unique objects are used. - */ private SpiPersistenceContext persistenceContext; - - /** - * Used to give developers more control over the insert update and delete - * functionality. - */ private boolean persistCascade = true; - - /** - * Flag used for performance to skip commit or rollback of query only - * transactions in read committed transaction isolation. - */ private boolean queryOnly = true; - private boolean localReadOnly; - private Boolean updateAllLoadedProperties; - private boolean oldBatchMode; - private boolean batchMode; - private boolean batchOnCascadeMode; - private int batchSize = -1; - private boolean batchFlushOnQuery = true; - private Boolean batchGetGeneratedKeys; - private Boolean batchFlushOnMixed; - - private final String logPrefix; - private Object tenantId; - /** * The depth used by batch processing to help the ordering of statements. */ private int depth; - - /** - * Set to true if the connection has autoCommit=true initially. - */ private boolean autoCommit; - private IdentityHashMap persistingBeans; - private HashSet deletingBeansHash; - private HashMap m2mIntersectionSave; - private Map userObjects; - private List callbackList; - private boolean batchOnCascadeSet; - private TChangeLogHolder changeLogHolder; - private List deferredList; - /** * The mode for updating doc store indexes for this transaction. * Only set when you want to override the default behavior. */ private DocStoreMode docStoreMode; - private int docStoreBatchSize; - /** * Explicit control over skipCache. */ private Boolean skipCache; - /** * Default skip cache behavior from {@link DatabaseConfig#isSkipCacheAfterWrite()}. */ private final boolean skipCacheAfterWrite; - DocStoreTransaction docStoreTxn; - private ProfileStream profileStream; - private ProfileLocation profileLocation; - private final long startNanos; - private boolean autoPersistUpdates; - /** - * Create a new JdbcTransaction. - */ JdbcTransaction(String id, boolean explicit, Connection connection, TransactionManager manager) { try { this.active = true; @@ -191,14 +105,13 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { this.connection = connection; this.persistenceContext = new DefaultPersistenceContext(); this.startNanos = System.nanoTime(); - if (manager == null) { this.logSql = false; this.logSummary = false; this.skipCacheAfterWrite = true; this.batchMode = false; this.batchOnCascadeMode = false; - this.onQueryOnly = OnQueryOnly.ROLLBACK; + this.onQueryOnlyCommit = false; } else { this.autoPersistUpdates = explicit && manager.isAutoPersistUpdates(); this.logSql = manager.isLogSql(); @@ -206,7 +119,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { this.skipCacheAfterWrite = manager.isSkipCacheAfterWrite(); this.batchMode = manager.isPersistBatch(); this.batchOnCascadeMode = manager.isPersistBatchOnCascade(); - this.onQueryOnly = manager.onQueryOnly(); + this.onQueryOnlyCommit = true; } checkAutoCommit(connection); @@ -926,14 +839,14 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { private void connectionEndForQueryOnly() { try { withEachCallback(TransactionCallback::preCommit); - if (onQueryOnly == OnQueryOnly.COMMIT) { + if (onQueryOnlyCommit) { performCommit(); } else { performRollback(); } withEachCallback(TransactionCallback::postCommit); } catch (SQLException e) { - log.log(ERROR, "Error when ending a query only transaction via " + onQueryOnly, e); + log.log(ERROR, "Error when ending a query only transaction", e); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java index 523315eee..2ee0ea4ea 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java @@ -10,7 +10,6 @@ import io.ebean.cache.ServerCacheNotification; import io.ebean.cache.ServerCacheNotify; import io.ebean.config.CurrentTenantProvider; import io.ebean.config.dbplatform.DatabasePlatform; -import io.ebean.config.dbplatform.DatabasePlatform.OnQueryOnly; import io.ebean.event.changelog.ChangeLogListener; import io.ebean.event.changelog.ChangeLogPrepare; import io.ebean.event.changelog.ChangeSet; @@ -76,7 +75,6 @@ public class TransactionManager implements SpiTransactionManager { * Flag to indicate the default Isolation is READ COMMITTED. This enables us * to close queryOnly transactions rather than commit or rollback them. */ - private final OnQueryOnly onQueryOnly; private final BackgroundExecutor backgroundExecutor; private final ClusterManager clusterManager; private final String serverName; @@ -145,7 +143,6 @@ public class TransactionManager implements SpiTransactionManager { this.bulkEventListenerMap = new BulkEventListenerMap(options.config.getBulkTableEventListeners()); this.prefix = ""; this.externalTransPrefix = "e"; - this.onQueryOnly = initOnQueryOnly(options.config.getDatabasePlatform().getOnQueryOnly()); CurrentTenantProvider tenantProvider = options.config.getCurrentTenantProvider(); this.transactionFactory = TransactionFactoryBuilder.build(this, dataSourceSupplier, tenantProvider); @@ -253,26 +250,6 @@ public class TransactionManager implements SpiTransactionManager { return persistBatchOnCascade; } - /** - * Return the behaviour to use when a query only transaction is committed. - *

- * There is a potential optimisation available when read committed is the default - * isolation level. If it is, then Connections used only for queries do not require - * commit or rollback but instead can just be put back into the pool via close(). - *

- * If the Isolation level is higher (say SERIALIZABLE) then Connections used - * just for queries do need to be committed or rollback after the query. - */ - final OnQueryOnly initOnQueryOnly(OnQueryOnly dbPlatformOnQueryOnly) { - // first check for a system property 'override' - String systemPropertyValue = System.getProperty("ebean.transaction.onqueryonly"); - if (systemPropertyValue != null) { - return OnQueryOnly.valueOf(systemPropertyValue.trim().toUpperCase()); - } - // default to rollback if not defined on the platform - return dbPlatformOnQueryOnly == null ? OnQueryOnly.COMMIT : dbPlatformOnQueryOnly; - } - public final String name() { return serverName; } @@ -292,13 +269,6 @@ public class TransactionManager implements SpiTransactionManager { return dataSourceSupplier.getReadOnlyDataSource(); } - /** - * Defines the type of behavior to use when closing a transaction that was used to query data only. - */ - final OnQueryOnly onQueryOnly() { - return onQueryOnly; - } - /** * Wrap the externally supplied Connection. */ From 807b0174632d719cd6f5cf24d0c586c2197416bc Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 25 Aug 2022 11:29:25 +1200 Subject: [PATCH 030/127] Bump to ebean-agent 13.8.1 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 196211980..06e52d1b6 100644 --- a/pom.xml +++ b/pom.xml @@ -49,8 +49,8 @@ 13.6.0 6.3 8.2 - 13.8.0 - 13.8.0 + 13.8.1 + 13.8.1 false From 5414fa17cfca5b1c2d56d1747d58d872f2990c1a Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 25 Aug 2022 11:33:58 +1200 Subject: [PATCH 031/127] [maven-release-plugin] prepare release ebean-parent-13.8.1 --- composites/ebean-clickhouse/pom.xml | 14 ++++++++----- composites/ebean-cockroach/pom.xml | 14 ++++++++----- composites/ebean-db2/pom.xml | 14 ++++++++----- composites/ebean-h2/pom.xml | 14 ++++++++----- composites/ebean-hana/pom.xml | 14 ++++++++----- composites/ebean-mariadb/pom.xml | 14 ++++++++----- composites/ebean-mysql/pom.xml | 14 ++++++++----- composites/ebean-nuodb/pom.xml | 14 ++++++++----- composites/ebean-oracle/pom.xml | 14 ++++++++----- composites/ebean-postgres/pom.xml | 14 ++++++++----- composites/ebean-sqlite/pom.xml | 14 ++++++++----- composites/ebean-sqlserver/pom.xml | 14 ++++++++----- composites/ebean-yugabyte/pom.xml | 14 ++++++++----- composites/ebean/pom.xml | 14 ++++++++----- composites/pom.xml | 2 +- ebean-api/pom.xml | 2 +- ebean-autotune/pom.xml | 8 ++++---- ebean-bom/pom.xml | 30 +++++++++++++-------------- ebean-core-type/pom.xml | 4 ++-- ebean-core/pom.xml | 16 +++++++-------- ebean-ddl-generator/pom.xml | 8 ++++---- ebean-externalmapping-api/pom.xml | 2 +- ebean-externalmapping-xml/pom.xml | 12 +++++------ ebean-postgis/pom.xml | 8 ++++---- ebean-querybean/pom.xml | 10 ++++----- ebean-redis/pom.xml | 12 +++++------ ebean-test/pom.xml | 10 ++++----- kotlin-querybean-generator/pom.xml | 10 ++++----- platforms/all/pom.xml | 32 ++++++++++++++++------------- platforms/clickhouse/pom.xml | 8 ++++++-- platforms/db2/pom.xml | 8 ++++++-- platforms/h2/pom.xml | 8 ++++++-- platforms/hana/pom.xml | 8 ++++++-- platforms/hsqldb/pom.xml | 8 ++++++-- platforms/mariadb/pom.xml | 10 ++++++--- platforms/mysql/pom.xml | 8 ++++++-- platforms/nuodb/pom.xml | 8 ++++++-- platforms/oracle/pom.xml | 8 ++++++-- platforms/pom.xml | 2 +- platforms/postgres/pom.xml | 8 ++++++-- platforms/sqlanywhere/pom.xml | 8 ++++++-- platforms/sqlite/pom.xml | 8 ++++++-- platforms/sqlserver/pom.xml | 8 ++++++-- pom.xml | 4 ++-- querybean-generator/pom.xml | 2 +- 45 files changed, 294 insertions(+), 182 deletions(-) diff --git a/composites/ebean-clickhouse/pom.xml b/composites/ebean-clickhouse/pom.xml index 1e8d82489..45c88ad14 100644 --- a/composites/ebean-clickhouse/pom.xml +++ b/composites/ebean-clickhouse/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-clickhouse @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-clickhouse - 13.8.1-SNAPSHOT + 13.8.1 + + + ebean-parent-13.8.1 + diff --git a/composites/ebean-cockroach/pom.xml b/composites/ebean-cockroach/pom.xml index 2950decd7..e4a503902 100644 --- a/composites/ebean-cockroach/pom.xml +++ b/composites/ebean-cockroach/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-cockroach @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-postgres - 13.8.1-SNAPSHOT + 13.8.1 + + + ebean-parent-13.8.1 + diff --git a/composites/ebean-db2/pom.xml b/composites/ebean-db2/pom.xml index a64cb0539..4a44295ea 100644 --- a/composites/ebean-db2/pom.xml +++ b/composites/ebean-db2/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-db2 @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-db2 - 13.8.1-SNAPSHOT + 13.8.1 + + + ebean-parent-13.8.1 + diff --git a/composites/ebean-h2/pom.xml b/composites/ebean-h2/pom.xml index e338b1cda..05bf528bf 100644 --- a/composites/ebean-h2/pom.xml +++ b/composites/ebean-h2/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-h2 @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-h2 - 13.8.1-SNAPSHOT + 13.8.1 + + + ebean-parent-13.8.1 + diff --git a/composites/ebean-hana/pom.xml b/composites/ebean-hana/pom.xml index 7b6877a4b..ecab34bac 100644 --- a/composites/ebean-hana/pom.xml +++ b/composites/ebean-hana/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-hana @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-hana - 13.8.1-SNAPSHOT + 13.8.1 + + + ebean-parent-13.8.1 + diff --git a/composites/ebean-mariadb/pom.xml b/composites/ebean-mariadb/pom.xml index 21d25d57c..e97483689 100644 --- a/composites/ebean-mariadb/pom.xml +++ b/composites/ebean-mariadb/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-mariadb @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-mariadb - 13.8.1-SNAPSHOT + 13.8.1 + + + ebean-parent-13.8.1 + diff --git a/composites/ebean-mysql/pom.xml b/composites/ebean-mysql/pom.xml index 8fccac180..d66de6162 100644 --- a/composites/ebean-mysql/pom.xml +++ b/composites/ebean-mysql/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-mysql @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-mysql - 13.8.1-SNAPSHOT + 13.8.1 + + + ebean-parent-13.8.1 + diff --git a/composites/ebean-nuodb/pom.xml b/composites/ebean-nuodb/pom.xml index 02236b1e0..db3c54b87 100644 --- a/composites/ebean-nuodb/pom.xml +++ b/composites/ebean-nuodb/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-nuodb @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-nuodb - 13.8.1-SNAPSHOT + 13.8.1 + + + ebean-parent-13.8.1 + diff --git a/composites/ebean-oracle/pom.xml b/composites/ebean-oracle/pom.xml index c8b84dfb0..ad72b868e 100644 --- a/composites/ebean-oracle/pom.xml +++ b/composites/ebean-oracle/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-oracle @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-oracle - 13.8.1-SNAPSHOT + 13.8.1 + + + ebean-parent-13.8.1 + diff --git a/composites/ebean-postgres/pom.xml b/composites/ebean-postgres/pom.xml index 9451cd305..2723a77b5 100644 --- a/composites/ebean-postgres/pom.xml +++ b/composites/ebean-postgres/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-postgres @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-postgres - 13.8.1-SNAPSHOT + 13.8.1 + + + ebean-parent-13.8.1 + diff --git a/composites/ebean-sqlite/pom.xml b/composites/ebean-sqlite/pom.xml index 6fb5f7f6f..f7f01607b 100644 --- a/composites/ebean-sqlite/pom.xml +++ b/composites/ebean-sqlite/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-sqlite @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-sqlite - 13.8.1-SNAPSHOT + 13.8.1 + + + ebean-parent-13.8.1 + diff --git a/composites/ebean-sqlserver/pom.xml b/composites/ebean-sqlserver/pom.xml index 3d57702da..5bf044ccc 100644 --- a/composites/ebean-sqlserver/pom.xml +++ b/composites/ebean-sqlserver/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-sqlserver @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-sqlserver - 13.8.1-SNAPSHOT + 13.8.1 + + + ebean-parent-13.8.1 + diff --git a/composites/ebean-yugabyte/pom.xml b/composites/ebean-yugabyte/pom.xml index e043e36db..8cc1c3dc0 100644 --- a/composites/ebean-yugabyte/pom.xml +++ b/composites/ebean-yugabyte/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-yugabyte @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-postgres - 13.8.1-SNAPSHOT + 13.8.1 + + + ebean-parent-13.8.1 + diff --git a/composites/ebean/pom.xml b/composites/ebean/pom.xml index d2a0e18cd..49e9732e4 100644 --- a/composites/ebean/pom.xml +++ b/composites/ebean/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean (all platforms) @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-all - 13.8.1-SNAPSHOT + 13.8.1 + + + ebean-parent-13.8.1 + diff --git a/composites/pom.xml b/composites/pom.xml index 5d0892f77..db9deaef1 100644 --- a/composites/pom.xml +++ b/composites/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1-SNAPSHOT + 13.8.1 composites diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml index 325b0a70a..eb6f35814 100644 --- a/ebean-api/pom.xml +++ b/ebean-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean api diff --git a/ebean-autotune/pom.xml b/ebean-autotune/pom.xml index e4e5d8eed..9ddcfef9d 100644 --- a/ebean-autotune/pom.xml +++ b/ebean-autotune/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1-SNAPSHOT + 13.8.1 @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.8.1 ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 provided @@ -55,7 +55,7 @@ io.ebean ebean-platform-h2 - 13.8.1-SNAPSHOT + 13.8.1 test diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index e67c3c9f3..2d7f1c520 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean bom @@ -89,88 +89,88 @@ io.ebean ebean - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-core-type - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-ddl-generator - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-externalmapping-api - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-externalmapping-xml - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-autotune - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-querybean - 13.8.1-SNAPSHOT + 13.8.1 io.ebean querybean-generator - 13.8.1-SNAPSHOT + 13.8.1 provided io.ebean kotlin-querybean-generator - 13.8.1-SNAPSHOT + 13.8.1 provided io.ebean ebean-test - 13.8.1-SNAPSHOT + 13.8.1 test io.ebean ebean-postgis - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-redis - 13.8.1-SNAPSHOT + 13.8.1 diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index 7cece551f..deaf2b685 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index 12cfd5c72..4500aa3f3 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-core @@ -15,7 +15,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.8.1 @@ -41,19 +41,19 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-core-type - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-externalmapping-api - 13.8.1-SNAPSHOT + 13.8.1 @@ -144,21 +144,21 @@ io.ebean ebean-platform-h2 - 13.8.1-SNAPSHOT + 13.8.1 test io.ebean ebean-platform-postgres - 13.8.1-SNAPSHOT + 13.8.1 test io.ebean ebean-platform-sqlserver - 13.8.1-SNAPSHOT + 13.8.1 test diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index b2d0a7b79..7fc076798 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 13.8.1-SNAPSHOT + 13.8.1 provided io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 provided @@ -58,7 +58,7 @@ io.ebean ebean-platform-all - 13.8.1-SNAPSHOT + 13.8.1 test diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index 1e5e9ba87..26ff76557 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 5a5bf08f1..848e84d86 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,12 +4,12 @@ ebean-parent io.ebean - 13.8.1-SNAPSHOT + 13.8.1 scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.8.1 ebean external mapping xml @@ -21,7 +21,7 @@ io.ebean ebean-externalmapping-api - 13.8.1-SNAPSHOT + 13.8.1 @@ -54,21 +54,21 @@ io.ebean ebean-platform-h2 - 13.8.1-SNAPSHOT + 13.8.1 test io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 test io.ebean ebean-ddl-generator - 13.8.1-SNAPSHOT + 13.8.1 test diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 493d5d33b..2b99a15cf 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean postgis @@ -22,14 +22,14 @@ io.ebean ebean-platform-postgres - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 provided @@ -65,7 +65,7 @@ io.ebean ebean-test - 13.8.1-SNAPSHOT + 13.8.1 test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 59a5320c8..bf33641cf 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 provided @@ -63,21 +63,21 @@ io.ebean ebean-ddl-generator - 13.8.1-SNAPSHOT + 13.8.1 test io.ebean querybean-generator - 13.8.1-SNAPSHOT + 13.8.1 test io.ebean ebean-test - 13.8.1-SNAPSHOT + 13.8.1 test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index f716a18d9..d69a3df0e 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 provided io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 provided io.ebean ebean-querybean - 13.8.1-SNAPSHOT + 13.8.1 test io.ebean querybean-generator - 13.8.1-SNAPSHOT + 13.8.1 test io.ebean ebean-test - 13.8.1-SNAPSHOT + 13.8.1 test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 73ac74db4..319fd3535 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean test @@ -28,20 +28,20 @@ io.ebean ebean-platform-h2 - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 provided io.ebean ebean-ddl-generator - 13.8.1-SNAPSHOT + 13.8.1 @@ -105,7 +105,7 @@ io.ebean ebean-platform-all - 13.8.1-SNAPSHOT + 13.8.1 test diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index 9bb408ca9..e6582a785 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1-SNAPSHOT + 13.8.1 kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 13.8.1-SNAPSHOT + 13.8.1 test @@ -43,7 +43,7 @@ io.ebean ebean-core - 13.8.1-SNAPSHOT + 13.8.1 test @@ -64,14 +64,14 @@ io.ebean ebean-platform-h2 - 13.8.1-SNAPSHOT + 13.8.1 test io.ebean ebean-ddl-generator - 13.8.1-SNAPSHOT + 13.8.1 test diff --git a/platforms/all/pom.xml b/platforms/all/pom.xml index 21ab14e0a..bff82871e 100644 --- a/platforms/all/pom.xml +++ b/platforms/all/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-platform-all @@ -14,68 +14,72 @@ io.ebean ebean-platform-h2 - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-clickhouse - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-db2 - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-hana - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-hsqldb - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-mysql - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-mariadb - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-nuodb - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-oracle - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-postgres - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-sqlanywhere - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-sqlite - 13.8.1-SNAPSHOT + 13.8.1 io.ebean ebean-platform-sqlserver - 13.8.1-SNAPSHOT + 13.8.1 + + + ebean-parent-13.8.1 + diff --git a/platforms/clickhouse/pom.xml b/platforms/clickhouse/pom.xml index 6cd83c906..3ac26051f 100644 --- a/platforms/clickhouse/pom.xml +++ b/platforms/clickhouse/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-platform-clickhouse @@ -14,8 +14,12 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 + + + ebean-parent-13.8.1 + diff --git a/platforms/db2/pom.xml b/platforms/db2/pom.xml index 280c11930..8838d6c11 100644 --- a/platforms/db2/pom.xml +++ b/platforms/db2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-platform-db2 @@ -14,8 +14,12 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 + + + ebean-parent-13.8.1 + diff --git a/platforms/h2/pom.xml b/platforms/h2/pom.xml index b8013788c..db1276dd1 100644 --- a/platforms/h2/pom.xml +++ b/platforms/h2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.1-SNAPSHOT + 13.8.1 ebean-platform-h2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.8.1-SNAPSHOT + 13.8.1 @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.8.1 + HEAD ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 13.8.1 + 13.8.2-SNAPSHOT provided @@ -55,7 +55,7 @@ io.ebean ebean-platform-h2 - 13.8.1 + 13.8.2-SNAPSHOT test diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index 2d7f1c520..0fdad6cdb 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1 + 13.8.2-SNAPSHOT ebean bom @@ -89,88 +89,88 @@ io.ebean ebean - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-api - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-core - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-core-type - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-ddl-generator - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-externalmapping-api - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-externalmapping-xml - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-autotune - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-querybean - 13.8.1 + 13.8.2-SNAPSHOT io.ebean querybean-generator - 13.8.1 + 13.8.2-SNAPSHOT provided io.ebean kotlin-querybean-generator - 13.8.1 + 13.8.2-SNAPSHOT provided io.ebean ebean-test - 13.8.1 + 13.8.2-SNAPSHOT test io.ebean ebean-postgis - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-redis - 13.8.1 + 13.8.2-SNAPSHOT diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index deaf2b685..f1446c821 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1 + 13.8.2-SNAPSHOT ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 13.8.1 + 13.8.2-SNAPSHOT diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index 4500aa3f3..d9c91e99b 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.8.1 + 13.8.2-SNAPSHOT ebean-core @@ -15,7 +15,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.8.1 + HEAD @@ -41,19 +41,19 @@ io.ebean ebean-api - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-core-type - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-externalmapping-api - 13.8.1 + 13.8.2-SNAPSHOT @@ -144,21 +144,21 @@ io.ebean ebean-platform-h2 - 13.8.1 + 13.8.2-SNAPSHOT test io.ebean ebean-platform-postgres - 13.8.1 + 13.8.2-SNAPSHOT test io.ebean ebean-platform-sqlserver - 13.8.1 + 13.8.2-SNAPSHOT test diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index 7fc076798..462021f3d 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1 + 13.8.2-SNAPSHOT ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 13.8.1 + 13.8.2-SNAPSHOT provided io.ebean ebean-core - 13.8.1 + 13.8.2-SNAPSHOT provided @@ -58,7 +58,7 @@ io.ebean ebean-platform-all - 13.8.1 + 13.8.2-SNAPSHOT test diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index 26ff76557..56651d1ad 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1 + 13.8.2-SNAPSHOT ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 848e84d86..6a73bfad1 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,12 +4,12 @@ ebean-parent io.ebean - 13.8.1 + 13.8.2-SNAPSHOT scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.8.1 + HEAD ebean external mapping xml @@ -21,7 +21,7 @@ io.ebean ebean-externalmapping-api - 13.8.1 + 13.8.2-SNAPSHOT @@ -54,21 +54,21 @@ io.ebean ebean-platform-h2 - 13.8.1 + 13.8.2-SNAPSHOT test io.ebean ebean-core - 13.8.1 + 13.8.2-SNAPSHOT test io.ebean ebean-ddl-generator - 13.8.1 + 13.8.2-SNAPSHOT test diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 2b99a15cf..2420cd104 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1 + 13.8.2-SNAPSHOT ebean postgis @@ -22,14 +22,14 @@ io.ebean ebean-platform-postgres - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-core - 13.8.1 + 13.8.2-SNAPSHOT provided @@ -65,7 +65,7 @@ io.ebean ebean-test - 13.8.1 + 13.8.2-SNAPSHOT test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index bf33641cf..09c1ab9ac 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1 + 13.8.2-SNAPSHOT ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 13.8.1 + 13.8.2-SNAPSHOT provided @@ -63,21 +63,21 @@ io.ebean ebean-ddl-generator - 13.8.1 + 13.8.2-SNAPSHOT test io.ebean querybean-generator - 13.8.1 + 13.8.2-SNAPSHOT test io.ebean ebean-test - 13.8.1 + 13.8.2-SNAPSHOT test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index d69a3df0e..4db6c0a3c 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1 + 13.8.2-SNAPSHOT ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 13.8.1 + 13.8.2-SNAPSHOT provided io.ebean ebean-core - 13.8.1 + 13.8.2-SNAPSHOT provided io.ebean ebean-querybean - 13.8.1 + 13.8.2-SNAPSHOT test io.ebean querybean-generator - 13.8.1 + 13.8.2-SNAPSHOT test io.ebean ebean-test - 13.8.1 + 13.8.2-SNAPSHOT test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 319fd3535..55c78b52b 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1 + 13.8.2-SNAPSHOT ebean test @@ -28,20 +28,20 @@ io.ebean ebean-platform-h2 - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-core - 13.8.1 + 13.8.2-SNAPSHOT provided io.ebean ebean-ddl-generator - 13.8.1 + 13.8.2-SNAPSHOT @@ -105,7 +105,7 @@ io.ebean ebean-platform-all - 13.8.1 + 13.8.2-SNAPSHOT test diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index e6582a785..95111a1b9 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.1 + 13.8.2-SNAPSHOT kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 13.8.1 + 13.8.2-SNAPSHOT test @@ -43,7 +43,7 @@ io.ebean ebean-core - 13.8.1 + 13.8.2-SNAPSHOT test @@ -64,14 +64,14 @@ io.ebean ebean-platform-h2 - 13.8.1 + 13.8.2-SNAPSHOT test io.ebean ebean-ddl-generator - 13.8.1 + 13.8.2-SNAPSHOT test diff --git a/platforms/all/pom.xml b/platforms/all/pom.xml index bff82871e..f24522379 100644 --- a/platforms/all/pom.xml +++ b/platforms/all/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.1 + 13.8.2-SNAPSHOT ebean-platform-all @@ -14,72 +14,68 @@ io.ebean ebean-platform-h2 - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-platform-clickhouse - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-platform-db2 - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-platform-hana - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-platform-hsqldb - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-platform-mysql - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-platform-mariadb - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-platform-nuodb - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-platform-oracle - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-platform-postgres - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-platform-sqlanywhere - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-platform-sqlite - 13.8.1 + 13.8.2-SNAPSHOT io.ebean ebean-platform-sqlserver - 13.8.1 + 13.8.2-SNAPSHOT - - - ebean-parent-13.8.1 - diff --git a/platforms/clickhouse/pom.xml b/platforms/clickhouse/pom.xml index 3ac26051f..b3625bfdc 100644 --- a/platforms/clickhouse/pom.xml +++ b/platforms/clickhouse/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.1 + 13.8.2-SNAPSHOT ebean-platform-clickhouse @@ -14,12 +14,8 @@ io.ebean ebean-api - 13.8.1 + 13.8.2-SNAPSHOT - - - ebean-parent-13.8.1 - diff --git a/platforms/db2/pom.xml b/platforms/db2/pom.xml index 8838d6c11..77cbca755 100644 --- a/platforms/db2/pom.xml +++ b/platforms/db2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.1 + 13.8.2-SNAPSHOT ebean-platform-db2 @@ -14,12 +14,8 @@ io.ebean ebean-api - 13.8.1 + 13.8.2-SNAPSHOT - - - ebean-parent-13.8.1 - diff --git a/platforms/h2/pom.xml b/platforms/h2/pom.xml index db1276dd1..336c3a751 100644 --- a/platforms/h2/pom.xml +++ b/platforms/h2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.1 + 13.8.2-SNAPSHOT ebean-platform-h2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.8.1 + 13.8.2-SNAPSHOT + + io.repaint.maven + tiles-maven-plugin + 2.24 + true + + + io.ebean.tile:enhancement:13.6.5 + + + + + + + + diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/text/csv/CsvUtilReader.java b/ebean-csv-reader/src/main/java/io/ebeaninternal/server/text/csv/CsvUtilReader.java similarity index 100% rename from ebean-core/src/main/java/io/ebeaninternal/server/text/csv/CsvUtilReader.java rename to ebean-csv-reader/src/main/java/io/ebeaninternal/server/text/csv/CsvUtilReader.java diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/text/csv/TCsvReader.java b/ebean-csv-reader/src/main/java/io/ebeaninternal/server/text/csv/TCsvReader.java similarity index 89% rename from ebean-core/src/main/java/io/ebeaninternal/server/text/csv/TCsvReader.java rename to ebean-csv-reader/src/main/java/io/ebeaninternal/server/text/csv/TCsvReader.java index 62be82d5c..9d144067c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/text/csv/TCsvReader.java +++ b/ebean-csv-reader/src/main/java/io/ebeaninternal/server/text/csv/TCsvReader.java @@ -2,16 +2,13 @@ package io.ebeaninternal.server.text.csv; import io.ebean.Database; import io.ebean.bean.EntityBean; +import io.ebean.plugin.BeanType; import io.ebean.plugin.ExpressionPath; import io.ebean.text.StringParser; import io.ebean.text.TextException; -import io.ebean.text.TimeStringParser; import io.ebean.text.csv.CsvCallback; import io.ebean.text.csv.CsvReader; import io.ebean.text.csv.DefaultCsvCallback; -import io.ebeaninternal.server.deploy.BeanDescriptor; -import io.ebeaninternal.server.deploy.BeanPropertyAssocOne; -import io.ebeaninternal.server.el.ElPropertyValue; import java.io.Reader; import java.sql.Types; @@ -27,13 +24,13 @@ import java.util.Locale; /** * Implementation of the CsvReader */ -public class TCsvReader implements CsvReader { +public class TCsvReader {//implements CsvReader { private static final TimeStringParser TIME_PARSER = new TimeStringParser(); private final Database server; - private final BeanDescriptor descriptor; + private final BeanType descriptor; private final List columnList = new ArrayList<>(); @@ -55,73 +52,73 @@ public class TCsvReader implements CsvReader { private boolean addPropertiesFromHeader; - public TCsvReader(Database server, BeanDescriptor descriptor) { + public TCsvReader(Database server, BeanType descriptor) { this.server = server; this.descriptor = descriptor; } - @Override + ////@Override public void setDefaultLocale(Locale defaultLocale) { this.defaultLocale = defaultLocale; } - @Override + ////@Override public void setDefaultTimeFormat(String defaultTimeFormat) { this.defaultTimeFormat = defaultTimeFormat; } - @Override + ////@Override public void setDefaultDateFormat(String defaultDateFormat) { this.defaultDateFormat = defaultDateFormat; } - @Override + ////@Override public void setDefaultTimestampFormat(String defaultTimestampFormat) { this.defaultTimestampFormat = defaultTimestampFormat; } - @Override + ////@Override public void setPersistBatchSize(int persistBatchSize) { this.persistBatchSize = persistBatchSize; } - @Override + ////@Override public void setIgnoreHeader() { setHasHeader(true, false); } - @Override + ////@Override public void setAddPropertiesFromHeader() { setHasHeader(true, true); } - @Override + //@Override public void setHasHeader(boolean hasHeader, boolean addPropertiesFromHeader) { this.hasHeader = hasHeader; this.addPropertiesFromHeader = addPropertiesFromHeader; } - @Override + //@Override public void setLogInfoFrequency(int logInfoFrequency) { this.logInfoFrequency = logInfoFrequency; } - @Override + //@Override public void addIgnore() { columnList.add(ignoreColumn); } - @Override + //@Override public void addProperty(String propertyName) { addProperty(propertyName, null); } - @Override + //@Override public void addDateTime(String propertyName, String dateTimeFormat) { addDateTime(propertyName, dateTimeFormat, Locale.getDefault()); } - @Override + //@Override public void addDateTime(String propertyName, String dateTimeFormat, Locale locale) { ExpressionPath elProp = descriptor.expressionPath(propertyName); if (dateTimeFormat == null) { @@ -153,7 +150,7 @@ public class TCsvReader implements CsvReader { } } - @Override + //@Override public void addProperty(String propertyName, StringParser parser) { ExpressionPath elProp = descriptor.expressionPath(propertyName); @@ -164,13 +161,13 @@ public class TCsvReader implements CsvReader { columnList.add(column); } - @Override + //@Override public void process(Reader reader) throws Exception { DefaultCsvCallback callback = new DefaultCsvCallback<>(persistBatchSize, logInfoFrequency); process(reader, callback); } - @Override + //@Override public void process(Reader reader, CsvCallback callback) throws Exception { if (reader == null) { @@ -231,7 +228,8 @@ public class TCsvReader implements CsvReader { private void addPropertiesFromHeader(String[] line) { for (String aLine : line) { - ElPropertyValue elProp = descriptor.elGetValue(aLine); + ExpressionPath elProp = descriptor.expressionPath(aLine); + //ElPropertyValue elProp = descriptor.elGetValue(aLine); if (elProp == null) { throw new TextException("Property [" + aLine + "] not found"); } @@ -242,10 +240,10 @@ public class TCsvReader implements CsvReader { } else if (isDateTimeType(elProp.jdbcType())) { addDateTime(aLine, null, null); - } else if (elProp.isAssocProperty()) { - BeanPropertyAssocOne assocOne = (BeanPropertyAssocOne) elProp.beanProperty(); - String idProp = assocOne.descriptor().idBinder().getIdProperty(); - addProperty(aLine + "." + idProp); +// } else if (elProp.isAssocProperty()) { +// BeanPropertyAssocOne assocOne = (BeanPropertyAssocOne) elProp.beanProperty(); +// String idProp = assocOne.descriptor().idBinder().getIdProperty(); +// addProperty(aLine + "." + idProp); } else { addProperty(aLine); } @@ -260,8 +258,8 @@ public class TCsvReader implements CsvReader { protected T buildBeanFromLineContent(int row, String[] line) { try { - EntityBean entityBean = descriptor.createEntityBean(); - T bean = (T) entityBean; + T bean = descriptor.createBean(); + EntityBean entityBean = (EntityBean)bean; for (int columnPos = 0; columnPos < line.length; columnPos++) { convertAndSetColumn(columnPos, line[columnPos], entityBean); @@ -340,7 +338,7 @@ public class TCsvReader implements CsvReader { this.format = format; } - @Override + //@Override public Object parse(String value) { try { Date dt = dateFormat.parse(value); diff --git a/ebean-api/src/main/java/io/ebean/text/TimeStringParser.java b/ebean-csv-reader/src/main/java/io/ebeaninternal/server/text/csv/TimeStringParser.java similarity index 94% rename from ebean-api/src/main/java/io/ebean/text/TimeStringParser.java rename to ebean-csv-reader/src/main/java/io/ebeaninternal/server/text/csv/TimeStringParser.java index b7c6c9e06..9cdef79de 100644 --- a/ebean-api/src/main/java/io/ebean/text/TimeStringParser.java +++ b/ebean-csv-reader/src/main/java/io/ebeaninternal/server/text/csv/TimeStringParser.java @@ -1,4 +1,6 @@ -package io.ebean.text; +package io.ebeaninternal.server.text.csv; + +import io.ebean.text.StringParser; import java.sql.Time; diff --git a/ebean-test/src/test/java/org/tests/text/csv/TestCsvReader.java b/ebean-csv-reader/src/test/java/io/ebeaninternal/server/text/csv/TestCsvReader.java similarity index 50% rename from ebean-test/src/test/java/org/tests/text/csv/TestCsvReader.java rename to ebean-csv-reader/src/test/java/io/ebeaninternal/server/text/csv/TestCsvReader.java index 7306753f0..bf9fb44ad 100644 --- a/ebean-test/src/test/java/org/tests/text/csv/TestCsvReader.java +++ b/ebean-csv-reader/src/test/java/io/ebeaninternal/server/text/csv/TestCsvReader.java @@ -1,28 +1,37 @@ -package org.tests.text.csv; +package io.ebeaninternal.server.text.csv; import io.ebean.DB; -import io.ebean.xtest.base.TransactionalTestCase; -import io.ebean.text.csv.CsvReader; +import io.ebean.Database; +import io.ebean.plugin.BeanType; import io.ebean.util.IOUtils; +import org.example.Country; +import org.example.Customer; import org.junit.jupiter.api.Test; -import org.tests.model.basic.Customer; -import org.tests.model.basic.ResetBasicData; import java.io.Reader; import java.net.URL; import java.util.Locale; -public class TestCsvReader extends TransactionalTestCase { +class TestCsvReader { @Test - public void test() throws Exception { + void test() throws Exception { - ResetBasicData.reset(); + Country country = new Country(); + country.code("NZ"); + DB.save(country); + + Country au = new Country(); + au.code("AU"); + DB.save(au); URL resource = TestCsvReaderWithCallback.class.getResource("/test1.csv"); - try (Reader reader = IOUtils.newReader(resource.openStream())){ + try (Reader reader = IOUtils.newReader(resource.openStream())) { - CsvReader csvReader = DB.getDefault().createCsvReader(Customer.class); + Database database = DB.getDefault(); + BeanType type = database.pluginApi().beanType(Customer.class); + TCsvReader csvReader = new TCsvReader<>(database, type); + //CsvReader csvReader = DB.getDefault().createCsvReader(Customer.class); csvReader.setPersistBatchSize(2); diff --git a/ebean-csv-reader/src/test/java/io/ebeaninternal/server/text/csv/TestCsvReaderWithCallback.java b/ebean-csv-reader/src/test/java/io/ebeaninternal/server/text/csv/TestCsvReaderWithCallback.java new file mode 100644 index 000000000..77c9e4119 --- /dev/null +++ b/ebean-csv-reader/src/test/java/io/ebeaninternal/server/text/csv/TestCsvReaderWithCallback.java @@ -0,0 +1,47 @@ +package io.ebeaninternal.server.text.csv; + +import org.junit.jupiter.api.Test; + +public class TestCsvReaderWithCallback { + + @Test + public void test() throws Throwable { + +// URL resource = TestCsvReaderWithCallback.class.getResource("/test1.csv"); +// try (Reader reader = IOUtils.newReader(resource.openStream())) { +// +// CsvReader csvReader = DB.getDefault().createCsvReader(Customer.class); +// +// csvReader.setPersistBatchSize(2); +// csvReader.setLogInfoFrequency(3); +// +// csvReader.addIgnore(); +// // csvReader.addProperty("id"); +// csvReader.addProperty("status"); +// csvReader.addProperty("name"); +// csvReader.addDateTime("anniversary", "dd-MMM-yyyy", Locale.ENGLISH); +// csvReader.addProperty("billingAddress.line1"); +// csvReader.addProperty("billingAddress.city"); +// // processor.addReference("billingAddress.country.code"); +// csvReader.addProperty("billingAddress.country.code"); +// +// int before = DB.find(Customer.class).findCount(); +// +// csvReader.process(reader, new DefaultCsvCallback() { +// +// @Override +// public void processBean(int row, String[] lineContent, Customer cust) { +// +// server.save(cust.getBillingAddress(), transaction); +// server.save(cust, transaction); +// +// } +// +// }); +// +// int after = DB.find(Customer.class).findCount(); +// Assertions.assertThat(after).isEqualTo(before + 9); +// } + } + +} diff --git a/ebean-test/src/test/java/org/tests/text/csv/TestTimeStringParser.java b/ebean-csv-reader/src/test/java/io/ebeaninternal/server/text/csv/TimeStringParserTest.java similarity index 79% rename from ebean-test/src/test/java/org/tests/text/csv/TestTimeStringParser.java rename to ebean-csv-reader/src/test/java/io/ebeaninternal/server/text/csv/TimeStringParserTest.java index 5f05cab76..550ba8034 100644 --- a/ebean-test/src/test/java/org/tests/text/csv/TestTimeStringParser.java +++ b/ebean-csv-reader/src/test/java/io/ebeaninternal/server/text/csv/TimeStringParserTest.java @@ -1,14 +1,12 @@ -package org.tests.text.csv; +package io.ebeaninternal.server.text.csv; -import io.ebean.xtest.BaseTestCase; -import io.ebean.text.TimeStringParser; import org.junit.jupiter.api.Test; import java.sql.Time; import static org.junit.jupiter.api.Assertions.*; -public class TestTimeStringParser extends BaseTestCase { +public class TimeStringParserTest { @Test public void testSimple() { diff --git a/ebean-csv-reader/src/test/java/org/example/BaseEntity.java b/ebean-csv-reader/src/test/java/org/example/BaseEntity.java new file mode 100644 index 000000000..d2be50575 --- /dev/null +++ b/ebean-csv-reader/src/test/java/org/example/BaseEntity.java @@ -0,0 +1,48 @@ +package org.example; + +import io.ebean.annotation.WhenCreated; + +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; +import javax.persistence.Version; +import java.time.Instant; + +@MappedSuperclass +public abstract class BaseEntity { + + @Id + long id; + + @Version + long version; + + @WhenCreated + Instant whenCreated; + + public long id() { + return id; + } + + public BaseEntity id(long id) { + this.id = id; + return this; + } + + public long version() { + return version; + } + + public BaseEntity version(long version) { + this.version = version; + return this; + } + + public Instant whenCreated() { + return whenCreated; + } + + public BaseEntity whenCreated(Instant whenCreated) { + this.whenCreated = whenCreated; + return this; + } +} diff --git a/ebean-csv-reader/src/test/java/org/example/Country.java b/ebean-csv-reader/src/test/java/org/example/Country.java new file mode 100644 index 000000000..15782fb2a --- /dev/null +++ b/ebean-csv-reader/src/test/java/org/example/Country.java @@ -0,0 +1,31 @@ +package org.example; + +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class Country { + + @Id + String code; + + String name; + + public String code() { + return code; + } + + public Country code(String code) { + this.code = code; + return this; + } + + public String name() { + return name; + } + + public Country name(String name) { + this.name = name; + return this; + } +} diff --git a/ebean-csv-reader/src/test/java/org/example/Customer.java b/ebean-csv-reader/src/test/java/org/example/Customer.java new file mode 100644 index 000000000..53a3fb9fa --- /dev/null +++ b/ebean-csv-reader/src/test/java/org/example/Customer.java @@ -0,0 +1,63 @@ +package org.example; + +import javax.persistence.*; +import java.time.LocalDate; + +import static javax.persistence.CascadeType.PERSIST; + +@Entity +public class Customer extends BaseEntity { + + enum Status { + NEW, + ACTIVE, + INACTIVE + } + + @Enumerated(EnumType.STRING) + Status status; + + String name; + + LocalDate anniversary; + + @ManyToOne(optional = false, cascade = PERSIST) + DAddress billingAddress; + + + public Status status() { + return status; + } + + public Customer status(Status status) { + this.status = status; + return this; + } + + public String name() { + return name; + } + + public Customer name(String name) { + this.name = name; + return this; + } + + public LocalDate anniversary() { + return anniversary; + } + + public Customer anniversary(LocalDate anniversary) { + this.anniversary = anniversary; + return this; + } + + public DAddress billingAddress() { + return billingAddress; + } + + public Customer billingAddress(DAddress billingAddress) { + this.billingAddress = billingAddress; + return this; + } +} diff --git a/ebean-csv-reader/src/test/java/org/example/DAddress.java b/ebean-csv-reader/src/test/java/org/example/DAddress.java new file mode 100644 index 000000000..2c8c2337a --- /dev/null +++ b/ebean-csv-reader/src/test/java/org/example/DAddress.java @@ -0,0 +1,54 @@ +package org.example; + +import javax.persistence.Entity; +import javax.persistence.ManyToOne; + +import static javax.persistence.CascadeType.PERSIST; + +@Entity +public class DAddress extends BaseEntity { + + String line1; + + String line2; + String city; + + @ManyToOne(optional = false) + Country country; + + public String line1() { + return line1; + } + + public DAddress line1(String line1) { + this.line1 = line1; + return this; + } + + public String line2() { + return line2; + } + + public DAddress line2(String line2) { + this.line2 = line2; + return this; + } + + public String city() { + return city; + } + + public DAddress city(String city) { + this.city = city; + return this; + } + + public Country country() { + return country; + } + + public DAddress country(Country country) { + this.country = country; + return this; + } +} diff --git a/ebean-csv-reader/src/test/resources/application-test.yml b/ebean-csv-reader/src/test/resources/application-test.yml new file mode 100644 index 000000000..758521ea5 --- /dev/null +++ b/ebean-csv-reader/src/test/resources/application-test.yml @@ -0,0 +1,4 @@ +ebean: + test: + platform: h2 + ddlMode: dropCreate diff --git a/ebean-test/src/test/resources/test1.csv b/ebean-csv-reader/src/test/resources/test1.csv similarity index 100% rename from ebean-test/src/test/resources/test1.csv rename to ebean-csv-reader/src/test/resources/test1.csv diff --git a/ebean-test/src/test/java/io/ebean/xtest/internal/api/TDSpiEbeanServer.java b/ebean-test/src/test/java/io/ebean/xtest/internal/api/TDSpiEbeanServer.java index 34309393c..d4b1eaecf 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/internal/api/TDSpiEbeanServer.java +++ b/ebean-test/src/test/java/io/ebean/xtest/internal/api/TDSpiEbeanServer.java @@ -356,10 +356,6 @@ public class TDSpiEbeanServer extends TDSpiServer implements SpiEbeanServer { return null; } - @Override - public CsvReader createCsvReader(Class beanType) { - return null; - } @Override public Query createNamedQuery(Class beanType, String namedQuery) { diff --git a/ebean-test/src/test/java/io/ebean/xtest/internal/api/TDSpiServer.java b/ebean-test/src/test/java/io/ebean/xtest/internal/api/TDSpiServer.java index 08f2bea9e..a69f25bd7 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/internal/api/TDSpiServer.java +++ b/ebean-test/src/test/java/io/ebean/xtest/internal/api/TDSpiServer.java @@ -103,10 +103,6 @@ public class TDSpiServer implements SpiServer { return null; } - @Override - public CsvReader createCsvReader(Class beanType) { - return null; - } @Override public UpdateQuery update(Class beanType) { diff --git a/ebean-test/src/test/java/org/tests/text/csv/TestCsvReaderWithCallback.java b/ebean-test/src/test/java/org/tests/text/csv/TestCsvReaderWithCallback.java deleted file mode 100644 index cf55d67b1..000000000 --- a/ebean-test/src/test/java/org/tests/text/csv/TestCsvReaderWithCallback.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.tests.text.csv; - -import io.ebean.DB; -import io.ebean.xtest.base.TransactionalTestCase; -import io.ebean.text.csv.CsvReader; -import io.ebean.text.csv.DefaultCsvCallback; -import io.ebean.util.IOUtils; -import org.junit.jupiter.api.Test; -import org.tests.model.basic.Customer; - -import java.io.Reader; -import java.net.URL; -import java.util.Locale; - -import static org.assertj.core.api.Assertions.assertThat; - -public class TestCsvReaderWithCallback extends TransactionalTestCase { - - @Test - public void test() throws Throwable { - - URL resource = TestCsvReaderWithCallback.class.getResource("/test1.csv"); - try (Reader reader = IOUtils.newReader(resource.openStream())) { - - CsvReader csvReader = DB.getDefault().createCsvReader(Customer.class); - - csvReader.setPersistBatchSize(2); - csvReader.setLogInfoFrequency(3); - - csvReader.addIgnore(); - // csvReader.addProperty("id"); - csvReader.addProperty("status"); - csvReader.addProperty("name"); - csvReader.addDateTime("anniversary", "dd-MMM-yyyy", Locale.ENGLISH); - csvReader.addProperty("billingAddress.line1"); - csvReader.addProperty("billingAddress.city"); - // processor.addReference("billingAddress.country.code"); - csvReader.addProperty("billingAddress.country.code"); - - int before = DB.find(Customer.class).findCount(); - - csvReader.process(reader, new DefaultCsvCallback() { - - @Override - public void processBean(int row, String[] lineContent, Customer cust) { - - server.save(cust.getBillingAddress(), transaction); - server.save(cust, transaction); - - } - - }); - - int after = DB.find(Customer.class).findCount(); - assertThat(after).isEqualTo(before + 9); - } - } - -} diff --git a/pom.xml b/pom.xml index 3d04697d5..1bc7781db 100644 --- a/pom.xml +++ b/pom.xml @@ -89,6 +89,7 @@ ebean-redis platforms composites + ebean-csv-reader From 1aac01ead086a8e96b3f3ce70663ae0f6a82a225 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 25 Aug 2022 17:49:11 +1200 Subject: [PATCH 041/127] Extract CsvReader - move DefaultCsvCallback and add module-info --- ebean-api/src/main/java/io/ebean/DB.java | 1 - .../src/main/java/io/ebean/Database.java | 1 - .../java/io/ebean/text/csv/CsvReader.java | 171 ------------------ .../java/io/ebean/text/csv/package-info.java | 4 - ebean-api/src/main/java/module-info.java | 1 - .../server/core/DefaultServer.java | 1 - .../io/ebean/csv/reader}/CsvCallback.java | 2 +- .../csv/reader/CsvReader.java} | 12 +- .../csv/reader}/CsvUtilReader.java | 2 +- .../ebean/csv/reader}/DefaultCsvCallback.java | 2 +- .../csv/reader}/TimeStringParser.java | 2 +- .../src/main/java/module-info.java | 6 + .../csv/reader/CsvReaderTest.java} | 8 +- .../reader}/TestCsvReaderWithCallback.java | 2 +- .../csv/reader}/TimeStringParserTest.java | 2 +- .../xtest/internal/api/TDSpiEbeanServer.java | 1 - .../ebean/xtest/internal/api/TDSpiServer.java | 1 - 17 files changed, 19 insertions(+), 200 deletions(-) delete mode 100644 ebean-api/src/main/java/io/ebean/text/csv/CsvReader.java delete mode 100644 ebean-api/src/main/java/io/ebean/text/csv/package-info.java rename {ebean-api/src/main/java/io/ebean/text/csv => ebean-csv-reader/src/main/java/io/ebean/csv/reader}/CsvCallback.java (98%) rename ebean-csv-reader/src/main/java/io/{ebeaninternal/server/text/csv/TCsvReader.java => ebean/csv/reader/CsvReader.java} (96%) rename ebean-csv-reader/src/main/java/io/{ebeaninternal/server/text/csv => ebean/csv/reader}/CsvUtilReader.java (99%) rename {ebean-api/src/main/java/io/ebean/text/csv => ebean-csv-reader/src/main/java/io/ebean/csv/reader}/DefaultCsvCallback.java (99%) rename ebean-csv-reader/src/main/java/io/{ebeaninternal/server/text/csv => ebean/csv/reader}/TimeStringParser.java (97%) create mode 100644 ebean-csv-reader/src/main/java/module-info.java rename ebean-csv-reader/src/test/java/io/{ebeaninternal/server/text/csv/TestCsvReader.java => ebean/csv/reader/CsvReaderTest.java} (82%) rename ebean-csv-reader/src/test/java/io/{ebeaninternal/server/text/csv => ebean/csv/reader}/TestCsvReaderWithCallback.java (97%) rename ebean-csv-reader/src/test/java/io/{ebeaninternal/server/text/csv => ebean/csv/reader}/TimeStringParserTest.java (94%) diff --git a/ebean-api/src/main/java/io/ebean/DB.java b/ebean-api/src/main/java/io/ebean/DB.java index b9558fd3c..f20bcb740 100644 --- a/ebean-api/src/main/java/io/ebean/DB.java +++ b/ebean-api/src/main/java/io/ebean/DB.java @@ -5,7 +5,6 @@ import io.avaje.lang.Nullable; import io.ebean.annotation.TxIsolation; import io.ebean.cache.ServerCacheManager; import io.ebean.plugin.Property; -import io.ebean.text.csv.CsvReader; import io.ebean.text.json.JsonContext; import javax.persistence.OptimisticLockException; diff --git a/ebean-api/src/main/java/io/ebean/Database.java b/ebean-api/src/main/java/io/ebean/Database.java index 47df2b9fb..6dd0ab3cf 100644 --- a/ebean-api/src/main/java/io/ebean/Database.java +++ b/ebean-api/src/main/java/io/ebean/Database.java @@ -9,7 +9,6 @@ import io.ebean.config.DatabaseConfig; import io.ebean.meta.MetaInfoManager; import io.ebean.plugin.Property; import io.ebean.plugin.SpiServer; -import io.ebean.text.csv.CsvReader; import io.ebean.text.json.JsonContext; import javax.persistence.OptimisticLockException; diff --git a/ebean-api/src/main/java/io/ebean/text/csv/CsvReader.java b/ebean-api/src/main/java/io/ebean/text/csv/CsvReader.java deleted file mode 100644 index b20232fc0..000000000 --- a/ebean-api/src/main/java/io/ebean/text/csv/CsvReader.java +++ /dev/null @@ -1,171 +0,0 @@ -package io.ebean.text.csv; - -import io.ebean.text.StringParser; - -import java.io.Reader; -import java.util.Locale; - -/** - * Reads CSV data turning it into object graphs that you can be saved (inserted) - * or processed yourself. - *

- * This first example doesn't use a {@link CsvCallback} and this means it will - * automatically create a transaction, save the customers and commit the - * transaction when successful. - *

- * - *
{@code
- * try {
- *   File f = new File("src/test/resources/test1.csv");
- *
- *   FileReader reader = new FileReader(f, encoding);
- *
- *   CsvReader csvReader = DB.createCsvReader(Customer.class);
- *
- *   csvReader.setPersistBatchSize(20);
- *
- *   csvReader.addProperty("status");
- *   // ignore the next property
- *   csvReader.addIgnore();
- *   csvReader.addProperty("name");
- *   csvReader.addDateTime("anniversary", "dd-MMM-yyyy");
- *   csvReader.addProperty("billingAddress.line1");
- *   csvReader.addProperty("billingAddress.city");
- *
- *   csvReader.process(reader);
- *
- * } catch (Exception e) {
- *   throw new RuntimeException(e);
- * }
- * }
- * - * @param the entity bean type - */ -public interface CsvReader { - - /** - * Explicitly set the default Locale. - */ - void setDefaultLocale(Locale defaultLocale); - - /** - * Set the default format to use for Time types. - */ - void setDefaultTimeFormat(String defaultTimeFormat); - - /** - * Set the default format to use for Date types. - */ - void setDefaultDateFormat(String defaultDateFormat); - - /** - * Set the default format to use for Timestamp types. - */ - void setDefaultTimestampFormat(String defaultTimestampFormat); - - /** - * Set the batch size for using JDBC statement batching. - *

- * By default this is set to 20 and setting this to 1 will disable the use of - * JDBC statement batching. - *

- */ - void setPersistBatchSize(int persistBatchSize); - - /** - * Set to true if there is a header row that should be ignored. - *

- * If addPropertiesFromHeader is true then all the properties are added using - * the default time,date and timestamp formats. - *

- * If you have a mix of dateTime formats you can not use this method and must - * add the properties yourself. - *

- */ - void setHasHeader(boolean hasHeader, boolean addPropertiesFromHeader); - - /** - * Same as setHasHeader(true,true); - *

- * This will use a header to define all the properties to load using the - * default formats for time, date and datetime types. - *

- */ - void setAddPropertiesFromHeader(); - - /** - * Same as setHasHeader(true, false); - *

- * This indicates that there is a header but that it should be ignored. - *

- */ - void setIgnoreHeader(); - - /** - * Set the frequency with which a INFO message will be logged showing the - * progress of the processing. You might set this to 1000 or 10000 etc. - *

- * If this is not set then no INFO messages will be logged. - *

- */ - void setLogInfoFrequency(int logInfoFrequency); - - /** - * Ignore the next column of data. - */ - void addIgnore(); - - /** - * Define the property which will be loaded from the next column of data. - *

- * This takes into account the data type of the property and handles the - * String to object conversion automatically. - *

- */ - void addProperty(String propertyName); - - /** - * Define the next property and use a custom StringParser to convert the - * string content into the appropriate type for the property. - */ - void addProperty(String propertyName, StringParser parser); - - /** - * Add a property with a custom Date/Time/Timestamp format using the default - * Locale. This will convert the string into the appropriate java type for the - * given property (Date, Calendar, SQL Date, Time, Timestamp, JODA etc). - */ - void addDateTime(String propertyName, String dateTimeFormat); - - /** - * Add a property with a custom Date/Time/Timestamp format. This will convert - * the string into the appropriate java type for the given property (Date, - * Calendar, SQL Date, Time, Timestamp, JODA etc). - */ - void addDateTime(String propertyName, String dateTimeFormat, Locale locale); - - /** - * Automatically create a transaction if required to process all the CSV - * content from the reader. - *

- * This will check for a current transaction. If there is no current - * transaction then one is started and will commit (or rollback) at the end of - * processing. This will also set the persistBatchSize on the transaction. - *

- */ - void process(Reader reader) throws Exception; - - /** - * Process the CSV content passing the bean to the CsvCallback after each row. - *

- * This provides you with the ability to modify and process the bean. - *

- *

- * When using a CsvCallback the reader WILL NOT create a transaction or save - * the bean(s) for you. If you want to insert the processed beans you must - * create your own transaction and save the bean(s) yourself. - *

- */ - void process(Reader reader, CsvCallback callback) throws Exception; - -} diff --git a/ebean-api/src/main/java/io/ebean/text/csv/package-info.java b/ebean-api/src/main/java/io/ebean/text/csv/package-info.java deleted file mode 100644 index a14c9b1df..000000000 --- a/ebean-api/src/main/java/io/ebean/text/csv/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * CSV processing objects. - */ -package io.ebean.text.csv; diff --git a/ebean-api/src/main/java/module-info.java b/ebean-api/src/main/java/module-info.java index e5128fb5f..a8fb4ea38 100644 --- a/ebean-api/src/main/java/module-info.java +++ b/ebean-api/src/main/java/module-info.java @@ -40,7 +40,6 @@ module io.ebean.api { exports io.ebean.service; exports io.ebean.text; exports io.ebean.text.json; - exports io.ebean.text.csv; exports io.ebean.util; } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java index e9af6750c..133fadef6 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultServer.java @@ -21,7 +21,6 @@ import io.ebean.plugin.BeanType; import io.ebean.plugin.Plugin; import io.ebean.plugin.Property; import io.ebean.plugin.SpiServer; -import io.ebean.text.csv.CsvReader; import io.ebean.text.json.JsonContext; import io.ebeaninternal.api.*; import io.ebeaninternal.api.SpiQuery.Type; diff --git a/ebean-api/src/main/java/io/ebean/text/csv/CsvCallback.java b/ebean-csv-reader/src/main/java/io/ebean/csv/reader/CsvCallback.java similarity index 98% rename from ebean-api/src/main/java/io/ebean/text/csv/CsvCallback.java rename to ebean-csv-reader/src/main/java/io/ebean/csv/reader/CsvCallback.java index a3a501268..999e0fc75 100644 --- a/ebean-api/src/main/java/io/ebean/text/csv/CsvCallback.java +++ b/ebean-csv-reader/src/main/java/io/ebean/csv/reader/CsvCallback.java @@ -1,4 +1,4 @@ -package io.ebean.text.csv; +package io.ebean.csv.reader; import io.ebean.Database; diff --git a/ebean-csv-reader/src/main/java/io/ebeaninternal/server/text/csv/TCsvReader.java b/ebean-csv-reader/src/main/java/io/ebean/csv/reader/CsvReader.java similarity index 96% rename from ebean-csv-reader/src/main/java/io/ebeaninternal/server/text/csv/TCsvReader.java rename to ebean-csv-reader/src/main/java/io/ebean/csv/reader/CsvReader.java index 9d144067c..1e40db770 100644 --- a/ebean-csv-reader/src/main/java/io/ebeaninternal/server/text/csv/TCsvReader.java +++ b/ebean-csv-reader/src/main/java/io/ebean/csv/reader/CsvReader.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.text.csv; +package io.ebean.csv.reader; import io.ebean.Database; import io.ebean.bean.EntityBean; @@ -6,9 +6,6 @@ import io.ebean.plugin.BeanType; import io.ebean.plugin.ExpressionPath; import io.ebean.text.StringParser; import io.ebean.text.TextException; -import io.ebean.text.csv.CsvCallback; -import io.ebean.text.csv.CsvReader; -import io.ebean.text.csv.DefaultCsvCallback; import java.io.Reader; import java.sql.Types; @@ -24,7 +21,7 @@ import java.util.Locale; /** * Implementation of the CsvReader */ -public class TCsvReader {//implements CsvReader { +public class CsvReader { private static final TimeStringParser TIME_PARSER = new TimeStringParser(); @@ -52,9 +49,9 @@ public class TCsvReader {//implements CsvReader { private boolean addPropertiesFromHeader; - public TCsvReader(Database server, BeanType descriptor) { + public CsvReader(Database server, Class type) { this.server = server; - this.descriptor = descriptor; + this.descriptor = server.pluginApi().beanType(type); } ////@Override @@ -229,7 +226,6 @@ public class TCsvReader {//implements CsvReader { private void addPropertiesFromHeader(String[] line) { for (String aLine : line) { ExpressionPath elProp = descriptor.expressionPath(aLine); - //ElPropertyValue elProp = descriptor.elGetValue(aLine); if (elProp == null) { throw new TextException("Property [" + aLine + "] not found"); } diff --git a/ebean-csv-reader/src/main/java/io/ebeaninternal/server/text/csv/CsvUtilReader.java b/ebean-csv-reader/src/main/java/io/ebean/csv/reader/CsvUtilReader.java similarity index 99% rename from ebean-csv-reader/src/main/java/io/ebeaninternal/server/text/csv/CsvUtilReader.java rename to ebean-csv-reader/src/main/java/io/ebean/csv/reader/CsvUtilReader.java index 9b7ab4127..999b23908 100644 --- a/ebean-csv-reader/src/main/java/io/ebeaninternal/server/text/csv/CsvUtilReader.java +++ b/ebean-csv-reader/src/main/java/io/ebean/csv/reader/CsvUtilReader.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.text.csv; +package io.ebean.csv.reader; // Original name: au.com.bytecode.opencsv.CSVReader // rbygrave: Made some Java Generics tweaks to remove warnings diff --git a/ebean-api/src/main/java/io/ebean/text/csv/DefaultCsvCallback.java b/ebean-csv-reader/src/main/java/io/ebean/csv/reader/DefaultCsvCallback.java similarity index 99% rename from ebean-api/src/main/java/io/ebean/text/csv/DefaultCsvCallback.java rename to ebean-csv-reader/src/main/java/io/ebean/csv/reader/DefaultCsvCallback.java index 57ec73388..5bbba8dfd 100644 --- a/ebean-api/src/main/java/io/ebean/text/csv/DefaultCsvCallback.java +++ b/ebean-csv-reader/src/main/java/io/ebean/csv/reader/DefaultCsvCallback.java @@ -1,4 +1,4 @@ -package io.ebean.text.csv; +package io.ebean.csv.reader; import io.ebean.Database; import io.ebean.EbeanVersion; diff --git a/ebean-csv-reader/src/main/java/io/ebeaninternal/server/text/csv/TimeStringParser.java b/ebean-csv-reader/src/main/java/io/ebean/csv/reader/TimeStringParser.java similarity index 97% rename from ebean-csv-reader/src/main/java/io/ebeaninternal/server/text/csv/TimeStringParser.java rename to ebean-csv-reader/src/main/java/io/ebean/csv/reader/TimeStringParser.java index 9cdef79de..ed2dc7964 100644 --- a/ebean-csv-reader/src/main/java/io/ebeaninternal/server/text/csv/TimeStringParser.java +++ b/ebean-csv-reader/src/main/java/io/ebean/csv/reader/TimeStringParser.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.text.csv; +package io.ebean.csv.reader; import io.ebean.text.StringParser; diff --git a/ebean-csv-reader/src/main/java/module-info.java b/ebean-csv-reader/src/main/java/module-info.java new file mode 100644 index 000000000..51ea42195 --- /dev/null +++ b/ebean-csv-reader/src/main/java/module-info.java @@ -0,0 +1,6 @@ +module io.ebean.csv.reader { + + requires io.ebean.api; + + exports io.ebean.csv.reader; +} diff --git a/ebean-csv-reader/src/test/java/io/ebeaninternal/server/text/csv/TestCsvReader.java b/ebean-csv-reader/src/test/java/io/ebean/csv/reader/CsvReaderTest.java similarity index 82% rename from ebean-csv-reader/src/test/java/io/ebeaninternal/server/text/csv/TestCsvReader.java rename to ebean-csv-reader/src/test/java/io/ebean/csv/reader/CsvReaderTest.java index bf9fb44ad..642f453c0 100644 --- a/ebean-csv-reader/src/test/java/io/ebeaninternal/server/text/csv/TestCsvReader.java +++ b/ebean-csv-reader/src/test/java/io/ebean/csv/reader/CsvReaderTest.java @@ -1,8 +1,7 @@ -package io.ebeaninternal.server.text.csv; +package io.ebean.csv.reader; import io.ebean.DB; import io.ebean.Database; -import io.ebean.plugin.BeanType; import io.ebean.util.IOUtils; import org.example.Country; import org.example.Customer; @@ -12,7 +11,7 @@ import java.io.Reader; import java.net.URL; import java.util.Locale; -class TestCsvReader { +class CsvReaderTest { @Test void test() throws Exception { @@ -29,8 +28,7 @@ class TestCsvReader { try (Reader reader = IOUtils.newReader(resource.openStream())) { Database database = DB.getDefault(); - BeanType type = database.pluginApi().beanType(Customer.class); - TCsvReader csvReader = new TCsvReader<>(database, type); + CsvReader csvReader = new CsvReader<>(database, Customer.class); //CsvReader csvReader = DB.getDefault().createCsvReader(Customer.class); csvReader.setPersistBatchSize(2); diff --git a/ebean-csv-reader/src/test/java/io/ebeaninternal/server/text/csv/TestCsvReaderWithCallback.java b/ebean-csv-reader/src/test/java/io/ebean/csv/reader/TestCsvReaderWithCallback.java similarity index 97% rename from ebean-csv-reader/src/test/java/io/ebeaninternal/server/text/csv/TestCsvReaderWithCallback.java rename to ebean-csv-reader/src/test/java/io/ebean/csv/reader/TestCsvReaderWithCallback.java index 77c9e4119..6066a62e3 100644 --- a/ebean-csv-reader/src/test/java/io/ebeaninternal/server/text/csv/TestCsvReaderWithCallback.java +++ b/ebean-csv-reader/src/test/java/io/ebean/csv/reader/TestCsvReaderWithCallback.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.text.csv; +package io.ebean.csv.reader; import org.junit.jupiter.api.Test; diff --git a/ebean-csv-reader/src/test/java/io/ebeaninternal/server/text/csv/TimeStringParserTest.java b/ebean-csv-reader/src/test/java/io/ebean/csv/reader/TimeStringParserTest.java similarity index 94% rename from ebean-csv-reader/src/test/java/io/ebeaninternal/server/text/csv/TimeStringParserTest.java rename to ebean-csv-reader/src/test/java/io/ebean/csv/reader/TimeStringParserTest.java index 550ba8034..bff00c0b4 100644 --- a/ebean-csv-reader/src/test/java/io/ebeaninternal/server/text/csv/TimeStringParserTest.java +++ b/ebean-csv-reader/src/test/java/io/ebean/csv/reader/TimeStringParserTest.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.text.csv; +package io.ebean.csv.reader; import org.junit.jupiter.api.Test; diff --git a/ebean-test/src/test/java/io/ebean/xtest/internal/api/TDSpiEbeanServer.java b/ebean-test/src/test/java/io/ebean/xtest/internal/api/TDSpiEbeanServer.java index d4b1eaecf..124b04a9d 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/internal/api/TDSpiEbeanServer.java +++ b/ebean-test/src/test/java/io/ebean/xtest/internal/api/TDSpiEbeanServer.java @@ -15,7 +15,6 @@ import io.ebean.meta.MetaInfoManager; import io.ebean.meta.MetricVisitor; import io.ebean.plugin.Property; import io.ebean.plugin.SpiServer; -import io.ebean.text.csv.CsvReader; import io.ebean.text.json.JsonContext; import io.ebeaninternal.api.*; import io.ebeaninternal.api.SpiQuery.Type; diff --git a/ebean-test/src/test/java/io/ebean/xtest/internal/api/TDSpiServer.java b/ebean-test/src/test/java/io/ebean/xtest/internal/api/TDSpiServer.java index a69f25bd7..3fa7f84b8 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/internal/api/TDSpiServer.java +++ b/ebean-test/src/test/java/io/ebean/xtest/internal/api/TDSpiServer.java @@ -13,7 +13,6 @@ import io.ebean.meta.MetaInfoManager; import io.ebean.plugin.BeanType; import io.ebean.plugin.Property; import io.ebean.plugin.SpiServer; -import io.ebean.text.csv.CsvReader; import io.ebean.text.json.JsonContext; import javax.annotation.Nullable; From efe80a534c95bdeb70b6f931452b6df42d13351e Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 25 Aug 2022 22:09:38 +1200 Subject: [PATCH 042/127] Extract CsvReader - remove built in date, time, dateTime parsing - use StringParser instead Just always use our own StringParser lambda function instead for parsing date, time and dateTime types. --- .../java/io/ebean/text/StringFormatter.java | 1 + .../main/java/io/ebean/text/StringParser.java | 1 + ebean-csv-reader/pom.xml | 2 + .../java/io/ebean/csv/reader/CsvReader.java | 144 +----------------- .../io/ebean/csv/reader/CsvReaderTest.java | 12 +- 5 files changed, 17 insertions(+), 143 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/text/StringFormatter.java b/ebean-api/src/main/java/io/ebean/text/StringFormatter.java index a7aa2631b..613e97129 100644 --- a/ebean-api/src/main/java/io/ebean/text/StringFormatter.java +++ b/ebean-api/src/main/java/io/ebean/text/StringFormatter.java @@ -6,6 +6,7 @@ package io.ebean.text; * Basic interface to support CSV, JSON and XML processing. *

*/ +@FunctionalInterface public interface StringFormatter { /** diff --git a/ebean-api/src/main/java/io/ebean/text/StringParser.java b/ebean-api/src/main/java/io/ebean/text/StringParser.java index f76421944..4fe51abe8 100644 --- a/ebean-api/src/main/java/io/ebean/text/StringParser.java +++ b/ebean-api/src/main/java/io/ebean/text/StringParser.java @@ -5,6 +5,7 @@ package io.ebean.text; *

* Basic interface to support CSV, JSON and XML processing. */ +@FunctionalInterface public interface StringParser { /** diff --git a/ebean-csv-reader/pom.xml b/ebean-csv-reader/pom.xml index 147b10ea9..d9f69a67c 100644 --- a/ebean-csv-reader/pom.xml +++ b/ebean-csv-reader/pom.xml @@ -23,12 +23,14 @@ io.ebean ebean-api 13.8.2-SNAPSHOT + provided io.ebean ebean-core 13.8.2-SNAPSHOT + test diff --git a/ebean-csv-reader/src/main/java/io/ebean/csv/reader/CsvReader.java b/ebean-csv-reader/src/main/java/io/ebean/csv/reader/CsvReader.java index 1e40db770..98193e197 100644 --- a/ebean-csv-reader/src/main/java/io/ebean/csv/reader/CsvReader.java +++ b/ebean-csv-reader/src/main/java/io/ebean/csv/reader/CsvReader.java @@ -8,23 +8,15 @@ import io.ebean.text.StringParser; import io.ebean.text.TextException; import java.io.Reader; -import java.sql.Types; -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; -import java.util.Date; import java.util.List; -import java.util.Locale; /** * Implementation of the CsvReader */ public class CsvReader { - private static final TimeStringParser TIME_PARSER = new TimeStringParser(); - private final Database server; private final BeanType descriptor; @@ -37,11 +29,6 @@ public class CsvReader { private int logInfoFrequency = 1000; - private String defaultTimeFormat = "HH:mm:ss"; - private String defaultDateFormat = "yyyy-MM-dd"; - private String defaultTimestampFormat = "yyyy-MM-dd hh:mm:ss.fffffffff"; - private Locale defaultLocale = Locale.getDefault(); - /** * The batch size used for JDBC statement batching. */ @@ -54,102 +41,37 @@ public class CsvReader { this.descriptor = server.pluginApi().beanType(type); } - ////@Override - public void setDefaultLocale(Locale defaultLocale) { - this.defaultLocale = defaultLocale; - } - - ////@Override - public void setDefaultTimeFormat(String defaultTimeFormat) { - this.defaultTimeFormat = defaultTimeFormat; - } - - ////@Override - public void setDefaultDateFormat(String defaultDateFormat) { - this.defaultDateFormat = defaultDateFormat; - } - - ////@Override - public void setDefaultTimestampFormat(String defaultTimestampFormat) { - this.defaultTimestampFormat = defaultTimestampFormat; - } - - ////@Override public void setPersistBatchSize(int persistBatchSize) { this.persistBatchSize = persistBatchSize; } - ////@Override public void setIgnoreHeader() { setHasHeader(true, false); } - ////@Override public void setAddPropertiesFromHeader() { setHasHeader(true, true); } - //@Override public void setHasHeader(boolean hasHeader, boolean addPropertiesFromHeader) { this.hasHeader = hasHeader; this.addPropertiesFromHeader = addPropertiesFromHeader; } - //@Override public void setLogInfoFrequency(int logInfoFrequency) { this.logInfoFrequency = logInfoFrequency; } - //@Override public void addIgnore() { columnList.add(ignoreColumn); } - //@Override public void addProperty(String propertyName) { addProperty(propertyName, null); } - //@Override - public void addDateTime(String propertyName, String dateTimeFormat) { - addDateTime(propertyName, dateTimeFormat, Locale.getDefault()); - } - //@Override - public void addDateTime(String propertyName, String dateTimeFormat, Locale locale) { - ExpressionPath elProp = descriptor.expressionPath(propertyName); - if (dateTimeFormat == null) { - dateTimeFormat = getDefaultDateTimeFormat(elProp.jdbcType()); - } - - if (locale == null) { - locale = defaultLocale; - } - - SimpleDateFormat sdf = new SimpleDateFormat(dateTimeFormat, locale); - DateTimeParser parser = new DateTimeParser(sdf, dateTimeFormat, elProp); - - CsvColumn column = new CsvColumn(elProp, parser); - columnList.add(column); - } - - private String getDefaultDateTimeFormat(int jdbcType) { - switch (jdbcType) { - case Types.TIME: - return defaultTimeFormat; - case Types.DATE: - return defaultDateFormat; - case Types.TIMESTAMP: - return defaultTimestampFormat; - - default: - throw new RuntimeException("Expected java.sql.Types TIME,DATE or TIMESTAMP but got [" + jdbcType + "]"); - } - } - - //@Override public void addProperty(String propertyName, StringParser parser) { - ExpressionPath elProp = descriptor.expressionPath(propertyName); if (parser == null) { parser = elProp.stringParser(); @@ -158,15 +80,12 @@ public class CsvReader { columnList.add(column); } - //@Override public void process(Reader reader) throws Exception { DefaultCsvCallback callback = new DefaultCsvCallback<>(persistBatchSize, logInfoFrequency); process(reader, callback); } - //@Override public void process(Reader reader, CsvCallback callback) throws Exception { - if (reader == null) { throw new NullPointerException("reader is null?"); } @@ -224,43 +143,22 @@ public class CsvReader { } private void addPropertiesFromHeader(String[] line) { - for (String aLine : line) { - ExpressionPath elProp = descriptor.expressionPath(aLine); + for (String headerElement : line) { + ExpressionPath elProp = descriptor.expressionPath(headerElement); if (elProp == null) { - throw new TextException("Property [" + aLine + "] not found"); - } - - if (Types.TIME == elProp.jdbcType()) { - addProperty(aLine, TIME_PARSER); - - } else if (isDateTimeType(elProp.jdbcType())) { - addDateTime(aLine, null, null); - -// } else if (elProp.isAssocProperty()) { -// BeanPropertyAssocOne assocOne = (BeanPropertyAssocOne) elProp.beanProperty(); -// String idProp = assocOne.descriptor().idBinder().getIdProperty(); -// addProperty(aLine + "." + idProp); - } else { - addProperty(aLine); + throw new TextException("Property [" + headerElement + "] not found"); } + addProperty(headerElement); } } - private boolean isDateTimeType(int t) { - return t == Types.TIMESTAMP || t == Types.DATE || t == Types.TIME; - } - - @SuppressWarnings("unchecked") protected T buildBeanFromLineContent(int row, String[] line) { - try { T bean = descriptor.createBean(); - EntityBean entityBean = (EntityBean)bean; - + EntityBean entityBean = (EntityBean) bean; for (int columnPos = 0; columnPos < line.length; columnPos++) { convertAndSetColumn(columnPos, line[columnPos], entityBean); } - return bean; } catch (RuntimeException e) { @@ -270,13 +168,10 @@ public class CsvReader { } protected void convertAndSetColumn(int columnPos, String strValue, EntityBean bean) { - strValue = strValue.trim(); - if (strValue.isEmpty()) { return; } - CsvColumn c = columnList.get(columnPos); c.convertAndSet(strValue, bean); } @@ -309,7 +204,6 @@ public class CsvReader { * Convert the string to the appropriate value and set it to the bean. */ public void convertAndSet(String strValue, EntityBean bean) { - if (parser != null && path != null) { Object value = parser.parse(strValue); path.pathSet(bean, value); @@ -317,32 +211,4 @@ public class CsvReader { } } - /** - * A StringParser for converting custom date/time/datetime strings into - * appropriate java types (Date, Calendar, SQL Date, Time, Timestamp, JODA - * etc). - */ - private static class DateTimeParser implements StringParser { - - private final DateFormat dateFormat; - private final ExpressionPath path; - private final String format; - - DateTimeParser(DateFormat dateFormat, String format, ExpressionPath path) { - this.dateFormat = dateFormat; - this.path = path; - this.format = format; - } - - //@Override - public Object parse(String value) { - try { - Date dt = dateFormat.parse(value); - return path.parseDateTime(dt.getTime()); - } catch (ParseException e) { - throw new TextException("Error parsing [{}] using format[" + format + "]", value, e); - } - } - - } } diff --git a/ebean-csv-reader/src/test/java/io/ebean/csv/reader/CsvReaderTest.java b/ebean-csv-reader/src/test/java/io/ebean/csv/reader/CsvReaderTest.java index 642f453c0..8a871a62d 100644 --- a/ebean-csv-reader/src/test/java/io/ebean/csv/reader/CsvReaderTest.java +++ b/ebean-csv-reader/src/test/java/io/ebean/csv/reader/CsvReaderTest.java @@ -9,10 +9,13 @@ import org.junit.jupiter.api.Test; import java.io.Reader; import java.net.URL; -import java.util.Locale; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; class CsvReaderTest { + final DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy"); + @Test void test() throws Exception { @@ -29,15 +32,16 @@ class CsvReaderTest { Database database = DB.getDefault(); CsvReader csvReader = new CsvReader<>(database, Customer.class); - //CsvReader csvReader = DB.getDefault().createCsvReader(Customer.class); csvReader.setPersistBatchSize(2); csvReader.addIgnore(); - // csvReader.addProperty("id"); csvReader.addProperty("status"); csvReader.addProperty("name"); - csvReader.addDateTime("anniversary", "dd-MMM-yyyy", Locale.ENGLISH); + + // supplier a StringParser for custom date, time, dateTime formats + csvReader.addProperty("anniversary", (String content) -> LocalDate.parse(content, dateFormatter)); + // OLD WAY: csvReader.addDateTime("anniversary", "dd-MMM-yyyy", Locale.ENGLISH); csvReader.addProperty("billingAddress.line1"); csvReader.addProperty("billingAddress.city"); csvReader.addProperty("billingAddress.country.code"); From ccf790a630d463c8de1bbe79a267037a77f4965c Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 25 Aug 2022 22:15:15 +1200 Subject: [PATCH 043/127] Extract CsvReader - provider scope for ebean-core --- ebean-csv-reader/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ebean-csv-reader/pom.xml b/ebean-csv-reader/pom.xml index d9f69a67c..8b1f0e33a 100644 --- a/ebean-csv-reader/pom.xml +++ b/ebean-csv-reader/pom.xml @@ -30,7 +30,7 @@ io.ebean ebean-core 13.8.2-SNAPSHOT - test + provided From f01d8174e81e4d54693293923b1f7ce6d7648a24 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 25 Aug 2022 22:17:20 +1200 Subject: [PATCH 044/127] Extract CsvReader - fix parent pom version --- ebean-csv-reader/pom.xml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/ebean-csv-reader/pom.xml b/ebean-csv-reader/pom.xml index 8b1f0e33a..769c4e592 100644 --- a/ebean-csv-reader/pom.xml +++ b/ebean-csv-reader/pom.xml @@ -2,21 +2,15 @@ + 4.0.0 ebean-parent io.ebean - 13.8.1-SNAPSHOT + 13.8.2-SNAPSHOT - 4.0.0 ebean-csv-reader - - 11 - 11 - UTF-8 - - From c5e8b217e3bd11b6c4bed5b44742784735549e6b Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 25 Aug 2022 22:37:47 +1200 Subject: [PATCH 045/127] Refactor ScalarType, remove convertFromMillis() method (no longer needed) Due to the move and change of CsvReader using StringParser ScalarType no longer needs that general convertFromMillis() method. Note that date and dateTime ScalarTypes still retain this conversion method. --- .../src/main/java/io/ebean/plugin/ExpressionPath.java | 6 ------ .../src/main/java/io/ebean/core/type/ScalarType.java | 9 --------- .../ebeaninternal/server/deploy/BeanFkeyProperty.java | 5 ----- .../io/ebeaninternal/server/deploy/BeanProperty.java | 5 ----- .../io/ebeaninternal/server/el/ElPropertyChain.java | 5 ----- .../ebeaninternal/server/type/ScalarTypeBaseDate.java | 1 - .../server/type/ScalarTypeBaseDateTime.java | 1 - .../server/type/ScalarTypeBigDecimal.java | 5 ----- .../server/type/ScalarTypeBytesEncrypted.java | 5 ----- .../io/ebeaninternal/server/type/ScalarTypeDouble.java | 5 ----- .../server/type/ScalarTypeEncryptedWrapper.java | 5 ----- .../io/ebeaninternal/server/type/ScalarTypeFloat.java | 5 ----- .../ebeaninternal/server/type/ScalarTypeInteger.java | 6 ------ .../server/type/ScalarTypeJodaLocalTime.java | 1 - .../ebeaninternal/server/type/ScalarTypeLocalTime.java | 5 ----- .../io/ebeaninternal/server/type/ScalarTypeLong.java | 5 ----- .../server/type/ScalarTypeMathBigInteger.java | 5 ----- .../server/type/ScalarTypeStringBase.java | 5 ----- .../io/ebeaninternal/server/type/ScalarTypeTime.java | 1 - .../ebeaninternal/server/type/ScalarTypeWrapper.java | 9 --------- .../server/type/ScalarTypeDurationTest.java | 5 ----- .../server/type/ScalarTypeDurationWithNanosTest.java | 5 ----- .../server/type/ScalarTypeLocalTimeTest.java | 9 ++------- .../server/type/ScalarTypeLocalTimeWithNanosTest.java | 9 ++------- .../server/type/ScalarTypeMonthDayTest.java | 6 ------ .../server/type/ScalarTypePostgresHstoreTest.java | 10 ---------- .../ebeaninternal/server/type/ScalarTypeYearTest.java | 5 ----- 27 files changed, 4 insertions(+), 139 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/plugin/ExpressionPath.java b/ebean-api/src/main/java/io/ebean/plugin/ExpressionPath.java index 4b935474f..975349700 100644 --- a/ebean-api/src/main/java/io/ebean/plugin/ExpressionPath.java +++ b/ebean-api/src/main/java/io/ebean/plugin/ExpressionPath.java @@ -39,12 +39,6 @@ public interface ExpressionPath { */ StringParser stringParser(); - /** - * For DateTime capable scalar types convert the long systemTimeMillis into - * an appropriate java time (Date,Timestamp,Time,Calendar, JODA type etc). - */ - Object parseDateTime(long systemTimeMillis); - /** * Return the underlying JDBC type or 0 if this is not a scalar type. */ diff --git a/ebean-core-type/src/main/java/io/ebean/core/type/ScalarType.java b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarType.java index 83433ef69..9047befb0 100644 --- a/ebean-core-type/src/main/java/io/ebean/core/type/ScalarType.java +++ b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarType.java @@ -166,15 +166,6 @@ public interface ScalarType extends StringParser, StringFormatter, ScalarData throw new UnsupportedOperationException(); } - /** - * Convert the systemTimeMillis into the appropriate java object. - *

- * For non dateTime types this will throw an exception. - */ - default T convertFromMillis(long dateTime) { - throw new UnsupportedOperationException(); - } - /** * Read the value from binary input. */ diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanFkeyProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanFkeyProperty.java index fb02fdc74..01cd82de6 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanFkeyProperty.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanFkeyProperty.java @@ -190,11 +190,6 @@ public final class BeanFkeyProperty implements ElPropertyValue { return null; } - @Override - public Object parseDateTime(long systemTimeMillis) { - throw new RuntimeException("ElPropertyDeploy only - not implemented"); - } - @Override public StringParser stringParser() { throw new RuntimeException("ElPropertyDeploy only - not implemented"); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java index 4c38bc110..1fc421739 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanProperty.java @@ -945,11 +945,6 @@ public class BeanProperty implements ElPropertyValue, Property, STreeProperty { return scalarType == null ? 0 : scalarType.jdbcType(); } - @Override - public Object parseDateTime(long systemTimeMillis) { - return scalarType.convertFromMillis(systemTimeMillis); - } - /** * Return the DB max length (varchar) or precision (decimal). */ diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/el/ElPropertyChain.java b/ebean-core/src/main/java/io/ebeaninternal/server/el/ElPropertyChain.java index 3a9631737..b04bacb24 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/el/ElPropertyChain.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/el/ElPropertyChain.java @@ -232,11 +232,6 @@ public final class ElPropertyChain implements ElPropertyValue { return scalarType == null ? 0 : scalarType.jdbcType(); } - @Override - public Object parseDateTime(long systemTimeMillis) { - return scalarType.convertFromMillis(systemTimeMillis); - } - @Override public StringParser stringParser() { return scalarType; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseDate.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseDate.java index b70386214..2928c7955 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseDate.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseDate.java @@ -77,7 +77,6 @@ abstract class ScalarTypeBaseDate extends ScalarTypeBase { } } - @Override public T convertFromMillis(long systemTimeMillis) { Date ts = new Date(systemTimeMillis); return convertFromDate(ts); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseDateTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseDateTime.java index 5c328dd39..c77dca488 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseDateTime.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBaseDateTime.java @@ -54,7 +54,6 @@ abstract class ScalarTypeBaseDateTime extends ScalarTypeBase { /** * Convert from epoch millis to the value. */ - @Override public abstract T convertFromMillis(long systemTimeMillis); /** diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBigDecimal.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBigDecimal.java index 4d6d0958d..9dedf97e7 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBigDecimal.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBigDecimal.java @@ -58,11 +58,6 @@ class ScalarTypeBigDecimal extends ScalarTypeBase { return new BigDecimal(value); } - @Override - public BigDecimal convertFromMillis(long systemTimeMillis) { - return BigDecimal.valueOf(systemTimeMillis); - } - @Override public BigDecimal readData(DataInput dataInput) throws IOException { if (!dataInput.readBoolean()) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesEncrypted.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesEncrypted.java index 118078b41..3fdc0f5b2 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesEncrypted.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBytesEncrypted.java @@ -84,11 +84,6 @@ public final class ScalarTypeBytesEncrypted implements ScalarType { return baseType.parse(value); } - @Override - public byte[] convertFromMillis(long systemTimeMillis) { - return baseType.convertFromMillis(systemTimeMillis); - } - @Override public byte[] read(DataReader reader) throws SQLException { byte[] data = baseType.read(reader); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDouble.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDouble.java index 221b029a8..97cd742dd 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDouble.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDouble.java @@ -57,11 +57,6 @@ final class ScalarTypeDouble extends ScalarTypeBase { return Double.valueOf(value); } - @Override - public Double convertFromMillis(long systemTimeMillis) { - return (double) systemTimeMillis; - } - @Override public Double readData(DataInput dataInput) throws IOException { if (!dataInput.readBoolean()) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEncryptedWrapper.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEncryptedWrapper.java index 6f04227af..627d32a65 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEncryptedWrapper.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEncryptedWrapper.java @@ -109,11 +109,6 @@ public final class ScalarTypeEncryptedWrapper implements ScalarType, Local return wrapped.parse(value); } - @Override - public T convertFromMillis(long systemTimeMillis) { - return wrapped.convertFromMillis(systemTimeMillis); - } - @Override public T toBeanType(Object value) { return wrapped.toBeanType(value); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFloat.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFloat.java index 8534d92ba..61ba766f0 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFloat.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFloat.java @@ -57,11 +57,6 @@ final class ScalarTypeFloat extends ScalarTypeBase { return Float.valueOf(value); } - @Override - public Float convertFromMillis(long systemTimeMillis) { - return (float) systemTimeMillis; - } - @Override public Float readData(DataInput dataInput) throws IOException { if (!dataInput.readBoolean()) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInteger.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInteger.java index 9805454e0..b9d621679 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInteger.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInteger.java @@ -6,7 +6,6 @@ import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.DocPropertyType; import io.ebean.core.type.ScalarTypeBase; -import io.ebean.text.TextException; import io.ebeaninternal.server.core.BasicTypeConverter; import java.io.DataInput; @@ -87,11 +86,6 @@ final class ScalarTypeInteger extends ScalarTypeBase { return Integer.valueOf(value); } - @Override - public Integer convertFromMillis(long systemTimeMillis) { - throw new TextException("Not Supported"); - } - @Override public Integer jsonRead(JsonParser parser) throws IOException { return parser.getIntValue(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java index 7bc388aa9..94134db9f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java @@ -73,7 +73,6 @@ class ScalarTypeJodaLocalTime extends ScalarTypeBase { return new LocalTime(value); } - @Override public LocalTime convertFromMillis(long systemTimeMillis) { return new LocalTime(systemTimeMillis, DateTimeZone.getDefault()); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTime.java index b223a8268..6711de132 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTime.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTime.java @@ -87,11 +87,6 @@ class ScalarTypeLocalTime extends ScalarTypeBase { return LocalTime.parse(value); } - @Override - public LocalTime convertFromMillis(long systemTimeMillis) { - throw new TextException("Not Supported"); - } - @Override public LocalTime jsonRead(JsonParser parser) throws IOException { return LocalTime.parse(parser.getValueAsString()); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLong.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLong.java index 9164cd1ed..daff9db26 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLong.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLong.java @@ -67,11 +67,6 @@ final class ScalarTypeLong extends ScalarTypeBase { return value; } - @Override - public Long convertFromMillis(long systemTimeMillis) { - return systemTimeMillis; - } - @Override public Long readData(DataInput dataInput) throws IOException { if (!dataInput.readBoolean()) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMathBigInteger.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMathBigInteger.java index 97de16c82..ce8a87dbe 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMathBigInteger.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMathBigInteger.java @@ -62,11 +62,6 @@ final class ScalarTypeMathBigInteger extends ScalarTypeBase { return new BigInteger(value); } - @Override - public BigInteger convertFromMillis(long systemTimeMillis) { - return BigInteger.valueOf(systemTimeMillis); - } - @Override public BigInteger readData(DataInput dataInput) throws IOException { if (!dataInput.readBoolean()) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeStringBase.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeStringBase.java index 1d863270f..6fffec61e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeStringBase.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeStringBase.java @@ -57,11 +57,6 @@ abstract class ScalarTypeStringBase extends ScalarTypeBase { return value; } - @Override - public String convertFromMillis(long systemTimeMillis) { - return String.valueOf(systemTimeMillis); - } - @Override public String readData(DataInput dataInput) throws IOException { if (!dataInput.readBoolean()) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTime.java index dd13a85bb..eb017211d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTime.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTime.java @@ -58,7 +58,6 @@ final class ScalarTypeTime extends ScalarTypeBase

- * Converts objects to the required type if required. - *

+ * Helper to converts objects to the basic types if required. */ -public final class BasicTypeConverter implements Serializable { - - private static final long serialVersionUID = 7691463236204070311L; +public final class BasicTypeConverter { /** * Type code for java.util.Calendar. @@ -43,7 +35,6 @@ public final class BasicTypeConverter implements Serializable { * @param toDataType the dataType as per java.sql.Types. */ public static Object convert(Object value, int toDataType) { - try { switch (toDataType) { case UTIL_DATE: { @@ -58,7 +49,8 @@ public final class BasicTypeConverter implements Serializable { case Types.INTEGER: { return toInteger(value); } - case Types.BIT: { + case Types.BIT: + case Types.BOOLEAN: { return toBoolean(value); } case Types.TINYINT: { @@ -67,59 +59,42 @@ public final class BasicTypeConverter implements Serializable { case Types.SMALLINT: { return toShort(value); } - case Types.NUMERIC: { - return toBigDecimal(value); - } + case Types.NUMERIC: case Types.DECIMAL: { return toBigDecimal(value); } case Types.REAL: { return toFloat(value); } - case Types.DOUBLE: { - return toDouble(value); - } + case Types.DOUBLE: case Types.FLOAT: { return toDouble(value); } - case Types.BOOLEAN: { - return toBoolean(value); - } case Types.TIMESTAMP: { return toTimestamp(value); } case Types.DATE: { return toDate(value); } - case Types.VARCHAR: { - return toString(value); - } + case Types.VARCHAR: case Types.CHAR: { return toString(value); } - case Types.OTHER: { - return value; - } - case Types.JAVA_OBJECT: { - return value; - } + case Types.OTHER: case Types.BINARY: case Types.LONGVARBINARY: - case Types.BLOB: { - return value; - } + case Types.BLOB: + case Types.JAVA_OBJECT: case Types.LONGVARCHAR: case Types.CLOB: { return value; } default: { - String msg = "Unhandled data type [" + toDataType + "] converting [" + value + "]"; - throw new RuntimeException(msg); + throw new RuntimeException("Unhandled data type - " + toDataType); } } } catch (ClassCastException e) { - String m = "ClassCastException converting to data type [" + toDataType + "] value [" + value + "]"; - throw new RuntimeException(m); + throw new RuntimeException("ClassCastException converting to data type: " + toDataType + " value: " + value); } } @@ -127,7 +102,6 @@ public final class BasicTypeConverter implements Serializable { * Convert the value to a String. */ public static String toString(Object value) { - if (value == null) { return null; } @@ -137,7 +111,6 @@ public final class BasicTypeConverter implements Serializable { if (value instanceof char[]) { return String.valueOf((char[]) value); } - return value.toString(); } @@ -145,8 +118,7 @@ public final class BasicTypeConverter implements Serializable { /** * Convert the value to a Boolean with an explicit String true value. */ - public static Boolean toBoolean(Object value, String dbTrueValue) { - + public static Boolean toBoolean(Object value, String trueValue) { if (value == null) { return null; } @@ -156,8 +128,7 @@ public final class BasicTypeConverter implements Serializable { if (value instanceof Number) { return ((Number) value).intValue() == 1; } - String s = value.toString(); - return s.equalsIgnoreCase(dbTrueValue); + return value.toString().equalsIgnoreCase(trueValue); } /** @@ -165,14 +136,12 @@ public final class BasicTypeConverter implements Serializable { * "true" or "false". */ public static Boolean toBoolean(Object value) { - if (value == null) { return null; } if (value instanceof Boolean) { return (Boolean) value; } - return Boolean.valueOf(value.toString()); } @@ -180,7 +149,6 @@ public final class BasicTypeConverter implements Serializable { * Convert the value to a UUID. */ public static UUID toUUID(Object value, boolean optimizedBinary) { - if (value == null) { return null; } @@ -191,17 +159,15 @@ public final class BasicTypeConverter implements Serializable { return UUID.fromString((String) value); } if (value instanceof byte[]) { - return ScalarTypeUUIDBinary.convertFromBytes((byte[]) value, optimizedBinary); + return ScalarTypeUtils.uuidFromBytes((byte[]) value, optimizedBinary); } return UUID.fromString(value.toString()); } /** - * convert the passed in object to a BigDecimal. It should be another - * numeric type. + * convert the passed in object to a BigDecimal. It should be another numeric type. */ public static BigDecimal toBigDecimal(Object value) { - if (value == null) { return null; } @@ -212,7 +178,6 @@ public final class BasicTypeConverter implements Serializable { } public static Float toFloat(Object value) { - if (value == null) { return null; } @@ -226,7 +191,6 @@ public final class BasicTypeConverter implements Serializable { } public static Short toShort(Object value) { - if (value == null) { return null; } @@ -240,7 +204,6 @@ public final class BasicTypeConverter implements Serializable { } public static Byte toByte(Object value) { - if (value == null) { return null; } @@ -251,11 +214,9 @@ public final class BasicTypeConverter implements Serializable { } /** - * convert the passed in object to a Integer. It should be another numeric - * type. + * convert the passed in object to an Integer. */ public static Integer toInteger(Object value) { - if (value == null) { return null; } @@ -269,10 +230,9 @@ public final class BasicTypeConverter implements Serializable { } /** - * Convert the object to a Long. It should be another numeric type. + * Convert the object to a Long. */ public static Long toLong(Object value) { - if (value == null) { return null; } @@ -294,8 +254,7 @@ public final class BasicTypeConverter implements Serializable { return Long.valueOf(value.toString()); } - public static BigInteger toMathBigInteger(Object value) { - + public static BigInteger toBigInteger(Object value) { if (value == null) { return null; } @@ -306,10 +265,9 @@ public final class BasicTypeConverter implements Serializable { } /** - * Convert the object to a Double. It should be another numberic type. + * Convert the object to a Double. */ public static Double toDouble(Object value) { - if (value == null) { return null; } @@ -323,56 +281,42 @@ public final class BasicTypeConverter implements Serializable { } /** - * convert the passed in object to a Timestamp. It is expected to be a - * java.sql.Date really. + * convert the passed in object to a Timestamp. */ public static Timestamp toTimestamp(Object value) { - if (value == null) { return null; } if (value instanceof Timestamp) { return (Timestamp) value; - } else if (value instanceof java.util.Date) { // no nanos here... so hopefully ok return new Timestamp(((java.util.Date) value).getTime()); - } else if (value instanceof Calendar) { return new Timestamp(((Calendar) value).getTime().getTime()); - } else if (value instanceof String) { return Timestamp.valueOf((String) value); - } else if (value instanceof LocalDateTime) { return Timestamp.valueOf((LocalDateTime) value); - } else if (value instanceof Number) { return new Timestamp(((Number) value).longValue()); - } else { - String msg = "Unable to convert [" + value.getClass().getName() + "] into a Timestamp."; - throw new RuntimeException(msg); + throw new RuntimeException("Unable to convert " + value); } } public static java.sql.Time toTime(Object value) { - if (value == null) { return null; } if (value instanceof java.sql.Time) { return (java.sql.Time) value; - } else if (value instanceof String) { return java.sql.Time.valueOf((String) value); - } else if (value instanceof LocalTime) { return java.sql.Time.valueOf((LocalTime) value); - } else { - String m = "Unable to convert [" + value.getClass().getName() + "] into a java.sql.Date."; - throw new RuntimeException(m); + throw new RuntimeException("Unable to convert " + value); } } @@ -380,31 +324,23 @@ public final class BasicTypeConverter implements Serializable { * convert the passed in object to a java sql Date. */ public static java.sql.Date toDate(Object value) { - if (value == null) { return null; } if (value instanceof java.sql.Date) { return (java.sql.Date) value; - } else if (value instanceof java.util.Date) { return new java.sql.Date(((java.util.Date) value).getTime()); - } else if (value instanceof Calendar) { return new java.sql.Date(((Calendar) value).getTime().getTime()); - } else if (value instanceof String) { return java.sql.Date.valueOf((String) value); - } else if (value instanceof Number) { return new java.sql.Date(((Number) value).longValue()); - } else if (value instanceof LocalDate) { - return java.sql.Date.valueOf((LocalDate)value); - + return java.sql.Date.valueOf((LocalDate) value); } else { - String m = "Unable to convert [" + value.getClass().getName() + "] into a java.sql.Date."; - throw new RuntimeException(m); + throw new RuntimeException("Unable to convert " + value); } } @@ -412,7 +348,6 @@ public final class BasicTypeConverter implements Serializable { * convert the passed in object to a java sql Date. */ public static java.util.Date toUtilDate(Object value) { - if (value == null) { return null; } @@ -420,26 +355,19 @@ public final class BasicTypeConverter implements Serializable { // loss of nanos precision return new java.util.Date(((java.sql.Timestamp) value).getTime()); } - // DEVNOTE: strictly speaking do I need to convert a java.sql.Date to - // java.util.Date? equals() is symmetrical so perhaps this is not - // really required? if (value instanceof java.sql.Date) { return new java.util.Date(((java.sql.Date) value).getTime()); } if (value instanceof java.util.Date) { return (java.util.Date) value; - } else if (value instanceof Calendar) { return ((Calendar) value).getTime(); - } else if (value instanceof String) { return new java.util.Date(Timestamp.valueOf((String) value).getTime()); - } else if (value instanceof Number) { return new java.util.Date(((Number) value).longValue()); - } else { - throw new RuntimeException("Unable to convert [" + value.getClass().getName() + "] into a java.util.Date"); + throw new RuntimeException("Unable to convert " + value); } } @@ -447,37 +375,29 @@ public final class BasicTypeConverter implements Serializable { * convert the passed in object to a java sql Date. */ public static Calendar toCalendar(Object value) { - if (value == null) { return null; } if (value instanceof Calendar) { return (Calendar) value; - } else if (value instanceof java.util.Date) { java.util.Date date = ((java.util.Date) value); return toCalendarFromDate(date); - } else if (value instanceof String) { java.util.Date date = toUtilDate(value); return toCalendarFromDate(date); - } else if (value instanceof Number) { long timeMillis = ((Number) value).longValue(); java.util.Date date = new java.util.Date(timeMillis); return toCalendarFromDate(date); - } else { - String m = "Unable to convert [" + value.getClass().getName() + "] into a java.util.Date"; - throw new RuntimeException(m); + throw new RuntimeException("Unable to convert " + value); } } private static Calendar toCalendarFromDate(java.util.Date date) { - Calendar cal = Calendar.getInstance(); cal.setTime(date); - return cal; } diff --git a/ebean-core-type/src/main/java/io/ebean/core/type/ScalarTypeUtils.java b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarTypeUtils.java index 1e7915316..efd4b6780 100644 --- a/ebean-core-type/src/main/java/io/ebean/core/type/ScalarTypeUtils.java +++ b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarTypeUtils.java @@ -6,6 +6,7 @@ import java.time.Duration; import java.time.Instant; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatterBuilder; +import java.util.UUID; /** * Utilities to aid in the translation of decimal types to/from multiple parts. @@ -87,4 +88,92 @@ public final class ScalarTypeUtils { private static int extractNanosecondDecimal(BigDecimal value, long integer) { return value.subtract(new BigDecimal(integer)).multiply(ONE_BILLION).intValue(); } + + + /** + * Convert from byte[] to UUID. + */ + public static UUID uuidFromBytes(byte[] bytes, boolean optimized) { + int usableBytes = Math.min(bytes.length, 16); + + // Need exactly 16 bytes - pad the input if not enough bytes are provided + // Use provided bytes in the least significant position; if more than 16 bytes are given, + // then use the first 16 bytes from the array; + byte[] barr = new byte[16]; + for (int i = 15, j = usableBytes - 1; j >= 0; i--, j--) { + barr[i] = bytes[j]; + } + + long msb; + if (optimized) { + msb = ((long)barr[4] << 56) + // XXXXXXXX-____-____-... + ((long)(barr[5] & 255) << 48) + // -> put at end 4..7 of buf + ((long)(barr[6] & 255) << 40) + + ((long)(barr[7] & 255) << 32) + + ((long)(barr[2] & 255) << 24) + // ________-XXXX-____-... + ((barr[3] & 255) << 16) + // put at 2..3 in buf + ((barr[0] & 255) << 8) + // ________-____-XXXX-... + ((barr[1] & 255) << 0); // put at 0..1 in buf + } else { + msb = ((long)barr[0] << 56) + // XXXXXXXX-____-____-... + ((long)(barr[1] & 255) << 48) + + ((long)(barr[2] & 255) << 40) + + ((long)(barr[3] & 255) << 32) + + ((long)(barr[4] & 255) << 24) + // ________-XXXX-____-... + ((barr[5] & 255) << 16) + + ((barr[6] & 255) << 8) + // ________-____-XXXX-... + ((barr[7] & 255) << 0); + } + long lsb = ((long)barr[8] << 56) + + ((long)(barr[9] & 255) << 48) + + ((long)(barr[10] & 255) << 40) + + ((long)(barr[11] & 255) << 32) + + ((long)(barr[12] & 255) << 24) + + ((barr[13] & 255) << 16) + + ((barr[14] & 255) << 8) + + ((barr[15] & 255) << 0); + + return new UUID(msb, lsb); + } + + /** + * Convert from UUID to byte[]. + */ + public static byte[] uuidToBytes(UUID uuid, boolean optimized) { + byte[] ret = new byte[16]; + long l = uuid.getMostSignificantBits(); + + if (optimized) { + ret[0] = (byte) (l >>> 8); // was 6/7 + ret[1] = (byte) (l >>> 0); + + ret[2] = (byte) (l >>> 24); // was 4/5 + ret[3] = (byte) (l >>> 16); + + ret[4] = (byte) (l >>> 56); // was 0..3 + ret[5] = (byte) (l >>> 48); + ret[6] = (byte) (l >>> 40); + ret[7] = (byte) (l >>> 32); + } else { + ret[0] = (byte) (l >>> 56); + ret[1] = (byte) (l >>> 48); + ret[2] = (byte) (l >>> 40); + ret[3] = (byte) (l >>> 32); + ret[4] = (byte) (l >>> 24); + ret[5] = (byte) (l >>> 16); + ret[6] = (byte) (l >>> 8); + ret[7] = (byte) (l >>> 0); + } + l = uuid.getLeastSignificantBits(); + ret[8] = (byte) (l >>> 56); + ret[9] = (byte) (l >>> 48); + ret[10] = (byte) (l >>> 40); + ret[11] = (byte) (l >>> 32); + ret[12] = (byte) (l >>> 24); + ret[13] = (byte) (l >>> 16); + ret[14] = (byte) (l >>> 8); + ret[15] = (byte) (l >>> 0); + + return ret; + } } diff --git a/ebean-core-type/src/test/java/io/ebean/core/type/ScalarTypeUtilsUuidBytesTest.java b/ebean-core-type/src/test/java/io/ebean/core/type/ScalarTypeUtilsUuidBytesTest.java new file mode 100644 index 000000000..851aa9900 --- /dev/null +++ b/ebean-core-type/src/test/java/io/ebean/core/type/ScalarTypeUtilsUuidBytesTest.java @@ -0,0 +1,33 @@ +package io.ebean.core.type; + +import org.junit.jupiter.api.Test; + +import java.util.UUID; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class ScalarTypeUtilsUuidBytesTest { + + @Test + void testConversion() { + UUID id = UUID.randomUUID(); + + byte[] bytes = ScalarTypeUtils.uuidToBytes(id, false); + assertEquals(16, bytes.length); + + UUID id2 = ScalarTypeUtils.uuidFromBytes(bytes, false); + assertEquals(id, id2); + } + + @Test + void testConversionOptimized() { + UUID id = UUID.randomUUID(); + + byte[] bytes = ScalarTypeUtils.uuidToBytes(id, true); + assertEquals(16, bytes.length); + + UUID id2 = ScalarTypeUtils.uuidFromBytes(bytes, true); + assertEquals(id, id2); + } + +} diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedCounter.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedCounter.java index 38f0085fb..d4ee1f595 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedCounter.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/generatedproperty/GeneratedCounter.java @@ -1,7 +1,7 @@ package io.ebeaninternal.server.deploy.generatedproperty; import io.ebean.bean.EntityBean; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import io.ebeaninternal.server.deploy.BeanProperty; /** diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultSqlRow.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultSqlRow.java index e38d9d7d7..ad9902a2d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultSqlRow.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/DefaultSqlRow.java @@ -2,7 +2,7 @@ package io.ebeaninternal.server.query; import io.ebean.SqlQuery; import io.ebean.SqlRow; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.math.BigDecimal; import java.sql.Date; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ArrayElementConverter.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ArrayElementConverter.java index 5617e752c..12e5e6b17 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ArrayElementConverter.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ArrayElementConverter.java @@ -1,7 +1,7 @@ package io.ebeaninternal.server.type; import io.ebean.core.type.ScalarType; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.math.BigDecimal; import java.util.UUID; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeFactory.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeFactory.java index f0a700670..af89523ab 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeFactory.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeFactory.java @@ -3,7 +3,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.DatabaseConfig; import io.ebean.config.JsonConfig; import io.ebean.core.type.ScalarType; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.math.BigInteger; import java.sql.Types; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBigDecimal.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBigDecimal.java index 9dedf97e7..223e26d05 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBigDecimal.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBigDecimal.java @@ -6,7 +6,7 @@ import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.DocPropertyType; import io.ebean.core.type.ScalarTypeBase; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.io.DataInput; import java.io.DataOutput; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBoolean.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBoolean.java index 24c6b074a..62aa6c553 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBoolean.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeBoolean.java @@ -7,7 +7,7 @@ import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.DocPropertyType; import io.ebean.core.type.ScalarTypeBase; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.io.DataInput; import java.io.DataOutput; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeByte.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeByte.java index d0e9e6c96..e01bc625e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeByte.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeByte.java @@ -7,7 +7,7 @@ import io.ebean.core.type.DataReader; import io.ebean.core.type.DocPropertyType; import io.ebean.core.type.ScalarTypeBase; import io.ebean.text.TextException; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.io.ByteArrayOutputStream; import java.io.DataInput; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCalendar.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCalendar.java index 50ee64539..8ac56e517 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCalendar.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCalendar.java @@ -3,7 +3,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.JsonConfig; import io.ebean.core.type.DataBinder; import io.ebean.core.type.ScalarTypeBaseDateTime; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.sql.Date; import java.sql.SQLException; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeChar.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeChar.java index c7d9760b7..bf181dd2e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeChar.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeChar.java @@ -3,7 +3,7 @@ package io.ebeaninternal.server.type; import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.ScalarTypeBaseVarchar; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.sql.SQLException; import java.sql.Types; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCharArray.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCharArray.java index 13a06d931..ff74e0cfe 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCharArray.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCharArray.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.core.JsonParser; import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.ScalarTypeBaseVarchar; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.io.IOException; import java.sql.SQLException; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDate.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDate.java index eaf883cff..bc4ac8aad 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDate.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDate.java @@ -4,7 +4,7 @@ import io.ebean.config.JsonConfig; import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.ScalarTypeBaseDate; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.sql.Date; import java.sql.SQLException; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDouble.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDouble.java index 97cd742dd..3fe5deba0 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDouble.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDouble.java @@ -6,7 +6,7 @@ import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.DocPropertyType; import io.ebean.core.type.ScalarTypeBase; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.io.DataInput; import java.io.DataOutput; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDuration.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDuration.java index 2e5a29996..c73347add 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDuration.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDuration.java @@ -3,7 +3,7 @@ package io.ebeaninternal.server.type; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import io.ebean.core.type.*; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.io.DataInput; import java.io.DataOutput; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDurationWithNanos.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDurationWithNanos.java index 9ba27cc6c..f298debd8 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDurationWithNanos.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeDurationWithNanos.java @@ -2,7 +2,7 @@ package io.ebeaninternal.server.type; import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.math.BigDecimal; import java.sql.SQLException; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFloat.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFloat.java index 61ba766f0..facea6618 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFloat.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeFloat.java @@ -6,7 +6,7 @@ import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.DocPropertyType; import io.ebean.core.type.ScalarTypeBase; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.io.DataInput; import java.io.DataOutput; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInteger.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInteger.java index b9d621679..aea3b8d16 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInteger.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInteger.java @@ -6,7 +6,7 @@ import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.DocPropertyType; import io.ebean.core.type.ScalarTypeBase; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.io.DataInput; import java.io.DataOutput; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateMidnight.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateMidnight.java index 03c4e5897..78a625327 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateMidnight.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateMidnight.java @@ -2,7 +2,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.JsonConfig; import io.ebean.core.type.ScalarTypeBaseDate; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import org.joda.time.DateMidnight; import java.sql.Date; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateTime.java index 0eea396f9..c9d61bd1e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateTime.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateTime.java @@ -2,7 +2,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.JsonConfig; import io.ebean.core.type.ScalarTypeBaseDateTime; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import org.joda.time.DateTime; import java.sql.Timestamp; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDate.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDate.java index 92a17a8f7..163775fb0 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDate.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDate.java @@ -8,7 +8,7 @@ import org.joda.time.DateTimeZone; import org.joda.time.LocalDate; import io.ebean.config.JsonConfig; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; /** * ScalarType for Joda LocalDate. This maps to a JDBC Date. diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTime.java index 07d289c4d..348ce28d6 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTime.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTime.java @@ -2,7 +2,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.JsonConfig; import io.ebean.core.type.ScalarTypeBaseDateTime; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import org.joda.time.LocalDateTime; import java.sql.Timestamp; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java index 94134db9f..072046b0f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java @@ -7,7 +7,7 @@ import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.DocPropertyType; import io.ebean.core.type.ScalarTypeBase; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import org.joda.time.DateTimeZone; import org.joda.time.LocalTime; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeUTC.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeUTC.java index e19af274e..81edfe24a 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeUTC.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeUTC.java @@ -2,7 +2,7 @@ package io.ebeaninternal.server.type; import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import org.joda.time.DateTimeZone; import org.joda.time.LocalTime; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalDate.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalDate.java index 0461faddc..3176a1886 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalDate.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalDate.java @@ -9,7 +9,7 @@ import java.time.ZonedDateTime; import io.ebean.config.JsonConfig; import io.ebean.core.type.ScalarTypeBaseDate; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; /** * ScalarType for java.time.LocalDate. This maps to a JDBC Date. diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTime.java index 6711de132..d43f0e6cb 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTime.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTime.java @@ -6,8 +6,7 @@ import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.DocPropertyType; import io.ebean.core.type.ScalarTypeBase; -import io.ebean.text.TextException; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.io.DataInput; import java.io.DataOutput; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTimeWithNanos.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTimeWithNanos.java index 237c2f633..aa6adb996 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTimeWithNanos.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLocalTimeWithNanos.java @@ -2,7 +2,7 @@ package io.ebeaninternal.server.type; import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.sql.SQLException; import java.sql.Types; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLong.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLong.java index daff9db26..b04a0a936 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLong.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeLong.java @@ -6,7 +6,7 @@ import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.DocPropertyType; import io.ebean.core.type.ScalarTypeBase; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.io.DataInput; import java.io.DataOutput; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMathBigInteger.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMathBigInteger.java index ce8a87dbe..29ee7316c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMathBigInteger.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeMathBigInteger.java @@ -6,7 +6,7 @@ import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.DocPropertyType; import io.ebean.core.type.ScalarTypeBase; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.io.DataInput; import java.io.DataOutput; @@ -49,7 +49,7 @@ final class ScalarTypeMathBigInteger extends ScalarTypeBase { @Override public BigInteger toBeanType(Object value) { - return BasicTypeConverter.toMathBigInteger(value); + return BasicTypeConverter.toBigInteger(value); } @Override diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeShort.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeShort.java index 75619af5f..059b68a1a 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeShort.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeShort.java @@ -6,7 +6,7 @@ import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.DocPropertyType; import io.ebean.core.type.ScalarTypeBase; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.io.DataInput; import java.io.DataOutput; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeStringBase.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeStringBase.java index 6fffec61e..4b260e096 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeStringBase.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeStringBase.java @@ -6,7 +6,7 @@ import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.DocPropertyType; import io.ebean.core.type.ScalarTypeBase; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.io.DataInput; import java.io.DataOutput; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTime.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTime.java index eb017211d..a301da7ed 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTime.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTime.java @@ -6,7 +6,7 @@ import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.DocPropertyType; import io.ebean.core.type.ScalarTypeBase; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.io.DataInput; import java.io.DataOutput; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTimestamp.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTimestamp.java index 0f2a45402..1efa9ad6e 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTimestamp.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeTimestamp.java @@ -4,7 +4,7 @@ import io.ebean.config.JsonConfig; import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.ScalarTypeBaseDateTime; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.sql.SQLException; import java.sql.Timestamp; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDBase.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDBase.java index dda89c9cc..0e41ddfc7 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDBase.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDBase.java @@ -5,7 +5,7 @@ import com.fasterxml.jackson.core.JsonParser; import io.ebean.config.dbplatform.DbPlatformType; import io.ebean.core.type.DocPropertyType; import io.ebean.core.type.ScalarTypeBase; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.io.DataInput; import java.io.DataOutput; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDBinary.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDBinary.java index e379ddc2c..a2658dbf5 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDBinary.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUUIDBinary.java @@ -2,7 +2,8 @@ package io.ebeaninternal.server.type; import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; +import io.ebean.core.type.ScalarTypeUtils; import java.sql.SQLException; import java.sql.Types; @@ -24,7 +25,7 @@ public final class ScalarTypeUUIDBinary extends ScalarTypeUUIDBase { @Override public Object toJdbcType(Object value) { - return convertToBytes(value, optimized); + return convertToBytes((UUID)value, optimized); } @Override @@ -51,98 +52,16 @@ public final class ScalarTypeUUIDBinary extends ScalarTypeUUIDBase { if (bytes == null) { return null; } else { - return convertFromBytes(bytes, optimized); + return ScalarTypeUtils.uuidFromBytes(bytes, optimized); } } - /** - * Convert from byte[] to UUID. - */ - public static UUID convertFromBytes(byte[] bytes, boolean optimized) { - - int usableBytes = Math.min(bytes.length, 16); - - // Need exactly 16 bytes - pad the input if not enough bytes are provided - // Use provided bytes in the least significant position; if more than 16 bytes are given, - // then use the first 16 bytes from the array; - byte[] barr = new byte[16]; - for (int i = 15, j = usableBytes - 1; j >= 0; i--, j--) { - barr[i] = bytes[j]; - } - - long msb; - if (optimized) { - msb = ((long)barr[4] << 56) + // XXXXXXXX-____-____-... - ((long)(barr[5] & 255) << 48) + // -> put at end 4..7 of buf - ((long)(barr[6] & 255) << 40) + - ((long)(barr[7] & 255) << 32) + - ((long)(barr[2] & 255) << 24) + // ________-XXXX-____-... - ((barr[3] & 255) << 16) + // put at 2..3 in buf - ((barr[0] & 255) << 8) + // ________-____-XXXX-... - ((barr[1] & 255) << 0); // put at 0..1 in buf - } else { - msb = ((long)barr[0] << 56) + // XXXXXXXX-____-____-... - ((long)(barr[1] & 255) << 48) + - ((long)(barr[2] & 255) << 40) + - ((long)(barr[3] & 255) << 32) + - ((long)(barr[4] & 255) << 24) + // ________-XXXX-____-... - ((barr[5] & 255) << 16) + - ((barr[6] & 255) << 8) + // ________-____-XXXX-... - ((barr[7] & 255) << 0); - } - long lsb = ((long)barr[8] << 56) + - ((long)(barr[9] & 255) << 48) + - ((long)(barr[10] & 255) << 40) + - ((long)(barr[11] & 255) << 32) + - ((long)(barr[12] & 255) << 24) + - ((barr[13] & 255) << 16) + - ((barr[14] & 255) << 8) + - ((barr[15] & 255) << 0); - - return new UUID(msb, lsb); + static UUID convertFromBytes(byte[] bytes, boolean optimized) { + return ScalarTypeUtils.uuidFromBytes(bytes, optimized); } - /** - * Convert from UUID to byte[]. - */ - public static byte[] convertToBytes(Object value, boolean optimized) { - - UUID uuid = (UUID) value; - byte[] ret = new byte[16]; - long l = uuid.getMostSignificantBits(); - - if (optimized) { - ret[0] = (byte) (l >>> 8); // was 6/7 - ret[1] = (byte) (l >>> 0); - - ret[2] = (byte) (l >>> 24); // was 4/5 - ret[3] = (byte) (l >>> 16); - - ret[4] = (byte) (l >>> 56); // was 0..3 - ret[5] = (byte) (l >>> 48); - ret[6] = (byte) (l >>> 40); - ret[7] = (byte) (l >>> 32); - } else { - ret[0] = (byte) (l >>> 56); - ret[1] = (byte) (l >>> 48); - ret[2] = (byte) (l >>> 40); - ret[3] = (byte) (l >>> 32); - ret[4] = (byte) (l >>> 24); - ret[5] = (byte) (l >>> 16); - ret[6] = (byte) (l >>> 8); - ret[7] = (byte) (l >>> 0); - } - l = uuid.getLeastSignificantBits(); - ret[8] = (byte) (l >>> 56); - ret[9] = (byte) (l >>> 48); - ret[10] = (byte) (l >>> 40); - ret[11] = (byte) (l >>> 32); - ret[12] = (byte) (l >>> 24); - ret[13] = (byte) (l >>> 16); - ret[14] = (byte) (l >>> 8); - ret[15] = (byte) (l >>> 0); - - return ret; + static byte[] convertToBytes(UUID value, boolean optimized) { + return ScalarTypeUtils.uuidToBytes(value, optimized); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUtilDate.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUtilDate.java index ae8d670d5..fabac9bae 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUtilDate.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeUtilDate.java @@ -5,7 +5,7 @@ import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.ScalarTypeBaseDate; import io.ebean.core.type.ScalarTypeBaseDateTime; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.sql.SQLException; import java.sql.Timestamp; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeYear.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeYear.java index a001ebe08..9c60047f5 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeYear.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeYear.java @@ -6,7 +6,7 @@ import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; import io.ebean.core.type.DocPropertyType; import io.ebean.core.type.ScalarTypeBase; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.io.DataInput; import java.io.DataOutput; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeYearMonthDate.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeYearMonthDate.java index c662c8ca0..c0b81452c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeYearMonthDate.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeYearMonthDate.java @@ -2,7 +2,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.JsonConfig; import io.ebean.core.type.ScalarTypeBaseDate; -import io.ebeaninternal.server.core.BasicTypeConverter; +import io.ebean.core.type.BasicTypeConverter; import java.sql.Date; import java.sql.Timestamp; diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/core/BasicTypeConverterTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/core/BasicTypeConverterTest.java index c2f2c91b2..56bbeb9f7 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/core/BasicTypeConverterTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/core/BasicTypeConverterTest.java @@ -1,5 +1,6 @@ package io.ebeaninternal.server.core; +import io.ebean.core.type.BasicTypeConverter; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; From b7e62df371eeea69ae142989a7ee812b51ca677e Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 26 Aug 2022 17:32:31 +1200 Subject: [PATCH 055/127] Refactor extract ebean-joda-time module - move joda ScalarTypes Moves the joda-time ScalarTypes into a new ebean-joda-time module. Include the ebean-joda-time module in the classpath, and the extra types will be service loaded (by DefaultTypeManager). --- .../server/type/DefaultTypeManager.java | 33 +------------- .../org/tests/model/basic/TJodaEntity.java | 32 -------------- ebean-joda-time/pom.xml | 44 +++++++++++++++++++ .../ebean/joda/time/JodaExtraTypeFactory.java | 40 +++++++++++++++++ .../time}/ScalarTypeJodaDateMidnight.java | 2 +- .../joda/time}/ScalarTypeJodaDateTime.java | 2 +- .../joda/time}/ScalarTypeJodaLocalDate.java | 2 +- .../time}/ScalarTypeJodaLocalDateNative.java | 2 +- .../time}/ScalarTypeJodaLocalDateTime.java | 2 +- .../joda/time}/ScalarTypeJodaLocalTime.java | 2 +- .../time}/ScalarTypeJodaLocalTimeUTC.java | 2 +- .../joda/time}/ScalarTypeJodaPeriod.java | 2 +- .../src/main/java/module-info.java | 9 ++++ .../io.ebean.core.type.ExtraTypeFactory | 1 + .../time}/ScalarTypeJodaLocalDateTest.java | 12 +---- .../ScalarTypeJodaLocalDateTimeTest.java | 2 +- .../time}/ScalarTypeJodaLocalTimeTest.java | 18 +------- .../joda/time}/ScalarTypeJodaPeriodTest.java | 2 +- ebean-test/pom.xml | 9 +++- .../java/org/tests/basic/TestJodaType.java | 25 ++++++++--- .../org/tests/model/basic/TJodaEntity.java | 10 +++++ pom.xml | 1 + 22 files changed, 146 insertions(+), 108 deletions(-) delete mode 100644 ebean-core/src/test/java/org/tests/model/basic/TJodaEntity.java create mode 100644 ebean-joda-time/pom.xml create mode 100644 ebean-joda-time/src/main/java/io/ebean/joda/time/JodaExtraTypeFactory.java rename {ebean-core/src/main/java/io/ebeaninternal/server/type => ebean-joda-time/src/main/java/io/ebean/joda/time}/ScalarTypeJodaDateMidnight.java (97%) rename {ebean-core/src/main/java/io/ebeaninternal/server/type => ebean-joda-time/src/main/java/io/ebean/joda/time}/ScalarTypeJodaDateTime.java (97%) rename {ebean-core/src/main/java/io/ebeaninternal/server/type => ebean-joda-time/src/main/java/io/ebean/joda/time}/ScalarTypeJodaLocalDate.java (97%) rename {ebean-core/src/main/java/io/ebeaninternal/server/type => ebean-joda-time/src/main/java/io/ebean/joda/time}/ScalarTypeJodaLocalDateNative.java (96%) rename {ebean-core/src/main/java/io/ebeaninternal/server/type => ebean-joda-time/src/main/java/io/ebean/joda/time}/ScalarTypeJodaLocalDateTime.java (97%) rename {ebean-core/src/main/java/io/ebeaninternal/server/type => ebean-joda-time/src/main/java/io/ebean/joda/time}/ScalarTypeJodaLocalTime.java (98%) rename {ebean-core/src/main/java/io/ebeaninternal/server/type => ebean-joda-time/src/main/java/io/ebean/joda/time}/ScalarTypeJodaLocalTimeUTC.java (97%) rename {ebean-core/src/main/java/io/ebeaninternal/server/type => ebean-joda-time/src/main/java/io/ebean/joda/time}/ScalarTypeJodaPeriod.java (94%) create mode 100644 ebean-joda-time/src/main/java/module-info.java create mode 100644 ebean-joda-time/src/main/resources/META-INF/services/io.ebean.core.type.ExtraTypeFactory rename {ebean-core/src/test/java/io/ebeaninternal/server/type => ebean-joda-time/src/test/java/io/ebean/joda/time}/ScalarTypeJodaLocalDateTest.java (81%) rename {ebean-core/src/test/java/io/ebeaninternal/server/type => ebean-joda-time/src/test/java/io/ebean/joda/time}/ScalarTypeJodaLocalDateTimeTest.java (96%) rename {ebean-core/src/test/java/io/ebeaninternal/server/type => ebean-joda-time/src/test/java/io/ebean/joda/time}/ScalarTypeJodaLocalTimeTest.java (71%) rename {ebean-core/src/test/java/io/ebeaninternal/server/type => ebean-joda-time/src/test/java/io/ebean/joda/time}/ScalarTypeJodaPeriodTest.java (96%) 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 8bb9680e7..49c03dc57 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 @@ -147,7 +147,6 @@ public final class DefaultTypeManager implements TypeManager { initialiseStandard(config); initialiseJavaTimeTypes(config); - initialiseJodaTypes(config); initialiseJacksonTypes(config); loadTypesFromProviders(config, objectMapper); loadGeoTypeBinder(config); @@ -261,7 +260,7 @@ public final class DefaultTypeManager implements TypeManager { if (found == null) { if (type.getName().equals("org.joda.time.LocalTime")) { throw new IllegalStateException( - "ScalarType of Joda LocalTime not defined. You need to set DatabaseConfig.jodaLocalTimeMode to" + "ScalarType of Joda LocalTime not defined. 1) Check ebean-joda-time dependency has been added 2) Check DatabaseConfig.jodaLocalTimeMode is set to" + " either 'normal' or 'utc'. UTC is the old mode using UTC timezone but local time zone is now preferred as 'normal' mode."); } found = checkInheritedTypes(type); @@ -798,36 +797,6 @@ public final class DefaultTypeManager implements TypeManager { logicalMap.putIfAbsent(clazz.getSimpleName(), scalarType); } - /** - * Detect if Joda classes are in the classpath and if so register the Joda data types. - */ - @SuppressWarnings("deprecation") - private void initialiseJodaTypes(DatabaseConfig config) { - // detect if Joda classes are in the classpath - if (config.getClassLoadConfig().isJodaTimePresent()) { - // Joda classes are in the classpath so register the types - log.log(DEBUG, "Registering Joda data types"); - addType(LocalDateTime.class, new ScalarTypeJodaLocalDateTime(jsonDateTime)); - addType(DateTime.class, new ScalarTypeJodaDateTime(jsonDateTime)); - if (config.getDatabasePlatform().supportsNativeJavaTime()) { - addType(LocalDate.class, new ScalarTypeJodaLocalDateNative(jsonDate)); - } else { - addType(LocalDate.class, new ScalarTypeJodaLocalDate(jsonDate)); - } - addType(org.joda.time.DateMidnight.class, new ScalarTypeJodaDateMidnight(jsonDate)); - addType(org.joda.time.Period.class, new ScalarTypeJodaPeriod()); - - String jodaLocalTimeMode = config.getJodaLocalTimeMode(); - if ("normal".equalsIgnoreCase(jodaLocalTimeMode)) { - // use the expected/normal local time zone - addType(LocalTime.class, new ScalarTypeJodaLocalTime()); - } else if ("utc".equalsIgnoreCase(jodaLocalTimeMode)) { - // use the old UTC based - addType(LocalTime.class, new ScalarTypeJodaLocalTimeUTC()); - } - } - } - /** * Register all the standard types supported. This is the standard JDBC types * plus some other common types such as java.util.Date and java.util.Calendar. diff --git a/ebean-core/src/test/java/org/tests/model/basic/TJodaEntity.java b/ebean-core/src/test/java/org/tests/model/basic/TJodaEntity.java deleted file mode 100644 index 311a20424..000000000 --- a/ebean-core/src/test/java/org/tests/model/basic/TJodaEntity.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.tests.model.basic; - -import org.joda.time.LocalTime; - -import javax.persistence.Entity; -import javax.persistence.Id; - -@Entity -public class TJodaEntity { - - @Id - Integer id; - - LocalTime localTime; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public LocalTime getLocalTime() { - return localTime; - } - - public void setLocalTime(LocalTime localTime) { - this.localTime = localTime; - } - -} diff --git a/ebean-joda-time/pom.xml b/ebean-joda-time/pom.xml new file mode 100644 index 000000000..4c082cdae --- /dev/null +++ b/ebean-joda-time/pom.xml @@ -0,0 +1,44 @@ + + + + ebean-parent + io.ebean + 13.8.2-SNAPSHOT + + 4.0.0 + + ebean-joda-time + + + + + io.ebean + ebean-core-type + 13.8.2-SNAPSHOT + provided + + + + joda-time + joda-time + 2.11.0 + + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + true + + + + io.avaje + junit + 1.1 + test + + + + diff --git a/ebean-joda-time/src/main/java/io/ebean/joda/time/JodaExtraTypeFactory.java b/ebean-joda-time/src/main/java/io/ebean/joda/time/JodaExtraTypeFactory.java new file mode 100644 index 000000000..c4883368e --- /dev/null +++ b/ebean-joda-time/src/main/java/io/ebean/joda/time/JodaExtraTypeFactory.java @@ -0,0 +1,40 @@ +package io.ebean.joda.time; + +import io.ebean.config.DatabaseConfig; +import io.ebean.core.type.ExtraTypeFactory; +import io.ebean.core.type.ScalarType; + +import java.util.ArrayList; +import java.util.List; + +/** + * Register the Joda-Time ScalarType support. + */ +public class JodaExtraTypeFactory implements ExtraTypeFactory { + + @Override + public List> createTypes(DatabaseConfig config, Object objectMapper) { + var jsonDateTime = config.getJsonDateTime(); + var jsonDate = config.getJsonDate(); + + List> types = new ArrayList<>(); + types.add(new ScalarTypeJodaLocalDateTime(jsonDateTime)); + types.add(new ScalarTypeJodaDateTime(jsonDateTime)); + if (config.getDatabasePlatform().supportsNativeJavaTime()) { + types.add(new ScalarTypeJodaLocalDateNative(jsonDate)); + } else { + types.add(new ScalarTypeJodaLocalDate(jsonDate)); + } + types.add(new ScalarTypeJodaDateMidnight(jsonDate)); + types.add(new ScalarTypeJodaPeriod()); + String jodaLocalTimeMode = config.getJodaLocalTimeMode(); + if ("normal".equalsIgnoreCase(jodaLocalTimeMode)) { + // use the expected/normal local time zone + types.add(new ScalarTypeJodaLocalTime()); + } else if ("utc".equalsIgnoreCase(jodaLocalTimeMode)) { + // use the old UTC based + types.add(new ScalarTypeJodaLocalTimeUTC()); + } + return types; + } +} diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateMidnight.java b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaDateMidnight.java similarity index 97% rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateMidnight.java rename to ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaDateMidnight.java index 78a625327..e2520906d 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateMidnight.java +++ b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaDateMidnight.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.type; +package io.ebean.joda.time; import io.ebean.config.JsonConfig; import io.ebean.core.type.ScalarTypeBaseDate; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateTime.java b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaDateTime.java similarity index 97% rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateTime.java rename to ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaDateTime.java index c9d61bd1e..594795f2b 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaDateTime.java +++ b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaDateTime.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.type; +package io.ebean.joda.time; import io.ebean.config.JsonConfig; import io.ebean.core.type.ScalarTypeBaseDateTime; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDate.java b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalDate.java similarity index 97% rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDate.java rename to ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalDate.java index 163775fb0..fa10d20e9 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDate.java +++ b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalDate.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.type; +package io.ebean.joda.time; import java.sql.Date; import java.sql.Types; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateNative.java b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalDateNative.java similarity index 96% rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateNative.java rename to ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalDateNative.java index 328cccabb..b25a9609f 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateNative.java +++ b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalDateNative.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.type; +package io.ebean.joda.time; import java.sql.SQLException; import java.sql.Types; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTime.java b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalDateTime.java similarity index 97% rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTime.java rename to ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalDateTime.java index 348ce28d6..3b0ec373b 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTime.java +++ b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalDateTime.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.type; +package io.ebean.joda.time; import io.ebean.config.JsonConfig; import io.ebean.core.type.ScalarTypeBaseDateTime; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalTime.java similarity index 98% rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java rename to ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalTime.java index 072046b0f..9e62b683a 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTime.java +++ b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalTime.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.type; +package io.ebean.joda.time; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeUTC.java b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalTimeUTC.java similarity index 97% rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeUTC.java rename to ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalTimeUTC.java index 81edfe24a..163c1f7ec 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeUTC.java +++ b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaLocalTimeUTC.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.type; +package io.ebean.joda.time; import io.ebean.core.type.DataBinder; import io.ebean.core.type.DataReader; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaPeriod.java b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaPeriod.java similarity index 94% rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaPeriod.java rename to ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaPeriod.java index abe0c9da3..27914fc1c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJodaPeriod.java +++ b/ebean-joda-time/src/main/java/io/ebean/joda/time/ScalarTypeJodaPeriod.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.type; +package io.ebean.joda.time; import io.ebean.core.type.ScalarTypeBaseVarchar; import org.joda.time.Period; diff --git a/ebean-joda-time/src/main/java/module-info.java b/ebean-joda-time/src/main/java/module-info.java new file mode 100644 index 000000000..941aeb4bd --- /dev/null +++ b/ebean-joda-time/src/main/java/module-info.java @@ -0,0 +1,9 @@ + +module io.ebean.joda.time { + + requires io.ebean.core.type; + requires org.joda.time; + requires com.fasterxml.jackson.core; + + provides io.ebean.core.type.ExtraTypeFactory with io.ebean.joda.time.JodaExtraTypeFactory; +} diff --git a/ebean-joda-time/src/main/resources/META-INF/services/io.ebean.core.type.ExtraTypeFactory b/ebean-joda-time/src/main/resources/META-INF/services/io.ebean.core.type.ExtraTypeFactory new file mode 100644 index 000000000..3f23de83c --- /dev/null +++ b/ebean-joda-time/src/main/resources/META-INF/services/io.ebean.core.type.ExtraTypeFactory @@ -0,0 +1 @@ +io.ebean.joda.time.JodaExtraTypeFactory diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTest.java b/ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaLocalDateTest.java similarity index 81% rename from ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTest.java rename to ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaLocalDateTest.java index 0d3719f8a..94ad4f855 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTest.java +++ b/ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaLocalDateTest.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.type; +package io.ebean.joda.time; import io.ebean.config.JsonConfig; import org.joda.time.LocalDate; @@ -78,15 +78,5 @@ public class ScalarTypeJodaLocalDateTest { assertThat(beanType).isEqualTo(localDate); } - @Test - public void json() throws IOException { - LocalDate val = new LocalDate(2019, 5, 9); - - JsonTester jsonMillis = new JsonTester<>(type); - assertThat(jsonMillis.test(val)).isEqualTo("{\"key\":1557360000000}"); - - JsonTester jsonIso = new JsonTester<>(new ScalarTypeJodaLocalDate(JsonConfig.Date.ISO8601) ); - assertThat(jsonIso.test(val)).isEqualTo("{\"key\":\"2019-05-09\"}"); - } } diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTimeTest.java b/ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaLocalDateTimeTest.java similarity index 96% rename from ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTimeTest.java rename to ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaLocalDateTimeTest.java index 933176623..ed1232aa9 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalDateTimeTest.java +++ b/ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaLocalDateTimeTest.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.type; +package io.ebean.joda.time; import io.ebean.config.JsonConfig; import org.joda.time.DateTimeZone; diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeTest.java b/ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaLocalTimeTest.java similarity index 71% rename from ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeTest.java rename to ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaLocalTimeTest.java index 9eaf9b452..9e8b9f161 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaLocalTimeTest.java +++ b/ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaLocalTimeTest.java @@ -1,12 +1,9 @@ -package io.ebeaninternal.server.type; +package io.ebean.joda.time; -import io.ebean.DB; import org.joda.time.DateTimeZone; import org.joda.time.LocalDateTime; import org.joda.time.LocalTime; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import org.tests.model.basic.TJodaEntity; import java.sql.Timestamp; @@ -47,18 +44,5 @@ public class ScalarTypeJodaLocalTimeTest { } - @Test - public void toJson() { - LocalTime now = new LocalTime(); - - TJodaEntity bean = new TJodaEntity(); - bean.setId(42); - bean.setLocalTime(now); - - String json = DB.json().toJson(bean); - TJodaEntity bean1 = DB.json().toBean(TJodaEntity.class, json); - - Assertions.assertEquals(bean1.getLocalTime(), now); - } } diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaPeriodTest.java b/ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaPeriodTest.java similarity index 96% rename from ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaPeriodTest.java rename to ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaPeriodTest.java index 32edd86b2..12f1f3496 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/type/ScalarTypeJodaPeriodTest.java +++ b/ebean-joda-time/src/test/java/io/ebean/joda/time/ScalarTypeJodaPeriodTest.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.type; +package io.ebean.joda.time; import org.joda.time.Period; import org.junit.jupiter.api.Test; diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 55c78b52b..e38598080 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -102,6 +102,13 @@ + + io.ebean + ebean-joda-time + 13.8.2-SNAPSHOT + test + + io.ebean ebean-platform-all @@ -148,7 +155,7 @@ joda-time joda-time - 2.9.7 + 2.11.0 test diff --git a/ebean-test/src/test/java/org/tests/basic/TestJodaType.java b/ebean-test/src/test/java/org/tests/basic/TestJodaType.java index c5ed8b008..945572787 100644 --- a/ebean-test/src/test/java/org/tests/basic/TestJodaType.java +++ b/ebean-test/src/test/java/org/tests/basic/TestJodaType.java @@ -6,18 +6,19 @@ import io.ebean.core.type.ScalarType; import io.ebeaninternal.api.SpiEbeanServer; import io.ebeaninternal.server.deploy.BeanDescriptor; import io.ebeaninternal.server.deploy.BeanProperty; +import org.joda.time.LocalDate; import org.joda.time.LocalTime; import org.junit.jupiter.api.Test; import org.tests.model.basic.TJodaEntity; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -public class TestJodaType extends BaseTestCase { +class TestJodaType extends BaseTestCase { @Test - public void test() { - + void test() { SpiEbeanServer server = (SpiEbeanServer) DB.getDefault(); BeanDescriptor beanDescriptor = server.descriptor(TJodaEntity.class); BeanProperty beanProperty = beanDescriptor.beanProperty("localTime"); @@ -27,8 +28,7 @@ public class TestJodaType extends BaseTestCase { } @Test - public void test_insert_find() { - + void test_insert_find() { LocalTime now = new LocalTime().withMillisOfSecond(0); TJodaEntity bean = new TJodaEntity(); @@ -40,4 +40,19 @@ public class TestJodaType extends BaseTestCase { assertThat(foundBean.getLocalTime()).isEqualTo(bean.getLocalTime()); } + @Test + void toJson() { + LocalTime now = new LocalTime(); + + TJodaEntity bean = new TJodaEntity(); + bean.setId(42); + bean.setLocalTime(now); + bean.setLocalDate(LocalDate.parse("2022-04-07")); + + String json = DB.json().toJson(bean); + TJodaEntity bean1 = DB.json().toBean(TJodaEntity.class, json); + + assertEquals(bean1.getLocalTime(), now); + assertEquals(bean1.getLocalDate(), LocalDate.parse("2022-04-07")); + } } diff --git a/ebean-test/src/test/java/org/tests/model/basic/TJodaEntity.java b/ebean-test/src/test/java/org/tests/model/basic/TJodaEntity.java index 311a20424..c20e06772 100644 --- a/ebean-test/src/test/java/org/tests/model/basic/TJodaEntity.java +++ b/ebean-test/src/test/java/org/tests/model/basic/TJodaEntity.java @@ -1,5 +1,6 @@ package org.tests.model.basic; +import org.joda.time.LocalDate; import org.joda.time.LocalTime; import javax.persistence.Entity; @@ -12,6 +13,7 @@ public class TJodaEntity { Integer id; LocalTime localTime; + LocalDate localDate; public Integer getId() { return id; @@ -29,4 +31,12 @@ public class TJodaEntity { this.localTime = localTime; } + public LocalDate getLocalDate() { + return localDate; + } + + public TJodaEntity setLocalDate(LocalDate localDate) { + this.localDate = localDate; + return this; + } } diff --git a/pom.xml b/pom.xml index 1bc7781db..c764791df 100644 --- a/pom.xml +++ b/pom.xml @@ -89,6 +89,7 @@ ebean-redis platforms composites + ebean-joda-time ebean-csv-reader From 3f2d0ef5202fb23008586cf365af2fca574d6d6e Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 26 Aug 2022 17:49:01 +1200 Subject: [PATCH 056/127] Bump to 13.9.0-SNAPSHOT --- composites/ebean-clickhouse/pom.xml | 10 +++++----- composites/ebean-cockroach/pom.xml | 10 +++++----- composites/ebean-db2/pom.xml | 10 +++++----- composites/ebean-h2/pom.xml | 10 +++++----- composites/ebean-hana/pom.xml | 10 +++++----- composites/ebean-mariadb/pom.xml | 10 +++++----- composites/ebean-mysql/pom.xml | 10 +++++----- composites/ebean-nuodb/pom.xml | 10 +++++----- composites/ebean-oracle/pom.xml | 10 +++++----- composites/ebean-postgres/pom.xml | 10 +++++----- composites/ebean-sqlite/pom.xml | 10 +++++----- composites/ebean-sqlserver/pom.xml | 10 +++++----- composites/ebean-yugabyte/pom.xml | 10 +++++----- composites/ebean/pom.xml | 10 +++++----- composites/pom.xml | 2 +- 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 | 14 +++++++------- ebean-csv-reader/pom.xml | 8 ++++---- ebean-ddl-generator/pom.xml | 8 ++++---- ebean-externalmapping-api/pom.xml | 2 +- ebean-externalmapping-xml/pom.xml | 10 +++++----- ebean-joda-time/pom.xml | 4 ++-- ebean-kotlin/pom.xml | 6 +++--- ebean-postgis/pom.xml | 8 ++++---- ebean-querybean/pom.xml | 10 +++++----- ebean-redis/pom.xml | 12 ++++++------ ebean-test/pom.xml | 12 ++++++------ kotlin-querybean-generator/pom.xml | 10 +++++----- platforms/all/pom.xml | 28 +++++++++++++-------------- platforms/clickhouse/pom.xml | 4 ++-- platforms/db2/pom.xml | 4 ++-- platforms/h2/pom.xml | 4 ++-- platforms/hana/pom.xml | 4 ++-- platforms/hsqldb/pom.xml | 4 ++-- platforms/mariadb/pom.xml | 6 +++--- platforms/mysql/pom.xml | 4 ++-- platforms/nuodb/pom.xml | 4 ++-- platforms/oracle/pom.xml | 4 ++-- platforms/pom.xml | 2 +- platforms/postgres/pom.xml | 4 ++-- platforms/sqlanywhere/pom.xml | 4 ++-- platforms/sqlite/pom.xml | 4 ++-- platforms/sqlserver/pom.xml | 4 ++-- pom.xml | 2 +- querybean-generator/pom.xml | 2 +- tests/test-java16/pom.xml | 6 +++--- tests/test-kotlin/pom.xml | 4 ++-- 50 files changed, 193 insertions(+), 193 deletions(-) diff --git a/composites/ebean-clickhouse/pom.xml b/composites/ebean-clickhouse/pom.xml index d6bd4993e..04ba5def2 100644 --- a/composites/ebean-clickhouse/pom.xml +++ b/composites/ebean-clickhouse/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-clickhouse @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-clickhouse - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT diff --git a/composites/ebean-cockroach/pom.xml b/composites/ebean-cockroach/pom.xml index a3d90b6ce..86ea4941b 100644 --- a/composites/ebean-cockroach/pom.xml +++ b/composites/ebean-cockroach/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-cockroach @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-postgres - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT diff --git a/composites/ebean-db2/pom.xml b/composites/ebean-db2/pom.xml index cfa595dad..d9f339091 100644 --- a/composites/ebean-db2/pom.xml +++ b/composites/ebean-db2/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-db2 @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-db2 - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT diff --git a/composites/ebean-h2/pom.xml b/composites/ebean-h2/pom.xml index 6957ec69b..d16215f05 100644 --- a/composites/ebean-h2/pom.xml +++ b/composites/ebean-h2/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-h2 @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-h2 - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT diff --git a/composites/ebean-hana/pom.xml b/composites/ebean-hana/pom.xml index e4691ba4b..d28fa4c62 100644 --- a/composites/ebean-hana/pom.xml +++ b/composites/ebean-hana/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-hana @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-hana - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT diff --git a/composites/ebean-mariadb/pom.xml b/composites/ebean-mariadb/pom.xml index 1fb2de6b9..db7d43f25 100644 --- a/composites/ebean-mariadb/pom.xml +++ b/composites/ebean-mariadb/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-mariadb @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-mariadb - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT diff --git a/composites/ebean-mysql/pom.xml b/composites/ebean-mysql/pom.xml index 5eb3ce012..87efb3966 100644 --- a/composites/ebean-mysql/pom.xml +++ b/composites/ebean-mysql/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-mysql @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-mysql - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT diff --git a/composites/ebean-nuodb/pom.xml b/composites/ebean-nuodb/pom.xml index 59448dd73..b320113a9 100644 --- a/composites/ebean-nuodb/pom.xml +++ b/composites/ebean-nuodb/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-nuodb @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-nuodb - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT diff --git a/composites/ebean-oracle/pom.xml b/composites/ebean-oracle/pom.xml index 9c6af9c74..80a535dea 100644 --- a/composites/ebean-oracle/pom.xml +++ b/composites/ebean-oracle/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-oracle @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-oracle - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT diff --git a/composites/ebean-postgres/pom.xml b/composites/ebean-postgres/pom.xml index 01fe240fc..838fdd76b 100644 --- a/composites/ebean-postgres/pom.xml +++ b/composites/ebean-postgres/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-postgres @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-postgres - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT diff --git a/composites/ebean-sqlite/pom.xml b/composites/ebean-sqlite/pom.xml index a7063e413..6e3028c6b 100644 --- a/composites/ebean-sqlite/pom.xml +++ b/composites/ebean-sqlite/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-sqlite @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-sqlite - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT diff --git a/composites/ebean-sqlserver/pom.xml b/composites/ebean-sqlserver/pom.xml index 2e03fbfb1..255a07b22 100644 --- a/composites/ebean-sqlserver/pom.xml +++ b/composites/ebean-sqlserver/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-sqlserver @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-sqlserver - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT diff --git a/composites/ebean-yugabyte/pom.xml b/composites/ebean-yugabyte/pom.xml index 5907aa7c8..2e2ef0ef0 100644 --- a/composites/ebean-yugabyte/pom.xml +++ b/composites/ebean-yugabyte/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-yugabyte @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-postgres - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT diff --git a/composites/ebean/pom.xml b/composites/ebean/pom.xml index 7a92394e4..899f78425 100644 --- a/composites/ebean/pom.xml +++ b/composites/ebean/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean (all platforms) @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -35,13 +35,13 @@ io.ebean ebean-querybean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-all - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT diff --git a/composites/pom.xml b/composites/pom.xml index c137c8cd0..207a70fd6 100644 --- a/composites/pom.xml +++ b/composites/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT composites diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml index 8f24e0e2c..63e4472ce 100644 --- a/ebean-api/pom.xml +++ b/ebean-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean api diff --git a/ebean-autotune/pom.xml b/ebean-autotune/pom.xml index 8786b7890..009e64c55 100644 --- a/ebean-autotune/pom.xml +++ b/ebean-autotune/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -26,7 +26,7 @@ io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT provided @@ -55,7 +55,7 @@ io.ebean ebean-platform-h2 - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index 0fdad6cdb..8b64db6af 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean bom @@ -89,88 +89,88 @@ io.ebean ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-core-type - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-ddl-generator - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-externalmapping-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-externalmapping-xml - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-autotune - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-querybean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean querybean-generator - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT provided io.ebean kotlin-querybean-generator - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT provided io.ebean ebean-test - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test io.ebean ebean-postgis - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-redis - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index 495945250..143bbd467 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index d9c91e99b..799ad94e2 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-core @@ -41,19 +41,19 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-core-type - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-externalmapping-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -144,21 +144,21 @@ io.ebean ebean-platform-h2 - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test io.ebean ebean-platform-postgres - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test io.ebean ebean-platform-sqlserver - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test diff --git a/ebean-csv-reader/pom.xml b/ebean-csv-reader/pom.xml index 769c4e592..d43f72bfe 100644 --- a/ebean-csv-reader/pom.xml +++ b/ebean-csv-reader/pom.xml @@ -6,7 +6,7 @@ ebean-parent io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-csv-reader @@ -16,21 +16,21 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT provided io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT provided io.ebean ebean-test - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index 462021f3d..ca445ed4f 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT provided io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT provided @@ -58,7 +58,7 @@ io.ebean ebean-platform-all - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index 56651d1ad..991e02f93 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 6a73bfad1..32706dd19 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -21,7 +21,7 @@ io.ebean ebean-externalmapping-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -54,21 +54,21 @@ io.ebean ebean-platform-h2 - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test io.ebean ebean-ddl-generator - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test diff --git a/ebean-joda-time/pom.xml b/ebean-joda-time/pom.xml index 4c082cdae..f5a151905 100644 --- a/ebean-joda-time/pom.xml +++ b/ebean-joda-time/pom.xml @@ -5,7 +5,7 @@ ebean-parent io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT 4.0.0 @@ -16,7 +16,7 @@ io.ebean ebean-core-type - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT provided diff --git a/ebean-kotlin/pom.xml b/ebean-kotlin/pom.xml index 63f6bef4a..331b89904 100644 --- a/ebean-kotlin/pom.xml +++ b/ebean-kotlin/pom.xml @@ -6,7 +6,7 @@ ebean-parent io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-kotlin @@ -28,7 +28,7 @@ io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT provided @@ -50,7 +50,7 @@ io.ebean ebean-test - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 2420cd104..690e25dac 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean postgis @@ -22,14 +22,14 @@ io.ebean ebean-platform-postgres - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT provided @@ -65,7 +65,7 @@ io.ebean ebean-test - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 09c1ab9ac..43d3ed2e5 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT provided @@ -63,21 +63,21 @@ io.ebean ebean-ddl-generator - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test io.ebean querybean-generator - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test io.ebean ebean-test - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index 4db6c0a3c..3bba23f67 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT provided io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT provided io.ebean ebean-querybean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test io.ebean querybean-generator - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test io.ebean ebean-test - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index e38598080..084b105f1 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean test @@ -28,20 +28,20 @@ io.ebean ebean-platform-h2 - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT provided io.ebean ebean-ddl-generator - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -105,14 +105,14 @@ io.ebean ebean-joda-time - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test io.ebean ebean-platform-all - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index 95111a1b9..58ac22f63 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test @@ -43,7 +43,7 @@ io.ebean ebean-core - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test @@ -64,14 +64,14 @@ io.ebean ebean-platform-h2 - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test io.ebean ebean-ddl-generator - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT test diff --git a/platforms/all/pom.xml b/platforms/all/pom.xml index f24522379..57915acfc 100644 --- a/platforms/all/pom.xml +++ b/platforms/all/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-platform-all @@ -14,67 +14,67 @@ io.ebean ebean-platform-h2 - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-clickhouse - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-db2 - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-hana - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-hsqldb - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-mysql - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-mariadb - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-nuodb - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-oracle - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-postgres - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-sqlanywhere - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-sqlite - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT io.ebean ebean-platform-sqlserver - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT diff --git a/platforms/clickhouse/pom.xml b/platforms/clickhouse/pom.xml index b3625bfdc..d7fcbc8ec 100644 --- a/platforms/clickhouse/pom.xml +++ b/platforms/clickhouse/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-platform-clickhouse @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT diff --git a/platforms/db2/pom.xml b/platforms/db2/pom.xml index 77cbca755..206b36f19 100644 --- a/platforms/db2/pom.xml +++ b/platforms/db2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-platform-db2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT diff --git a/platforms/h2/pom.xml b/platforms/h2/pom.xml index 336c3a751..08025557d 100644 --- a/platforms/h2/pom.xml +++ b/platforms/h2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT ebean-platform-h2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.8.2-SNAPSHOT + 13.9.0-SNAPSHOT @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.9.0 ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 13.9.0-SNAPSHOT + 13.9.0 provided @@ -55,7 +55,7 @@ io.ebean ebean-platform-h2 - 13.9.0-SNAPSHOT + 13.9.0 test diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index dedfceff5..e1d79737e 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.0-SNAPSHOT + 13.9.0 ebean bom @@ -89,94 +89,94 @@ io.ebean ebean - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-api - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-core - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-core-type - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-joda-time - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-ddl-generator - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-externalmapping-api - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-externalmapping-xml - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-autotune - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-querybean - 13.9.0-SNAPSHOT + 13.9.0 io.ebean querybean-generator - 13.9.0-SNAPSHOT + 13.9.0 provided io.ebean kotlin-querybean-generator - 13.9.0-SNAPSHOT + 13.9.0 provided io.ebean ebean-test - 13.9.0-SNAPSHOT + 13.9.0 test io.ebean ebean-postgis - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-redis - 13.9.0-SNAPSHOT + 13.9.0 diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index 143bbd467..ed8c2ad22 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.0-SNAPSHOT + 13.9.0 ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 13.9.0-SNAPSHOT + 13.9.0 diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index 799ad94e2..2ac0c8dd6 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.9.0-SNAPSHOT + 13.9.0 ebean-core @@ -15,7 +15,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.9.0 @@ -41,19 +41,19 @@ io.ebean ebean-api - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-core-type - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-externalmapping-api - 13.9.0-SNAPSHOT + 13.9.0 @@ -144,21 +144,21 @@ io.ebean ebean-platform-h2 - 13.9.0-SNAPSHOT + 13.9.0 test io.ebean ebean-platform-postgres - 13.9.0-SNAPSHOT + 13.9.0 test io.ebean ebean-platform-sqlserver - 13.9.0-SNAPSHOT + 13.9.0 test diff --git a/ebean-csv-reader/pom.xml b/ebean-csv-reader/pom.xml index d43f72bfe..ed229bcdc 100644 --- a/ebean-csv-reader/pom.xml +++ b/ebean-csv-reader/pom.xml @@ -1,12 +1,10 @@ - + 4.0.0 ebean-parent io.ebean - 13.9.0-SNAPSHOT + 13.9.0 ebean-csv-reader @@ -16,21 +14,21 @@ io.ebean ebean-api - 13.9.0-SNAPSHOT + 13.9.0 provided io.ebean ebean-core - 13.9.0-SNAPSHOT + 13.9.0 provided io.ebean ebean-test - 13.9.0-SNAPSHOT + 13.9.0 test diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index ca445ed4f..cd8d87e5b 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.0-SNAPSHOT + 13.9.0 ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 13.9.0-SNAPSHOT + 13.9.0 provided io.ebean ebean-core - 13.9.0-SNAPSHOT + 13.9.0 provided @@ -58,7 +58,7 @@ io.ebean ebean-platform-all - 13.9.0-SNAPSHOT + 13.9.0 test diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index 991e02f93..047f77417 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.0-SNAPSHOT + 13.9.0 ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 32706dd19..feac5a4d5 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,12 +4,12 @@ ebean-parent io.ebean - 13.9.0-SNAPSHOT + 13.9.0 scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.9.0 ebean external mapping xml @@ -21,7 +21,7 @@ io.ebean ebean-externalmapping-api - 13.9.0-SNAPSHOT + 13.9.0 @@ -54,21 +54,21 @@ io.ebean ebean-platform-h2 - 13.9.0-SNAPSHOT + 13.9.0 test io.ebean ebean-core - 13.9.0-SNAPSHOT + 13.9.0 test io.ebean ebean-ddl-generator - 13.9.0-SNAPSHOT + 13.9.0 test diff --git a/ebean-joda-time/pom.xml b/ebean-joda-time/pom.xml index f5a151905..687031a4a 100644 --- a/ebean-joda-time/pom.xml +++ b/ebean-joda-time/pom.xml @@ -1,11 +1,9 @@ - + ebean-parent io.ebean - 13.9.0-SNAPSHOT + 13.9.0 4.0.0 @@ -16,7 +14,7 @@ io.ebean ebean-core-type - 13.9.0-SNAPSHOT + 13.9.0 provided diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 690e25dac..d56c9ce7e 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.0-SNAPSHOT + 13.9.0 ebean postgis @@ -22,14 +22,14 @@ io.ebean ebean-platform-postgres - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-core - 13.9.0-SNAPSHOT + 13.9.0 provided @@ -65,7 +65,7 @@ io.ebean ebean-test - 13.9.0-SNAPSHOT + 13.9.0 test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 43d3ed2e5..7ab69e3ad 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.0-SNAPSHOT + 13.9.0 ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 13.9.0-SNAPSHOT + 13.9.0 provided @@ -63,21 +63,21 @@ io.ebean ebean-ddl-generator - 13.9.0-SNAPSHOT + 13.9.0 test io.ebean querybean-generator - 13.9.0-SNAPSHOT + 13.9.0 test io.ebean ebean-test - 13.9.0-SNAPSHOT + 13.9.0 test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index 3bba23f67..e9963a52f 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.0-SNAPSHOT + 13.9.0 ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 13.9.0-SNAPSHOT + 13.9.0 provided io.ebean ebean-core - 13.9.0-SNAPSHOT + 13.9.0 provided io.ebean ebean-querybean - 13.9.0-SNAPSHOT + 13.9.0 test io.ebean querybean-generator - 13.9.0-SNAPSHOT + 13.9.0 test io.ebean ebean-test - 13.9.0-SNAPSHOT + 13.9.0 test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 084b105f1..59deabfc7 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.0-SNAPSHOT + 13.9.0 ebean test @@ -28,20 +28,20 @@ io.ebean ebean-platform-h2 - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-core - 13.9.0-SNAPSHOT + 13.9.0 provided io.ebean ebean-ddl-generator - 13.9.0-SNAPSHOT + 13.9.0 @@ -105,14 +105,14 @@ io.ebean ebean-joda-time - 13.9.0-SNAPSHOT + 13.9.0 test io.ebean ebean-platform-all - 13.9.0-SNAPSHOT + 13.9.0 test diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index 58ac22f63..ca07ec7d8 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.0-SNAPSHOT + 13.9.0 kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 13.9.0-SNAPSHOT + 13.9.0 test @@ -43,7 +43,7 @@ io.ebean ebean-core - 13.9.0-SNAPSHOT + 13.9.0 test @@ -64,14 +64,14 @@ io.ebean ebean-platform-h2 - 13.9.0-SNAPSHOT + 13.9.0 test io.ebean ebean-ddl-generator - 13.9.0-SNAPSHOT + 13.9.0 test diff --git a/platforms/all/pom.xml b/platforms/all/pom.xml index 57915acfc..77791bff2 100644 --- a/platforms/all/pom.xml +++ b/platforms/all/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.0-SNAPSHOT + 13.9.0 ebean-platform-all @@ -14,68 +14,72 @@ io.ebean ebean-platform-h2 - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-platform-clickhouse - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-platform-db2 - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-platform-hana - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-platform-hsqldb - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-platform-mysql - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-platform-mariadb - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-platform-nuodb - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-platform-oracle - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-platform-postgres - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-platform-sqlanywhere - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-platform-sqlite - 13.9.0-SNAPSHOT + 13.9.0 io.ebean ebean-platform-sqlserver - 13.9.0-SNAPSHOT + 13.9.0 + + + ebean-parent-13.9.0 + diff --git a/platforms/clickhouse/pom.xml b/platforms/clickhouse/pom.xml index d7fcbc8ec..e66663dd8 100644 --- a/platforms/clickhouse/pom.xml +++ b/platforms/clickhouse/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.0-SNAPSHOT + 13.9.0 ebean-platform-clickhouse @@ -14,8 +14,12 @@ io.ebean ebean-api - 13.9.0-SNAPSHOT + 13.9.0 + + + ebean-parent-13.9.0 + diff --git a/platforms/db2/pom.xml b/platforms/db2/pom.xml index 206b36f19..e8036182c 100644 --- a/platforms/db2/pom.xml +++ b/platforms/db2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.0-SNAPSHOT + 13.9.0 ebean-platform-db2 @@ -14,8 +14,12 @@ io.ebean ebean-api - 13.9.0-SNAPSHOT + 13.9.0 + + + ebean-parent-13.9.0 + diff --git a/platforms/h2/pom.xml b/platforms/h2/pom.xml index 08025557d..05f9e9b94 100644 --- a/platforms/h2/pom.xml +++ b/platforms/h2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.0-SNAPSHOT + 13.9.0 ebean-platform-h2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.9.0-SNAPSHOT + 13.9.0 @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.9.0 + HEAD ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 13.9.0 + 13.9.1-SNAPSHOT provided @@ -55,7 +55,7 @@ io.ebean ebean-platform-h2 - 13.9.0 + 13.9.1-SNAPSHOT test diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index e1d79737e..6029aa06c 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.0 + 13.9.1-SNAPSHOT ebean bom @@ -89,94 +89,94 @@ io.ebean ebean - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-api - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-core - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-core-type - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-joda-time - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-ddl-generator - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-externalmapping-api - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-externalmapping-xml - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-autotune - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-querybean - 13.9.0 + 13.9.1-SNAPSHOT io.ebean querybean-generator - 13.9.0 + 13.9.1-SNAPSHOT provided io.ebean kotlin-querybean-generator - 13.9.0 + 13.9.1-SNAPSHOT provided io.ebean ebean-test - 13.9.0 + 13.9.1-SNAPSHOT test io.ebean ebean-postgis - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-redis - 13.9.0 + 13.9.1-SNAPSHOT diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index ed8c2ad22..adbf1bdbd 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.0 + 13.9.1-SNAPSHOT ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 13.9.0 + 13.9.1-SNAPSHOT diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index 2ac0c8dd6..bbead632a 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.9.0 + 13.9.1-SNAPSHOT ebean-core @@ -15,7 +15,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.9.0 + HEAD @@ -41,19 +41,19 @@ io.ebean ebean-api - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-core-type - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-externalmapping-api - 13.9.0 + 13.9.1-SNAPSHOT @@ -144,21 +144,21 @@ io.ebean ebean-platform-h2 - 13.9.0 + 13.9.1-SNAPSHOT test io.ebean ebean-platform-postgres - 13.9.0 + 13.9.1-SNAPSHOT test io.ebean ebean-platform-sqlserver - 13.9.0 + 13.9.1-SNAPSHOT test diff --git a/ebean-csv-reader/pom.xml b/ebean-csv-reader/pom.xml index ed229bcdc..02f150051 100644 --- a/ebean-csv-reader/pom.xml +++ b/ebean-csv-reader/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.0 + 13.9.1-SNAPSHOT ebean-csv-reader @@ -14,21 +14,21 @@ io.ebean ebean-api - 13.9.0 + 13.9.1-SNAPSHOT provided io.ebean ebean-core - 13.9.0 + 13.9.1-SNAPSHOT provided io.ebean ebean-test - 13.9.0 + 13.9.1-SNAPSHOT test diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index cd8d87e5b..a55ef65bd 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.0 + 13.9.1-SNAPSHOT ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 13.9.0 + 13.9.1-SNAPSHOT provided io.ebean ebean-core - 13.9.0 + 13.9.1-SNAPSHOT provided @@ -58,7 +58,7 @@ io.ebean ebean-platform-all - 13.9.0 + 13.9.1-SNAPSHOT test diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index 047f77417..79222ef98 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.0 + 13.9.1-SNAPSHOT ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index feac5a4d5..64a53129c 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,12 +4,12 @@ ebean-parent io.ebean - 13.9.0 + 13.9.1-SNAPSHOT scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.9.0 + HEAD ebean external mapping xml @@ -21,7 +21,7 @@ io.ebean ebean-externalmapping-api - 13.9.0 + 13.9.1-SNAPSHOT @@ -54,21 +54,21 @@ io.ebean ebean-platform-h2 - 13.9.0 + 13.9.1-SNAPSHOT test io.ebean ebean-core - 13.9.0 + 13.9.1-SNAPSHOT test io.ebean ebean-ddl-generator - 13.9.0 + 13.9.1-SNAPSHOT test diff --git a/ebean-joda-time/pom.xml b/ebean-joda-time/pom.xml index 687031a4a..a663e3458 100644 --- a/ebean-joda-time/pom.xml +++ b/ebean-joda-time/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.9.0 + 13.9.1-SNAPSHOT 4.0.0 @@ -14,7 +14,7 @@ io.ebean ebean-core-type - 13.9.0 + 13.9.1-SNAPSHOT provided diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index d56c9ce7e..d8161453a 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.0 + 13.9.1-SNAPSHOT ebean postgis @@ -22,14 +22,14 @@ io.ebean ebean-platform-postgres - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-core - 13.9.0 + 13.9.1-SNAPSHOT provided @@ -65,7 +65,7 @@ io.ebean ebean-test - 13.9.0 + 13.9.1-SNAPSHOT test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 7ab69e3ad..5cf8498dc 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.0 + 13.9.1-SNAPSHOT ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 13.9.0 + 13.9.1-SNAPSHOT provided @@ -63,21 +63,21 @@ io.ebean ebean-ddl-generator - 13.9.0 + 13.9.1-SNAPSHOT test io.ebean querybean-generator - 13.9.0 + 13.9.1-SNAPSHOT test io.ebean ebean-test - 13.9.0 + 13.9.1-SNAPSHOT test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index e9963a52f..a07ba2162 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.0 + 13.9.1-SNAPSHOT ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 13.9.0 + 13.9.1-SNAPSHOT provided io.ebean ebean-core - 13.9.0 + 13.9.1-SNAPSHOT provided io.ebean ebean-querybean - 13.9.0 + 13.9.1-SNAPSHOT test io.ebean querybean-generator - 13.9.0 + 13.9.1-SNAPSHOT test io.ebean ebean-test - 13.9.0 + 13.9.1-SNAPSHOT test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 59deabfc7..20af1e5bc 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.0 + 13.9.1-SNAPSHOT ebean test @@ -28,20 +28,20 @@ io.ebean ebean-platform-h2 - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-core - 13.9.0 + 13.9.1-SNAPSHOT provided io.ebean ebean-ddl-generator - 13.9.0 + 13.9.1-SNAPSHOT @@ -105,14 +105,14 @@ io.ebean ebean-joda-time - 13.9.0 + 13.9.1-SNAPSHOT test io.ebean ebean-platform-all - 13.9.0 + 13.9.1-SNAPSHOT test diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index ca07ec7d8..177e71254 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.0 + 13.9.1-SNAPSHOT kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 13.9.0 + 13.9.1-SNAPSHOT test @@ -43,7 +43,7 @@ io.ebean ebean-core - 13.9.0 + 13.9.1-SNAPSHOT test @@ -64,14 +64,14 @@ io.ebean ebean-platform-h2 - 13.9.0 + 13.9.1-SNAPSHOT test io.ebean ebean-ddl-generator - 13.9.0 + 13.9.1-SNAPSHOT test diff --git a/platforms/all/pom.xml b/platforms/all/pom.xml index 77791bff2..68eb3d370 100644 --- a/platforms/all/pom.xml +++ b/platforms/all/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.0 + 13.9.1-SNAPSHOT ebean-platform-all @@ -14,72 +14,68 @@ io.ebean ebean-platform-h2 - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-platform-clickhouse - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-platform-db2 - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-platform-hana - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-platform-hsqldb - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-platform-mysql - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-platform-mariadb - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-platform-nuodb - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-platform-oracle - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-platform-postgres - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-platform-sqlanywhere - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-platform-sqlite - 13.9.0 + 13.9.1-SNAPSHOT io.ebean ebean-platform-sqlserver - 13.9.0 + 13.9.1-SNAPSHOT - - - ebean-parent-13.9.0 - diff --git a/platforms/clickhouse/pom.xml b/platforms/clickhouse/pom.xml index e66663dd8..741f7e68f 100644 --- a/platforms/clickhouse/pom.xml +++ b/platforms/clickhouse/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.0 + 13.9.1-SNAPSHOT ebean-platform-clickhouse @@ -14,12 +14,8 @@ io.ebean ebean-api - 13.9.0 + 13.9.1-SNAPSHOT - - - ebean-parent-13.9.0 - diff --git a/platforms/db2/pom.xml b/platforms/db2/pom.xml index e8036182c..02da79d69 100644 --- a/platforms/db2/pom.xml +++ b/platforms/db2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.0 + 13.9.1-SNAPSHOT ebean-platform-db2 @@ -14,12 +14,8 @@ io.ebean ebean-api - 13.9.0 + 13.9.1-SNAPSHOT - - - ebean-parent-13.9.0 - diff --git a/platforms/h2/pom.xml b/platforms/h2/pom.xml index 05f9e9b94..897c6e6d7 100644 --- a/platforms/h2/pom.xml +++ b/platforms/h2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.0 + 13.9.1-SNAPSHOT ebean-platform-h2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.9.0 + 13.9.1-SNAPSHOT @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.9.1 ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 13.9.1-SNAPSHOT + 13.9.1 provided @@ -55,7 +55,7 @@ io.ebean ebean-platform-h2 - 13.9.1-SNAPSHOT + 13.9.1 test diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index 6029aa06c..a406aa4c6 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1-SNAPSHOT + 13.9.1 ebean bom @@ -89,94 +89,94 @@ io.ebean ebean - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-api - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-core - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-core-type - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-joda-time - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-ddl-generator - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-externalmapping-api - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-externalmapping-xml - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-autotune - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-querybean - 13.9.1-SNAPSHOT + 13.9.1 io.ebean querybean-generator - 13.9.1-SNAPSHOT + 13.9.1 provided io.ebean kotlin-querybean-generator - 13.9.1-SNAPSHOT + 13.9.1 provided io.ebean ebean-test - 13.9.1-SNAPSHOT + 13.9.1 test io.ebean ebean-postgis - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-redis - 13.9.1-SNAPSHOT + 13.9.1 diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index adbf1bdbd..63df8e522 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1-SNAPSHOT + 13.9.1 ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 13.9.1-SNAPSHOT + 13.9.1 diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index bbead632a..dedcc3614 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.9.1-SNAPSHOT + 13.9.1 ebean-core @@ -15,7 +15,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.9.1 @@ -41,19 +41,19 @@ io.ebean ebean-api - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-core-type - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-externalmapping-api - 13.9.1-SNAPSHOT + 13.9.1 @@ -144,21 +144,21 @@ io.ebean ebean-platform-h2 - 13.9.1-SNAPSHOT + 13.9.1 test io.ebean ebean-platform-postgres - 13.9.1-SNAPSHOT + 13.9.1 test io.ebean ebean-platform-sqlserver - 13.9.1-SNAPSHOT + 13.9.1 test diff --git a/ebean-csv-reader/pom.xml b/ebean-csv-reader/pom.xml index 02f150051..91461a6c2 100644 --- a/ebean-csv-reader/pom.xml +++ b/ebean-csv-reader/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1-SNAPSHOT + 13.9.1 ebean-csv-reader @@ -14,21 +14,21 @@ io.ebean ebean-api - 13.9.1-SNAPSHOT + 13.9.1 provided io.ebean ebean-core - 13.9.1-SNAPSHOT + 13.9.1 provided io.ebean ebean-test - 13.9.1-SNAPSHOT + 13.9.1 test diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index a55ef65bd..1249153cc 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1-SNAPSHOT + 13.9.1 ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 13.9.1-SNAPSHOT + 13.9.1 provided io.ebean ebean-core - 13.9.1-SNAPSHOT + 13.9.1 provided @@ -58,7 +58,7 @@ io.ebean ebean-platform-all - 13.9.1-SNAPSHOT + 13.9.1 test diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index 79222ef98..89e8eed8c 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1-SNAPSHOT + 13.9.1 ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 64a53129c..3db2e9dd9 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,12 +4,12 @@ ebean-parent io.ebean - 13.9.1-SNAPSHOT + 13.9.1 scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.9.1 ebean external mapping xml @@ -21,7 +21,7 @@ io.ebean ebean-externalmapping-api - 13.9.1-SNAPSHOT + 13.9.1 @@ -54,21 +54,21 @@ io.ebean ebean-platform-h2 - 13.9.1-SNAPSHOT + 13.9.1 test io.ebean ebean-core - 13.9.1-SNAPSHOT + 13.9.1 test io.ebean ebean-ddl-generator - 13.9.1-SNAPSHOT + 13.9.1 test diff --git a/ebean-joda-time/pom.xml b/ebean-joda-time/pom.xml index a663e3458..efe45c790 100644 --- a/ebean-joda-time/pom.xml +++ b/ebean-joda-time/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.9.1-SNAPSHOT + 13.9.1 4.0.0 @@ -14,7 +14,7 @@ io.ebean ebean-core-type - 13.9.1-SNAPSHOT + 13.9.1 provided diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index d8161453a..238433b9c 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1-SNAPSHOT + 13.9.1 ebean postgis @@ -22,14 +22,14 @@ io.ebean ebean-platform-postgres - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-core - 13.9.1-SNAPSHOT + 13.9.1 provided @@ -65,7 +65,7 @@ io.ebean ebean-test - 13.9.1-SNAPSHOT + 13.9.1 test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 5cf8498dc..99ef63cc2 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1-SNAPSHOT + 13.9.1 ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 13.9.1-SNAPSHOT + 13.9.1 provided @@ -63,21 +63,21 @@ io.ebean ebean-ddl-generator - 13.9.1-SNAPSHOT + 13.9.1 test io.ebean querybean-generator - 13.9.1-SNAPSHOT + 13.9.1 test io.ebean ebean-test - 13.9.1-SNAPSHOT + 13.9.1 test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index a07ba2162..6c8f2087f 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1-SNAPSHOT + 13.9.1 ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 13.9.1-SNAPSHOT + 13.9.1 provided io.ebean ebean-core - 13.9.1-SNAPSHOT + 13.9.1 provided io.ebean ebean-querybean - 13.9.1-SNAPSHOT + 13.9.1 test io.ebean querybean-generator - 13.9.1-SNAPSHOT + 13.9.1 test io.ebean ebean-test - 13.9.1-SNAPSHOT + 13.9.1 test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 20af1e5bc..eae2cb6a7 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1-SNAPSHOT + 13.9.1 ebean test @@ -28,20 +28,20 @@ io.ebean ebean-platform-h2 - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-core - 13.9.1-SNAPSHOT + 13.9.1 provided io.ebean ebean-ddl-generator - 13.9.1-SNAPSHOT + 13.9.1 @@ -105,14 +105,14 @@ io.ebean ebean-joda-time - 13.9.1-SNAPSHOT + 13.9.1 test io.ebean ebean-platform-all - 13.9.1-SNAPSHOT + 13.9.1 test diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index 177e71254..4c4a7e6e8 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1-SNAPSHOT + 13.9.1 kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 13.9.1-SNAPSHOT + 13.9.1 test @@ -43,7 +43,7 @@ io.ebean ebean-core - 13.9.1-SNAPSHOT + 13.9.1 test @@ -64,14 +64,14 @@ io.ebean ebean-platform-h2 - 13.9.1-SNAPSHOT + 13.9.1 test io.ebean ebean-ddl-generator - 13.9.1-SNAPSHOT + 13.9.1 test diff --git a/platforms/all/pom.xml b/platforms/all/pom.xml index 68eb3d370..0659dec87 100644 --- a/platforms/all/pom.xml +++ b/platforms/all/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.1-SNAPSHOT + 13.9.1 ebean-platform-all @@ -14,68 +14,72 @@ io.ebean ebean-platform-h2 - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-platform-clickhouse - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-platform-db2 - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-platform-hana - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-platform-hsqldb - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-platform-mysql - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-platform-mariadb - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-platform-nuodb - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-platform-oracle - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-platform-postgres - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-platform-sqlanywhere - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-platform-sqlite - 13.9.1-SNAPSHOT + 13.9.1 io.ebean ebean-platform-sqlserver - 13.9.1-SNAPSHOT + 13.9.1 + + + ebean-parent-13.9.1 + diff --git a/platforms/clickhouse/pom.xml b/platforms/clickhouse/pom.xml index 741f7e68f..0788786ac 100644 --- a/platforms/clickhouse/pom.xml +++ b/platforms/clickhouse/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.1-SNAPSHOT + 13.9.1 ebean-platform-clickhouse @@ -14,8 +14,12 @@ io.ebean ebean-api - 13.9.1-SNAPSHOT + 13.9.1 + + + ebean-parent-13.9.1 + diff --git a/platforms/db2/pom.xml b/platforms/db2/pom.xml index 02da79d69..45a0b0bd9 100644 --- a/platforms/db2/pom.xml +++ b/platforms/db2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.1-SNAPSHOT + 13.9.1 ebean-platform-db2 @@ -14,8 +14,12 @@ io.ebean ebean-api - 13.9.1-SNAPSHOT + 13.9.1 + + + ebean-parent-13.9.1 + diff --git a/platforms/h2/pom.xml b/platforms/h2/pom.xml index 897c6e6d7..6df9b3941 100644 --- a/platforms/h2/pom.xml +++ b/platforms/h2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.1-SNAPSHOT + 13.9.1 ebean-platform-h2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.9.1-SNAPSHOT + 13.9.1 @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.9.1 + HEAD ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 13.9.1 + 13.9.2-SNAPSHOT provided @@ -55,7 +55,7 @@ io.ebean ebean-platform-h2 - 13.9.1 + 13.9.2-SNAPSHOT test diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index a406aa4c6..50cb48ad9 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1 + 13.9.2-SNAPSHOT ebean bom @@ -89,94 +89,94 @@ io.ebean ebean - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-api - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-core - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-core-type - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-joda-time - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-ddl-generator - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-externalmapping-api - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-externalmapping-xml - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-autotune - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-querybean - 13.9.1 + 13.9.2-SNAPSHOT io.ebean querybean-generator - 13.9.1 + 13.9.2-SNAPSHOT provided io.ebean kotlin-querybean-generator - 13.9.1 + 13.9.2-SNAPSHOT provided io.ebean ebean-test - 13.9.1 + 13.9.2-SNAPSHOT test io.ebean ebean-postgis - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-redis - 13.9.1 + 13.9.2-SNAPSHOT diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index 63df8e522..3e503d4aa 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1 + 13.9.2-SNAPSHOT ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 13.9.1 + 13.9.2-SNAPSHOT diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index dedcc3614..75cab30f2 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.9.1 + 13.9.2-SNAPSHOT ebean-core @@ -15,7 +15,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.9.1 + HEAD @@ -41,19 +41,19 @@ io.ebean ebean-api - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-core-type - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-externalmapping-api - 13.9.1 + 13.9.2-SNAPSHOT @@ -144,21 +144,21 @@ io.ebean ebean-platform-h2 - 13.9.1 + 13.9.2-SNAPSHOT test io.ebean ebean-platform-postgres - 13.9.1 + 13.9.2-SNAPSHOT test io.ebean ebean-platform-sqlserver - 13.9.1 + 13.9.2-SNAPSHOT test diff --git a/ebean-csv-reader/pom.xml b/ebean-csv-reader/pom.xml index 91461a6c2..f35b928a7 100644 --- a/ebean-csv-reader/pom.xml +++ b/ebean-csv-reader/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1 + 13.9.2-SNAPSHOT ebean-csv-reader @@ -14,21 +14,21 @@ io.ebean ebean-api - 13.9.1 + 13.9.2-SNAPSHOT provided io.ebean ebean-core - 13.9.1 + 13.9.2-SNAPSHOT provided io.ebean ebean-test - 13.9.1 + 13.9.2-SNAPSHOT test diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index 1249153cc..1334f5f94 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1 + 13.9.2-SNAPSHOT ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 13.9.1 + 13.9.2-SNAPSHOT provided io.ebean ebean-core - 13.9.1 + 13.9.2-SNAPSHOT provided @@ -58,7 +58,7 @@ io.ebean ebean-platform-all - 13.9.1 + 13.9.2-SNAPSHOT test diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index 89e8eed8c..863ce60d7 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1 + 13.9.2-SNAPSHOT ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 3db2e9dd9..8b2becc34 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,12 +4,12 @@ ebean-parent io.ebean - 13.9.1 + 13.9.2-SNAPSHOT scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.9.1 + HEAD ebean external mapping xml @@ -21,7 +21,7 @@ io.ebean ebean-externalmapping-api - 13.9.1 + 13.9.2-SNAPSHOT @@ -54,21 +54,21 @@ io.ebean ebean-platform-h2 - 13.9.1 + 13.9.2-SNAPSHOT test io.ebean ebean-core - 13.9.1 + 13.9.2-SNAPSHOT test io.ebean ebean-ddl-generator - 13.9.1 + 13.9.2-SNAPSHOT test diff --git a/ebean-joda-time/pom.xml b/ebean-joda-time/pom.xml index efe45c790..a8ce19836 100644 --- a/ebean-joda-time/pom.xml +++ b/ebean-joda-time/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.9.1 + 13.9.2-SNAPSHOT 4.0.0 @@ -14,7 +14,7 @@ io.ebean ebean-core-type - 13.9.1 + 13.9.2-SNAPSHOT provided diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 238433b9c..dd4378bb1 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1 + 13.9.2-SNAPSHOT ebean postgis @@ -22,14 +22,14 @@ io.ebean ebean-platform-postgres - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-core - 13.9.1 + 13.9.2-SNAPSHOT provided @@ -65,7 +65,7 @@ io.ebean ebean-test - 13.9.1 + 13.9.2-SNAPSHOT test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 99ef63cc2..8d061fe1a 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1 + 13.9.2-SNAPSHOT ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 13.9.1 + 13.9.2-SNAPSHOT provided @@ -63,21 +63,21 @@ io.ebean ebean-ddl-generator - 13.9.1 + 13.9.2-SNAPSHOT test io.ebean querybean-generator - 13.9.1 + 13.9.2-SNAPSHOT test io.ebean ebean-test - 13.9.1 + 13.9.2-SNAPSHOT test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index 6c8f2087f..6d4e27cac 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1 + 13.9.2-SNAPSHOT ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 13.9.1 + 13.9.2-SNAPSHOT provided io.ebean ebean-core - 13.9.1 + 13.9.2-SNAPSHOT provided io.ebean ebean-querybean - 13.9.1 + 13.9.2-SNAPSHOT test io.ebean querybean-generator - 13.9.1 + 13.9.2-SNAPSHOT test io.ebean ebean-test - 13.9.1 + 13.9.2-SNAPSHOT test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index eae2cb6a7..ef67e4bf1 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1 + 13.9.2-SNAPSHOT ebean test @@ -28,20 +28,20 @@ io.ebean ebean-platform-h2 - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-core - 13.9.1 + 13.9.2-SNAPSHOT provided io.ebean ebean-ddl-generator - 13.9.1 + 13.9.2-SNAPSHOT @@ -105,14 +105,14 @@ io.ebean ebean-joda-time - 13.9.1 + 13.9.2-SNAPSHOT test io.ebean ebean-platform-all - 13.9.1 + 13.9.2-SNAPSHOT test diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index 4c4a7e6e8..0f2df51c1 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.1 + 13.9.2-SNAPSHOT kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 13.9.1 + 13.9.2-SNAPSHOT test @@ -43,7 +43,7 @@ io.ebean ebean-core - 13.9.1 + 13.9.2-SNAPSHOT test @@ -64,14 +64,14 @@ io.ebean ebean-platform-h2 - 13.9.1 + 13.9.2-SNAPSHOT test io.ebean ebean-ddl-generator - 13.9.1 + 13.9.2-SNAPSHOT test diff --git a/platforms/all/pom.xml b/platforms/all/pom.xml index 0659dec87..c6cd3e71d 100644 --- a/platforms/all/pom.xml +++ b/platforms/all/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.1 + 13.9.2-SNAPSHOT ebean-platform-all @@ -14,72 +14,68 @@ io.ebean ebean-platform-h2 - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-platform-clickhouse - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-platform-db2 - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-platform-hana - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-platform-hsqldb - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-platform-mysql - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-platform-mariadb - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-platform-nuodb - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-platform-oracle - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-platform-postgres - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-platform-sqlanywhere - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-platform-sqlite - 13.9.1 + 13.9.2-SNAPSHOT io.ebean ebean-platform-sqlserver - 13.9.1 + 13.9.2-SNAPSHOT - - - ebean-parent-13.9.1 - diff --git a/platforms/clickhouse/pom.xml b/platforms/clickhouse/pom.xml index 0788786ac..3979e0790 100644 --- a/platforms/clickhouse/pom.xml +++ b/platforms/clickhouse/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.1 + 13.9.2-SNAPSHOT ebean-platform-clickhouse @@ -14,12 +14,8 @@ io.ebean ebean-api - 13.9.1 + 13.9.2-SNAPSHOT - - - ebean-parent-13.9.1 - diff --git a/platforms/db2/pom.xml b/platforms/db2/pom.xml index 45a0b0bd9..30d1f573e 100644 --- a/platforms/db2/pom.xml +++ b/platforms/db2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.1 + 13.9.2-SNAPSHOT ebean-platform-db2 @@ -14,12 +14,8 @@ io.ebean ebean-api - 13.9.1 + 13.9.2-SNAPSHOT - - - ebean-parent-13.9.1 - diff --git a/platforms/h2/pom.xml b/platforms/h2/pom.xml index 6df9b3941..44e250df3 100644 --- a/platforms/h2/pom.xml +++ b/platforms/h2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.1 + 13.9.2-SNAPSHOT ebean-platform-h2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.9.1 + 13.9.2-SNAPSHOT @@ -155,7 +155,7 @@ joda-time joda-time - 2.11.0 + 2.11.1 test diff --git a/ebean-test/src/main/java/module-info.java b/ebean-test/src/main/java/module-info.java index 823483a0e..428c3b3f4 100644 --- a/ebean-test/src/main/java/module-info.java +++ b/ebean-test/src/main/java/module-info.java @@ -23,7 +23,6 @@ module io.ebean.test { requires transitive com.h2database; // support testing - requires static org.slf4j; requires static org.junit.jupiter.api; requires static jdk.management; requires static io.avaje.jsr305x; diff --git a/pom.xml b/pom.xml index 09ccf9b12..3fdfe8f71 100644 --- a/pom.xml +++ b/pom.xml @@ -39,8 +39,8 @@ false - 2.13.2 - 2.1.212 + 2.13.3 + 2.1.214 3.0 3.0 8.2 From fbb73d465c70d627a9400a606f44ec7ef545c531 Mon Sep 17 00:00:00 2001 From: Noemi Praml Date: Fri, 2 Sep 2022 10:08:31 +0200 Subject: [PATCH 082/127] FIX DB2 migration: reorg table must be called after drop not null --- .../dbmigration/ddlgeneration/platform/DB2Ddl.java | 11 ++++++----- .../io/ebean/xtest/dbmigration/DbMigrationTest.java | 1 + .../src/test/java/misc/migration/v1_0/ETable.java | 12 ++++++++++++ .../src/test/java/misc/migration/v1_1/ETable.java | 5 +++++ 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DB2Ddl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DB2Ddl.java index e0eea9377..265cc4392 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DB2Ddl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/DB2Ddl.java @@ -39,12 +39,12 @@ public class DB2Ddl extends PlatformDdl { return String.format(MOVE_TABLE, tablename.toUpperCase(), tableSpace, indexSpace, lobSpace); } } - + @Override public String alterTableAddUniqueConstraint(String tableName, String uqName, String[] columns, String[] nullableColumns) { if (nullableColumns == null || nullableColumns.length == 0) { return super.alterTableAddUniqueConstraint(tableName, uqName, columns, nullableColumns); - } + } if (uqName == null) { throw new NullPointerException(); @@ -66,7 +66,7 @@ public class DB2Ddl extends PlatformDdl { public void addTablespace(DdlBuffer apply, String tablespaceName, String indexTablespace, String lobTablespace) { apply.append(" in ").append(tablespaceName).append(" index in ").append(indexTablespace).append(" long in ").append(lobTablespace); } - + @Override public void alterTableAddColumn(DdlWrite writer, String tableName, Column column, boolean onHistoryTable, String defaultValue) { @@ -209,7 +209,7 @@ public class DB2Ddl extends PlatformDdl { /** * determine, if we need a reorg. - * + * * See: https://www.ibm.com/docs/en/db2/11.5?topic=statements-alter-table The following is the full list of REORG-recommended * ALTER statements that cause a version change and place the table into a REORG-pending state: *
    @@ -221,7 +221,7 @@ public class DB2Ddl extends PlatformDdl { * Decreasing the length of a VARCHAR or VARGRAPHIC column without truncating trailing blanks from existing data, when no indexes * exist on the column *
- * + * */ private boolean checkReorg(AlterCmd cmd) { switch (cmd.getOperation()) { @@ -230,6 +230,7 @@ public class DB2Ddl extends PlatformDdl { case "alter column": String alter = cmd.getAlternation(); return alter.equals("set not null") + || alter.equals("drop not null") || alter.equals("drop not default") || alter.startsWith("set data type"); // note: altering varchar length only is not detected here default: diff --git a/ebean-test/src/test/java/io/ebean/xtest/dbmigration/DbMigrationTest.java b/ebean-test/src/test/java/io/ebean/xtest/dbmigration/DbMigrationTest.java index 02378bc86..9a3cff37c 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/dbmigration/DbMigrationTest.java +++ b/ebean-test/src/test/java/io/ebean/xtest/dbmigration/DbMigrationTest.java @@ -293,6 +293,7 @@ public class DbMigrationTest extends BaseTestCase { table.setFrom("foo"); table.setTo("bar"); table.setIndex("id"); + table.setTextfield("test"); tmpServer.save(table); table = tmpServer.find(ETable.class).where().eq("index", "id").findOne(); assert table != null; diff --git a/ebean-test/src/test/java/misc/migration/v1_0/ETable.java b/ebean-test/src/test/java/misc/migration/v1_0/ETable.java index dce7920af..0a593993f 100644 --- a/ebean-test/src/test/java/misc/migration/v1_0/ETable.java +++ b/ebean-test/src/test/java/misc/migration/v1_0/ETable.java @@ -3,6 +3,7 @@ package misc.migration.v1_0; import io.ebean.annotation.DbComment; import io.ebean.annotation.History; import io.ebean.annotation.Index; +import io.ebean.annotation.NotNull; import javax.persistence.*; import java.util.List; @@ -36,6 +37,17 @@ public class ETable { @OneToMany(mappedBy = "foreign") List foreigns; + @NotNull + private String textfield; + + public void setTextfield(String textfield) { + this.textfield = textfield; + } + + public String getTextfield() { + return textfield; + } + public String getIndex() { return index; } diff --git a/ebean-test/src/test/java/misc/migration/v1_1/ETable.java b/ebean-test/src/test/java/misc/migration/v1_1/ETable.java index 6372c9233..20926d60f 100644 --- a/ebean-test/src/test/java/misc/migration/v1_1/ETable.java +++ b/ebean-test/src/test/java/misc/migration/v1_1/ETable.java @@ -39,4 +39,9 @@ public class ETable { @OneToMany(mappedBy = "foreign") List foreigns; + + private String textfield; + + @Index + private String textfield2; } From 117844b5eea718d8068fdbbbf5f660fee1b31e13 Mon Sep 17 00:00:00 2001 From: Noemi Praml Date: Fri, 2 Sep 2022 10:41:46 +0200 Subject: [PATCH 083/127] Fix Unittests with drop not null (cherry picked from commit 98e0e3b9caee328542340f829e6cfdcb0f40b6d0) --- .../ddlgeneration/platform/PlatformDdl_AlterColumnTest.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java index 7bf3e8d57..9804e0c43 100644 --- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java +++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java @@ -175,7 +175,8 @@ public class PlatformDdl_AlterColumnTest { sql = alterColumn(db2Ddl, alter); softly.assertThat(sql).isEqualTo("-- apply alter tables\n" + "alter table mytab alter column acol drop default;\n" - + "alter table mytab alter column acol drop not null;\n"); + + "alter table mytab alter column acol drop not null;\n" + + "call sysproc.admin_cmd('reorg table mytab');\n"); } @@ -319,7 +320,8 @@ public class PlatformDdl_AlterColumnTest { sql = alterColumn(db2Ddl, alter); softly.assertThat(sql).isEqualTo("-- apply alter tables\n" - + "alter table mytab alter column acol drop not null;\n"); + + "alter table mytab alter column acol drop not null;\n" + + "call sysproc.admin_cmd('reorg table mytab');\n"); } @Test From 808ba719f4feccbb32c124f0f994ca02c2ddd515 Mon Sep 17 00:00:00 2001 From: Noemi Praml Date: Fri, 2 Sep 2022 11:44:41 +0200 Subject: [PATCH 084/127] Fix mariadb, mysql stored procedure usp_ebean_drop_column - reserved keywords (cherry picked from commit b0df1775092149b60e2ce9839be74a05f84cc2e3) --- .../io/ebeaninternal/dbmigration/builtin-extra-ddl.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ebean-ddl-generator/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml b/ebean-ddl-generator/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml index 1212f1f4c..34d3f0177 100644 --- a/ebean-ddl-generator/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml +++ b/ebean-ddl-generator/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml @@ -136,7 +136,7 @@ FETCH curs INTO c_fk_name; IF done THEN LEAVE read_loop; END IF; -SET @sql = CONCAT('ALTER TABLE ', p_table_name, ' DROP FOREIGN KEY ', c_fk_name); +SET @sql = CONCAT('ALTER TABLE `', p_table_name, '` DROP FOREIGN KEY ', c_fk_name); PREPARE stmt FROM @sql; EXECUTE stmt; END LOOP; @@ -155,7 +155,7 @@ delimiter $$ CREATE PROCEDURE usp_ebean_drop_column(IN p_table_name VARCHAR(255), IN p_column_name VARCHAR(255)) BEGIN CALL usp_ebean_drop_foreign_keys(p_table_name, p_column_name); -SET @sql = CONCAT('ALTER TABLE ', p_table_name, ' DROP COLUMN ', p_column_name); +SET @sql = CONCAT('ALTER TABLE `', p_table_name, '` DROP COLUMN `', p_column_name, '`'); PREPARE stmt FROM @sql; EXECUTE stmt; END From 8fe6de376dcc01321b47b3b49187ba08907b0c35 Mon Sep 17 00:00:00 2001 From: Noemi Praml Date: Fri, 2 Sep 2022 12:15:03 +0200 Subject: [PATCH 085/127] Fix sqlserver stored procedures - reserved keywords (cherry picked from commit 09bcf6dbb967c83f4bca3613df5d443975691a08) --- .../io/ebeaninternal/dbmigration/builtin-extra-ddl.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ebean-ddl-generator/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml b/ebean-ddl-generator/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml index 34d3f0177..4955f2c98 100644 --- a/ebean-ddl-generator/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml +++ b/ebean-ddl-generator/src/main/resources/io/ebeaninternal/dbmigration/builtin-extra-ddl.xml @@ -36,7 +36,7 @@ BEGIN FETCH NEXT FROM index_cursor INTO @indexName WHILE @@FETCH_STATUS = 0 BEGIN - set @sql = 'drop index ' + @indexName + ' on ' + @tableName; + set @sql = 'drop index ' + @indexName + ' on [' + @tableName + ']'; EXECUTE(@sql); FETCH NEXT FROM index_cursor INTO @indexName @@ -58,7 +58,7 @@ BEGIN join sys.columns t2 on t1.object_id = t2.default_object_id where t1.parent_object_id = OBJECT_ID(@tableName) and t2.name = @columnName; - if @tmp is not null EXEC('alter table ' + @tableName +' drop constraint ' + @tmp); + if @tmp is not null EXEC('alter table [' + @tableName +'] drop constraint ' + @tmp); END GO @@ -85,7 +85,7 @@ BEGIN FETCH NEXT FROM name_cursor INTO @constraintName WHILE @@FETCH_STATUS = 0 BEGIN - set @sql = 'alter table ' + @tableName + ' drop constraint ' + @constraintName; + set @sql = 'alter table [' + @tableName + '] drop constraint ' + @constraintName; EXECUTE(@sql); FETCH NEXT FROM name_cursor INTO @constraintName @@ -107,7 +107,7 @@ BEGIN EXEC usp_ebean_drop_default_constraint @tableName, @columnName; EXEC usp_ebean_drop_constraints @tableName, @columnName; - set @sql = 'alter table ' + @tableName + ' drop column ' + @columnName; + set @sql = 'alter table [' + @tableName + '] drop column [' + @columnName + ']'; EXECUTE(@sql); END GO From 13622f6b62f68a266f1d7d69f5e965c277cef287 Mon Sep 17 00:00:00 2001 From: Noemi Praml Date: Fri, 2 Sep 2022 13:27:11 +0200 Subject: [PATCH 086/127] migrations scripts --- .../dbmigration/clickhouse/1.0__initial.sql | 3 +- .../dbmigration/clickhouse/1.1.sql | 2 ++ .../clickhouse/1.4__dropsFor_1.3.sql | 2 ++ .../clickhouse/idx_clickhouse.migrations | 6 ++-- .../dbmigration/cockroach/1.0__initial.sql | 1 + .../dbmigration/cockroach/1.1.sql | 3 ++ .../dbmigration/cockroach/1.3.sql | 1 + .../cockroach/1.4__dropsFor_1.3.sql | 2 ++ .../cockroach/idx_cockroach.migrations | 8 ++--- .../dbmigration/db2fori/1.0__initial.sql | 1 + .../migrationtest/dbmigration/db2fori/1.1.sql | 7 +++++ .../migrationtest/dbmigration/db2fori/1.3.sql | 9 ++++++ .../dbmigration/db2fori/1.4__dropsFor_1.3.sql | 8 +++++ .../dbmigration/db2fori/idx_db2.migrations | 8 ++--- .../dbmigration/db2legacy/1.0__initial.sql | 1 + .../dbmigration/db2legacy/1.1.sql | 3 ++ .../dbmigration/db2legacy/1.3.sql | 1 + .../db2legacy/1.4__dropsFor_1.3.sql | 2 ++ .../db2legacy/idx_generic.migrations | 8 ++--- .../dbmigration/db2luw/1.0__initial.sql | 1 + .../migrationtest/dbmigration/db2luw/1.1.sql | 7 +++++ .../migrationtest/dbmigration/db2luw/1.3.sql | 9 ++++++ .../dbmigration/db2luw/1.4__dropsFor_1.3.sql | 8 +++++ .../dbmigration/db2luw/idx_db2.migrations | 8 ++--- .../dbmigration/db2zos/1.0__initial.sql | 1 + .../migrationtest/dbmigration/db2zos/1.1.sql | 7 +++++ .../migrationtest/dbmigration/db2zos/1.3.sql | 9 ++++++ .../dbmigration/db2zos/1.4__dropsFor_1.3.sql | 8 +++++ .../dbmigration/db2zos/idx_db2.migrations | 8 ++--- .../dbmigration/generic/1.0__initial.sql | 1 + .../migrationtest/dbmigration/generic/1.1.sql | 3 ++ .../migrationtest/dbmigration/generic/1.3.sql | 1 + .../dbmigration/generic/1.4__dropsFor_1.3.sql | 2 ++ .../generic/idx_generic.migrations | 8 ++--- .../dbmigration/h2/1.0__initial.sql | 2 ++ .../migrationtest/dbmigration/h2/1.1.sql | 5 +++ .../migrationtest/dbmigration/h2/1.3.sql | 1 + .../dbmigration/h2/1.4__dropsFor_1.3.sql | 8 +++++ .../dbmigration/h2/idx_h2.migrations | 8 ++--- .../dbmigration/hana/1.0__initial.sql | 2 ++ .../migrationtest/dbmigration/hana/1.1.sql | 9 ++++-- .../migrationtest/dbmigration/hana/1.3.sql | 7 +++++ .../dbmigration/hana/1.4__dropsFor_1.3.sql | 6 ++++ .../dbmigration/hana/idx_hana.migrations | 8 ++--- .../dbmigration/hsqldb/1.0__initial.sql | 1 + .../migrationtest/dbmigration/hsqldb/1.1.sql | 3 ++ .../migrationtest/dbmigration/hsqldb/1.3.sql | 1 + .../dbmigration/hsqldb/1.4__dropsFor_1.3.sql | 2 ++ .../dbmigration/hsqldb/idx_hsqldb.migrations | 8 ++--- .../mariadb-noprocs/1.0__initial.sql | 1 + .../dbmigration/mariadb-noprocs/1.1.sql | 3 ++ .../dbmigration/mariadb-noprocs/1.3.sql | 1 + .../mariadb-noprocs/1.4__dropsFor_1.3.sql | 2 ++ .../mariadb-noprocs/idx_mariadb.migrations | 8 ++--- .../dbmigration/mariadb/1.0__initial.sql | 1 + .../migrationtest/dbmigration/mariadb/1.1.sql | 3 ++ .../migrationtest/dbmigration/mariadb/1.3.sql | 1 + .../dbmigration/mariadb/1.4__dropsFor_1.3.sql | 2 ++ .../dbmigration/mariadb/I__create_procs.sql | 4 +-- .../mariadb/idx_mariadb.migrations | 10 +++--- .../dbmigration/model/1.0__initial.model.xml | 1 + .../dbmigration/model/1.1.model.xml | 3 ++ .../dbmigration/model/1.3.model.xml | 3 ++ .../model/1.4__dropsFor_1.3.model.xml | 2 ++ .../dbmigration/mysql/1.0__initial.sql | 6 ++-- .../migrationtest/dbmigration/mysql/1.1.sql | 9 ++++-- .../migrationtest/dbmigration/mysql/1.3.sql | 1 + .../dbmigration/mysql/1.4__dropsFor_1.3.sql | 19 ++++++++++++ .../dbmigration/mysql/I__create_procs.sql | 4 +-- .../dbmigration/mysql/idx_mysql.migrations | 10 +++--- .../dbmigration/mysql55/1.0__initial.sql | 6 ++-- .../migrationtest/dbmigration/mysql55/1.1.sql | 9 ++++-- .../migrationtest/dbmigration/mysql55/1.3.sql | 1 + .../dbmigration/mysql55/1.4__dropsFor_1.3.sql | 19 ++++++++++++ .../dbmigration/mysql55/I__create_procs.sql | 4 +-- .../dbmigration/mysql55/idx_mysql.migrations | 10 +++--- .../dbmigration/nuodb/1.0__initial.sql | 6 ++-- .../migrationtest/dbmigration/nuodb/1.1.sql | 9 ++++-- .../migrationtest/dbmigration/nuodb/1.3.sql | 1 + .../dbmigration/nuodb/1.4__dropsFor_1.3.sql | 21 +++++++++++++ .../dbmigration/nuodb/idx_nuodb.migrations | 8 ++--- .../dbmigration/oracle/1.0__initial.sql | 1 + .../migrationtest/dbmigration/oracle/1.1.sql | 3 ++ .../migrationtest/dbmigration/oracle/1.3.sql | 1 + .../dbmigration/oracle/1.4__dropsFor_1.3.sql | 2 ++ .../dbmigration/oracle/idx_oracle.migrations | 8 ++--- .../dbmigration/oracle11/1.0__initial.sql | 1 + .../dbmigration/oracle11/1.1.sql | 3 ++ .../dbmigration/oracle11/1.3.sql | 1 + .../oracle11/1.4__dropsFor_1.3.sql | 2 ++ .../oracle11/idx_oracle.migrations | 8 ++--- .../dbmigration/postgres/1.0__initial.sql | 5 +-- .../dbmigration/postgres/1.1.sql | 9 ++++-- .../dbmigration/postgres/1.3.sql | 1 + .../postgres/1.4__dropsFor_1.3.sql | 31 +++++++++++++++++++ .../postgres/idx_postgres.migrations | 8 ++--- .../dbmigration/postgres9/1.0__initial.sql | 5 +-- .../dbmigration/postgres9/1.1.sql | 9 ++++-- .../dbmigration/postgres9/1.3.sql | 1 + .../postgres9/1.4__dropsFor_1.3.sql | 31 +++++++++++++++++++ .../postgres9/idx_postgres.migrations | 8 ++--- .../dbmigration/sqlanywhere/1.0__initial.sql | 1 + .../dbmigration/sqlanywhere/1.1.sql | 3 ++ .../dbmigration/sqlanywhere/1.3.sql | 1 + .../sqlanywhere/1.4__dropsFor_1.3.sql | 2 ++ .../sqlanywhere/idx_sqlanywhere.migrations | 8 ++--- .../dbmigration/sqlite/1.0__initial.sql | 1 + .../migrationtest/dbmigration/sqlite/1.1.sql | 3 ++ .../migrationtest/dbmigration/sqlite/1.3.sql | 1 + .../dbmigration/sqlite/1.4__dropsFor_1.3.sql | 2 ++ .../dbmigration/sqlite/idx_sqlite.migrations | 8 ++--- .../dbmigration/sqlserver16/1.0__initial.sql | 1 + .../dbmigration/sqlserver16/1.1.sql | 3 ++ .../dbmigration/sqlserver16/1.3.sql | 1 + .../sqlserver16/1.4__dropsFor_1.3.sql | 5 +++ .../sqlserver16/I__create_procs.sql | 8 ++--- .../sqlserver16/idx_sqlserver.migrations | 10 +++--- .../dbmigration/sqlserver17/1.0__initial.sql | 1 + .../dbmigration/sqlserver17/1.1.sql | 3 ++ .../dbmigration/sqlserver17/1.3.sql | 1 + .../sqlserver17/1.4__dropsFor_1.3.sql | 5 +++ .../sqlserver17/I__create_procs.sql | 8 ++--- .../sqlserver17/idx_sqlserver.migrations | 10 +++--- .../dbmigration/yugabyte/1.0__initial.sql | 6 ++-- .../dbmigration/yugabyte/1.1.sql | 9 ++++-- .../dbmigration/yugabyte/1.3.sql | 1 + .../yugabyte/1.4__dropsFor_1.3.sql | 31 +++++++++++++++++++ .../yugabyte/idx_yugabyte.migrations | 8 ++--- 128 files changed, 554 insertions(+), 141 deletions(-) diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.0__initial.sql index f98c28775..228422449 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.0__initial.sql @@ -126,7 +126,8 @@ create table "table" ( "from" String, "to" String, "varchar" String, - "foreign" String + "foreign" String, + textfield String ) ENGINE = Log(); create table migtest_mtm_c ( diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.1.sql index 0489ae14d..9849b051c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.1.sql @@ -38,7 +38,9 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -- apply alter tables +alter table "table" alter column textfield set null; alter table "table" add column "select" String; +alter table "table" add column textfield2 String; alter table migtest_ckey_detail add column one_key UInt32; alter table migtest_ckey_detail add column two_key String; alter table migtest_ckey_parent add column assoc_id UInt32; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.4__dropsFor_1.3.sql index b4087d6d6..b7d11cb4d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/1.4__dropsFor_1.3.sql @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply alter tables +alter table "table" drop column textfield; +alter table "table" drop column textfield2; alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; alter table migtest_ckey_parent drop column assoc_id; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/idx_clickhouse.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/idx_clickhouse.migrations index c3612c6c2..15a78f72e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/idx_clickhouse.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/clickhouse/idx_clickhouse.migrations @@ -1,6 +1,6 @@ -235371332, 1.0__initial.sql -74490120, 1.1.sql +193400547, 1.0__initial.sql +540706946, 1.1.sql 688811494, 1.2__dropsFor_1.1.sql 1015552567, 1.3.sql -80209848, 1.4__dropsFor_1.3.sql +255653518, 1.4__dropsFor_1.3.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.0__initial.sql index 71fc29b04..4f47e0774 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.0__initial.sql @@ -156,6 +156,7 @@ create table "table" ( "to" varchar(255), "varchar" varchar(255), "foreign" varchar(255), + textfield varchar(255) not null, constraint uq_table_to unique ("to"), constraint uq_table_varchar unique ("varchar"), constraint pk_table primary key ("index") diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.1.sql index 5c0070d16..183dcdc71 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.1.sql @@ -46,7 +46,9 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -- apply alter tables +alter table "table" alter column textfield drop not null; alter table "table" add column "select" varchar(255); +alter table "table" add column textfield2 varchar(255); 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_parent add column assoc_id integer; @@ -116,3 +118,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index ix_table_textfield2 on "table" (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql index 8397edb71..88945c112 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql @@ -16,6 +16,7 @@ drop index uq_migtest_e_basic_indextest5 cascade; alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; drop index if exists ix_migtest_e_basic_indextest3; drop index if exists ix_migtest_e_basic_indextest6; +drop index if exists ix_table_textfield2; -- apply changes create table "migtest_QuOtEd" ( id varchar(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.4__dropsFor_1.3.sql index 6db145c5c..a643969f8 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.4__dropsFor_1.3.sql @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply alter tables +alter table "table" drop column textfield; +alter table "table" drop column textfield2; alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; alter table migtest_ckey_parent drop column assoc_id; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/idx_cockroach.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/idx_cockroach.migrations index 521df7740..debd08772 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/idx_cockroach.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/idx_cockroach.migrations @@ -1,7 +1,7 @@ --703764770, 1.0__initial.sql -773862451, 1.1.sql +1434934404, 1.0__initial.sql +1284257915, 1.1.sql 856096334, 1.2__dropsFor_1.1.sql -17665322, 1.3.sql --820814009, 1.4__dropsFor_1.3.sql +-1551362011, 1.3.sql +-971909974, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.0__initial.sql index 98315d5d8..9931da4b1 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.0__initial.sql @@ -152,6 +152,7 @@ create table "table" ( "to" varchar(255), "varchar" varchar(255), "foreign" varchar(255), + textfield varchar(255) not null, constraint pk_table primary key ("index") ); comment on column "table"."index" is 'this is a comment'; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql index 669dacdf7..3032d4353 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.1.sql @@ -130,7 +130,10 @@ alter table "table" drop versioning; CALL SYSPROC.ADMIN_MOVE_TABLE(CURRENT_SCHEMA,'MIGTEST_MTM_C','TESTTS','TESTTS','TESTTS','','','','','','MOVE'); CALL SYSPROC.ADMIN_MOVE_TABLE(CURRENT_SCHEMA,'MIGTEST_MTM_M','TSMASTER','TSMASTER','TSMASTER','','','','','','MOVE'); -- apply alter tables +alter table "table" alter column textfield drop not null; alter table "table" add column "select" varchar(255); +alter table "table" add column textfield2 varchar(255); +call sysproc.admin_cmd('reorg table "table"'); 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_parent add column assoc_id integer; @@ -180,7 +183,10 @@ alter table migtest_e_history6_history alter column test_number2 drop not null; call sysproc.admin_cmd('reorg table migtest_e_history6_history'); alter table migtest_e_softdelete add column deleted smallint default 0 default false not null; alter table migtest_oto_child add column master_id bigint; +alter table table_history alter column textfield drop not null; alter table table_history add column "select" varchar(255); +alter table table_history add column textfield2 varchar(255); +call sysproc.admin_cmd('reorg table table_history'); -- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); create unique index uq_migtest_e_basic_description on migtest_e_basic(description) exclude null keys; @@ -232,3 +238,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index ix_table_textfield2 on "table" (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql index 67dc90eff..5baddc80a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.3.sql @@ -147,6 +147,13 @@ if exists (select indname from syscat.indexes where indschema = current_schema a execute stmt; end if; end$$; +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and ucase(indname) = 'IX_TABLE_TEXTFIELD2') then + prepare stmt from 'drop index ix_table_textfield2'; + execute stmt; +end if; +end$$; -- apply changes create table "migtest_QuOtEd" ( id varchar(255) not null, @@ -200,9 +207,11 @@ alter table migtest_e_history2 alter column test_string drop default; alter table migtest_e_history2 alter column test_string drop not null; alter table migtest_e_history2 add column obsolete_string1 varchar(255); alter table migtest_e_history2 add column obsolete_string2 varchar(255); +call sysproc.admin_cmd('reorg table migtest_e_history2'); alter table migtest_e_history2_history alter column test_string drop not null; alter table migtest_e_history2_history add column obsolete_string1 varchar(255); alter table migtest_e_history2_history add column obsolete_string2 varchar(255); +call sysproc.admin_cmd('reorg table migtest_e_history2_history'); alter table migtest_e_history4 alter column test_number set data type integer; call sysproc.admin_cmd('reorg table migtest_e_history4'); alter table migtest_e_history4_history alter column test_number set data type integer; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql index 95bd2ed00..ecc7c99fa 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/1.4__dropsFor_1.3.sql @@ -4,7 +4,11 @@ alter table migtest_e_history drop versioning; alter table migtest_e_history drop period system_time; alter table migtest_e_history2 drop versioning; alter table migtest_e_history5 drop versioning; +alter table "table" drop versioning; -- apply alter tables +alter table "table" drop column textfield; +alter table "table" drop column textfield2; +call sysproc.admin_cmd('reorg table "table"'); alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; call sysproc.admin_cmd('reorg table migtest_ckey_detail'); @@ -36,10 +40,14 @@ alter table migtest_e_softdelete drop column deleted; call sysproc.admin_cmd('reorg table migtest_e_softdelete'); alter table migtest_oto_child drop column master_id; call sysproc.admin_cmd('reorg table migtest_oto_child'); +alter table table_history drop column textfield; +alter table table_history drop column textfield2; +call sysproc.admin_cmd('reorg table table_history'); -- apply post alter drop table migtest_e_history_history; alter table migtest_e_history2 add versioning use history table migtest_e_history2_history; alter table migtest_e_history5 add versioning use history table migtest_e_history5_history; +alter table "table" add versioning use history table table_history; drop table migtest_e_user; delimiter $$ begin diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations index 1ef685958..16c7b2cec 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2fori/idx_db2.migrations @@ -1,7 +1,7 @@ -1873955813, 1.0__initial.sql --1557626294, 1.1.sql +-1467839063, 1.0__initial.sql +-184000413, 1.1.sql -1187336846, 1.2__dropsFor_1.1.sql -2066110925, 1.3.sql --1713819679, 1.4__dropsFor_1.3.sql +-150875853, 1.3.sql +946163478, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.0__initial.sql index 4deaeeaa5..7b7bddd1d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.0__initial.sql @@ -156,6 +156,7 @@ create table "table" ( "to" varchar(255), "varchar" varchar(255), "foreign" varchar(255), + textfield varchar(255) not null, constraint uq_table_to unique ("to"), constraint uq_table_varchar unique ("varchar"), constraint pk_table primary key ("index") diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql index 7d28dfd4b..645d357f2 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.1.sql @@ -46,7 +46,9 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -- apply alter tables +alter table "table" alter column textfield set null; alter table "table" add column "select" varchar(255); +alter table "table" add column textfield2 varchar(255); 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_parent add column assoc_id integer; @@ -119,3 +121,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index ix_table_textfield2 on "table" (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql index ac80b64d5..d41f2877a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.3.sql @@ -16,6 +16,7 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; drop index if exists ix_migtest_e_basic_indextest3; drop index if exists ix_migtest_e_basic_indextest6; +drop index if exists ix_table_textfield2; -- apply changes create table "migtest_QuOtEd" ( id varchar(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.4__dropsFor_1.3.sql index b4087d6d6..b7d11cb4d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/1.4__dropsFor_1.3.sql @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply alter tables +alter table "table" drop column textfield; +alter table "table" drop column textfield2; alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; alter table migtest_ckey_parent drop column assoc_id; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_generic.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_generic.migrations index d016b1917..c9faf50c4 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_generic.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2legacy/idx_generic.migrations @@ -1,6 +1,6 @@ --710189690, 1.0__initial.sql --145836847, 1.1.sql +-1547037623, 1.0__initial.sql +253988246, 1.1.sql 688811494, 1.2__dropsFor_1.1.sql -2025934113, 1.3.sql -80209848, 1.4__dropsFor_1.3.sql +509168727, 1.3.sql +255653518, 1.4__dropsFor_1.3.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql index 7bd62bcb0..8b9d60aad 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.0__initial.sql @@ -152,6 +152,7 @@ create table "table" ( "to" varchar(255), "varchar" varchar(255), "foreign" varchar(255), + textfield varchar(255) not null, constraint pk_table primary key ("index") ); comment on column "table"."index" is 'this is a comment'; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql index 9c00294bc..2f4beedaa 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.1.sql @@ -130,7 +130,10 @@ alter table "table" drop versioning; CALL SYSPROC.ADMIN_MOVE_TABLE(CURRENT_SCHEMA,'MIGTEST_MTM_C','TESTTS','TESTTS','TESTTS','','','','','','MOVE'); CALL SYSPROC.ADMIN_MOVE_TABLE(CURRENT_SCHEMA,'MIGTEST_MTM_M','TSMASTER','TSMASTER','TSMASTER','','','','','','MOVE'); -- apply alter tables +alter table "table" alter column textfield drop not null; alter table "table" add column "select" varchar(255); +alter table "table" add column textfield2 varchar(255); +call sysproc.admin_cmd('reorg table "table"'); 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_parent add column assoc_id integer; @@ -180,7 +183,10 @@ alter table migtest_e_history6_history alter column test_number2 drop not null; call sysproc.admin_cmd('reorg table migtest_e_history6_history'); alter table migtest_e_softdelete add column deleted boolean default false not null; alter table migtest_oto_child add column master_id bigint; +alter table table_history alter column textfield drop not null; alter table table_history add column "select" varchar(255); +alter table table_history add column textfield2 varchar(255); +call sysproc.admin_cmd('reorg table table_history'); -- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); create unique index uq_migtest_e_basic_description on migtest_e_basic(description) exclude null keys; @@ -232,3 +238,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index ix_table_textfield2 on "table" (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql index f61a3c695..4a672dd72 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.3.sql @@ -147,6 +147,13 @@ if exists (select indname from syscat.indexes where indschema = current_schema a execute stmt; end if; end$$; +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and ucase(indname) = 'IX_TABLE_TEXTFIELD2') then + prepare stmt from 'drop index ix_table_textfield2'; + execute stmt; +end if; +end$$; -- apply changes create table "migtest_QuOtEd" ( id varchar(255) not null, @@ -200,9 +207,11 @@ alter table migtest_e_history2 alter column test_string drop default; alter table migtest_e_history2 alter column test_string drop not null; alter table migtest_e_history2 add column obsolete_string1 varchar(255); alter table migtest_e_history2 add column obsolete_string2 varchar(255); +call sysproc.admin_cmd('reorg table migtest_e_history2'); alter table migtest_e_history2_history alter column test_string drop not null; alter table migtest_e_history2_history add column obsolete_string1 varchar(255); alter table migtest_e_history2_history add column obsolete_string2 varchar(255); +call sysproc.admin_cmd('reorg table migtest_e_history2_history'); alter table migtest_e_history4 alter column test_number set data type integer; call sysproc.admin_cmd('reorg table migtest_e_history4'); alter table migtest_e_history4_history alter column test_number set data type integer; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.4__dropsFor_1.3.sql index 95bd2ed00..ecc7c99fa 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/1.4__dropsFor_1.3.sql @@ -4,7 +4,11 @@ alter table migtest_e_history drop versioning; alter table migtest_e_history drop period system_time; alter table migtest_e_history2 drop versioning; alter table migtest_e_history5 drop versioning; +alter table "table" drop versioning; -- apply alter tables +alter table "table" drop column textfield; +alter table "table" drop column textfield2; +call sysproc.admin_cmd('reorg table "table"'); alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; call sysproc.admin_cmd('reorg table migtest_ckey_detail'); @@ -36,10 +40,14 @@ alter table migtest_e_softdelete drop column deleted; call sysproc.admin_cmd('reorg table migtest_e_softdelete'); alter table migtest_oto_child drop column master_id; call sysproc.admin_cmd('reorg table migtest_oto_child'); +alter table table_history drop column textfield; +alter table table_history drop column textfield2; +call sysproc.admin_cmd('reorg table table_history'); -- apply post alter drop table migtest_e_history_history; alter table migtest_e_history2 add versioning use history table migtest_e_history2_history; alter table migtest_e_history5 add versioning use history table migtest_e_history5_history; +alter table "table" add versioning use history table table_history; drop table migtest_e_user; delimiter $$ begin diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations index 544b1fcb9..146c2c1d8 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2luw/idx_db2.migrations @@ -1,8 +1,8 @@ 1307787475, I__create_tablespaces.sql --1998060342, 1.0__initial.sql -1595289592, 1.1.sql +2058232717, 1.0__initial.sql +-1450326352, 1.1.sql -1187336846, 1.2__dropsFor_1.1.sql --1088179698, 1.3.sql --1713819679, 1.4__dropsFor_1.3.sql +1976888196, 1.3.sql +946163478, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.0__initial.sql index 7bd62bcb0..8b9d60aad 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.0__initial.sql @@ -152,6 +152,7 @@ create table "table" ( "to" varchar(255), "varchar" varchar(255), "foreign" varchar(255), + textfield varchar(255) not null, constraint pk_table primary key ("index") ); comment on column "table"."index" is 'this is a comment'; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql index 9c00294bc..2f4beedaa 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.1.sql @@ -130,7 +130,10 @@ alter table "table" drop versioning; CALL SYSPROC.ADMIN_MOVE_TABLE(CURRENT_SCHEMA,'MIGTEST_MTM_C','TESTTS','TESTTS','TESTTS','','','','','','MOVE'); CALL SYSPROC.ADMIN_MOVE_TABLE(CURRENT_SCHEMA,'MIGTEST_MTM_M','TSMASTER','TSMASTER','TSMASTER','','','','','','MOVE'); -- apply alter tables +alter table "table" alter column textfield drop not null; alter table "table" add column "select" varchar(255); +alter table "table" add column textfield2 varchar(255); +call sysproc.admin_cmd('reorg table "table"'); 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_parent add column assoc_id integer; @@ -180,7 +183,10 @@ alter table migtest_e_history6_history alter column test_number2 drop not null; call sysproc.admin_cmd('reorg table migtest_e_history6_history'); alter table migtest_e_softdelete add column deleted boolean default false not null; alter table migtest_oto_child add column master_id bigint; +alter table table_history alter column textfield drop not null; alter table table_history add column "select" varchar(255); +alter table table_history add column textfield2 varchar(255); +call sysproc.admin_cmd('reorg table table_history'); -- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); create unique index uq_migtest_e_basic_description on migtest_e_basic(description) exclude null keys; @@ -232,3 +238,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index ix_table_textfield2 on "table" (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql index f61a3c695..4a672dd72 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.3.sql @@ -147,6 +147,13 @@ if exists (select indname from syscat.indexes where indschema = current_schema a execute stmt; end if; end$$; +delimiter $$ +begin +if exists (select indname from syscat.indexes where indschema = current_schema and ucase(indname) = 'IX_TABLE_TEXTFIELD2') then + prepare stmt from 'drop index ix_table_textfield2'; + execute stmt; +end if; +end$$; -- apply changes create table "migtest_QuOtEd" ( id varchar(255) not null, @@ -200,9 +207,11 @@ alter table migtest_e_history2 alter column test_string drop default; alter table migtest_e_history2 alter column test_string drop not null; alter table migtest_e_history2 add column obsolete_string1 varchar(255); alter table migtest_e_history2 add column obsolete_string2 varchar(255); +call sysproc.admin_cmd('reorg table migtest_e_history2'); alter table migtest_e_history2_history alter column test_string drop not null; alter table migtest_e_history2_history add column obsolete_string1 varchar(255); alter table migtest_e_history2_history add column obsolete_string2 varchar(255); +call sysproc.admin_cmd('reorg table migtest_e_history2_history'); alter table migtest_e_history4 alter column test_number set data type integer; call sysproc.admin_cmd('reorg table migtest_e_history4'); alter table migtest_e_history4_history alter column test_number set data type integer; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.4__dropsFor_1.3.sql index 95bd2ed00..ecc7c99fa 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/1.4__dropsFor_1.3.sql @@ -4,7 +4,11 @@ alter table migtest_e_history drop versioning; alter table migtest_e_history drop period system_time; alter table migtest_e_history2 drop versioning; alter table migtest_e_history5 drop versioning; +alter table "table" drop versioning; -- apply alter tables +alter table "table" drop column textfield; +alter table "table" drop column textfield2; +call sysproc.admin_cmd('reorg table "table"'); alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; call sysproc.admin_cmd('reorg table migtest_ckey_detail'); @@ -36,10 +40,14 @@ alter table migtest_e_softdelete drop column deleted; call sysproc.admin_cmd('reorg table migtest_e_softdelete'); alter table migtest_oto_child drop column master_id; call sysproc.admin_cmd('reorg table migtest_oto_child'); +alter table table_history drop column textfield; +alter table table_history drop column textfield2; +call sysproc.admin_cmd('reorg table table_history'); -- apply post alter drop table migtest_e_history_history; alter table migtest_e_history2 add versioning use history table migtest_e_history2_history; alter table migtest_e_history5 add versioning use history table migtest_e_history5_history; +alter table "table" add versioning use history table table_history; drop table migtest_e_user; delimiter $$ begin diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations index 06ee096d3..2d8e70ad2 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/db2zos/idx_db2.migrations @@ -1,7 +1,7 @@ --1998060342, 1.0__initial.sql -1595289592, 1.1.sql +2058232717, 1.0__initial.sql +-1450326352, 1.1.sql -1187336846, 1.2__dropsFor_1.1.sql --1088179698, 1.3.sql --1713819679, 1.4__dropsFor_1.3.sql +1976888196, 1.3.sql +946163478, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.0__initial.sql index 4deaeeaa5..7b7bddd1d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.0__initial.sql @@ -156,6 +156,7 @@ create table "table" ( "to" varchar(255), "varchar" varchar(255), "foreign" varchar(255), + textfield varchar(255) not null, constraint uq_table_to unique ("to"), constraint uq_table_varchar unique ("varchar"), constraint pk_table primary key ("index") diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.1.sql index 7d28dfd4b..645d357f2 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.1.sql @@ -46,7 +46,9 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -- apply alter tables +alter table "table" alter column textfield set null; alter table "table" add column "select" varchar(255); +alter table "table" add column textfield2 varchar(255); 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_parent add column assoc_id integer; @@ -119,3 +121,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index ix_table_textfield2 on "table" (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql index ac80b64d5..d41f2877a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.3.sql @@ -16,6 +16,7 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; drop index if exists ix_migtest_e_basic_indextest3; drop index if exists ix_migtest_e_basic_indextest6; +drop index if exists ix_table_textfield2; -- apply changes create table "migtest_QuOtEd" ( id varchar(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.4__dropsFor_1.3.sql index b4087d6d6..b7d11cb4d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/1.4__dropsFor_1.3.sql @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply alter tables +alter table "table" drop column textfield; +alter table "table" drop column textfield2; alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; alter table migtest_ckey_parent drop column assoc_id; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/idx_generic.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/idx_generic.migrations index d016b1917..c9faf50c4 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/generic/idx_generic.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/generic/idx_generic.migrations @@ -1,6 +1,6 @@ --710189690, 1.0__initial.sql --145836847, 1.1.sql +-1547037623, 1.0__initial.sql +253988246, 1.1.sql 688811494, 1.2__dropsFor_1.1.sql -2025934113, 1.3.sql -80209848, 1.4__dropsFor_1.3.sql +509168727, 1.3.sql +255653518, 1.4__dropsFor_1.3.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.0__initial.sql index 421988c4d..d405e6e70 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.0__initial.sql @@ -156,6 +156,7 @@ create table "table" ( "to" varchar(255), "varchar" varchar(255), "foreign" varchar(255), + textfield varchar(255) not null, constraint uq_table_to unique ("to"), constraint uq_table_varchar unique ("varchar"), constraint pk_table primary key ("index") @@ -254,6 +255,7 @@ create table table_history( "to" varchar(255), "varchar" varchar(255), "foreign" varchar(255), + textfield varchar(255), sys_period_start timestamp, sys_period_end timestamp ); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.1.sql index 10e15fc7b..93ae665e6 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.1.sql @@ -58,7 +58,9 @@ drop view migtest_e_history6_with_history; drop trigger table_history_upd; drop view table_with_history; -- apply alter tables +alter table "table" alter column textfield set null; alter table "table" add column "select" varchar(255); +alter table "table" add column textfield2 varchar(255); 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_parent add column assoc_id integer; @@ -96,7 +98,9 @@ alter table migtest_e_history6 alter column test_number2 set null; alter table migtest_e_history6_history alter column test_number2 set null; alter table migtest_e_softdelete add column deleted boolean default false not null; alter table migtest_oto_child add column master_id bigint; +alter table table_history alter column textfield set null; alter table table_history add column "select" varchar(255); +alter table table_history add column textfield2 varchar(255); -- apply post alter 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 uq_migtest_e_basic_description unique (description); @@ -161,3 +165,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index ix_table_textfield2 on "table" (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql index 7d0188eed..844fb66bd 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.3.sql @@ -16,6 +16,7 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; drop index if exists ix_migtest_e_basic_indextest3; drop index if exists ix_migtest_e_basic_indextest6; +drop index if exists ix_table_textfield2; -- apply changes create table "migtest_QuOtEd" ( id varchar(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.4__dropsFor_1.3.sql index feea9437a..e7863869a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/1.4__dropsFor_1.3.sql @@ -9,7 +9,11 @@ drop trigger migtest_e_history2_history_upd; drop view migtest_e_history2_with_history; drop trigger migtest_e_history5_history_upd; drop view migtest_e_history5_with_history; +drop trigger table_history_upd; +drop view table_with_history; -- apply alter tables +alter table "table" drop column textfield; +alter table "table" drop column textfield2; alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; alter table migtest_ckey_parent drop column assoc_id; @@ -30,11 +34,15 @@ alter table migtest_e_history5 drop column test_boolean; alter table migtest_e_history5_history drop column test_boolean; alter table migtest_e_softdelete drop column deleted; alter table migtest_oto_child drop column master_id; +alter table table_history drop column textfield; +alter table table_history drop column textfield2; -- apply post alter create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; create trigger migtest_e_history2_history_upd before update,delete on migtest_e_history2 for each row call "io.ebean.platform.h2.H2HistoryTrigger"; create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history; create trigger migtest_e_history5_history_upd before update,delete on migtest_e_history5 for each row call "io.ebean.platform.h2.H2HistoryTrigger"; +create view table_with_history as select * from "table" union all select * from table_history; +create trigger table_history_upd before update,delete on "table" for each row call "io.ebean.platform.h2.H2HistoryTrigger"; drop table if exists migtest_e_user; drop sequence if exists migtest_e_user_seq; drop table if exists migtest_mtm_c_migtest_mtm_m; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/idx_h2.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/idx_h2.migrations index e7d2d1dc7..a58bd9139 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/h2/idx_h2.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/h2/idx_h2.migrations @@ -1,8 +1,8 @@ --1806036603, 1.0__initial.sql --1296236140, 1.1.sql +-1854589550, 1.0__initial.sql +1979519453, 1.1.sql 1579867974, 1.2__dropsFor_1.1.sql --877392737, 1.3.sql -116139207, 1.4__dropsFor_1.3.sql +-285485598, 1.3.sql +-1120611041, 1.4__dropsFor_1.3.sql 783227075, R__multi_comments.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.0__initial.sql index a6b08b371..2c4188555 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.0__initial.sql @@ -156,6 +156,7 @@ create column table "table" ( "to" nvarchar(255), "varchar" nvarchar(255), "foreign" nvarchar(255), + textfield nvarchar(255) not null, constraint uq_table_to unique ("to"), constraint uq_table_varchar unique ("varchar"), constraint pk_table primary key ("index") @@ -257,6 +258,7 @@ create column table table_history ( "to" nvarchar(255), "varchar" nvarchar(255), "foreign" nvarchar(255), + textfield nvarchar(255) not null, sys_period_start timestamp, sys_period_end timestamp ); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.1.sql index 00f9b2570..98d826685 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.1.sql @@ -100,7 +100,9 @@ update migtest_e_history6 set test_number1 = 42 where test_number1 is null; alter table migtest_e_history6 drop system versioning; alter table "table" drop system versioning; -- apply alter tables -alter table "table" add ("select" nvarchar(255)); +alter table "table" alter (textfield nvarchar(255)); +alter table "table" add ("select" nvarchar(255), + textfield2 nvarchar(255)); alter table migtest_ckey_detail add (one_key integer, two_key nvarchar(127)); alter table migtest_ckey_parent add (assoc_id integer); @@ -130,7 +132,9 @@ alter table migtest_e_history6 alter (test_number1 integer default 42 not null, alter table migtest_e_history6_history alter (test_number2 integer); alter table migtest_e_softdelete add (deleted boolean default false not null); alter table migtest_oto_child add (master_id bigint); -alter table table_history add ("select" nvarchar(255)); +alter table table_history alter (textfield nvarchar(255)); +alter table table_history add ("select" nvarchar(255), + textfield2 nvarchar(255)); -- apply post alter alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?')); -- cannot create unique index "uq_migtest_e_basic_description" on table "migtest_e_basic" with nullable columns; @@ -192,3 +196,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore -- explicit index "ix_migtest_e_basic_indextest3" for single column "indextest3" of table "migtest_e_basic" is not necessary; -- explicit index "ix_migtest_e_basic_indextest6" for single column "indextest6" of table "migtest_e_basic" is not necessary; +-- explicit index "ix_table_textfield2" for single column "textfield2" of table ""table"" is not necessary; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql index 228ebaa58..e818117ed 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.3.sql @@ -76,6 +76,13 @@ declare exit handler for sql_error_code 261 begin end; exec 'drop index ix_migtest_e_basic_indextest6'; end; $$; +delimiter $$ +do +begin +declare exit handler for sql_error_code 261 begin end; +exec 'drop index ix_table_textfield2'; +end; +$$; -- apply changes create column table "migtest_QuOtEd" ( id nvarchar(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.4__dropsFor_1.3.sql index d49afa4be..801ddd022 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/1.4__dropsFor_1.3.sql @@ -7,7 +7,10 @@ drop table migtest_e_history_history cascade; -- apply changes alter table migtest_e_history2 drop system versioning; alter table migtest_e_history5 drop system versioning; +alter table "table" drop system versioning; -- apply alter tables +CALL usp_ebean_drop_column('"table"', 'textfield'); +CALL usp_ebean_drop_column('"table"', 'textfield2'); CALL usp_ebean_drop_column('migtest_ckey_detail', 'one_key'); CALL usp_ebean_drop_column('migtest_ckey_detail', 'two_key'); CALL usp_ebean_drop_column('migtest_ckey_parent', 'assoc_id'); @@ -26,9 +29,12 @@ CALL usp_ebean_drop_column('migtest_e_history5', 'test_boolean'); CALL usp_ebean_drop_column('migtest_e_history5_history', 'test_boolean'); CALL usp_ebean_drop_column('migtest_e_softdelete', 'deleted'); CALL usp_ebean_drop_column('migtest_oto_child', 'master_id'); +CALL usp_ebean_drop_column('table_history', 'textfield'); +CALL usp_ebean_drop_column('table_history', 'textfield2'); -- apply post alter alter table migtest_e_history2 add system versioning history table migtest_e_history2_history not validated; alter table migtest_e_history5 add system versioning history table migtest_e_history5_history not validated; +alter table "table" add system versioning history table table_history not validated; drop table migtest_e_user cascade; drop table migtest_mtm_c_migtest_mtm_m cascade; drop table migtest_mtm_m_migtest_mtm_c cascade; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/idx_hana.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/idx_hana.migrations index 10183c98f..467fc71ec 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hana/idx_hana.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hana/idx_hana.migrations @@ -1,8 +1,8 @@ -745347271, I__create_procs.sql -1631114894, 1.0__initial.sql --534043487, 1.1.sql +-2017770851, 1.0__initial.sql +-1727762906, 1.1.sql 1535221752, 1.2__dropsFor_1.1.sql -483907844, 1.3.sql -1812245353, 1.4__dropsFor_1.3.sql +-1046661128, 1.3.sql +1185007986, 1.4__dropsFor_1.3.sql 1906063401, R__order_views_hana.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.0__initial.sql index f84501c10..ff2f34299 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.0__initial.sql @@ -156,6 +156,7 @@ create table "table" ( "to" varchar(255), "varchar" varchar(255), "foreign" varchar(255), + textfield varchar(255) not null, constraint uq_table_to unique ("to"), constraint uq_table_varchar unique ("varchar"), constraint pk_table primary key ("index") diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.1.sql index 03c8737c7..94010fa00 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.1.sql @@ -46,7 +46,9 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -- apply alter tables +alter table "table" alter column textfield set null; alter table "table" add column "select" varchar(255); +alter table "table" add column textfield2 varchar(255); 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_parent add column assoc_id integer; @@ -119,3 +121,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index ix_table_textfield2 on "table" (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql index de92cd16f..3d4fb1409 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.3.sql @@ -16,6 +16,7 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; drop index if exists ix_migtest_e_basic_indextest3; drop index if exists ix_migtest_e_basic_indextest6; +drop index if exists ix_table_textfield2; -- apply changes create table "migtest_QuOtEd" ( id varchar(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.4__dropsFor_1.3.sql index 19c77f211..9387dec42 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/1.4__dropsFor_1.3.sql @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply alter tables +alter table "table" drop column textfield; +alter table "table" drop column textfield2; alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; alter table migtest_ckey_parent drop column assoc_id; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/idx_hsqldb.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/idx_hsqldb.migrations index 97e572937..61c09dc8e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/idx_hsqldb.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/hsqldb/idx_hsqldb.migrations @@ -1,7 +1,7 @@ --906026927, 1.0__initial.sql -936644233, 1.1.sql +1833930558, 1.0__initial.sql +84224587, 1.1.sql -848622216, 1.2__dropsFor_1.1.sql -781720387, 1.3.sql --972999284, 1.4__dropsFor_1.3.sql +19356381, 1.3.sql +1661935263, 1.4__dropsFor_1.3.sql 861001272, R__order_views_hsqldb.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql index be0dfa028..f9b1b3f43 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.0__initial.sql @@ -151,6 +151,7 @@ create table `table` ( `to` varchar(255), `varchar` varchar(255), `foreign` varchar(255), + textfield varchar(255) not null, constraint uq_table_to unique (`to`), constraint uq_table_varchar unique (`varchar`), constraint pk_table primary key (`index`) diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.1.sql index 1f6356a45..4213de18e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.1.sql @@ -44,7 +44,9 @@ SET @@system_versioning_alter_history = 1; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -- apply alter tables +alter table `table` modify textfield varchar(255); alter table `table` add column `select` varchar(255); +alter table `table` add column textfield2 varchar(255); 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_parent add column assoc_id integer; @@ -108,3 +110,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index ix_table_textfield2 on `table` (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql index fc633abc6..6fd34becb 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.3.sql @@ -13,6 +13,7 @@ alter table migtest_e_basic drop index uq_migtest_e_basic_indextest4; alter table migtest_e_basic drop index uq_migtest_e_basic_indextest5; drop index ix_migtest_e_basic_indextest3 on migtest_e_basic; drop index ix_migtest_e_basic_indextest6 on migtest_e_basic; +drop index ix_table_textfield2 on `table`; -- apply changes create table `migtest_QuOtEd` ( id varchar(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.4__dropsFor_1.3.sql index b15ac579e..2f4425f31 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/1.4__dropsFor_1.3.sql @@ -2,6 +2,8 @@ -- apply changes SET @@system_versioning_alter_history = 1; -- apply alter tables +alter table `table` drop column textfield; +alter table `table` drop column textfield2; alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; alter table migtest_ckey_parent drop column assoc_id; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/idx_mariadb.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/idx_mariadb.migrations index d56859c0a..98022f4e3 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/idx_mariadb.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb-noprocs/idx_mariadb.migrations @@ -1,7 +1,7 @@ -168258180, 1.0__initial.sql -1552926718, 1.1.sql +-2111548334, 1.0__initial.sql +-1101751768, 1.1.sql 919151678, 1.2__dropsFor_1.1.sql --1031408459, 1.3.sql --446860935, 1.4__dropsFor_1.3.sql +-1572621686, 1.3.sql +1686135364, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.0__initial.sql index be0dfa028..f9b1b3f43 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.0__initial.sql @@ -151,6 +151,7 @@ create table `table` ( `to` varchar(255), `varchar` varchar(255), `foreign` varchar(255), + textfield varchar(255) not null, constraint uq_table_to unique (`to`), constraint uq_table_varchar unique (`varchar`), constraint pk_table primary key (`index`) diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.1.sql index 1f6356a45..4213de18e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.1.sql @@ -44,7 +44,9 @@ SET @@system_versioning_alter_history = 1; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -- apply alter tables +alter table `table` modify textfield varchar(255); alter table `table` add column `select` varchar(255); +alter table `table` add column textfield2 varchar(255); 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_parent add column assoc_id integer; @@ -108,3 +110,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index ix_table_textfield2 on `table` (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql index fc633abc6..6fd34becb 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.3.sql @@ -13,6 +13,7 @@ alter table migtest_e_basic drop index uq_migtest_e_basic_indextest4; alter table migtest_e_basic drop index uq_migtest_e_basic_indextest5; drop index ix_migtest_e_basic_indextest3 on migtest_e_basic; drop index ix_migtest_e_basic_indextest6 on migtest_e_basic; +drop index ix_table_textfield2 on `table`; -- apply changes create table `migtest_QuOtEd` ( id varchar(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.4__dropsFor_1.3.sql index abd31f737..cbc989b87 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/1.4__dropsFor_1.3.sql @@ -2,6 +2,8 @@ -- apply changes SET @@system_versioning_alter_history = 1; -- apply alter tables +CALL usp_ebean_drop_column('table', 'textfield'); +CALL usp_ebean_drop_column('table', 'textfield2'); CALL usp_ebean_drop_column('migtest_ckey_detail', 'one_key'); CALL usp_ebean_drop_column('migtest_ckey_detail', 'two_key'); CALL usp_ebean_drop_column('migtest_ckey_parent', 'assoc_id'); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/I__create_procs.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/I__create_procs.sql index d13ec2708..1dd943f65 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/I__create_procs.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/I__create_procs.sql @@ -22,7 +22,7 @@ FETCH curs INTO c_fk_name; IF done THEN LEAVE read_loop; END IF; -SET @sql = CONCAT('ALTER TABLE ', p_table_name, ' DROP FOREIGN KEY ', c_fk_name); +SET @sql = CONCAT('ALTER TABLE `', p_table_name, '` DROP FOREIGN KEY ', c_fk_name); PREPARE stmt FROM @sql; EXECUTE stmt; END LOOP; @@ -41,7 +41,7 @@ delimiter $$ CREATE PROCEDURE usp_ebean_drop_column(IN p_table_name VARCHAR(255), IN p_column_name VARCHAR(255)) BEGIN CALL usp_ebean_drop_foreign_keys(p_table_name, p_column_name); -SET @sql = CONCAT('ALTER TABLE ', p_table_name, ' DROP COLUMN ', p_column_name); +SET @sql = CONCAT('ALTER TABLE `', p_table_name, '` DROP COLUMN `', p_column_name, '`'); PREPARE stmt FROM @sql; EXECUTE stmt; END diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/idx_mariadb.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/idx_mariadb.migrations index 062f003bd..9b6cb159a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/idx_mariadb.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mariadb/idx_mariadb.migrations @@ -1,8 +1,8 @@ -1835064798, I__create_procs.sql -168258180, 1.0__initial.sql -1552926718, 1.1.sql +-1933396282, I__create_procs.sql +-2111548334, 1.0__initial.sql +-1101751768, 1.1.sql 1187950993, 1.2__dropsFor_1.1.sql --1031408459, 1.3.sql --692020559, 1.4__dropsFor_1.3.sql +-1572621686, 1.3.sql +772508824, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.0__initial.model.xml b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.0__initial.model.xml index c58d005d9..b0d93151a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.0__initial.model.xml +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.0__initial.model.xml @@ -112,6 +112,7 @@ + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.1.model.xml b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.1.model.xml index 27bfee165..1c704408c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.1.model.xml +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.1.model.xml @@ -73,8 +73,10 @@ + + @@ -103,6 +105,7 @@ + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.3.model.xml b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.3.model.xml index ca95c8f6d..8aac45e36 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.3.model.xml +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.3.model.xml @@ -61,6 +61,7 @@ + @@ -77,6 +78,8 @@ + + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.4__dropsFor_1.3.model.xml b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.4__dropsFor_1.3.model.xml index 19dce6648..a18446b1a 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.4__dropsFor_1.3.model.xml +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/model/1.4__dropsFor_1.3.model.xml @@ -15,6 +15,8 @@ + + diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.0__initial.sql index dd9c89e5c..f2eb08f85 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.0__initial.sql @@ -151,6 +151,7 @@ create table `table` ( `to` varchar(255), `varchar` varchar(255), `foreign` varchar(255), + textfield varchar(255) not null, constraint uq_table_to unique (`to`), constraint uq_table_varchar unique (`varchar`), constraint pk_table primary key (`index`) @@ -298,6 +299,7 @@ create table table_history( `to` varchar(255), `varchar` varchar(255), `foreign` varchar(255), + textfield varchar(255), sys_period_start datetime(6), sys_period_end datetime(6) ); @@ -305,12 +307,12 @@ create view table_with_history as select * from `table` union all select * from lock tables `table` write; delimiter $$ create trigger table_history_upd before update on `table` for each row begin - insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `foreign`) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`foreign`); + insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `foreign`, textfield) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`foreign`, OLD.textfield); set NEW.sys_period_start = now(6); end$$ delimiter $$ create trigger table_history_del before delete on `table` for each row begin - insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `foreign`) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`foreign`); + insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `foreign`, textfield) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`foreign`, OLD.textfield); end$$ unlock tables; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.1.sql index ea2513195..2b8461633 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.1.sql @@ -61,7 +61,9 @@ drop trigger table_history_upd; drop trigger table_history_del; drop view table_with_history; -- apply alter tables +alter table `table` modify textfield varchar(255); alter table `table` add column `select` varchar(255); +alter table `table` add column textfield2 varchar(255); 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_parent add column assoc_id integer; @@ -93,7 +95,9 @@ alter table migtest_e_history6 modify test_number2 integer; alter table migtest_e_history6_history modify test_number2 integer; alter table migtest_e_softdelete add column deleted tinyint(1) default 0 not null; alter table migtest_oto_child add column master_id bigint; +alter table table_history modify textfield varchar(255); alter table table_history add column `select` varchar(255); +alter table table_history add column textfield2 varchar(255); -- apply post alter alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); update migtest_e_basic set new_boolean_field = old_boolean; @@ -186,12 +190,12 @@ create view table_with_history as select * from `table` union all select * from lock tables `table` write; delimiter $$ create trigger table_history_upd before update on `table` for each row begin - insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `select`, `foreign`) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`select`, OLD.`foreign`); + insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `select`, `foreign`, textfield, textfield2) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`select`, OLD.`foreign`, OLD.textfield, OLD.textfield2); set NEW.sys_period_start = now(6); end$$ delimiter $$ create trigger table_history_del before delete on `table` for each row begin - insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `select`, `foreign`) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`select`, OLD.`foreign`); + insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `select`, `foreign`, textfield, textfield2) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`select`, OLD.`foreign`, OLD.textfield, OLD.textfield2); end$$ unlock tables; alter table `table` add constraint uq_table_select unique (`select`); @@ -224,3 +228,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index ix_table_textfield2 on `table` (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql index 59325f7c9..410f3e719 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.3.sql @@ -13,6 +13,7 @@ alter table migtest_e_basic drop index uq_migtest_e_basic_indextest4; alter table migtest_e_basic drop index uq_migtest_e_basic_indextest5; drop index ix_migtest_e_basic_indextest3 on migtest_e_basic; drop index ix_migtest_e_basic_indextest6 on migtest_e_basic; +drop index ix_table_textfield2 on `table`; -- apply changes create table `migtest_QuOtEd` ( id varchar(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.4__dropsFor_1.3.sql index 0cde3c7b2..f98131f6f 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/1.4__dropsFor_1.3.sql @@ -12,7 +12,12 @@ drop view migtest_e_history2_with_history; drop trigger migtest_e_history5_history_upd; drop trigger migtest_e_history5_history_del; drop view migtest_e_history5_with_history; +drop trigger table_history_upd; +drop trigger table_history_del; +drop view table_with_history; -- apply alter tables +CALL usp_ebean_drop_column('table', 'textfield'); +CALL usp_ebean_drop_column('table', 'textfield2'); CALL usp_ebean_drop_column('migtest_ckey_detail', 'one_key'); CALL usp_ebean_drop_column('migtest_ckey_detail', 'two_key'); CALL usp_ebean_drop_column('migtest_ckey_parent', 'assoc_id'); @@ -33,6 +38,8 @@ CALL usp_ebean_drop_column('migtest_e_history5', 'test_boolean'); CALL usp_ebean_drop_column('migtest_e_history5_history', 'test_boolean'); CALL usp_ebean_drop_column('migtest_e_softdelete', 'deleted'); CALL usp_ebean_drop_column('migtest_oto_child', 'master_id'); +CALL usp_ebean_drop_column('table_history', 'textfield'); +CALL usp_ebean_drop_column('table_history', 'textfield2'); -- apply post alter create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; lock tables migtest_e_history2 write; @@ -58,6 +65,18 @@ create trigger migtest_e_history5_history_del before delete on migtest_e_history insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); end$$ unlock tables; +create view table_with_history as select * from `table` union all select * from table_history; +lock tables `table` write; +delimiter $$ +create trigger table_history_upd before update on `table` for each row begin + insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `select`, `foreign`) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`select`, OLD.`foreign`); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger table_history_del before delete on `table` for each row begin + insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `select`, `foreign`) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`select`, OLD.`foreign`); +end$$ +unlock tables; drop table if exists migtest_e_user; drop table if exists migtest_mtm_c_migtest_mtm_m; drop table if exists migtest_mtm_m_migtest_mtm_c; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/I__create_procs.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/I__create_procs.sql index d13ec2708..1dd943f65 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/I__create_procs.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/I__create_procs.sql @@ -22,7 +22,7 @@ FETCH curs INTO c_fk_name; IF done THEN LEAVE read_loop; END IF; -SET @sql = CONCAT('ALTER TABLE ', p_table_name, ' DROP FOREIGN KEY ', c_fk_name); +SET @sql = CONCAT('ALTER TABLE `', p_table_name, '` DROP FOREIGN KEY ', c_fk_name); PREPARE stmt FROM @sql; EXECUTE stmt; END LOOP; @@ -41,7 +41,7 @@ delimiter $$ CREATE PROCEDURE usp_ebean_drop_column(IN p_table_name VARCHAR(255), IN p_column_name VARCHAR(255)) BEGIN CALL usp_ebean_drop_foreign_keys(p_table_name, p_column_name); -SET @sql = CONCAT('ALTER TABLE ', p_table_name, ' DROP COLUMN ', p_column_name); +SET @sql = CONCAT('ALTER TABLE `', p_table_name, '` DROP COLUMN `', p_column_name, '`'); PREPARE stmt FROM @sql; EXECUTE stmt; END diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations index 95bc6e4eb..adf927e95 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql/idx_mysql.migrations @@ -1,8 +1,8 @@ -1835064798, I__create_procs.sql -776107385, 1.0__initial.sql --1234435534, 1.1.sql +-1933396282, I__create_procs.sql +1980830787, 1.0__initial.sql +-92753611, 1.1.sql -1097227916, 1.2__dropsFor_1.1.sql --1972055805, 1.3.sql -379252952, 1.4__dropsFor_1.3.sql +1674664705, 1.3.sql +-1282113429, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.0__initial.sql index 47f10a181..b1db29fc1 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.0__initial.sql @@ -151,6 +151,7 @@ create table `table` ( `to` varchar(255), `varchar` varchar(255), `foreign` varchar(255), + textfield varchar(255) not null, constraint uq_table_to unique (`to`), constraint uq_table_varchar unique (`varchar`), constraint pk_table primary key (`index`) @@ -298,6 +299,7 @@ create table table_history( `to` varchar(255), `varchar` varchar(255), `foreign` varchar(255), + textfield varchar(255), sys_period_start datetime(6), sys_period_end datetime(6) ); @@ -305,12 +307,12 @@ create view table_with_history as select * from `table` union all select * from lock tables `table` write; delimiter $$ create trigger table_history_upd before update on `table` for each row begin - insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `foreign`) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`foreign`); + insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `foreign`, textfield) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`foreign`, OLD.textfield); set NEW.sys_period_start = now(6); end$$ delimiter $$ create trigger table_history_del before delete on `table` for each row begin - insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `foreign`) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`foreign`); + insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `foreign`, textfield) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`foreign`, OLD.textfield); end$$ unlock tables; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql index ea2513195..2b8461633 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.1.sql @@ -61,7 +61,9 @@ drop trigger table_history_upd; drop trigger table_history_del; drop view table_with_history; -- apply alter tables +alter table `table` modify textfield varchar(255); alter table `table` add column `select` varchar(255); +alter table `table` add column textfield2 varchar(255); 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_parent add column assoc_id integer; @@ -93,7 +95,9 @@ alter table migtest_e_history6 modify test_number2 integer; alter table migtest_e_history6_history modify test_number2 integer; alter table migtest_e_softdelete add column deleted tinyint(1) default 0 not null; alter table migtest_oto_child add column master_id bigint; +alter table table_history modify textfield varchar(255); alter table table_history add column `select` varchar(255); +alter table table_history add column textfield2 varchar(255); -- apply post alter alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description); update migtest_e_basic set new_boolean_field = old_boolean; @@ -186,12 +190,12 @@ create view table_with_history as select * from `table` union all select * from lock tables `table` write; delimiter $$ create trigger table_history_upd before update on `table` for each row begin - insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `select`, `foreign`) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`select`, OLD.`foreign`); + insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `select`, `foreign`, textfield, textfield2) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`select`, OLD.`foreign`, OLD.textfield, OLD.textfield2); set NEW.sys_period_start = now(6); end$$ delimiter $$ create trigger table_history_del before delete on `table` for each row begin - insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `select`, `foreign`) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`select`, OLD.`foreign`); + insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `select`, `foreign`, textfield, textfield2) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`select`, OLD.`foreign`, OLD.textfield, OLD.textfield2); end$$ unlock tables; alter table `table` add constraint uq_table_select unique (`select`); @@ -224,3 +228,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index ix_table_textfield2 on `table` (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql index 59325f7c9..410f3e719 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.3.sql @@ -13,6 +13,7 @@ alter table migtest_e_basic drop index uq_migtest_e_basic_indextest4; alter table migtest_e_basic drop index uq_migtest_e_basic_indextest5; drop index ix_migtest_e_basic_indextest3 on migtest_e_basic; drop index ix_migtest_e_basic_indextest6 on migtest_e_basic; +drop index ix_table_textfield2 on `table`; -- apply changes create table `migtest_QuOtEd` ( id varchar(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.4__dropsFor_1.3.sql index 0cde3c7b2..f98131f6f 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/1.4__dropsFor_1.3.sql @@ -12,7 +12,12 @@ drop view migtest_e_history2_with_history; drop trigger migtest_e_history5_history_upd; drop trigger migtest_e_history5_history_del; drop view migtest_e_history5_with_history; +drop trigger table_history_upd; +drop trigger table_history_del; +drop view table_with_history; -- apply alter tables +CALL usp_ebean_drop_column('table', 'textfield'); +CALL usp_ebean_drop_column('table', 'textfield2'); CALL usp_ebean_drop_column('migtest_ckey_detail', 'one_key'); CALL usp_ebean_drop_column('migtest_ckey_detail', 'two_key'); CALL usp_ebean_drop_column('migtest_ckey_parent', 'assoc_id'); @@ -33,6 +38,8 @@ CALL usp_ebean_drop_column('migtest_e_history5', 'test_boolean'); CALL usp_ebean_drop_column('migtest_e_history5_history', 'test_boolean'); CALL usp_ebean_drop_column('migtest_e_softdelete', 'deleted'); CALL usp_ebean_drop_column('migtest_oto_child', 'master_id'); +CALL usp_ebean_drop_column('table_history', 'textfield'); +CALL usp_ebean_drop_column('table_history', 'textfield2'); -- apply post alter create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; lock tables migtest_e_history2 write; @@ -58,6 +65,18 @@ create trigger migtest_e_history5_history_del before delete on migtest_e_history insert into migtest_e_history5_history (sys_period_start,sys_period_end,id, test_number) values (OLD.sys_period_start, now(6),OLD.id, OLD.test_number); end$$ unlock tables; +create view table_with_history as select * from `table` union all select * from table_history; +lock tables `table` write; +delimiter $$ +create trigger table_history_upd before update on `table` for each row begin + insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `select`, `foreign`) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`select`, OLD.`foreign`); + set NEW.sys_period_start = now(6); +end$$ +delimiter $$ +create trigger table_history_del before delete on `table` for each row begin + insert into table_history (sys_period_start,sys_period_end,`index`, `from`, `to`, `varchar`, `select`, `foreign`) values (OLD.sys_period_start, now(6),OLD.`index`, OLD.`from`, OLD.`to`, OLD.`varchar`, OLD.`select`, OLD.`foreign`); +end$$ +unlock tables; drop table if exists migtest_e_user; drop table if exists migtest_mtm_c_migtest_mtm_m; drop table if exists migtest_mtm_m_migtest_mtm_c; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/I__create_procs.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/I__create_procs.sql index d13ec2708..1dd943f65 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/I__create_procs.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/I__create_procs.sql @@ -22,7 +22,7 @@ FETCH curs INTO c_fk_name; IF done THEN LEAVE read_loop; END IF; -SET @sql = CONCAT('ALTER TABLE ', p_table_name, ' DROP FOREIGN KEY ', c_fk_name); +SET @sql = CONCAT('ALTER TABLE `', p_table_name, '` DROP FOREIGN KEY ', c_fk_name); PREPARE stmt FROM @sql; EXECUTE stmt; END LOOP; @@ -41,7 +41,7 @@ delimiter $$ CREATE PROCEDURE usp_ebean_drop_column(IN p_table_name VARCHAR(255), IN p_column_name VARCHAR(255)) BEGIN CALL usp_ebean_drop_foreign_keys(p_table_name, p_column_name); -SET @sql = CONCAT('ALTER TABLE ', p_table_name, ' DROP COLUMN ', p_column_name); +SET @sql = CONCAT('ALTER TABLE `', p_table_name, '` DROP COLUMN `', p_column_name, '`'); PREPARE stmt FROM @sql; EXECUTE stmt; END diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations index 29cc0fd02..bbf93e18d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/mysql55/idx_mysql.migrations @@ -1,8 +1,8 @@ -1835064798, I__create_procs.sql --1717521141, 1.0__initial.sql --1234435534, 1.1.sql +-1933396282, I__create_procs.sql +369577572, 1.0__initial.sql +-92753611, 1.1.sql -1097227916, 1.2__dropsFor_1.1.sql --1972055805, 1.3.sql -379252952, 1.4__dropsFor_1.3.sql +1674664705, 1.3.sql +-1282113429, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.0__initial.sql index 02cb7f494..b5d81c5bd 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.0__initial.sql @@ -156,6 +156,7 @@ create table "table" ( "to" varchar(255), "varchar" varchar(255), "foreign" varchar(255), + textfield varchar(255) not null, constraint uq_table_to unique ("to"), constraint uq_table_varchar unique ("varchar"), constraint pk_table primary key ("index") @@ -313,6 +314,7 @@ create table table_history( "to" varchar(255), "varchar" varchar(255), "foreign" varchar(255), + textfield varchar(255), sys_period_start datetime(6), sys_period_end datetime(6) ); @@ -320,13 +322,13 @@ create view table_with_history as select * from "table" union all select * from delimiter $$ create or replace trigger table_history_upd for "table" before update for each row as NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond)); - insert into table_history (sys_period_start,sys_period_end,"index", "from", "to", "varchar", "foreign") values (OLD.sys_period_start, NEW.sys_period_start,OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."foreign"); + insert into table_history (sys_period_start,sys_period_end,"index", "from", "to", "varchar", "foreign", textfield) values (OLD.sys_period_start, NEW.sys_period_start,OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."foreign", OLD.textfield); end_trigger; $$ delimiter $$ create or replace trigger table_history_del for "table" before delete for each row as - insert into table_history (sys_period_start,sys_period_end,"index", "from", "to", "varchar", "foreign") values (OLD.sys_period_start, NEW.sys_period_start,OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."foreign"); + insert into table_history (sys_period_start,sys_period_end,"index", "from", "to", "varchar", "foreign", textfield) values (OLD.sys_period_start, NEW.sys_period_start,OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."foreign", OLD.textfield); end_trigger; $$ diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.1.sql index 2261591dd..31cdd3756 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.1.sql @@ -64,7 +64,9 @@ drop trigger table_history_upd; drop trigger table_history_del; drop view table_with_history; -- apply alter tables +alter table "table" alter column textfield set null; alter table "table" add column "select" varchar(255); +alter table "table" add column textfield2 varchar(255); 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_parent add column assoc_id integer; @@ -102,7 +104,9 @@ alter table migtest_e_history6 alter column test_number2 set null; alter table migtest_e_history6_history alter column test_number2 set null; alter table migtest_e_softdelete add column deleted boolean default false not null; alter table migtest_oto_child add column master_id bigint; +alter table table_history alter column textfield set null; alter table table_history add column "select" varchar(255); +alter table table_history add column textfield2 varchar(255); -- apply post alter 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 uq_migtest_e_basic_description unique (description); @@ -208,13 +212,13 @@ create view table_with_history as select * from "table" union all select * from delimiter $$ create or replace trigger table_history_upd for "table" before update for each row as NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond)); - insert into table_history (sys_period_start,sys_period_end,"index", "from", "to", "varchar", "select", "foreign") values (OLD.sys_period_start, NEW.sys_period_start,OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign"); + insert into table_history (sys_period_start,sys_period_end,"index", "from", "to", "varchar", "select", "foreign", textfield, textfield2) values (OLD.sys_period_start, NEW.sys_period_start,OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign", OLD.textfield, OLD.textfield2); end_trigger; $$ delimiter $$ create or replace trigger table_history_del for "table" before delete for each row as - insert into table_history (sys_period_start,sys_period_end,"index", "from", "to", "varchar", "select", "foreign") values (OLD.sys_period_start, NEW.sys_period_start,OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign"); + insert into table_history (sys_period_start,sys_period_end,"index", "from", "to", "varchar", "select", "foreign", textfield, textfield2) values (OLD.sys_period_start, NEW.sys_period_start,OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign", OLD.textfield, OLD.textfield2); end_trigger; $$ @@ -248,3 +252,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index ix_table_textfield2 on "table" (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql index 53837ffc5..ca422f7c7 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.3.sql @@ -16,6 +16,7 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; drop index if exists ix_migtest_e_basic_indextest3; drop index if exists ix_migtest_e_basic_indextest6; +drop index if exists ix_table_textfield2; -- apply changes create table "migtest_QuOtEd" ( id varchar(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.4__dropsFor_1.3.sql index feeb1d7cf..257fb38bd 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/1.4__dropsFor_1.3.sql @@ -12,7 +12,12 @@ drop view migtest_e_history2_with_history; drop trigger migtest_e_history5_history_upd; drop trigger migtest_e_history5_history_del; drop view migtest_e_history5_with_history; +drop trigger table_history_upd; +drop trigger table_history_del; +drop view table_with_history; -- apply alter tables +alter table "table" drop column textfield; +alter table "table" drop column textfield2; alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; alter table migtest_ckey_parent drop column assoc_id; @@ -33,6 +38,8 @@ alter table migtest_e_history5 drop column test_boolean; alter table migtest_e_history5_history drop column test_boolean; alter table migtest_e_softdelete drop column deleted; alter table migtest_oto_child drop column master_id; +alter table table_history drop column textfield; +alter table table_history drop column textfield2; -- apply post alter create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; delimiter $$ @@ -62,6 +69,20 @@ create or replace trigger migtest_e_history5_history_del for migtest_e_history5 end_trigger; $$ +create view table_with_history as select * from "table" union all select * from table_history; +delimiter $$ +create or replace trigger table_history_upd for "table" before update for each row as + NEW.sys_period_start = greatest(current_timestamp, date_add(OLD.sys_period_start, interval 1 microsecond)); + insert into table_history (sys_period_start,sys_period_end,"index", "from", "to", "varchar", "select", "foreign") values (OLD.sys_period_start, NEW.sys_period_start,OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign"); +end_trigger; +$$ + +delimiter $$ +create or replace trigger table_history_del for "table" before delete for each row as + insert into table_history (sys_period_start,sys_period_end,"index", "from", "to", "varchar", "select", "foreign") values (OLD.sys_period_start, NEW.sys_period_start,OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign"); +end_trigger; +$$ + drop table if exists migtest_e_user; drop sequence if exists migtest_e_user_seq; drop table if exists migtest_mtm_c_migtest_mtm_m; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/idx_nuodb.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/idx_nuodb.migrations index 3a4cbeb55..1342d6508 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/idx_nuodb.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/nuodb/idx_nuodb.migrations @@ -1,7 +1,7 @@ --355978970, 1.0__initial.sql --667611059, 1.1.sql +390216918, 1.0__initial.sql +-2079708895, 1.1.sql 1530685455, 1.2__dropsFor_1.1.sql -1263834751, 1.3.sql --1189704269, 1.4__dropsFor_1.3.sql +73983167, 1.3.sql +-1118858496, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.0__initial.sql index ced9cf2cd..4b2f1f9a5 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.0__initial.sql @@ -156,6 +156,7 @@ create table "table" ( "to" varchar2(255), "varchar" varchar2(255), "foreign" varchar2(255), + textfield varchar2(255) not null, constraint uq_table_to unique ("to"), constraint uq_table_varchar unique ("varchar"), constraint pk_table primary key ("index") diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.1.sql index f67704c3e..f78c04b78 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.1.sql @@ -91,7 +91,9 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -- apply alter tables +alter table "table" modify textfield null; alter table "table" add "select" varchar2(255); +alter table "table" add textfield2 varchar2(255); alter table migtest_ckey_detail add one_key number(10); alter table migtest_ckey_detail add two_key varchar2(127); alter table migtest_ckey_parent add assoc_id number(10); @@ -164,3 +166,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index ix_table_textfield2 on "table" (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.3.sql index 14204acde..ada955aab 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.3.sql @@ -88,6 +88,7 @@ end; $$; drop index ix_migtest_e_basic_indextest3; drop index ix_migtest_e_basic_indextest6; +drop index ix_table_textfield2; -- apply changes create table "migtest_QuOtEd" ( id varchar2(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.4__dropsFor_1.3.sql index 38e77cae7..57b6f9a7e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/1.4__dropsFor_1.3.sql @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply alter tables +alter table "table" drop column textfield; +alter table "table" drop column textfield2; alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; alter table migtest_ckey_parent drop column assoc_id; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations index cf60af39b..160b8b601 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle/idx_oracle.migrations @@ -1,8 +1,8 @@ -1374133214, 1.0__initial.sql --2091161947, 1.1.sql +1757923548, 1.0__initial.sql +740264587, 1.1.sql 930172034, 1.2__dropsFor_1.1.sql --1621367223, 1.3.sql -663051206, 1.4__dropsFor_1.3.sql +-1896525025, 1.3.sql +2037899598, 1.4__dropsFor_1.3.sql 1357801733, R__oracle_only_views.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.0__initial.sql index aeb4dc5a7..bfbc238c4 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.0__initial.sql @@ -174,6 +174,7 @@ create table "table" ( "to" varchar2(255), "varchar" varchar2(255), "foreign" varchar2(255), + textfield varchar2(255) not null, constraint uq_table_to unique ("to"), constraint uq_table_varchar unique ("varchar"), constraint pk_table primary key ("index") diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql index 9088fa48b..7a24eef36 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.1.sql @@ -92,7 +92,9 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -- apply alter tables +alter table "table" modify textfield null; alter table "table" add "select" varchar2(255); +alter table "table" add textfield2 varchar2(255); alter table migtest_ckey_detail add one_key number(10); alter table migtest_ckey_detail add two_key varchar2(127); alter table migtest_ckey_parent add assoc_id number(10); @@ -165,3 +167,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index ix_table_textfield2 on "table" (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql index 97091b812..60e60243b 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.3.sql @@ -88,6 +88,7 @@ end; $$; drop index ix_migtest_e_basic_indextest3; drop index ix_migtest_e_basic_indextest6; +drop index ix_table_textfield2; -- apply changes create table "migtest_QuOtEd" ( id varchar2(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.4__dropsFor_1.3.sql index 38e77cae7..57b6f9a7e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/1.4__dropsFor_1.3.sql @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply alter tables +alter table "table" drop column textfield; +alter table "table" drop column textfield2; alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; alter table migtest_ckey_parent drop column assoc_id; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations index d50ab5194..3095da37b 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/oracle11/idx_oracle.migrations @@ -1,8 +1,8 @@ -1070168506, 1.0__initial.sql --1116696749, 1.1.sql +-1422254768, 1.0__initial.sql +-123689547, 1.1.sql 930172034, 1.2__dropsFor_1.1.sql --144959080, 1.3.sql -663051206, 1.4__dropsFor_1.3.sql +1967473644, 1.3.sql +2037899598, 1.4__dropsFor_1.3.sql 1357801733, R__oracle_only_views.sql 561281075, R__order_views.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.0__initial.sql index 1fc2b0f70..766e79bca 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.0__initial.sql @@ -156,6 +156,7 @@ create table "table" ( "to" varchar(255), "varchar" varchar(255), "foreign" varchar(255), + textfield varchar(255) not null, constraint uq_table_to unique ("to"), constraint uq_table_varchar unique ("varchar"), constraint pk_table primary key ("index") @@ -329,11 +330,11 @@ begin lowerTs = lower(OLD.sys_period); upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); if (TG_OP = 'UPDATE') then - insert into table_history (sys_period,"index", "from", "to", "varchar", "foreign") values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."foreign"); + insert into table_history (sys_period,"index", "from", "to", "varchar", "foreign", textfield) values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."foreign", OLD.textfield); NEW.sys_period = tstzrange(upperTs,null); return new; elsif (TG_OP = 'DELETE') then - insert into table_history (sys_period,"index", "from", "to", "varchar", "foreign") values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."foreign"); + insert into table_history (sys_period,"index", "from", "to", "varchar", "foreign", textfield) values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."foreign", OLD.textfield); return old; end if; end; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.1.sql index 43517b9ee..4bdf82afc 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.1.sql @@ -75,7 +75,9 @@ drop function if exists table_history_version(); drop view table_with_history; -- apply alter tables +alter table "table" alter column textfield drop not null; alter table "table" add column "select" varchar(255); +alter table "table" add column textfield2 varchar(255); 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_parent add column assoc_id integer; @@ -112,7 +114,9 @@ alter table migtest_e_history6 alter column test_number2 drop not null; alter table migtest_e_history6_history alter column test_number2 drop not null; alter table migtest_e_softdelete add column deleted boolean default false not null; alter table migtest_oto_child add column master_id bigint; +alter table table_history alter column textfield drop not null; alter table table_history add column "select" varchar(255); +alter table table_history add column textfield2 varchar(255); -- apply post alter 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 uq_migtest_e_basic_description unique (description); @@ -275,11 +279,11 @@ begin lowerTs = lower(OLD.sys_period); upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); if (TG_OP = 'UPDATE') then - insert into table_history (sys_period,"index", "from", "to", "varchar", "select", "foreign") values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign"); + insert into table_history (sys_period,"index", "from", "to", "varchar", "select", "foreign", textfield, textfield2) values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign", OLD.textfield, OLD.textfield2); NEW.sys_period = tstzrange(upperTs,null); return new; elsif (TG_OP = 'DELETE') then - insert into table_history (sys_period,"index", "from", "to", "varchar", "select", "foreign") values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign"); + insert into table_history (sys_period,"index", "from", "to", "varchar", "select", "foreign", textfield, textfield2) values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign", OLD.textfield, OLD.textfield2); return old; end if; end; @@ -319,4 +323,5 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index if not exists ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index if not exists ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index if not exists ix_table_textfield2 on "table" (textfield2); create index if not exists ix_migtest_oto_child_name on migtest_oto_child (name); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.3.sql index 585f3ffb6..e024c1aa3 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.3.sql @@ -16,6 +16,7 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; drop index if exists ix_migtest_e_basic_indextest3; drop index if exists ix_migtest_e_basic_indextest6; +drop index if exists ix_table_textfield2; -- apply changes create table "migtest_QuOtEd" ( id varchar(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.4__dropsFor_1.3.sql index 822e9f61a..abf1cd14d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/1.4__dropsFor_1.3.sql @@ -15,7 +15,13 @@ drop trigger if exists migtest_e_history5_history_upd on migtest_e_history5 casc drop function if exists migtest_e_history5_history_version(); drop view migtest_e_history5_with_history; +drop trigger if exists table_history_upd on "table" cascade; +drop function if exists table_history_version(); + +drop view table_with_history; -- apply alter tables +alter table "table" drop column textfield; +alter table "table" drop column textfield2; alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; alter table migtest_ckey_parent drop column assoc_id; @@ -35,6 +41,8 @@ alter table migtest_e_history5 drop column test_boolean; alter table migtest_e_history5_history drop column test_boolean; alter table migtest_e_softdelete drop column deleted; alter table migtest_oto_child drop column master_id; +alter table table_history drop column textfield; +alter table table_history drop column textfield2; -- apply post alter create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; create or replace function migtest_e_history2_history_version() returns trigger as $$ @@ -82,6 +90,29 @@ create trigger migtest_e_history5_history_upd before update or delete on migtest_e_history5 for each row execute procedure migtest_e_history5_history_version(); +create view table_with_history as select * from "table" union all select * from table_history; +create or replace function table_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into table_history (sys_period,"index", "from", "to", "varchar", "select", "foreign") values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign"); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into table_history (sys_period,"index", "from", "to", "varchar", "select", "foreign") values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign"); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger table_history_upd + before update or delete on "table" + for each row execute procedure table_history_version(); + drop table if exists migtest_e_user cascade; drop sequence if exists migtest_e_user_seq; drop table if exists migtest_mtm_c_migtest_mtm_m cascade; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/idx_postgres.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/idx_postgres.migrations index 1ef12b383..06ebb0b61 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/idx_postgres.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres/idx_postgres.migrations @@ -1,8 +1,8 @@ -2094204208, 1.0__initial.sql --1092950076, 1.1.sql +-769462329, 1.0__initial.sql +409812555, 1.1.sql -261111052, 1.2__dropsFor_1.1.sql -1335621453, 1.3.sql -1729345905, 1.4__dropsFor_1.3.sql +1214144459, 1.3.sql +-709144111, 1.4__dropsFor_1.3.sql 783227075, R__multi_comments.sql 561281075, R__order_views.sql 283077354, R__pg_indexes.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.0__initial.sql index a9869f95b..21fa13691 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.0__initial.sql @@ -156,6 +156,7 @@ create table "table" ( "to" varchar(255), "varchar" varchar(255), "foreign" varchar(255), + textfield varchar(255) not null, constraint uq_table_to unique ("to"), constraint uq_table_varchar unique ("varchar"), constraint pk_table primary key ("index") @@ -329,11 +330,11 @@ begin lowerTs = lower(OLD.sys_period); upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); if (TG_OP = 'UPDATE') then - insert into table_history (sys_period,"index", "from", "to", "varchar", "foreign") values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."foreign"); + insert into table_history (sys_period,"index", "from", "to", "varchar", "foreign", textfield) values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."foreign", OLD.textfield); NEW.sys_period = tstzrange(upperTs,null); return new; elsif (TG_OP = 'DELETE') then - insert into table_history (sys_period,"index", "from", "to", "varchar", "foreign") values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."foreign"); + insert into table_history (sys_period,"index", "from", "to", "varchar", "foreign", textfield) values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."foreign", OLD.textfield); return old; end if; end; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql index aaa3fd79b..4cf767c51 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.1.sql @@ -75,7 +75,9 @@ drop function if exists table_history_version(); drop view table_with_history; -- apply alter tables +alter table "table" alter column textfield drop not null; alter table "table" add column "select" varchar(255); +alter table "table" add column textfield2 varchar(255); 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_parent add column assoc_id integer; @@ -112,7 +114,9 @@ alter table migtest_e_history6 alter column test_number2 drop not null; alter table migtest_e_history6_history alter column test_number2 drop not null; alter table migtest_e_softdelete add column deleted boolean default false not null; alter table migtest_oto_child add column master_id bigint; +alter table table_history alter column textfield drop not null; alter table table_history add column "select" varchar(255); +alter table table_history add column textfield2 varchar(255); -- apply post alter 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 uq_migtest_e_basic_description unique (description); @@ -275,11 +279,11 @@ begin lowerTs = lower(OLD.sys_period); upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); if (TG_OP = 'UPDATE') then - insert into table_history (sys_period,"index", "from", "to", "varchar", "select", "foreign") values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign"); + insert into table_history (sys_period,"index", "from", "to", "varchar", "select", "foreign", textfield, textfield2) values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign", OLD.textfield, OLD.textfield2); NEW.sys_period = tstzrange(upperTs,null); return new; elsif (TG_OP = 'DELETE') then - insert into table_history (sys_period,"index", "from", "to", "varchar", "select", "foreign") values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign"); + insert into table_history (sys_period,"index", "from", "to", "varchar", "select", "foreign", textfield, textfield2) values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign", OLD.textfield, OLD.textfield2); return old; end if; end; @@ -319,4 +323,5 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index if not exists ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index if not exists ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index if not exists ix_table_textfield2 on "table" (textfield2); create index if not exists ix_migtest_oto_child_name on migtest_oto_child (name); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql index 401b5a211..eba9fb564 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.3.sql @@ -16,6 +16,7 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; drop index if exists ix_migtest_e_basic_indextest3; drop index if exists ix_migtest_e_basic_indextest6; +drop index if exists ix_table_textfield2; -- apply changes create table "migtest_QuOtEd" ( id varchar(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.4__dropsFor_1.3.sql index 822e9f61a..abf1cd14d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/1.4__dropsFor_1.3.sql @@ -15,7 +15,13 @@ drop trigger if exists migtest_e_history5_history_upd on migtest_e_history5 casc drop function if exists migtest_e_history5_history_version(); drop view migtest_e_history5_with_history; +drop trigger if exists table_history_upd on "table" cascade; +drop function if exists table_history_version(); + +drop view table_with_history; -- apply alter tables +alter table "table" drop column textfield; +alter table "table" drop column textfield2; alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; alter table migtest_ckey_parent drop column assoc_id; @@ -35,6 +41,8 @@ alter table migtest_e_history5 drop column test_boolean; alter table migtest_e_history5_history drop column test_boolean; alter table migtest_e_softdelete drop column deleted; alter table migtest_oto_child drop column master_id; +alter table table_history drop column textfield; +alter table table_history drop column textfield2; -- apply post alter create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; create or replace function migtest_e_history2_history_version() returns trigger as $$ @@ -82,6 +90,29 @@ create trigger migtest_e_history5_history_upd before update or delete on migtest_e_history5 for each row execute procedure migtest_e_history5_history_version(); +create view table_with_history as select * from "table" union all select * from table_history; +create or replace function table_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into table_history (sys_period,"index", "from", "to", "varchar", "select", "foreign") values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign"); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into table_history (sys_period,"index", "from", "to", "varchar", "select", "foreign") values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign"); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger table_history_upd + before update or delete on "table" + for each row execute procedure table_history_version(); + drop table if exists migtest_e_user cascade; drop sequence if exists migtest_e_user_seq; drop table if exists migtest_mtm_c_migtest_mtm_m cascade; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations index 8c262040d..5136723e3 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/postgres9/idx_postgres.migrations @@ -1,8 +1,8 @@ --231429368, 1.0__initial.sql -1978065929, 1.1.sql +-309942302, 1.0__initial.sql +2116598611, 1.1.sql -261111052, 1.2__dropsFor_1.1.sql --893728811, 1.3.sql -1729345905, 1.4__dropsFor_1.3.sql +-388526579, 1.3.sql +-709144111, 1.4__dropsFor_1.3.sql 783227075, R__multi_comments.sql 561281075, R__order_views.sql 283077354, R__pg_indexes.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.0__initial.sql index 6f14a9835..3d79a3500 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.0__initial.sql @@ -156,6 +156,7 @@ create table "table" ( "to" varchar(255), "varchar" varchar(255), "foreign" varchar(255), + textfield varchar(255) not null, constraint uq_table_to unique ("to"), constraint uq_table_varchar unique ("varchar"), constraint pk_table primary key ("index") diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.1.sql index 86c17934e..f6c2af545 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.1.sql @@ -46,7 +46,9 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -- apply alter tables +alter table "table" alter column textfield set null; alter table "table" add column "select" varchar(255); +alter table "table" add column textfield2 varchar(255); 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_parent add column assoc_id integer; @@ -119,3 +121,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index ix_table_textfield2 on "table" (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql index e028819d5..88a290c0f 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.3.sql @@ -16,6 +16,7 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; drop index if exists ix_migtest_e_basic_indextest3; drop index if exists ix_migtest_e_basic_indextest6; +drop index if exists ix_table_textfield2; -- apply changes create table "migtest_QuOtEd" ( id varchar(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.4__dropsFor_1.3.sql index b4087d6d6..b7d11cb4d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/1.4__dropsFor_1.3.sql @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply alter tables +alter table "table" drop column textfield; +alter table "table" drop column textfield2; alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; alter table migtest_ckey_parent drop column assoc_id; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/idx_sqlanywhere.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/idx_sqlanywhere.migrations index d402eabae..5c3f07503 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/idx_sqlanywhere.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlanywhere/idx_sqlanywhere.migrations @@ -1,6 +1,6 @@ -736698620, 1.0__initial.sql --1254905907, 1.1.sql +-951189503, 1.0__initial.sql +128425002, 1.1.sql 688811494, 1.2__dropsFor_1.1.sql --2020328769, 1.3.sql -80209848, 1.4__dropsFor_1.3.sql +-519291959, 1.3.sql +255653518, 1.4__dropsFor_1.3.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.0__initial.sql index 0c2e27345..bfd05a961 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.0__initial.sql @@ -159,6 +159,7 @@ create table "table" ( "to" varchar(255), "varchar" varchar(255), "foreign" varchar(255), + textfield varchar(255) not null, constraint uq_table_to unique ("to"), constraint uq_table_varchar unique ("varchar"), constraint pk_table primary key ("index"), diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.1.sql index 28efd29ab..3c93d203c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.1.sql @@ -51,7 +51,9 @@ update migtest_e_history2 set test_string = 'unknown' where test_string is null; -- NOTE: table has @History - special migration may be necessary update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -- apply alter tables +-- not supported: alter table "table" alter column textfield set null; alter table "table" add column "select" varchar(255); +alter table "table" add column textfield2 varchar(255); 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_parent add column assoc_id integer; @@ -105,3 +107,4 @@ create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id); create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index ix_table_textfield2 on "table" (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql index 01458d882..791293355 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.3.sql @@ -16,6 +16,7 @@ -- not supported: alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; drop index if exists ix_migtest_e_basic_indextest3; drop index if exists ix_migtest_e_basic_indextest6; +drop index if exists ix_table_textfield2; -- apply changes create table "migtest_QuOtEd" ( id varchar(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.4__dropsFor_1.3.sql index b4087d6d6..b7d11cb4d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/1.4__dropsFor_1.3.sql @@ -1,5 +1,7 @@ -- Migrationscripts for ebean unittest -- apply alter tables +alter table "table" drop column textfield; +alter table "table" drop column textfield2; alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; alter table migtest_ckey_parent drop column assoc_id; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/idx_sqlite.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/idx_sqlite.migrations index 56cae1ad7..6fa5eb1cb 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/idx_sqlite.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlite/idx_sqlite.migrations @@ -1,7 +1,7 @@ -346470730, 1.0__initial.sql -35635339, 1.1.sql +-1527127682, 1.0__initial.sql +1828386122, 1.1.sql 688811494, 1.2__dropsFor_1.1.sql -1092030960, 1.3.sql -80209848, 1.4__dropsFor_1.3.sql +536935117, 1.3.sql +255653518, 1.4__dropsFor_1.3.sql 2034589659, R__order_views_sqlite.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.0__initial.sql index 756c7bce8..b57f44881 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.0__initial.sql @@ -152,6 +152,7 @@ create table [table] ( [to] varchar(255), [varchar] varchar(255), [foreign] varchar(255), + textfield varchar(255) not null, constraint pk_table primary key ([index]) ); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql index a2de5c9f5..015546583 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.1.sql @@ -66,7 +66,9 @@ update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -- history migration goes here -- alter table [table] set (system_versioning = on (history_table=dbo.table_history)); -- apply alter tables +alter table [table] alter column textfield varchar(255); alter table [table] add [select] varchar(255); +alter table [table] add textfield2 varchar(255); alter table migtest_ckey_detail add one_key integer; alter table migtest_ckey_detail add two_key varchar(127); alter table migtest_ckey_parent add assoc_id integer; @@ -143,3 +145,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index ix_table_textfield2 on [table] (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql index 7802b1395..cdbfa5810 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.3.sql @@ -21,6 +21,7 @@ IF OBJECT_ID('uq_migtest_e_basic_indextest5', 'UQ') IS NOT NULL alter table migt IF OBJECT_ID('ck_migtest_e_enum_test_status', 'C') IS NOT NULL alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'ix_migtest_e_basic_indextest3') drop index ix_migtest_e_basic_indextest3 ON migtest_e_basic; IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'ix_migtest_e_basic_indextest6') drop index ix_migtest_e_basic_indextest6 ON migtest_e_basic; +IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('"table"','U') AND name = 'ix_table_textfield2') drop index ix_table_textfield2 ON "table"; -- apply changes create table [migtest_QuOtEd] ( id varchar(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql index 00b08667c..feeefad50 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/1.4__dropsFor_1.3.sql @@ -10,7 +10,12 @@ alter table migtest_e_history drop period for system_time; -- alter table migtest_e_history5 set (system_versioning = off (history_table=dbo.migtest_e_history5_history)); -- history migration goes here -- alter table migtest_e_history5 set (system_versioning = on (history_table=dbo.migtest_e_history5_history)); +-- alter table [table] set (system_versioning = off (history_table=dbo.table_history)); +-- history migration goes here +-- alter table [table] set (system_versioning = on (history_table=dbo.table_history)); -- apply alter tables +EXEC usp_ebean_drop_column "table", textfield; +EXEC usp_ebean_drop_column "table", textfield2; EXEC usp_ebean_drop_column migtest_ckey_detail, one_key; EXEC usp_ebean_drop_column migtest_ckey_detail, two_key; EXEC usp_ebean_drop_column migtest_ckey_parent, assoc_id; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/I__create_procs.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/I__create_procs.sql index 6f916bcc9..af5206c05 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/I__create_procs.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/I__create_procs.sql @@ -33,7 +33,7 @@ BEGIN FETCH NEXT FROM index_cursor INTO @indexName WHILE @@FETCH_STATUS = 0 BEGIN - set @sql = 'drop index ' + @indexName + ' on ' + @tableName; + set @sql = 'drop index ' + @indexName + ' on [' + @tableName + ']'; EXECUTE(@sql); FETCH NEXT FROM index_cursor INTO @indexName @@ -55,7 +55,7 @@ BEGIN join sys.columns t2 on t1.object_id = t2.default_object_id where t1.parent_object_id = OBJECT_ID(@tableName) and t2.name = @columnName; - if @tmp is not null EXEC('alter table ' + @tableName +' drop constraint ' + @tmp); + if @tmp is not null EXEC('alter table [' + @tableName +'] drop constraint ' + @tmp); END GO @@ -82,7 +82,7 @@ BEGIN FETCH NEXT FROM name_cursor INTO @constraintName WHILE @@FETCH_STATUS = 0 BEGIN - set @sql = 'alter table ' + @tableName + ' drop constraint ' + @constraintName; + set @sql = 'alter table [' + @tableName + '] drop constraint ' + @constraintName; EXECUTE(@sql); FETCH NEXT FROM name_cursor INTO @constraintName @@ -104,7 +104,7 @@ BEGIN EXEC usp_ebean_drop_default_constraint @tableName, @columnName; EXEC usp_ebean_drop_constraints @tableName, @columnName; - set @sql = 'alter table ' + @tableName + ' drop column ' + @columnName; + set @sql = 'alter table [' + @tableName + '] drop column [' + @columnName + ']'; EXECUTE(@sql); END GO diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations index d82f304dc..fb9b56a17 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver16/idx_sqlserver.migrations @@ -1,8 +1,8 @@ --2122378240, I__create_procs.sql --1324388010, 1.0__initial.sql -287498538, 1.1.sql +891357544, I__create_procs.sql +380683504, 1.0__initial.sql +1291465909, 1.1.sql -1431095657, 1.2__dropsFor_1.1.sql --2048567958, 1.3.sql --410961452, 1.4__dropsFor_1.3.sql +1335479744, 1.3.sql +-628940135, 1.4__dropsFor_1.3.sql 1607822082, R__order_views_mssql.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql index caf403e9b..e241e2ea6 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.0__initial.sql @@ -170,6 +170,7 @@ create table [table] ( [to] nvarchar(255), [varchar] nvarchar(255), [foreign] nvarchar(255), + textfield nvarchar(255) not null, constraint pk_table primary key ([index]) ); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql index e576e3db3..55dab5ea4 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.1.sql @@ -67,7 +67,9 @@ update migtest_e_history6 set test_number1 = 42 where test_number1 is null; -- history migration goes here -- alter table [table] set (system_versioning = on (history_table=dbo.table_history)); -- apply alter tables +alter table [table] alter column textfield nvarchar(255); alter table [table] add [select] nvarchar(255); +alter table [table] add textfield2 nvarchar(255); alter table migtest_ckey_detail add one_key integer; alter table migtest_ckey_detail add two_key nvarchar(127); alter table migtest_ckey_parent add assoc_id integer; @@ -144,3 +146,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index ix_table_textfield2 on [table] (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql index 055b0d489..860097c2e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.3.sql @@ -21,6 +21,7 @@ IF OBJECT_ID('uq_migtest_e_basic_indextest5', 'UQ') IS NOT NULL alter table migt IF OBJECT_ID('ck_migtest_e_enum_test_status', 'C') IS NOT NULL alter table migtest_e_enum drop constraint ck_migtest_e_enum_test_status; IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'ix_migtest_e_basic_indextest3') drop index ix_migtest_e_basic_indextest3 ON migtest_e_basic; IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('migtest_e_basic','U') AND name = 'ix_migtest_e_basic_indextest6') drop index ix_migtest_e_basic_indextest6 ON migtest_e_basic; +IF EXISTS (SELECT name FROM sys.indexes WHERE object_id = OBJECT_ID('"table"','U') AND name = 'ix_table_textfield2') drop index ix_table_textfield2 ON "table"; -- apply changes create table [migtest_QuOtEd] ( id nvarchar(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.4__dropsFor_1.3.sql index 00b08667c..feeefad50 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/1.4__dropsFor_1.3.sql @@ -10,7 +10,12 @@ alter table migtest_e_history drop period for system_time; -- alter table migtest_e_history5 set (system_versioning = off (history_table=dbo.migtest_e_history5_history)); -- history migration goes here -- alter table migtest_e_history5 set (system_versioning = on (history_table=dbo.migtest_e_history5_history)); +-- alter table [table] set (system_versioning = off (history_table=dbo.table_history)); +-- history migration goes here +-- alter table [table] set (system_versioning = on (history_table=dbo.table_history)); -- apply alter tables +EXEC usp_ebean_drop_column "table", textfield; +EXEC usp_ebean_drop_column "table", textfield2; EXEC usp_ebean_drop_column migtest_ckey_detail, one_key; EXEC usp_ebean_drop_column migtest_ckey_detail, two_key; EXEC usp_ebean_drop_column migtest_ckey_parent, assoc_id; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/I__create_procs.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/I__create_procs.sql index 6f916bcc9..af5206c05 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/I__create_procs.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/I__create_procs.sql @@ -33,7 +33,7 @@ BEGIN FETCH NEXT FROM index_cursor INTO @indexName WHILE @@FETCH_STATUS = 0 BEGIN - set @sql = 'drop index ' + @indexName + ' on ' + @tableName; + set @sql = 'drop index ' + @indexName + ' on [' + @tableName + ']'; EXECUTE(@sql); FETCH NEXT FROM index_cursor INTO @indexName @@ -55,7 +55,7 @@ BEGIN join sys.columns t2 on t1.object_id = t2.default_object_id where t1.parent_object_id = OBJECT_ID(@tableName) and t2.name = @columnName; - if @tmp is not null EXEC('alter table ' + @tableName +' drop constraint ' + @tmp); + if @tmp is not null EXEC('alter table [' + @tableName +'] drop constraint ' + @tmp); END GO @@ -82,7 +82,7 @@ BEGIN FETCH NEXT FROM name_cursor INTO @constraintName WHILE @@FETCH_STATUS = 0 BEGIN - set @sql = 'alter table ' + @tableName + ' drop constraint ' + @constraintName; + set @sql = 'alter table [' + @tableName + '] drop constraint ' + @constraintName; EXECUTE(@sql); FETCH NEXT FROM name_cursor INTO @constraintName @@ -104,7 +104,7 @@ BEGIN EXEC usp_ebean_drop_default_constraint @tableName, @columnName; EXEC usp_ebean_drop_constraints @tableName, @columnName; - set @sql = 'alter table ' + @tableName + ' drop column ' + @columnName; + set @sql = 'alter table [' + @tableName + '] drop column [' + @columnName + ']'; EXECUTE(@sql); END GO diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations index 019d940a0..edff6a17e 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/sqlserver17/idx_sqlserver.migrations @@ -1,8 +1,8 @@ --2122378240, I__create_procs.sql -2004279493, 1.0__initial.sql -1649898025, 1.1.sql +891357544, I__create_procs.sql +542129917, 1.0__initial.sql +837691787, 1.1.sql -1431095657, 1.2__dropsFor_1.1.sql -294205466, 1.3.sql --410961452, 1.4__dropsFor_1.3.sql +-545642423, 1.3.sql +-628940135, 1.4__dropsFor_1.3.sql 1607822082, R__order_views_mssql.sql diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.0__initial.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.0__initial.sql index 91c6c6fc5..c39acd1ae 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.0__initial.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.0__initial.sql @@ -156,6 +156,7 @@ create table "table" ( "to" varchar(255), "varchar" varchar(255), "foreign" varchar(255), + textfield varchar(255) not null, constraint uq_table_to unique ("to"), constraint uq_table_varchar unique ("varchar"), constraint pk_table primary key ("index") @@ -348,6 +349,7 @@ create table table_history( "to" varchar(255), "varchar" varchar(255), "foreign" varchar(255), + textfield varchar(255), sys_period tstzrange ); create view table_with_history as select * from "table" union all select * from table_history; @@ -359,11 +361,11 @@ begin lowerTs = lower(OLD.sys_period); upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); if (TG_OP = 'UPDATE') then - insert into table_history (sys_period,"index", "from", "to", "varchar", "foreign") values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."foreign"); + insert into table_history (sys_period,"index", "from", "to", "varchar", "foreign", textfield) values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."foreign", OLD.textfield); NEW.sys_period = tstzrange(upperTs,null); return new; elsif (TG_OP = 'DELETE') then - insert into table_history (sys_period,"index", "from", "to", "varchar", "foreign") values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."foreign"); + insert into table_history (sys_period,"index", "from", "to", "varchar", "foreign", textfield) values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."foreign", OLD.textfield); return old; end if; end; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.1.sql index 7d50265ea..8e13c0a20 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.1.sql @@ -70,7 +70,9 @@ drop function if exists table_history_version(); drop view table_with_history; -- apply alter tables +alter table "table" alter column textfield drop not null; alter table "table" add column "select" varchar(255); +alter table "table" add column textfield2 varchar(255); 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_parent add column assoc_id integer; @@ -107,7 +109,9 @@ alter table migtest_e_history6 alter column test_number2 drop not null; alter table migtest_e_history6_history alter column test_number2 drop not null; alter table migtest_e_softdelete add column deleted boolean default false not null; alter table migtest_oto_child add column master_id bigint; +alter table table_history alter column textfield drop not null; alter table table_history add column "select" varchar(255); +alter table table_history add column textfield2 varchar(255); -- apply post alter 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 uq_migtest_e_basic_description unique (description); @@ -274,11 +278,11 @@ begin lowerTs = lower(OLD.sys_period); upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); if (TG_OP = 'UPDATE') then - insert into table_history (sys_period,"index", "from", "to", "varchar", "select", "foreign") values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign"); + insert into table_history (sys_period,"index", "from", "to", "varchar", "select", "foreign", textfield, textfield2) values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign", OLD.textfield, OLD.textfield2); NEW.sys_period = tstzrange(upperTs,null); return new; elsif (TG_OP = 'DELETE') then - insert into table_history (sys_period,"index", "from", "to", "varchar", "select", "foreign") values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign"); + insert into table_history (sys_period,"index", "from", "to", "varchar", "select", "foreign", textfield, textfield2) values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign", OLD.textfield, OLD.textfield2); return old; end if; end; @@ -318,3 +322,4 @@ alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id fore create index if not exists ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3); create index if not exists ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6); +create index if not exists ix_table_textfield2 on "table" (textfield2); diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql index 4b04c0cbb..8665eb808 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.3.sql @@ -16,6 +16,7 @@ alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; drop index if exists ix_migtest_e_basic_indextest3; drop index if exists ix_migtest_e_basic_indextest6; +drop index if exists ix_table_textfield2; -- apply changes create table "migtest_QuOtEd" ( id varchar(255) not null, diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.4__dropsFor_1.3.sql index 822e9f61a..abf1cd14d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/1.4__dropsFor_1.3.sql @@ -15,7 +15,13 @@ drop trigger if exists migtest_e_history5_history_upd on migtest_e_history5 casc drop function if exists migtest_e_history5_history_version(); drop view migtest_e_history5_with_history; +drop trigger if exists table_history_upd on "table" cascade; +drop function if exists table_history_version(); + +drop view table_with_history; -- apply alter tables +alter table "table" drop column textfield; +alter table "table" drop column textfield2; alter table migtest_ckey_detail drop column one_key; alter table migtest_ckey_detail drop column two_key; alter table migtest_ckey_parent drop column assoc_id; @@ -35,6 +41,8 @@ alter table migtest_e_history5 drop column test_boolean; alter table migtest_e_history5_history drop column test_boolean; alter table migtest_e_softdelete drop column deleted; alter table migtest_oto_child drop column master_id; +alter table table_history drop column textfield; +alter table table_history drop column textfield2; -- apply post alter create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history; create or replace function migtest_e_history2_history_version() returns trigger as $$ @@ -82,6 +90,29 @@ create trigger migtest_e_history5_history_upd before update or delete on migtest_e_history5 for each row execute procedure migtest_e_history5_history_version(); +create view table_with_history as select * from "table" union all select * from table_history; +create or replace function table_history_version() returns trigger as $$ +declare + lowerTs timestamptz; + upperTs timestamptz; +begin + lowerTs = lower(OLD.sys_period); + upperTs = greatest(lowerTs + '1 microsecond',current_timestamp); + if (TG_OP = 'UPDATE') then + insert into table_history (sys_period,"index", "from", "to", "varchar", "select", "foreign") values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign"); + NEW.sys_period = tstzrange(upperTs,null); + return new; + elsif (TG_OP = 'DELETE') then + insert into table_history (sys_period,"index", "from", "to", "varchar", "select", "foreign") values (tstzrange(lowerTs,upperTs), OLD."index", OLD."from", OLD."to", OLD."varchar", OLD."select", OLD."foreign"); + return old; + end if; +end; +$$ LANGUAGE plpgsql; + +create trigger table_history_upd + before update or delete on "table" + for each row execute procedure table_history_version(); + drop table if exists migtest_e_user cascade; drop sequence if exists migtest_e_user_seq; drop table if exists migtest_mtm_c_migtest_mtm_m cascade; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/idx_yugabyte.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/idx_yugabyte.migrations index 0781d38af..dd232e9a8 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/idx_yugabyte.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/yugabyte/idx_yugabyte.migrations @@ -1,7 +1,7 @@ -1497343697, 1.0__initial.sql --870102763, 1.1.sql +-1409672039, 1.0__initial.sql +380200367, 1.1.sql -261111052, 1.2__dropsFor_1.1.sql --158984239, 1.3.sql -1729345905, 1.4__dropsFor_1.3.sql +-2084806674, 1.3.sql +-709144111, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql From cbd213aad375972b3c34d842bb49d731e3094100 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Mon, 5 Sep 2022 17:02:45 +1200 Subject: [PATCH 087/127] #2823 - Revert JdbcTransaction.isActive() back to be non-final method --- .../server/transaction/JdbcTransaction.java | 23 +------------------ 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java index 5d3f9c213..9fae2e21c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java @@ -424,9 +424,6 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { @Override public boolean isReadOnly() { - if (!active) { - throw new IllegalStateException(illegalStateMessage); - } try { return connection.isReadOnly(); } catch (SQLException e) { @@ -436,9 +433,6 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { @Override public void setReadOnly(boolean readOnly) { - if (!active) { - throw new IllegalStateException(illegalStateMessage); - } try { localReadOnly = readOnly; connection.setReadOnly(readOnly); @@ -459,9 +453,6 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { @Override public final void setBatchMode(boolean batchMode) { - if (!active) { - throw new IllegalStateException(illegalStateMessage); - } this.batchMode = batchMode; } @@ -472,9 +463,6 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { @Override public final void setBatchOnCascade(boolean batchMode) { - if (!active) { - throw new IllegalStateException(illegalStateMessage); - } this.batchOnCascadeMode = batchMode; } @@ -666,9 +654,6 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { */ @Override public final void flush() { - if (!active) { - throw new IllegalStateException(illegalStateMessage); - } internalBatchFlush(); } @@ -707,9 +692,6 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { */ @Override public final void setPersistenceContext(SpiPersistenceContext context) { - if (!active) { - throw new IllegalStateException(illegalStateMessage); - } this.persistenceContext = context; } @@ -776,9 +758,6 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { */ @Override public Connection getInternalConnection() { - if (!active) { - throw new IllegalStateException(illegalStateMessage); - } return connection; } @@ -1091,7 +1070,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { * Return true if the transaction is active. */ @Override - public final boolean isActive() { + public boolean isActive() { return active; } From 4218d5bd4837222d331ce04c6bd697b32345858a Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Mon, 5 Sep 2022 17:29:36 +1200 Subject: [PATCH 088/127] Bump ebean-agent to 13.9.2 (no effective change) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 3fdfe8f71..fa9ede70b 100644 --- a/pom.xml +++ b/pom.xml @@ -49,8 +49,8 @@ 13.6.0 6.3 8.2 - 13.9.1 - 13.9.1 + 13.9.2 + 13.9.2 false
From e813edae01e9eb05e3a27bcb6e71fce0b01cb196 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Mon, 5 Sep 2022 17:44:28 +1200 Subject: [PATCH 089/127] [maven-release-plugin] prepare release ebean-parent-13.9.2 --- composites/ebean-clickhouse/pom.xml | 14 ++++++++----- composites/ebean-cockroach/pom.xml | 14 ++++++++----- composites/ebean-db2/pom.xml | 14 ++++++++----- composites/ebean-h2/pom.xml | 14 ++++++++----- composites/ebean-hana/pom.xml | 14 ++++++++----- composites/ebean-mariadb/pom.xml | 14 ++++++++----- composites/ebean-mysql/pom.xml | 14 ++++++++----- composites/ebean-nuodb/pom.xml | 14 ++++++++----- composites/ebean-oracle/pom.xml | 14 ++++++++----- composites/ebean-postgres/pom.xml | 14 ++++++++----- composites/ebean-sqlite/pom.xml | 14 ++++++++----- composites/ebean-sqlserver/pom.xml | 14 ++++++++----- composites/ebean-yugabyte/pom.xml | 14 ++++++++----- composites/ebean/pom.xml | 16 +++++++++------ composites/pom.xml | 2 +- ebean-api/pom.xml | 2 +- ebean-autotune/pom.xml | 8 ++++---- ebean-bom/pom.xml | 32 ++++++++++++++--------------- ebean-core-type/pom.xml | 4 ++-- ebean-core/pom.xml | 16 +++++++-------- ebean-csv-reader/pom.xml | 8 ++++---- ebean-ddl-generator/pom.xml | 8 ++++---- ebean-externalmapping-api/pom.xml | 2 +- ebean-externalmapping-xml/pom.xml | 12 +++++------ ebean-joda-time/pom.xml | 4 ++-- ebean-postgis/pom.xml | 8 ++++---- ebean-querybean/pom.xml | 10 ++++----- ebean-redis/pom.xml | 12 +++++------ ebean-test/pom.xml | 12 +++++------ kotlin-querybean-generator/pom.xml | 10 ++++----- platforms/all/pom.xml | 32 ++++++++++++++++------------- platforms/clickhouse/pom.xml | 8 ++++++-- platforms/db2/pom.xml | 8 ++++++-- platforms/h2/pom.xml | 8 ++++++-- platforms/hana/pom.xml | 8 ++++++-- platforms/hsqldb/pom.xml | 8 ++++++-- platforms/mariadb/pom.xml | 10 ++++++--- platforms/mysql/pom.xml | 8 ++++++-- platforms/nuodb/pom.xml | 8 ++++++-- platforms/oracle/pom.xml | 8 ++++++-- platforms/pom.xml | 2 +- platforms/postgres/pom.xml | 8 ++++++-- platforms/sqlanywhere/pom.xml | 8 ++++++-- platforms/sqlite/pom.xml | 8 ++++++-- platforms/sqlserver/pom.xml | 8 ++++++-- pom.xml | 4 ++-- querybean-generator/pom.xml | 2 +- 47 files changed, 303 insertions(+), 191 deletions(-) diff --git a/composites/ebean-clickhouse/pom.xml b/composites/ebean-clickhouse/pom.xml index 57ebb759c..d428edcf5 100644 --- a/composites/ebean-clickhouse/pom.xml +++ b/composites/ebean-clickhouse/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-clickhouse @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-clickhouse - 13.9.2-SNAPSHOT + 13.9.2 + + + ebean-parent-13.9.2 + diff --git a/composites/ebean-cockroach/pom.xml b/composites/ebean-cockroach/pom.xml index 93817910a..9fff0a9dc 100644 --- a/composites/ebean-cockroach/pom.xml +++ b/composites/ebean-cockroach/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-cockroach @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-postgres - 13.9.2-SNAPSHOT + 13.9.2 + + + ebean-parent-13.9.2 + diff --git a/composites/ebean-db2/pom.xml b/composites/ebean-db2/pom.xml index 4ae0affeb..4dfb94801 100644 --- a/composites/ebean-db2/pom.xml +++ b/composites/ebean-db2/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-db2 @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-db2 - 13.9.2-SNAPSHOT + 13.9.2 + + + ebean-parent-13.9.2 + diff --git a/composites/ebean-h2/pom.xml b/composites/ebean-h2/pom.xml index 52b747f34..5583da9ca 100644 --- a/composites/ebean-h2/pom.xml +++ b/composites/ebean-h2/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-h2 @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-h2 - 13.9.2-SNAPSHOT + 13.9.2 + + + ebean-parent-13.9.2 + diff --git a/composites/ebean-hana/pom.xml b/composites/ebean-hana/pom.xml index 637c6a262..c532948ce 100644 --- a/composites/ebean-hana/pom.xml +++ b/composites/ebean-hana/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-hana @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-hana - 13.9.2-SNAPSHOT + 13.9.2 + + + ebean-parent-13.9.2 + diff --git a/composites/ebean-mariadb/pom.xml b/composites/ebean-mariadb/pom.xml index fffdc4004..2a786aef7 100644 --- a/composites/ebean-mariadb/pom.xml +++ b/composites/ebean-mariadb/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-mariadb @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-mariadb - 13.9.2-SNAPSHOT + 13.9.2 + + + ebean-parent-13.9.2 + diff --git a/composites/ebean-mysql/pom.xml b/composites/ebean-mysql/pom.xml index f178b354d..c38c0f5dd 100644 --- a/composites/ebean-mysql/pom.xml +++ b/composites/ebean-mysql/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-mysql @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-mysql - 13.9.2-SNAPSHOT + 13.9.2 + + + ebean-parent-13.9.2 + diff --git a/composites/ebean-nuodb/pom.xml b/composites/ebean-nuodb/pom.xml index 4abbe7ad1..bf1ffb5d1 100644 --- a/composites/ebean-nuodb/pom.xml +++ b/composites/ebean-nuodb/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-nuodb @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-nuodb - 13.9.2-SNAPSHOT + 13.9.2 + + + ebean-parent-13.9.2 + diff --git a/composites/ebean-oracle/pom.xml b/composites/ebean-oracle/pom.xml index 51dcde226..c8b46ef1e 100644 --- a/composites/ebean-oracle/pom.xml +++ b/composites/ebean-oracle/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-oracle @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-oracle - 13.9.2-SNAPSHOT + 13.9.2 + + + ebean-parent-13.9.2 + diff --git a/composites/ebean-postgres/pom.xml b/composites/ebean-postgres/pom.xml index 79748f8e1..0811b3297 100644 --- a/composites/ebean-postgres/pom.xml +++ b/composites/ebean-postgres/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-postgres @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-postgres - 13.9.2-SNAPSHOT + 13.9.2 + + + ebean-parent-13.9.2 + diff --git a/composites/ebean-sqlite/pom.xml b/composites/ebean-sqlite/pom.xml index ddfcbc665..9e65d819d 100644 --- a/composites/ebean-sqlite/pom.xml +++ b/composites/ebean-sqlite/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-sqlite @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-sqlite - 13.9.2-SNAPSHOT + 13.9.2 + + + ebean-parent-13.9.2 + diff --git a/composites/ebean-sqlserver/pom.xml b/composites/ebean-sqlserver/pom.xml index 67e86b116..2057f6c2f 100644 --- a/composites/ebean-sqlserver/pom.xml +++ b/composites/ebean-sqlserver/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-sqlserver @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-sqlserver - 13.9.2-SNAPSHOT + 13.9.2 + + + ebean-parent-13.9.2 + diff --git a/composites/ebean-yugabyte/pom.xml b/composites/ebean-yugabyte/pom.xml index 7a2879c5a..a5ab05468 100644 --- a/composites/ebean-yugabyte/pom.xml +++ b/composites/ebean-yugabyte/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-yugabyte @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-postgres - 13.9.2-SNAPSHOT + 13.9.2 + + + ebean-parent-13.9.2 + diff --git a/composites/ebean/pom.xml b/composites/ebean/pom.xml index 5099e2088..795ece307 100644 --- a/composites/ebean/pom.xml +++ b/composites/ebean/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean (all platforms) @@ -16,19 +16,19 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-joda-time - 13.9.2-SNAPSHOT + 13.9.2 @@ -41,14 +41,18 @@ io.ebean ebean-querybean - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-all - 13.9.2-SNAPSHOT + 13.9.2 + + + ebean-parent-13.9.2 + diff --git a/composites/pom.xml b/composites/pom.xml index 626db2d80..4ca47c66b 100644 --- a/composites/pom.xml +++ b/composites/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2-SNAPSHOT + 13.9.2 composites diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml index 987410cdb..987b22ffd 100644 --- a/ebean-api/pom.xml +++ b/ebean-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean api diff --git a/ebean-autotune/pom.xml b/ebean-autotune/pom.xml index d1207a527..75b46f99b 100644 --- a/ebean-autotune/pom.xml +++ b/ebean-autotune/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2-SNAPSHOT + 13.9.2 @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.9.2 ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 provided @@ -55,7 +55,7 @@ io.ebean ebean-platform-h2 - 13.9.2-SNAPSHOT + 13.9.2 test diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index 50cb48ad9..0a1cb495f 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean bom @@ -89,94 +89,94 @@ io.ebean ebean - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-core-type - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-joda-time - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-ddl-generator - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-externalmapping-api - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-externalmapping-xml - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-autotune - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-querybean - 13.9.2-SNAPSHOT + 13.9.2 io.ebean querybean-generator - 13.9.2-SNAPSHOT + 13.9.2 provided io.ebean kotlin-querybean-generator - 13.9.2-SNAPSHOT + 13.9.2 provided io.ebean ebean-test - 13.9.2-SNAPSHOT + 13.9.2 test io.ebean ebean-postgis - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-redis - 13.9.2-SNAPSHOT + 13.9.2 diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index 3e503d4aa..00a42ee39 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index b0dfed881..c8af25b7c 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-core @@ -15,14 +15,14 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.9.2 io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 @@ -46,13 +46,13 @@ io.ebean ebean-core-type - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-externalmapping-api - 13.9.2-SNAPSHOT + 13.9.2 @@ -143,21 +143,21 @@ io.ebean ebean-platform-h2 - 13.9.2-SNAPSHOT + 13.9.2 test io.ebean ebean-platform-postgres - 13.9.2-SNAPSHOT + 13.9.2 test io.ebean ebean-platform-sqlserver - 13.9.2-SNAPSHOT + 13.9.2 test diff --git a/ebean-csv-reader/pom.xml b/ebean-csv-reader/pom.xml index f35b928a7..d1fae816c 100644 --- a/ebean-csv-reader/pom.xml +++ b/ebean-csv-reader/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-csv-reader @@ -14,21 +14,21 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 provided io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 provided io.ebean ebean-test - 13.9.2-SNAPSHOT + 13.9.2 test diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index 1334f5f94..ce9a15e9c 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 13.9.2-SNAPSHOT + 13.9.2 provided io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 provided @@ -58,7 +58,7 @@ io.ebean ebean-platform-all - 13.9.2-SNAPSHOT + 13.9.2 test diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index 863ce60d7..ba06f6172 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 8b2becc34..912048487 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,12 +4,12 @@ ebean-parent io.ebean - 13.9.2-SNAPSHOT + 13.9.2 scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.9.2 ebean external mapping xml @@ -21,7 +21,7 @@ io.ebean ebean-externalmapping-api - 13.9.2-SNAPSHOT + 13.9.2 @@ -54,21 +54,21 @@ io.ebean ebean-platform-h2 - 13.9.2-SNAPSHOT + 13.9.2 test io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 test io.ebean ebean-ddl-generator - 13.9.2-SNAPSHOT + 13.9.2 test diff --git a/ebean-joda-time/pom.xml b/ebean-joda-time/pom.xml index eb5a70fcd..cc39af82a 100644 --- a/ebean-joda-time/pom.xml +++ b/ebean-joda-time/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.9.2-SNAPSHOT + 13.9.2 4.0.0 @@ -14,7 +14,7 @@ io.ebean ebean-core-type - 13.9.2-SNAPSHOT + 13.9.2 provided diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index dd4378bb1..fcd4c4ad3 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean postgis @@ -22,14 +22,14 @@ io.ebean ebean-platform-postgres - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 provided @@ -65,7 +65,7 @@ io.ebean ebean-test - 13.9.2-SNAPSHOT + 13.9.2 test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 70294328f..bfc85c138 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 provided @@ -63,21 +63,21 @@ io.ebean ebean-ddl-generator - 13.9.2-SNAPSHOT + 13.9.2 test io.ebean querybean-generator - 13.9.2-SNAPSHOT + 13.9.2 test io.ebean ebean-test - 13.9.2-SNAPSHOT + 13.9.2 test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index 6d4e27cac..0c78edd1f 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 provided io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 provided io.ebean ebean-querybean - 13.9.2-SNAPSHOT + 13.9.2 test io.ebean querybean-generator - 13.9.2-SNAPSHOT + 13.9.2 test io.ebean ebean-test - 13.9.2-SNAPSHOT + 13.9.2 test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 74eaaa1d4..ec2178ac3 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean test @@ -28,20 +28,20 @@ io.ebean ebean-platform-h2 - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 provided io.ebean ebean-ddl-generator - 13.9.2-SNAPSHOT + 13.9.2 @@ -105,14 +105,14 @@ io.ebean ebean-joda-time - 13.9.2-SNAPSHOT + 13.9.2 test io.ebean ebean-platform-all - 13.9.2-SNAPSHOT + 13.9.2 test diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index 0f2df51c1..63b7bd33f 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2-SNAPSHOT + 13.9.2 kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 13.9.2-SNAPSHOT + 13.9.2 test @@ -43,7 +43,7 @@ io.ebean ebean-core - 13.9.2-SNAPSHOT + 13.9.2 test @@ -64,14 +64,14 @@ io.ebean ebean-platform-h2 - 13.9.2-SNAPSHOT + 13.9.2 test io.ebean ebean-ddl-generator - 13.9.2-SNAPSHOT + 13.9.2 test diff --git a/platforms/all/pom.xml b/platforms/all/pom.xml index c6cd3e71d..f1c8273aa 100644 --- a/platforms/all/pom.xml +++ b/platforms/all/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-platform-all @@ -14,68 +14,72 @@ io.ebean ebean-platform-h2 - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-clickhouse - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-db2 - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-hana - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-hsqldb - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-mysql - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-mariadb - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-nuodb - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-oracle - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-postgres - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-sqlanywhere - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-sqlite - 13.9.2-SNAPSHOT + 13.9.2 io.ebean ebean-platform-sqlserver - 13.9.2-SNAPSHOT + 13.9.2 + + + ebean-parent-13.9.2 + diff --git a/platforms/clickhouse/pom.xml b/platforms/clickhouse/pom.xml index 3979e0790..6c06890c9 100644 --- a/platforms/clickhouse/pom.xml +++ b/platforms/clickhouse/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-platform-clickhouse @@ -14,8 +14,12 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 + + + ebean-parent-13.9.2 + diff --git a/platforms/db2/pom.xml b/platforms/db2/pom.xml index 30d1f573e..3f7d86598 100644 --- a/platforms/db2/pom.xml +++ b/platforms/db2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-platform-db2 @@ -14,8 +14,12 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 + + + ebean-parent-13.9.2 + diff --git a/platforms/h2/pom.xml b/platforms/h2/pom.xml index 44e250df3..a9afe2fc9 100644 --- a/platforms/h2/pom.xml +++ b/platforms/h2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.2-SNAPSHOT + 13.9.2 ebean-platform-h2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.9.2-SNAPSHOT + 13.9.2 @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.9.2 + HEAD ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 13.9.2 + 13.9.3-SNAPSHOT provided @@ -55,7 +55,7 @@ io.ebean ebean-platform-h2 - 13.9.2 + 13.9.3-SNAPSHOT test diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index 0a1cb495f..d8d18b0a8 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2 + 13.9.3-SNAPSHOT ebean bom @@ -89,94 +89,94 @@ io.ebean ebean - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-api - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-core - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-core-type - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-joda-time - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-ddl-generator - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-externalmapping-api - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-externalmapping-xml - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-autotune - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-querybean - 13.9.2 + 13.9.3-SNAPSHOT io.ebean querybean-generator - 13.9.2 + 13.9.3-SNAPSHOT provided io.ebean kotlin-querybean-generator - 13.9.2 + 13.9.3-SNAPSHOT provided io.ebean ebean-test - 13.9.2 + 13.9.3-SNAPSHOT test io.ebean ebean-postgis - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-redis - 13.9.2 + 13.9.3-SNAPSHOT diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index 00a42ee39..f761398ee 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2 + 13.9.3-SNAPSHOT ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 13.9.2 + 13.9.3-SNAPSHOT diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index c8af25b7c..d897a28f6 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.9.2 + 13.9.3-SNAPSHOT ebean-core @@ -15,14 +15,14 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.9.2 + HEAD io.ebean ebean-api - 13.9.2 + 13.9.3-SNAPSHOT @@ -46,13 +46,13 @@ io.ebean ebean-core-type - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-externalmapping-api - 13.9.2 + 13.9.3-SNAPSHOT @@ -143,21 +143,21 @@ io.ebean ebean-platform-h2 - 13.9.2 + 13.9.3-SNAPSHOT test io.ebean ebean-platform-postgres - 13.9.2 + 13.9.3-SNAPSHOT test io.ebean ebean-platform-sqlserver - 13.9.2 + 13.9.3-SNAPSHOT test diff --git a/ebean-csv-reader/pom.xml b/ebean-csv-reader/pom.xml index d1fae816c..1dd91c9b6 100644 --- a/ebean-csv-reader/pom.xml +++ b/ebean-csv-reader/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2 + 13.9.3-SNAPSHOT ebean-csv-reader @@ -14,21 +14,21 @@ io.ebean ebean-api - 13.9.2 + 13.9.3-SNAPSHOT provided io.ebean ebean-core - 13.9.2 + 13.9.3-SNAPSHOT provided io.ebean ebean-test - 13.9.2 + 13.9.3-SNAPSHOT test diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index ce9a15e9c..36f5d3340 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2 + 13.9.3-SNAPSHOT ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 13.9.2 + 13.9.3-SNAPSHOT provided io.ebean ebean-core - 13.9.2 + 13.9.3-SNAPSHOT provided @@ -58,7 +58,7 @@ io.ebean ebean-platform-all - 13.9.2 + 13.9.3-SNAPSHOT test diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index ba06f6172..546fd122b 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2 + 13.9.3-SNAPSHOT ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 912048487..9e965ef28 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,12 +4,12 @@ ebean-parent io.ebean - 13.9.2 + 13.9.3-SNAPSHOT scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.9.2 + HEAD ebean external mapping xml @@ -21,7 +21,7 @@ io.ebean ebean-externalmapping-api - 13.9.2 + 13.9.3-SNAPSHOT @@ -54,21 +54,21 @@ io.ebean ebean-platform-h2 - 13.9.2 + 13.9.3-SNAPSHOT test io.ebean ebean-core - 13.9.2 + 13.9.3-SNAPSHOT test io.ebean ebean-ddl-generator - 13.9.2 + 13.9.3-SNAPSHOT test diff --git a/ebean-joda-time/pom.xml b/ebean-joda-time/pom.xml index cc39af82a..769d89dc6 100644 --- a/ebean-joda-time/pom.xml +++ b/ebean-joda-time/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.9.2 + 13.9.3-SNAPSHOT 4.0.0 @@ -14,7 +14,7 @@ io.ebean ebean-core-type - 13.9.2 + 13.9.3-SNAPSHOT provided diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index fcd4c4ad3..e561b7b6b 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2 + 13.9.3-SNAPSHOT ebean postgis @@ -22,14 +22,14 @@ io.ebean ebean-platform-postgres - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-core - 13.9.2 + 13.9.3-SNAPSHOT provided @@ -65,7 +65,7 @@ io.ebean ebean-test - 13.9.2 + 13.9.3-SNAPSHOT test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index bfc85c138..174e0274a 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2 + 13.9.3-SNAPSHOT ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 13.9.2 + 13.9.3-SNAPSHOT provided @@ -63,21 +63,21 @@ io.ebean ebean-ddl-generator - 13.9.2 + 13.9.3-SNAPSHOT test io.ebean querybean-generator - 13.9.2 + 13.9.3-SNAPSHOT test io.ebean ebean-test - 13.9.2 + 13.9.3-SNAPSHOT test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index 0c78edd1f..a0f50b261 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2 + 13.9.3-SNAPSHOT ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 13.9.2 + 13.9.3-SNAPSHOT provided io.ebean ebean-core - 13.9.2 + 13.9.3-SNAPSHOT provided io.ebean ebean-querybean - 13.9.2 + 13.9.3-SNAPSHOT test io.ebean querybean-generator - 13.9.2 + 13.9.3-SNAPSHOT test io.ebean ebean-test - 13.9.2 + 13.9.3-SNAPSHOT test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index ec2178ac3..4c50ebdc2 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2 + 13.9.3-SNAPSHOT ebean test @@ -28,20 +28,20 @@ io.ebean ebean-platform-h2 - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-core - 13.9.2 + 13.9.3-SNAPSHOT provided io.ebean ebean-ddl-generator - 13.9.2 + 13.9.3-SNAPSHOT @@ -105,14 +105,14 @@ io.ebean ebean-joda-time - 13.9.2 + 13.9.3-SNAPSHOT test io.ebean ebean-platform-all - 13.9.2 + 13.9.3-SNAPSHOT test diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index 63b7bd33f..3ed0a8dca 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.2 + 13.9.3-SNAPSHOT kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 13.9.2 + 13.9.3-SNAPSHOT test @@ -43,7 +43,7 @@ io.ebean ebean-core - 13.9.2 + 13.9.3-SNAPSHOT test @@ -64,14 +64,14 @@ io.ebean ebean-platform-h2 - 13.9.2 + 13.9.3-SNAPSHOT test io.ebean ebean-ddl-generator - 13.9.2 + 13.9.3-SNAPSHOT test diff --git a/platforms/all/pom.xml b/platforms/all/pom.xml index f1c8273aa..b0bd37bb3 100644 --- a/platforms/all/pom.xml +++ b/platforms/all/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.2 + 13.9.3-SNAPSHOT ebean-platform-all @@ -14,72 +14,68 @@ io.ebean ebean-platform-h2 - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-platform-clickhouse - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-platform-db2 - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-platform-hana - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-platform-hsqldb - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-platform-mysql - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-platform-mariadb - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-platform-nuodb - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-platform-oracle - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-platform-postgres - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-platform-sqlanywhere - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-platform-sqlite - 13.9.2 + 13.9.3-SNAPSHOT io.ebean ebean-platform-sqlserver - 13.9.2 + 13.9.3-SNAPSHOT - - - ebean-parent-13.9.2 - diff --git a/platforms/clickhouse/pom.xml b/platforms/clickhouse/pom.xml index 6c06890c9..4f0a22382 100644 --- a/platforms/clickhouse/pom.xml +++ b/platforms/clickhouse/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.2 + 13.9.3-SNAPSHOT ebean-platform-clickhouse @@ -14,12 +14,8 @@ io.ebean ebean-api - 13.9.2 + 13.9.3-SNAPSHOT - - - ebean-parent-13.9.2 - diff --git a/platforms/db2/pom.xml b/platforms/db2/pom.xml index 3f7d86598..18bc780c6 100644 --- a/platforms/db2/pom.xml +++ b/platforms/db2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.2 + 13.9.3-SNAPSHOT ebean-platform-db2 @@ -14,12 +14,8 @@ io.ebean ebean-api - 13.9.2 + 13.9.3-SNAPSHOT - - - ebean-parent-13.9.2 - diff --git a/platforms/h2/pom.xml b/platforms/h2/pom.xml index a9afe2fc9..5e51d404b 100644 --- a/platforms/h2/pom.xml +++ b/platforms/h2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.2 + 13.9.3-SNAPSHOT ebean-platform-h2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.9.2 + 13.9.3-SNAPSHOT + + org.postgresql + postgresql + 42.4.1 + true + + io.avaje junit diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/PostgresHelper.java b/ebean-core-type/src/main/java/io/ebean/core/type/PostgresHelper.java similarity index 51% rename from ebean-core/src/main/java/io/ebeaninternal/server/type/PostgresHelper.java rename to ebean-core-type/src/main/java/io/ebean/core/type/PostgresHelper.java index 768c7a751..c18359704 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/PostgresHelper.java +++ b/ebean-core-type/src/main/java/io/ebean/core/type/PostgresHelper.java @@ -1,5 +1,7 @@ -package io.ebeaninternal.server.type; +package io.ebean.core.type; +import io.ebean.annotation.Platform; +import io.ebean.config.dbplatform.DatabasePlatform; import org.postgresql.util.PGobject; import java.sql.SQLException; @@ -9,12 +11,12 @@ public final class PostgresHelper { /** * The Postgres JSON DB type. */ - static final String JSON_TYPE = "json"; + public static final String JSON_TYPE = "json"; /** * The Postgres JSONB DB type. */ - static final String JSONB_TYPE = "jsonb"; + public static final String JSONB_TYPE = "jsonb"; static final String INET_TYPE = "inet"; @@ -31,4 +33,13 @@ public final class PostgresHelper { pgo.setValue(rawJson); return pgo; } + + /** + * Return true if the platform is Postgres or compatible like Yugabyte, Cockroach. + */ + public static boolean isPostgresCompatible(DatabasePlatform databasePlatform) { + return databasePlatform.isPlatform(Platform.POSTGRES) + || databasePlatform.isPlatform(Platform.YUGABYTE) + || databasePlatform.isPlatform(Platform.COCKROACH); + } } diff --git a/ebean-core-type/src/main/java/io/ebean/core/type/ScalarTypeSet.java b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarTypeSet.java new file mode 100644 index 000000000..725ebac3f --- /dev/null +++ b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarTypeSet.java @@ -0,0 +1,28 @@ +package io.ebean.core.type; + +import io.avaje.lang.Nullable; + +/** + * A ScalarType that has variations based on the mapped JDBC type (like VARCHAR, CLOB, JSON etc). + */ +public interface ScalarTypeSet { + + /** + * The property type these scalar types map to. + */ + Class type(); + + /** + * Return a default ScalarType to use when no other annotations like {@code @DbJson} are present. + */ + @Nullable + ScalarType defaultType(); + + /** + * Return the scalarType to use for the given jdbc type. + *

+ * For example VARCHAR, CLOB, JSON etc. + */ + ScalarType forType(int jdbcType); + +} diff --git a/ebean-core-type/src/main/java/io/ebean/core/type/ScalarTypeSetFactory.java b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarTypeSetFactory.java new file mode 100644 index 000000000..21d133a37 --- /dev/null +++ b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarTypeSetFactory.java @@ -0,0 +1,17 @@ +package io.ebean.core.type; + +import io.avaje.lang.Nullable; +import io.ebean.config.DatabaseConfig; + +/** + * Factory to create ScalarTypeSet. + */ +public interface ScalarTypeSetFactory { + + /** + * Create the ScalarTypeSet given the config and optional objectMapper. + */ + @Nullable + ScalarTypeSet createTypeSet(DatabaseConfig config, @Nullable Object objectMapper); + +} diff --git a/ebean-core-type/src/main/java/module-info.java b/ebean-core-type/src/main/java/module-info.java index 557d5a302..88be6d462 100644 --- a/ebean-core-type/src/main/java/module-info.java +++ b/ebean-core-type/src/main/java/module-info.java @@ -4,6 +4,7 @@ module io.ebean.core.type { requires transitive java.sql; requires transitive io.ebean.api; + requires static org.postgresql.jdbc; requires static com.fasterxml.jackson.core; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java index 5dd0af06a..e51dee906 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java @@ -2,6 +2,7 @@ package io.ebeaninternal.server.persist; import io.ebean.config.dbplatform.DbPlatformType; import io.ebean.core.type.DataReader; +import io.ebean.core.type.PostgresHelper; import io.ebean.core.type.ScalarType; import io.ebeaninternal.api.BindParams; import io.ebeaninternal.api.CoreLog; 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 bc644954e..b3a5d99bd 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 @@ -1,6 +1,5 @@ package io.ebeaninternal.server.type; -import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import io.ebean.annotation.*; import io.ebean.config.DatabaseConfig; @@ -9,9 +8,7 @@ import io.ebean.config.PlatformConfig; import io.ebean.config.ScalarTypeConverter; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.config.dbplatform.DbPlatformType; -import io.ebean.core.type.DocPropertyType; -import io.ebean.core.type.ExtraTypeFactory; -import io.ebean.core.type.ScalarType; +import io.ebean.core.type.*; import io.ebean.types.Cidr; import io.ebean.types.Inet; import io.ebean.util.AnnotationUtil; @@ -51,6 +48,7 @@ public final class DefaultTypeManager implements TypeManager { private static final System.Logger log = CoreLog.internal; + private final Map, ScalarTypeSet> typeSets = new HashMap<>(); private final ConcurrentHashMap, ScalarType> typeMap; private final ConcurrentHashMap> nativeMap; private final ConcurrentHashMap> logicalMap; @@ -71,28 +69,7 @@ public final class DefaultTypeManager implements TypeManager { private final EnumType defaultEnumType; private final DatabasePlatform databasePlatform; - // OPTIONAL ScalarTypes registered if Jackson/JsonNode is in the classpath - /** - * Jackson's JsonNode storage to Clob. - */ - private ScalarType jsonNodeClob; - /** - * Jackson's JsonNode storage to Blob. - */ - private ScalarType jsonNodeBlob; - /** - * Jackson's JsonNode storage to Varchar. - */ - private ScalarType jsonNodeVarchar; - /** - * Jackson's JsonNode storage to Postgres JSON or Clob. - */ - private ScalarType jsonNodeJson; - /** - * Jackson's JsonNode storage to Postgres JSONB or Clob. - */ - private ScalarType jsonNodeJsonb; private final PlatformArrayTypeFactory arrayTypeListFactory; private final PlatformArrayTypeFactory arrayTypeSetFactory; @@ -120,7 +97,6 @@ public final class DefaultTypeManager implements TypeManager { initialiseStandard(config); initialiseJavaTimeTypes(config); - initialiseJacksonTypes(); loadTypesFromProviders(config, objectMapper); loadGeoTypeBinder(config); @@ -160,16 +136,21 @@ public final class DefaultTypeManager implements TypeManager { * Load custom scalar types registered via ExtraTypeFactory and ServiceLoader. */ private void loadTypesFromProviders(DatabaseConfig config, Object objectMapper) { - ServiceLoader factories = ServiceLoader.load(ExtraTypeFactory.class); - Iterator iterator = factories.iterator(); - if (iterator.hasNext()) { - // use the cacheFactory (via classpath service loader) - ExtraTypeFactory plugin = iterator.next(); - List> types = plugin.createTypes(config, objectMapper); - for (ScalarType type : types) { + for (ExtraTypeFactory plugin : ServiceLoader.load(ExtraTypeFactory.class)) { + for (ScalarType type : plugin.createTypes(config, objectMapper)) { add(type); } } + for (ScalarTypeSetFactory factory : ServiceLoader.load(ScalarTypeSetFactory.class)) { + ScalarTypeSet typeSet = factory.createTypeSet(config, objectMapper); + if (typeSet != null) { + typeSets.put(typeSet.type(), typeSet); + ScalarType defaultType = typeSet.defaultType(); + if (defaultType != null) { + typeMap.put(typeSet.type(), defaultType); + } + } + } } private boolean isPostgresCompatible(DatabasePlatform databasePlatform) { @@ -350,19 +331,9 @@ public final class DefaultTypeManager implements TypeManager { } } if (objectMapperPresent && prop.getMutationDetection() == MutationDetection.DEFAULT) { - if (type.equals(JsonNode.class)) { - switch (dbType) { - case Types.VARCHAR: - return jsonNodeVarchar; - case Types.BLOB: - return jsonNodeBlob; - case Types.CLOB: - return jsonNodeClob; - case DbPlatformType.JSONB: - return jsonNodeJsonb; - default: - return jsonNodeJson; - } + ScalarTypeSet typeSet = typeSets.get(type); + if (typeSet != null) { + return typeSet.forType(dbType); } } return createJsonObjectMapperType(prop, dbType, DocPropertyType.OBJECT); @@ -709,25 +680,6 @@ public final class DefaultTypeManager implements TypeManager { } } - /** - * Add support for Jackson's JsonNode mapping to Clob, Blob, Varchar, JSON and JSONB. - */ - private void initialiseJacksonTypes() { - if (objectMapper != null) { - ObjectMapper mapper = (ObjectMapper) objectMapper; - jsonNodeClob = new ScalarTypeJsonNode.Clob(mapper); - jsonNodeBlob = new ScalarTypeJsonNode.Blob(mapper); - jsonNodeVarchar = new ScalarTypeJsonNode.Varchar(mapper); - jsonNodeJson = jsonNodeClob; // Default for non-Postgres databases - jsonNodeJsonb = jsonNodeClob; // Default for non-Postgres databases - if (postgres) { - jsonNodeJson = new ScalarTypeJsonNodePostgres.JSON(mapper); - jsonNodeJsonb = new ScalarTypeJsonNodePostgres.JSONB(mapper); - } - // add as default mapping for JsonNode (when not annotated with @DbJson etc) - typeMap.put(JsonNode.class, jsonNodeJson); - } - } private void initialiseJavaTimeTypes(DatabaseConfig config) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCidr.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCidr.java index e355c2936..7cc2238e7 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCidr.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeCidr.java @@ -2,6 +2,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.dbplatform.ExtraDbTypes; import io.ebean.core.type.DataBinder; +import io.ebean.core.type.PostgresHelper; import io.ebean.core.type.ScalarTypeBaseVarchar; import io.ebean.types.Cidr; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInet.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInet.java index 40f52aca6..828e42a64 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInet.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInet.java @@ -2,6 +2,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.dbplatform.ExtraDbTypes; import io.ebean.core.type.DataBinder; +import io.ebean.core.type.PostgresHelper; import io.ebean.core.type.ScalarTypeBaseVarchar; import io.ebean.types.Inet; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInetAddressPostgres.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInetAddressPostgres.java index a09e7cfb0..fadcf3038 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInetAddressPostgres.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeInetAddressPostgres.java @@ -2,6 +2,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.dbplatform.ExtraDbTypes; import io.ebean.core.type.DataBinder; +import io.ebean.core.type.PostgresHelper; import io.ebean.core.type.ScalarTypeBaseVarchar; import io.ebean.text.TextException; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonList.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonList.java index 74b23c799..e37ff8cb6 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonList.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonList.java @@ -3,10 +3,7 @@ package io.ebeaninternal.server.type; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import io.ebean.config.dbplatform.DbPlatformType; -import io.ebean.core.type.DataBinder; -import io.ebean.core.type.DataReader; -import io.ebean.core.type.DocPropertyType; -import io.ebean.core.type.ScalarType; +import io.ebean.core.type.*; import io.ebean.text.TextException; import io.ebean.text.json.EJson; import io.ebeaninternal.json.ModifyAwareList; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonMapPostgres.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonMapPostgres.java index ae33fa0e4..612048447 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonMapPostgres.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonMapPostgres.java @@ -2,6 +2,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.dbplatform.DbPlatformType; import io.ebean.core.type.DataBinder; +import io.ebean.core.type.PostgresHelper; import java.sql.SQLException; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonSet.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonSet.java index 334e86417..0ae3248a4 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonSet.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonSet.java @@ -3,10 +3,7 @@ package io.ebeaninternal.server.type; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import io.ebean.config.dbplatform.DbPlatformType; -import io.ebean.core.type.DataBinder; -import io.ebean.core.type.DataReader; -import io.ebean.core.type.DocPropertyType; -import io.ebean.core.type.ScalarType; +import io.ebean.core.type.*; import io.ebean.text.TextException; import io.ebean.text.json.EJson; import io.ebeaninternal.json.ModifyAwareSet; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonString.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonString.java index 51fb54d4b..aa69300ed 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonString.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonString.java @@ -3,6 +3,7 @@ package io.ebeaninternal.server.type; import io.ebean.config.dbplatform.DbPlatformType; import io.ebean.config.dbplatform.ExtraDbTypes; import io.ebean.core.type.DataBinder; +import io.ebean.core.type.PostgresHelper; import io.ebean.core.type.ScalarType; import java.sql.SQLException; 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 25034e409..84ceac12b 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.ebean.core.type.PostgresHelper; import io.ebeaninternal.server.deploy.meta.DeployBeanProperty; final class TypeJsonManager { diff --git a/ebean-core/src/main/java/module-info.java b/ebean-core/src/main/java/module-info.java index ee9ba85ea..58a3438c9 100644 --- a/ebean-core/src/main/java/module-info.java +++ b/ebean-core/src/main/java/module-info.java @@ -8,6 +8,7 @@ module io.ebean.core { uses io.ebean.config.dbplatform.DatabasePlatformProvider; uses io.ebean.datasource.DataSourceAlertFactory; uses io.ebean.core.type.ExtraTypeFactory; + uses io.ebean.core.type.ScalarTypeSetFactory; uses io.ebeanservice.docstore.api.DocStoreFactory; uses io.ebean.migration.auto.AutoMigrationRunner; uses io.avaje.classpath.scanner.ClassPathScannerFactory; diff --git a/ebean-json-node/pom.xml b/ebean-json-node/pom.xml new file mode 100644 index 000000000..dfefb9b9f --- /dev/null +++ b/ebean-json-node/pom.xml @@ -0,0 +1,52 @@ + + + 4.0.0 + + ebean-parent + io.ebean + 13.9.3-SNAPSHOT + + + ebean-json-node + + + 19 + 19 + UTF-8 + + + + + + + io.ebean + ebean-core-type + 13.9.3-SNAPSHOT + provided + + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + provided + + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + provided + + + + io.avaje + junit + 1.1 + test + + + + diff --git a/ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/JsonNodeSet.java b/ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/JsonNodeSet.java new file mode 100644 index 000000000..c932d5339 --- /dev/null +++ b/ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/JsonNodeSet.java @@ -0,0 +1,51 @@ +package io.ebean.jackson.jsonnode; + +import com.fasterxml.jackson.databind.JsonNode; +import io.ebean.config.dbplatform.DbPlatformType; +import io.ebean.core.type.ScalarType; +import io.ebean.core.type.ScalarTypeSet; + +import java.sql.Types; + +class JsonNodeSet implements ScalarTypeSet { + + final ScalarType varchar; + final ScalarType clob; + final ScalarType blob; + final ScalarType jsonb; + final ScalarType json; + + JsonNodeSet(ScalarType varchar, ScalarType clob, ScalarType blob, ScalarType jsonb, ScalarType json) { + this.varchar = varchar; + this.clob = clob; + this.blob = blob; + this.jsonb = jsonb; + this.json = json; + } + + @Override + public Class type() { + return JsonNode.class; + } + + @Override + public ScalarType defaultType() { + return json; + } + + @Override + public ScalarType forType(int dbType) { + switch (dbType) { + case Types.VARCHAR: + return varchar; + case Types.BLOB: + return blob; + case Types.CLOB: + return clob; + case DbPlatformType.JSONB: + return jsonb; + default: + return json; + } + } +} diff --git a/ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/JsonNodeTypeFactory.java b/ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/JsonNodeTypeFactory.java new file mode 100644 index 000000000..af8f198fe --- /dev/null +++ b/ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/JsonNodeTypeFactory.java @@ -0,0 +1,31 @@ +package io.ebean.jackson.jsonnode; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.ebean.config.DatabaseConfig; +import io.ebean.core.type.PostgresHelper; +import io.ebean.core.type.ScalarType; +import io.ebean.core.type.ScalarTypeSet; +import io.ebean.core.type.ScalarTypeSetFactory; + +public class JsonNodeTypeFactory implements ScalarTypeSetFactory { + + @Override + public ScalarTypeSet createTypeSet(DatabaseConfig config, Object objectMapper) { + if (objectMapper == null) { + return null; + } + + ObjectMapper mapper = (ObjectMapper) objectMapper; + var varchar = new ScalarTypeJsonNode.Varchar(mapper); + var clob = new ScalarTypeJsonNode.Clob(mapper); + var blob = new ScalarTypeJsonNode.Blob(mapper); + ScalarType json = clob; // Default for non-Postgres databases + ScalarType jsonb = clob; // Default for non-Postgres databases + if (PostgresHelper.isPostgresCompatible(config.getDatabasePlatform())) { + json = new ScalarTypeJsonNodePostgres.JSON(mapper); + jsonb = new ScalarTypeJsonNodePostgres.JSONB(mapper); + } + return new JsonNodeSet(varchar, clob, blob, jsonb, json); + } +} diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonNode.java b/ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/ScalarTypeJsonNode.java similarity index 95% rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonNode.java rename to ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/ScalarTypeJsonNode.java index 0c7959038..ca9859bde 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonNode.java +++ b/ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/ScalarTypeJsonNode.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.type; +package io.ebean.jackson.jsonnode; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; @@ -11,11 +11,7 @@ import io.ebean.core.type.ScalarTypeBase; import io.ebean.text.TextException; import io.ebean.util.IOUtils; -import java.io.DataInput; -import java.io.DataOutput; -import java.io.IOException; -import java.io.InputStream; -import java.io.Reader; +import java.io.*; import java.nio.charset.StandardCharsets; import java.sql.SQLException; import java.sql.Types; @@ -182,7 +178,8 @@ abstract class ScalarTypeJsonNode extends ScalarTypeBase { if (value == null) { dataOutput.writeBoolean(false); } else { - ScalarHelp.writeUTF(dataOutput, format(value)); + dataOutput.writeBoolean(true); + dataOutput.writeUTF(format(value)); } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonNodePostgres.java b/ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/ScalarTypeJsonNodePostgres.java similarity index 94% rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonNodePostgres.java rename to ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/ScalarTypeJsonNodePostgres.java index b23252367..c78a69b2b 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonNodePostgres.java +++ b/ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/ScalarTypeJsonNodePostgres.java @@ -1,9 +1,10 @@ -package io.ebeaninternal.server.type; +package io.ebean.jackson.jsonnode; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import io.ebean.config.dbplatform.DbPlatformType; import io.ebean.core.type.DataBinder; +import io.ebean.core.type.PostgresHelper; import java.sql.SQLException; diff --git a/ebean-json-node/src/main/java/module-info.java b/ebean-json-node/src/main/java/module-info.java new file mode 100644 index 000000000..ae48a30fb --- /dev/null +++ b/ebean-json-node/src/main/java/module-info.java @@ -0,0 +1,10 @@ +import io.ebean.jackson.jsonnode.JsonNodeTypeFactory; + +module io.ebean.json.node { + + requires io.ebean.core.type; + requires com.fasterxml.jackson.core; + requires com.fasterxml.jackson.databind; + + provides io.ebean.core.type.ScalarTypeSetFactory with JsonNodeTypeFactory; +} diff --git a/ebean-json-node/src/main/resources/META-INF/services/io.ebean.core.type.ScalarTypeSetFactory b/ebean-json-node/src/main/resources/META-INF/services/io.ebean.core.type.ScalarTypeSetFactory new file mode 100644 index 000000000..3ed48464a --- /dev/null +++ b/ebean-json-node/src/main/resources/META-INF/services/io.ebean.core.type.ScalarTypeSetFactory @@ -0,0 +1 @@ +io.ebean.jackson.jsonnode.JsonNodeTypeFactory diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 4c50ebdc2..9e334b365 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -109,6 +109,13 @@ test + + io.ebean + ebean-json-node + 13.9.3-SNAPSHOT + test + + io.ebean ebean-platform-all diff --git a/pom.xml b/pom.xml index 15d12f281..f2c505822 100644 --- a/pom.xml +++ b/pom.xml @@ -91,6 +91,7 @@ composites ebean-joda-time ebean-csv-reader + ebean-json-node From edddc935dfbfb9e228c4d25da3e17b52ae96f259 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 7 Sep 2022 22:38:09 +1200 Subject: [PATCH 094/127] Update DefaultTypeManager to reuse PostgresHelper.isPostgresCompatible() --- .../server/type/DefaultTypeManager.java | 17 +++++------------ 1 file changed, 5 insertions(+), 12 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 b3a5d99bd..babd896d9 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 @@ -37,6 +37,7 @@ import java.time.*; import java.util.*; import java.util.concurrent.ConcurrentHashMap; +import static io.ebean.core.type.PostgresHelper.isPostgresCompatible; import static java.lang.System.Logger.Level.*; /** @@ -69,8 +70,6 @@ public final class DefaultTypeManager implements TypeManager { private final EnumType defaultEnumType; private final DatabasePlatform databasePlatform; - - private final PlatformArrayTypeFactory arrayTypeListFactory; private final PlatformArrayTypeFactory arrayTypeSetFactory; private GeoTypeBinder geoTypeBinder; @@ -153,12 +152,6 @@ public final class DefaultTypeManager implements TypeManager { } } - private boolean isPostgresCompatible(DatabasePlatform databasePlatform) { - return databasePlatform.isPlatform(Platform.POSTGRES) - || databasePlatform.isPlatform(Platform.YUGABYTE) - || databasePlatform.isPlatform(Platform.COCKROACH); - } - private boolean hstoreSupport() { return databasePlatform.isPlatform(Platform.POSTGRES); } @@ -194,10 +187,10 @@ public final class DefaultTypeManager implements TypeManager { @Override public ScalarType getScalarType(Type propertyType, Class propertyClass) { if (propertyType instanceof ParameterizedType) { - ParameterizedType pt = (ParameterizedType)propertyType; + ParameterizedType pt = (ParameterizedType) propertyType; Type rawType = pt.getRawType(); if (List.class == rawType || Set.class == rawType) { - return getArrayScalarType((Class)rawType, propertyType, true); + return getArrayScalarType((Class) rawType, propertyType, true); } } return getScalarType(propertyClass); @@ -241,7 +234,7 @@ public final class DefaultTypeManager implements TypeManager { return found; } // second step - loop through interfaces of this type - for (Class iface: parent.getInterfaces()) { + for (Class iface : parent.getInterfaces()) { found = checkInheritedTypes(iface); if (found != null && found != ScalarTypeNotFound.INSTANCE) { typeMap.put(type, found); // store type for next lookup @@ -349,7 +342,7 @@ public final class DefaultTypeManager implements TypeManager { private DocPropertyType getDocType(Type genericType) { if (genericType instanceof Class) { - ScalarType found = getScalarType((Class)genericType); + ScalarType found = getScalarType((Class) genericType); if (found != null) { return found.docType(); } From aeb4b8ed25f5cc8446f6d6cdc8ee5b1d6f439bda Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 7 Sep 2022 22:41:56 +1200 Subject: [PATCH 095/127] Refactor TypeManager - remove unnecessary add() method from interface allowing it to be private --- .../io/ebeaninternal/server/type/DefaultTypeManager.java | 3 +-- .../main/java/io/ebeaninternal/server/type/TypeManager.java | 5 ----- 2 files changed, 1 insertion(+), 7 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 babd896d9..75b2e5622 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 @@ -159,8 +159,7 @@ public final class DefaultTypeManager implements TypeManager { /** * Register a custom ScalarType. */ - @Override - public void add(ScalarType scalarType) { + private void add(ScalarType scalarType) { typeMap.put(scalarType.type(), scalarType); logAdd(scalarType); } 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 746dce154..0c9206149 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 @@ -11,11 +11,6 @@ import java.lang.reflect.Type; */ public interface TypeManager { - /** - * Register a ScalarType with the system. - */ - void add(ScalarType scalarType); - /** * Return the scalar type for the given logical type. */ From 27beab2980b05017477a46c87c70493c8e9a9826 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 7 Sep 2022 22:53:15 +1200 Subject: [PATCH 096/127] Refactor internal TypeManager change/improve its method names --- .../server/deploy/BeanDescriptorManager.java | 6 +- .../deploy/parse/AnnotationAssocManys.java | 6 +- .../server/deploy/parse/AnnotationFields.java | 2 +- .../deploy/parse/DeployCreateProperties.java | 4 +- .../server/deploy/parse/DeployUtil.java | 12 +-- .../server/dto/DtoMetaConstructor.java | 2 +- .../server/dto/DtoMetaProperty.java | 2 +- .../server/json/DJsonScalar.java | 2 +- .../ebeaninternal/server/persist/Binder.java | 4 +- .../server/type/DefaultTypeManager.java | 83 +++++++++---------- .../server/type/TypeManager.java | 23 +++-- .../server/type/DefaultTypeManagerTest.java | 26 +++--- .../server/type/TestTypeManager.java | 26 +++--- 13 files changed, 98 insertions(+), 100 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java index 9293d9d2c..db5430566 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java @@ -184,12 +184,12 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy @Override public ScalarType scalarType(String cast) { - return typeManager.getScalarType(cast); + return typeManager.type(cast); } @Override public ScalarType scalarType(int jdbcType) { - return typeManager.getScalarType(jdbcType); + return typeManager.type(jdbcType); } /** @@ -884,7 +884,7 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy private void makeOrderColumn(DeployBeanPropertyAssocMany oneToMany) { DeployBeanDescriptor targetDesc = targetDescriptor(oneToMany); DeployOrderColumn orderColumn = oneToMany.getOrderColumn(); - final ScalarType scalarType = typeManager.getScalarType(Integer.class); + final ScalarType scalarType = typeManager.type(Integer.class); DeployBeanProperty orderProperty = new DeployBeanProperty(targetDesc, Integer.class, scalarType, null); orderProperty.setName(DeployOrderColumn.LOGICAL_NAME); orderProperty.setDbColumn(orderColumn.getName()); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java index 736602695..538d7c715 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java @@ -222,7 +222,7 @@ final class AnnotationAssocManys extends AnnotationAssoc { dbKeyColumn = mapKeyColumn.name(); } - ScalarType keyScalarType = util.getTypeManager().getScalarType(prop.getMapKeyType()); + ScalarType keyScalarType = util.getTypeManager().type(prop.getMapKeyType()); DeployBeanProperty keyProp = new DeployBeanProperty(elementDescriptor, elementType, keyScalarType, null); setElementProperty(keyProp, "key", dbKeyColumn, sortOrder++); @@ -234,10 +234,10 @@ final class AnnotationAssocManys extends AnnotationAssoc { } } - ScalarType valueScalarType = util.getTypeManager().getScalarType(elementType); + ScalarType valueScalarType = util.getTypeManager().type(elementType); if (valueScalarType == null && elementType.isEnum()) { Class> enumClass = (Class>)elementType; - valueScalarType = util.getTypeManager().createEnumScalarType(enumClass, EnumType.STRING); + valueScalarType = util.getTypeManager().enumType(enumClass, EnumType.STRING); } boolean scalar = true; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java index abedce6e4..7111dbfac 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java @@ -427,7 +427,7 @@ final class AnnotationFields extends AnnotationParser { private ScalarTypeBytesBase getDbEncryptType(DeployBeanProperty prop) { int dbType = prop.isLob() ? Types.BLOB : Types.VARBINARY; - return (ScalarTypeBytesBase) util.getTypeManager().getScalarType(dbType); + return (ScalarTypeBytesBase) util.getTypeManager().type(dbType); } private DataEncryptSupport createDataEncryptSupport(DeployBeanProperty prop) { 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 cab048376..e8466ebae 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 @@ -108,7 +108,7 @@ public final class DeployCreateProperties { @SuppressWarnings({"unchecked"}) private DeployBeanProperty createManyType(DeployBeanDescriptor desc, Class targetType, ManyType manyType) { try { - ScalarType scalarType = typeManager.getScalarType(targetType); + ScalarType scalarType = typeManager.type(targetType); if (scalarType != null) { return new DeployBeanPropertySimpleCollection(desc, targetType, manyType); } @@ -141,7 +141,7 @@ public final class DeployCreateProperties { if (propertyType.isEnum() || propertyType.isPrimitive()) { return new DeployBeanProperty(desc, propertyType, null, null); } - ScalarType scalarType = typeManager.getScalarType(propertyType); + ScalarType scalarType = typeManager.type(propertyType); if (scalarType != null) { return new DeployBeanProperty(desc, propertyType, scalarType, null); } 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 c20c0ad86..df0705f65 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 @@ -102,7 +102,7 @@ public final class DeployUtil { try { Class> enumClass = (Class>) enumType; EnumType type = enumerated != null ? enumerated.value() : null; - ScalarType scalarType = typeManager.createEnumScalarType(enumClass, type); + ScalarType scalarType = typeManager.enumType(enumClass, type); prop.setScalarType(scalarType); prop.setDbType(scalarType.jdbcType()); } catch (IllegalStateException e) { @@ -137,7 +137,7 @@ public final class DeployUtil { // set via annotations Class propType = property.getPropertyType(); try { - ScalarType scalarType = typeManager.getScalarType(propType, property.getDbType()); + ScalarType scalarType = typeManager.type(propType, property.getDbType()); if (scalarType != null || property.isTransient()) { return scalarType; } @@ -155,7 +155,7 @@ public final class DeployUtil { * Map to Postgres HSTORE type (with fallback to JSON storage in VARCHAR). */ void setDbMap(DeployBeanProperty prop, DbMap dbMap) { - ScalarType scalarType = typeManager.getDbMapScalarType(); + ScalarType scalarType = typeManager.dbMapType(); int dbType = scalarType.jdbcType(); prop.setDbType(dbType); prop.setScalarType(scalarType); @@ -172,7 +172,7 @@ public final class DeployUtil { */ void setDbArray(DeployBeanProperty prop, DbArray dbArray) { Class type = prop.getPropertyType(); - ScalarType scalarType = typeManager.getArrayScalarType(type, prop.getGenericType(), prop.isNullable()); + ScalarType scalarType = typeManager.dbArrayType(type, prop.getGenericType(), prop.isNullable()); if (scalarType == null) { throw new RuntimeException("No ScalarType for @DbArray type for " + prop.getFullBeanName()); } @@ -204,7 +204,7 @@ public final class DeployUtil { private void setDbJsonType(DeployBeanProperty prop, int dbType, int dbLength, MutationDetection mutationDetection) { prop.setDbType(dbType); prop.setMutationDetection(mutationDetection); - ScalarType scalarType = typeManager.getJsonScalarType(prop, dbType, dbLength); + ScalarType scalarType = typeManager.dbJsonType(prop, dbType, dbLength); if (scalarType == null) { throw new RuntimeException("No ScalarType for JSON property " + prop + " dbType:" + dbType); } @@ -248,7 +248,7 @@ public final class DeployUtil { // this also sets the lob flag on DeployBeanProperty int lobType = isClobType(type) ? dbCLOBType : dbBLOBType; - scalarType = typeManager.getScalarType(type, lobType); + scalarType = typeManager.type(type, lobType); if (scalarType == null) { // this should never occur actually throw new RuntimeException("No ScalarType for LOB type " + type + " dbType:" + lobType); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaConstructor.java b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaConstructor.java index efd7c97d2..04f213ef0 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaConstructor.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/dto/DtoMetaConstructor.java @@ -21,7 +21,7 @@ final class DtoMetaConstructor { this.types = constructor.getParameterTypes(); this.scalarTypes = new ScalarType[types.length]; for (int i = 0; i < types.length; i++) { - scalarTypes[i] = typeManager.getScalarType(types[i]); + scalarTypes[i] = typeManager.type(types[i]); } this.handle = LOOKUP.findConstructor(someClass, typeFor(types)); } 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 b73500434..846c559ed 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 @@ -25,7 +25,7 @@ final class DtoMetaProperty implements DtoReadSet { this.name = name; if (writeMethod != null) { this.setter = lookupMethodHandle(dtoType, writeMethod); - this.scalarType = typeManager.getScalarType(propertyType(writeMethod), propertyClass(writeMethod)); + this.scalarType = typeManager.type(propertyType(writeMethod), propertyClass(writeMethod)); } else { this.scalarType = null; this.setter = null; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/json/DJsonScalar.java b/ebean-core/src/main/java/io/ebeaninternal/server/json/DJsonScalar.java index 19607be79..cd3420773 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/json/DJsonScalar.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/json/DJsonScalar.java @@ -36,7 +36,7 @@ public final class DJsonScalar { gen.writeRaw(']'); } else { - ScalarType scalarType = typeManager.getScalarType(value.getClass()); + ScalarType scalarType = typeManager.type(value.getClass()); if (scalarType == null) { throw new IllegalArgumentException("unhandled type " + value.getClass()); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java index e51dee906..008163c30 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/Binder.java @@ -38,7 +38,7 @@ public final class Binder { public Binder(TypeManager typeManager, SpiLogManager logManager, int asOfBindCount, boolean asOfStandardsBased, DbExpressionHandler dbExpressionHandler, DataTimeZone dataTimeZone, MultiValueBind multiValueBind) { this.typeManager = typeManager; - this.geoTypeBinder = typeManager.getGeoTypeBinder(); + this.geoTypeBinder = typeManager.geoTypeBinder(); this.asOfBindCount = asOfBindCount; this.asOfStandardsBased = asOfStandardsBased; this.dbExpressionHandler = dbExpressionHandler; @@ -154,7 +154,7 @@ public final class Binder { } public ScalarType getScalarType(Class clazz) { - ScalarType type = typeManager.getScalarType(clazz); + ScalarType type = typeManager.type(clazz); if (type == null) { throw new PersistenceException("No ScalarType registered for " + clazz); } 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 75b2e5622..29685ea99 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 @@ -171,7 +171,7 @@ public final class DefaultTypeManager implements TypeManager { } @Override - public ScalarType getScalarType(String cast) { + public ScalarType type(String cast) { return logicalMap.get(cast); } @@ -179,27 +179,27 @@ public final class DefaultTypeManager implements TypeManager { * Return the ScalarType for the given jdbc type as per java.sql.Types. */ @Override - public ScalarType getScalarType(int jdbcType) { + public ScalarType type(int jdbcType) { return nativeMap.get(jdbcType); } @Override - public ScalarType getScalarType(Type propertyType, Class propertyClass) { + public ScalarType type(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, propertyType, true); + return dbArrayType((Class) rawType, propertyType, true); } } - return getScalarType(propertyClass); + return type(propertyClass); } /** * This can return null if no matching ScalarType is found. */ @Override - public ScalarType getScalarType(Class type) { + public ScalarType type(Class type) { ScalarType found = typeMap.get(type); if (found == null) { if (type.getName().equals("org.joda.time.LocalTime")) { @@ -247,37 +247,37 @@ public final class DefaultTypeManager implements TypeManager { } @Override - public GeoTypeBinder getGeoTypeBinder() { + public GeoTypeBinder geoTypeBinder() { return geoTypeBinder; } @Override - public ScalarType getDbMapScalarType() { + public ScalarType dbMapType() { return hstoreSupport() ? hstoreType : ScalarTypeJsonMap.typeFor(false, Types.VARCHAR, false); } @Override - public ScalarType getArrayScalarType(Class type, Type genericType, boolean nullable) { - Type valueType = getValueType(genericType); + public ScalarType dbArrayType(Class type, Type genericType, boolean nullable) { + Type valueType = valueType(genericType); if (type.equals(List.class)) { - return getArrayScalarTypeList(valueType, nullable); + return dbArrayTypeList(valueType, nullable); } else if (type.equals(Set.class)) { - return getArrayScalarTypeSet(valueType, nullable); + return dbArrayTypeSet(valueType, nullable); } else { throw new IllegalStateException("@DbArray does not support type " + type); } } - private ScalarType getArrayScalarTypeSet(Type valueType, boolean nullable) { + private ScalarType dbArrayTypeSet(Type valueType, boolean nullable) { if (isEnumType(valueType)) { - return arrayTypeSetFactory.typeForEnum(createEnumScalarType(asEnumClass(valueType), null), nullable); + return arrayTypeSetFactory.typeForEnum(enumType(asEnumClass(valueType), null), nullable); } return arrayTypeSetFactory.typeFor(valueType, nullable); } - private ScalarType getArrayScalarTypeList(Type valueType, boolean nullable) { + private ScalarType dbArrayTypeList(Type valueType, boolean nullable) { if (isEnumType(valueType)) { - return arrayTypeListFactory.typeForEnum(createEnumScalarType(asEnumClass(valueType), null), nullable); + return arrayTypeListFactory.typeForEnum(enumType(asEnumClass(valueType), null), nullable); } return arrayTypeListFactory.typeFor(valueType, nullable); } @@ -291,7 +291,7 @@ public final class DefaultTypeManager implements TypeManager { } @Override - public ScalarType getJsonScalarType(DeployBeanProperty prop, int dbType, int dbLength) { + public ScalarType dbJsonType(DeployBeanProperty prop, int dbType, int dbLength) { Class type = prop.getPropertyType(); Type genericType = prop.getGenericType(); boolean hasJacksonAnnotations = objectMapperPresent && checkJacksonAnnotations(prop); @@ -300,7 +300,7 @@ public final class DefaultTypeManager implements TypeManager { return ScalarTypeJsonString.typeFor(postgres, dbType); } if (type.equals(List.class)) { - DocPropertyType docType = getDocType(genericType); + DocPropertyType docType = docType(genericType); if (!hasJacksonAnnotations && isValueTypeSimple(genericType)) { return ScalarTypeJsonList.typeFor(postgres, dbType, docType, prop.isNullable(), jsonManager.keepSource(prop)); } else { @@ -308,7 +308,7 @@ public final class DefaultTypeManager implements TypeManager { } } if (type.equals(Set.class)) { - DocPropertyType docType = getDocType(genericType); + DocPropertyType docType = docType(genericType); if (!hasJacksonAnnotations && isValueTypeSimple(genericType)) { return ScalarTypeJsonSet.typeFor(postgres, dbType, docType, prop.isNullable(), jsonManager.keepSource(prop)); } else { @@ -339,9 +339,9 @@ public final class DefaultTypeManager implements TypeManager { return prop.getMetaAnnotation(com.fasterxml.jackson.annotation.JacksonAnnotation.class) != null; } - private DocPropertyType getDocType(Type genericType) { + private DocPropertyType docType(Type genericType) { if (genericType instanceof Class) { - ScalarType found = getScalarType((Class) genericType); + ScalarType found = type((Class) genericType); if (found != null) { return found.docType(); } @@ -357,7 +357,7 @@ public final class DefaultTypeManager implements TypeManager { return String.class.equals(typeArg) || Long.class.equals(typeArg); } - private Type getValueType(Type collectionType) { + private Type valueType(Type collectionType) { return TypeReflectHelper.getValueType(collectionType); } @@ -384,7 +384,7 @@ public final class DefaultTypeManager implements TypeManager { * different jdbcTypes in a single system. */ @Override - public ScalarType getScalarType(Class type, int jdbcType) { + public ScalarType type(Class type, int jdbcType) { // File is a special Lob so check for that first if (File.class.equals(type)) { return fileType; @@ -393,13 +393,13 @@ public final class DefaultTypeManager implements TypeManager { // check for Clob, LongVarchar etc ... // the reason being that String maps to multiple jdbc types // varchar, clob, longVarchar. - ScalarType scalarType = getLobTypes(jdbcType); + ScalarType scalarType = lobTypes(jdbcType); if (scalarType != null) { // it is a specific Lob type... return scalarType; } - scalarType = getScalarType(type); + scalarType = type(type); if (scalarType != null) { if (jdbcType == 0 || scalarType.jdbcType() == jdbcType) { // matching type @@ -425,8 +425,8 @@ public final class DefaultTypeManager implements TypeManager { * types - like String - Varchar, LongVarchar, Clob. For this reason I check * for the specific Lob types first before looking for a matching type. */ - private ScalarType getLobTypes(int jdbcType) { - return getScalarType(jdbcType); + private ScalarType lobTypes(int jdbcType) { + return type(jdbcType); } /** @@ -470,7 +470,7 @@ public final class DefaultTypeManager implements TypeManager { *

* Return null if the EnumValue annotations are not present/used. */ - private ScalarTypeEnum createEnumScalarType2(Class enumType) { + private ScalarTypeEnum enumTypeEnumValue(Class enumType) { boolean integerType = true; Map nameValueMap = new LinkedHashMap<>(); for (Field field : enumType.getDeclaredFields()) { @@ -499,8 +499,8 @@ public final class DefaultTypeManager implements TypeManager { * much shorter codes used in the DB. */ @Override - public ScalarType createEnumScalarType(Class> enumType, EnumType type) { - ScalarType scalarType = getScalarType(enumType); + public ScalarType enumType(Class> enumType, EnumType type) { + ScalarType scalarType = type(enumType); if (scalarType instanceof ScalarTypeWrapper) { // no override or further mapping required return scalarType; @@ -512,16 +512,16 @@ public final class DefaultTypeManager implements TypeManager { } return scalarEnum; } - scalarEnum = createEnumScalarTypePerExtentions(enumType); + scalarEnum = enumTypePerExtensions(enumType); if (scalarEnum == null) { // use JPA normal Enum type (without mapping) - scalarEnum = createEnumScalarTypePerSpec(enumType, type); + scalarEnum = enumTypePerSpec(enumType, type); } add(scalarEnum); return scalarEnum; } - private ScalarTypeEnum createEnumScalarTypePerSpec(Class enumType, EnumType type) { + private ScalarTypeEnum enumTypePerSpec(Class enumType, EnumType type) { if (type == null) { if (defaultEnumType == EnumType.ORDINAL) { return new ScalarTypeEnumStandard.OrdinalEnum(enumType); @@ -535,16 +535,16 @@ public final class DefaultTypeManager implements TypeManager { } } - private ScalarTypeEnum createEnumScalarTypePerExtentions(Class> enumType) { + private ScalarTypeEnum enumTypePerExtensions(Class> enumType) { for (Method method : enumType.getMethods()) { DbEnumValue dbValue = AnnotationUtil.get(method, DbEnumValue.class); if (dbValue != null) { boolean integerValues = DbEnumType.INTEGER == dbValue.storage(); - return createEnumScalarTypeDbValue(enumType, method, integerValues, dbValue.length(), dbValue.withConstraint()); + return enumTypeDbValue(enumType, method, integerValues, dbValue.length(), dbValue.withConstraint()); } } // look for EnumValue annotations instead - return createEnumScalarType2(enumType); + return enumTypeEnumValue(enumType); } /** @@ -552,7 +552,7 @@ public final class DefaultTypeManager implements TypeManager { *

* Return null if the EnumValue annotations are not present/used. */ - private ScalarTypeEnum createEnumScalarTypeDbValue(Class> enumType, Method method, boolean integerType, int length, boolean withConstraint) { + private ScalarTypeEnum enumTypeDbValue(Class> enumType, Method method, boolean integerType, int length, boolean withConstraint) { Map nameValueMap = new LinkedHashMap<>(); for (Enum enumConstant : enumType.getEnumConstants()) { try { @@ -634,7 +634,7 @@ public final class DefaultTypeManager implements TypeManager { } Class logicalType = paramTypes[0]; Class persistType = paramTypes[1]; - ScalarType wrappedType = getScalarType(persistType); + ScalarType wrappedType = type(persistType); if (wrappedType == null) { throw new IllegalStateException("Could not find ScalarType for: " + paramTypes[1]); } @@ -658,7 +658,7 @@ public final class DefaultTypeManager implements TypeManager { } Class logicalType = paramTypes[0]; Class persistType = paramTypes[1]; - ScalarType wrappedType = getScalarType(persistType); + ScalarType wrappedType = type(persistType); if (wrappedType == null) { throw new IllegalStateException("Could not find ScalarType for: " + paramTypes[1]); } @@ -674,8 +674,7 @@ public final class DefaultTypeManager implements TypeManager { private void initialiseJavaTimeTypes(DatabaseConfig config) { - - ZoneId zoneId = getZoneId(config); + ZoneId zoneId = zoneId(config); typeMap.put(java.nio.file.Path.class, new ScalarTypePath()); addType(java.time.Period.class, new ScalarTypePeriod()); @@ -702,7 +701,7 @@ public final class DefaultTypeManager implements TypeManager { addType(Duration.class, (durationNanos) ? new ScalarTypeDurationWithNanos() : new ScalarTypeDuration()); } - private ZoneId getZoneId(DatabaseConfig config) { + private ZoneId zoneId(DatabaseConfig config) { final String dataTimeZone = config.getDataTimeZone(); return (dataTimeZone == null) ? ZoneOffset.systemDefault() : TimeZone.getTimeZone(dataTimeZone).toZoneId(); } 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 0c9206149..e683b43e6 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 @@ -14,39 +14,38 @@ public interface TypeManager { /** * Return the scalar type for the given logical type. */ - ScalarType getScalarType(String cast); + ScalarType type(String cast); /** * Return the ScalarType for a given jdbc type. * * @param jdbcType as per java.sql.Types */ - ScalarType getScalarType(int jdbcType); + ScalarType type(int jdbcType); /** * Return the ScalarType for a given logical type. */ - ScalarType getScalarType(Class type); + ScalarType type(Class type); /** * For java.util.Date and java.util.Calendar additionally pass the jdbc type * that you would like the ScalarType to map to. This is because these types * can map to different java.sql.Types depending on the property. */ - ScalarType getScalarType(Class type, int jdbcType); + ScalarType type(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); + ScalarType type(Type propertyType, Class type); /** - * Create a ScalarType for an Enum using a mapping (rather than JPA Ordinal - * or String which has limitations). + * Create a ScalarType for an Enum using a mapping (rather than JPA Ordinal or String which has limitations). */ - ScalarType createEnumScalarType(Class> enumType, EnumType enumerated); + ScalarType enumType(Class> enumType, EnumType enumerated); /** * Return the ScalarType used to handle JSON content. @@ -54,20 +53,20 @@ public interface TypeManager { * Note that type expected to be JsonNode or Map. *

*/ - ScalarType getJsonScalarType(DeployBeanProperty prop, int dbType, int dbLength); + ScalarType dbJsonType(DeployBeanProperty prop, int dbType, int dbLength); /** * Return the ScalarType used to handle DB ARRAY. */ - ScalarType getArrayScalarType(Class type, Type genericType, boolean nullable); + ScalarType dbArrayType(Class type, Type genericType, boolean nullable); /** * Return the ScalarType used to handle HSTORE (Map). */ - ScalarType getDbMapScalarType(); + ScalarType dbMapType(); /** * Return the Geometry type binder if provided. */ - GeoTypeBinder getGeoTypeBinder(); + GeoTypeBinder geoTypeBinder(); } diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/DefaultTypeManagerTest.java b/ebean-core/src/test/java/io/ebeaninternal/server/type/DefaultTypeManagerTest.java index bf5d7a3df..b3bdc17db 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/type/DefaultTypeManagerTest.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/type/DefaultTypeManagerTest.java @@ -46,14 +46,14 @@ public class DefaultTypeManagerTest { public void enumDayMonth_builtIn_overrideAsString() { DefaultTypeManager typeManager = create(); - ScalarType type = typeManager.createEnumScalarType(Month.class, null); + ScalarType type = typeManager.enumType(Month.class, null); assertThat(type).isInstanceOf(ScalarTypeEnumWithMapping.class).as("built in type"); // mapped explicitly as JPA EnumType.STRING - type = typeManager.createEnumScalarType(Month.class, EnumType.STRING); + type = typeManager.enumType(Month.class, EnumType.STRING); assertThat(type).isInstanceOf(ScalarTypeEnumStandard.StringEnum.class).as("override built in type"); try { - typeManager.createEnumScalarType(Month.class, EnumType.ORDINAL); + typeManager.enumType(Month.class, EnumType.ORDINAL); assertThat(true).isFalse().as("never get here"); } catch (IllegalStateException e) { @@ -66,10 +66,10 @@ public class DefaultTypeManagerTest { DefaultTypeManager typeManager = create(); // mapped explicitly as JPA EnumType.STRING - ScalarType type = typeManager.createEnumScalarType(Month.class, EnumType.ORDINAL); + ScalarType type = typeManager.enumType(Month.class, EnumType.ORDINAL); assertThat(type).isInstanceOf(ScalarTypeEnumStandard.OrdinalEnum.class).as("override built in type"); try { - typeManager.createEnumScalarType(Month.class, EnumType.STRING); + typeManager.enumType(Month.class, EnumType.STRING); assertThat(true).isFalse().as("never get here"); } catch (IllegalStateException e) { assertThat(e.getMessage()).contains("It is mapped using 2 different modes when only one is supported"); @@ -80,14 +80,14 @@ public class DefaultTypeManagerTest { public void enumDayOfWeek_builtIn_overrideAsString() { DefaultTypeManager typeManager = create(); - ScalarType type = typeManager.createEnumScalarType(DayOfWeek.class, null); + ScalarType type = typeManager.enumType(DayOfWeek.class, null); assertThat(type).isInstanceOf(ScalarTypeEnumWithMapping.class).as("built in type"); // mapped explicitly as JPA EnumType.STRING - type = typeManager.createEnumScalarType(DayOfWeek.class, EnumType.STRING); + type = typeManager.enumType(DayOfWeek.class, EnumType.STRING); assertThat(type).isInstanceOf(ScalarTypeEnumStandard.StringEnum.class).as("override built in type"); try { - typeManager.createEnumScalarType(DayOfWeek.class, EnumType.ORDINAL); + typeManager.enumType(DayOfWeek.class, EnumType.ORDINAL); assertThat(true).isFalse().as("never get here"); } catch (IllegalStateException e) { assertThat(e.getMessage()).contains("It is mapped using 2 different modes when only one is supported"); @@ -99,10 +99,10 @@ public class DefaultTypeManagerTest { DefaultTypeManager typeManager = create(); // mapped explicitly as JPA EnumType.STRING - ScalarType type = typeManager.createEnumScalarType(DayOfWeek.class, EnumType.ORDINAL); + ScalarType type = typeManager.enumType(DayOfWeek.class, EnumType.ORDINAL); assertThat(type).isInstanceOf(ScalarTypeEnumStandard.OrdinalEnum.class).as("override built in type"); try { - typeManager.createEnumScalarType(DayOfWeek.class, EnumType.STRING); + typeManager.enumType(DayOfWeek.class, EnumType.STRING); assertThat(true).isFalse().as("never get here"); } catch (IllegalStateException e) { assertThat(e.getMessage()).contains("It is mapped using 2 different modes when only one is supported"); @@ -113,19 +113,19 @@ public class DefaultTypeManagerTest { public void createEnumScalarTypePerExtentions() { DefaultTypeManager typeManager = create(); - ScalarType type = typeManager.createEnumScalarType(VarcharEnum.class, EnumType.ORDINAL); + ScalarType type = typeManager.enumType(VarcharEnum.class, EnumType.ORDINAL); assertThat(type).isInstanceOf(ScalarTypeEnumWithMapping.class); // withConstraint false assertThat(((ScalarTypeEnumWithMapping) type).getDbCheckConstraintValues()).isNull(); - type = typeManager.createEnumScalarType(IntEnum.class, EnumType.ORDINAL); + type = typeManager.enumType(IntEnum.class, EnumType.ORDINAL); assertThat(type).isInstanceOf(ScalarTypeEnumWithMapping.class); ScalarTypeEnumWithMapping enumWithMapping = (ScalarTypeEnumWithMapping) type; // withConstraint true assertThat(enumWithMapping.getDbCheckConstraintValues()).hasSize(3); assertThat(enumWithMapping.getDbCheckConstraintValues()).contains("100", "101", "102"); - type = typeManager.createEnumScalarType(Car.Size.class, EnumType.ORDINAL); + type = typeManager.enumType(Car.Size.class, EnumType.ORDINAL); assertThat(type).isInstanceOf(ScalarTypeEnumWithMapping.class); enumWithMapping = (ScalarTypeEnumWithMapping) type; // withConstraint true diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/TestTypeManager.java b/ebean-core/src/test/java/io/ebeaninternal/server/type/TestTypeManager.java index 342a02b5f..f99991ebd 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/type/TestTypeManager.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/type/TestTypeManager.java @@ -31,7 +31,7 @@ class TestTypeManager extends BaseTest { void testEnumWithSubclasses() throws SQLException { DefaultTypeManager typeManager = createTypeManager(); - ScalarType type = typeManager.createEnumScalarType(MyEnum.class, null); + ScalarType type = typeManager.enumType(MyEnum.class, null); DataReader reader = mock(DataReader.class); when(reader.getString()).thenReturn("A"); @@ -44,17 +44,17 @@ class TestTypeManager extends BaseTest { val = type.read(reader); assertThat(val).isEqualTo(MyEnum.Cval); - ScalarType typeGeneral = typeManager.getScalarType(MyEnum.class); + ScalarType typeGeneral = typeManager.type(MyEnum.class); assertThat(typeGeneral).isNotNull(); - ScalarType typeB = typeManager.getScalarType(MyEnum.Bval.getClass()); + ScalarType typeB = typeManager.type(MyEnum.Bval.getClass()); assertThat(typeB).isNotNull(); - ScalarType typeA = typeManager.getScalarType(MyEnum.Aval.getClass()); + ScalarType typeA = typeManager.type(MyEnum.Aval.getClass()); assertThat(typeA).isNotNull(); - ScalarType typeC = typeManager.getScalarType(MyEnum.Cval.getClass()); + ScalarType typeC = typeManager.type(MyEnum.Cval.getClass()); assertThat(typeC).isNotNull(); try { - typeManager.createEnumScalarType(MyEnum.class, EnumType.STRING); + typeManager.enumType(MyEnum.class, EnumType.STRING); fail("never get here"); } catch (IllegalStateException e) { assertThat(e.getMessage()).contains("It is mapped using 2 different modes when only one is supported"); @@ -65,7 +65,7 @@ class TestTypeManager extends BaseTest { void testEnumWithChar() throws SQLException { DefaultTypeManager typeManager = createTypeManager(); - ScalarType dayOfWeekType = typeManager.createEnumScalarType(MyDayOfWeek.class, null); + ScalarType dayOfWeekType = typeManager.enumType(MyDayOfWeek.class, null); DataReader reader = mock(DataReader.class); when(reader.getString()).thenReturn("MONDAY "); Object val = dayOfWeekType.read(reader); @@ -88,7 +88,7 @@ class TestTypeManager extends BaseTest { assertThat(val).isEqualTo(MyDayOfWeek.FRIDAY); try { - typeManager.createEnumScalarType(MyDayOfWeek.class, EnumType.ORDINAL); + typeManager.enumType(MyDayOfWeek.class, EnumType.ORDINAL); fail("never get here"); } catch (IllegalStateException e) { assertThat(e.getMessage()).contains("It is mapped using 2 different modes when only one is supported"); @@ -99,7 +99,7 @@ class TestTypeManager extends BaseTest { void test() { DefaultTypeManager typeManager = createTypeManager(); - ScalarType scalarType = typeManager.getScalarType(Money.class); + ScalarType scalarType = typeManager.type(Money.class); assertEquals(Types.DECIMAL, scalarType.jdbcType()); assertFalse(scalarType.jdbcNative()); assertEquals(Money.class, scalarType.type()); @@ -108,15 +108,15 @@ class TestTypeManager extends BaseTest { @Test void testWithConfig() { DefaultTypeManager typeManager1 = createTypeManager(); - ScalarType type1 = typeManager1.createEnumScalarType(MySex.class, null); + ScalarType type1 = typeManager1.enumType(MySex.class, null); assertThat(type1).isInstanceOf(ScalarTypeEnumStandard.OrdinalEnum.class); // DefaultTypeManager typeManager2 = createTypeManagerDefaultEnumTypeString(); - ScalarType type2 = typeManager2.createEnumScalarType(MySex.class, null); + ScalarType type2 = typeManager2.enumType(MySex.class, null); assertThat(type2).isInstanceOf(ScalarTypeEnumStandard.StringEnum.class); // DefaultTypeManager typeManager3 = createTypeManagerDefaultEnumTypeString(); - ScalarType type3 = typeManager3.createEnumScalarType(MySex.class, EnumType.ORDINAL); + ScalarType type3 = typeManager3.enumType(MySex.class, EnumType.ORDINAL); assertThat(type3).isInstanceOf(ScalarTypeEnumStandard.OrdinalEnum.class); } @@ -144,7 +144,7 @@ class TestTypeManager extends BaseTest { @Test void testCalendar() { DefaultTypeManager typeManager = createTypeManager(); - ScalarType typeB = typeManager.getScalarType(GregorianCalendar.class); + ScalarType typeB = typeManager.type(GregorianCalendar.class); assertThat(typeB).isInstanceOf(ScalarTypeCalendar.class); } From cba3d24df129bc235bac69c0319720242121fa13 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 7 Sep 2022 22:56:43 +1200 Subject: [PATCH 097/127] Refactor DeployUtil rename methods (change/improve method names) --- .../server/deploy/BeanDescriptorManager.java | 2 +- .../deploy/parse/AnnotationAssocManys.java | 6 +++--- .../server/deploy/parse/AnnotationBase.java | 4 ++-- .../server/deploy/parse/AnnotationFields.java | 6 +++--- .../server/deploy/parse/DeployUtil.java | 16 ++++++++-------- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java index db5430566..5f2792f6c 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java @@ -145,7 +145,7 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy this.dbIdentity = config.getDatabasePlatform().dbIdentity(); this.deplyInherit = config.getDeployInherit(); this.deployUtil = config.getDeployUtil(); - this.typeManager = deployUtil.getTypeManager(); + this.typeManager = deployUtil.typeManager(); this.beanManagerFactory = new BeanManagerFactory(config.getDatabasePlatform()); this.beanLifecycleAdapterFactory = new BeanLifecycleAdapterFactory(this.config); this.persistControllerManager = new PersistControllerManager(bootupClasses); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java index 538d7c715..0d29c3ba4 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationAssocManys.java @@ -222,7 +222,7 @@ final class AnnotationAssocManys extends AnnotationAssoc { dbKeyColumn = mapKeyColumn.name(); } - ScalarType keyScalarType = util.getTypeManager().type(prop.getMapKeyType()); + ScalarType keyScalarType = util.typeManager().type(prop.getMapKeyType()); DeployBeanProperty keyProp = new DeployBeanProperty(elementDescriptor, elementType, keyScalarType, null); setElementProperty(keyProp, "key", dbKeyColumn, sortOrder++); @@ -234,10 +234,10 @@ final class AnnotationAssocManys extends AnnotationAssoc { } } - ScalarType valueScalarType = util.getTypeManager().type(elementType); + ScalarType valueScalarType = util.typeManager().type(elementType); if (valueScalarType == null && elementType.isEnum()) { Class> enumClass = (Class>)elementType; - valueScalarType = util.getTypeManager().enumType(enumClass, EnumType.STRING); + valueScalarType = util.typeManager().enumType(enumClass, EnumType.STRING); } boolean scalar = true; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationBase.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationBase.java index 1d182c6a6..35179b876 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationBase.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationBase.java @@ -52,9 +52,9 @@ abstract class AnnotationBase { AnnotationBase(DeployUtil util) { this.util = util; - this.databasePlatform = util.getDbPlatform(); + this.databasePlatform = util.dbPlatform(); this.platform = databasePlatform.platform(); - this.namingConvention = util.getNamingConvention(); + this.namingConvention = util.namingConvention(); } /** diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java index 7111dbfac..b2b0a4dd7 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java @@ -301,7 +301,7 @@ final class AnnotationFields extends AnnotationParser { private void initEncrypt(DeployBeanProperty prop) { if (!prop.isTransient()) { - EncryptDeploy encryptDeploy = util.getEncryptDeploy(info.getDescriptor().getBaseTableFull(), prop.getDbColumn()); + EncryptDeploy encryptDeploy = util.encryptDeploy(info.getDescriptor().getBaseTableFull(), prop.getDbColumn()); if (encryptDeploy == null || encryptDeploy.getMode() == Mode.MODE_ANNOTATION) { Encrypted encrypted = get(prop, Encrypted.class); if (encrypted != null) { @@ -398,7 +398,7 @@ final class AnnotationFields extends AnnotationParser { return; } if (dbEncString) { - DbEncrypt dbEncrypt = util.getDbPlatform().dbEncrypt(); + DbEncrypt dbEncrypt = util.dbPlatform().dbEncrypt(); if (dbEncrypt != null) { // check if we have a DB encryption function for this type int jdbcType = prop.getScalarType().jdbcType(); @@ -427,7 +427,7 @@ final class AnnotationFields extends AnnotationParser { private ScalarTypeBytesBase getDbEncryptType(DeployBeanProperty prop) { int dbType = prop.isLob() ? Types.BLOB : Types.VARBINARY; - return (ScalarTypeBytesBase) util.getTypeManager().type(dbType); + return (ScalarTypeBytesBase) util.typeManager().type(dbType); } private DataEncryptSupport createDataEncryptSupport(DeployBeanProperty prop) { 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 df0705f65..956de6314 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 @@ -60,15 +60,15 @@ public final class DeployUtil { this.useValidationNotNull = config.isUseValidationNotNull(); } - public TypeManager getTypeManager() { + public TypeManager typeManager() { return typeManager; } - public DatabasePlatform getDbPlatform() { + public DatabasePlatform dbPlatform() { return dbPlatform; } - public NamingConvention getNamingConvention() { + public NamingConvention namingConvention() { return namingConvention; } @@ -82,7 +82,7 @@ public final class DeployUtil { } } - EncryptDeploy getEncryptDeploy(TableName table, String column) { + EncryptDeploy encryptDeploy(TableName table, String column) { if (encryptDeployManager == null) { return EncryptDeploy.ANNOTATION; } @@ -123,7 +123,7 @@ public final class DeployUtil { // this will be an Enum type... return; } - ScalarType scalarType = getScalarType(property); + ScalarType scalarType = scalarType(property); if (scalarType != null) { // set the jdbc type this maps to property.setDbType(scalarType.jdbcType()); @@ -132,7 +132,7 @@ public final class DeployUtil { } } - private ScalarType getScalarType(DeployBeanProperty property) { + private ScalarType scalarType(DeployBeanProperty property) { // Note that Temporal types already have dbType // set via annotations Class propType = property.getPropertyType(); @@ -193,7 +193,7 @@ public final class DeployUtil { } void setDbJsonType(DeployBeanProperty prop, DbJson dbJsonType) { - int dbType = getDbJsonStorage(dbJsonType.storage()); + int dbType = dbJsonStorage(dbJsonType.storage()); setDbJsonType(prop, dbType, dbJsonType.length(), dbJsonType.mutationDetection()); } @@ -219,7 +219,7 @@ public final class DeployUtil { /** * Return the JDBC type for the JSON storage type. */ - private int getDbJsonStorage(DbJsonType dbJsonType) { + private int dbJsonStorage(DbJsonType dbJsonType) { switch (dbJsonType) { case JSONB: return DbPlatformType.JSONB; From 5981d313ae786f00bdfbfa71b4e052b9edf0b030 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 8 Sep 2022 14:50:58 +1200 Subject: [PATCH 098/127] Rename ebean-json-node module to ebean-jackson-jsonnode --- composites/ebean/pom.xml | 2 +- ebean-bom/pom.xml | 2 +- {ebean-json-node => ebean-jackson-jsonnode}/pom.xml | 2 +- .../src/main/java/io/ebean/jackson/jsonnode/JsonNodeSet.java | 0 .../java/io/ebean/jackson/jsonnode/JsonNodeTypeFactory.java | 0 .../main/java/io/ebean/jackson/jsonnode/ScalarTypeJsonNode.java | 0 .../io/ebean/jackson/jsonnode/ScalarTypeJsonNodePostgres.java | 0 .../src/main/java/module-info.java | 2 +- .../META-INF/services/io.ebean.core.type.ScalarTypeSetFactory | 0 ebean-test/pom.xml | 2 +- pom.xml | 2 +- 11 files changed, 6 insertions(+), 6 deletions(-) rename {ebean-json-node => ebean-jackson-jsonnode}/pom.xml (96%) rename {ebean-json-node => ebean-jackson-jsonnode}/src/main/java/io/ebean/jackson/jsonnode/JsonNodeSet.java (100%) rename {ebean-json-node => ebean-jackson-jsonnode}/src/main/java/io/ebean/jackson/jsonnode/JsonNodeTypeFactory.java (100%) rename {ebean-json-node => ebean-jackson-jsonnode}/src/main/java/io/ebean/jackson/jsonnode/ScalarTypeJsonNode.java (100%) rename {ebean-json-node => ebean-jackson-jsonnode}/src/main/java/io/ebean/jackson/jsonnode/ScalarTypeJsonNodePostgres.java (100%) rename {ebean-json-node => ebean-jackson-jsonnode}/src/main/java/module-info.java (87%) rename {ebean-json-node => ebean-jackson-jsonnode}/src/main/resources/META-INF/services/io.ebean.core.type.ScalarTypeSetFactory (100%) diff --git a/composites/ebean/pom.xml b/composites/ebean/pom.xml index 8c41257dc..d6ef2cb13 100644 --- a/composites/ebean/pom.xml +++ b/composites/ebean/pom.xml @@ -33,7 +33,7 @@ io.ebean - ebean-json-node + ebean-jackson-jsonnode 13.9.3-SNAPSHOT diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index 6813c7840..eb1e958e3 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -118,7 +118,7 @@ io.ebean - ebean-json-node + ebean-jackson-jsonnode 13.9.3-SNAPSHOT diff --git a/ebean-json-node/pom.xml b/ebean-jackson-jsonnode/pom.xml similarity index 96% rename from ebean-json-node/pom.xml rename to ebean-jackson-jsonnode/pom.xml index dfefb9b9f..6f84c8d21 100644 --- a/ebean-json-node/pom.xml +++ b/ebean-jackson-jsonnode/pom.xml @@ -9,7 +9,7 @@ 13.9.3-SNAPSHOT - ebean-json-node + ebean-jackson-jsonnode 19 diff --git a/ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/JsonNodeSet.java b/ebean-jackson-jsonnode/src/main/java/io/ebean/jackson/jsonnode/JsonNodeSet.java similarity index 100% rename from ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/JsonNodeSet.java rename to ebean-jackson-jsonnode/src/main/java/io/ebean/jackson/jsonnode/JsonNodeSet.java diff --git a/ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/JsonNodeTypeFactory.java b/ebean-jackson-jsonnode/src/main/java/io/ebean/jackson/jsonnode/JsonNodeTypeFactory.java similarity index 100% rename from ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/JsonNodeTypeFactory.java rename to ebean-jackson-jsonnode/src/main/java/io/ebean/jackson/jsonnode/JsonNodeTypeFactory.java diff --git a/ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/ScalarTypeJsonNode.java b/ebean-jackson-jsonnode/src/main/java/io/ebean/jackson/jsonnode/ScalarTypeJsonNode.java similarity index 100% rename from ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/ScalarTypeJsonNode.java rename to ebean-jackson-jsonnode/src/main/java/io/ebean/jackson/jsonnode/ScalarTypeJsonNode.java diff --git a/ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/ScalarTypeJsonNodePostgres.java b/ebean-jackson-jsonnode/src/main/java/io/ebean/jackson/jsonnode/ScalarTypeJsonNodePostgres.java similarity index 100% rename from ebean-json-node/src/main/java/io/ebean/jackson/jsonnode/ScalarTypeJsonNodePostgres.java rename to ebean-jackson-jsonnode/src/main/java/io/ebean/jackson/jsonnode/ScalarTypeJsonNodePostgres.java diff --git a/ebean-json-node/src/main/java/module-info.java b/ebean-jackson-jsonnode/src/main/java/module-info.java similarity index 87% rename from ebean-json-node/src/main/java/module-info.java rename to ebean-jackson-jsonnode/src/main/java/module-info.java index ae48a30fb..84fc02973 100644 --- a/ebean-json-node/src/main/java/module-info.java +++ b/ebean-jackson-jsonnode/src/main/java/module-info.java @@ -1,6 +1,6 @@ import io.ebean.jackson.jsonnode.JsonNodeTypeFactory; -module io.ebean.json.node { +module io.ebean.jackson.jsonnode { requires io.ebean.core.type; requires com.fasterxml.jackson.core; diff --git a/ebean-json-node/src/main/resources/META-INF/services/io.ebean.core.type.ScalarTypeSetFactory b/ebean-jackson-jsonnode/src/main/resources/META-INF/services/io.ebean.core.type.ScalarTypeSetFactory similarity index 100% rename from ebean-json-node/src/main/resources/META-INF/services/io.ebean.core.type.ScalarTypeSetFactory rename to ebean-jackson-jsonnode/src/main/resources/META-INF/services/io.ebean.core.type.ScalarTypeSetFactory diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 9e334b365..4a71e45cf 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -111,7 +111,7 @@ io.ebean - ebean-json-node + ebean-jackson-jsonnode 13.9.3-SNAPSHOT test diff --git a/pom.xml b/pom.xml index f2c505822..de0c4f3b7 100644 --- a/pom.xml +++ b/pom.xml @@ -91,7 +91,7 @@ composites ebean-joda-time ebean-csv-reader - ebean-json-node + ebean-jackson-jsonnode From c53ca6c16e13a0606d9e50fa8cc80a341e418503 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 8 Sep 2022 14:53:33 +1200 Subject: [PATCH 099/127] Rename ebean-json-node module to ebean-jackson-jsonnode --- ebean-jackson-jsonnode/pom.xml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/ebean-jackson-jsonnode/pom.xml b/ebean-jackson-jsonnode/pom.xml index 6f84c8d21..a77ddcdcc 100644 --- a/ebean-jackson-jsonnode/pom.xml +++ b/ebean-jackson-jsonnode/pom.xml @@ -11,13 +11,6 @@ ebean-jackson-jsonnode - - 19 - 19 - UTF-8 - - - From d5f753d110b260bdc68568da71b000cd249940c5 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 8 Sep 2022 21:39:00 +1200 Subject: [PATCH 100/127] Extract ebean-jackson-mapper module - initial step --- .../io/ebean/core/type/ScalarJsonManager.java | 24 +++++++ .../io/ebean/core/type/ScalarJsonMapper.java | 4 ++ .../io/ebean/core/type/ScalarJsonRequest.java | 67 +++++++++++++++++++ .../deploy/meta/DeployBeanDescriptor.java | 11 --- .../deploy/meta/DeployBeanProperty.java | 14 ---- .../server/type/DefaultTypeManager.java | 24 +++++-- .../DeployBeanObtainJackson.java | 13 ++-- .../type/ScalarTypeJsonObjectMapper.java | 52 ++++++++------ .../server/type/TypeJsonManager.java | 33 ++++----- 9 files changed, 163 insertions(+), 79 deletions(-) create mode 100644 ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonManager.java create mode 100644 ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonMapper.java create mode 100644 ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonRequest.java rename ebean-core/src/main/java/io/ebeaninternal/server/{deploy/meta => type}/DeployBeanObtainJackson.java (69%) diff --git a/ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonManager.java b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonManager.java new file mode 100644 index 000000000..f0e645d1d --- /dev/null +++ b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonManager.java @@ -0,0 +1,24 @@ +package io.ebean.core.type; + +import io.ebean.annotation.MutationDetection; + +/** + * Holds the configured mapper and default mutation detection mode to be used. + */ +public interface ScalarJsonManager { + + /** + * Return the default mutation detection mode. + */ + MutationDetection mutationDetection(); + + /** + * Return the object mapper supplied in DatabaseConfig. + */ + Object mapper(); + + /** + * Return the Postgres type given the jdbc type. + */ + String postgresType(int dbType); +} diff --git a/ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonMapper.java b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonMapper.java new file mode 100644 index 000000000..de38bd942 --- /dev/null +++ b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonMapper.java @@ -0,0 +1,4 @@ +package io.ebean.core.type; + +public interface ScalarJsonMapper { +} diff --git a/ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonRequest.java b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonRequest.java new file mode 100644 index 000000000..c47681fd1 --- /dev/null +++ b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonRequest.java @@ -0,0 +1,67 @@ +package io.ebean.core.type; + +import io.ebean.annotation.MutationDetection; + +/** + * A request to create a ScalarType for a bean property (typically annotated with {@code @DbJson}). + */ +public final class ScalarJsonRequest { + + private final ScalarJsonManager manager; + private final int dbType; + private final DocPropertyType docType; + private final Class beanType; + private final MutationDetection mode; + private final String name; + + public ScalarJsonRequest(ScalarJsonManager manager, int dbType, DocPropertyType docType, Class beanType, MutationDetection mode, String name) { + this.manager = manager; + this.dbType = dbType; + this.docType = docType; + this.beanType = beanType; + this.mode = mode; + this.name = name; + } + + /** + * Return the manager. + */ + public ScalarJsonManager manager() { + return manager; + } + + /** + * Return the jdbc type this property maps to (e.g. JSON, JSONB etc). + */ + public int dbType() { + return dbType; + } + + /** + * Return the document store docType. + */ + public DocPropertyType docType() { + return docType; + } + + /** + * Return the type of the bean that this property belongs to. + */ + public Class beanType() { + return beanType; + } + + /** + * Return the mutation detection mode the property should use. + */ + public MutationDetection mode() { + return mode; + } + + /** + * Return the property name. + */ + public String name() { + return name; + } +} diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanDescriptor.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanDescriptor.java index 49767439f..dfeacbd83 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanDescriptor.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanDescriptor.java @@ -152,7 +152,6 @@ public class DeployBeanDescriptor { private DocStoreMode docStoreDelete; private DeployBeanProperty idProperty; private TableJoin primaryKeyJoin; - private Object jacksonAnnotatedClass; /** * Construct the BeanDescriptor. @@ -1130,14 +1129,4 @@ public class DeployBeanDescriptor { } } - /** - * Returns the jackson annotated class, if jackson is present. - */ - @SuppressWarnings("unchecked") - Object /*AnnotatedClass*/ getJacksonAnnotatedClass() { - if (jacksonAnnotatedClass == null) { - jacksonAnnotatedClass = new DeployBeanObtainJackson(config, beanType).obtain(); - } - return jacksonAnnotatedClass; - } } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanProperty.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanProperty.java index 847401b1c..2507387ab 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanProperty.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanProperty.java @@ -1042,20 +1042,6 @@ public class DeployBeanProperty { this.elementProperty = true; } - /** - * Returns the jackson annotated field, if jackson is present. - */ - public Object /*AnnotatedField*/ getJacksonField() { - com.fasterxml.jackson.databind.introspect.AnnotatedClass jac = - (com.fasterxml.jackson.databind.introspect.AnnotatedClass) getDesc().getJacksonAnnotatedClass(); - for (com.fasterxml.jackson.databind.introspect.AnnotatedField candidate : jac.fields()) { - if (candidate.getName().equals(getName())) { - return candidate; - } - } - return null; - } - public void initMetaAnnotations(Set> metaAnnotationsFilter) { metaAnnotations = AnnotationUtil.metaFindAllFor(field, metaAnnotationsFilter); } 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 29685ea99..e4df81962 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 @@ -65,7 +65,7 @@ public final class DefaultTypeManager implements TypeManager { private final Object objectMapper; private final boolean objectMapperPresent; private final boolean postgres; - private final TypeJsonManager jsonManager; + private final ScalarJsonManager jsonManager; private final boolean offlineMigrationGeneration; private final EnumType defaultEnumType; private final DatabasePlatform databasePlatform; @@ -302,7 +302,7 @@ public final class DefaultTypeManager implements TypeManager { if (type.equals(List.class)) { DocPropertyType docType = docType(genericType); if (!hasJacksonAnnotations && isValueTypeSimple(genericType)) { - return ScalarTypeJsonList.typeFor(postgres, dbType, docType, prop.isNullable(), jsonManager.keepSource(prop)); + return ScalarTypeJsonList.typeFor(postgres, dbType, docType, prop.isNullable(), keepSource(prop)); } else { return createJsonObjectMapperType(prop, dbType, docType); } @@ -310,14 +310,14 @@ public final class DefaultTypeManager implements TypeManager { if (type.equals(Set.class)) { DocPropertyType docType = docType(genericType); if (!hasJacksonAnnotations && isValueTypeSimple(genericType)) { - return ScalarTypeJsonSet.typeFor(postgres, dbType, docType, prop.isNullable(), jsonManager.keepSource(prop)); + return ScalarTypeJsonSet.typeFor(postgres, dbType, docType, prop.isNullable(), keepSource(prop)); } else { return createJsonObjectMapperType(prop, dbType, docType); } } if (type.equals(Map.class)) { if (!hasJacksonAnnotations && isMapValueTypeObject(genericType)) { - return ScalarTypeJsonMap.typeFor(postgres, dbType, jsonManager.keepSource(prop)); + return ScalarTypeJsonMap.typeFor(postgres, dbType, keepSource(prop)); } else { return createJsonObjectMapperType(prop, dbType, DocPropertyType.OBJECT); } @@ -331,6 +331,13 @@ public final class DefaultTypeManager implements TypeManager { return createJsonObjectMapperType(prop, dbType, DocPropertyType.OBJECT); } + private boolean keepSource(DeployBeanProperty prop) { + if (prop.getMutationDetection() == MutationDetection.DEFAULT) { + prop.setMutationDetection(jsonManager.mutationDetection()); + } + return prop.getMutationDetection() == MutationDetection.SOURCE; + } + /** * Returns TRUE, if there is any jackson annotation on that property. All jackson annotations * are annotated with the @JacksonAnnotation meta annotation. So detection is easy. @@ -370,11 +377,14 @@ public final class DefaultTypeManager implements TypeManager { } private ScalarType createJsonObjectMapperType(DeployBeanProperty prop, int dbType, DocPropertyType docType) { - Class type = prop.getPropertyType(); if (objectMapper == null) { - throw new IllegalArgumentException("Type [" + type + "] unsupported for @DbJson mapping - Jackson ObjectMapper not present"); + throw new IllegalArgumentException("Unsupported @DbJson mapping - Jackson ObjectMapper not present for " + prop); } - return ScalarTypeJsonObjectMapper.createTypeFor(jsonManager, prop, dbType, docType); + if (MutationDetection.DEFAULT == prop.getMutationDetection()) { + prop.setMutationDetection(jsonManager.mutationDetection()); + } + var req = new ScalarJsonRequest(jsonManager, dbType, docType, prop.getDesc().getBeanType(), prop.getMutationDetection(), prop.getName()); + return ScalarTypeJsonObjectMapper.createTypeFor(req); } /** diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanObtainJackson.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/DeployBeanObtainJackson.java similarity index 69% rename from ebean-core/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanObtainJackson.java rename to ebean-core/src/main/java/io/ebeaninternal/server/type/DeployBeanObtainJackson.java index 9bbfb6007..943422aa3 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanObtainJackson.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/DeployBeanObtainJackson.java @@ -1,28 +1,27 @@ -package io.ebeaninternal.server.deploy.meta; +package io.ebeaninternal.server.type; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.introspect.AnnotatedClass; import com.fasterxml.jackson.databind.introspect.AnnotatedClassResolver; -import io.ebean.config.DatabaseConfig; /** * Used to obtain the Jackson AnnotatedClass for a given bean type utlimately to obtain field level Jackson annotations. */ final class DeployBeanObtainJackson { - private final DatabaseConfig config; + private final ObjectMapper objectMapper; private final Class beanType; - DeployBeanObtainJackson(DatabaseConfig config, Class beanType) { - this.config = config; + DeployBeanObtainJackson(ObjectMapper objectMapper, Class beanType) { + this.objectMapper = objectMapper; this.beanType = beanType; } /** * Return the Jackson AnnotatedClass for the given bean type. */ - Object obtain() { - ObjectMapper objectMapper = (ObjectMapper) config.getObjectMapper(); + AnnotatedClass obtain() { JavaType javaType = objectMapper.getTypeFactory().constructType(beanType); return AnnotatedClassResolver.resolve(objectMapper.getDeserializationConfig(), javaType, objectMapper.getDeserializationConfig()); } diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonObjectMapper.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonObjectMapper.java index 2615e5e28..86f5d9c82 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonObjectMapper.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonObjectMapper.java @@ -6,11 +6,11 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectWriter; +import com.fasterxml.jackson.databind.introspect.AnnotatedClass; import com.fasterxml.jackson.databind.introspect.AnnotatedField; import io.ebean.annotation.MutationDetection; import io.ebean.core.type.*; import io.ebean.text.TextException; -import io.ebeaninternal.server.deploy.meta.DeployBeanProperty; import javax.persistence.PersistenceException; import java.io.DataInput; @@ -18,30 +18,43 @@ import java.io.DataOutput; import java.io.IOException; import java.sql.SQLException; import java.sql.Types; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; /** * Supports @DbJson properties using Jackson ObjectMapper. */ final class ScalarTypeJsonObjectMapper { + static final Map, AnnotatedClass> jacksonClasses = new ConcurrentHashMap<>(); + /** * Create and return the appropriate ScalarType. */ - static ScalarType createTypeFor(TypeJsonManager jsonManager, DeployBeanProperty prop, int dbType, DocPropertyType docType) { - AnnotatedField field = (AnnotatedField) prop.getJacksonField(); - MutationDetection mode = prop.getMutationDetection(); - if (mode == MutationDetection.NONE) { - return new NoMutationDetection(jsonManager, field, dbType, docType); - } else if (mode != MutationDetection.DEFAULT) { - return new GenericObject(jsonManager, field, dbType, docType); + static ScalarType createTypeFor(ScalarJsonRequest req) { + AnnotatedClass annotatedClass = annotatedClass(req); + AnnotatedField field = annotatedField(annotatedClass, req); + if (req.mode() == MutationDetection.NONE) { + return new NoMutationDetection(req.manager(), field, req.dbType(), req.docType()); + } else { + return new GenericObject(req.manager(), field, req.dbType(), req.docType()); } - // using the global default MutationDetection mode (defaults to HASH) - final MutationDetection defaultMode = jsonManager.mutationDetection(); - prop.setMutationDetection(defaultMode); - if (MutationDetection.NONE == defaultMode) { - return new NoMutationDetection(jsonManager, field, dbType, docType); + } + + private static AnnotatedField annotatedField(AnnotatedClass annotatedClass, ScalarJsonRequest req) { + for (AnnotatedField field : annotatedClass.fields()) { + if (field.getName().equals(req.name())) { + return field; + } } - return new GenericObject(jsonManager, field, dbType, docType); + throw new IllegalStateException("AnnotatedField not found to match " + req.name()); + } + + private static AnnotatedClass annotatedClass(ScalarJsonRequest req) { + return jacksonClasses.computeIfAbsent(req.beanType(), key -> { + ObjectMapper mapper = (ObjectMapper) req.manager().mapper(); + return new DeployBeanObtainJackson(mapper, req.beanType()).obtain(); + }); } /** @@ -49,7 +62,7 @@ final class ScalarTypeJsonObjectMapper { */ private static final class NoMutationDetection extends Base { - NoMutationDetection(TypeJsonManager jsonManager, AnnotatedField field, int dbType, DocPropertyType docType) { + NoMutationDetection(ScalarJsonManager jsonManager, AnnotatedField field, int dbType, DocPropertyType docType) { super(Object.class, jsonManager, field, dbType, docType); } } @@ -61,7 +74,7 @@ final class ScalarTypeJsonObjectMapper { private final boolean jsonb; - GenericObject(TypeJsonManager jsonManager, AnnotatedField field, int dbType, DocPropertyType docType) { + GenericObject(ScalarJsonManager jsonManager, AnnotatedField field, int dbType, DocPropertyType docType) { super(Object.class, jsonManager, field, dbType, docType); this.jsonb = "jsonb".equals(pgType); } @@ -126,9 +139,9 @@ final class ScalarTypeJsonObjectMapper { protected final String pgType; private final DocPropertyType docType; - Base(Class cls, TypeJsonManager jsonManager, AnnotatedField field, int dbType, DocPropertyType docType) { + Base(Class cls, ScalarJsonManager jsonManager, AnnotatedField field, int dbType, DocPropertyType docType) { super(cls, false, dbType); - this.objectReader = jsonManager.objectMapper(); + this.objectReader = (ObjectMapper)jsonManager.mapper(); this.pgType = jsonManager.postgresType(dbType); this.docType = docType; final JacksonTypeHelper helper = new JacksonTypeHelper(field, objectReader); @@ -223,7 +236,8 @@ final class ScalarTypeJsonObjectMapper { if (value == null) { dataOutput.writeBoolean(false); } else { - ScalarHelp.writeUTF(dataOutput, format(value)); + dataOutput.writeBoolean(true); + dataOutput.writeUTF(format(value)); } } } 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 84ceac12b..2b5a61432 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 @@ -1,44 +1,35 @@ package io.ebeaninternal.server.type; -import com.fasterxml.jackson.databind.ObjectMapper; import io.ebean.ModifyAwareType; import io.ebean.annotation.MutationDetection; import io.ebean.config.dbplatform.DbPlatformType; import io.ebean.core.type.PostgresHelper; -import io.ebeaninternal.server.deploy.meta.DeployBeanProperty; +import io.ebean.core.type.ScalarJsonManager; -final class TypeJsonManager { +final class TypeJsonManager implements ScalarJsonManager { private final boolean postgres; - private final ObjectMapper objectMapper; + private final Object mapper; private final MutationDetection mutationDetection; - TypeJsonManager(boolean postgres, Object objectMapper, MutationDetection mutationDetection) { + TypeJsonManager(boolean postgres, Object mapper, MutationDetection mutationDetection) { this.postgres = postgres; - this.objectMapper = (ObjectMapper) objectMapper; + this.mapper = mapper; this.mutationDetection = mutationDetection; } - MutationDetection mutationDetection() { + @Override + public MutationDetection mutationDetection() { return mutationDetection; } - ObjectMapper objectMapper() { - return objectMapper; + @Override + public Object mapper() { + return mapper; } - 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) { + @Override + public String postgresType(int dbType) { if (postgres) { switch (dbType) { case DbPlatformType.JSON: From e74e4ba5328960db3ae7e3f556bc175b02f0041d Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 8 Sep 2022 22:09:10 +1200 Subject: [PATCH 101/127] Extract ebean-jackson-mapper module - rename ScalarTypeJsonObjectMapper to ScalarJsonJacksonMapper and move --- composites/ebean/pom.xml | 6 +++ ebean-bom/pom.xml | 6 +++ .../io/ebean/core/type/ScalarJsonMapper.java | 9 ++++ .../server/type/DefaultTypeManager.java | 8 +++- ebean-core/src/main/java/module-info.java | 1 + ebean-jackson-mapper/pom.xml | 46 +++++++++++++++++++ .../mapper}/DeployBeanObtainJackson.java | 2 +- .../jackson/mapper}/JacksonTypeHelper.java | 2 +- .../io/ebean/jackson/mapper}/JsonTrim.java | 2 +- .../mapper/ScalarJsonJacksonMapper.java | 13 +++--- .../src/main/java/module-info.java | 9 ++++ .../io.ebean.core.type.ScalarJsonMapper | 1 + .../ebean/jackson/mapper}/JsonTrimTest.java | 2 +- ebean-test/pom.xml | 7 +++ pom.xml | 1 + 15 files changed, 103 insertions(+), 12 deletions(-) create mode 100644 ebean-jackson-mapper/pom.xml rename {ebean-core/src/main/java/io/ebeaninternal/server/type => ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper}/DeployBeanObtainJackson.java (96%) rename {ebean-core/src/main/java/io/ebeaninternal/server/type => ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper}/JacksonTypeHelper.java (97%) rename {ebean-core/src/main/java/io/ebeaninternal/server/type => ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper}/JsonTrim.java (95%) rename ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonObjectMapper.java => ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/ScalarJsonJacksonMapper.java (94%) create mode 100644 ebean-jackson-mapper/src/main/java/module-info.java create mode 100644 ebean-jackson-mapper/src/main/resources/META-INF/services/io.ebean.core.type.ScalarJsonMapper rename {ebean-core/src/test/java/io/ebeaninternal/server/type => ebean-jackson-mapper/src/test/java/io/ebean/jackson/mapper}/JsonTrimTest.java (98%) diff --git a/composites/ebean/pom.xml b/composites/ebean/pom.xml index d6ef2cb13..57f45f13b 100644 --- a/composites/ebean/pom.xml +++ b/composites/ebean/pom.xml @@ -37,6 +37,12 @@ 13.9.3-SNAPSHOT + + io.ebean + ebean-jackson-mapper + 13.9.3-SNAPSHOT + + io.ebean ebean-datasource diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index eb1e958e3..46e47c2c7 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -122,6 +122,12 @@ 13.9.3-SNAPSHOT + + io.ebean + ebean-jackson-mapper + 13.9.3-SNAPSHOT + + io.ebean ebean-ddl-generator diff --git a/ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonMapper.java b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonMapper.java index de38bd942..2cbd964a4 100644 --- a/ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonMapper.java +++ b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonMapper.java @@ -1,4 +1,13 @@ package io.ebean.core.type; +/** + * Supports JSON bean properties that use something like Jackson ObjectMapper to convert between + * JSON content and the logical bean property value. + */ public interface ScalarJsonMapper { + + /** + * Return a ScalarType for the given JSON property. + */ + ScalarType createType(ScalarJsonRequest request); } 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 e4df81962..be3a25609 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 @@ -72,6 +72,7 @@ public final class DefaultTypeManager implements TypeManager { private final PlatformArrayTypeFactory arrayTypeListFactory; private final PlatformArrayTypeFactory arrayTypeSetFactory; + private final ScalarJsonMapper jsonMapper; private GeoTypeBinder geoTypeBinder; /** @@ -94,6 +95,9 @@ public final class DefaultTypeManager implements TypeManager { this.offlineMigrationGeneration = DbOffline.isGenerateMigration(); this.defaultEnumType = config.getDefaultEnumType(); + ServiceLoader mappers = ServiceLoader.load(ScalarJsonMapper.class); + jsonMapper = mappers.findFirst().orElse(null); + initialiseStandard(config); initialiseJavaTimeTypes(config); loadTypesFromProviders(config, objectMapper); @@ -377,14 +381,14 @@ public final class DefaultTypeManager implements TypeManager { } private ScalarType createJsonObjectMapperType(DeployBeanProperty prop, int dbType, DocPropertyType docType) { - if (objectMapper == null) { + if (jsonMapper == null) { throw new IllegalArgumentException("Unsupported @DbJson mapping - Jackson ObjectMapper not present for " + prop); } if (MutationDetection.DEFAULT == prop.getMutationDetection()) { prop.setMutationDetection(jsonManager.mutationDetection()); } var req = new ScalarJsonRequest(jsonManager, dbType, docType, prop.getDesc().getBeanType(), prop.getMutationDetection(), prop.getName()); - return ScalarTypeJsonObjectMapper.createTypeFor(req); + return jsonMapper.createType(req); } /** diff --git a/ebean-core/src/main/java/module-info.java b/ebean-core/src/main/java/module-info.java index 58a3438c9..d09920dd5 100644 --- a/ebean-core/src/main/java/module-info.java +++ b/ebean-core/src/main/java/module-info.java @@ -9,6 +9,7 @@ module io.ebean.core { uses io.ebean.datasource.DataSourceAlertFactory; uses io.ebean.core.type.ExtraTypeFactory; uses io.ebean.core.type.ScalarTypeSetFactory; + uses io.ebean.core.type.ScalarJsonMapper; uses io.ebeanservice.docstore.api.DocStoreFactory; uses io.ebean.migration.auto.AutoMigrationRunner; uses io.avaje.classpath.scanner.ClassPathScannerFactory; diff --git a/ebean-jackson-mapper/pom.xml b/ebean-jackson-mapper/pom.xml new file mode 100644 index 000000000..9371f4a86 --- /dev/null +++ b/ebean-jackson-mapper/pom.xml @@ -0,0 +1,46 @@ + + + + ebean-parent + io.ebean + 13.9.3-SNAPSHOT + + 4.0.0 + + ebean-jackson-mapper + + + + + io.ebean + ebean-core-type + 13.9.3-SNAPSHOT + provided + + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + provided + + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + provided + + + + io.avaje + junit + 1.1 + test + + + + + diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/DeployBeanObtainJackson.java b/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/DeployBeanObtainJackson.java similarity index 96% rename from ebean-core/src/main/java/io/ebeaninternal/server/type/DeployBeanObtainJackson.java rename to ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/DeployBeanObtainJackson.java index 943422aa3..747d66394 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/DeployBeanObtainJackson.java +++ b/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/DeployBeanObtainJackson.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.type; +package io.ebean.jackson.mapper; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/JacksonTypeHelper.java b/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/JacksonTypeHelper.java similarity index 97% rename from ebean-core/src/main/java/io/ebeaninternal/server/type/JacksonTypeHelper.java rename to ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/JacksonTypeHelper.java index 7d2d5b3e1..11f8cc0a8 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/JacksonTypeHelper.java +++ b/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/JacksonTypeHelper.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.type; +package io.ebean.jackson.mapper; import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.introspect.AnnotatedField; diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/JsonTrim.java b/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/JsonTrim.java similarity index 95% rename from ebean-core/src/main/java/io/ebeaninternal/server/type/JsonTrim.java rename to ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/JsonTrim.java index ec0808f14..855978681 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/JsonTrim.java +++ b/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/JsonTrim.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.type; +package io.ebean.jackson.mapper; /** * Helper that removes whitespace from JSON. Used to normalise Postgres JSONB content. diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonObjectMapper.java b/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/ScalarJsonJacksonMapper.java similarity index 94% rename from ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonObjectMapper.java rename to ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/ScalarJsonJacksonMapper.java index 86f5d9c82..9193d86d2 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeJsonObjectMapper.java +++ b/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/ScalarJsonJacksonMapper.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.type; +package io.ebean.jackson.mapper; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; @@ -24,14 +24,15 @@ import java.util.concurrent.ConcurrentHashMap; /** * Supports @DbJson properties using Jackson ObjectMapper. */ -final class ScalarTypeJsonObjectMapper { +public final class ScalarJsonJacksonMapper implements ScalarJsonMapper { - static final Map, AnnotatedClass> jacksonClasses = new ConcurrentHashMap<>(); + private final Map, AnnotatedClass> jacksonClasses = new ConcurrentHashMap<>(); /** * Create and return the appropriate ScalarType. */ - static ScalarType createTypeFor(ScalarJsonRequest req) { + @Override + public ScalarType createType(ScalarJsonRequest req) { AnnotatedClass annotatedClass = annotatedClass(req); AnnotatedField field = annotatedField(annotatedClass, req); if (req.mode() == MutationDetection.NONE) { @@ -41,7 +42,7 @@ final class ScalarTypeJsonObjectMapper { } } - private static AnnotatedField annotatedField(AnnotatedClass annotatedClass, ScalarJsonRequest req) { + private AnnotatedField annotatedField(AnnotatedClass annotatedClass, ScalarJsonRequest req) { for (AnnotatedField field : annotatedClass.fields()) { if (field.getName().equals(req.name())) { return field; @@ -50,7 +51,7 @@ final class ScalarTypeJsonObjectMapper { throw new IllegalStateException("AnnotatedField not found to match " + req.name()); } - private static AnnotatedClass annotatedClass(ScalarJsonRequest req) { + private AnnotatedClass annotatedClass(ScalarJsonRequest req) { return jacksonClasses.computeIfAbsent(req.beanType(), key -> { ObjectMapper mapper = (ObjectMapper) req.manager().mapper(); return new DeployBeanObtainJackson(mapper, req.beanType()).obtain(); diff --git a/ebean-jackson-mapper/src/main/java/module-info.java b/ebean-jackson-mapper/src/main/java/module-info.java new file mode 100644 index 000000000..f43b84144 --- /dev/null +++ b/ebean-jackson-mapper/src/main/java/module-info.java @@ -0,0 +1,9 @@ +import io.ebean.jackson.mapper.ScalarJsonJacksonMapper; + +module io.ebean.jackson.mapper { + requires io.ebean.core.type; + requires com.fasterxml.jackson.core; + requires com.fasterxml.jackson.databind; + + provides io.ebean.core.type.ScalarJsonMapper with ScalarJsonJacksonMapper; +} diff --git a/ebean-jackson-mapper/src/main/resources/META-INF/services/io.ebean.core.type.ScalarJsonMapper b/ebean-jackson-mapper/src/main/resources/META-INF/services/io.ebean.core.type.ScalarJsonMapper new file mode 100644 index 000000000..e85a66aaa --- /dev/null +++ b/ebean-jackson-mapper/src/main/resources/META-INF/services/io.ebean.core.type.ScalarJsonMapper @@ -0,0 +1 @@ +io.ebean.jackson.mapper.ScalarJsonJacksonMapper diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/type/JsonTrimTest.java b/ebean-jackson-mapper/src/test/java/io/ebean/jackson/mapper/JsonTrimTest.java similarity index 98% rename from ebean-core/src/test/java/io/ebeaninternal/server/type/JsonTrimTest.java rename to ebean-jackson-mapper/src/test/java/io/ebean/jackson/mapper/JsonTrimTest.java index 27d1ad8f9..f5b78b147 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/type/JsonTrimTest.java +++ b/ebean-jackson-mapper/src/test/java/io/ebean/jackson/mapper/JsonTrimTest.java @@ -1,4 +1,4 @@ -package io.ebeaninternal.server.type; +package io.ebean.jackson.mapper; import org.junit.jupiter.api.Test; diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 4a71e45cf..ea8996a56 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -116,6 +116,13 @@ test + + io.ebean + ebean-jackson-mapper + 13.9.3-SNAPSHOT + test + + io.ebean ebean-platform-all diff --git a/pom.xml b/pom.xml index de0c4f3b7..d1217fb8d 100644 --- a/pom.xml +++ b/pom.xml @@ -92,6 +92,7 @@ ebean-joda-time ebean-csv-reader ebean-jackson-jsonnode + ebean-jackson-mapper From 7a887d219f13ba145da2aad121da08e7caf81ba1 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 8 Sep 2022 22:14:16 +1200 Subject: [PATCH 102/127] Extract ebean-jackson-mapper module - rename DeployBeanObtainJackson -> AnnotatedClassUtil and convert to static method --- ...eanObtainJackson.java => AnnotatedClassUtil.java} | 12 ++---------- .../jackson/mapper/ScalarJsonJacksonMapper.java | 2 +- ebean-jackson-mapper/src/main/java/module-info.java | 1 + 3 files changed, 4 insertions(+), 11 deletions(-) rename ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/{DeployBeanObtainJackson.java => AnnotatedClassUtil.java} (70%) diff --git a/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/DeployBeanObtainJackson.java b/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/AnnotatedClassUtil.java similarity index 70% rename from ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/DeployBeanObtainJackson.java rename to ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/AnnotatedClassUtil.java index 747d66394..bd30d88fd 100644 --- a/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/DeployBeanObtainJackson.java +++ b/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/AnnotatedClassUtil.java @@ -8,20 +8,12 @@ import com.fasterxml.jackson.databind.introspect.AnnotatedClassResolver; /** * Used to obtain the Jackson AnnotatedClass for a given bean type utlimately to obtain field level Jackson annotations. */ -final class DeployBeanObtainJackson { - - private final ObjectMapper objectMapper; - private final Class beanType; - - DeployBeanObtainJackson(ObjectMapper objectMapper, Class beanType) { - this.objectMapper = objectMapper; - this.beanType = beanType; - } +final class AnnotatedClassUtil { /** * Return the Jackson AnnotatedClass for the given bean type. */ - AnnotatedClass obtain() { + static AnnotatedClass obtain(ObjectMapper objectMapper, Class beanType) { JavaType javaType = objectMapper.getTypeFactory().constructType(beanType); return AnnotatedClassResolver.resolve(objectMapper.getDeserializationConfig(), javaType, objectMapper.getDeserializationConfig()); } diff --git a/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/ScalarJsonJacksonMapper.java b/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/ScalarJsonJacksonMapper.java index 9193d86d2..a005c5e2d 100644 --- a/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/ScalarJsonJacksonMapper.java +++ b/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/ScalarJsonJacksonMapper.java @@ -54,7 +54,7 @@ public final class ScalarJsonJacksonMapper implements ScalarJsonMapper { private AnnotatedClass annotatedClass(ScalarJsonRequest req) { return jacksonClasses.computeIfAbsent(req.beanType(), key -> { ObjectMapper mapper = (ObjectMapper) req.manager().mapper(); - return new DeployBeanObtainJackson(mapper, req.beanType()).obtain(); + return AnnotatedClassUtil.obtain(mapper, req.beanType()); }); } diff --git a/ebean-jackson-mapper/src/main/java/module-info.java b/ebean-jackson-mapper/src/main/java/module-info.java index f43b84144..a1fde9779 100644 --- a/ebean-jackson-mapper/src/main/java/module-info.java +++ b/ebean-jackson-mapper/src/main/java/module-info.java @@ -1,6 +1,7 @@ import io.ebean.jackson.mapper.ScalarJsonJacksonMapper; module io.ebean.jackson.mapper { + requires io.ebean.core.type; requires com.fasterxml.jackson.core; requires com.fasterxml.jackson.databind; From 610b3f7dc895cd535fe0a5351e0b2587268ae1e8 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 8 Sep 2022 22:38:10 +1200 Subject: [PATCH 103/127] Extract ebean-jackson-mapper module - Change checkJacksonAnnotations() to instead use ScalarJsonMapper.markerAnnotation() --- .../io/ebean/core/type/ScalarJsonMapper.java | 10 ++++++++++ .../server/type/DefaultTypeManager.java | 19 ++++++++----------- .../mapper/ScalarJsonJacksonMapper.java | 7 +++++++ 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonMapper.java b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonMapper.java index 2cbd964a4..5a027ff96 100644 --- a/ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonMapper.java +++ b/ebean-core-type/src/main/java/io/ebean/core/type/ScalarJsonMapper.java @@ -1,5 +1,9 @@ package io.ebean.core.type; +import io.avaje.lang.Nullable; + +import java.lang.annotation.Annotation; + /** * Supports JSON bean properties that use something like Jackson ObjectMapper to convert between * JSON content and the logical bean property value. @@ -10,4 +14,10 @@ public interface ScalarJsonMapper { * Return a ScalarType for the given JSON property. */ ScalarType createType(ScalarJsonRequest request); + + /** + * Return a marker annotation to detect when the JSON mapper should be used explicitly. + */ + @Nullable + Class markerAnnotation(); } 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 be3a25609..d122ebd06 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 @@ -297,12 +297,17 @@ public final class DefaultTypeManager implements TypeManager { @Override public ScalarType dbJsonType(DeployBeanProperty prop, int dbType, int dbLength) { Class type = prop.getPropertyType(); - Type genericType = prop.getGenericType(); - boolean hasJacksonAnnotations = objectMapperPresent && checkJacksonAnnotations(prop); - if (type.equals(String.class)) { return ScalarTypeJsonString.typeFor(postgres, dbType); } + boolean hasJacksonAnnotations = false; + if (jsonMapper != null) { + var markerAnnotation = jsonMapper.markerAnnotation(); + if (markerAnnotation != null) { + hasJacksonAnnotations = !prop.getMetaAnnotations(markerAnnotation).isEmpty(); + } + } + Type genericType = prop.getGenericType(); if (type.equals(List.class)) { DocPropertyType docType = docType(genericType); if (!hasJacksonAnnotations && isValueTypeSimple(genericType)) { @@ -342,14 +347,6 @@ public final class DefaultTypeManager implements TypeManager { return prop.getMutationDetection() == MutationDetection.SOURCE; } - /** - * Returns TRUE, if there is any jackson annotation on that property. All jackson annotations - * are annotated with the @JacksonAnnotation meta annotation. So detection is easy. - */ - private boolean checkJacksonAnnotations(DeployBeanProperty prop) { - return prop.getMetaAnnotation(com.fasterxml.jackson.annotation.JacksonAnnotation.class) != null; - } - private DocPropertyType docType(Type genericType) { if (genericType instanceof Class) { ScalarType found = type((Class) genericType); diff --git a/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/ScalarJsonJacksonMapper.java b/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/ScalarJsonJacksonMapper.java index a005c5e2d..a4dfbac9a 100644 --- a/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/ScalarJsonJacksonMapper.java +++ b/ebean-jackson-mapper/src/main/java/io/ebean/jackson/mapper/ScalarJsonJacksonMapper.java @@ -16,6 +16,7 @@ import javax.persistence.PersistenceException; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; +import java.lang.annotation.Annotation; import java.sql.SQLException; import java.sql.Types; import java.util.Map; @@ -28,6 +29,12 @@ public final class ScalarJsonJacksonMapper implements ScalarJsonMapper { private final Map, AnnotatedClass> jacksonClasses = new ConcurrentHashMap<>(); + @SuppressWarnings("unchecked") + @Override + public Class markerAnnotation() { + return (Class)com.fasterxml.jackson.annotation.JacksonAnnotation.class; + } + /** * Create and return the appropriate ScalarType. */ From 318b22448cca8ebb2e87a103079c707448cc193b Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 8 Sep 2022 23:01:05 +1200 Subject: [PATCH 104/127] Extract ebean-jackson-mapper module - refactor DefaultTypeManager.dbJsonType() - When detected markerAnnotation (e.g. Jackson annotation) then go directly to createJsonObjectMapperType() - Simplify for the simple List, Set and Map of Object cases. --- .../server/type/DefaultTypeManager.java | 35 +++++++------------ 1 file changed, 12 insertions(+), 23 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 d122ebd06..c60386f30 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 @@ -300,36 +300,21 @@ public final class DefaultTypeManager implements TypeManager { if (type.equals(String.class)) { return ScalarTypeJsonString.typeFor(postgres, dbType); } - boolean hasJacksonAnnotations = false; if (jsonMapper != null) { var markerAnnotation = jsonMapper.markerAnnotation(); - if (markerAnnotation != null) { - hasJacksonAnnotations = !prop.getMetaAnnotations(markerAnnotation).isEmpty(); + if (markerAnnotation != null && !prop.getMetaAnnotations(markerAnnotation).isEmpty()) { + return createJsonObjectMapperType(prop, dbType, docPropertyType(prop, type)); } } Type genericType = prop.getGenericType(); - if (type.equals(List.class)) { - DocPropertyType docType = docType(genericType); - if (!hasJacksonAnnotations && isValueTypeSimple(genericType)) { - return ScalarTypeJsonList.typeFor(postgres, dbType, docType, prop.isNullable(), keepSource(prop)); - } else { - return createJsonObjectMapperType(prop, dbType, docType); - } + if (type.equals(List.class) && isValueTypeSimple(genericType)) { + return ScalarTypeJsonList.typeFor(postgres, dbType, docType(genericType), prop.isNullable(), keepSource(prop)); } - if (type.equals(Set.class)) { - DocPropertyType docType = docType(genericType); - if (!hasJacksonAnnotations && isValueTypeSimple(genericType)) { - return ScalarTypeJsonSet.typeFor(postgres, dbType, docType, prop.isNullable(), keepSource(prop)); - } else { - return createJsonObjectMapperType(prop, dbType, docType); - } + if (type.equals(Set.class) && isValueTypeSimple(genericType)) { + return ScalarTypeJsonSet.typeFor(postgres, dbType, docType(genericType), prop.isNullable(), keepSource(prop)); } - if (type.equals(Map.class)) { - if (!hasJacksonAnnotations && isMapValueTypeObject(genericType)) { - return ScalarTypeJsonMap.typeFor(postgres, dbType, keepSource(prop)); - } else { - return createJsonObjectMapperType(prop, dbType, DocPropertyType.OBJECT); - } + if (type.equals(Map.class) && isMapValueTypeObject(genericType)) { + return ScalarTypeJsonMap.typeFor(postgres, dbType, keepSource(prop)); } if (objectMapperPresent && prop.getMutationDetection() == MutationDetection.DEFAULT) { ScalarTypeSet typeSet = typeSets.get(type); @@ -347,6 +332,10 @@ public final class DefaultTypeManager implements TypeManager { return prop.getMutationDetection() == MutationDetection.SOURCE; } + private DocPropertyType docPropertyType(DeployBeanProperty prop, Class type) { + return type.equals(List.class) || type.equals(Set.class) ? docType(prop.getGenericType()) : DocPropertyType.OBJECT; + } + private DocPropertyType docType(Type genericType) { if (genericType instanceof Class) { ScalarType found = type((Class) genericType); From 7f5f0f6b8e8585eb47540559dcbb513ce41ee42e Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 8 Sep 2022 23:05:16 +1200 Subject: [PATCH 105/127] Extract ebean-jackson-mapper module - fix module-info with requires com.fasterxml.jackson.annotation; --- ebean-jackson-mapper/src/main/java/module-info.java | 1 + 1 file changed, 1 insertion(+) diff --git a/ebean-jackson-mapper/src/main/java/module-info.java b/ebean-jackson-mapper/src/main/java/module-info.java index a1fde9779..7adf6352a 100644 --- a/ebean-jackson-mapper/src/main/java/module-info.java +++ b/ebean-jackson-mapper/src/main/java/module-info.java @@ -3,6 +3,7 @@ import io.ebean.jackson.mapper.ScalarJsonJacksonMapper; module io.ebean.jackson.mapper { requires io.ebean.core.type; + requires com.fasterxml.jackson.annotation; requires com.fasterxml.jackson.core; requires com.fasterxml.jackson.databind; From 14d11b1c705fa4bb5cb7d967171bfa19f262f7a9 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Sun, 11 Sep 2022 17:12:02 +1200 Subject: [PATCH 106/127] Improve tests only - ExtendedServerTest and test-java16 --- .../ebean/xtest/base/ExtendedServerTest.java | 12 +++--- .../org/example/records/CustomAccessors.java | 22 +++++++++++ .../example/records/CustomConstructor.java | 18 +++++++++ .../org/example/records/CustomEquals.java | 24 ++++++++++++ .../org/example/records/CustomToString.java | 18 +++++++++ .../records/CourseRecordEntityTest.java | 13 +++++-- .../example/records/CustomAccessorsTest.java | 17 +++++++++ .../records/CustomConstructorTest.java | 37 +++++++++++++++++++ .../org/example/records/CustomEqualsTest.java | 16 ++++++++ .../example/records/CustomToStringTest.java | 14 +++++++ .../example/records/RecordAsEmbeddedTest.java | 2 + 11 files changed, 184 insertions(+), 9 deletions(-) create mode 100644 tests/test-java16/src/main/java/org/example/records/CustomAccessors.java create mode 100644 tests/test-java16/src/main/java/org/example/records/CustomConstructor.java create mode 100644 tests/test-java16/src/main/java/org/example/records/CustomEquals.java create mode 100644 tests/test-java16/src/main/java/org/example/records/CustomToString.java create mode 100644 tests/test-java16/src/test/java/org/example/records/CustomAccessorsTest.java create mode 100644 tests/test-java16/src/test/java/org/example/records/CustomConstructorTest.java create mode 100644 tests/test-java16/src/test/java/org/example/records/CustomEqualsTest.java create mode 100644 tests/test-java16/src/test/java/org/example/records/CustomToStringTest.java diff --git a/ebean-test/src/test/java/io/ebean/xtest/base/ExtendedServerTest.java b/ebean-test/src/test/java/io/ebean/xtest/base/ExtendedServerTest.java index 602a046c0..c0ccdfb9b 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/base/ExtendedServerTest.java +++ b/ebean-test/src/test/java/io/ebean/xtest/base/ExtendedServerTest.java @@ -54,37 +54,37 @@ public class ExtendedServerTest extends BaseTestCase { @Test public void mockClock() { - Database server = DB.getDefault(); + Database database = DB.getDefault(); final Instant snapshot = Instant.now(); Instant backedSnapshot = snapshot.minus(1, ChronoUnit.DAYS); Clock snapshotClock = Clock.fixed(backedSnapshot, Clock.systemUTC().getZone()); - server.extended().setClock(snapshotClock); + database.extended().setClock(snapshotClock); ResetBasicData.reset(); - int count = server + int count = database .find(Customer.class) .where() .gt("cretime", snapshot) .findCount(); assertThat(count).isEqualTo(0); - int count2 = server + int count2 = database .find(Customer.class) .where() .ge("cretime", backedSnapshot) .findCount(); assertThat(count2).isGreaterThan(0); - int count3 = server + int count3 = database .find(Customer.class) .where() .gt("updtime", snapshot) .findCount(); assertThat(count3).isEqualTo(0); - int count4 = server + int count4 = database .find(Customer.class) .where() .ge("updtime", backedSnapshot) diff --git a/tests/test-java16/src/main/java/org/example/records/CustomAccessors.java b/tests/test-java16/src/main/java/org/example/records/CustomAccessors.java new file mode 100644 index 000000000..d3436db7b --- /dev/null +++ b/tests/test-java16/src/main/java/org/example/records/CustomAccessors.java @@ -0,0 +1,22 @@ +package org.example.records; + +import javax.persistence.Embeddable; + +@Embeddable +public record CustomAccessors(String line1, String line2, String city) { + + @Override + public String line1() { + return "line1:" + line1; + } + + @Override + public String line2() { + return line2 + "|" + city; + } + + @Override + public String city() { + return city; + } +} diff --git a/tests/test-java16/src/main/java/org/example/records/CustomConstructor.java b/tests/test-java16/src/main/java/org/example/records/CustomConstructor.java new file mode 100644 index 000000000..964821c69 --- /dev/null +++ b/tests/test-java16/src/main/java/org/example/records/CustomConstructor.java @@ -0,0 +1,18 @@ +package org.example.records; + +import javax.persistence.Embeddable; +import java.util.Objects; + +@Embeddable +public record CustomConstructor(String line1, String line2, String city) { + + public CustomConstructor(String line1, String line2, String city) { + this.line1 = Objects.requireNonNull(line1); + this.line2 = Objects.requireNonNull(line2, "no line2"); + this.city = city; + } + + public CustomConstructor(String line1, String line2) { + this(line1, line2, "Auckland"); + } +} diff --git a/tests/test-java16/src/main/java/org/example/records/CustomEquals.java b/tests/test-java16/src/main/java/org/example/records/CustomEquals.java new file mode 100644 index 000000000..1883a708c --- /dev/null +++ b/tests/test-java16/src/main/java/org/example/records/CustomEquals.java @@ -0,0 +1,24 @@ +package org.example.records; + +import io.avaje.lang.NonNullApi; + +import javax.persistence.Embeddable; +import java.util.Objects; + +@NonNullApi +@Embeddable +public record CustomEquals(String line1, String line2, String city) { + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CustomEquals that = (CustomEquals) o; + return line1.equals(that.line1) && line2.equals(that.line2) && city.equals(that.city); + } + + @Override + public int hashCode() { + return Objects.hash(line1, line2, city); + } +} diff --git a/tests/test-java16/src/main/java/org/example/records/CustomToString.java b/tests/test-java16/src/main/java/org/example/records/CustomToString.java new file mode 100644 index 000000000..8712fa38a --- /dev/null +++ b/tests/test-java16/src/main/java/org/example/records/CustomToString.java @@ -0,0 +1,18 @@ +package org.example.records; + +import io.avaje.lang.NonNullApi; + +import javax.persistence.Embeddable; + +@NonNullApi +@Embeddable +public record CustomToString(String line1, String line2, String city) { + + @Override + public String toString() { + return "[line1='" + line1 + '\'' + + ", line2='" + line2 + '\'' + + ", city='" + city + '\'' + + ']'; + } +} diff --git a/tests/test-java16/src/test/java/org/example/records/CourseRecordEntityTest.java b/tests/test-java16/src/test/java/org/example/records/CourseRecordEntityTest.java index 63e0c7d84..ca0d88005 100644 --- a/tests/test-java16/src/test/java/org/example/records/CourseRecordEntityTest.java +++ b/tests/test-java16/src/test/java/org/example/records/CourseRecordEntityTest.java @@ -19,8 +19,11 @@ class CourseRecordEntityTest { .findOneOrEmpty(); assertThat(found).isPresent(); - assertThat(found.get().id()).isEqualTo(42L); - assertThat(found.get().notes()).isEqualTo("Record"); + CourseRecordEntity courseRecord = found.get(); + assertThat(courseRecord.id()).isEqualTo(42L); + assertThat(courseRecord.notes()).isEqualTo("Record"); + assertThat(courseRecord).isEqualTo(courseRecord); + assertThat(courseRecord.toString()).isEqualTo("CourseRecordEntity[id=42, name=SuppliedId, notes=Record]"); } @Test @@ -35,6 +38,10 @@ class CourseRecordEntityTest { .findOneOrEmpty(); assertThat(second).isPresent(); - assertThat(second.get().notes()).isEqualTo("Record with generated id"); + CourseRecordEntity courseRecord = second.get(); + assertThat(courseRecord.notes()).isEqualTo("Record with generated id"); + + assertThat(courseRecord).isEqualTo(new CourseRecordEntity(1000, "Second", "Record with generated id")); + assertThat(courseRecord.toString()).isEqualTo("CourseRecordEntity[id=1000, name=Second, notes=Record with generated id]"); } } diff --git a/tests/test-java16/src/test/java/org/example/records/CustomAccessorsTest.java b/tests/test-java16/src/test/java/org/example/records/CustomAccessorsTest.java new file mode 100644 index 000000000..02f4d9cb5 --- /dev/null +++ b/tests/test-java16/src/test/java/org/example/records/CustomAccessorsTest.java @@ -0,0 +1,17 @@ +package org.example.records; + +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +class CustomAccessorsTest { + + @Test + void computationInAccessors() { + var one = new CustomAccessors("a", "b", "c"); + assertThat(one.line1()).isEqualTo("line1:a"); + assertThat(one.line2()).isEqualTo("b|c"); + assertThat(one.city()).isEqualTo("c"); + } + +} diff --git a/tests/test-java16/src/test/java/org/example/records/CustomConstructorTest.java b/tests/test-java16/src/test/java/org/example/records/CustomConstructorTest.java new file mode 100644 index 000000000..064e753c4 --- /dev/null +++ b/tests/test-java16/src/test/java/org/example/records/CustomConstructorTest.java @@ -0,0 +1,37 @@ +package org.example.records; + +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.junit.jupiter.api.Assertions.assertThrows; + +class CustomConstructorTest { + + @Test + void nullInput() { + assertThrows(NullPointerException.class, () -> new CustomConstructor(null, "b", "c")); + } + + @Test + void nullInputWithMessage() { + assertThatThrownBy(() -> { + new CustomConstructor("a", null, "c"); + }).isInstanceOf(NullPointerException.class) + .hasMessageContaining("no line2"); + } + + @Test + void alternateConstructor() { + var bean = new CustomConstructor("a", "b"); + assertThat(bean.city()).isEqualTo("Auckland"); + assertThat(bean.line1()).isEqualTo("a"); + assertThat(bean.line2()).isEqualTo("b"); + assertThat(bean).isEqualTo(new CustomConstructor("a", "b", "Auckland")); + assertThat(bean).isEqualTo(new CustomConstructor("a", "b")); + + assertThat(bean).isNotEqualTo(new CustomConstructor("a", "b", "Wellington")); + assertThat(bean).isNotEqualTo(new CustomConstructor("z", "b", "Auckland")); + assertThat(bean).isNotEqualTo(new CustomConstructor("a", "z", "Auckland")); + } +} diff --git a/tests/test-java16/src/test/java/org/example/records/CustomEqualsTest.java b/tests/test-java16/src/test/java/org/example/records/CustomEqualsTest.java new file mode 100644 index 000000000..b7f989c9c --- /dev/null +++ b/tests/test-java16/src/test/java/org/example/records/CustomEqualsTest.java @@ -0,0 +1,16 @@ +package org.example.records; + +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +class CustomEqualsTest { + + @Test + void equals() { + var one = new CustomEquals("a", "b", "c"); + var two = new CustomEquals("a", "b", "c"); + + assertThat(one).isEqualTo(two); + } +} diff --git a/tests/test-java16/src/test/java/org/example/records/CustomToStringTest.java b/tests/test-java16/src/test/java/org/example/records/CustomToStringTest.java new file mode 100644 index 000000000..bcdf7aae0 --- /dev/null +++ b/tests/test-java16/src/test/java/org/example/records/CustomToStringTest.java @@ -0,0 +1,14 @@ +package org.example.records; + +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +class CustomToStringTest { + + @Test + void testToString() { + assertThat(new CustomToString("a", "b", "c").toString()).isEqualTo("[line1='a', line2='b', city='c']"); + assertThat(new CustomToString("z", "x", "y").toString()).isEqualTo("[line1='z', line2='x', city='y']"); + } +} diff --git a/tests/test-java16/src/test/java/org/example/records/RecordAsEmbeddedTest.java b/tests/test-java16/src/test/java/org/example/records/RecordAsEmbeddedTest.java index 90cc1c5e4..5ed9e582d 100644 --- a/tests/test-java16/src/test/java/org/example/records/RecordAsEmbeddedTest.java +++ b/tests/test-java16/src/test/java/org/example/records/RecordAsEmbeddedTest.java @@ -24,7 +24,9 @@ public class RecordAsEmbeddedTest { assert found != null; + assertThat(found.workAddress()).isEqualTo(new Address("45 work", "workling", "wo")); assertThat(found.workAddress().toString()).isEqualTo("Address[line1=45 work, line2=workling, city=wo]"); + assertThat(found.homeAddress()).isEqualTo(new Address("94 home st", "homeline", "wo")); assertThat(found.homeAddress().toString()).isEqualTo("Address[line1=94 home st, line2=homeline, city=wo]"); Contact foundPartial = new QContact() From f54c212b67d2970203acb559f86187d1b9717e3c Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 14 Sep 2022 11:10:10 +1200 Subject: [PATCH 107/127] #2833 - Fix PostgresPlatformProvider plaform sniffing query (Postgres vs Cockroach) --- .../io/ebean/platform/postgres/PostgresPlatformProvider.java | 2 ++ pom.xml | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/platforms/postgres/src/main/java/io/ebean/platform/postgres/PostgresPlatformProvider.java b/platforms/postgres/src/main/java/io/ebean/platform/postgres/PostgresPlatformProvider.java index 554c4aeb5..86c65ab65 100644 --- a/platforms/postgres/src/main/java/io/ebean/platform/postgres/PostgresPlatformProvider.java +++ b/platforms/postgres/src/main/java/io/ebean/platform/postgres/PostgresPlatformProvider.java @@ -61,6 +61,8 @@ public class PostgresPlatformProvider implements DatabasePlatformProvider { } } } + } finally { + connection.rollback(); } if (majorVersion <= 9) { return new Postgres9Platform(); diff --git a/pom.xml b/pom.xml index 15d12f281..7f9ef7b08 100644 --- a/pom.xml +++ b/pom.xml @@ -49,8 +49,8 @@ 13.6.0 6.3 8.2 - 13.9.2 - 13.9.2 + 13.9.3 + 13.9.3 false From ea8e195183d1ed240f34ada6397678d576325740 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 14 Sep 2022 11:12:45 +1200 Subject: [PATCH 108/127] Update test-java16 to use updated agent --- tests/test-java16/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test-java16/pom.xml b/tests/test-java16/pom.xml index a49bb8dc4..5a0098403 100644 --- a/tests/test-java16/pom.xml +++ b/tests/test-java16/pom.xml @@ -66,7 +66,7 @@ true - io.ebean.tile:enhancement:13.6.5 + io.ebean.tile:enhancement:13.9.3 From 18765b3ac212d5a1aa1443511197012673dfc00f Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 14 Sep 2022 11:18:18 +1200 Subject: [PATCH 109/127] [maven-release-plugin] prepare release ebean-parent-13.9.3 --- composites/ebean-clickhouse/pom.xml | 14 ++++++++----- composites/ebean-cockroach/pom.xml | 14 ++++++++----- composites/ebean-db2/pom.xml | 14 ++++++++----- composites/ebean-h2/pom.xml | 14 ++++++++----- composites/ebean-hana/pom.xml | 14 ++++++++----- composites/ebean-mariadb/pom.xml | 14 ++++++++----- composites/ebean-mysql/pom.xml | 14 ++++++++----- composites/ebean-nuodb/pom.xml | 14 ++++++++----- composites/ebean-oracle/pom.xml | 14 ++++++++----- composites/ebean-postgres/pom.xml | 14 ++++++++----- composites/ebean-sqlite/pom.xml | 14 ++++++++----- composites/ebean-sqlserver/pom.xml | 14 ++++++++----- composites/ebean-yugabyte/pom.xml | 14 ++++++++----- composites/ebean/pom.xml | 16 +++++++++------ composites/pom.xml | 2 +- ebean-api/pom.xml | 2 +- ebean-autotune/pom.xml | 8 ++++---- ebean-bom/pom.xml | 32 ++++++++++++++--------------- ebean-core-type/pom.xml | 4 ++-- ebean-core/pom.xml | 16 +++++++-------- ebean-csv-reader/pom.xml | 8 ++++---- ebean-ddl-generator/pom.xml | 8 ++++---- ebean-externalmapping-api/pom.xml | 2 +- ebean-externalmapping-xml/pom.xml | 12 +++++------ ebean-joda-time/pom.xml | 4 ++-- ebean-postgis/pom.xml | 8 ++++---- ebean-querybean/pom.xml | 10 ++++----- ebean-redis/pom.xml | 12 +++++------ ebean-test/pom.xml | 12 +++++------ kotlin-querybean-generator/pom.xml | 10 ++++----- platforms/all/pom.xml | 32 ++++++++++++++++------------- platforms/clickhouse/pom.xml | 8 ++++++-- platforms/db2/pom.xml | 8 ++++++-- platforms/h2/pom.xml | 8 ++++++-- platforms/hana/pom.xml | 8 ++++++-- platforms/hsqldb/pom.xml | 8 ++++++-- platforms/mariadb/pom.xml | 10 ++++++--- platforms/mysql/pom.xml | 8 ++++++-- platforms/nuodb/pom.xml | 8 ++++++-- platforms/oracle/pom.xml | 8 ++++++-- platforms/pom.xml | 2 +- platforms/postgres/pom.xml | 8 ++++++-- platforms/sqlanywhere/pom.xml | 8 ++++++-- platforms/sqlite/pom.xml | 8 ++++++-- platforms/sqlserver/pom.xml | 8 ++++++-- pom.xml | 4 ++-- querybean-generator/pom.xml | 2 +- 47 files changed, 303 insertions(+), 191 deletions(-) diff --git a/composites/ebean-clickhouse/pom.xml b/composites/ebean-clickhouse/pom.xml index 325a08b36..e3dd99251 100644 --- a/composites/ebean-clickhouse/pom.xml +++ b/composites/ebean-clickhouse/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-clickhouse @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-clickhouse - 13.9.3-SNAPSHOT + 13.9.3 + + + ebean-parent-13.9.3 + diff --git a/composites/ebean-cockroach/pom.xml b/composites/ebean-cockroach/pom.xml index e54b7fb54..7858025b9 100644 --- a/composites/ebean-cockroach/pom.xml +++ b/composites/ebean-cockroach/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-cockroach @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-postgres - 13.9.3-SNAPSHOT + 13.9.3 + + + ebean-parent-13.9.3 + diff --git a/composites/ebean-db2/pom.xml b/composites/ebean-db2/pom.xml index b7ca8580b..80f3054ac 100644 --- a/composites/ebean-db2/pom.xml +++ b/composites/ebean-db2/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-db2 @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-db2 - 13.9.3-SNAPSHOT + 13.9.3 + + + ebean-parent-13.9.3 + diff --git a/composites/ebean-h2/pom.xml b/composites/ebean-h2/pom.xml index 34ff1b3d1..d5f532d6c 100644 --- a/composites/ebean-h2/pom.xml +++ b/composites/ebean-h2/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-h2 @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-h2 - 13.9.3-SNAPSHOT + 13.9.3 + + + ebean-parent-13.9.3 + diff --git a/composites/ebean-hana/pom.xml b/composites/ebean-hana/pom.xml index 17778f995..e58b15861 100644 --- a/composites/ebean-hana/pom.xml +++ b/composites/ebean-hana/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-hana @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-hana - 13.9.3-SNAPSHOT + 13.9.3 + + + ebean-parent-13.9.3 + diff --git a/composites/ebean-mariadb/pom.xml b/composites/ebean-mariadb/pom.xml index 48a633bcf..83f68d6a1 100644 --- a/composites/ebean-mariadb/pom.xml +++ b/composites/ebean-mariadb/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-mariadb @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-mariadb - 13.9.3-SNAPSHOT + 13.9.3 + + + ebean-parent-13.9.3 + diff --git a/composites/ebean-mysql/pom.xml b/composites/ebean-mysql/pom.xml index a773aea58..a255ff89d 100644 --- a/composites/ebean-mysql/pom.xml +++ b/composites/ebean-mysql/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-mysql @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-mysql - 13.9.3-SNAPSHOT + 13.9.3 + + + ebean-parent-13.9.3 + diff --git a/composites/ebean-nuodb/pom.xml b/composites/ebean-nuodb/pom.xml index e6390806a..1871c98a1 100644 --- a/composites/ebean-nuodb/pom.xml +++ b/composites/ebean-nuodb/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-nuodb @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-nuodb - 13.9.3-SNAPSHOT + 13.9.3 + + + ebean-parent-13.9.3 + diff --git a/composites/ebean-oracle/pom.xml b/composites/ebean-oracle/pom.xml index d35c38ca6..d9936027d 100644 --- a/composites/ebean-oracle/pom.xml +++ b/composites/ebean-oracle/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-oracle @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-oracle - 13.9.3-SNAPSHOT + 13.9.3 + + + ebean-parent-13.9.3 + diff --git a/composites/ebean-postgres/pom.xml b/composites/ebean-postgres/pom.xml index 9681d4079..cab645d3f 100644 --- a/composites/ebean-postgres/pom.xml +++ b/composites/ebean-postgres/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-postgres @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-postgres - 13.9.3-SNAPSHOT + 13.9.3 + + + ebean-parent-13.9.3 + diff --git a/composites/ebean-sqlite/pom.xml b/composites/ebean-sqlite/pom.xml index ab98db436..0f8f415da 100644 --- a/composites/ebean-sqlite/pom.xml +++ b/composites/ebean-sqlite/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-sqlite @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-sqlite - 13.9.3-SNAPSHOT + 13.9.3 + + + ebean-parent-13.9.3 + diff --git a/composites/ebean-sqlserver/pom.xml b/composites/ebean-sqlserver/pom.xml index 120ad3635..52e45303b 100644 --- a/composites/ebean-sqlserver/pom.xml +++ b/composites/ebean-sqlserver/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-sqlserver @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-sqlserver - 13.9.3-SNAPSHOT + 13.9.3 + + + ebean-parent-13.9.3 + diff --git a/composites/ebean-yugabyte/pom.xml b/composites/ebean-yugabyte/pom.xml index f21c70ef0..24cf4dda2 100644 --- a/composites/ebean-yugabyte/pom.xml +++ b/composites/ebean-yugabyte/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-yugabyte @@ -16,13 +16,13 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 @@ -35,14 +35,18 @@ io.ebean ebean-querybean - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-postgres - 13.9.3-SNAPSHOT + 13.9.3 + + + ebean-parent-13.9.3 + diff --git a/composites/ebean/pom.xml b/composites/ebean/pom.xml index 9bf3fe041..e8d4a223b 100644 --- a/composites/ebean/pom.xml +++ b/composites/ebean/pom.xml @@ -4,7 +4,7 @@ composites io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean (all platforms) @@ -16,19 +16,19 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-joda-time - 13.9.3-SNAPSHOT + 13.9.3 @@ -41,14 +41,18 @@ io.ebean ebean-querybean - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-all - 13.9.3-SNAPSHOT + 13.9.3 + + + ebean-parent-13.9.3 + diff --git a/composites/pom.xml b/composites/pom.xml index ddad731da..c2720f37c 100644 --- a/composites/pom.xml +++ b/composites/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3-SNAPSHOT + 13.9.3 composites diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml index 574614a47..dd09f77f8 100644 --- a/ebean-api/pom.xml +++ b/ebean-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean api diff --git a/ebean-autotune/pom.xml b/ebean-autotune/pom.xml index cd8fe3659..31424e3ac 100644 --- a/ebean-autotune/pom.xml +++ b/ebean-autotune/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3-SNAPSHOT + 13.9.3 @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.9.3 ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 provided @@ -55,7 +55,7 @@ io.ebean ebean-platform-h2 - 13.9.3-SNAPSHOT + 13.9.3 test diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index d8d18b0a8..7a516e34b 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean bom @@ -89,94 +89,94 @@ io.ebean ebean - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-core-type - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-joda-time - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-ddl-generator - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-externalmapping-api - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-externalmapping-xml - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-autotune - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-querybean - 13.9.3-SNAPSHOT + 13.9.3 io.ebean querybean-generator - 13.9.3-SNAPSHOT + 13.9.3 provided io.ebean kotlin-querybean-generator - 13.9.3-SNAPSHOT + 13.9.3 provided io.ebean ebean-test - 13.9.3-SNAPSHOT + 13.9.3 test io.ebean ebean-postgis - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-redis - 13.9.3-SNAPSHOT + 13.9.3 diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index f761398ee..926e285f1 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index d897a28f6..f40bc1313 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-core @@ -15,14 +15,14 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.9.3 io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 @@ -46,13 +46,13 @@ io.ebean ebean-core-type - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-externalmapping-api - 13.9.3-SNAPSHOT + 13.9.3 @@ -143,21 +143,21 @@ io.ebean ebean-platform-h2 - 13.9.3-SNAPSHOT + 13.9.3 test io.ebean ebean-platform-postgres - 13.9.3-SNAPSHOT + 13.9.3 test io.ebean ebean-platform-sqlserver - 13.9.3-SNAPSHOT + 13.9.3 test diff --git a/ebean-csv-reader/pom.xml b/ebean-csv-reader/pom.xml index 1dd91c9b6..dae7cc72e 100644 --- a/ebean-csv-reader/pom.xml +++ b/ebean-csv-reader/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-csv-reader @@ -14,21 +14,21 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 provided io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 provided io.ebean ebean-test - 13.9.3-SNAPSHOT + 13.9.3 test diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index 36f5d3340..cbe81f10c 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 13.9.3-SNAPSHOT + 13.9.3 provided io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 provided @@ -58,7 +58,7 @@ io.ebean ebean-platform-all - 13.9.3-SNAPSHOT + 13.9.3 test diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index 546fd122b..b7933d4bf 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 9e965ef28..de8e437e0 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,12 +4,12 @@ ebean-parent io.ebean - 13.9.3-SNAPSHOT + 13.9.3 scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.9.3 ebean external mapping xml @@ -21,7 +21,7 @@ io.ebean ebean-externalmapping-api - 13.9.3-SNAPSHOT + 13.9.3 @@ -54,21 +54,21 @@ io.ebean ebean-platform-h2 - 13.9.3-SNAPSHOT + 13.9.3 test io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 test io.ebean ebean-ddl-generator - 13.9.3-SNAPSHOT + 13.9.3 test diff --git a/ebean-joda-time/pom.xml b/ebean-joda-time/pom.xml index 769d89dc6..b2ca9b4fe 100644 --- a/ebean-joda-time/pom.xml +++ b/ebean-joda-time/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.9.3-SNAPSHOT + 13.9.3 4.0.0 @@ -14,7 +14,7 @@ io.ebean ebean-core-type - 13.9.3-SNAPSHOT + 13.9.3 provided diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index e561b7b6b..afa05d44f 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean postgis @@ -22,14 +22,14 @@ io.ebean ebean-platform-postgres - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 provided @@ -65,7 +65,7 @@ io.ebean ebean-test - 13.9.3-SNAPSHOT + 13.9.3 test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 174e0274a..4a08d858a 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 provided @@ -63,21 +63,21 @@ io.ebean ebean-ddl-generator - 13.9.3-SNAPSHOT + 13.9.3 test io.ebean querybean-generator - 13.9.3-SNAPSHOT + 13.9.3 test io.ebean ebean-test - 13.9.3-SNAPSHOT + 13.9.3 test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index a0f50b261..ab0904b3b 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 provided io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 provided io.ebean ebean-querybean - 13.9.3-SNAPSHOT + 13.9.3 test io.ebean querybean-generator - 13.9.3-SNAPSHOT + 13.9.3 test io.ebean ebean-test - 13.9.3-SNAPSHOT + 13.9.3 test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 4c50ebdc2..9637c5901 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean test @@ -28,20 +28,20 @@ io.ebean ebean-platform-h2 - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 provided io.ebean ebean-ddl-generator - 13.9.3-SNAPSHOT + 13.9.3 @@ -105,14 +105,14 @@ io.ebean ebean-joda-time - 13.9.3-SNAPSHOT + 13.9.3 test io.ebean ebean-platform-all - 13.9.3-SNAPSHOT + 13.9.3 test diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index 3ed0a8dca..62a3e6d15 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3-SNAPSHOT + 13.9.3 kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 13.9.3-SNAPSHOT + 13.9.3 test @@ -43,7 +43,7 @@ io.ebean ebean-core - 13.9.3-SNAPSHOT + 13.9.3 test @@ -64,14 +64,14 @@ io.ebean ebean-platform-h2 - 13.9.3-SNAPSHOT + 13.9.3 test io.ebean ebean-ddl-generator - 13.9.3-SNAPSHOT + 13.9.3 test diff --git a/platforms/all/pom.xml b/platforms/all/pom.xml index b0bd37bb3..ff30af61d 100644 --- a/platforms/all/pom.xml +++ b/platforms/all/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-platform-all @@ -14,68 +14,72 @@ io.ebean ebean-platform-h2 - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-clickhouse - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-db2 - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-hana - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-hsqldb - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-mysql - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-mariadb - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-nuodb - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-oracle - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-postgres - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-sqlanywhere - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-sqlite - 13.9.3-SNAPSHOT + 13.9.3 io.ebean ebean-platform-sqlserver - 13.9.3-SNAPSHOT + 13.9.3 + + + ebean-parent-13.9.3 + diff --git a/platforms/clickhouse/pom.xml b/platforms/clickhouse/pom.xml index 4f0a22382..17cd11446 100644 --- a/platforms/clickhouse/pom.xml +++ b/platforms/clickhouse/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-platform-clickhouse @@ -14,8 +14,12 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 + + + ebean-parent-13.9.3 + diff --git a/platforms/db2/pom.xml b/platforms/db2/pom.xml index 18bc780c6..cd952bbba 100644 --- a/platforms/db2/pom.xml +++ b/platforms/db2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-platform-db2 @@ -14,8 +14,12 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 + + + ebean-parent-13.9.3 + diff --git a/platforms/h2/pom.xml b/platforms/h2/pom.xml index 5e51d404b..32cc1e995 100644 --- a/platforms/h2/pom.xml +++ b/platforms/h2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.3-SNAPSHOT + 13.9.3 ebean-platform-h2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.9.3-SNAPSHOT + 13.9.3 @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.9.3 + HEAD ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 13.9.3 + 13.9.4-SNAPSHOT provided @@ -55,7 +55,7 @@ io.ebean ebean-platform-h2 - 13.9.3 + 13.9.4-SNAPSHOT test diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index 7a516e34b..b6da6d42e 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3 + 13.9.4-SNAPSHOT ebean bom @@ -89,94 +89,94 @@ io.ebean ebean - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-api - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-core - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-core-type - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-joda-time - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-ddl-generator - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-externalmapping-api - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-externalmapping-xml - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-autotune - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-querybean - 13.9.3 + 13.9.4-SNAPSHOT io.ebean querybean-generator - 13.9.3 + 13.9.4-SNAPSHOT provided io.ebean kotlin-querybean-generator - 13.9.3 + 13.9.4-SNAPSHOT provided io.ebean ebean-test - 13.9.3 + 13.9.4-SNAPSHOT test io.ebean ebean-postgis - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-redis - 13.9.3 + 13.9.4-SNAPSHOT diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index 926e285f1..bb8661018 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3 + 13.9.4-SNAPSHOT ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 13.9.3 + 13.9.4-SNAPSHOT diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index f40bc1313..f26f2503f 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.9.3 + 13.9.4-SNAPSHOT ebean-core @@ -15,14 +15,14 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.9.3 + HEAD io.ebean ebean-api - 13.9.3 + 13.9.4-SNAPSHOT @@ -46,13 +46,13 @@ io.ebean ebean-core-type - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-externalmapping-api - 13.9.3 + 13.9.4-SNAPSHOT @@ -143,21 +143,21 @@ io.ebean ebean-platform-h2 - 13.9.3 + 13.9.4-SNAPSHOT test io.ebean ebean-platform-postgres - 13.9.3 + 13.9.4-SNAPSHOT test io.ebean ebean-platform-sqlserver - 13.9.3 + 13.9.4-SNAPSHOT test diff --git a/ebean-csv-reader/pom.xml b/ebean-csv-reader/pom.xml index dae7cc72e..9cf2cc9e2 100644 --- a/ebean-csv-reader/pom.xml +++ b/ebean-csv-reader/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3 + 13.9.4-SNAPSHOT ebean-csv-reader @@ -14,21 +14,21 @@ io.ebean ebean-api - 13.9.3 + 13.9.4-SNAPSHOT provided io.ebean ebean-core - 13.9.3 + 13.9.4-SNAPSHOT provided io.ebean ebean-test - 13.9.3 + 13.9.4-SNAPSHOT test diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index cbe81f10c..0f0ac9057 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3 + 13.9.4-SNAPSHOT ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 13.9.3 + 13.9.4-SNAPSHOT provided io.ebean ebean-core - 13.9.3 + 13.9.4-SNAPSHOT provided @@ -58,7 +58,7 @@ io.ebean ebean-platform-all - 13.9.3 + 13.9.4-SNAPSHOT test diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index b7933d4bf..7b5ea4278 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3 + 13.9.4-SNAPSHOT ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index de8e437e0..7ba250364 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,12 +4,12 @@ ebean-parent io.ebean - 13.9.3 + 13.9.4-SNAPSHOT scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.9.3 + HEAD ebean external mapping xml @@ -21,7 +21,7 @@ io.ebean ebean-externalmapping-api - 13.9.3 + 13.9.4-SNAPSHOT @@ -54,21 +54,21 @@ io.ebean ebean-platform-h2 - 13.9.3 + 13.9.4-SNAPSHOT test io.ebean ebean-core - 13.9.3 + 13.9.4-SNAPSHOT test io.ebean ebean-ddl-generator - 13.9.3 + 13.9.4-SNAPSHOT test diff --git a/ebean-joda-time/pom.xml b/ebean-joda-time/pom.xml index b2ca9b4fe..8fb4e731c 100644 --- a/ebean-joda-time/pom.xml +++ b/ebean-joda-time/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.9.3 + 13.9.4-SNAPSHOT 4.0.0 @@ -14,7 +14,7 @@ io.ebean ebean-core-type - 13.9.3 + 13.9.4-SNAPSHOT provided diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index afa05d44f..33ef6d878 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3 + 13.9.4-SNAPSHOT ebean postgis @@ -22,14 +22,14 @@ io.ebean ebean-platform-postgres - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-core - 13.9.3 + 13.9.4-SNAPSHOT provided @@ -65,7 +65,7 @@ io.ebean ebean-test - 13.9.3 + 13.9.4-SNAPSHOT test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 4a08d858a..bccbbc42b 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3 + 13.9.4-SNAPSHOT ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 13.9.3 + 13.9.4-SNAPSHOT provided @@ -63,21 +63,21 @@ io.ebean ebean-ddl-generator - 13.9.3 + 13.9.4-SNAPSHOT test io.ebean querybean-generator - 13.9.3 + 13.9.4-SNAPSHOT test io.ebean ebean-test - 13.9.3 + 13.9.4-SNAPSHOT test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index ab0904b3b..fc0791897 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3 + 13.9.4-SNAPSHOT ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 13.9.3 + 13.9.4-SNAPSHOT provided io.ebean ebean-core - 13.9.3 + 13.9.4-SNAPSHOT provided io.ebean ebean-querybean - 13.9.3 + 13.9.4-SNAPSHOT test io.ebean querybean-generator - 13.9.3 + 13.9.4-SNAPSHOT test io.ebean ebean-test - 13.9.3 + 13.9.4-SNAPSHOT test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 9637c5901..e407707eb 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3 + 13.9.4-SNAPSHOT ebean test @@ -28,20 +28,20 @@ io.ebean ebean-platform-h2 - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-core - 13.9.3 + 13.9.4-SNAPSHOT provided io.ebean ebean-ddl-generator - 13.9.3 + 13.9.4-SNAPSHOT @@ -105,14 +105,14 @@ io.ebean ebean-joda-time - 13.9.3 + 13.9.4-SNAPSHOT test io.ebean ebean-platform-all - 13.9.3 + 13.9.4-SNAPSHOT test diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index 62a3e6d15..283865002 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.3 + 13.9.4-SNAPSHOT kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 13.9.3 + 13.9.4-SNAPSHOT test @@ -43,7 +43,7 @@ io.ebean ebean-core - 13.9.3 + 13.9.4-SNAPSHOT test @@ -64,14 +64,14 @@ io.ebean ebean-platform-h2 - 13.9.3 + 13.9.4-SNAPSHOT test io.ebean ebean-ddl-generator - 13.9.3 + 13.9.4-SNAPSHOT test diff --git a/platforms/all/pom.xml b/platforms/all/pom.xml index ff30af61d..bb772dc27 100644 --- a/platforms/all/pom.xml +++ b/platforms/all/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.3 + 13.9.4-SNAPSHOT ebean-platform-all @@ -14,72 +14,68 @@ io.ebean ebean-platform-h2 - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-platform-clickhouse - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-platform-db2 - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-platform-hana - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-platform-hsqldb - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-platform-mysql - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-platform-mariadb - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-platform-nuodb - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-platform-oracle - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-platform-postgres - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-platform-sqlanywhere - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-platform-sqlite - 13.9.3 + 13.9.4-SNAPSHOT io.ebean ebean-platform-sqlserver - 13.9.3 + 13.9.4-SNAPSHOT - - - ebean-parent-13.9.3 - diff --git a/platforms/clickhouse/pom.xml b/platforms/clickhouse/pom.xml index 17cd11446..3d18d32d0 100644 --- a/platforms/clickhouse/pom.xml +++ b/platforms/clickhouse/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.3 + 13.9.4-SNAPSHOT ebean-platform-clickhouse @@ -14,12 +14,8 @@ io.ebean ebean-api - 13.9.3 + 13.9.4-SNAPSHOT - - - ebean-parent-13.9.3 - diff --git a/platforms/db2/pom.xml b/platforms/db2/pom.xml index cd952bbba..4ead949f7 100644 --- a/platforms/db2/pom.xml +++ b/platforms/db2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.3 + 13.9.4-SNAPSHOT ebean-platform-db2 @@ -14,12 +14,8 @@ io.ebean ebean-api - 13.9.3 + 13.9.4-SNAPSHOT - - - ebean-parent-13.9.3 - diff --git a/platforms/h2/pom.xml b/platforms/h2/pom.xml index 32cc1e995..1b8974243 100644 --- a/platforms/h2/pom.xml +++ b/platforms/h2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.3 + 13.9.4-SNAPSHOT ebean-platform-h2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.9.3 + 13.9.4-SNAPSHOT @@ -26,7 +26,7 @@ io.ebean ebean-core - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT provided @@ -55,7 +55,7 @@ io.ebean ebean-platform-h2 - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index 79b8d7ec4..00ba8d167 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT ebean bom @@ -89,106 +89,106 @@ io.ebean ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-api - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-core - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-core-type - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-joda-time - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-jackson-jsonnode - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-jackson-mapper - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-ddl-generator - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-externalmapping-api - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-externalmapping-xml - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-autotune - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-querybean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean querybean-generator - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT provided io.ebean kotlin-querybean-generator - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT provided io.ebean ebean-test - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test io.ebean ebean-postgis - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-redis - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index e27bffb9a..675432e99 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index 08e75a765..b48c1fca1 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT ebean-core @@ -22,7 +22,7 @@ io.ebean ebean-api - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT @@ -46,13 +46,13 @@ io.ebean ebean-core-type - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-externalmapping-api - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT @@ -143,21 +143,21 @@ io.ebean ebean-platform-h2 - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test io.ebean ebean-platform-postgres - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test io.ebean ebean-platform-sqlserver - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test diff --git a/ebean-csv-reader/pom.xml b/ebean-csv-reader/pom.xml index 9cf2cc9e2..6a43ea791 100644 --- a/ebean-csv-reader/pom.xml +++ b/ebean-csv-reader/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT ebean-csv-reader @@ -14,21 +14,21 @@ io.ebean ebean-api - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT provided io.ebean ebean-core - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT provided io.ebean ebean-test - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index 0f0ac9057..eb8cb8979 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT provided io.ebean ebean-core - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT provided @@ -58,7 +58,7 @@ io.ebean ebean-platform-all - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index 7b5ea4278..d0935cb47 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 7ba250364..448a0b1e8 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT @@ -21,7 +21,7 @@ io.ebean ebean-externalmapping-api - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT @@ -54,21 +54,21 @@ io.ebean ebean-platform-h2 - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test io.ebean ebean-core - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test io.ebean ebean-ddl-generator - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test diff --git a/ebean-jackson-jsonnode/pom.xml b/ebean-jackson-jsonnode/pom.xml index 22f1b751e..5e6ddf525 100644 --- a/ebean-jackson-jsonnode/pom.xml +++ b/ebean-jackson-jsonnode/pom.xml @@ -6,7 +6,7 @@ ebean-parent io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT ebean-jackson-jsonnode @@ -16,7 +16,7 @@ io.ebean ebean-core-type - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT provided diff --git a/ebean-jackson-mapper/pom.xml b/ebean-jackson-mapper/pom.xml index b5dcd8006..dd387292b 100644 --- a/ebean-jackson-mapper/pom.xml +++ b/ebean-jackson-mapper/pom.xml @@ -5,7 +5,7 @@ ebean-parent io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT 4.0.0 @@ -16,7 +16,7 @@ io.ebean ebean-core-type - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT provided diff --git a/ebean-joda-time/pom.xml b/ebean-joda-time/pom.xml index 8fb4e731c..d1fb5c2d7 100644 --- a/ebean-joda-time/pom.xml +++ b/ebean-joda-time/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT 4.0.0 @@ -14,7 +14,7 @@ io.ebean ebean-core-type - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT provided diff --git a/ebean-kotlin/pom.xml b/ebean-kotlin/pom.xml index 22505bb94..408c7c19a 100644 --- a/ebean-kotlin/pom.xml +++ b/ebean-kotlin/pom.xml @@ -6,7 +6,7 @@ ebean-parent io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT ebean-kotlin @@ -28,7 +28,7 @@ io.ebean ebean-core - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT provided @@ -50,7 +50,7 @@ io.ebean ebean-test - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 6ae191b66..28af54254 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT ebean postgis @@ -22,14 +22,14 @@ io.ebean ebean-platform-postgres - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-core - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT provided @@ -65,7 +65,7 @@ io.ebean ebean-test - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 4af8ac309..9c2c37adc 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT provided @@ -63,21 +63,21 @@ io.ebean ebean-ddl-generator - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test io.ebean querybean-generator - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test io.ebean ebean-test - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index fc0791897..268f70119 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT provided io.ebean ebean-core - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT provided io.ebean ebean-querybean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test io.ebean querybean-generator - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test io.ebean ebean-test - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index 39fbb836e..f41b02a65 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT ebean test @@ -28,20 +28,20 @@ io.ebean ebean-platform-h2 - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-core - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT provided io.ebean ebean-ddl-generator - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT @@ -105,28 +105,28 @@ io.ebean ebean-joda-time - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test io.ebean ebean-jackson-jsonnode - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test io.ebean ebean-jackson-mapper - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test io.ebean ebean-platform-all - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index 283865002..ae90f3ab0 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test @@ -43,7 +43,7 @@ io.ebean ebean-core - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test @@ -64,14 +64,14 @@ io.ebean ebean-platform-h2 - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test io.ebean ebean-ddl-generator - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT test diff --git a/platforms/all/pom.xml b/platforms/all/pom.xml index bb772dc27..20b0c911a 100644 --- a/platforms/all/pom.xml +++ b/platforms/all/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT ebean-platform-all @@ -14,67 +14,67 @@ io.ebean ebean-platform-h2 - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-platform-clickhouse - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-platform-db2 - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-platform-hana - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-platform-hsqldb - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-platform-mysql - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-platform-mariadb - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-platform-nuodb - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-platform-oracle - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-platform-postgres - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-platform-sqlanywhere - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-platform-sqlite - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT io.ebean ebean-platform-sqlserver - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT diff --git a/platforms/clickhouse/pom.xml b/platforms/clickhouse/pom.xml index 3d18d32d0..78fbffdf9 100644 --- a/platforms/clickhouse/pom.xml +++ b/platforms/clickhouse/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT ebean-platform-clickhouse @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT diff --git a/platforms/db2/pom.xml b/platforms/db2/pom.xml index 4ead949f7..927ef3e11 100644 --- a/platforms/db2/pom.xml +++ b/platforms/db2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT ebean-platform-db2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT diff --git a/platforms/h2/pom.xml b/platforms/h2/pom.xml index 1b8974243..70b50dcc6 100644 --- a/platforms/h2/pom.xml +++ b/platforms/h2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT ebean-platform-h2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.9.4-SNAPSHOT + 13.10.0-SNAPSHOT @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.10.0 ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 13.10.0-SNAPSHOT + 13.10.0 provided @@ -55,7 +55,7 @@ io.ebean ebean-platform-h2 - 13.10.0-SNAPSHOT + 13.10.0 test diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index 00ba8d167..3c55b2a32 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0-SNAPSHOT + 13.10.0 ebean bom @@ -89,106 +89,106 @@ io.ebean ebean - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-api - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-core - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-core-type - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-joda-time - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-jackson-jsonnode - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-jackson-mapper - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-ddl-generator - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-externalmapping-api - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-externalmapping-xml - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-autotune - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-querybean - 13.10.0-SNAPSHOT + 13.10.0 io.ebean querybean-generator - 13.10.0-SNAPSHOT + 13.10.0 provided io.ebean kotlin-querybean-generator - 13.10.0-SNAPSHOT + 13.10.0 provided io.ebean ebean-test - 13.10.0-SNAPSHOT + 13.10.0 test io.ebean ebean-postgis - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-redis - 13.10.0-SNAPSHOT + 13.10.0 diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index 675432e99..b2b62b88f 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0-SNAPSHOT + 13.10.0 ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 13.10.0-SNAPSHOT + 13.10.0 diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index b48c1fca1..08796e355 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.10.0-SNAPSHOT + 13.10.0 ebean-core @@ -15,14 +15,14 @@ scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.10.0 io.ebean ebean-api - 13.10.0-SNAPSHOT + 13.10.0 @@ -46,13 +46,13 @@ io.ebean ebean-core-type - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-externalmapping-api - 13.10.0-SNAPSHOT + 13.10.0 @@ -143,21 +143,21 @@ io.ebean ebean-platform-h2 - 13.10.0-SNAPSHOT + 13.10.0 test io.ebean ebean-platform-postgres - 13.10.0-SNAPSHOT + 13.10.0 test io.ebean ebean-platform-sqlserver - 13.10.0-SNAPSHOT + 13.10.0 test diff --git a/ebean-csv-reader/pom.xml b/ebean-csv-reader/pom.xml index 6a43ea791..c6690fd7f 100644 --- a/ebean-csv-reader/pom.xml +++ b/ebean-csv-reader/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0-SNAPSHOT + 13.10.0 ebean-csv-reader @@ -14,21 +14,21 @@ io.ebean ebean-api - 13.10.0-SNAPSHOT + 13.10.0 provided io.ebean ebean-core - 13.10.0-SNAPSHOT + 13.10.0 provided io.ebean ebean-test - 13.10.0-SNAPSHOT + 13.10.0 test diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index eb8cb8979..322a67d03 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0-SNAPSHOT + 13.10.0 ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 13.10.0-SNAPSHOT + 13.10.0 provided io.ebean ebean-core - 13.10.0-SNAPSHOT + 13.10.0 provided @@ -58,7 +58,7 @@ io.ebean ebean-platform-all - 13.10.0-SNAPSHOT + 13.10.0 test diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index d0935cb47..a9debf943 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0-SNAPSHOT + 13.10.0 ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 448a0b1e8..096f3d176 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,12 +4,12 @@ ebean-parent io.ebean - 13.10.0-SNAPSHOT + 13.10.0 scm:git:git@github.com:ebean-orm/ebean.git - HEAD + ebean-parent-13.10.0 ebean external mapping xml @@ -21,7 +21,7 @@ io.ebean ebean-externalmapping-api - 13.10.0-SNAPSHOT + 13.10.0 @@ -54,21 +54,21 @@ io.ebean ebean-platform-h2 - 13.10.0-SNAPSHOT + 13.10.0 test io.ebean ebean-core - 13.10.0-SNAPSHOT + 13.10.0 test io.ebean ebean-ddl-generator - 13.10.0-SNAPSHOT + 13.10.0 test diff --git a/ebean-jackson-jsonnode/pom.xml b/ebean-jackson-jsonnode/pom.xml index 5e6ddf525..1f1d980c4 100644 --- a/ebean-jackson-jsonnode/pom.xml +++ b/ebean-jackson-jsonnode/pom.xml @@ -1,12 +1,10 @@ - + 4.0.0 ebean-parent io.ebean - 13.10.0-SNAPSHOT + 13.10.0 ebean-jackson-jsonnode @@ -16,7 +14,7 @@ io.ebean ebean-core-type - 13.10.0-SNAPSHOT + 13.10.0 provided diff --git a/ebean-jackson-mapper/pom.xml b/ebean-jackson-mapper/pom.xml index dd387292b..495005d4c 100644 --- a/ebean-jackson-mapper/pom.xml +++ b/ebean-jackson-mapper/pom.xml @@ -1,11 +1,9 @@ - + ebean-parent io.ebean - 13.10.0-SNAPSHOT + 13.10.0 4.0.0 @@ -16,7 +14,7 @@ io.ebean ebean-core-type - 13.10.0-SNAPSHOT + 13.10.0 provided diff --git a/ebean-joda-time/pom.xml b/ebean-joda-time/pom.xml index d1fb5c2d7..e5a816f11 100644 --- a/ebean-joda-time/pom.xml +++ b/ebean-joda-time/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.10.0-SNAPSHOT + 13.10.0 4.0.0 @@ -14,7 +14,7 @@ io.ebean ebean-core-type - 13.10.0-SNAPSHOT + 13.10.0 provided diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 28af54254..37cb257f5 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0-SNAPSHOT + 13.10.0 ebean postgis @@ -22,14 +22,14 @@ io.ebean ebean-platform-postgres - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-core - 13.10.0-SNAPSHOT + 13.10.0 provided @@ -65,7 +65,7 @@ io.ebean ebean-test - 13.10.0-SNAPSHOT + 13.10.0 test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 9c2c37adc..1869ecd80 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0-SNAPSHOT + 13.10.0 ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 13.10.0-SNAPSHOT + 13.10.0 provided @@ -63,21 +63,21 @@ io.ebean ebean-ddl-generator - 13.10.0-SNAPSHOT + 13.10.0 test io.ebean querybean-generator - 13.10.0-SNAPSHOT + 13.10.0 test io.ebean ebean-test - 13.10.0-SNAPSHOT + 13.10.0 test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index 268f70119..6294d786f 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0-SNAPSHOT + 13.10.0 ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 13.10.0-SNAPSHOT + 13.10.0 provided io.ebean ebean-core - 13.10.0-SNAPSHOT + 13.10.0 provided io.ebean ebean-querybean - 13.10.0-SNAPSHOT + 13.10.0 test io.ebean querybean-generator - 13.10.0-SNAPSHOT + 13.10.0 test io.ebean ebean-test - 13.10.0-SNAPSHOT + 13.10.0 test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index f41b02a65..dfcd9e07d 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0-SNAPSHOT + 13.10.0 ebean test @@ -28,20 +28,20 @@ io.ebean ebean-platform-h2 - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-core - 13.10.0-SNAPSHOT + 13.10.0 provided io.ebean ebean-ddl-generator - 13.10.0-SNAPSHOT + 13.10.0 @@ -105,28 +105,28 @@ io.ebean ebean-joda-time - 13.10.0-SNAPSHOT + 13.10.0 test io.ebean ebean-jackson-jsonnode - 13.10.0-SNAPSHOT + 13.10.0 test io.ebean ebean-jackson-mapper - 13.10.0-SNAPSHOT + 13.10.0 test io.ebean ebean-platform-all - 13.10.0-SNAPSHOT + 13.10.0 test diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index ae90f3ab0..9002ecb84 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0-SNAPSHOT + 13.10.0 kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 13.10.0-SNAPSHOT + 13.10.0 test @@ -43,7 +43,7 @@ io.ebean ebean-core - 13.10.0-SNAPSHOT + 13.10.0 test @@ -64,14 +64,14 @@ io.ebean ebean-platform-h2 - 13.10.0-SNAPSHOT + 13.10.0 test io.ebean ebean-ddl-generator - 13.10.0-SNAPSHOT + 13.10.0 test diff --git a/platforms/all/pom.xml b/platforms/all/pom.xml index 20b0c911a..98e103741 100644 --- a/platforms/all/pom.xml +++ b/platforms/all/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.10.0-SNAPSHOT + 13.10.0 ebean-platform-all @@ -14,68 +14,72 @@ io.ebean ebean-platform-h2 - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-platform-clickhouse - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-platform-db2 - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-platform-hana - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-platform-hsqldb - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-platform-mysql - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-platform-mariadb - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-platform-nuodb - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-platform-oracle - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-platform-postgres - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-platform-sqlanywhere - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-platform-sqlite - 13.10.0-SNAPSHOT + 13.10.0 io.ebean ebean-platform-sqlserver - 13.10.0-SNAPSHOT + 13.10.0 + + + ebean-parent-13.10.0 + diff --git a/platforms/clickhouse/pom.xml b/platforms/clickhouse/pom.xml index 78fbffdf9..49b2f8867 100644 --- a/platforms/clickhouse/pom.xml +++ b/platforms/clickhouse/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.10.0-SNAPSHOT + 13.10.0 ebean-platform-clickhouse @@ -14,8 +14,12 @@ io.ebean ebean-api - 13.10.0-SNAPSHOT + 13.10.0 + + + ebean-parent-13.10.0 + diff --git a/platforms/db2/pom.xml b/platforms/db2/pom.xml index 927ef3e11..0177115d3 100644 --- a/platforms/db2/pom.xml +++ b/platforms/db2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.10.0-SNAPSHOT + 13.10.0 ebean-platform-db2 @@ -14,8 +14,12 @@ io.ebean ebean-api - 13.10.0-SNAPSHOT + 13.10.0 + + + ebean-parent-13.10.0 + diff --git a/platforms/h2/pom.xml b/platforms/h2/pom.xml index 70b50dcc6..e05ec34d9 100644 --- a/platforms/h2/pom.xml +++ b/platforms/h2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.10.0-SNAPSHOT + 13.10.0 ebean-platform-h2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.10.0-SNAPSHOT + 13.10.0 @@ -14,7 +14,7 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.10.0 + HEAD ebean autotune @@ -26,7 +26,7 @@ io.ebean ebean-core - 13.10.0 + 13.10.1-SNAPSHOT provided @@ -55,7 +55,7 @@ io.ebean ebean-platform-h2 - 13.10.0 + 13.10.1-SNAPSHOT test diff --git a/ebean-bom/pom.xml b/ebean-bom/pom.xml index 3c55b2a32..618e44ba0 100644 --- a/ebean-bom/pom.xml +++ b/ebean-bom/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0 + 13.10.1-SNAPSHOT ebean bom @@ -89,106 +89,106 @@ io.ebean ebean - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-api - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-core - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-core-type - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-joda-time - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-jackson-jsonnode - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-jackson-mapper - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-ddl-generator - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-externalmapping-api - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-externalmapping-xml - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-autotune - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-querybean - 13.10.0 + 13.10.1-SNAPSHOT io.ebean querybean-generator - 13.10.0 + 13.10.1-SNAPSHOT provided io.ebean kotlin-querybean-generator - 13.10.0 + 13.10.1-SNAPSHOT provided io.ebean ebean-test - 13.10.0 + 13.10.1-SNAPSHOT test io.ebean ebean-postgis - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-redis - 13.10.0 + 13.10.1-SNAPSHOT diff --git a/ebean-core-type/pom.xml b/ebean-core-type/pom.xml index b2b62b88f..866d3ec56 100644 --- a/ebean-core-type/pom.xml +++ b/ebean-core-type/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0 + 13.10.1-SNAPSHOT ebean-core-type @@ -16,7 +16,7 @@ io.ebean ebean-api - 13.10.0 + 13.10.1-SNAPSHOT diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml index 08796e355..ac73b3c69 100644 --- a/ebean-core/pom.xml +++ b/ebean-core/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.10.0 + 13.10.1-SNAPSHOT ebean-core @@ -15,14 +15,14 @@ scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.10.0 + HEAD io.ebean ebean-api - 13.10.0 + 13.10.1-SNAPSHOT @@ -46,13 +46,13 @@ io.ebean ebean-core-type - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-externalmapping-api - 13.10.0 + 13.10.1-SNAPSHOT @@ -143,21 +143,21 @@ io.ebean ebean-platform-h2 - 13.10.0 + 13.10.1-SNAPSHOT test io.ebean ebean-platform-postgres - 13.10.0 + 13.10.1-SNAPSHOT test io.ebean ebean-platform-sqlserver - 13.10.0 + 13.10.1-SNAPSHOT test diff --git a/ebean-csv-reader/pom.xml b/ebean-csv-reader/pom.xml index c6690fd7f..fce50e8e7 100644 --- a/ebean-csv-reader/pom.xml +++ b/ebean-csv-reader/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0 + 13.10.1-SNAPSHOT ebean-csv-reader @@ -14,21 +14,21 @@ io.ebean ebean-api - 13.10.0 + 13.10.1-SNAPSHOT provided io.ebean ebean-core - 13.10.0 + 13.10.1-SNAPSHOT provided io.ebean ebean-test - 13.10.0 + 13.10.1-SNAPSHOT test diff --git a/ebean-ddl-generator/pom.xml b/ebean-ddl-generator/pom.xml index 322a67d03..ec4a23456 100644 --- a/ebean-ddl-generator/pom.xml +++ b/ebean-ddl-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0 + 13.10.1-SNAPSHOT ebean ddl generation @@ -28,14 +28,14 @@ io.ebean ebean-core-type - 13.10.0 + 13.10.1-SNAPSHOT provided io.ebean ebean-core - 13.10.0 + 13.10.1-SNAPSHOT provided @@ -58,7 +58,7 @@ io.ebean ebean-platform-all - 13.10.0 + 13.10.1-SNAPSHOT test diff --git a/ebean-externalmapping-api/pom.xml b/ebean-externalmapping-api/pom.xml index a9debf943..90849e841 100644 --- a/ebean-externalmapping-api/pom.xml +++ b/ebean-externalmapping-api/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0 + 13.10.1-SNAPSHOT ebean external mapping api diff --git a/ebean-externalmapping-xml/pom.xml b/ebean-externalmapping-xml/pom.xml index 096f3d176..4ad095b63 100644 --- a/ebean-externalmapping-xml/pom.xml +++ b/ebean-externalmapping-xml/pom.xml @@ -4,12 +4,12 @@ ebean-parent io.ebean - 13.10.0 + 13.10.1-SNAPSHOT scm:git:git@github.com:ebean-orm/ebean.git - ebean-parent-13.10.0 + HEAD ebean external mapping xml @@ -21,7 +21,7 @@ io.ebean ebean-externalmapping-api - 13.10.0 + 13.10.1-SNAPSHOT @@ -54,21 +54,21 @@ io.ebean ebean-platform-h2 - 13.10.0 + 13.10.1-SNAPSHOT test io.ebean ebean-core - 13.10.0 + 13.10.1-SNAPSHOT test io.ebean ebean-ddl-generator - 13.10.0 + 13.10.1-SNAPSHOT test diff --git a/ebean-jackson-jsonnode/pom.xml b/ebean-jackson-jsonnode/pom.xml index 1f1d980c4..bb9959ba1 100644 --- a/ebean-jackson-jsonnode/pom.xml +++ b/ebean-jackson-jsonnode/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0 + 13.10.1-SNAPSHOT ebean-jackson-jsonnode @@ -14,7 +14,7 @@ io.ebean ebean-core-type - 13.10.0 + 13.10.1-SNAPSHOT provided diff --git a/ebean-jackson-mapper/pom.xml b/ebean-jackson-mapper/pom.xml index 495005d4c..24e4f274b 100644 --- a/ebean-jackson-mapper/pom.xml +++ b/ebean-jackson-mapper/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.10.0 + 13.10.1-SNAPSHOT 4.0.0 @@ -14,7 +14,7 @@ io.ebean ebean-core-type - 13.10.0 + 13.10.1-SNAPSHOT provided diff --git a/ebean-joda-time/pom.xml b/ebean-joda-time/pom.xml index e5a816f11..f1196b140 100644 --- a/ebean-joda-time/pom.xml +++ b/ebean-joda-time/pom.xml @@ -3,7 +3,7 @@ ebean-parent io.ebean - 13.10.0 + 13.10.1-SNAPSHOT 4.0.0 @@ -14,7 +14,7 @@ io.ebean ebean-core-type - 13.10.0 + 13.10.1-SNAPSHOT provided diff --git a/ebean-postgis/pom.xml b/ebean-postgis/pom.xml index 37cb257f5..4e6abbfad 100644 --- a/ebean-postgis/pom.xml +++ b/ebean-postgis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0 + 13.10.1-SNAPSHOT ebean postgis @@ -22,14 +22,14 @@ io.ebean ebean-platform-postgres - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-core - 13.10.0 + 13.10.1-SNAPSHOT provided @@ -65,7 +65,7 @@ io.ebean ebean-test - 13.10.0 + 13.10.1-SNAPSHOT test diff --git a/ebean-querybean/pom.xml b/ebean-querybean/pom.xml index 1869ecd80..747018585 100644 --- a/ebean-querybean/pom.xml +++ b/ebean-querybean/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0 + 13.10.1-SNAPSHOT ebean querybean @@ -17,7 +17,7 @@ io.ebean ebean-core - 13.10.0 + 13.10.1-SNAPSHOT provided @@ -63,21 +63,21 @@ io.ebean ebean-ddl-generator - 13.10.0 + 13.10.1-SNAPSHOT test io.ebean querybean-generator - 13.10.0 + 13.10.1-SNAPSHOT test io.ebean ebean-test - 13.10.0 + 13.10.1-SNAPSHOT test diff --git a/ebean-redis/pom.xml b/ebean-redis/pom.xml index 6294d786f..5fc9f258d 100644 --- a/ebean-redis/pom.xml +++ b/ebean-redis/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0 + 13.10.1-SNAPSHOT ebean-redis @@ -22,35 +22,35 @@ io.ebean ebean-api - 13.10.0 + 13.10.1-SNAPSHOT provided io.ebean ebean-core - 13.10.0 + 13.10.1-SNAPSHOT provided io.ebean ebean-querybean - 13.10.0 + 13.10.1-SNAPSHOT test io.ebean querybean-generator - 13.10.0 + 13.10.1-SNAPSHOT test io.ebean ebean-test - 13.10.0 + 13.10.1-SNAPSHOT test diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml index dfcd9e07d..86f127f96 100644 --- a/ebean-test/pom.xml +++ b/ebean-test/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0 + 13.10.1-SNAPSHOT ebean test @@ -28,20 +28,20 @@ io.ebean ebean-platform-h2 - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-core - 13.10.0 + 13.10.1-SNAPSHOT provided io.ebean ebean-ddl-generator - 13.10.0 + 13.10.1-SNAPSHOT @@ -105,28 +105,28 @@ io.ebean ebean-joda-time - 13.10.0 + 13.10.1-SNAPSHOT test io.ebean ebean-jackson-jsonnode - 13.10.0 + 13.10.1-SNAPSHOT test io.ebean ebean-jackson-mapper - 13.10.0 + 13.10.1-SNAPSHOT test io.ebean ebean-platform-all - 13.10.0 + 13.10.1-SNAPSHOT test diff --git a/kotlin-querybean-generator/pom.xml b/kotlin-querybean-generator/pom.xml index 9002ecb84..550421666 100644 --- a/kotlin-querybean-generator/pom.xml +++ b/kotlin-querybean-generator/pom.xml @@ -4,7 +4,7 @@ ebean-parent io.ebean - 13.10.0 + 13.10.1-SNAPSHOT kotlin querybean generator @@ -29,7 +29,7 @@ io.ebean ebean-querybean - 13.10.0 + 13.10.1-SNAPSHOT test @@ -43,7 +43,7 @@ io.ebean ebean-core - 13.10.0 + 13.10.1-SNAPSHOT test @@ -64,14 +64,14 @@ io.ebean ebean-platform-h2 - 13.10.0 + 13.10.1-SNAPSHOT test io.ebean ebean-ddl-generator - 13.10.0 + 13.10.1-SNAPSHOT test diff --git a/platforms/all/pom.xml b/platforms/all/pom.xml index 98e103741..b656bddd3 100644 --- a/platforms/all/pom.xml +++ b/platforms/all/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.10.0 + 13.10.1-SNAPSHOT ebean-platform-all @@ -14,72 +14,68 @@ io.ebean ebean-platform-h2 - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-platform-clickhouse - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-platform-db2 - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-platform-hana - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-platform-hsqldb - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-platform-mysql - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-platform-mariadb - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-platform-nuodb - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-platform-oracle - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-platform-postgres - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-platform-sqlanywhere - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-platform-sqlite - 13.10.0 + 13.10.1-SNAPSHOT io.ebean ebean-platform-sqlserver - 13.10.0 + 13.10.1-SNAPSHOT - - - ebean-parent-13.10.0 - diff --git a/platforms/clickhouse/pom.xml b/platforms/clickhouse/pom.xml index 49b2f8867..ab5caf43e 100644 --- a/platforms/clickhouse/pom.xml +++ b/platforms/clickhouse/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.10.0 + 13.10.1-SNAPSHOT ebean-platform-clickhouse @@ -14,12 +14,8 @@ io.ebean ebean-api - 13.10.0 + 13.10.1-SNAPSHOT - - - ebean-parent-13.10.0 - diff --git a/platforms/db2/pom.xml b/platforms/db2/pom.xml index 0177115d3..af0b33ad1 100644 --- a/platforms/db2/pom.xml +++ b/platforms/db2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.10.0 + 13.10.1-SNAPSHOT ebean-platform-db2 @@ -14,12 +14,8 @@ io.ebean ebean-api - 13.10.0 + 13.10.1-SNAPSHOT - - - ebean-parent-13.10.0 - diff --git a/platforms/h2/pom.xml b/platforms/h2/pom.xml index e05ec34d9..d43c650cf 100644 --- a/platforms/h2/pom.xml +++ b/platforms/h2/pom.xml @@ -4,7 +4,7 @@ platforms io.ebean - 13.10.0 + 13.10.1-SNAPSHOT ebean-platform-h2 @@ -14,7 +14,7 @@ io.ebean ebean-api - 13.10.0 + 13.10.1-SNAPSHOT