This is an automated email from the ASF dual-hosted git repository. dschneider pushed a commit to branch feature/GEODE-5897 in repository https://gitbox.apache.org/repos/asf/geode.git
commit eaa5bcf7e70d5d3c0f734f6ff6ddff369d151ad7 Author: Darrel Schneider <[email protected]> AuthorDate: Mon Oct 22 14:59:46 2018 -0700 DataSourceFactory methods are no longer static to aid unit testing --- .../internal/datasource/AbstractPoolCacheJUnitTest.java | 4 ++-- .../geode/internal/datasource/DataSourceFactory.java | 12 ++++++------ .../java/org/apache/geode/internal/jndi/JNDIInvoker.java | 15 +++++++++++---- .../datasource/GemFireBasicDataSourceJUnitTest.java | 6 +++--- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/datasource/AbstractPoolCacheJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/datasource/AbstractPoolCacheJUnitTest.java index d82d119..2cfc71f 100644 --- a/geode-core/src/integrationTest/java/org/apache/geode/internal/datasource/AbstractPoolCacheJUnitTest.java +++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/datasource/AbstractPoolCacheJUnitTest.java @@ -172,13 +172,13 @@ public class AbstractPoolCacheJUnitTest { props.add(new ConfigProperty("databaseName", "newDB", "java.lang.String")); GemFireBasicDataSource gbds = - (GemFireBasicDataSource) DataSourceFactory.getSimpleDataSource(map); + (GemFireBasicDataSource) new DataSourceFactory().getSimpleDataSource(map); map.put("xa-datasource-class", "org.apache.derby.jdbc.EmbeddedXADataSource"); map.put("connection-url", "jdbc:derby:newDB;create=true"); GemFireTransactionDataSource gtds = - (GemFireTransactionDataSource) DataSourceFactory.getTranxDataSource(map, props); + (GemFireTransactionDataSource) new DataSourceFactory().getTranxDataSource(map, props); XAConnection xaconn = (XAConnection) gtds.provider.borrowConnection(); try { diff --git a/geode-core/src/main/java/org/apache/geode/internal/datasource/DataSourceFactory.java b/geode-core/src/main/java/org/apache/geode/internal/datasource/DataSourceFactory.java index 2143be5..806de8b 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/datasource/DataSourceFactory.java +++ b/geode-core/src/main/java/org/apache/geode/internal/datasource/DataSourceFactory.java @@ -59,7 +59,7 @@ public class DataSourceFactory { * @param configMap a map containing configurations required for datasource. * @return ?? */ - public static DataSource getSimpleDataSource(Map configMap) throws DataSourceCreateException { + public DataSource getSimpleDataSource(Map configMap) throws DataSourceCreateException { ConfiguredDataSourceProperties configs = createDataSourceProperties(configMap); if (configs.getJDBCDriver() == null) { logger.error("DataSourceFactory::getSimpleDataSource:JDBC Driver is not available"); @@ -92,7 +92,7 @@ public class DataSourceFactory { * * @return javax.sql.DataSource */ - public static ClientConnectionFactoryWrapper getManagedDataSource(Map configMap, + public ClientConnectionFactoryWrapper getManagedDataSource(Map configMap, List<ConfigProperty> props) throws DataSourceCreateException { Object cf = null; ManagedConnectionFactory mcf = null; @@ -146,7 +146,7 @@ public class DataSourceFactory { * @param configMap a map containing configurations required for datasource. * @return ??? */ - public static DataSource getPooledDataSource(Map configMap, List<ConfigProperty> props) + public DataSource getPooledDataSource(Map configMap, List<ConfigProperty> props) throws DataSourceCreateException { ConfiguredDataSourceProperties configs = createDataSourceProperties(configMap); String connpoolClassName = configs.getConnectionPoolDSClass(); @@ -181,7 +181,7 @@ public class DataSourceFactory { * @param configMap a map containing configurations required for datasource. * @return ??? */ - public static DataSource getTranxDataSource(Map configMap, List<ConfigProperty> props) + public DataSource getTranxDataSource(Map configMap, List<ConfigProperty> props) throws DataSourceCreateException { ConfiguredDataSourceProperties configs = createDataSourceProperties(configMap); String xaClassName = configs.getXADSClass(); @@ -220,7 +220,7 @@ public class DataSourceFactory { * * @param configMap a map containing configurations required for datasource. */ - private static ConfiguredDataSourceProperties createDataSourceProperties(Map configMap) { + private ConfiguredDataSourceProperties createDataSourceProperties(Map configMap) { ConfiguredDataSourceProperties configs = new ConfiguredDataSourceProperties(); Iterator entries = configMap.entrySet().iterator(); while (entries.hasNext()) { @@ -313,7 +313,7 @@ public class DataSourceFactory { * @param c class of the object * @param cpdsObj The object */ - private static void invokeAllMethods(Class c, Object cpdsObj, List props) + private void invokeAllMethods(Class c, Object cpdsObj, List props) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { String key = null; String value = null; diff --git a/geode-core/src/main/java/org/apache/geode/internal/jndi/JNDIInvoker.java b/geode-core/src/main/java/org/apache/geode/internal/jndi/JNDIInvoker.java index c78af82..42f6d8b 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/jndi/JNDIInvoker.java +++ b/geode-core/src/main/java/org/apache/geode/internal/jndi/JNDIInvoker.java @@ -119,6 +119,8 @@ public class JNDIInvoker { private static Boolean IGNORE_JTA = Boolean.getBoolean(DistributionConfig.GEMFIRE_PREFIX + "ignoreJTA"); + private static final DataSourceFactory dataSourceFactory = new DataSourceFactory(); + /** * Bind the transaction resources. Bind UserTransaction and TransactionManager. * <p> @@ -325,6 +327,11 @@ public class JNDIInvoker { * @param map contains Datasource configuration properties. */ public static void mapDatasource(Map map, List<ConfigProperty> props) { + mapDatasource(map, props, dataSourceFactory); + } + + static void mapDatasource(Map map, List<ConfigProperty> props, + DataSourceFactory dataSourceFactory) { String value = (String) map.get("type"); String jndiName = ""; LogWriter writer = TransactionUtils.getLogWriter(); @@ -332,25 +339,25 @@ public class JNDIInvoker { try { jndiName = (String) map.get("jndi-name"); if (value.equals("PooledDataSource")) { - ds = DataSourceFactory.getPooledDataSource(map, props); + ds = dataSourceFactory.getPooledDataSource(map, props); ctx.rebind("java:/" + jndiName, ds); dataSourceMap.put(jndiName, ds); if (writer.fineEnabled()) writer.fine("Bound java:/" + jndiName + " to Context"); } else if (value.equals("XAPooledDataSource")) { - ds = DataSourceFactory.getTranxDataSource(map, props); + ds = dataSourceFactory.getTranxDataSource(map, props); ctx.rebind("java:/" + jndiName, ds); dataSourceMap.put(jndiName, ds); if (writer.fineEnabled()) writer.fine("Bound java:/" + jndiName + " to Context"); } else if (value.equals("SimpleDataSource")) { - ds = DataSourceFactory.getSimpleDataSource(map); + ds = dataSourceFactory.getSimpleDataSource(map); ctx.rebind("java:/" + jndiName, ds); dataSourceMap.put(jndiName, ds); if (writer.fineEnabled()) writer.fine("Bound java:/" + jndiName + " to Context"); } else if (value.equals("ManagedDataSource")) { - ClientConnectionFactoryWrapper ds1 = DataSourceFactory.getManagedDataSource(map, props); + ClientConnectionFactoryWrapper ds1 = dataSourceFactory.getManagedDataSource(map, props); ctx.rebind("java:/" + jndiName, ds1.getClientConnFactory()); dataSourceMap.put(jndiName, ds1); if (writer.fineEnabled()) diff --git a/geode-core/src/test/java/org/apache/geode/internal/datasource/GemFireBasicDataSourceJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/datasource/GemFireBasicDataSourceJUnitTest.java index 3225858..9a19b4b 100644 --- a/geode-core/src/test/java/org/apache/geode/internal/datasource/GemFireBasicDataSourceJUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/internal/datasource/GemFireBasicDataSourceJUnitTest.java @@ -38,7 +38,7 @@ public class GemFireBasicDataSourceJUnitTest { @Test public void connectWithoutUsernameOrPassword() throws DataSourceCreateException { - dataSource = (GemFireBasicDataSource) DataSourceFactory.getSimpleDataSource(params); + dataSource = (GemFireBasicDataSource) new DataSourceFactory().getSimpleDataSource(params); assertThatThrownBy(() -> dataSource.getConnection()) .hasMessage("Test Driver Connection attempted!"); @@ -48,7 +48,7 @@ public class GemFireBasicDataSourceJUnitTest { public void connectWithUsernameButNoPassword() throws DataSourceCreateException { params.put("user-name", "myUser"); - dataSource = (GemFireBasicDataSource) DataSourceFactory.getSimpleDataSource(params); + dataSource = (GemFireBasicDataSource) new DataSourceFactory().getSimpleDataSource(params); assertThatThrownBy(() -> dataSource.getConnection()) .hasMessage("Test Driver Connection attempted!"); @@ -58,7 +58,7 @@ public class GemFireBasicDataSourceJUnitTest { public void connectWithPasswordButNoUsername() throws DataSourceCreateException { params.put("password", "myPassword"); - dataSource = (GemFireBasicDataSource) DataSourceFactory.getSimpleDataSource(params); + dataSource = (GemFireBasicDataSource) new DataSourceFactory().getSimpleDataSource(params); assertThatThrownBy(() -> dataSource.getConnection()) .hasMessage("Test Driver Connection attempted!");
