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!");

Reply via email to