Compare commits

..
Author SHA1 Message Date
Rob Bygrave 6802fe9e02 [maven-release-plugin] prepare release ebean-parent-13.2.0 2022-04-07 18:13:41 +12:00
Rob Bygrave 6e5e89f155 Bump ebean-agent to 13.2.0 2022-04-07 18:04:45 +12:00
Rob Bygrave aa351e919d Bump to 13.2.0-SNAPSHOT 2022-04-07 18:03:58 +12:00
Rob BygraveandGitHub 857bde645a Merge pull request #2639 from ebean-orm/feature/deprecated_ServerCache
Remove deprecated methods on ServerCache getHitRatio() -> hitRatio(), getStatistics() -> statistics()
2022-04-07 17:04:31 +12:00
Rob Bygrave ff257a272b Remove deprecated methods on ServerCache getHitRatio() -> hitRatio(), getStatistics() -> statistics() 2022-04-07 17:03:04 +12:00
Rob Bygrave e22e5885e2 Bump parent pom to 3.7 (surefire bump) 2022-04-07 16:48:23 +12:00
Rob Bygrave 71892fd2b5 Organise imports only 2022-04-07 16:44:02 +12:00
Rob BygraveandGitHub e41f9a0669 Merge pull request #2638 from ebean-orm/feature/TenantAwareCache
Refactor L2 cache tenant awareness - add TenantAwareCache
2022-04-07 16:43:05 +12:00
Rob Bygrave f5a779e18b Refactor L2 cache tenant awareness - add TenantAwareCache
The design change is to use TenantAwareCache to deal with wrap/unwrap of tenant aware keys, removing any tenant awareness from the underlying cache implementations (DefaultServerCache, redis, hazelcast etc).
2022-04-07 15:26:21 +12:00
Rob Bygrave daf5220766 #2635 Remove deprecated methods from Database - createSqlQuery() -> sqlQuery(), createSqlUpdate() -> sqlUpdate() 2022-04-06 22:36:31 +12:00
Rob BygraveandGitHub 4b5379c80c Merge pull request #2635 from ebean-orm/feature/deprecated_Database
Remove deprecated methods in ebean-api - Database
2022-04-06 22:30:05 +12:00
Rob BygraveandGitHub 51b4f58744 Merge pull request #2634 from ebean-orm/feature/deprecated_DB
Remove deprecated methods in ebean-api - DB
2022-04-06 22:29:27 +12:00
Rob BygraveandGitHub 539dd7c90c Merge pull request #2637 from ebean-orm/feature/2636_remove_CreatedTimestamp
#2636 - Remove deprecated @CreatedTimestamp and @UpdateTimestamp, migrate to @WhenCreated / @WhenModified
2022-04-06 22:25:21 +12:00
Rob Bygrave c7ad5c5981 #2636 - Remove deprecated @CreatedTimestamp and @UpdateTimestamp, migrate to @WhenCreated / @WhenModified 2022-04-06 22:17:33 +12:00
Rob Bygrave 34ce77c17e Bump to 13.1.1-SNAPSHOT after release 2022-04-06 22:10:01 +12:00
Rob Bygrave bee476ecf6 [maven-release-plugin] prepare for next development iteration 2022-04-06 21:55:18 +12:00
Rob Bygrave 370f50aebe Remove deprecated methods in ebean-api - Database 2022-04-06 21:05:57 +12:00
Rob Bygrave 22db5abdbe Remove deprecated methods in ebean-api - DB 2022-04-06 21:00:35 +12:00
79 changed files with 563 additions and 700 deletions
+6 -6
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>composites</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean-clickhouse</name>
@@ -16,13 +16,13 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -35,18 +35,18 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-querybean</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-clickhouse</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+6 -6
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>composites</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean-cockroach</name>
@@ -16,13 +16,13 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -35,18 +35,18 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-querybean</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-postgres</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+6 -6
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>composites</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean-db2</name>
@@ -16,13 +16,13 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -35,18 +35,18 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-querybean</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-db2</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+6 -6
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>composites</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean-h2</name>
@@ -16,13 +16,13 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -35,18 +35,18 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-querybean</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-h2</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+6 -6
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>composites</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean-hana</name>
@@ -16,13 +16,13 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -35,18 +35,18 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-querybean</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-hana</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+6 -6
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>composites</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean-mariadb</name>
@@ -16,13 +16,13 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -35,18 +35,18 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-querybean</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-mariadb</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+6 -6
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>composites</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean-mysql</name>
@@ -16,13 +16,13 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -35,18 +35,18 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-querybean</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-mysql</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+6 -6
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>composites</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean-nuodb</name>
@@ -16,13 +16,13 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -35,18 +35,18 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-querybean</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-nuodb</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+6 -6
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>composites</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean-oracle</name>
@@ -16,13 +16,13 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -35,18 +35,18 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-querybean</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-oracle</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+6 -6
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>composites</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean-postgres</name>
@@ -16,13 +16,13 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -35,18 +35,18 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-querybean</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-postgres</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+6 -6
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>composites</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean-sqlite</name>
@@ -16,13 +16,13 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -35,18 +35,18 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-querybean</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-sqlite</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+6 -6
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>composites</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean-sqlserver</name>
@@ -16,13 +16,13 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -35,18 +35,18 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-querybean</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-sqlserver</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+6 -6
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>composites</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean-yugabyte</name>
@@ -16,13 +16,13 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -35,18 +35,18 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-querybean</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-postgres</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+6 -6
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>composites</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean (all platforms)</name>
@@ -16,13 +16,13 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -35,18 +35,18 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-querybean</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-all</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>ebean-parent</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<artifactId>composites</artifactId>
+2 -2
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>ebean-parent</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean api</name>
@@ -49,7 +49,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-annotation</artifactId>
<version>7.8</version>
<version>8.0</version>
</dependency>
<dependency>
-68
View File
@@ -131,14 +131,6 @@ public final class DB {
return getDefault().expressionFactory();
}
/**
* Deprecated migrate to expressionFactory().
*/
@Deprecated
public static ExpressionFactory getExpressionFactory() {
return expressionFactory();
}
/**
* Return the next identity value for a given bean type.
* <p>
@@ -661,14 +653,6 @@ public final class DB {
return getDefault().reference(beanType, id);
}
/**
* Deprecated migrate to beanId().
*/
@Deprecated
public static <T> T getReference(Class<T> beanType, Object id) {
return reference(beanType, id);
}
/**
* Sort the list using the sortByClause which can contain a comma delimited
* list of property names and keywords asc, desc, nullsHigh and nullsLow.
@@ -775,16 +759,6 @@ public final class DB {
return getDefault().sqlQuery(sql);
}
/**
* Deprecated - migrate to sqlQuery().
* <p>
* This is an alias for {@link #sqlQuery(String)}.
*/
@Deprecated
public static SqlQuery createSqlQuery(String sql) {
return sqlQuery(sql);
}
/**
* Look to execute a native sql insert update or delete statement.
* <p>
@@ -802,16 +776,6 @@ public final class DB {
return getDefault().sqlUpdate(sql);
}
/**
* Deprecated - migrate to sqlUpdate().
* <p>
* This is an alias for {@link #sqlUpdate(String)}.
*/
@Deprecated
public static SqlUpdate createSqlUpdate(String sql) {
return sqlUpdate(sql);
}
/**
* Create a CallableSql to execute a given stored procedure.
*
@@ -1172,14 +1136,6 @@ public final class DB {
return getDefault().beanState(bean);
}
/**
* Deprecated migrate to beanState().
*/
@Deprecated
public static BeanState getBeanState(Object bean) {
return beanState(bean);
}
/**
* Return the value of the Id property for a given bean.
*/
@@ -1187,14 +1143,6 @@ public final class DB {
return getDefault().beanId(bean);
}
/**
* Deprecated migrate to beanId().
*/
@Deprecated
public static Object getBeanId(Object bean) {
return beanId(bean);
}
/**
* Load and lock the bean using {@code select for update}.
* <p>
@@ -1210,14 +1158,6 @@ public final class DB {
getDefault().lock(bean);
}
/**
* Deprecated migrate to cacheManager().
*/
@Deprecated
public static ServerCacheManager getServerCacheManager() {
return getDefault().cacheManager();
}
/**
* Return the manager of the level 2 cache ("L2" cache).
*/
@@ -1233,14 +1173,6 @@ public final class DB {
return getDefault().backgroundExecutor();
}
/**
* Deprecated migrate to backgroundExecutor().
*/
@Deprecated
public static BackgroundExecutor getBackgroundExecutor() {
return backgroundExecutor();
}
/**
* Return the JsonContext for reading/writing JSON.
*/
@@ -123,81 +123,33 @@ public interface Database {
*/
AutoTune autoTune();
/**
* Deprecated migrate to autoTune().
*/
@Deprecated
default AutoTune getAutoTune() {
return autoTune();
}
/**
* Return the associated DataSource for this Database instance.
*/
DataSource dataSource();
/**
* Deprecated migrate to dataSource().
*/
@Deprecated
default DataSource getDataSource() {
return dataSource();
}
/**
* Return the associated read only DataSource for this Database instance (can be null).
*/
DataSource readOnlyDataSource();
/**
* Deprecated migrate to readOnlyDataSource().
*/
@Deprecated
default DataSource getReadOnlyDataSource() {
return readOnlyDataSource();
}
/**
* Return the name. This is used with {@link DB#byName(String)} to get a
* Database that was registered with the DB singleton.
*/
String name();
/**
* Deprecated migrate to name().
*/
@Deprecated
default String getName() {
return name();
}
/**
* Return the ExpressionFactory for this database.
*/
ExpressionFactory expressionFactory();
/**
* Deprecated migrate to expressionFactory().
*/
@Deprecated
default ExpressionFactory getExpressionFactory() {
return expressionFactory();
}
/**
* Return the MetaInfoManager which is used to get meta data from the Database
* such as query execution statistics.
*/
MetaInfoManager metaInfo();
/**
* Deprecated migrate to metaInfo().
*/
@Deprecated
default MetaInfoManager getMetaInfoManager() {
return metaInfo();
}
/**
* Return the platform used for this database instance.
* <p>
@@ -217,27 +169,11 @@ public interface Database {
*/
Platform platform();
/**
* Deprecated migrate to platform().
*/
@Deprecated
default Platform getPlatform() {
return platform();
}
/**
* Return the extended API intended for use by plugins.
*/
SpiServer pluginApi();
/**
* Deprecated migrate to pluginApi().
*/
@Deprecated
default SpiServer getPluginApi() {
return pluginApi();
}
/**
* Return the BeanState for a given entity bean.
* <p>
@@ -246,27 +182,11 @@ public interface Database {
*/
BeanState beanState(Object bean);
/**
* Deprecated migrate to beanState().
*/
@Deprecated
default BeanState getBeanState(Object bean) {
return beanState(bean);
}
/**
* Return the value of the Id property for a given bean.
*/
Object beanId(Object bean);
/**
* Deprecated migrate to beanId().
*/
@Deprecated
default Object getBeanId(Object bean) {
return beanId(bean);
}
/**
* Set the Id value onto the bean converting the type of the id value if necessary.
* <p>
@@ -279,14 +199,6 @@ public interface Database {
*/
Object beanId(Object bean, Object id);
/**
* Deprecated migrate to beanId().
*/
@Deprecated
default Object setBeanId(Object bean, Object id) {
return beanId(bean, id);
}
/**
* Return a map of the differences between two objects of the same type.
* <p>
@@ -588,14 +500,6 @@ public interface Database {
*/
SqlQuery sqlQuery(String sql);
/**
* Deprecated - migrate to sqlQuery().
* <p>
* This is an alias for {@link #sqlQuery(String)}.
*/
@Deprecated
SqlQuery createSqlQuery(String sql);
/**
* Look to execute a native sql insert update or delete statement.
* <p>
@@ -611,14 +515,6 @@ public interface Database {
*/
SqlUpdate sqlUpdate(String sql);
/**
* Deprecated - migrate to sqlUpdate().
* <p>
* This is an alias for {@link #sqlUpdate(String)}.
*/
@Deprecated
SqlUpdate createSqlUpdate(String sql);
/**
* Create a CallableSql to execute a given stored procedure.
*/
@@ -952,14 +848,6 @@ public interface Database {
*/
<T> T reference(Class<T> beanType, Object id);
/**
* Deprecated migrate to reference().
*/
@Deprecated
default <T> T getReference(Class<T> beanType, Object id) {
return reference(beanType, id);
}
/**
* Return the extended API for Database.
* <p>
@@ -1528,28 +1416,12 @@ public interface Database {
*/
ServerCacheManager cacheManager();
/**
* Deprecated migrate to cacheManager().
*/
@Deprecated
default ServerCacheManager getServerCacheManager() {
return cacheManager();
}
/**
* Return the BackgroundExecutor service for asynchronous processing of
* queries.
*/
BackgroundExecutor backgroundExecutor();
/**
* Deprecated migrate to backgroundExecutor().
*/
@Deprecated
default BackgroundExecutor getBackgroundExecutor() {
return backgroundExecutor();
}
/**
* Return the JsonContext for reading/writing JSON.
* <p>
+15 -15
View File
@@ -1,5 +1,6 @@
package io.ebean.cache;
import io.avaje.lang.Nullable;
import io.ebean.meta.MetricVisitor;
import java.util.LinkedHashMap;
@@ -68,40 +69,39 @@ public interface ServerCache {
/**
* Return the number of entries in the cache.
*/
int size();
default int size() {
return 0;
}
/**
* Return the hit ratio the cache is currently getting.
*/
default int hitRatio() {
return getHitRatio();
return 0;
}
/**
* Deprecated migrate to hitRatio().
*/
@Deprecated
int getHitRatio();
/**
* Return statistics for the cache.
*
* @param reset if true the statistics are reset.
*/
@Nullable
default ServerCacheStatistics statistics(boolean reset) {
return getStatistics(reset);
return null;
}
/**
* Deprecated migrate to statistics().
*/
@Deprecated
ServerCacheStatistics getStatistics(boolean reset);
/**
* Visit the metrics for the cache.
*/
default void visit(MetricVisitor visitor) {
// do nothing by default
}
/**
* Unwrap the underlying ServerCache.
*/
@SuppressWarnings("unchecked")
default <T> T unwrap(Class<T> cls) {
return (T) this;
}
}
@@ -13,6 +13,7 @@ public class ServerCacheConfig {
private final ServerCacheOptions cacheOptions;
private final CurrentTenantProvider tenantProvider;
private final QueryCacheEntryValidate queryCacheEntryValidate;
private final TenantAwareKey tenantAwareKey;
public ServerCacheConfig(ServerCacheType type, String cacheKey, String shortName, ServerCacheOptions cacheOptions, CurrentTenantProvider tenantProvider, QueryCacheEntryValidate queryCacheEntryValidate) {
this.type = type;
@@ -21,6 +22,14 @@ public class ServerCacheConfig {
this.cacheOptions = cacheOptions;
this.tenantProvider = tenantProvider;
this.queryCacheEntryValidate = queryCacheEntryValidate;
this.tenantAwareKey = (tenantProvider == null) ? null : new TenantAwareKey(tenantProvider);
}
/**
* Return the ServerCache taking into account if multi-tenant is used.
*/
public ServerCache tenantAware(ServerCache cache) {
return tenantAwareKey == null ? cache : new TenantAwareCache(cache, tenantAwareKey);
}
/**
@@ -0,0 +1,104 @@
package io.ebean.cache;
import io.ebean.meta.MetricVisitor;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* A ServerCache proxy that is tenant aware.
*/
public final class TenantAwareCache implements ServerCache {
private final ServerCache delegate;
private final TenantAwareKey tenantAwareKey;
/**
* Create given the TenantAwareKey and delegate cache to proxy to.
*
* @param delegate The cache to proxy to
* @param tenantAwareKey Provides tenant aware keys to use in the cache
*/
public TenantAwareCache(ServerCache delegate, TenantAwareKey tenantAwareKey) {
this.delegate = delegate;
this.tenantAwareKey = tenantAwareKey;
}
/**
* Return the underlying ServerCache that is being delegated to.
*/
@Override
public <T> T unwrap(Class<T> cls) {
return (T)delegate;
}
@Override
public void visit(MetricVisitor visitor) {
delegate.visit(visitor);
}
private Object key(Object key) {
return tenantAwareKey.key(key);
}
@Override
public Object get(Object id) {
return delegate.get(key(id));
}
@Override
public void put(Object id, Object value) {
delegate.put(key(id), value);
}
@Override
public void remove(Object id) {
delegate.remove(key(id));
}
@Override
public void clear() {
delegate.clear();
}
@Override
public int size() {
return delegate.size();
}
@Override
public int hitRatio() {
return delegate.hitRatio();
}
@Override
public ServerCacheStatistics statistics(boolean reset) {
return delegate.statistics(reset);
}
@Override
public Map<Object, Object> getAll(Set<Object> keys) {
Map<Object, Object> keyMapping = new HashMap<>(keys.size());
keys.forEach(k -> keyMapping.put(key(k), k));
Map<Object, Object> tmp = delegate.getAll(keyMapping.keySet());
Map<Object, Object> ret = new HashMap<>(keys.size());
// unwrap tenant info here
tmp.forEach((k,v)-> ret.put(((TenantAwareKey.CacheKey) k).key, v));
return ret;
}
@Override
public void putAll(Map<Object, Object> keyValues) {
Map<Object, Object> tmp = new HashMap<>();
keyValues.forEach((k, v) -> tmp.put(key(k), v));
delegate.putAll(tmp);
}
@Override
public void removeAll(Set<Object> keys) {
delegate.removeAll(keys.stream().map(this::key).collect(Collectors.toSet()));
}
}
@@ -0,0 +1,113 @@
package io.ebean.cache;
import io.ebean.cache.TenantAwareKey.CacheKey;
import io.ebean.config.CurrentTenantProvider;
import org.junit.jupiter.api.Test;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import static org.assertj.core.api.Assertions.assertThat;
class TenantAwareCacheTest {
ServerCache serverCache;
TenantAwareCache cache;
TenantAwareCacheTest() {
TenantAwareKey key = new TenantAwareKey(new TenantProv());
this.serverCache = new Cache();
this.cache = new TenantAwareCache(serverCache, key);
}
@Test
void put_get_remove() {
cache.put("A", "a");
Object val = cache.get("A");
assertThat(val).isEqualTo("a");
CacheKey cacheKey = new CacheKey("A", 42);
Object val2 = serverCache.get(cacheKey);
assertThat(val2).isEqualTo("a");
cache.put("B", "bb");
assertThat(cache.size()).isEqualTo(2);
cache.remove("A");
assertThat(cache.get("A")).isNull();
assertThat(cache.size()).isEqualTo(1);
cache.clear();
assertThat(cache.size()).isEqualTo(0);
assertThat(cache.get("B")).isNull();
}
@Test
void putAll_getAll_removeAll() {
Map<Object, Object> map = new HashMap<>();
map.put("A", "a");
map.put("B", "b");
map.put("C", "c");
cache.putAll(map);
assertThat(cache.size()).isEqualTo(3);
assertThat(cache.get("A")).isEqualTo("a");
assertThat(serverCache.get(new CacheKey("A", 42))).isEqualTo("a");
Map<Object, Object> result = cache.getAll(Set.of("A", "B", "C", "D"));
assertThat(result).hasSize(3);
assertThat(result).containsOnlyKeys("A", "B", "C");
assertThat(result.values()).containsOnly("a", "b", "c");
cache.removeAll(Set.of("A", "C", "D"));
assertThat(cache.size()).isEqualTo(1);
assertThat(cache.get("B")).isEqualTo("b");
assertThat(serverCache.get(new CacheKey("B", 42))).isEqualTo("b");
cache.remove("B");
assertThat(cache.size()).isEqualTo(0);
}
static class TenantProv implements CurrentTenantProvider {
@Override
public Object currentId() {
return 42;
}
}
static class Cache implements ServerCache {
Map<Object, Object> map = new ConcurrentHashMap<>();
@Override
public Object get(Object id) {
return map.get(id);
}
@Override
public void put(Object id, Object value) {
map.put(id, value);
}
@Override
public void remove(Object id) {
map.remove(id);
}
@Override
public void clear() {
map.clear();
}
@Override
public int size() {
return map.size();
}
}
}
+4 -4
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>ebean-parent</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<!-- <parent>-->
<!-- <groupId>org.avaje</groupId>-->
@@ -14,7 +14,7 @@
<scm>
<developerConnection>scm:git:git@github.com:ebean-orm/ebean.git</developerConnection>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
<name>ebean autotune</name>
@@ -26,7 +26,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>provided</scope>
</dependency>
@@ -55,7 +55,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-h2</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
+15 -15
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>ebean-parent</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean bom</name>
@@ -71,88 +71,88 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core-type</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-ddl-generator</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-externalmapping-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-externalmapping-xml</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-autotune</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-querybean</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>querybean-generator</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>kotlin-querybean-generator</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-test</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-postgis</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-redis</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
+2 -2
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>ebean-parent</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<artifactId>ebean-core-type</artifactId>
@@ -16,7 +16,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
+8 -8
View File
@@ -3,7 +3,7 @@
<parent>
<artifactId>ebean-parent</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<artifactId>ebean-core</artifactId>
@@ -15,7 +15,7 @@
<scm>
<developerConnection>scm:git:git@github.com:ebean-orm/ebean.git</developerConnection>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
<dependencies>
@@ -41,19 +41,19 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core-type</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-externalmapping-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -144,21 +144,21 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-h2</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-postgres</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-sqlserver</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
@@ -2,14 +2,7 @@ package io.ebeaninternal.server.cache;
import io.ebeaninternal.server.deploy.BeanDescriptor;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
/**
* List of changes to be applied to L2 cache.
@@ -3,12 +3,7 @@ package io.ebeaninternal.server.cache;
import io.ebean.annotation.Cache;
import io.ebean.annotation.CacheBeanTuning;
import io.ebean.annotation.CacheQueryTuning;
import io.ebean.cache.QueryCacheEntryValidate;
import io.ebean.cache.ServerCache;
import io.ebean.cache.ServerCacheConfig;
import io.ebean.cache.ServerCacheFactory;
import io.ebean.cache.ServerCacheOptions;
import io.ebean.cache.ServerCacheType;
import io.ebean.cache.*;
import io.ebean.config.CurrentTenantProvider;
import io.ebean.meta.MetricVisitor;
import io.ebean.util.AnnotationUtil;
@@ -3,7 +3,6 @@ package io.ebeaninternal.server.cache;
import io.ebean.BackgroundExecutor;
import io.ebean.cache.ServerCache;
import io.ebean.cache.ServerCacheStatistics;
import io.ebean.cache.TenantAwareKey;
import io.ebean.meta.MetricVisitor;
import io.ebean.metric.CountMetric;
import io.ebean.metric.MetricFactory;
@@ -12,11 +11,7 @@ import org.slf4j.LoggerFactory;
import java.io.Serializable;
import java.lang.ref.SoftReference;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.TimeUnit;
/**
@@ -52,14 +47,12 @@ public class DefaultServerCache implements ServerCache {
private final int trimFrequency;
private final int maxIdleSecs;
private final int maxSecsToLive;
private final TenantAwareKey tenantAwareKey;
public DefaultServerCache(DefaultServerCacheConfig config) {
this.name = config.getName();
this.shortName = config.getShortName();
this.map = config.getMap();
this.maxSize = config.getMaxSize();
this.tenantAwareKey = new TenantAwareKey(config.getTenantProvider());
this.maxIdleSecs = config.getMaxIdleSecs();
this.maxSecsToLive = config.getMaxSecsToLive();
this.trimFrequency = config.determineTrimFrequency();
@@ -92,7 +85,7 @@ public class DefaultServerCache implements ServerCache {
}
@Override
public ServerCacheStatistics getStatistics(boolean reset) {
public ServerCacheStatistics statistics(boolean reset) {
ServerCacheStatistics cacheStats = new ServerCacheStatistics();
cacheStats.setCacheName(name);
cacheStats.setMaxSize(maxSize);
@@ -121,7 +114,7 @@ public class DefaultServerCache implements ServerCache {
}
@Override
public int getHitRatio() {
public int hitRatio() {
long mc = missCount.get(false);
long hc = hitCount.get(false);
long totalCount = hc + mc;
@@ -152,19 +145,12 @@ public class DefaultServerCache implements ServerCache {
map.clear();
}
/**
* Return the tenant aware key.
*/
protected Object key(Object id) {
return tenantAwareKey.key(id);
}
/**
* Return a value from the cache.
*/
@Override
public Object get(Object id) {
CacheEntry entry = getCacheEntry(id);
public Object get(Object key) {
CacheEntry entry = getCacheEntry(key);
if (entry == null) {
missCount.increment();
return null;
@@ -184,8 +170,8 @@ public class DefaultServerCache implements ServerCache {
/**
* Get the cache entry - override for query cache to validate dependent tables.
*/
protected CacheEntry getCacheEntry(Object id) {
final SoftReference<CacheEntry> ref = map.get(key(id));
protected CacheEntry getCacheEntry(Object key) {
final SoftReference<CacheEntry> ref = map.get(key);
return ref != null ? ref.get() : null;
}
@@ -198,8 +184,7 @@ public class DefaultServerCache implements ServerCache {
* Put a value into the cache.
*/
@Override
public void put(Object id, Object value) {
Object key = key(id);
public void put(Object key, Object value) {
map.put(key, new SoftReference<>(new CacheEntry(key, value)));
putCount.increment();
}
@@ -208,8 +193,8 @@ public class DefaultServerCache implements ServerCache {
* Remove an entry from the cache.
*/
@Override
public void remove(Object id) {
SoftReference<CacheEntry> entry = map.remove(key(id));
public void remove(Object key) {
SoftReference<CacheEntry> entry = map.remove(key);
if (entry != null && entry.get() != null) {
removeCount.increment();
}
@@ -3,7 +3,6 @@ package io.ebeaninternal.server.cache;
import io.ebean.cache.QueryCacheEntryValidate;
import io.ebean.cache.ServerCacheConfig;
import io.ebean.cache.ServerCacheOptions;
import io.ebean.config.CurrentTenantProvider;
import io.ebeaninternal.server.cache.DefaultServerCache.CacheEntry;
import java.lang.ref.SoftReference;
@@ -34,10 +33,6 @@ public final class DefaultServerCacheConfig {
this.maxSize = options.getMaxSize();
}
public CurrentTenantProvider getTenantProvider() {
return config.getTenantProvider();
}
public QueryCacheEntryValidate getQueryCacheEntryValidate() {
return config.getQueryCacheEntryValidate();
}
@@ -1,11 +1,7 @@
package io.ebeaninternal.server.cache;
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.*;
/**
@@ -41,7 +37,7 @@ final class DefaultServerCacheFactory implements ServerCacheFactory {
if (executor != null) {
cache.periodicTrim(executor);
}
return cache;
return config.tenantAware(cache);
}
@Override
@@ -10,11 +10,7 @@ import io.ebeaninternal.server.deploy.DCacheRegion;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* Manages the bean and query caches.
@@ -27,8 +27,7 @@ public class DefaultServerQueryCache extends DefaultServerCache {
}
@Override
protected CacheEntry getCacheEntry(Object id) {
Object key = key(id);
protected CacheEntry getCacheEntry(Object key) {
final SoftReference<CacheEntry> ref = map.get(key);
CacheEntry entry = ref != null ? ref.get() : null;
if (entry == null) {
@@ -978,21 +978,11 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer {
return new DefaultRelationalQuery(this, sql.trim());
}
@Override
public SqlQuery createSqlQuery(String sql) {
return sqlQuery(sql);
}
@Override
public SqlUpdate sqlUpdate(String sql) {
return new DefaultSqlUpdate(this, sql.trim());
}
@Override
public SqlUpdate createSqlUpdate(String sql) {
return sqlUpdate(sql);
}
@Override
public CallableSql createCallableSql(String sql) {
return new DefaultCallableSql(this, sql.trim());
@@ -219,9 +219,7 @@ public class DeployBeanProperty {
return (AnnotationUtil.has(field, WhenCreated.class)
|| AnnotationUtil.has(field, WhenModified.class)
|| AnnotationUtil.has(field, WhoModified.class)
|| AnnotationUtil.has(field, WhoCreated.class)
|| AnnotationUtil.has(field, UpdatedTimestamp.class)
|| AnnotationUtil.has(field, CreatedTimestamp.class));
|| AnnotationUtil.has(field, WhoCreated.class));
}
public String getFullBeanName() {
@@ -1,38 +1,7 @@
package io.ebeaninternal.server.deploy.parse;
import io.ebean.annotation.Aggregation;
import io.ebean.annotation.CreatedTimestamp;
import io.ebean.annotation.DbArray;
import io.ebean.annotation.DbComment;
import io.ebean.annotation.DbDefault;
import io.ebean.annotation.DbJson;
import io.ebean.annotation.DbJsonB;
import io.ebean.annotation.DbMap;
import io.ebean.annotation.DbMigration;
import io.ebean.annotation.DocCode;
import io.ebean.annotation.DocEmbedded;
import io.ebean.annotation.DocProperty;
import io.ebean.annotation.DocSortable;
import io.ebean.annotation.Draft;
import io.ebean.annotation.DraftDirty;
import io.ebean.annotation.DraftOnly;
import io.ebean.annotation.DraftReset;
import io.ebean.annotation.Encrypted;
import io.ebean.annotation.Expose;
import io.ebean.annotation.Formula;
import io.ebean.annotation.HistoryExclude;
import io.ebean.annotation.Identity;
import io.ebean.annotation.Index;
import io.ebean.annotation.JsonIgnore;
import io.ebean.annotation.Length;
import io.ebean.annotation.SoftDelete;
import io.ebean.annotation.TenantId;
import io.ebean.annotation.UnmappedJson;
import io.ebean.annotation.UpdatedTimestamp;
import io.ebean.annotation.WhenCreated;
import io.ebean.annotation.WhenModified;
import io.ebean.annotation.WhoCreated;
import io.ebean.annotation.WhoModified;
import io.ebean.annotation.*;
import io.ebean.config.EncryptDeploy;
import io.ebean.config.EncryptDeploy.Mode;
import io.ebean.config.dbplatform.DbEncrypt;
@@ -51,24 +20,7 @@ import io.ebeaninternal.server.type.ScalarTypeBytesBase;
import io.ebeaninternal.server.type.ScalarTypeBytesEncrypted;
import io.ebeaninternal.server.type.ScalarTypeEncryptedWrapper;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.PersistenceException;
import javax.persistence.SequenceGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import javax.persistence.Version;
import javax.persistence.*;
import java.sql.Types;
import java.util.Set;
import java.util.UUID;
@@ -339,10 +291,10 @@ final class AnnotationFields extends AnnotationParser {
}
private void initWhen(DeployBeanProperty prop) {
if (has(prop, WhenCreated.class) || has(prop, CreatedTimestamp.class)) {
if (has(prop, WhenCreated.class)) {
generatedPropFactory.setInsertTimestamp(prop);
}
if (has(prop, WhenModified.class) || has(prop, UpdatedTimestamp.class)) {
if (has(prop, WhenModified.class)) {
generatedPropFactory.setUpdateTimestamp(prop);
}
}
@@ -48,7 +48,6 @@ final class DCountMetric implements CountMetric {
@Override
public void visit(MetricVisitor visitor) {
long val = visitor.reset() ? count.sumThenReset() : count.sum();
if (val > 0) {
visitor.visitCount(new DCountMetricStats(name, val));
@@ -1,5 +1,6 @@
package io.ebeaninternal.server.cache;
import io.ebean.cache.ServerCache;
import io.ebean.cache.ServerCacheFactory;
import io.ebean.cache.ServerCacheOptions;
import io.ebean.cache.ServerCacheType;
@@ -12,7 +13,7 @@ import org.tests.model.basic.Customer;
import static org.assertj.core.api.Assertions.assertThat;
public class DefaultCacheHolderTest {
class DefaultCacheHolderTest {
private final ThreadLocal<String> tenantId = new ThreadLocal<>();
@@ -25,42 +26,30 @@ public class DefaultCacheHolderTest {
.with(cacheFactory, new TableModState());
}
@Test
public void getCache_normal() {
void getCache_normal() {
DefaultCacheHolder holder = new DefaultCacheHolder(options());
DefaultServerCache cache = cache(holder, Customer.class);
assertThat(cache.getName()).isEqualTo("org.tests.model.basic.Customer_B");
assertThat(cache.getShortName()).isEqualTo("Customer_B");
DefaultServerCache cache1 = cache(holder, Customer.class);
ServerCache cache = cache(holder, Customer.class);
ServerCache cache1 = cache(holder, Customer.class);
assertThat(cache1).isSameAs(cache);
DefaultServerCache cache2 = cache(holder, Contact.class);
ServerCache cache2 = cache(holder, Contact.class);
assertThat(cache1).isNotSameAs(cache2);
assertThat(cache2.getName()).isEqualTo("org.tests.model.basic.Contact_B");
assertThat(cache2.getShortName()).isEqualTo("Contact_B");
}
private DefaultServerCache cache(DefaultCacheHolder holder, Class<?> type) {
return (DefaultServerCache) holder.getCache(type, ServerCacheType.BEAN);
private ServerCache cache(DefaultCacheHolder holder, Class<?> type) {
return holder.getCache(type, ServerCacheType.BEAN);
}
@Test
public void getCache_multiTenant() throws Exception {
void getCache_multiTenant() throws Exception {
CacheManagerOptions builder = options().with(tenantId::get);
DefaultCacheHolder holder = new DefaultCacheHolder(builder);
tenantId.set("ten_1");
DefaultServerCache cache = cache(holder, Customer.class);
assertThat(cache.getName()).isEqualTo("org.tests.model.basic.Customer_B");
assertThat(cache.getShortName()).isEqualTo("Customer_B");
ServerCache cache = cache(holder, Customer.class);
cache.put("1", "value-for-tenant1");
cache.put("2", "an other value-for-tenant1");
@@ -109,10 +98,9 @@ public class DefaultCacheHolderTest {
}
@Test
public void clearAll() {
void clearAll() {
DefaultCacheHolder holder = new DefaultCacheHolder(options());
DefaultServerCache cache = cache(holder, Customer.class);
ServerCache cache = cache(holder, Customer.class);
cache.put("foo", "foo");
assertThat(cache.size()).isEqualTo(1);
holder.clearAll();
@@ -121,12 +109,11 @@ public class DefaultCacheHolderTest {
}
@Test
public void clearAll_multiTenant() {
void clearAll_multiTenant() {
CacheManagerOptions options = options().with(tenantId::get);
DefaultCacheHolder holder = new DefaultCacheHolder(options);
DefaultServerCache cache = cache(holder, Customer.class);
ServerCache cache = cache(holder, Customer.class);
cache.put("foo", "foo");
assertThat(cache.size()).isEqualTo(1);
@@ -1,5 +1,6 @@
package io.ebeaninternal.server.cache;
import io.ebean.cache.ServerCache;
import io.ebean.config.ContainerConfig;
import io.ebean.config.CurrentTenantProvider;
import io.ebean.config.DatabaseConfig;
@@ -11,7 +12,7 @@ import org.tests.model.basic.Customer;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class DefaultServerCacheManagerTest {
class DefaultServerCacheManagerTest {
private final ThreadLocal<String> tenantId = new ThreadLocal<>();
@@ -29,7 +30,7 @@ public class DefaultServerCacheManagerTest {
private final DefaultServerCacheManager multiTenantManager;
public DefaultServerCacheManagerTest(){
DefaultServerCacheManagerTest(){
CacheManagerOptions builder = new CacheManagerOptions(clusterManager, new DatabaseConfig(), true);
builder.with(new TdTenPro());
this.multiTenantManager = new DefaultServerCacheManager(builder);
@@ -37,86 +38,79 @@ public class DefaultServerCacheManagerTest {
@Test
public void getCache_normal() {
void getCache_normal() {
ServerCache cache = cache(manager, Customer.class);
DefaultServerCache dsc = cache.unwrap(DefaultServerCache.class);
assertThat(dsc.getName()).isEqualTo("org.tests.model.basic.Customer_B");
assertThat(dsc.getShortName()).isEqualTo("Customer_B");
DefaultServerCache cache = cache(manager, Customer.class);
assertThat(cache.getName()).isEqualTo("org.tests.model.basic.Customer_B");
assertThat(cache.getShortName()).isEqualTo("Customer_B");
DefaultServerCache cache1 = cache(manager, Customer.class);
ServerCache cache1 = cache(manager, Customer.class);
assertThat(cache1).isSameAs(cache);
DefaultServerCache cache2 = cache(manager, Contact.class);
ServerCache cache2 = cache(manager, Contact.class);
assertThat(cache1).isNotSameAs(cache2);
assertThat(cache2.getName()).isEqualTo("org.tests.model.basic.Contact_B");
assertThat(cache2.getShortName()).isEqualTo("Contact_B");
DefaultServerCache dsc2 = cache2.unwrap(DefaultServerCache.class);
assertThat(dsc2.getName()).isEqualTo("org.tests.model.basic.Contact_B");
assertThat(dsc2.getShortName()).isEqualTo("Contact_B");
DefaultServerCache natKeyCache = (DefaultServerCache) manager.getNaturalKeyCache(Customer.class);
assertThat(natKeyCache.getName()).isEqualTo("org.tests.model.basic.Customer_N");
assertThat(natKeyCache.getShortName()).isEqualTo("Customer_N");
ServerCache natKeyCache = manager.getNaturalKeyCache(Customer.class);
DefaultServerCache dscNatKey = natKeyCache.unwrap(DefaultServerCache.class);
assertThat(dscNatKey.getName()).isEqualTo("org.tests.model.basic.Customer_N");
assertThat(dscNatKey.getShortName()).isEqualTo("Customer_N");
DefaultServerCache queryCache = (DefaultServerCache) manager.getQueryCache(Customer.class);
assertThat(queryCache.getName()).isEqualTo("org.tests.model.basic.Customer_Q");
assertThat(queryCache.getShortName()).isEqualTo("Customer_Q");
ServerCache queryCache = manager.getQueryCache(Customer.class);
DefaultServerCache dscQueryCache = queryCache.unwrap(DefaultServerCache.class);
assertThat(dscQueryCache.getName()).isEqualTo("org.tests.model.basic.Customer_Q");
assertThat(dscQueryCache.getShortName()).isEqualTo("Customer_Q");
DefaultServerCache collCache = (DefaultServerCache) manager.getCollectionIdsCache(Customer.class, "contacts");
assertThat(collCache.getName()).isEqualTo("org.tests.model.basic.Customer.contacts_C");
assertThat(collCache.getShortName()).isEqualTo("Customer.contacts_C");
ServerCache collCache = manager.getCollectionIdsCache(Customer.class, "contacts");
DefaultServerCache dscCollCache = collCache.unwrap(DefaultServerCache.class);
assertThat(dscCollCache.getName()).isEqualTo("org.tests.model.basic.Customer.contacts_C");
assertThat(dscCollCache.getShortName()).isEqualTo("Customer.contacts_C");
cache.clearCount.reset();
collCache.clearCount.reset();
queryCache.clearCount.reset();
natKeyCache.clearCount.reset();
cache.statistics(true);
collCache.statistics(true);
queryCache.statistics(true);
natKeyCache.statistics(true);
manager.clear(Customer.class);
assertThat(cache.clearCount.get(true)).isEqualTo(1);
assertThat(natKeyCache.clearCount.get(true)).isEqualTo(1);
assertThat(queryCache.clearCount.get(true)).isEqualTo(1);
assertThat(collCache.clearCount.get(true)).isEqualTo(1);
assertThat(cache.statistics(true).getClearCount()).isEqualTo(1);
assertThat(natKeyCache.statistics(true).getClearCount()).isEqualTo(1);
assertThat(queryCache.statistics(true).getClearCount()).isEqualTo(1);
assertThat(collCache.statistics(true).getClearCount()).isEqualTo(1);
}
private DefaultServerCache cache(DefaultServerCacheManager manager, Class<?> beanType) {
return (DefaultServerCache) manager.getBeanCache(beanType);
private ServerCache cache(DefaultServerCacheManager manager, Class<?> beanType) {
return manager.getBeanCache(beanType);
}
@Test
public void getCache_multiTenant() {
void getCache_multiTenant() {
tenantId.set("ten1");
DefaultServerCache cache = cache(multiTenantManager, Customer.class);
assertThat(cache.getName()).isEqualTo("org.tests.model.basic.Customer_B");
ServerCache cache = cache(multiTenantManager, Customer.class);
cache.put("1", "tenant1");
tenantId.set("ten2");
assertThat(cache.get("1")).isNull();
tenantId.set("ten1");
assertThat(cache.get("1")).isNotNull();
assertThat(cache.get("1")).isEqualTo("tenant1");
}
@Test
public void getCache_singleTenant() {
void getCache_singleTenant() {
ServerCache cache = cache(manager, Customer.class);
tenantId.set("ten1");
DefaultServerCache cache = cache(manager, Customer.class);
assertThat(cache.getName()).isEqualTo("org.tests.model.basic.Customer_B");
cache.put("1", "tenant1");
tenantId.set("ten2");
assertThat(cache.get("1")).isEqualTo("tenant1");
}
@Test
public void isLocalL2Caching() {
void isLocalL2Caching() {
assertTrue(manager.isLocalL2Caching());
assertTrue(multiTenantManager.isLocalL2Caching());
}
@@ -40,7 +40,7 @@ public class Contact {
@OneToMany(cascade = CascadeType.ALL)
List<ContactNote> notes;
@CreatedTimestamp
@WhenCreated
Timestamp cretime;
@Version
@@ -33,7 +33,7 @@ public class Product implements Serializable {
String name;
@CreatedTimestamp
@WhenCreated
Timestamp cretime;
@Version
+4 -4
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>ebean-parent</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean ddl generation</name>
@@ -28,14 +28,14 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core-type</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>provided</scope>
</dependency>
@@ -58,7 +58,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-all</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>ebean-parent</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean external mapping api</name>
+6 -6
View File
@@ -4,12 +4,12 @@
<parent>
<artifactId>ebean-parent</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<scm>
<developerConnection>scm:git:git@github.com:ebean-orm/ebean.git</developerConnection>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
<name>ebean external mapping xml</name>
@@ -28,7 +28,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-externalmapping-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -61,21 +61,21 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-h2</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-ddl-generator</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
+3 -3
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>ebean-parent</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0-SNAPSHOT</version>
<version>13.2.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -29,7 +29,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0-SNAPSHOT</version>
<version>13.2.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
@@ -51,7 +51,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-test</artifactId>
<version>13.1.0-SNAPSHOT</version>
<version>13.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
+4 -4
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>ebean-parent</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean postgis</name>
@@ -22,14 +22,14 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-postgres</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<!-- provided scope -->
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>provided</scope>
</dependency>
@@ -73,7 +73,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-test</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
+5 -5
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>ebean-parent</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean querybean</name>
@@ -17,7 +17,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>provided</scope>
</dependency>
@@ -63,21 +63,21 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-ddl-generator</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>querybean-generator</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-test</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
+6 -6
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>ebean-parent</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<artifactId>ebean-redis</artifactId>
@@ -22,35 +22,35 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-querybean</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>querybean-generator</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-test</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
@@ -141,18 +141,4 @@ public final class DuelCache implements ServerCache, NearCacheInvalidate {
return remote.getMissCount();
}
@Override
public int size() {
return 0;
}
@Override
public int getHitRatio() {
return 0;
}
@Override
public ServerCacheStatistics getStatistics(boolean reset) {
return null;
}
}
@@ -277,17 +277,7 @@ final class RedisCache implements ServerCache {
}
@Override
public int size() {
return 0;
}
@Override
public int getHitRatio() {
return 0;
}
@Override
public ServerCacheStatistics getStatistics(boolean reset) {
public ServerCacheStatistics statistics(boolean reset) {
ServerCacheStatistics cacheStats = new ServerCacheStatistics();
cacheStats.setCacheName(cacheKey);
cacheStats.setHitCount(hitCount.get(reset));
@@ -139,7 +139,7 @@ final class RedisCacheFactory implements ServerCacheFactory {
RedisCache redisCache = createRedisCache(config);
boolean nearCache = config.getCacheOptions().isNearCache();
if (!nearCache) {
return redisCache;
return config.tenantAware(redisCache);
}
String cacheKey = config.getCacheKey();
@@ -147,7 +147,7 @@ final class RedisCacheFactory implements ServerCacheFactory {
near.periodicTrim(executor);
DuelCache duelCache = new DuelCache(near, redisCache, cacheKey, nearCacheNotify);
nearCacheMap.put(cacheKey, duelCache);
return duelCache;
return config.tenantAware(duelCache);
}
private RedisCache createRedisCache(ServerCacheConfig config) {
@@ -173,7 +173,7 @@ final class RedisCacheFactory implements ServerCacheFactory {
cache.periodicTrim(executor);
queryCaches.put(config.getCacheKey(), cache);
}
return cache;
return config.tenantAware(cache);
} finally {
lock.unlock();
}
@@ -40,14 +40,14 @@ public class ClusterTest {
foo.save();
DB.cacheManager().clearAll();
DB.getDefault().metaInfo().resetAllMetrics();
db.metaInfo().resetAllMetrics();
other.metaInfo().resetAllMetrics();
Person fooA = DB.find(Person.class, foo.getId());
allowAsyncMessaging(); // allow time for background cache load
Person fooB = other.find(Person.class, foo.getId());
DuelCache dualCacheA = (DuelCache) DB.cacheManager().beanCache(Person.class);
DuelCache dualCacheA = db.cacheManager().beanCache(Person.class).unwrap(DuelCache.class);
assertCounts(dualCacheA, 0, 1, 0, 1);
fooA = DB.find(Person.class, foo.getId());
assertCounts(dualCacheA, 1, 1, 0, 1);
@@ -55,7 +55,7 @@ public class ClusterTest {
fooA = DB.find(Person.class, foo.getId());
assertCounts(dualCacheA, 2, 1, 0, 1);
fooB = other.find(Person.class, foo.getId());
DuelCache dualCacheB = (DuelCache) other.cacheManager().beanCache(Person.class);
DuelCache dualCacheB = other.cacheManager().beanCache(Person.class).unwrap(DuelCache.class);
assertCounts(dualCacheB, 2, 1, 1, 0);
}
@@ -73,7 +73,7 @@ public class ClusterTest {
other.cacheManager().clearAll();
other.metaInfo().resetAllMetrics();
DuelCache dualCache = (DuelCache) other.cacheManager().beanCache(Person.class);
DuelCache dualCache = other.cacheManager().beanCache(Person.class).unwrap(DuelCache.class);
Person foo0 = other.find(Person.class, 1);
assertCounts(dualCache, 0, 1, 0, 1);
+5 -5
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>ebean-parent</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>ebean test</name>
@@ -29,20 +29,20 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-h2</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-ddl-generator</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -106,7 +106,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-all</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
@@ -495,21 +495,11 @@ public class TDSpiEbeanServer extends TDSpiServer implements SpiEbeanServer {
return null;
}
@Override
public SqlQuery createSqlQuery(String sql) {
return sqlQuery(sql);
}
@Override
public SqlUpdate sqlUpdate(String sql) {
return null;
}
@Override
public SqlUpdate createSqlUpdate(String sql) {
return sqlUpdate(sql);
}
@Override
public CallableSql createCallableSql(String callableSql) {
return null;
@@ -177,21 +177,11 @@ public class TDSpiServer implements SpiServer {
return null;
}
@Override
public SqlQuery createSqlQuery(String sql) {
return null;
}
@Override
public SqlUpdate sqlUpdate(String sql) {
return null;
}
@Override
public SqlUpdate createSqlUpdate(String sql) {
return null;
}
@Override
public CallableSql createCallableSql(String callableSql) {
return null;
@@ -1,7 +1,5 @@
package org.tests.model;
import io.ebean.annotation.CreatedTimestamp;
import io.ebean.annotation.UpdatedTimestamp;
import io.ebean.annotation.WhenCreated;
import io.ebean.annotation.WhenModified;
@@ -31,40 +29,40 @@ public class EGenProps {
@WhenModified
Timestamp whenModified;
@CreatedTimestamp
@WhenCreated
Timestamp tsCreated;
@UpdatedTimestamp
@WhenModified
Timestamp tsUpdated;
@CreatedTimestamp
@WhenCreated
LocalDateTime ldtCreated;
@UpdatedTimestamp
@WhenModified
LocalDateTime ldtUpdated;
@CreatedTimestamp
@WhenCreated
OffsetDateTime odtCreated;
@UpdatedTimestamp
@WhenModified
OffsetDateTime odtUpdated;
@CreatedTimestamp
@WhenCreated
ZonedDateTime zdtCreated;
@UpdatedTimestamp
@WhenModified
ZonedDateTime zdtUpdated;
@CreatedTimestamp
@WhenCreated
Instant instantCreated;
@UpdatedTimestamp
@WhenModified
Instant instantUpdated;
@CreatedTimestamp
@WhenCreated
long longCreated;
@UpdatedTimestamp
@WhenModified
long longUpdated;
public Long getId() {
@@ -40,7 +40,7 @@ public class Contact {
@OneToMany(cascade = CascadeType.ALL)
List<ContactNote> notes;
@CreatedTimestamp
@WhenCreated
Timestamp cretime;
@Version
@@ -33,7 +33,7 @@ public class Product implements Serializable {
String name;
@CreatedTimestamp
@WhenCreated
Timestamp cretime;
@Version
@@ -117,9 +117,9 @@ public class TestNatKeyCacheWithForeignKey extends BaseTestCase {
@Test
public void findSimple() {
setupData();
clearAllL2Cache();
appStats();
OCachedApp app0 = findAppByName("app0");
assertThat(app0).isNotNull();
+4 -4
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>ebean-parent</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>kotlin querybean generator</name>
@@ -29,7 +29,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-querybean</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
@@ -43,7 +43,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
@@ -64,7 +64,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-ddl-generator</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<scope>test</scope>
</dependency>
+15 -15
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>platforms</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<artifactId>ebean-platform-all</artifactId>
@@ -14,72 +14,72 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-h2</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-clickhouse</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-db2</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-hana</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-hsqldb</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-mysql</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-mariadb</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-nuodb</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-oracle</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-postgres</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-sqlanywhere</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-sqlite</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-sqlserver</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+3 -3
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>platforms</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<artifactId>ebean-platform-clickhouse</artifactId>
@@ -14,12 +14,12 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+3 -3
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>platforms</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<artifactId>ebean-platform-db2</artifactId>
@@ -14,12 +14,12 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+3 -3
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>platforms</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<artifactId>ebean-platform-h2</artifactId>
@@ -14,7 +14,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<!-- Provided scope so that the H2HistoryTrigger can live in Ebean core
@@ -36,6 +36,6 @@
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+3 -3
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>platforms</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<artifactId>ebean-platform-hana</artifactId>
@@ -14,12 +14,12 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+3 -3
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>platforms</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<artifactId>ebean-platform-hsqldb</artifactId>
@@ -14,12 +14,12 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-h2</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+4 -4
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>platforms</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<artifactId>ebean-platform-mariadb</artifactId>
@@ -14,18 +14,18 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-platform-mysql</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+3 -3
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>platforms</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<artifactId>ebean-platform-mysql</artifactId>
@@ -14,7 +14,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -27,6 +27,6 @@
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+3 -3
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>platforms</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<artifactId>ebean-platform-nuodb</artifactId>
@@ -14,12 +14,12 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+3 -3
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>platforms</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<artifactId>ebean-platform-oracle</artifactId>
@@ -14,7 +14,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -27,6 +27,6 @@
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>ebean-parent</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<artifactId>platforms</artifactId>
+3 -3
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>platforms</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<artifactId>ebean-platform-postgres</artifactId>
@@ -14,7 +14,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -27,6 +27,6 @@
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+3 -3
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>platforms</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<artifactId>ebean-platform-sqlanywhere</artifactId>
@@ -14,12 +14,12 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+3 -3
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>platforms</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<artifactId>ebean-platform-sqlite</artifactId>
@@ -14,12 +14,12 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+3 -3
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>platforms</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<artifactId>ebean-platform-sqlserver</artifactId>
@@ -14,7 +14,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-api</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
</dependency>
<dependency>
@@ -27,6 +27,6 @@
</dependencies>
<scm>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
</project>
+5 -5
View File
@@ -4,12 +4,12 @@
<parent>
<groupId>org.avaje</groupId>
<artifactId>java11-oss</artifactId>
<version>3.6</version>
<version>3.7</version>
</parent>
<groupId>io.ebean</groupId>
<artifactId>ebean-parent</artifactId>
<version>13.1.0</version>
<version>13.2.0</version>
<packaging>pom</packaging>
<name>ebean parent</name>
@@ -18,7 +18,7 @@
<scm>
<developerConnection>scm:git:git@github.com:ebean-orm/ebean.git</developerConnection>
<tag>ebean-parent-13.1.0</tag>
<tag>ebean-parent-13.2.0</tag>
</scm>
<licenses>
@@ -46,8 +46,8 @@
<ebean-migration.version>13.0.0</ebean-migration.version>
<ebean-test-docker.version>4.5</ebean-test-docker.version>
<ebean-datasource.version>7.5</ebean-datasource.version>
<ebean-agent.version>13.1.0</ebean-agent.version>
<ebean-maven-plugin.version>13.1.0</ebean-maven-plugin.version>
<ebean-agent.version>13.2.0</ebean-agent.version>
<ebean-maven-plugin.version>13.2.0</ebean-maven-plugin.version>
<surefire.useModulePath>false</surefire.useModulePath>
</properties>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>ebean-parent</artifactId>
<groupId>io.ebean</groupId>
<version>13.1.0</version>
<version>13.2.0</version>
</parent>
<name>querybean generator</name>
+3 -3
View File
@@ -20,7 +20,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean</artifactId>
<version>13.1.0-SNAPSHOT</version>
<version>13.2.0-SNAPSHOT</version>
</dependency>
<dependency>
@@ -32,7 +32,7 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-test</artifactId>
<version>13.1.0-SNAPSHOT</version>
<version>13.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
@@ -58,7 +58,7 @@
<path>
<groupId>io.ebean</groupId>
<artifactId>querybean-generator</artifactId>
<version>13.1.0-SNAPSHOT</version>
<version>13.2.0-SNAPSHOT</version>
</path>
</annotationProcessorPaths>
</configuration>
+2 -2
View File
@@ -36,14 +36,14 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-test</artifactId>
<version>13.1.0-SNAPSHOT</version>
<version>13.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-core</artifactId>
<version>13.1.0-SNAPSHOT</version>
<version>13.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>