From 2c436c3af5ccff03c426d5fe851f4e5adc73daac Mon Sep 17 00:00:00 2001 From: rob bygrave Date: Fri, 15 Sep 2017 21:48:37 +1200 Subject: [PATCH] #1123 - 11.1.1 API change - moved PersistBatch, Platform, TxIsolation and TxType to io.ebean.annotation package --- pom.xml | 8 ++-- src/main/java/io/ebean/Ebean.java | 1 + src/main/java/io/ebean/EbeanServer.java | 1 + src/main/java/io/ebean/Transaction.java | 1 + src/main/java/io/ebean/TxScope.java | 37 +++++++++++++++---- .../io/ebean/config/CustomDbTypeMapping.java | 2 +- .../io/ebean/config/DbMigrationConfig.java | 2 +- .../java/io/ebean/config/DbTypeConfig.java | 2 +- .../java/io/ebean/config/ServerConfig.java | 4 +- .../config/dbplatform/DatabasePlatform.java | 4 +- .../config/dbplatform/db2/DB2Platform.java | 6 +-- .../config/dbplatform/h2/H2Platform.java | 2 +- .../dbplatform/hsqldb/HsqldbPlatform.java | 2 +- .../dbplatform/mysql/MySqlPlatform.java | 2 +- .../dbplatform/oracle/OraclePlatform.java | 2 +- .../dbplatform/postgres/PostgresPlatform.java | 2 +- .../sqlanywhere/SqlAnywherePlatform.java | 2 +- .../dbplatform/sqlite/SQLitePlatform.java | 2 +- .../sqlserver/SqlServerPlatform.java | 4 +- .../io/ebean/dbmigration/DbMigration.java | 4 +- .../java/io/ebean/dbmigration/DbOffline.java | 2 +- .../java/io/ebeaninternal/api/ScopeTrans.java | 9 ++++- .../ebeaninternal/api/ScopedTransaction.java | 2 +- .../server/core/DefaultServer.java | 6 ++- .../server/core/InternalConfiguration.java | 2 +- .../server/deploy/DbMigrationInfo.java | 12 +++--- .../server/deploy/parse/AnnotationBase.java | 32 ++++++++-------- .../server/query/CQueryBuilder.java | 2 +- .../server/transaction/JdbcTransaction.java | 2 +- .../transaction/TransactionManager.java | 2 +- .../server/type/DefaultTypeManager.java | 2 +- 31 files changed, 99 insertions(+), 64 deletions(-) diff --git a/pom.xml b/pom.xml index 1453eb2d7..57c591e8a 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ io.ebean ebean - 10.4.8-SNAPSHOT + 11.1.1-SNAPSHOT jar ebean @@ -87,7 +87,7 @@ io.ebean ebean-annotation - 2.4 + 3.1 @@ -210,7 +210,7 @@ io.ebean ebean-agent - 10.4.1 + 11.1.1 test @@ -283,7 +283,7 @@ io.ebean ebean-maven-plugin - 10.4.1 + 11.1.1 test diff --git a/src/main/java/io/ebean/Ebean.java b/src/main/java/io/ebean/Ebean.java index 130bdc24d..24b53596f 100644 --- a/src/main/java/io/ebean/Ebean.java +++ b/src/main/java/io/ebean/Ebean.java @@ -1,5 +1,6 @@ package io.ebean; +import io.ebean.annotation.TxIsolation; import io.ebean.cache.ServerCacheManager; import io.ebean.config.ServerConfig; import io.ebean.text.csv.CsvReader; diff --git a/src/main/java/io/ebean/EbeanServer.java b/src/main/java/io/ebean/EbeanServer.java index b961cd0b3..29aec1bfe 100644 --- a/src/main/java/io/ebean/EbeanServer.java +++ b/src/main/java/io/ebean/EbeanServer.java @@ -1,5 +1,6 @@ package io.ebean; +import io.ebean.annotation.TxIsolation; import io.ebean.cache.ServerCacheManager; import io.ebean.config.ServerConfig; import io.ebean.meta.MetaInfoManager; diff --git a/src/main/java/io/ebean/Transaction.java b/src/main/java/io/ebean/Transaction.java index 53325d733..7134ab873 100644 --- a/src/main/java/io/ebean/Transaction.java +++ b/src/main/java/io/ebean/Transaction.java @@ -1,6 +1,7 @@ package io.ebean; import io.ebean.annotation.DocStoreMode; +import io.ebean.annotation.PersistBatch; import io.ebean.config.DocStoreConfig; import io.ebean.config.ServerConfig; diff --git a/src/main/java/io/ebean/TxScope.java b/src/main/java/io/ebean/TxScope.java index 49e372a79..f0deca42d 100644 --- a/src/main/java/io/ebean/TxScope.java +++ b/src/main/java/io/ebean/TxScope.java @@ -1,24 +1,27 @@ package io.ebean; +import io.ebean.annotation.PersistBatch; +import io.ebean.annotation.TxIsolation; +import io.ebean.annotation.TxType; + import java.util.ArrayList; +import java.util.concurrent.Callable; /** * Holds the definition of how a transactional method should run. *

* This information matches the features of the Transactional annotation. You - * can use it directly with TxRunnable or TxCallable via - * {@link Ebean#execute(TxScope, TxCallable)} or - * {@link Ebean#execute(TxScope, TxRunnable)}. + * can use it directly with Runnable or Callable via + * {@link Ebean#execute(TxScope, Runnable)} or + * {@link Ebean#executeCall(TxScope, Callable)}. *

*

* This object is used internally with the enhancement of a method with * Transactional annotation. *

* - * @see TxCallable - * @see TxRunnable - * @see Ebean#execute(TxScope, TxCallable) - * @see Ebean#execute(TxScope, TxRunnable) + * @see Ebean#execute(TxScope, Runnable) + * @see Ebean#executeCall(TxScope, Callable) */ public final class TxScope { @@ -38,6 +41,11 @@ public final class TxScope { boolean readOnly; + /** + * Set this to false if the JDBC batch should not be automatically be flushed when a query is executed. + */ + boolean flushOnQuery = true; + ArrayList> rollbackFor; ArrayList> noRollbackFor; @@ -235,6 +243,21 @@ public final class TxScope { return this; } + /** + * Return false if the JDBC batch buffer should not be flushed automatically when a query is executed. + */ + public boolean isFlushOnQuery() { + return flushOnQuery; + } + + /** + * Set flushOnQuery to be false to stop automatically flushing the JDBC batch buffer when a query is executed. + */ + public TxScope setFlushOnQuery(boolean flushOnQuery) { + this.flushOnQuery = flushOnQuery; + return this; + } + /** * Return the Isolation level this transaction should run with. */ diff --git a/src/main/java/io/ebean/config/CustomDbTypeMapping.java b/src/main/java/io/ebean/config/CustomDbTypeMapping.java index c65f75525..7de45e545 100644 --- a/src/main/java/io/ebean/config/CustomDbTypeMapping.java +++ b/src/main/java/io/ebean/config/CustomDbTypeMapping.java @@ -1,7 +1,7 @@ package io.ebean.config; import io.ebean.config.dbplatform.DbType; -import io.ebean.Platform; +import io.ebean.annotation.Platform; /** * Custom mappings for DB types that override the default. diff --git a/src/main/java/io/ebean/config/DbMigrationConfig.java b/src/main/java/io/ebean/config/DbMigrationConfig.java index 0cb39cd35..dc843a01c 100644 --- a/src/main/java/io/ebean/config/DbMigrationConfig.java +++ b/src/main/java/io/ebean/config/DbMigrationConfig.java @@ -1,6 +1,6 @@ package io.ebean.config; -import io.ebean.Platform; +import io.ebean.annotation.Platform; import io.ebean.migration.MigrationConfig; import io.ebean.migration.MigrationRunner; import org.slf4j.Logger; diff --git a/src/main/java/io/ebean/config/DbTypeConfig.java b/src/main/java/io/ebean/config/DbTypeConfig.java index e05c8039b..3a48dbd32 100644 --- a/src/main/java/io/ebean/config/DbTypeConfig.java +++ b/src/main/java/io/ebean/config/DbTypeConfig.java @@ -2,7 +2,7 @@ package io.ebean.config; import io.ebean.config.dbplatform.DbType; import io.ebean.config.dbplatform.IdType; -import io.ebean.Platform; +import io.ebean.annotation.Platform; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/io/ebean/config/ServerConfig.java b/src/main/java/io/ebean/config/ServerConfig.java index 52bc64c23..94add84eb 100644 --- a/src/main/java/io/ebean/config/ServerConfig.java +++ b/src/main/java/io/ebean/config/ServerConfig.java @@ -2,9 +2,9 @@ package io.ebean.config; import com.fasterxml.jackson.core.JsonFactory; import io.ebean.EbeanServerFactory; -import io.ebean.PersistBatch; +import io.ebean.annotation.PersistBatch; import io.ebean.PersistenceContextScope; -import io.ebean.Platform; +import io.ebean.annotation.Platform; import io.ebean.Query; import io.ebean.Transaction; import io.ebean.annotation.Encrypted; diff --git a/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java b/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java index f2d44df55..9dd0cbb6e 100644 --- a/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java +++ b/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java @@ -4,8 +4,8 @@ import io.ebean.BackgroundExecutor; import io.ebean.Query; import io.ebean.config.CustomDbTypeMapping; import io.ebean.config.DbTypeConfig; -import io.ebean.PersistBatch; -import io.ebean.Platform; +import io.ebean.annotation.PersistBatch; +import io.ebean.annotation.Platform; import io.ebean.config.ServerConfig; import io.ebean.dbmigration.ddlgeneration.DdlHandler; import io.ebean.dbmigration.ddlgeneration.platform.PlatformDdl; diff --git a/src/main/java/io/ebean/config/dbplatform/db2/DB2Platform.java b/src/main/java/io/ebean/config/dbplatform/db2/DB2Platform.java index ffef6d563..443de1ed5 100644 --- a/src/main/java/io/ebean/config/dbplatform/db2/DB2Platform.java +++ b/src/main/java/io/ebean/config/dbplatform/db2/DB2Platform.java @@ -1,8 +1,8 @@ package io.ebean.config.dbplatform.db2; import io.ebean.BackgroundExecutor; -import io.ebean.PersistBatch; -import io.ebean.Platform; +import io.ebean.annotation.PersistBatch; +import io.ebean.annotation.Platform; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.config.dbplatform.DbPlatformType; import io.ebean.config.dbplatform.DbType; @@ -44,7 +44,7 @@ public class DB2Platform extends DatabasePlatform { dbTypeMap.put(DbType.BIGINT, new DbPlatformType("bigint", false)); dbTypeMap.put(DbType.REAL, new DbPlatformType("real")); dbTypeMap.put(DbType.DECIMAL, new DbPlatformType("decimal", 15)); - + persistBatchOnCascade = PersistBatch.NONE; } diff --git a/src/main/java/io/ebean/config/dbplatform/h2/H2Platform.java b/src/main/java/io/ebean/config/dbplatform/h2/H2Platform.java index c541c0bc7..3c04dc8f7 100644 --- a/src/main/java/io/ebean/config/dbplatform/h2/H2Platform.java +++ b/src/main/java/io/ebean/config/dbplatform/h2/H2Platform.java @@ -1,7 +1,7 @@ package io.ebean.config.dbplatform.h2; import io.ebean.BackgroundExecutor; -import io.ebean.Platform; +import io.ebean.annotation.Platform; import io.ebean.Query; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.config.dbplatform.DbPlatformType; diff --git a/src/main/java/io/ebean/config/dbplatform/hsqldb/HsqldbPlatform.java b/src/main/java/io/ebean/config/dbplatform/hsqldb/HsqldbPlatform.java index e345b46b7..24c1a21da 100644 --- a/src/main/java/io/ebean/config/dbplatform/hsqldb/HsqldbPlatform.java +++ b/src/main/java/io/ebean/config/dbplatform/hsqldb/HsqldbPlatform.java @@ -1,7 +1,7 @@ package io.ebean.config.dbplatform.hsqldb; import io.ebean.BackgroundExecutor; -import io.ebean.Platform; +import io.ebean.annotation.Platform; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.config.dbplatform.DbPlatformType; import io.ebean.config.dbplatform.DbType; diff --git a/src/main/java/io/ebean/config/dbplatform/mysql/MySqlPlatform.java b/src/main/java/io/ebean/config/dbplatform/mysql/MySqlPlatform.java index 14d9c45c6..555858daa 100644 --- a/src/main/java/io/ebean/config/dbplatform/mysql/MySqlPlatform.java +++ b/src/main/java/io/ebean/config/dbplatform/mysql/MySqlPlatform.java @@ -1,7 +1,7 @@ package io.ebean.config.dbplatform.mysql; import io.ebean.BackgroundExecutor; -import io.ebean.Platform; +import io.ebean.annotation.Platform; import io.ebean.Query; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.config.dbplatform.DbPlatformType; diff --git a/src/main/java/io/ebean/config/dbplatform/oracle/OraclePlatform.java b/src/main/java/io/ebean/config/dbplatform/oracle/OraclePlatform.java index 339757f79..ae64ad373 100644 --- a/src/main/java/io/ebean/config/dbplatform/oracle/OraclePlatform.java +++ b/src/main/java/io/ebean/config/dbplatform/oracle/OraclePlatform.java @@ -1,7 +1,7 @@ package io.ebean.config.dbplatform.oracle; import io.ebean.BackgroundExecutor; -import io.ebean.Platform; +import io.ebean.annotation.Platform; import io.ebean.Query; import io.ebean.config.dbplatform.BasicSqlAnsiLimiter; import io.ebean.config.dbplatform.DatabasePlatform; diff --git a/src/main/java/io/ebean/config/dbplatform/postgres/PostgresPlatform.java b/src/main/java/io/ebean/config/dbplatform/postgres/PostgresPlatform.java index 920cf9f61..d7e59fec4 100644 --- a/src/main/java/io/ebean/config/dbplatform/postgres/PostgresPlatform.java +++ b/src/main/java/io/ebean/config/dbplatform/postgres/PostgresPlatform.java @@ -1,7 +1,7 @@ package io.ebean.config.dbplatform.postgres; import io.ebean.BackgroundExecutor; -import io.ebean.Platform; +import io.ebean.annotation.Platform; import io.ebean.Query; import io.ebean.config.ServerConfig; import io.ebean.config.dbplatform.DatabasePlatform; diff --git a/src/main/java/io/ebean/config/dbplatform/sqlanywhere/SqlAnywherePlatform.java b/src/main/java/io/ebean/config/dbplatform/sqlanywhere/SqlAnywherePlatform.java index f04790fa6..045eeab30 100644 --- a/src/main/java/io/ebean/config/dbplatform/sqlanywhere/SqlAnywherePlatform.java +++ b/src/main/java/io/ebean/config/dbplatform/sqlanywhere/SqlAnywherePlatform.java @@ -1,6 +1,6 @@ package io.ebean.config.dbplatform.sqlanywhere; -import io.ebean.Platform; +import io.ebean.annotation.Platform; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.config.dbplatform.DbPlatformType; import io.ebean.config.dbplatform.DbType; diff --git a/src/main/java/io/ebean/config/dbplatform/sqlite/SQLitePlatform.java b/src/main/java/io/ebean/config/dbplatform/sqlite/SQLitePlatform.java index 07e07dcd1..d526bf492 100644 --- a/src/main/java/io/ebean/config/dbplatform/sqlite/SQLitePlatform.java +++ b/src/main/java/io/ebean/config/dbplatform/sqlite/SQLitePlatform.java @@ -1,6 +1,6 @@ package io.ebean.config.dbplatform.sqlite; -import io.ebean.Platform; +import io.ebean.annotation.Platform; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.config.dbplatform.DbPlatformType; import io.ebean.config.dbplatform.DbType; diff --git a/src/main/java/io/ebean/config/dbplatform/sqlserver/SqlServerPlatform.java b/src/main/java/io/ebean/config/dbplatform/sqlserver/SqlServerPlatform.java index cf1652b4c..926a46dd5 100644 --- a/src/main/java/io/ebean/config/dbplatform/sqlserver/SqlServerPlatform.java +++ b/src/main/java/io/ebean/config/dbplatform/sqlserver/SqlServerPlatform.java @@ -1,7 +1,7 @@ package io.ebean.config.dbplatform.sqlserver; -import io.ebean.PersistBatch; -import io.ebean.Platform; +import io.ebean.annotation.PersistBatch; +import io.ebean.annotation.Platform; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.config.dbplatform.DbPlatformType; import io.ebean.config.dbplatform.DbType; diff --git a/src/main/java/io/ebean/dbmigration/DbMigration.java b/src/main/java/io/ebean/dbmigration/DbMigration.java index 3890e5d63..ab519e981 100644 --- a/src/main/java/io/ebean/dbmigration/DbMigration.java +++ b/src/main/java/io/ebean/dbmigration/DbMigration.java @@ -4,7 +4,7 @@ import io.ebean.Ebean; import io.ebean.EbeanServer; import io.ebean.config.DbConstraintNaming; import io.ebean.config.DbMigrationConfig; -import io.ebean.Platform; +import io.ebean.annotation.Platform; import io.ebean.config.ServerConfig; import io.ebean.config.dbplatform.db2.DB2Platform; import io.ebean.config.dbplatform.DatabasePlatform; @@ -539,7 +539,7 @@ public class DbMigration { return new SQLitePlatform(); case GENERIC: return new DatabasePlatform(); - + default: throw new IllegalArgumentException("Platform missing? " + platform); } diff --git a/src/main/java/io/ebean/dbmigration/DbOffline.java b/src/main/java/io/ebean/dbmigration/DbOffline.java index 767342bc7..36191ceb1 100644 --- a/src/main/java/io/ebean/dbmigration/DbOffline.java +++ b/src/main/java/io/ebean/dbmigration/DbOffline.java @@ -1,6 +1,6 @@ package io.ebean.dbmigration; -import io.ebean.Platform; +import io.ebean.annotation.Platform; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/io/ebeaninternal/api/ScopeTrans.java b/src/main/java/io/ebeaninternal/api/ScopeTrans.java index cca956d60..7701ee8a8 100644 --- a/src/main/java/io/ebeaninternal/api/ScopeTrans.java +++ b/src/main/java/io/ebeaninternal/api/ScopeTrans.java @@ -1,7 +1,7 @@ package io.ebeaninternal.api; import io.ebean.TxScope; -import io.ebean.PersistBatch; +import io.ebean.annotation.PersistBatch; import java.util.ArrayList; @@ -53,6 +53,8 @@ public class ScopeTrans implements Thread.UncaughtExceptionHandler { private Boolean restoreBatchGeneratedKeys; + private boolean restoreBatchFlushOnQuery; + /** * Flag set when a rollback has occurred. */ @@ -77,10 +79,14 @@ public class ScopeTrans implements Thread.UncaughtExceptionHandler { restoreBatchOnCascade = transaction.getBatchOnCascade(); restoreBatchSize = transaction.getBatchSize(); restoreBatchGeneratedKeys = transaction.getBatchGetGeneratedKeys(); + restoreBatchFlushOnQuery = transaction.isBatchFlushOnQuery(); } if (txScope.isBatchSet()) { transaction.setBatch(txScope.getBatch()); } + if (!txScope.isFlushOnQuery()) { + transaction.setBatchFlushOnQuery(false); + } if (txScope.isBatchOnCascadeSet()) { transaction.setBatchOnCascade(txScope.getBatchOnCascade()); } @@ -158,6 +164,7 @@ public class ScopeTrans implements Thread.UncaughtExceptionHandler { if (created) { transaction.commit(); } else { + transaction.setBatchFlushOnQuery(restoreBatchFlushOnQuery); if (restoreBatch != null) { transaction.setBatch(restoreBatch); } diff --git a/src/main/java/io/ebeaninternal/api/ScopedTransaction.java b/src/main/java/io/ebeaninternal/api/ScopedTransaction.java index fdd2914c5..649a12f00 100644 --- a/src/main/java/io/ebeaninternal/api/ScopedTransaction.java +++ b/src/main/java/io/ebeaninternal/api/ScopedTransaction.java @@ -1,6 +1,6 @@ package io.ebeaninternal.api; -import io.ebean.PersistBatch; +import io.ebean.annotation.PersistBatch; import io.ebean.TransactionCallback; import io.ebean.annotation.DocStoreMode; import io.ebean.bean.PersistenceContext; diff --git a/src/main/java/io/ebeaninternal/server/core/DefaultServer.java b/src/main/java/io/ebeaninternal/server/core/DefaultServer.java index f1cbee308..9e2c0c454 100644 --- a/src/main/java/io/ebeaninternal/server/core/DefaultServer.java +++ b/src/main/java/io/ebeaninternal/server/core/DefaultServer.java @@ -20,6 +20,8 @@ import io.ebean.SqlRow; import io.ebean.SqlUpdate; import io.ebean.Transaction; import io.ebean.TransactionCallback; +import io.ebean.TxCallable; +import io.ebean.TxRunnable; import io.ebean.TxScope; import io.ebean.Update; import io.ebean.UpdateQuery; @@ -89,8 +91,8 @@ import io.ebeaninternal.server.transaction.TransactionScopeManager; import io.ebeaninternal.util.ParamTypeHelper; import io.ebeaninternal.util.ParamTypeHelper.TypeInfo; import io.ebeanservice.docstore.api.DocStoreIntegration; -import io.ebean.TxIsolation; -import io.ebean.TxType; +import io.ebean.annotation.TxIsolation; +import io.ebean.annotation.TxType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java b/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java index ab2584b5a..c426a9819 100644 --- a/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java +++ b/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java @@ -3,7 +3,7 @@ package io.ebeaninternal.server.core; import io.ebean.ExpressionFactory; import io.ebean.cache.ServerCacheManager; import io.ebean.config.ExternalTransactionManager; -import io.ebean.Platform; +import io.ebean.annotation.Platform; import io.ebean.config.ServerConfig; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.config.dbplatform.DbHistorySupport; diff --git a/src/main/java/io/ebeaninternal/server/deploy/DbMigrationInfo.java b/src/main/java/io/ebeaninternal/server/deploy/DbMigrationInfo.java index 33d8e11dc..630ea953b 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/DbMigrationInfo.java +++ b/src/main/java/io/ebeaninternal/server/deploy/DbMigrationInfo.java @@ -4,10 +4,10 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; -import io.ebean.Platform; +import io.ebean.annotation.Platform; /** * Class to hold the DDL-migration information that is needed to do correct alters. - * + * * @author Roland Praml, FOCONIS AG */ public class DbMigrationInfo { @@ -16,8 +16,8 @@ public class DbMigrationInfo { private final List postAdd; private final List preAlter; private final List postAlter; - private final List platforms; - + private final List platforms; + public DbMigrationInfo(String[] preAdd, String[] postAdd, String[] preAlter, String[] postAlter, Platform[] platforms) { this.preAdd = toList(preAdd); this.postAdd = toList(postAdd); @@ -33,7 +33,7 @@ public class DbMigrationInfo { return Collections.unmodifiableList(Arrays.asList(scripts)); } } - + public List getPreAdd() { return preAdd; } @@ -49,7 +49,7 @@ public class DbMigrationInfo { public List getPlatforms() { return platforms; } - + public String joinPlatforms() { if (platforms.isEmpty()) { return null; diff --git a/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationBase.java b/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationBase.java index 0aeb20e69..790dc7b96 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationBase.java +++ b/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationBase.java @@ -1,6 +1,6 @@ package io.ebeaninternal.server.deploy.parse; -import io.ebean.Platform; +import io.ebean.annotation.Platform; import io.ebean.annotation.Formula; import io.ebean.annotation.Where; import io.ebean.config.NamingConvention; @@ -21,28 +21,28 @@ import java.util.concurrent.ConcurrentMap; /** * Provides some base methods for processing deployment annotations. All findAnnotation* methods - * are capable to search for meta-annotations (annotation that has an other annotation) - * + * are capable to search for meta-annotations (annotation that has an other annotation) + * *

search algorithm for ONE annotation:

*
    *
  • Check if annotation is direct on the property
  • - *
  • if not found: Check all annotations at the annotateElement + *
  • if not found: Check all annotations at the annotateElement * if they have the needed annotation as meta annotation
  • - *
  • if not found: go up to super class and try again + *
  • if not found: go up to super class and try again * (only findAnnotationRecursive)
  • *
- * DFS (Depth-First-Search) is used. The algorithm is the same as it is used in Spring-Framework, + * DFS (Depth-First-Search) is used. The algorithm is the same as it is used in Spring-Framework, * as the code is taken from there. - * - *

search algoritm for a Set<Annotation> works a litte bit different, as it does not stop + * + *

search algoritm for a Set<Annotation> works a litte bit different, as it does not stop * on the first match, but continues searching down to the last corner to find all annotations.

- * + * *

To prevent endless recursion, the search algoritm tracks all visited annotations

- * + * *

Supports also "java 1.6 repeatable containers" like{@link JoinColumn} / {@link JoinColumns}.

- * - *

This means, searching for JoinColumn will find them also if they are inside a - * JoinColumns annotation

+ * + *

This means, searching for JoinColumn will find them also if they are inside a + * JoinColumns annotation

*/ public abstract class AnnotationBase { @@ -218,10 +218,10 @@ public abstract class AnnotationBase { while (clazz != null && clazz != Object.class) { findMetaAnnotations(clazz, annotationType, ret, visited); clazz = clazz.getSuperclass(); - } + } return ret; } - + /** * Perform the search algorithm avoiding endless recursion by tracking which * annotations have already been visited. @@ -305,7 +305,7 @@ public abstract class AnnotationBase { } private static final ConcurrentMap valueMethods = new ConcurrentHashMap<>(); - // only a non-null-marker the valueMethods - Cache + // only a non-null-marker the valueMethods - Cache private static final Method nullMethod = getNullMethod(); diff --git a/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java b/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java index 718e9cd79..144ab495c 100644 --- a/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java +++ b/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java @@ -1,6 +1,6 @@ package io.ebeaninternal.server.query; -import io.ebean.Platform; +import io.ebean.annotation.Platform; import io.ebean.RawSql; import io.ebean.RawSql.ColumnMapping; import io.ebean.RawSql.ColumnMapping.Column; diff --git a/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java b/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java index 374ecd2a4..0d0256191 100644 --- a/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java +++ b/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java @@ -3,7 +3,7 @@ package io.ebeaninternal.server.transaction; import io.ebean.TransactionCallback; import io.ebean.annotation.DocStoreMode; import io.ebean.bean.PersistenceContext; -import io.ebean.PersistBatch; +import io.ebean.annotation.PersistBatch; import io.ebean.config.ServerConfig; import io.ebean.config.dbplatform.DatabasePlatform.OnQueryOnly; import io.ebean.event.changelog.BeanChange; diff --git a/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java b/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java index 3c38374d2..88606cf99 100644 --- a/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java +++ b/src/main/java/io/ebeaninternal/server/transaction/TransactionManager.java @@ -2,7 +2,7 @@ package io.ebeaninternal.server.transaction; import io.ebean.BackgroundExecutor; import io.ebean.config.CurrentTenantProvider; -import io.ebean.PersistBatch; +import io.ebean.annotation.PersistBatch; import io.ebean.config.dbplatform.DatabasePlatform; import io.ebean.config.dbplatform.DatabasePlatform.OnQueryOnly; import io.ebean.event.changelog.ChangeLogListener; diff --git a/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java b/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java index 597060606..94f7cccc2 100644 --- a/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java +++ b/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java @@ -5,7 +5,7 @@ import io.ebean.annotation.DbEnumType; import io.ebean.annotation.DbEnumValue; import io.ebean.annotation.EnumValue; import io.ebean.config.JsonConfig; -import io.ebean.Platform; +import io.ebean.annotation.Platform; import io.ebean.config.ScalarTypeConverter; import io.ebean.config.ServerConfig; import io.ebean.config.dbplatform.DatabasePlatform;