Refactor extract interface DatabaseBuilder from DatabaseConfig

First step in supporting the builder pattern for creating Database
This commit is contained in:
Rob Bygrave
2023-11-03 21:17:55 +13:00
parent 89741b9312
commit 12029ed06e
115 changed files with 2659 additions and 1684 deletions
@@ -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.
*
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,7 +75,7 @@ public final class DatabaseFactory {
*
* }</pre>
*/
public static Database create(DatabaseConfig config) {
public static Database create(DatabaseBuilder config) {
lock.lock();
try {
if (config.getName() == null) {
@@ -102,7 +101,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 +131,7 @@ public final class DatabaseFactory {
}
}
private static Database createInternal(DatabaseConfig config) {
private static Database createInternal(DatabaseBuilder 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 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.