Merge pull request #3263 from ebean-orm/feature/DatabaseBuilder-take-2

DatabaseBuilder take 2
This commit is contained in:
Rob Bygrave
2023-11-05 22:11:26 +13:00
committed by GitHub
116 changed files with 4110 additions and 1862 deletions
+2 -2
View File
@@ -29,13 +29,13 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-joda-time</artifactId>
<version>13.18.0</version>
<version>13.24.0-RC2</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-jackson-jsonnode</artifactId>
<version>13.18.0</version>
<version>13.24.0-RC2</version>
</dependency>
<dependency>
+18 -1
View File
@@ -42,7 +42,7 @@ import java.util.concurrent.Callable;
* <h5>Constructing a Database</h5>
* <p>
* Databases are constructed by the DatabaseFactory. They can be created
* programmatically via {@link DatabaseFactory#create(DatabaseConfig)} or they
* programmatically via {@link DatabaseFactory#create(DatabaseBuilder)} or they
* can be automatically constructed on demand using configuration information in
* the application.properties file.
*
@@ -86,6 +86,23 @@ import java.util.concurrent.Callable;
@NonNullApi
public interface Database {
/**
* Return a new database builder.
* <pre>{@code
*
* // build the 'default' database using configuration
* // from application.properties / application.yaml
*
* Database db = Database.builder()
* .loadFromProperties()
* .build();
*
* }</pre>
*/
static DatabaseBuilder builder() {
return new DatabaseConfig();
}
/**
* Shutdown the Database instance.
*/
File diff suppressed because it is too large Load Diff
@@ -1,7 +1,6 @@
package io.ebean;
import io.ebean.config.ContainerConfig;
import io.ebean.config.DatabaseConfig;
import io.ebean.service.SpiContainer;
import io.ebean.service.SpiContainerFactory;
@@ -76,9 +75,10 @@ public final class DatabaseFactory {
*
* }</pre>
*/
public static Database create(DatabaseConfig config) {
public static Database create(DatabaseBuilder builder) {
lock.lock();
try {
var config = builder.settings();
if (config.getName() == null) {
throw new PersistenceException("The name is null (it is required)");
}
@@ -102,7 +102,7 @@ public final class DatabaseFactory {
/**
* Create using the DatabaseConfig additionally specifying a classLoader to use as the context class loader.
*/
public static Database createWithContextClassLoader(DatabaseConfig config, ClassLoader classLoader) {
public static Database createWithContextClassLoader(DatabaseBuilder config, ClassLoader classLoader) {
lock.lock();
try {
ClassLoader currentContextLoader = Thread.currentThread().getContextClassLoader();
@@ -132,7 +132,7 @@ public final class DatabaseFactory {
}
}
private static Database createInternal(DatabaseConfig config) {
private static Database createInternal(DatabaseBuilder.Settings config) {
return container(config.getContainerConfig()).createServer(config);
}
@@ -1,6 +1,6 @@
package io.ebean.cache;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
/**
* Plugin that provides a ServerCacheNotify implementation.
@@ -12,5 +12,5 @@ public interface ServerCacheNotifyPlugin {
/**
* Create a ServerCacheNotify implementation given the server configuration.
*/
ServerCacheNotify create(DatabaseConfig config);
ServerCacheNotify create(DatabaseBuilder config);
}
@@ -1,7 +1,7 @@
package io.ebean.cache;
import io.ebean.BackgroundExecutor;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
/**
* The plugin interface that creates a ServerCacheFactory.
@@ -11,5 +11,5 @@ public interface ServerCachePlugin {
/**
* Create the ServerCacheFactory given the server config and background executor service.
*/
ServerCacheFactory create(DatabaseConfig config, BackgroundExecutor executor);
ServerCacheFactory create(DatabaseBuilder config, BackgroundExecutor executor);
}
@@ -1,5 +1,7 @@
package io.ebean.config;
import io.ebean.DatabaseBuilder;
/**
* Used to provide some automatic configuration early in the creation of a Database.
*/
@@ -8,11 +10,11 @@ public interface AutoConfigure {
/**
* Perform configuration for the DatabaseConfig prior to properties load.
*/
void preConfigure(DatabaseConfig config);
void preConfigure(DatabaseBuilder config);
/**
* Provide some configuration the DatabaseConfig prior to server creation but after properties have been applied.
*/
void postConfigure(DatabaseConfig config);
void postConfigure(DatabaseBuilder config);
}
File diff suppressed because it is too large Load Diff
@@ -1,5 +1,7 @@
package io.ebean.config;
import io.ebean.DatabaseBuilder;
/**
* Provides a ServiceLoader based mechanism to configure a DatabaseConfig.
* <p>
@@ -35,5 +37,5 @@ public interface DatabaseConfigProvider {
* Typically we explicitly register entity bean classes and thus avoid classpath scanning.
* </p>
*/
void apply(DatabaseConfig config);
void apply(DatabaseBuilder config);
}
@@ -1,6 +1,6 @@
package io.ebean.event;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
/**
* Used to configure the server on startup.
@@ -13,6 +13,6 @@ public interface ServerConfigStartup {
/**
* On starting configure the DatabaseConfig.
*/
void onStart(DatabaseConfig config);
void onStart(DatabaseBuilder config);
}
@@ -3,7 +3,7 @@ package io.ebean.plugin;
import io.ebean.Database;
import io.ebean.bean.BeanLoader;
import io.ebean.bean.EntityBeanIntercept;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.config.dbplatform.DatabasePlatform;
import java.util.List;
@@ -16,7 +16,7 @@ public interface SpiServer extends Database {
/**
* Return the DatabaseConfig.
*/
DatabaseConfig config();
DatabaseBuilder.Settings config();
/**
* Return the DatabasePlatform for this database.
@@ -1,7 +1,7 @@
package io.ebean.service;
import io.ebean.Database;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
/**
* Creates the Database implementations. This is used internally by the EbeanServerFactory and is not currently
@@ -14,7 +14,7 @@ public interface SpiContainer {
*
* @param configuration The configuration information for this database.
*/
Database createServer(DatabaseConfig configuration);
Database createServer(DatabaseBuilder configuration);
/**
* Create an EbeanServer just using the name.
@@ -1,6 +1,7 @@
package io.ebean.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.ebean.DatabaseBuilder;
import io.ebean.annotation.MutationDetection;
import io.ebean.annotation.PersistBatch;
import io.ebean.config.dbplatform.IdType;
@@ -17,7 +18,7 @@ class DatabaseConfigTest {
@Test
void testLoadFromEbeanProperties() {
DatabaseConfig config = new DatabaseConfig();
var config = new DatabaseConfig().settings();
config.loadFromProperties();
assertEquals(PersistBatch.NONE, config.getPersistBatch());
@@ -32,7 +33,7 @@ class DatabaseConfigTest {
Properties props = new Properties();
props.setProperty("ddl.initSql", "${user.home}" + fileSeparator + "initSql");
DatabaseConfig config = new DatabaseConfig();
var config = new DatabaseConfig().settings();
config.loadFromProperties(props);
String ddlInitSql = config.getDdlInitSql();
@@ -41,7 +42,7 @@ class DatabaseConfigTest {
@Test
void testLoadWithProperties() {
DatabaseConfig config = new DatabaseConfig();
DatabaseBuilder config = new DatabaseConfig();
config.setPersistBatch(PersistBatch.NONE);
config.setPersistBatchOnCascade(PersistBatch.NONE);
config.setAutoReadOnlyDataSource(false);
@@ -83,46 +84,47 @@ class DatabaseConfigTest {
config.loadFromProperties(props);
assertFalse(config.isDefaultServer());
assertTrue(config.isDisableL2Cache());
assertTrue(config.isNotifyL2CacheInForeground());
assertTrue(config.isDbOffline());
assertTrue(config.isAutoReadOnlyDataSource());
assertTrue(config.isAutoLoadModuleInfo());
assertTrue(config.isLoadModuleInfo());
assertTrue(config.skipDataSourceCheck());
var settings = config.settings();
assertFalse(settings.isDefaultServer());
assertTrue(settings.isDisableL2Cache());
assertTrue(settings.isNotifyL2CacheInForeground());
assertTrue(settings.isDbOffline());
assertTrue(settings.isAutoReadOnlyDataSource());
assertTrue(settings.isAutoLoadModuleInfo());
assertTrue(settings.isLoadModuleInfo());
assertTrue(settings.skipDataSourceCheck());
assertTrue(config.isIdGeneratorAutomatic());
assertFalse(config.getPlatformConfig().isCaseSensitiveCollation());
assertTrue(config.getPlatformConfig().isForUpdateNoKey());
assertTrue(settings.isIdGeneratorAutomatic());
assertFalse(settings.getPlatformConfig().isCaseSensitiveCollation());
assertTrue(settings.getPlatformConfig().isForUpdateNoKey());
assertThat(config.getNamingConvention()).isInstanceOf(MatchingNamingConvention.class);
assertThat(settings.getNamingConvention()).isInstanceOf(MatchingNamingConvention.class);
assertEquals(MutationDetection.NONE, config.getJsonMutationDetection());
assertEquals(MutationDetection.NONE, settings.getJsonMutationDetection());
config.setJsonMutationDetection(MutationDetection.SOURCE);
assertEquals(MutationDetection.SOURCE, config.getJsonMutationDetection());
assertEquals(IdType.SEQUENCE, config.getIdType());
assertEquals(PersistBatch.ALL, config.getPersistBatch());
assertEquals(PersistBatch.ALL, config.getPersistBatchOnCascade());
Assertions.assertEquals(PlatformConfig.DbUuid.BINARY, config.getPlatformConfig().getDbUuid());
Assertions.assertEquals(JsonConfig.DateTime.MILLIS, config.getJsonDateTime());
assertEquals(JsonConfig.Date.MILLIS, config.getJsonDate());
assertEquals(MutationDetection.SOURCE, settings.getJsonMutationDetection());
assertEquals(IdType.SEQUENCE, settings.getIdType());
assertEquals(PersistBatch.ALL, settings.getPersistBatch());
assertEquals(PersistBatch.ALL, settings.getPersistBatchOnCascade());
Assertions.assertEquals(PlatformConfig.DbUuid.BINARY, settings.getPlatformConfig().getDbUuid());
Assertions.assertEquals(JsonConfig.DateTime.MILLIS, settings.getJsonDateTime());
assertEquals(JsonConfig.Date.MILLIS, settings.getJsonDate());
assertEquals("r0,users,orgs", config.getEnabledL2Regions());
assertEquals("r0,users,orgs", settings.getEnabledL2Regions());
assertEquals(42, config.getJdbcFetchSizeFindEach());
assertEquals(43, config.getJdbcFetchSizeFindList());
assertEquals(4, config.getBackgroundExecutorSchedulePoolSize());
assertEquals(98, config.getBackgroundExecutorShutdownSecs());
assertEquals(42, settings.getJdbcFetchSizeFindEach());
assertEquals(43, settings.getJdbcFetchSizeFindList());
assertEquals(4, settings.getBackgroundExecutorSchedulePoolSize());
assertEquals(98, settings.getBackgroundExecutorShutdownSecs());
assertTrue(config.isQueryPlanEnable());
assertEquals(10000, config.getQueryPlanThresholdMicros());
assertTrue(config.isQueryPlanCapture());
assertEquals(42, config.getQueryPlanCapturePeriodSecs());
assertEquals(560, config.getQueryPlanCaptureMaxTimeMillis());
assertEquals(7, config.getQueryPlanCaptureMaxCount());
assertTrue(settings.isQueryPlanEnable());
assertEquals(10000, settings.getQueryPlanThresholdMicros());
assertTrue(settings.isQueryPlanCapture());
assertEquals(42, settings.getQueryPlanCapturePeriodSecs());
assertEquals(560, settings.getQueryPlanCaptureMaxTimeMillis());
assertEquals(7, settings.getQueryPlanCaptureMaxCount());
assertThat(config.getMappingLocations()).containsExactly("classpath:/foo","bar");
assertThat(settings.getMappingLocations()).containsExactly("classpath:/foo","bar");
config.setPersistBatch(PersistBatch.NONE);
config.setPersistBatchOnCascade(PersistBatch.NONE);
@@ -137,19 +139,19 @@ class DatabaseConfigTest {
props1.setProperty("ebean.notifyL2CacheInForeground", "false");
config.loadFromProperties(props1);
assertFalse(config.isDisableL2Cache());
assertFalse(config.isNotifyL2CacheInForeground());
assertFalse(settings.isDisableL2Cache());
assertFalse(settings.isNotifyL2CacheInForeground());
assertEquals(PersistBatch.ALL, config.getPersistBatch());
assertEquals(PersistBatch.ALL, config.getPersistBatchOnCascade());
assertEquals(PersistBatch.ALL, settings.getPersistBatch());
assertEquals(PersistBatch.ALL, settings.getPersistBatchOnCascade());
config.setEnabledL2Regions("r0,orgs");
assertEquals("r0,orgs", config.getEnabledL2Regions());
assertEquals("r0,orgs", settings.getEnabledL2Regions());
}
@Test
void test_defaults() {
DatabaseConfig config = new DatabaseConfig();
DatabaseBuilder.Settings config = new DatabaseConfig().settings();
assertTrue(config.isIdGeneratorAutomatic());
assertTrue(config.isDefaultServer());
assertFalse(config.isAutoPersistUpdates());
@@ -184,7 +186,7 @@ class DatabaseConfigTest {
void test_putServiceObject() {
ObjectMapper objectMapper = new ObjectMapper();
DatabaseConfig config = new DatabaseConfig();
var config = new DatabaseConfig().settings();
config.putServiceObject(objectMapper);
ObjectMapper mapper0 = config.getServiceObject(ObjectMapper.class);
+2 -2
View File
@@ -113,13 +113,13 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-joda-time</artifactId>
<version>13.18.0</version>
<version>13.24.0-RC2</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-jackson-jsonnode</artifactId>
<version>13.18.0</version>
<version>13.24.0-RC2</version>
</dependency>
<dependency>
@@ -1,6 +1,6 @@
package io.ebean.core.type;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import java.util.List;
@@ -12,5 +12,5 @@ public interface ExtraTypeFactory {
/**
* Provide extra types to Ebean.
*/
List<? extends ScalarType<?>> createTypes(DatabaseConfig config, Object objectMapper);
List<? extends ScalarType<?>> createTypes(DatabaseBuilder.Settings config, Object objectMapper);
}
@@ -1,7 +1,7 @@
package io.ebean.core.type;
import io.avaje.lang.Nullable;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
/**
* Factory to create ScalarTypeSet.
@@ -12,6 +12,6 @@ public interface ScalarTypeSetFactory {
* Create the ScalarTypeSet given the config and optional objectMapper.
*/
@Nullable
ScalarTypeSet<?> createTypeSet(DatabaseConfig config, @Nullable Object objectMapper);
ScalarTypeSet<?> createTypeSet(DatabaseBuilder.Settings config, @Nullable Object objectMapper);
}
@@ -1,6 +1,6 @@
package io.ebeaninternal.api;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebeaninternal.server.type.GeoTypeBinder;
/**
@@ -11,5 +11,5 @@ public interface GeoTypeProvider {
/**
* Create a binder for binding geometry types.
*/
GeoTypeBinder createBinder(DatabaseConfig config);
GeoTypeBinder createBinder(DatabaseBuilder.Settings config);
}
@@ -1,9 +1,9 @@
package io.ebeaninternal.server.autotune;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebeaninternal.api.SpiEbeanServer;
public interface AutoTuneServiceProvider {
AutoTuneService create(SpiEbeanServer server, DatabaseConfig config);
AutoTuneService create(SpiEbeanServer server, DatabaseBuilder config);
}
@@ -4,7 +4,7 @@ import io.ebean.cache.QueryCacheEntryValidate;
import io.ebean.cache.ServerCacheFactory;
import io.ebean.cache.ServerCacheOptions;
import io.ebean.config.CurrentTenantProvider;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebeaninternal.server.cluster.ClusterManager;
/**
@@ -13,7 +13,7 @@ import io.ebeaninternal.server.cluster.ClusterManager;
public final class CacheManagerOptions {
private final ClusterManager clusterManager;
private final DatabaseConfig databaseConfig;
private final DatabaseBuilder.Settings databaseBuilder;
private final boolean localL2Caching;
private CurrentTenantProvider currentTenantProvider;
private QueryCacheEntryValidate queryCacheEntryValidate;
@@ -24,15 +24,15 @@ public final class CacheManagerOptions {
CacheManagerOptions() {
this.localL2Caching = true;
this.clusterManager = null;
this.databaseConfig = null;
this.databaseBuilder = null;
this.cacheFactory = new DefaultServerCacheFactory();
this.beanDefault = new ServerCacheOptions();
this.queryDefault = new ServerCacheOptions();
}
public CacheManagerOptions(ClusterManager clusterManager, DatabaseConfig config, boolean localL2Caching) {
public CacheManagerOptions(ClusterManager clusterManager, DatabaseBuilder.Settings config, boolean localL2Caching) {
this.clusterManager = clusterManager;
this.databaseConfig = config;
this.databaseBuilder = config;
this.localL2Caching = localL2Caching;
this.currentTenantProvider = config.getCurrentTenantProvider();
}
@@ -55,7 +55,7 @@ public final class CacheManagerOptions {
}
public String getServerName() {
return (databaseConfig == null) ? "db" : databaseConfig.getName();
return (databaseBuilder == null) ? "db" : databaseBuilder.getName();
}
public boolean isLocalL2Caching() {
@@ -3,7 +3,7 @@ package io.ebeaninternal.server.cache;
import io.ebean.BackgroundExecutor;
import io.ebean.cache.ServerCacheFactory;
import io.ebean.cache.ServerCachePlugin;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
/**
* Default implementation of ServerCachePlugin.
@@ -14,7 +14,7 @@ public final class DefaultServerCachePlugin implements ServerCachePlugin {
* Creates the default ServerCacheFactory.
*/
@Override
public ServerCacheFactory create(DatabaseConfig config, BackgroundExecutor executor) {
public ServerCacheFactory create(DatabaseBuilder config, BackgroundExecutor executor) {
return new DefaultServerCacheFactory(executor);
}
}
@@ -2,7 +2,7 @@ package io.ebeaninternal.server.core;
import io.avaje.classpath.scanner.ClassPathScanner;
import io.avaje.classpath.scanner.ClassPathScannerFactory;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import java.util.ArrayList;
import java.util.List;
@@ -16,7 +16,7 @@ public class ClassPathScanners {
/**
* Return the list of ClassPathScanner services using DatabaseConfig service loader.
*/
public static List<ClassPathScanner> find(DatabaseConfig config) {
public static List<ClassPathScanner> find(DatabaseBuilder.Settings config) {
List<ClassPathScanner> scanners = new ArrayList<>();
for (ClassPathScannerFactory factory : ServiceLoader.load(ClassPathScannerFactory.class)) {
scanners.add(factory.createScanner(config.getClassLoadConfig().getClassLoader()));
@@ -1,6 +1,6 @@
package io.ebeaninternal.server.core;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebean.config.dbplatform.DatabasePlatformProvider;
import io.ebeaninternal.api.CoreLog;
@@ -37,7 +37,7 @@ public class DatabasePlatformFactory {
/**
* Create the appropriate database specific platform.
*/
public DatabasePlatform create(DatabaseConfig config) {
public DatabasePlatform create(DatabaseBuilder.Settings config) {
try {
String offlinePlatform = DbOffline.getPlatform();
if (offlinePlatform != null) {
@@ -1,5 +1,6 @@
package io.ebeaninternal.server.core;
import io.ebean.DatabaseBuilder;
import io.ebean.config.*;
import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebean.event.ShutdownManager;
@@ -51,13 +52,14 @@ public final class DefaultContainer implements SpiContainer {
*/
@Override
public SpiEbeanServer createServer(String name) {
DatabaseConfig config = new DatabaseConfig();
DatabaseBuilder config = new DatabaseConfig();
config.setName(name);
config.loadFromProperties();
return createServer(config);
}
private SpiBackgroundExecutor createBackgroundExecutor(DatabaseConfig config) {
private SpiBackgroundExecutor createBackgroundExecutor(DatabaseBuilder builder) {
var config = builder.settings();
String namePrefix = "ebean-" + config.getName();
int schedulePoolSize = config.getBackgroundExecutorSchedulePoolSize();
int shutdownSecs = config.getBackgroundExecutorShutdownSecs();
@@ -69,9 +71,10 @@ public final class DefaultContainer implements SpiContainer {
* Create the implementation from the configuration.
*/
@Override
public SpiEbeanServer createServer(DatabaseConfig config) {
public SpiEbeanServer createServer(DatabaseBuilder builder) {
lock.lock();
try {
var config = builder.settings();
long start = System.currentTimeMillis();
applyConfigServices(config);
setNamingConvention(config);
@@ -115,7 +118,7 @@ public final class DefaultContainer implements SpiContainer {
}
}
private void applyConfigServices(DatabaseConfig config) {
private void applyConfigServices(DatabaseBuilder.Settings config) {
if (config.isDefaultServer()) {
for (DatabaseConfigProvider configProvider : ServiceLoader.load(DatabaseConfigProvider.class)) {
configProvider.apply(config);
@@ -158,7 +161,7 @@ public final class DefaultContainer implements SpiContainer {
* Get the entities, scalarTypes, Listeners etc combining the class registered
* ones with the already created instances.
*/
private BootupClasses bootupClasses(DatabaseConfig config) {
private BootupClasses bootupClasses(DatabaseBuilder.Settings config) {
BootupClasses bootup = bootupClasses1(config);
bootup.addServerConfigStartup(config.getServerConfigStartupListeners());
bootup.runServerConfigStartup(config);
@@ -176,7 +179,7 @@ public final class DefaultContainer implements SpiContainer {
/**
* Get the class based entities, scalarTypes, Listeners etc.
*/
private BootupClasses bootupClasses1(DatabaseConfig config) {
private BootupClasses bootupClasses1(DatabaseBuilder.Settings config) {
Set<Class<?>> classes = config.classes();
if (config.isDisableClasspathSearch() || (classes != null && !classes.isEmpty())) {
// use classes we explicitly added via configuration
@@ -188,7 +191,7 @@ public final class DefaultContainer implements SpiContainer {
/**
* Set the naming convention to underscore if it has not already been set.
*/
private void setNamingConvention(DatabaseConfig config) {
private void setNamingConvention(DatabaseBuilder.Settings config) {
if (config.getNamingConvention() == null) {
config.setNamingConvention(new UnderscoreNamingConvention());
}
@@ -197,7 +200,7 @@ public final class DefaultContainer implements SpiContainer {
/**
* Set the DatabasePlatform if it has not already been set.
*/
private void setDatabasePlatform(DatabaseConfig config) {
private void setDatabasePlatform(DatabaseBuilder.Settings config) {
DatabasePlatform platform = config.getDatabasePlatform();
if (platform == null) {
if (config.getTenantMode().isDynamicDataSource()) {
@@ -213,7 +216,7 @@ public final class DefaultContainer implements SpiContainer {
/**
* Set the DataSource if it has not already been set.
*/
private void setDataSource(DatabaseConfig config) {
private void setDataSource(DatabaseBuilder.Settings config) {
if (isOfflineMode(config)) {
log.log(DEBUG, "... DbOffline using platform [{0}]", DbOffline.getPlatform());
} else {
@@ -221,7 +224,7 @@ public final class DefaultContainer implements SpiContainer {
}
}
private boolean isOfflineMode(DatabaseConfig config) {
private boolean isOfflineMode(DatabaseBuilder.Settings config) {
return config.isDbOffline() || DbOffline.isSet();
}
@@ -235,7 +238,7 @@ public final class DefaultContainer implements SpiContainer {
* checking may not work as expected.
* </p>
*/
private boolean checkDataSource(DatabaseConfig config) {
private boolean checkDataSource(DatabaseBuilder.Settings config) {
if (isOfflineMode(config)) {
return false;
}
@@ -76,7 +76,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer {
private static final System.Logger log = CoreLog.internal;
private final ReentrantLock lock = new ReentrantLock();
private final DatabaseConfig config;
private final DatabaseBuilder.Settings config;
private final String serverName;
private final DatabasePlatform databasePlatform;
private final TransactionManager transactionManager;
@@ -170,7 +170,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer {
/**
* Create the CallStackFactory depending if AutoTune is being used.
*/
private CallOriginFactory initCallStackFactory(DatabaseConfig config) {
private CallOriginFactory initCallStackFactory(DatabaseBuilder.Settings config) {
if (!config.getAutoTuneConfig().isActive()) {
// use a common CallStack for performance as we don't care with no AutoTune
return new NoopCallOriginFactory();
@@ -224,7 +224,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer {
}
@Override
public DatabaseConfig config() {
public DatabaseBuilder.Settings config() {
return config;
}
@@ -1,7 +1,7 @@
package io.ebeaninternal.server.core;
import io.ebean.annotation.Platform;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.datasource.*;
import jakarta.persistence.PersistenceException;
@@ -12,16 +12,16 @@ import javax.sql.DataSource;
*/
final class InitDataSource {
private final DatabaseConfig config;
private final DatabaseBuilder.Settings config;
/**
* Create and set the main DataSource and read-only DataSource.
*/
static void init(DatabaseConfig config) {
static void init(DatabaseBuilder.Settings config) {
new InitDataSource(config).initialise();
}
InitDataSource(DatabaseConfig config) {
InitDataSource(DatabaseBuilder.Settings config) {
this.config = config;
}
@@ -1,13 +1,11 @@
package io.ebeaninternal.server.core;
import com.fasterxml.jackson.core.JsonFactory;
import io.ebean.DatabaseBuilder;
import io.ebean.ExpressionFactory;
import io.ebean.annotation.Platform;
import io.ebean.cache.*;
import io.ebean.config.DatabaseConfig;
import io.ebean.config.ExternalTransactionManager;
import io.ebean.config.ProfilingConfig;
import io.ebean.config.SlowQueryListener;
import io.ebean.config.*;
import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebean.config.dbplatform.DbHistorySupport;
import io.ebean.event.changelog.ChangeLogListener;
@@ -71,7 +69,7 @@ public final class InternalConfiguration {
private final TableModState tableModState;
private final boolean online;
private final DatabaseConfig config;
private final DatabaseBuilder.Settings config;
private final BootupClasses bootupClasses;
private final DatabasePlatform databasePlatform;
private final DeployInherit deployInherit;
@@ -100,12 +98,12 @@ public final class InternalConfiguration {
private boolean localL2Caching;
InternalConfiguration(boolean online, ClusterManager clusterManager, SpiBackgroundExecutor backgroundExecutor,
DatabaseConfig config, BootupClasses bootupClasses) {
DatabaseBuilder.Settings config, BootupClasses bootupClasses) {
this.online = online;
this.config = config;
this.jacksonCorePresent = config.getClassLoadConfig().isJacksonCorePresent();
this.clockService = new ClockService(config.getClock());
this.clockService = new ClockService(config.settings().getClock());
this.tableModState = new TableModState();
this.logManager = initLogManager();
this.docStoreFactory = initDocStoreFactory(service(DocStoreFactory.class));
@@ -175,7 +173,7 @@ public final class InternalConfiguration {
/**
* Create and return the ExpressionFactory based on configuration and database platform.
*/
private ExpressionFactory initExpressionFactory(DatabaseConfig config) {
private ExpressionFactory initExpressionFactory(DatabaseBuilder.Settings config) {
boolean nativeIlike = config.isExpressionNativeIlike() && databasePlatform.supportsNativeIlike();
return new DefaultExpressionFactory(config.isExpressionEqualsWithNullAsNoop(), nativeIlike);
}
@@ -333,7 +331,7 @@ public final class InternalConfiguration {
return config.getDatabasePlatform();
}
public DatabaseConfig getConfig() {
public DatabaseBuilder.Settings getConfig() {
return config;
}
@@ -1,7 +1,7 @@
package io.ebeaninternal.server.core.bootup;
import io.avaje.classpath.scanner.ClassPathScanner;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebeaninternal.api.CoreLog;
import io.ebeaninternal.server.core.ClassPathScanners;
@@ -24,11 +24,11 @@ public class BootupClassPathSearch {
* Search the classPath for the classes we are interested in returning
* them as BootupClasses.
*/
public static BootupClasses search(DatabaseConfig config) {
public static BootupClasses search(DatabaseBuilder.Settings config) {
return new BootupClassPathSearch(config).getBootupClasses();
}
private BootupClassPathSearch(DatabaseConfig config) {
private BootupClassPathSearch(DatabaseBuilder.Settings config) {
// find packages defined in ebean.mf resources
Set<String> mfPackages = ManifestReader.create(config.getClassLoadConfig().getClassLoader())
.read("META-INF/ebean.mf")
@@ -1,7 +1,7 @@
package io.ebeaninternal.server.core.bootup;
import io.ebean.annotation.DocStore;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.config.IdGenerator;
import io.ebean.config.ScalarTypeConverter;
import io.ebean.core.type.ScalarType;
@@ -91,7 +91,7 @@ public class BootupClasses implements Predicate<Class<?>> {
/**
* Run any ServerConfigStartup listeners.
*/
public void runServerConfigStartup(DatabaseConfig config) {
public void runServerConfigStartup(DatabaseBuilder config) {
for (Class<?> cls : serverConfigStartupCandidates) {
try {
ServerConfigStartup newInstance = (ServerConfigStartup) cls.getDeclaredConstructor().newInstance();
@@ -172,7 +172,7 @@ public class BootupClasses implements Predicate<Class<?>> {
add(startupInstances, serverConfigStartupInstances, serverConfigStartupCandidates);
}
public void addChangeLogInstances(DatabaseConfig config) {
public void addChangeLogInstances(DatabaseBuilder.Settings config) {
readAuditPrepare = config.getReadAuditPrepare();
readAuditLogger = config.getReadAuditLogger();
changeLogPrepare = config.getChangeLogPrepare();
@@ -4,7 +4,7 @@ import io.ebean.*;
import io.ebean.annotation.DocStoreMode;
import io.ebean.bean.*;
import io.ebean.cache.QueryCacheEntry;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.config.EncryptKey;
import io.ebean.config.dbplatform.IdType;
import io.ebean.config.dbplatform.PlatformIdGenerator;
@@ -423,7 +423,7 @@ public class BeanDescriptor<T> implements BeanType<T>, STreeType, SpiBeanType {
/**
* Return the DatabaseConfig.
*/
public DatabaseConfig config() {
public DatabaseBuilder.Settings config() {
return owner.config();
}
@@ -1,6 +1,7 @@
package io.ebeaninternal.server.deploy;
import io.ebean.BackgroundExecutor;
import io.ebean.DatabaseBuilder;
import io.ebean.Model;
import io.ebean.RawSqlBuilder;
import io.ebean.annotation.ConstraintMode;
@@ -78,7 +79,7 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy
private final NamingConvention namingConvention;
private final DeployCreateProperties createProperties;
private final BeanManagerFactory beanManagerFactory;
private final DatabaseConfig config;
private final DatabaseBuilder.Settings config;
private final ChangeLogListener changeLogListener;
private final ChangeLogRegister changeLogRegister;
private final ChangeLogPrepare changeLogPrepare;
@@ -195,19 +196,19 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy
/**
* Return the AsOfViewSuffix based on the DbHistorySupport.
*/
private String asOfViewSuffix(DatabasePlatform databasePlatform, DatabaseConfig serverConfig) {
private String asOfViewSuffix(DatabasePlatform databasePlatform, DatabaseBuilder.Settings config) {
DbHistorySupport historySupport = databasePlatform.historySupport();
// with historySupport returns a simple view suffix or the sql2011 as of timestamp suffix
return (historySupport == null) ? serverConfig.getAsOfViewSuffix() : historySupport.getAsOfViewSuffix(serverConfig.getAsOfViewSuffix());
return (historySupport == null) ? config.getAsOfViewSuffix() : historySupport.getAsOfViewSuffix(config.getAsOfViewSuffix());
}
/**
* Return the versions between timestamp suffix based on the DbHistorySupport.
*/
private String versionsBetweenSuffix(DatabasePlatform databasePlatform, DatabaseConfig serverConfig) {
private String versionsBetweenSuffix(DatabasePlatform databasePlatform, DatabaseBuilder.Settings config) {
DbHistorySupport historySupport = databasePlatform.historySupport();
// with historySupport returns a simple view suffix or the sql2011 versions between timestamp suffix
return (historySupport == null) ? serverConfig.getAsOfViewSuffix() : historySupport.getVersionsBetweenSuffix(serverConfig.getAsOfViewSuffix());
return (historySupport == null) ? config.getAsOfViewSuffix() : historySupport.getVersionsBetweenSuffix(config.getAsOfViewSuffix());
}
@Override
@@ -216,7 +217,7 @@ public final class BeanDescriptorManager implements BeanDescriptorMap, SpiBeanTy
}
@Override
public DatabaseConfig config() {
public DatabaseBuilder.Settings config() {
return config;
}
@@ -1,6 +1,6 @@
package io.ebeaninternal.server.deploy;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.config.EncryptKey;
import io.ebean.config.NamingConvention;
import io.ebean.core.type.ScalarType;
@@ -25,7 +25,7 @@ public interface BeanDescriptorMap {
/**
* Return the DatabaseConfig.
*/
DatabaseConfig config();
DatabaseBuilder.Settings config();
/**
* Return the Cache Manager.
@@ -2,7 +2,7 @@ package io.ebeaninternal.server.deploy;
import io.ebean.annotation.PostSoftDelete;
import io.ebean.annotation.PreSoftDelete;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.event.BeanPersistAdapter;
import io.ebean.event.BeanPersistRequest;
import io.ebean.event.BeanPostConstructListener;
@@ -34,7 +34,7 @@ final class BeanLifecycleAdapterFactory {
private final boolean postConstructPresent;
BeanLifecycleAdapterFactory(DatabaseConfig config) {
BeanLifecycleAdapterFactory(DatabaseBuilder.Settings config) {
this.postConstructPresent = config.getClassLoadConfig().isJavaxPostConstructPresent();
}
@@ -1,10 +1,8 @@
package io.ebeaninternal.server.deploy.generatedproperty;
import io.ebean.DatabaseBuilder;
import io.ebean.Transaction;
import io.ebean.config.ClassLoadConfig;
import io.ebean.config.CurrentUserProvider;
import io.ebean.config.DatabaseConfig;
import io.ebean.config.IdGenerator;
import io.ebean.config.*;
import io.ebean.config.dbplatform.PlatformIdGenerator;
import io.ebeaninternal.server.deploy.meta.DeployBeanProperty;
@@ -29,7 +27,7 @@ public final class GeneratedPropertyFactory {
private final ClassLoadConfig classLoadConfig;
private final Map<String, PlatformIdGenerator> idGeneratorMap = new HashMap<>();
public GeneratedPropertyFactory(boolean offlineMode, DatabaseConfig config, List<IdGenerator> idGenerators) {
public GeneratedPropertyFactory(boolean offlineMode, DatabaseBuilder.Settings config, List<IdGenerator> idGenerators) {
this.classLoadConfig = config.getClassLoadConfig();
this.insertFactory = new InsertTimestampFactory(classLoadConfig);
this.updateFactory = new UpdateTimestampFactory(classLoadConfig);
@@ -4,7 +4,7 @@ import io.ebean.annotation.Cache;
import io.ebean.annotation.DocStore;
import io.ebean.annotation.DocStoreMode;
import io.ebean.annotation.Identity;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.config.TableName;
import io.ebean.config.dbplatform.IdType;
import io.ebean.config.dbplatform.PlatformIdGenerator;
@@ -47,7 +47,7 @@ public class DeployBeanDescriptor<T> {
private static final PropOrder PROP_ORDER = new PropOrder();
private final DatabaseConfig config;
private final DatabaseBuilder.Settings config;
private final BeanDescriptorManager manager;
/**
* Map of BeanProperty Linked so as to preserve order.
@@ -133,7 +133,7 @@ public class DeployBeanDescriptor<T> {
/**
* Construct the BeanDescriptor.
*/
public DeployBeanDescriptor(BeanDescriptorManager manager, Class<T> beanType, DatabaseConfig config) {
public DeployBeanDescriptor(BeanDescriptorManager manager, Class<T> beanType, DatabaseBuilder.Settings config) {
this.manager = manager;
this.config = config;
this.beanType = beanType;
@@ -1,13 +1,8 @@
package io.ebeaninternal.server.deploy.parse;
import io.ebean.DatabaseBuilder;
import io.ebean.annotation.*;
import io.ebean.config.DatabaseConfig;
import io.ebean.config.EncryptDeploy;
import io.ebean.config.EncryptDeployManager;
import io.ebean.config.EncryptKeyManager;
import io.ebean.config.Encryptor;
import io.ebean.config.NamingConvention;
import io.ebean.config.TableName;
import io.ebean.config.*;
import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebean.config.dbplatform.DbPlatformType;
import io.ebean.core.type.ScalarType;
@@ -49,7 +44,7 @@ public final class DeployUtil {
private final Encryptor bytesEncryptor;
private final boolean useValidationNotNull;
public DeployUtil(TypeManager typeMgr, DatabaseConfig config) {
public DeployUtil(TypeManager typeMgr, DatabaseBuilder.Settings config) {
this.typeManager = typeMgr;
this.namingConvention = config.getNamingConvention();
this.dbPlatform = config.getDatabasePlatform();
@@ -4,7 +4,7 @@ import io.ebean.annotation.Aggregation;
import io.ebean.annotation.Formula;
import io.ebean.annotation.Where;
import io.ebean.config.ClassLoadConfig;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebeaninternal.server.deploy.generatedproperty.GeneratedPropertyFactory;
import io.ebeaninternal.server.deploy.meta.DeployBeanProperty;
@@ -31,7 +31,7 @@ final class ReadAnnotationConfig {
private final ReadValidationAnnotations jakartaValidation;
private final Set<Class<?>> metaAnnotations = new HashSet<>();
ReadAnnotationConfig(GeneratedPropertyFactory generatedPropFactory, String asOfViewSuffix, String versionsBetweenSuffix, DatabaseConfig config) {
ReadAnnotationConfig(GeneratedPropertyFactory generatedPropFactory, String asOfViewSuffix, String versionsBetweenSuffix, DatabaseBuilder.Settings config) {
this.generatedPropFactory = generatedPropFactory;
this.asOfViewSuffix = asOfViewSuffix;
this.versionsBetweenSuffix = versionsBetweenSuffix;
@@ -1,6 +1,6 @@
package io.ebeaninternal.server.deploy.parse;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebeaninternal.server.deploy.BeanDescriptorManager;
import io.ebeaninternal.server.deploy.generatedproperty.GeneratedPropertyFactory;
@@ -12,7 +12,7 @@ public final class ReadAnnotations {
private final ReadAnnotationConfig readConfig;
public ReadAnnotations(GeneratedPropertyFactory generatedPropFactory, String asOfViewSuffix, String versionsBetweenSuffix, DatabaseConfig config) {
public ReadAnnotations(GeneratedPropertyFactory generatedPropFactory, String asOfViewSuffix, String versionsBetweenSuffix, DatabaseBuilder.Settings config) {
this.readConfig = new ReadAnnotationConfig(generatedPropFactory, asOfViewSuffix, versionsBetweenSuffix, config);
}
@@ -7,7 +7,7 @@ import io.ebean.annotation.Platform;
import io.ebean.bean.BeanCollection;
import io.ebean.bean.EntityBean;
import io.ebean.bean.ObjectGraphNode;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebean.util.JdbcClose;
import io.ebean.util.StringHelper;
@@ -38,7 +38,7 @@ public final class CQueryEngine {
private final CQueryHistorySupport historySupport;
private final DatabasePlatform dbPlatform;
public CQueryEngine(DatabaseConfig config, DatabasePlatform dbPlatform, Binder binder, Map<String, String> asOfTableMapping, Map<String, String> draftTableMap) {
public CQueryEngine(DatabaseBuilder.Settings config, DatabasePlatform dbPlatform, Binder binder, Map<String, String> asOfTableMapping, Map<String, String> draftTableMap) {
this.dbPlatform = dbPlatform;
this.defaultFetchSizeFindEach = config.getJdbcFetchSizeFindEach();
this.defaultFetchSizeFindList = config.getJdbcFetchSizeFindList();
@@ -2,7 +2,7 @@ package io.ebeaninternal.server.transaction;
import io.ebean.BackgroundExecutor;
import io.ebean.cache.ServerCacheNotify;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.plugin.SpiServer;
import io.ebeaninternal.api.SpiLogManager;
import io.ebeaninternal.api.SpiProfileHandler;
@@ -18,7 +18,7 @@ public final class TransactionManagerOptions {
final SpiServer server;
final boolean notifyL2CacheInForeground;
final DatabaseConfig config;
final DatabaseBuilder.Settings config;
final ClusterManager clusterManager;
final BackgroundExecutor backgroundExecutor;
@@ -33,8 +33,8 @@ public final class TransactionManagerOptions {
final ClockService clockService;
public TransactionManagerOptions(SpiServer server, boolean notifyL2CacheInForeground, DatabaseConfig config, TransactionScopeManager scopeManager, ClusterManager clusterManager,
BackgroundExecutor backgroundExecutor, DocStoreUpdateProcessor docStoreUpdateProcessor,
public TransactionManagerOptions(SpiServer server, boolean notifyL2CacheInForeground, DatabaseBuilder.Settings config, TransactionScopeManager scopeManager,
ClusterManager clusterManager, BackgroundExecutor backgroundExecutor, DocStoreUpdateProcessor docStoreUpdateProcessor,
BeanDescriptorManager descMgr, DataSourceSupplier dataSourceSupplier, SpiProfileHandler profileHandler,
SpiLogManager logManager, TableModState tableModState, ServerCacheNotify cacheNotify, ClockService clockService) {
this.server = server;
@@ -1,6 +1,6 @@
package io.ebeaninternal.server.type;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.config.JsonConfig;
import io.ebean.core.type.ScalarType;
import io.ebean.core.type.BasicTypeConverter;
@@ -16,9 +16,9 @@ import java.util.Date;
*/
final class DefaultTypeFactory {
private final DatabaseConfig config;
private final DatabaseBuilder.Settings config;
public DefaultTypeFactory(DatabaseConfig config) {
public DefaultTypeFactory(DatabaseBuilder.Settings config) {
this.config = config;
}
@@ -1,11 +1,9 @@
package io.ebeaninternal.server.type;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.ebean.DatabaseBuilder;
import io.ebean.annotation.*;
import io.ebean.config.DatabaseConfig;
import io.ebean.config.JsonConfig;
import io.ebean.config.PlatformConfig;
import io.ebean.config.ScalarTypeConverter;
import io.ebean.config.*;
import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebean.config.dbplatform.DbPlatformType;
import io.ebean.core.type.*;
@@ -78,7 +76,7 @@ public final class DefaultTypeManager implements TypeManager {
/**
* Create the DefaultTypeManager.
*/
public DefaultTypeManager(DatabaseConfig config, BootupClasses bootupClasses) {
public DefaultTypeManager(DatabaseBuilder.Settings config, BootupClasses bootupClasses) {
this.jsonDateTime = config.getJsonDateTime();
this.jsonDate = config.getJsonDate();
this.typeMap = new ConcurrentHashMap<>();
@@ -110,7 +108,7 @@ public final class DefaultTypeManager implements TypeManager {
}
}
private void loadGeoTypeBinder(DatabaseConfig config) {
private void loadGeoTypeBinder(DatabaseBuilder.Settings config) {
GeoTypeProvider provider = config.getServiceObject(GeoTypeProvider.class);
if (provider == null) {
provider = ServiceUtil.service(GeoTypeProvider.class);
@@ -141,7 +139,7 @@ public final class DefaultTypeManager implements TypeManager {
/**
* Load custom scalar types registered via ExtraTypeFactory and ServiceLoader.
*/
private void loadTypesFromProviders(DatabaseConfig config, Object objectMapper) {
private void loadTypesFromProviders(DatabaseBuilder.Settings config, Object objectMapper) {
for (ExtraTypeFactory plugin : ServiceLoader.load(ExtraTypeFactory.class)) {
for (ScalarType<?> type : plugin.createTypes(config, objectMapper)) {
add(type);
@@ -618,7 +616,7 @@ public final class DefaultTypeManager implements TypeManager {
}
private Object initObjectMapper(DatabaseConfig config) {
private Object initObjectMapper(DatabaseBuilder.Settings config) {
Object objectMapper = config.getObjectMapper();
if (objectMapper == null) {
objectMapper = InitObjectMapper.init();
@@ -676,7 +674,7 @@ public final class DefaultTypeManager implements TypeManager {
}
private void initialiseJavaTimeTypes(DatabaseConfig config) {
private void initialiseJavaTimeTypes(DatabaseBuilder.Settings config) {
ZoneId zoneId = zoneId(config);
typeMap.put(java.nio.file.Path.class, new ScalarTypePath());
@@ -704,7 +702,7 @@ public final class DefaultTypeManager implements TypeManager {
addType(Duration.class, (durationNanos) ? new ScalarTypeDurationWithNanos() : new ScalarTypeDuration());
}
private ZoneId zoneId(DatabaseConfig config) {
private ZoneId zoneId(DatabaseBuilder.Settings config) {
final String dataTimeZone = config.getDataTimeZone();
return (dataTimeZone == null) ? ZoneOffset.systemDefault() : TimeZone.getTimeZone(dataTimeZone).toZoneId();
}
@@ -718,7 +716,7 @@ public final class DefaultTypeManager implements TypeManager {
* Register all the standard types supported. This is the standard JDBC types
* plus some other common types such as java.util.Date and java.util.Calendar.
*/
private void initialiseStandard(DatabaseConfig config) {
private void initialiseStandard(DatabaseBuilder.Settings config) {
DatabasePlatform databasePlatform = config.getDatabasePlatform();
int platformClobType = databasePlatform.clobDbType();
int platformBlobType = databasePlatform.blobDbType();
@@ -1,5 +1,6 @@
package io.ebeaninternal.server.core;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DatabaseConfig;
import io.ebean.datasource.DataSourceAlert;
import io.ebean.datasource.DataSourceBuilder;
@@ -18,12 +19,12 @@ import static org.junit.jupiter.api.Assertions.*;
public class InitDataSourceTest {
private DatabaseConfig newConfig(String readOnlyUrl) {
DatabaseConfig config = new DatabaseConfig();
private DatabaseBuilder.Settings newConfig(String readOnlyUrl) {
DatabaseBuilder config = new DatabaseConfig();
DataSourceConfig roConfig = new DataSourceConfig();
roConfig.setUrl(readOnlyUrl);
config.setReadOnlyDataSourceConfig(roConfig);
return config;
return config.settings();
}
@Test
@@ -64,7 +65,7 @@ public class InitDataSourceTest {
@Test
public void readOnlyConfig_when_autoReadOnlyDataSource_expect_setToNull() {
DatabaseConfig config = newConfig("none");
var config = newConfig("none");
config.setAutoReadOnlyDataSource(true);
final DataSourceBuilder readOnlyConfig = new InitDataSource(config).readOnlyConfig();
@@ -74,7 +75,7 @@ public class InitDataSourceTest {
@Test
public void readOnlyConfig_when_urlSet() {
DatabaseConfig config = newConfig("foo");
var config = newConfig("foo");
final DataSourceBuilder roConfig = new InitDataSource(config).readOnlyConfig();
assertNotNull(roConfig);
@@ -83,7 +84,7 @@ public class InitDataSourceTest {
@Test
public void readOnlyConfig_when_readOnlyUrlSetOnMain() {
DatabaseConfig config = newConfig(null);
var config = newConfig(null);
// alternate location to set read-only url for developer convenience
config.getDataSourceConfig().readOnlyUrl("bar");
@@ -94,7 +95,7 @@ public class InitDataSourceTest {
@Test
public void readOnlyConfig_when_readOnlyUrlSetOnMain_withNone() {
DatabaseConfig config = newConfig("None");
var config = newConfig("None");
// alternate location to set read-only url for developer convenience
config.getDataSourceConfig().readOnlyUrl("bar");
@@ -105,7 +106,7 @@ public class InitDataSourceTest {
@Test
public void readOnlyConfig_when_bothReadOnlyUrlsSet() {
DatabaseConfig config = newConfig("one");
var config = newConfig("one");
config.getDataSourceConfig().readOnlyUrl("two");
final DataSourceBuilder roConfig = new InitDataSource(config).readOnlyConfig();
@@ -115,7 +116,7 @@ public class InitDataSourceTest {
@Test
public void readOnlyConfig_when_readOnlyUrlSetOnMain_withNoneNone() {
DatabaseConfig config = newConfig("none");
var config = newConfig("none");
// alternate location to set read-only url for developer convenience
config.getDataSourceConfig().readOnlyUrl("none");
@@ -126,7 +127,7 @@ public class InitDataSourceTest {
@Test
public void readOnlyConfig_when_urlSet_2() {
DatabaseConfig config = new DatabaseConfig();
config.getReadOnlyDataSourceConfig().url("foo");
config.settings().getReadOnlyDataSourceConfig().url("foo");
final DataSourceBuilder roConfig = new InitDataSource(config).readOnlyConfig();
assertNotNull(roConfig);
@@ -1,7 +1,6 @@
package io.ebeaninternal.server.deploy;
import io.ebean.DatabaseFactory;
import io.ebean.config.DatabaseConfig;
import io.ebean.Database;
import io.ebean.event.AbstractBeanPersistListener;
import io.ebean.event.BeanPersistAdapter;
import io.ebean.event.BeanPersistListener;
@@ -17,16 +16,16 @@ public class BeanDescriptor_registerTest {
@Test
public void testRegisterDeregister() {
DatabaseConfig config = new DatabaseConfig();
Database db = Database.builder()
.name("h2other")
.loadFromProperties()
.ddlExtra(false)
.register(false)
.defaultDatabase(false)
.addClass(EBasic.class)
.build();
config.setName("h2other");
config.loadFromProperties();
config.setDdlExtra(false);
config.setRegister(false);
config.setDefaultServer(false);
config.addClass(EBasic.class);
SpiEbeanServer ebeanServer = (SpiEbeanServer)DatabaseFactory.create(config);
SpiEbeanServer ebeanServer = (SpiEbeanServer)db;
try {
BeanDescriptor<EBasic> desc = ebeanServer.descriptor(EBasic.class);
persistListenerRegistrationTests(desc);
@@ -1,5 +1,6 @@
package io.ebeaninternal.server.deploy.parse;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DatabaseConfig;
import io.ebean.platform.sqlserver.SqlServer17Platform;
import io.ebeaninternal.server.core.bootup.BootupClasses;
@@ -45,7 +46,7 @@ public class AnnotationClassTest {
}
@SuppressWarnings({"unchecked", "rawtypes"})
private AnnotationClass createAnnotationClass(DatabaseConfig config) {
private AnnotationClass createAnnotationClass(DatabaseBuilder.Settings config) {
DeployUtil deployUtil = new DeployUtil(new DefaultTypeManager(config, new BootupClasses()), config);
DeployBeanInfo deployBeanInfo = new DeployBeanInfo(deployUtil, new DeployBeanDescriptor<>(null, Customer.class, null));
@@ -53,9 +54,9 @@ public class AnnotationClassTest {
return new AnnotationClass(deployBeanInfo, readAnnotationConfig);
}
private DatabaseConfig sqlServerPlatform(boolean allQuotedIdentifiers) {
private DatabaseBuilder.Settings sqlServerPlatform(boolean allQuotedIdentifiers) {
SqlServer17Platform sqlServer17Platform = new SqlServer17Platform();
DatabaseConfig config = new DatabaseConfig();
var config = new DatabaseConfig().settings();
config.setDatabasePlatform(sqlServer17Platform);
config.setAllQuotedIdentifiers(allQuotedIdentifiers);
@@ -1,5 +1,6 @@
package io.ebeaninternal.server.type;
import io.ebean.config.DatabaseConfig;
import io.ebean.core.type.ScalarType;
import org.junit.jupiter.api.Test;
@@ -10,7 +11,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
public class DefaultTypeFactoryTest {
DefaultTypeFactory defaultTypeFactory = new DefaultTypeFactory(null);
DefaultTypeFactory defaultTypeFactory = new DefaultTypeFactory(new DatabaseConfig());
@Test
public void testCreateBoolean() throws Exception {
@@ -1,5 +1,6 @@
package io.ebeaninternal.server.type;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DatabaseConfig;
import io.ebean.platform.postgres.PostgresPlatform;
import io.ebean.core.type.ScalarType;
@@ -20,7 +21,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
public class DefaultTypeManagerTest {
private DefaultTypeManager create() {
DatabaseConfig serverConfig = new DatabaseConfig();
var serverConfig = new DatabaseConfig();
serverConfig.setDatabasePlatform(new PostgresPlatform());
BootupClasses bootupClasses = new BootupClasses();
return new DefaultTypeManager(serverConfig, bootupClasses);
@@ -1,5 +1,6 @@
package io.ebeaninternal.server.type;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DatabaseConfig;
import io.ebean.platform.h2.H2Platform;
import io.ebean.core.type.DataReader;
@@ -121,7 +122,7 @@ class TestTypeManager extends BaseTest {
}
private DefaultTypeManager createTypeManager() {
DatabaseConfig config = new DatabaseConfig();
var config = new DatabaseConfig();
config.setDatabasePlatform(new H2Platform());
BootupClasses bootupClasses = new BootupClasses();
@@ -131,7 +132,7 @@ class TestTypeManager extends BaseTest {
}
private DefaultTypeManager createTypeManagerDefaultEnumTypeString() {
DatabaseConfig config = new DatabaseConfig();
var config = new DatabaseConfig();
config.setDatabasePlatform(new H2Platform());
config.setDefaultEnumType(EnumType.STRING);
@@ -2,7 +2,7 @@ package io.ebean.dbmigration;
import io.ebean.Database;
import io.ebean.annotation.Platform;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.config.dbplatform.DatabasePlatform;
import java.io.File;
@@ -109,7 +109,7 @@ public interface DbMigration {
/**
* Set the DatabaseConfig to use. Usually this is not called explicitly.
*/
void setServerConfig(DatabaseConfig config);
void setServerConfig(DatabaseBuilder config);
/**
* Set the specific platform to generate DDL for.
@@ -2,7 +2,7 @@ package io.ebeaninternal.dbmigration;
import io.avaje.applog.AppLog;
import io.ebean.annotation.Platform;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebean.ddlrunner.DdlRunner;
import io.ebean.ddlrunner.ScriptTransform;
@@ -51,7 +51,7 @@ public class DdlGenerator implements SpiDdlGenerator {
public DdlGenerator(SpiEbeanServer server) {
this.server = server;
final DatabaseConfig config = server.config();
final var config = server.config();
this.jaxbPresent = Detect.isJAXBPresent(config);
this.generateDdl = config.isDdlGenerate();
this.extraDdl = config.isDdlExtra();
@@ -318,7 +318,7 @@ public class DdlGenerator implements SpiDdlGenerator {
/**
* Create the ScriptTransform for placeholder key/value replacement.
*/
private ScriptTransform createScriptTransform(DatabaseConfig config) {
private ScriptTransform createScriptTransform(DatabaseBuilder.Settings config) {
return ScriptTransform.build(config.getDdlPlaceholders(), config.getDdlPlaceholderMap());
}
@@ -3,11 +3,9 @@ package io.ebeaninternal.dbmigration;
import io.avaje.applog.AppLog;
import io.ebean.DB;
import io.ebean.Database;
import io.ebean.DatabaseBuilder;
import io.ebean.annotation.Platform;
import io.ebean.config.DatabaseConfig;
import io.ebean.config.DbConstraintNaming;
import io.ebean.config.PlatformConfig;
import io.ebean.config.PropertiesWrapper;
import io.ebean.config.*;
import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebean.config.dbplatform.DatabasePlatformProvider;
import io.ebean.dbmigration.DbMigration;
@@ -75,7 +73,7 @@ public class DefaultDbMigration implements DbMigration {
protected DatabasePlatform databasePlatform;
private boolean vanillaPlatform;
protected List<Pair> platforms = new ArrayList<>();
protected DatabaseConfig databaseConfig;
protected DatabaseBuilder.Settings databaseBuilder;
protected DbConstraintNaming constraintNaming;
protected Boolean strictMode;
protected Boolean includeGeneratedFileComment;
@@ -116,12 +114,13 @@ public class DefaultDbMigration implements DbMigration {
}
@Override
public void setServerConfig(DatabaseConfig config) {
if (this.databaseConfig == null) {
this.databaseConfig = config;
public void setServerConfig(DatabaseBuilder builder) {
var config = builder.settings();
if (this.databaseBuilder == null) {
this.databaseBuilder = config;
}
if (constraintNaming == null) {
this.constraintNaming = databaseConfig.getConstraintNaming();
this.constraintNaming = databaseBuilder.getConstraintNaming();
}
Properties properties = config.getProperties();
if (properties != null) {
@@ -360,7 +359,7 @@ public class DefaultDbMigration implements DbMigration {
*/
private void configurePlatforms() {
for (Pair pair : platforms) {
PlatformConfig config = databaseConfig.newPlatformConfig("dbmigration.platform", pair.prefix);
PlatformConfig config = databaseBuilder.newPlatformConfig("dbmigration.platform", pair.prefix);
pair.platform.configure(config);
}
}
@@ -645,7 +644,7 @@ public class DefaultDbMigration implements DbMigration {
}
private PlatformDdlWriter createDdlWriter(DatabasePlatform platform) {
return new PlatformDdlWriter(platform, databaseConfig, lockTimeoutSeconds);
return new PlatformDdlWriter(platform, databaseBuilder, lockTimeoutSeconds);
}
/**
@@ -674,12 +673,12 @@ public class DefaultDbMigration implements DbMigration {
// not explicitly set so use the platform of the server
databasePlatform = server.databasePlatform();
}
if (databaseConfig != null) {
if (databaseBuilder != null) {
if (strictMode != null) {
databaseConfig.setDdlStrictMode(strictMode);
databaseBuilder.setDdlStrictMode(strictMode);
}
if (header != null) {
databaseConfig.setDdlHeader(header);
databaseBuilder.setDdlHeader(header);
}
}
}
@@ -1,6 +1,6 @@
package io.ebeaninternal.dbmigration;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
/**
* Detect existence of JAXB
@@ -10,7 +10,7 @@ public class Detect {
/**
* Return true if JAXB is present.
*/
public static boolean isJAXBPresent(DatabaseConfig config) {
public static boolean isJAXBPresent(DatabaseBuilder.Settings config) {
return config.getClassLoadConfig().isPresent("jakarta.xml.bind.JAXBException");
}
}
@@ -1,6 +1,6 @@
package io.ebeaninternal.dbmigration.ddlgeneration;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.BaseTableDdl;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl;
import io.ebeaninternal.dbmigration.migration.*;
@@ -14,11 +14,11 @@ public class BaseDdlHandler implements DdlHandler {
protected final TableDdl tableDdl;
public BaseDdlHandler(DatabaseConfig config, PlatformDdl platformDdl) {
public BaseDdlHandler(DatabaseBuilder.Settings config, PlatformDdl platformDdl) {
this(config, platformDdl, new BaseTableDdl(config, platformDdl));
}
protected BaseDdlHandler(DatabaseConfig config, PlatformDdl platformDdl, TableDdl tableDdl) {
protected BaseDdlHandler(DatabaseBuilder config, PlatformDdl platformDdl, TableDdl tableDdl) {
this.tableDdl = tableDdl;
}
@@ -1,7 +1,7 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.annotation.Platform;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DbConstraintNaming;
import io.ebean.config.NamingConvention;
import io.ebean.util.StringHelper;
@@ -155,7 +155,7 @@ public class BaseTableDdl implements TableDdl {
/**
* Construct with a naming convention and platform specific DDL.
*/
public BaseTableDdl(DatabaseConfig config, PlatformDdl platformDdl) {
public BaseTableDdl(DatabaseBuilder.Settings config, PlatformDdl platformDdl) {
this.namingConvention = config.getNamingConvention();
this.naming = config.getConstraintNaming();
this.historyTableSuffix = config.getHistoryTableSuffix();
@@ -1,6 +1,6 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlHandler;
@@ -18,7 +18,7 @@ public class ClickHouseDdl extends PlatformDdl {
}
@Override
public DdlHandler createDdlHandler(DatabaseConfig config) {
public DdlHandler createDdlHandler(DatabaseBuilder.Settings config) {
return new ClickHouseDdlHandler(config, this);
}
@@ -1,11 +1,11 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebeaninternal.dbmigration.ddlgeneration.BaseDdlHandler;
public class ClickHouseDdlHandler extends BaseDdlHandler {
public ClickHouseDdlHandler(DatabaseConfig config, PlatformDdl platformDdl) {
public ClickHouseDdlHandler(DatabaseBuilder.Settings config, PlatformDdl platformDdl) {
super(config, platformDdl, new ClickHouseTableDdl(config, platformDdl));
}
}
@@ -1,12 +1,12 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer;
import io.ebeaninternal.dbmigration.migration.CreateTable;
public class ClickHouseTableDdl extends BaseTableDdl {
public ClickHouseTableDdl(DatabaseConfig config, PlatformDdl platformDdl) {
public ClickHouseTableDdl(DatabaseBuilder.Settings config, PlatformDdl platformDdl) {
super(config, platformDdl);
}
@@ -1,6 +1,6 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlAlterTable;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite;
@@ -10,7 +10,7 @@ import io.ebeaninternal.dbmigration.model.MTable;
/**
* DB2 History support.
*
*
* @author Roland Praml, FOCONIS AG
*/
public class Db2HistoryDdl extends DbTableBasedHistoryDdl implements PlatformHistoryDdl {
@@ -20,7 +20,7 @@ public class Db2HistoryDdl extends DbTableBasedHistoryDdl implements PlatformHis
private String transactionId;
@Override
public void configure(DatabaseConfig config, PlatformDdl platformDdl) {
public void configure(DatabaseBuilder.Settings config, PlatformDdl platformDdl) {
super.configure(config, platformDdl);
this.systemPeriodStart = config.getAsOfSysPeriod() + "_start";
this.systemPeriodEnd = config.getAsOfSysPeriod() + "_end";
@@ -1,11 +1,11 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DbConstraintNaming;
/**
* Base implementation for all histories, where we must maintain history table (trigger based, db2 and hana)
*
*
* @author Roland Praml, FOCONIS AG
*
*/
@@ -16,7 +16,7 @@ public abstract class DbTableBasedHistoryDdl implements PlatformHistoryDdl.Table
protected PlatformDdl platformDdl;
@Override
public void configure(DatabaseConfig config, PlatformDdl platformDdl) {
public void configure(DatabaseBuilder.Settings config, PlatformDdl platformDdl) {
this.platformDdl = platformDdl;
this.historySuffix = config.getHistoryTableSuffix();
this.constraintNaming = config.getConstraintNaming();
@@ -1,6 +1,6 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlAlterTable;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite;
@@ -28,7 +28,7 @@ public abstract class DbTriggerBasedHistoryDdl extends DbTableBasedHistoryDdl im
}
@Override
public void configure(DatabaseConfig config, PlatformDdl platformDdl) {
public void configure(DatabaseBuilder.Settings config, PlatformDdl platformDdl) {
super.configure(config, platformDdl);
this.sysPeriod = config.getAsOfSysPeriod();
this.viewSuffix = config.getAsOfViewSuffix();
@@ -1,6 +1,6 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlAlterTable;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite;
@@ -17,7 +17,7 @@ public class HanaHistoryDdl extends DbTableBasedHistoryDdl implements PlatformHi
private String systemPeriodEnd;
@Override
public void configure(DatabaseConfig config, PlatformDdl platformDdl) {
public void configure(DatabaseBuilder.Settings config, PlatformDdl platformDdl) {
super.configure(config, platformDdl);
this.systemPeriodStart = config.getAsOfSysPeriod() + "_start";
this.systemPeriodEnd = config.getAsOfSysPeriod() + "_end";
@@ -1,6 +1,6 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlAlterTable;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite;
@@ -16,7 +16,7 @@ public class MariaDbHistoryDdl implements PlatformHistoryDdl {
private PlatformDdl platformDdl;
@Override
public void configure(DatabaseConfig config, PlatformDdl platformDdl) {
public void configure(DatabaseBuilder.Settings config, PlatformDdl platformDdl) {
this.platformDdl = platformDdl;
}
@@ -1,6 +1,6 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite;
import io.ebeaninternal.dbmigration.migration.AddHistoryTable;
import io.ebeaninternal.dbmigration.migration.DropHistoryTable;
@@ -13,7 +13,7 @@ import io.ebeaninternal.dbmigration.model.MTable;
public class NoHistorySupportDdl implements PlatformHistoryDdl {
@Override
public void configure(DatabaseConfig config, PlatformDdl platformDdl) {
public void configure(DatabaseBuilder.Settings config, PlatformDdl platformDdl) {
// does nothing
}
@@ -2,7 +2,7 @@ package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.annotation.ConstraintMode;
import io.ebean.annotation.Platform;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DbConstraintNaming;
import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebean.config.dbplatform.DbDefaultValue;
@@ -105,7 +105,7 @@ public class PlatformDdl {
/**
* Set configuration options.
*/
public void configure(DatabaseConfig config) {
public void configure(DatabaseBuilder.Settings config) {
historyDdl.configure(config, this);
naming = config.getConstraintNaming();
}
@@ -113,7 +113,7 @@ public class PlatformDdl {
/**
* Create a DdlHandler for the specific database platform.
*/
public DdlHandler createDdlHandler(DatabaseConfig config) {
public DdlHandler createDdlHandler(DatabaseBuilder.Settings config) {
return new BaseDdlHandler(config, this);
}
@@ -1,6 +1,6 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlWrite;
import io.ebeaninternal.dbmigration.migration.AddHistoryTable;
import io.ebeaninternal.dbmigration.migration.DropHistoryTable;
@@ -14,7 +14,7 @@ public interface PlatformHistoryDdl {
/**
* Configure typically reading the necessary parameters from DatabaseConfig and Platform.
*/
void configure(DatabaseConfig config, PlatformDdl platformDdl);
void configure(DatabaseBuilder.Settings config, PlatformDdl platformDdl);
/**
* Creates a new table and add history support to the table using platform specific mechanism.
@@ -33,7 +33,7 @@ public interface PlatformHistoryDdl {
/**
* Regenerate the history triggers/stored function due to column added/dropped/included or excluded.
*
*
* Note: This function may be called multiple times for the same table.
*/
default void updateTriggers(DdlWrite writer, String tableName) {
@@ -1,6 +1,6 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DbConstraintNaming;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlAlterTable;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlBuffer;
@@ -22,7 +22,7 @@ public class SqlServerHistoryDdl implements PlatformHistoryDdl {
protected String historySuffix;
@Override
public void configure(DatabaseConfig config, PlatformDdl platformDdl) {
public void configure(DatabaseBuilder.Settings config, PlatformDdl platformDdl) {
this.systemPeriodStart = config.getAsOfSysPeriod() + "From";
this.systemPeriodEnd = config.getAsOfSysPeriod() + "To";
this.platformDdl = platformDdl;
@@ -1,7 +1,7 @@
package io.ebeaninternal.dbmigration.model;
import io.avaje.applog.AppLog;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebean.util.IOUtils;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlHandler;
@@ -26,13 +26,13 @@ public class PlatformDdlWriter {
private static final System.Logger logger = AppLog.getLogger(PlatformDdlWriter.class);
private final DatabaseConfig databaseConfig;
private final DatabaseBuilder.Settings config;
private final PlatformDdl platformDdl;
private final int lockTimeoutSeconds;
public PlatformDdlWriter(DatabasePlatform platform, DatabaseConfig dbConfig, int lockTimeoutSeconds) {
public PlatformDdlWriter(DatabasePlatform platform, DatabaseBuilder.Settings config, int lockTimeoutSeconds) {
this.platformDdl = PlatformDdlBuilder.create(platform);
this.databaseConfig = dbConfig;
this.config = config;
this.lockTimeoutSeconds = lockTimeoutSeconds;
}
@@ -87,7 +87,7 @@ public class PlatformDdlWriter {
* Write the 'Apply' DDL buffers to the writer.
*/
protected void writeApplyDdl(Writer writer, DdlWrite ddl) throws IOException {
String header = databaseConfig.getDdlHeader();
String header = config.getDdlHeader();
if (header != null && !header.isEmpty()) {
writer.append(header).append('\n');
}
@@ -98,7 +98,7 @@ public class PlatformDdlWriter {
* Return the platform specific DdlHandler (to generate DDL).
*/
protected DdlHandler handler() {
return platformDdl.createDdlHandler(databaseConfig);
return platformDdl.createDdlHandler(config);
}
/**
@@ -1,5 +1,6 @@
package io.ebeaninternal.dbmigration.ddlgeneration;
import io.ebean.DatabaseBuilder;
import io.localtest.BaseTestCase;
import io.ebean.DB;
import io.ebean.config.DatabaseConfig;
@@ -1,5 +1,6 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DatabaseConfig;
import io.ebean.platform.clickhouse.ClickHousePlatform;
import io.ebean.platform.h2.H2Platform;
@@ -1,7 +1,7 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.DB;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.config.dbplatform.IdType;
import io.ebean.platform.db2.DB2LuwPlatform;
import io.ebean.platform.h2.H2Platform;
@@ -36,7 +36,7 @@ public class PlatformDdl_AlterColumnTest {
private final SoftAssertions softly = new SoftAssertions();
{
DatabaseConfig serverConfig = DB.getDefault().pluginApi().config();
DatabaseBuilder.Settings serverConfig = DB.getDefault().pluginApi().config();
sqlServerDdl.configure(serverConfig);
}
@@ -1,7 +1,7 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.DB;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.platform.db2.DB2LuwPlatform;
import io.ebean.platform.h2.H2Platform;
import io.ebean.platform.hana.HanaPlatform;
@@ -27,7 +27,7 @@ public class PlatformDdl_CreateIndexTest {
private final PlatformDdl db2LuwDdl = PlatformDdlBuilder.create(new DB2LuwPlatform());
{
DatabaseConfig config = DB.getDefault().pluginApi().config();
DatabaseBuilder.Settings config = DB.getDefault().pluginApi().config();
h2Ddl.configure(config);
pgDdl.configure(config);
mysqlDdl.configure(config);
@@ -38,7 +38,6 @@ public class PlatformDdl_CreateIndexTest {
}
WriteCreateIndex writeCreateIndex() {
return writeCreateIndex(true, true);
}
@@ -1,5 +1,6 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DatabaseConfig;
import io.ebean.platform.h2.H2Platform;
import io.ebean.platform.hana.HanaPlatform;
@@ -1,6 +1,7 @@
package io.ebeaninternal.dbmigration.model.build;
import io.ebean.DatabaseBuilder;
import io.localtest.BaseTestCase;
import io.ebean.DB;
import io.ebean.DatabaseFactory;
@@ -1,6 +1,7 @@
package io.ebeaninternal.dbmigration.model.build;
import io.ebean.DatabaseBuilder;
import io.localtest.BaseTestCase;
import io.ebean.DatabaseFactory;
import io.ebean.config.DatabaseConfig;
@@ -25,7 +26,7 @@ public class ModelBuild_compoundKeyTest extends BaseTestCase {
private SpiEbeanServer createServer() {
DatabaseConfig config = new DatabaseConfig();
DatabaseBuilder config = new DatabaseConfig();
config.setName("h2");
config.loadFromProperties();
config.setName("h2other");
@@ -1,6 +1,7 @@
package io.ebeaninternal.dbmigration.model.build;
import io.ebean.DatabaseBuilder;
import io.localtest.BaseTestCase;
import io.ebean.DatabaseFactory;
import io.ebean.config.DatabaseConfig;
@@ -20,7 +21,7 @@ import static org.assertj.core.api.Assertions.assertThat;
public class ModelBuild_compound_IdClassTest extends BaseTestCase {
private SpiEbeanServer createServer() {
DatabaseConfig config = new DatabaseConfig();
DatabaseBuilder config = new DatabaseConfig();
config.setName("h2");
config.loadFromProperties();
config.setName("h2other");
@@ -2,6 +2,7 @@ package io.ebeaninternal.dbmigration.model.build;
import io.ebean.DatabaseFactory;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DatabaseConfig;
import io.ebeaninternal.api.SpiEbeanServer;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlOptions;
@@ -20,7 +21,7 @@ class ModelBuild_explicitSequencesTest extends BaseTestCase {
private SpiEbeanServer createServer(boolean postgres) {
DatabaseConfig config = new DatabaseConfig();
DatabaseBuilder config = new DatabaseConfig();
config.setName("h2");
config.loadFromProperties();
config.setName("h2other");
@@ -1,6 +1,6 @@
package io.ebean.postgis;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.core.type.ExtraTypeFactory;
import io.ebean.core.type.ScalarType;
import io.ebean.postgis.latte.ScalarTypeGeoLatteLineString;
@@ -16,7 +16,7 @@ import java.util.List;
public class PostgisExtraTypeFactory implements ExtraTypeFactory {
@Override
public List<ScalarType<?>> createTypes(DatabaseConfig config, Object objectMapper) {
public List<ScalarType<?>> createTypes(DatabaseBuilder.Settings config, Object objectMapper) {
List<ScalarType<?>> list = new ArrayList<>();
list.add(new ScalarTypePgisPoint());
@@ -1,13 +1,13 @@
package io.ebean.postgis;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebeaninternal.api.GeoTypeProvider;
import io.ebeaninternal.server.type.GeoTypeBinder;
public class PostgisGeoTypeBindProvider implements GeoTypeProvider {
@Override
public GeoTypeBinder createBinder(DatabaseConfig config) {
public GeoTypeBinder createBinder(DatabaseBuilder.Settings config) {
boolean withGeolatte = config.getClassLoadConfig().isPresent("org.geolatte.geom.Geometry");
return new PostgisGeoTypeBinder(withGeolatte);
}
@@ -3,7 +3,7 @@ package io.ebean.redis;
import io.avaje.applog.AppLog;
import io.ebean.BackgroundExecutor;
import io.ebean.cache.*;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.meta.MetricVisitor;
import io.ebean.metric.MetricFactory;
import io.ebean.metric.TimedMetric;
@@ -74,7 +74,7 @@ final class RedisCacheFactory implements ServerCacheFactory {
private final ReentrantLock lock = new ReentrantLock();
private ServerCacheNotify listener;
RedisCacheFactory(DatabaseConfig config, BackgroundExecutor executor) {
RedisCacheFactory(DatabaseBuilder.Settings config, BackgroundExecutor executor) {
this.executor = executor;
this.nearCacheNotify = new DNearCacheNotify();
MetricFactory factory = MetricFactory.get();
@@ -95,7 +95,7 @@ final class RedisCacheFactory implements ServerCacheFactory {
/**
* Return the JedisPool to use (only 1 at this stage).
*/
private JedisPool getJedisPool(DatabaseConfig config) {
private JedisPool getJedisPool(DatabaseBuilder.Settings config) {
JedisPool jedisPool = config.getServiceObject(JedisPool.class);
if (jedisPool != null) {
return jedisPool;
@@ -3,7 +3,7 @@ package io.ebean.redis;
import io.ebean.BackgroundExecutor;
import io.ebean.cache.ServerCacheFactory;
import io.ebean.cache.ServerCachePlugin;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
public class RedisCachePlugin implements ServerCachePlugin {
@@ -11,7 +11,7 @@ public class RedisCachePlugin implements ServerCachePlugin {
* Create the ServerCacheFactory implementation.
*/
@Override
public ServerCacheFactory create(DatabaseConfig config, BackgroundExecutor executor) {
return new RedisCacheFactory(config, executor);
public ServerCacheFactory create(DatabaseBuilder config, BackgroundExecutor executor) {
return new RedisCacheFactory(config.settings(), executor);
}
}
@@ -1,5 +1,6 @@
package org.integration;
import io.ebean.DatabaseBuilder;
import io.ebean.redis.DuelCache;
import org.domain.Person;
import io.ebean.DB;
@@ -16,7 +17,7 @@ import static org.assertj.core.api.Assertions.assertThat;
public class ClusterTest {
private Database createOther(DataSource dataSource) {
DatabaseConfig config = new DatabaseConfig();
DatabaseBuilder config = new DatabaseConfig();
config.setDataSource(dataSource);
config.loadFromProperties();
config.setDefaultServer(false);
@@ -3,7 +3,7 @@ package org.example;
import io.ebean.Database;
import io.ebean.DatabaseFactory;
import io.ebean.annotation.PersistBatch;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.InitializingBean;
@@ -18,7 +18,7 @@ public class EbeanServerFactoryBean implements InitializingBean, FactoryBean<Dat
/**
* The Ebean server configuration.
*/
private DatabaseConfig serverConfig;
private DatabaseBuilder serverConfig;
/**
* The EbeanServer instance.
@@ -54,14 +54,14 @@ public class EbeanServerFactoryBean implements InitializingBean, FactoryBean<Dat
/**
* Return the server configuration.
*/
public DatabaseConfig getServerConfig() {
public DatabaseBuilder getServerConfig() {
return serverConfig;
}
/**
* Set the server configuration.
*/
public void setServerConfig(DatabaseConfig serverConfig) {
public void setServerConfig(DatabaseBuilder serverConfig) {
this.serverConfig = serverConfig;
}
}
+2 -2
View File
@@ -135,14 +135,14 @@
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-joda-time</artifactId>
<version>13.18.0</version>
<version>13.24.0-RC2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-jackson-jsonnode</artifactId>
<version>13.18.0</version>
<version>13.24.0-RC2</version>
<scope>test</scope>
</dependency>
@@ -2,7 +2,7 @@ package io.ebean.test.config;
import io.avaje.applog.AppLog;
import io.ebean.config.AutoConfigure;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.datasource.DataSourceBuilder;
import io.ebean.test.config.platform.PlatformAutoConfig;
import io.ebean.test.config.provider.ProviderAutoConfig;
@@ -31,7 +31,8 @@ public class AutoConfigureForTesting implements AutoConfigure {
private final String environmentDb = System.getProperty("db");
@Override
public void preConfigure(DatabaseConfig config) {
public void preConfigure(DatabaseBuilder builder) {
var config = builder.settings();
Properties properties = config.getProperties();
if (properties != null) {
// trigger determination of docker.host system property if not already done
@@ -55,7 +56,8 @@ public class AutoConfigureForTesting implements AutoConfigure {
}
@Override
public void postConfigure(DatabaseConfig config) {
public void postConfigure(DatabaseBuilder builder) {
var config = builder.settings();
if (!config.isDefaultServer()) {
return;
}
@@ -87,7 +89,7 @@ public class AutoConfigureForTesting implements AutoConfigure {
/**
* Check if this is not the primary server and return true if that is the case.
*/
private boolean isExtraServer(DatabaseConfig config, Properties properties) {
private boolean isExtraServer(DatabaseBuilder.Settings config, Properties properties) {
String extraDb = properties.getProperty("ebean.test.extraDb.dbName", properties.getProperty("ebean.test.extraDb"));
if (extraDb != null && extraDb.equals(config.getName())) {
config.setDefaultServer(false);
@@ -99,7 +101,7 @@ public class AutoConfigureForTesting implements AutoConfigure {
/**
* Setup the DataSource on the extra database if necessary.
*/
private void setupExtraDataSourceIfNecessary(DatabaseConfig config) {
private void setupExtraDataSourceIfNecessary(DatabaseBuilder.Settings config) {
DataSourceBuilder dataSourceConfig = config.getDataSourceConfig();
if (dataSourceConfig == null || dataSourceConfig.settings().getUsername() == null) {
new PlatformAutoConfig(environmentDb, config)
@@ -110,14 +112,14 @@ public class AutoConfigureForTesting implements AutoConfigure {
/**
* Setup support for Who, Multi-Tenant and DB encryption if they are not already set.
*/
private void setupProviders(DatabaseConfig config) {
private void setupProviders(DatabaseBuilder.Settings config) {
new ProviderAutoConfig(config).run();
}
/**
* Setup the platform for testing including docker as needed and adjusting datasource config as needed.
*/
private void setupPlatform(String db, DatabaseConfig config) {
private void setupPlatform(String db, DatabaseBuilder.Settings config) {
new PlatformAutoConfig(db, config).run();
}
}
@@ -1,7 +1,7 @@
package io.ebean.test.config.platform;
import io.avaje.applog.AppLog;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.datasource.DataSourceConfig;
import io.ebean.test.containers.DockerHost;
@@ -37,11 +37,11 @@ class Config {
private String schema;
private String username;
private String password;
private final DatabaseConfig config;
private final DatabaseBuilder.Settings config;
private boolean containerDropCreate;
private final Properties dockerProperties = new Properties();
Config(String db, String platform, String databaseName, DatabaseConfig config) {
Config(String db, String platform, String databaseName, DatabaseBuilder.Settings config) {
this.db = db;
this.platform = platform;
this.dockerPlatform = platform;
@@ -1,7 +1,7 @@
package io.ebean.test.config.platform;
import io.avaje.applog.AppLog;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.test.containers.ContainerFactory;
import java.util.HashMap;
@@ -38,14 +38,14 @@ public class PlatformAutoConfig {
KNOWN_PLATFORMS.put("yugabyte", new YugabyteSetup());
}
private final DatabaseConfig config;
private final DatabaseBuilder.Settings config;
private final Properties properties;
private String db;
private String platform;
private PlatformSetup platformSetup;
private String databaseName;
public PlatformAutoConfig(String db, DatabaseConfig config) {
public PlatformAutoConfig(String db, DatabaseBuilder.Settings config) {
this.db = db;
this.config = config;
this.properties = config.getProperties();
@@ -1,10 +1,8 @@
package io.ebean.test.config.provider;
import io.avaje.applog.AppLog;
import io.ebean.config.CurrentTenantProvider;
import io.ebean.config.CurrentUserProvider;
import io.ebean.config.DatabaseConfig;
import io.ebean.config.EncryptKeyManager;
import io.ebean.DatabaseBuilder;
import io.ebean.config.*;
import java.util.Properties;
@@ -18,10 +16,10 @@ public class ProviderAutoConfig {
private static final System.Logger log = AppLog.getLogger("io.ebean.test");
private final DatabaseConfig config;
private final DatabaseBuilder.Settings config;
private final Properties properties;
public ProviderAutoConfig(DatabaseConfig config) {
public ProviderAutoConfig(DatabaseBuilder.Settings config) {
this.config = config;
this.properties = config.getProperties();
}
@@ -1,6 +1,7 @@
package io.ebean.test.config.platform;
import io.ebean.annotation.Platform;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DatabaseConfig;
import io.ebean.datasource.DataSourceBuilder;
import io.ebeaninternal.api.DbOffline;
@@ -37,10 +38,10 @@ class ConfigTest {
@Test
void extensions_whenNoSetValues() {
DatabaseConfig databaseConfig = new DatabaseConfig();
databaseConfig.loadFromProperties(new Properties());
DatabaseConfig databaseBuilder = new DatabaseConfig();
databaseBuilder.loadFromProperties(new Properties());
Config config = new Config("db", "postgis", "db", databaseConfig);
Config config = new Config("db", "postgis", "db", databaseBuilder);
config.setUsernameDefault();
config.setPasswordDefault();
@@ -55,13 +56,13 @@ class ConfigTest {
@Test
void extensions_whenSetValues() {
DatabaseConfig databaseConfig = new DatabaseConfig();
DatabaseConfig databaseBuilder = new DatabaseConfig();
Properties properties = new Properties();
properties.setProperty("ebean.test.extensions", "x,y");
properties.setProperty("ebean.test.extraDb.extensions", "z");
databaseConfig.loadFromProperties(properties);
databaseBuilder.loadFromProperties(properties);
Config config = new Config("db", "postgis", "db", databaseConfig);
Config config = new Config("db", "postgis", "db", databaseBuilder);
config.setExtensions("a,b");
config.setExtraExtensions("c,d");
@@ -163,7 +164,7 @@ class ConfigTest {
assertThat(mainProps.getProperty("datasource.main.username")).isEqualTo("main");
DatabaseConfig centralConfig = new DatabaseConfig();
DatabaseBuilder centralConfig = new DatabaseConfig();
centralConfig.setName("central");
centralConfig.loadFromProperties(sourceProperties);
@@ -1,5 +1,6 @@
package io.ebean.xtest.base;
import io.ebean.DatabaseBuilder;
import io.ebean.xtest.BaseTestCase;
import io.ebean.Database;
import io.ebean.DatabaseFactory;
@@ -27,7 +28,7 @@ public class EbeanServerFactory_MultiTenancy_Test extends BaseTestCase {
TenantDataSourceProvider dataSourceProvider = Mockito.mock(TenantDataSourceProvider.class);
Mockito.doReturn(mockedDataSource).when(dataSourceProvider).dataSource(tenant);
DatabaseConfig config = new DatabaseConfig();
DatabaseBuilder config = new DatabaseConfig();
config.setName("multiTenantDb");
config.loadFromProperties();
config.setRegister(false);
@@ -62,7 +63,7 @@ public class EbeanServerFactory_MultiTenancy_Test extends BaseTestCase {
TenantSchemaProvider schemaProvider = Mockito.mock(TenantSchemaProvider.class);
Mockito.doReturn("tenant_schema").when(schemaProvider).schema(tenant);
DatabaseConfig config = new DatabaseConfig();
DatabaseBuilder config = new DatabaseConfig();
config.setName("h2");
config.loadFromProperties();
config.setName("multi-tenancy");
@@ -93,7 +94,7 @@ public class EbeanServerFactory_MultiTenancy_Test extends BaseTestCase {
TenantCatalogProvider catalogProvider = Mockito.mock(TenantCatalogProvider.class);
Mockito.doReturn("tenant_catalog").when(catalogProvider).catalog(tenant);
DatabaseConfig config = new DatabaseConfig();
DatabaseBuilder config = new DatabaseConfig();
config.setName("h2");
config.loadFromProperties();
config.setName("multi-tenancy");
@@ -2,6 +2,7 @@ package io.ebean.xtest.base;
import io.ebean.Database;
import io.ebean.DatabaseFactory;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DatabaseConfig;
import io.ebean.event.ServerConfigStartup;
import io.ebeaninternal.api.SpiLogger;
@@ -45,7 +46,7 @@ public class EbeanServerFactory_ServerConfigStart_Test {
@Test
public void test() throws InterruptedException {
DatabaseConfig config = new DatabaseConfig();
DatabaseBuilder config = new DatabaseConfig();
config.setName("h2");
config.loadFromProperties();
config.setName("h2other");
@@ -82,10 +83,10 @@ public class EbeanServerFactory_ServerConfigStart_Test {
public static class OnStartup implements ServerConfigStartup {
DatabaseConfig calledWithConfig;
DatabaseBuilder calledWithConfig;
@Override
public void onStart(DatabaseConfig serverConfig) {
public void onStart(DatabaseBuilder serverConfig) {
calledWithConfig = serverConfig;
}
}
@@ -93,10 +94,10 @@ public class EbeanServerFactory_ServerConfigStart_Test {
public static class OnStartupViaClass implements ServerConfigStartup {
static DatabaseConfig calledWithConfig;
static DatabaseBuilder calledWithConfig;
@Override
public void onStart(DatabaseConfig serverConfig) {
public void onStart(DatabaseBuilder serverConfig) {
calledWithConfig = serverConfig;
}
}
@@ -1,5 +1,6 @@
package io.ebean.xtest.config;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DatabaseConfig;
import io.ebean.migration.MigrationConfig;
import org.junit.jupiter.api.Test;
@@ -4,6 +4,7 @@ import io.ebean.Database;
import io.ebean.DatabaseFactory;
import io.ebean.Transaction;
import io.ebean.annotation.Platform;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DatabaseConfig;
import io.ebean.config.dbplatform.DbIdentity;
import io.ebean.config.dbplatform.IdType;
@@ -4,6 +4,7 @@ package io.ebean.xtest.config;
import io.ebean.Database;
import io.ebean.DatabaseFactory;
import io.ebean.annotation.Platform;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DatabaseConfig;
import io.ebean.xtest.ForPlatform;
import org.junit.jupiter.api.Disabled;
@@ -26,7 +27,7 @@ public class ServerConfigSqlServerTest {
// no explicit databasePlatformName set ..
//props.setProperty("ebean.some_sqlserver.databasePlatformName", "sqlserver17");
DatabaseConfig config = new DatabaseConfig();
DatabaseBuilder config = new DatabaseConfig();
config.setName("some_sqlserver");
config.loadFromProperties(props);
@@ -61,7 +62,7 @@ public class ServerConfigSqlServerTest {
String name = "testsqlserver17";
DatabaseConfig config = new DatabaseConfig();
DatabaseBuilder config = new DatabaseConfig();
config.setName(name);
Properties props = props(name);
@@ -94,7 +95,7 @@ public class ServerConfigSqlServerTest {
Properties props = props(name);
//props.setProperty("ebean.testsqlserver16.databasePlatformName", "sqlserver16");
DatabaseConfig config = new DatabaseConfig();
DatabaseBuilder config = new DatabaseConfig();
config.setDefaultServer(false);
config.setRegister(false);
config.setDdlGenerate(true);
@@ -2,6 +2,7 @@ package io.ebean.xtest.dbmigration;
import io.ebean.Database;
import io.ebean.DatabaseFactory;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DatabaseConfig;
import io.ebean.dbmigration.DbMigration;
import org.junit.jupiter.api.Test;
@@ -46,7 +47,7 @@ class DbMigrationDropHistoryTest {
migration.setPathToResources("src/test/resources");
DatabaseConfig config = new DatabaseConfig();
DatabaseBuilder config = new DatabaseConfig();
config.setName("migrationtest-history");
config.loadFromProperties();
config.setRegister(false);
@@ -3,6 +3,7 @@ package io.ebean.xtest.dbmigration;
import io.ebean.Database;
import io.ebean.DatabaseFactory;
import io.ebean.annotation.Platform;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DatabaseConfig;
import io.ebean.dbmigration.DbMigration;
import org.junit.jupiter.api.Test;
@@ -2,6 +2,7 @@ package io.ebean.xtest.dbmigration;
import io.ebean.*;
import io.ebean.annotation.Platform;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DatabaseConfig;
import io.ebean.config.dbplatform.DbHistorySupport;
import io.ebean.datasource.DataSourcePool;
@@ -215,7 +216,7 @@ public class DbMigrationTest extends BaseTestCase {
if (history == null) {
return;
}
DatabaseConfig config = new DatabaseConfig();
DatabaseBuilder config = new DatabaseConfig();
config.setName(server().name());
config.loadFromProperties(server().pluginApi().config().getProperties());
config.setDataSource(server().dataSource());
@@ -287,7 +288,7 @@ public class DbMigrationTest extends BaseTestCase {
// do some history tests with V1.1 models
private void testReservedKeywords() {
DatabaseConfig config = new DatabaseConfig();
DatabaseBuilder config = new DatabaseConfig();
config.setName(server().name());
config.loadFromProperties(server().pluginApi().config().getProperties());
config.setDataSource(server().dataSource());
@@ -4,6 +4,7 @@ import io.ebean.Database;
import io.ebean.DatabaseFactory;
import io.ebean.bean.BeanCollection;
import io.ebean.common.BeanList;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DatabaseConfig;
import io.ebean.event.BeanFindController;
import io.ebean.event.BeanQueryRequest;
@@ -26,7 +27,7 @@ public class BeanFindControllerTest extends BaseTestCase {
@Test
public void test() {
DatabaseConfig config = new DatabaseConfig();
var config = new DatabaseConfig();
config.setName("h2otherfind");
config.loadFromProperties();
@@ -4,6 +4,7 @@ package io.ebean.xtest.event;
import io.ebean.Database;
import io.ebean.DatabaseFactory;
import io.ebean.Transaction;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DatabaseConfig;
import io.ebean.event.BeanDeleteIdRequest;
import io.ebean.event.BeanPersistAdapter;
@@ -140,7 +141,7 @@ public class BeanPersistControllerTest {
}
private Database getDatabase(PersistAdapter persistAdapter) {
DatabaseConfig config = new DatabaseConfig();
DatabaseBuilder config = new DatabaseConfig();
config.setName("h2ebasicver");
config.loadFromProperties();
config.setDdlGenerate(true);
@@ -5,6 +5,7 @@ import io.ebean.BeanState;
import io.ebean.DB;
import io.ebean.Database;
import io.ebean.DatabaseFactory;
import io.ebean.DatabaseBuilder;
import io.ebean.config.DatabaseConfig;
import io.ebean.event.BeanPostLoad;
import io.ebean.xtest.BaseTestCase;
@@ -48,7 +49,7 @@ public class BeanPostLoadTest extends BaseTestCase {
private Database createDatabase() {
DatabaseConfig config = new DatabaseConfig();
DatabaseBuilder config = new DatabaseConfig();
config.setName("h2ebasicver");
config.loadFromProperties();
@@ -7,7 +7,7 @@ import io.ebean.annotation.TxIsolation;
import io.ebean.bean.BeanCollection;
import io.ebean.bean.CallOrigin;
import io.ebean.cache.ServerCacheManager;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebean.event.readaudit.ReadAuditLogger;
import io.ebean.event.readaudit.ReadAuditPrepare;
@@ -126,7 +126,7 @@ public class TDSpiEbeanServer extends TDSpiServer implements SpiEbeanServer {
}
@Override
public DatabaseConfig config() {
public DatabaseBuilder.Settings config() {
return null;
}
@@ -7,7 +7,7 @@ import io.ebean.annotation.TxIsolation;
import io.ebean.bean.BeanLoader;
import io.ebean.bean.EntityBeanIntercept;
import io.ebean.cache.ServerCacheManager;
import io.ebean.config.DatabaseConfig;
import io.ebean.DatabaseBuilder;
import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebean.meta.MetaInfoManager;
import io.ebean.plugin.BeanType;
@@ -579,7 +579,7 @@ public class TDSpiServer implements SpiServer {
}
@Override
public DatabaseConfig config() {
public DatabaseBuilder.Settings config() {
return null;
}

Some files were not shown because too many files have changed in this diff Show More