diff --git a/ebean-api/src/main/java/io/ebean/Database.java b/ebean-api/src/main/java/io/ebean/Database.java index ea08efaa5..5bbf29ad3 100644 --- a/ebean-api/src/main/java/io/ebean/Database.java +++ b/ebean-api/src/main/java/io/ebean/Database.java @@ -14,6 +14,7 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.persistence.OptimisticLockException; import javax.persistence.PersistenceException; +import javax.sql.DataSource; import java.util.Collection; import java.util.List; import java.util.Map; @@ -121,6 +122,16 @@ public interface Database { */ AutoTune getAutoTune(); + /** + * Return the associated DataSource for this Database instance. + */ + DataSource getDataSource(); + + /** + * Return the associated read only DataSource for this Database instance (can be null). + */ + DataSource getReadOnlyDataSource(); + /** * Return the name. This is used with {@link DB#byName(String)} to get a * Database that was registered with the DB singleton. diff --git a/ebean-api/src/main/java/io/ebean/plugin/SpiServer.java b/ebean-api/src/main/java/io/ebean/plugin/SpiServer.java index 01db004c4..ff5c2d2a0 100644 --- a/ebean-api/src/main/java/io/ebean/plugin/SpiServer.java +++ b/ebean-api/src/main/java/io/ebean/plugin/SpiServer.java @@ -44,16 +44,6 @@ public interface SpiServer extends Database { */ BeanType getBeanTypeForQueueId(String queueId); - /** - * Return the associated DataSource for this Database instance. - */ - DataSource getDataSource(); - - /** - * Return the associated read only DataSource for this Database instance (can be null). - */ - DataSource getReadOnlyDataSource(); - /** * Return a BeanLoader. */ diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DScriptRunner.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DScriptRunner.java index 171f66724..842f86848 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DScriptRunner.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DScriptRunner.java @@ -102,7 +102,7 @@ class DScriptRunner implements ScriptRunner { private Connection obtainConnection() { try { - return server.getPluginApi().getDataSource().getConnection(); + return server.getDataSource().getConnection(); } catch (SQLException e) { throw new PersistenceException("Failed to obtain connection to run script", e); } diff --git a/ebean-core/src/test/java/io/ebean/config/dbplatform/sqlserver/SqlServerStepSequenceTest.java b/ebean-core/src/test/java/io/ebean/config/dbplatform/sqlserver/SqlServerStepSequenceTest.java index b89049b8c..6c356021b 100644 --- a/ebean-core/src/test/java/io/ebean/config/dbplatform/sqlserver/SqlServerStepSequenceTest.java +++ b/ebean-core/src/test/java/io/ebean/config/dbplatform/sqlserver/SqlServerStepSequenceTest.java @@ -27,7 +27,7 @@ public class SqlServerStepSequenceTest extends BaseTestCase { server().sqlUpdate("create sequence sqls_testseq_9876 start with 1 increment by 50").execute(); BackgroundExecutor be = server().getBackgroundExecutor(); - DataSource ds = server().getPluginApi().getDataSource(); + DataSource ds = server().getDataSource(); SqlServerStepSequence s = new SqlServerStepSequence(be, ds, "sqls_testseq_9876", 50); diff --git a/ebean-core/src/test/java/io/ebeaninternal/api/TDSpiEbeanServer.java b/ebean-core/src/test/java/io/ebeaninternal/api/TDSpiEbeanServer.java index e76cf88f9..6305fdb08 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/api/TDSpiEbeanServer.java +++ b/ebean-core/src/test/java/io/ebeaninternal/api/TDSpiEbeanServer.java @@ -53,6 +53,7 @@ import io.ebeaninternal.server.transaction.RemoteTransactionEvent; import javax.persistence.OptimisticLockException; import javax.persistence.PersistenceException; +import javax.sql.DataSource; import java.lang.reflect.Type; import java.time.Clock; import java.util.Collection; @@ -336,6 +337,16 @@ public class TDSpiEbeanServer implements SpiEbeanServer { return null; } + @Override + public DataSource getDataSource() { + return null; + } + + @Override + public DataSource getReadOnlyDataSource() { + return null; + } + @Override public String getName() { return name; diff --git a/ebean-core/src/test/java/io/ebeaninternal/server/rawsql/TestRawSqlBuilder.java b/ebean-core/src/test/java/io/ebeaninternal/server/rawsql/TestRawSqlBuilder.java index 294a5f94b..4e0a32e24 100644 --- a/ebean-core/src/test/java/io/ebeaninternal/server/rawsql/TestRawSqlBuilder.java +++ b/ebean-core/src/test/java/io/ebeaninternal/server/rawsql/TestRawSqlBuilder.java @@ -258,7 +258,7 @@ public class TestRawSqlBuilder extends BaseTestCase { "join o_customer c on o.kcustomer_id = c.id " + "where c.id = ? and o.id > ?"; - final DataSource dataSource = DB.getDefault().getPluginApi().getDataSource(); + final DataSource dataSource = DB.getDefault().getDataSource(); try (Connection connection = dataSource.getConnection()) { try (PreparedStatement stmt = connection.prepareStatement(sql)) { diff --git a/ebean-core/src/test/java/org/Main.java b/ebean-core/src/test/java/org/Main.java index b27f856be..9ce670947 100644 --- a/ebean-core/src/test/java/org/Main.java +++ b/ebean-core/src/test/java/org/Main.java @@ -15,7 +15,7 @@ public class Main { EbeanServer ms = Ebean.getServer("ms"); - DataSource dataSource = ms.getPluginApi().getDataSource(); + DataSource dataSource = ms.getDataSource(); Connection connection = dataSource.getConnection(); PreparedStatement statement = connection.prepareStatement("select next VALUE for j2_seq"); diff --git a/ebean-core/src/test/java/org/tests/basic/TestQueryUsingConnection.java b/ebean-core/src/test/java/org/tests/basic/TestQueryUsingConnection.java index 49a9ac6e3..486d3a833 100644 --- a/ebean-core/src/test/java/org/tests/basic/TestQueryUsingConnection.java +++ b/ebean-core/src/test/java/org/tests/basic/TestQueryUsingConnection.java @@ -24,7 +24,7 @@ public class TestQueryUsingConnection extends BaseTestCase { ResetBasicData.reset(); - DataSource dataSource = DB.getDefault().getPluginApi().getDataSource(); + DataSource dataSource = DB.getDefault().getDataSource(); try (Connection connection = dataSource.getConnection()) { diff --git a/ebean-core/src/test/java/org/tests/query/TestQueryFindIterate.java b/ebean-core/src/test/java/org/tests/query/TestQueryFindIterate.java index 8416b2f54..4dea23698 100644 --- a/ebean-core/src/test/java/org/tests/query/TestQueryFindIterate.java +++ b/ebean-core/src/test/java/org/tests/query/TestQueryFindIterate.java @@ -235,7 +235,7 @@ public class TestQueryFindIterate extends BaseTestCase { SpiServer pluginApi = server().getPluginApi(); DataSourcePool dsPool = (DataSourcePool) pluginApi.getServerConfig().getReadOnlyDataSource(); if (dsPool == null) { - dsPool = (DataSourcePool) server().getPluginApi().getDataSource(); + dsPool = (DataSourcePool) server().getDataSource(); } int startConns = dsPool.getStatus(false).getBusy(); diff --git a/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java index 7dbf6c42e..2871c58a7 100644 --- a/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java +++ b/ebean-ddlgen/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java @@ -142,7 +142,7 @@ public class DdlGenerator implements SpiDdlGenerator { private Connection obtainConnection() { try { - return server.getPluginApi().getDataSource().getConnection(); + return server.getDataSource().getConnection(); } catch (SQLException e) { throw new PersistenceException("Failed to obtain connection to run DDL", e); } diff --git a/ebean-querybean/src/test/java/org/querytest/QCustomerTest.java b/ebean-querybean/src/test/java/org/querytest/QCustomerTest.java index ee571c126..73c7a9dbd 100644 --- a/ebean-querybean/src/test/java/org/querytest/QCustomerTest.java +++ b/ebean-querybean/src/test/java/org/querytest/QCustomerTest.java @@ -222,7 +222,7 @@ public class QCustomerTest { cust.setStatus(Customer.Status.GOOD); cust.save(); - DataSource dataSource = DB.getDefault().getPluginApi().getDataSource(); + DataSource dataSource = DB.getDefault().getDataSource(); try (Connection connection = dataSource.getConnection()) {