You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ds...@apache.org on 2018/10/26 19:15:03 UTC

[geode] branch feature/GEODE-5935 updated (6e5393f -> 3f3b553)

This is an automated email from the ASF dual-hosted git repository.

dschneider pushed a change to branch feature/GEODE-5935
in repository https://gitbox.apache.org/repos/asf/geode.git.


    from 6e5393f  GEODE-5935: WIP move region mapping in cache.xml
     new 2e3085e  spotless
     new 900eef5  The create jdbc-mapping now checks if the region exists. The tests for create jdbc-mapping now pass.
     new 3f3b553  destroy jdbc-mapping tests now pass

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../jdbc/internal/TestConfigService.java           |   2 +-
 .../cli/CreateMappingCommandDUnitTest.java         |  18 ++--
 .../cli/DestroyMappingCommandDunitTest.java        |  13 +--
 .../cli/CreateMappingCommandIntegrationTest.java   |  10 +-
 .../geode/connectors/jdbc/internal/SqlHandler.java |   4 +-
 .../jdbc/internal/cli/AlterMappingCommand.java     |  14 ++-
 .../jdbc/internal/cli/AlterMappingFunction.java    |   2 +-
 .../jdbc/internal/cli/CreateMappingCommand.java    |  10 +-
 .../jdbc/internal/cli/CreateMappingFunction.java   |  13 +++
 .../jdbc/internal/cli/DescribeMappingCommand.java  |  45 +++++----
 .../jdbc/internal/cli/DestroyMappingCommand.java   |   9 +-
 .../jdbc/internal/cli/ListMappingCommand.java      |  45 +++++----
 .../jdbc/internal/configuration/RegionMapping.java |   4 +-
 .../connectors/jdbc/internal/xml/ElementType.java  |   5 +-
 .../internal/xml/JdbcServiceConfiguration.java     |  87 ++++++++----------
 .../internal/xml/RegionMappingConfiguration.java   |   2 +-
 .../jdbc/internal/cli/AlterMappingCommandTest.java |  43 +++++----
 .../internal/cli/CreateMappingFunctionTest.java    |  17 +++-
 .../internal/cli/DescribeMappingCommandTest.java   |  85 +++++++++--------
 .../jdbc/internal/cli/ListMappingCommandTest.java  | 102 ++++++++++-----------
 .../configuration/ConnectorServiceTest.java        |  86 ++++++++---------
 .../jdbc/internal/xml/ElementTypeTest.java         |  69 +++++++-------
 .../internal/xml/JdbcServiceConfigurationTest.java |  70 ++++++--------
 23 files changed, 375 insertions(+), 380 deletions(-)


[geode] 03/03: destroy jdbc-mapping tests now pass

Posted by ds...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dschneider pushed a commit to branch feature/GEODE-5935
in repository https://gitbox.apache.org/repos/asf/geode.git

commit 3f3b5534d7ff137e8b90cb706e420fd915065ae2
Author: Darrel Schneider <ds...@pivotal.io>
AuthorDate: Fri Oct 26 12:14:35 2018 -0700

    destroy jdbc-mapping tests now pass
---
 .../jdbc/internal/cli/DestroyMappingCommandDunitTest.java   | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyMappingCommandDunitTest.java b/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyMappingCommandDunitTest.java
index b614c8c..fec7dbd 100644
--- a/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyMappingCommandDunitTest.java
+++ b/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyMappingCommandDunitTest.java
@@ -46,6 +46,7 @@ import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 @Category({JDBCConnectorTest.class})
 public class DestroyMappingCommandDunitTest implements Serializable {
 
+  private static final String REGION_NAME = "testRegion";
 
   @Rule
   public transient GfshCommandRule gfsh = new GfshCommandRule();
@@ -59,19 +60,19 @@ public class DestroyMappingCommandDunitTest implements Serializable {
   private MemberVM locator;
   private MemberVM server;
 
-  private String regionName;
-
   @Before
   public void before() throws Exception {
-    regionName = "testRegion";
 
     locator = startupRule.startLocatorVM(0);
     server = startupRule.startServerVM(1, locator.getPort());
 
     gfsh.connectAndVerify(locator);
 
+    gfsh.executeAndAssertThat("create region --name=" + REGION_NAME + " --type=REPLICATE")
+        .statusIsSuccess();
+
     CommandStringBuilder csb = new CommandStringBuilder(CREATE_MAPPING);
-    csb.addOption(CREATE_MAPPING__REGION_NAME, "testRegion");
+    csb.addOption(CREATE_MAPPING__REGION_NAME, REGION_NAME);
     csb.addOption(CREATE_MAPPING__CONNECTION_NAME, "connection");
     csb.addOption(CREATE_MAPPING__TABLE_NAME, "myTable");
     csb.addOption(CREATE_MAPPING__PDX_CLASS_NAME, "myPdxClass");
@@ -84,7 +85,7 @@ public class DestroyMappingCommandDunitTest implements Serializable {
   @Test
   public void destroysRegionMapping() throws Exception {
     CommandStringBuilder csb = new CommandStringBuilder(DESTROY_MAPPING);
-    csb.addOption(DESTROY_MAPPING__REGION_NAME, "testRegion");
+    csb.addOption(DESTROY_MAPPING__REGION_NAME, REGION_NAME);
 
     gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess();
 
@@ -97,7 +98,7 @@ public class DestroyMappingCommandDunitTest implements Serializable {
     server.invoke(() -> {
       InternalCache cache = ClusterStartupRule.getCache();
       RegionMapping mapping =
-          cache.getService(JdbcConnectorService.class).getMappingForRegion("testRegion");
+          cache.getService(JdbcConnectorService.class).getMappingForRegion(REGION_NAME);
       assertThat(mapping).isNull();
     });
   }


[geode] 01/03: spotless

Posted by ds...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dschneider pushed a commit to branch feature/GEODE-5935
in repository https://gitbox.apache.org/repos/asf/geode.git

commit 2e3085ee623d6b0c623eb4b3aea942ee75c56f17
Author: Darrel Schneider <ds...@pivotal.io>
AuthorDate: Fri Oct 26 08:43:52 2018 -0700

    spotless
---
 .../jdbc/internal/TestConfigService.java           |   2 +-
 .../geode/connectors/jdbc/internal/SqlHandler.java |   4 +-
 .../jdbc/internal/cli/AlterMappingCommand.java     |  14 ++-
 .../jdbc/internal/cli/AlterMappingFunction.java    |   2 +-
 .../jdbc/internal/cli/CreateMappingCommand.java    |  10 +-
 .../jdbc/internal/cli/DescribeMappingCommand.java  |  45 +++++----
 .../jdbc/internal/cli/DestroyMappingCommand.java   |   9 +-
 .../jdbc/internal/cli/ListMappingCommand.java      |  45 +++++----
 .../jdbc/internal/configuration/RegionMapping.java |   4 +-
 .../connectors/jdbc/internal/xml/ElementType.java  |   5 +-
 .../internal/xml/JdbcServiceConfiguration.java     |  87 ++++++++----------
 .../internal/xml/RegionMappingConfiguration.java   |   2 +-
 .../jdbc/internal/cli/AlterMappingCommandTest.java |  43 +++++----
 .../internal/cli/DescribeMappingCommandTest.java   |  85 +++++++++--------
 .../jdbc/internal/cli/ListMappingCommandTest.java  | 102 ++++++++++-----------
 .../configuration/ConnectorServiceTest.java        |  86 ++++++++---------
 .../jdbc/internal/xml/ElementTypeTest.java         |  69 +++++++-------
 .../internal/xml/JdbcServiceConfigurationTest.java |  70 ++++++--------
 18 files changed, 322 insertions(+), 362 deletions(-)

diff --git a/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/internal/TestConfigService.java b/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/internal/TestConfigService.java
index 152ee7e..6cc1d16 100644
--- a/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/internal/TestConfigService.java
+++ b/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/internal/TestConfigService.java
@@ -51,7 +51,7 @@ public class TestConfigService {
   }
 
   private static RegionMapping createRegionMapping(String pdxClassName,
-                                                   boolean primaryKeyInValue) {
+      boolean primaryKeyInValue) {
     return new RegionMapping(REGION_NAME, pdxClassName, REGION_TABLE_NAME,
         CONNECTION_CONFIG_NAME, primaryKeyInValue);
   }
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/SqlHandler.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/SqlHandler.java
index fa1a01a..36cc53b 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/SqlHandler.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/SqlHandler.java
@@ -228,7 +228,7 @@ public class SqlHandler {
   }
 
   <K> EntryColumnData getEntryColumnData(TableMetaDataView tableMetaData,
-                                         RegionMapping regionMapping, K key, PdxInstance value, Operation operation) {
+      RegionMapping regionMapping, K key, PdxInstance value, Operation operation) {
     String keyColumnName = tableMetaData.getKeyColumnName();
     ColumnData keyColumnData =
         new ColumnData(keyColumnName, key, tableMetaData.getColumnDataType(keyColumnName));
@@ -242,7 +242,7 @@ public class SqlHandler {
   }
 
   private List<ColumnData> createColumnDataList(TableMetaDataView tableMetaData,
-                                                RegionMapping regionMapping, PdxInstance value) {
+      RegionMapping regionMapping, PdxInstance value) {
     List<ColumnData> result = new ArrayList<>();
     for (String fieldName : value.getFieldNames()) {
       String columnName = regionMapping.getColumnNameForField(fieldName, tableMetaData);
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingCommand.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingCommand.java
index 665a669..2f847af 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingCommand.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingCommand.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.connectors.jdbc.internal.cli;
 
-import static org.apache.geode.distributed.ConfigurationPersistenceService.CLUSTER_CONFIG;
 
 import java.util.List;
 import java.util.Set;
@@ -24,13 +23,10 @@ import org.springframework.shell.core.annotation.CliOption;
 
 import org.apache.geode.annotations.Experimental;
 import org.apache.geode.cache.configuration.CacheConfig;
-import org.apache.geode.cache.configuration.CacheElement;
 import org.apache.geode.connectors.jdbc.internal.configuration.RegionMapping;
-import org.apache.geode.distributed.ConfigurationPersistenceService;
 import org.apache.geode.distributed.DistributedMember;
 import org.apache.geode.management.cli.CliMetaData;
 import org.apache.geode.management.cli.SingleGfshCommand;
-import org.apache.geode.management.internal.cli.exceptions.EntityNotFoundException;
 import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
 import org.apache.geode.management.internal.cli.result.model.ResultModel;
@@ -103,18 +99,20 @@ public class AlterMappingCommand extends SingleGfshCommand {
   @Override
   public void updateClusterConfig(String group, CacheConfig cacheConfig, Object element) {
     RegionMapping newCacheElement = (RegionMapping) element;
-    RegionMapping existingCacheElement = cacheConfig.findCustomRegionElement(newCacheElement.getRegionName(), newCacheElement.getId(), RegionMapping.class);
+    RegionMapping existingCacheElement = cacheConfig.findCustomRegionElement(
+        newCacheElement.getRegionName(), newCacheElement.getId(), RegionMapping.class);
 
     cacheConfig
         .getRegions()
         .stream()
-        .filter(regionConfig ->  regionConfig.getName().equals(newCacheElement.getRegionName()))
-        .forEach(regionConfig -> regionConfig.getCustomRegionElements().remove(existingCacheElement));
+        .filter(regionConfig -> regionConfig.getName().equals(newCacheElement.getRegionName()))
+        .forEach(
+            regionConfig -> regionConfig.getCustomRegionElements().remove(existingCacheElement));
 
     cacheConfig
         .getRegions()
         .stream()
-        .filter(regionConfig ->  regionConfig.getName().equals(newCacheElement.getRegionName()))
+        .filter(regionConfig -> regionConfig.getName().equals(newCacheElement.getRegionName()))
         .forEach(regionConfig -> regionConfig.getCustomRegionElements().add(newCacheElement));
   }
 }
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingFunction.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingFunction.java
index 6d9216b..e0b182d 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingFunction.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingFunction.java
@@ -48,7 +48,7 @@ public class AlterMappingFunction extends CliFunction<RegionMapping> {
   }
 
   RegionMapping alterRegionMapping(RegionMapping regionMapping,
-                                   RegionMapping existingMapping) {
+      RegionMapping existingMapping) {
     String connectionName = getValue(regionMapping.getConnectionConfigName(),
         existingMapping.getConnectionConfigName());
     String table = getValue(regionMapping.getTableName(), existingMapping.getTableName());
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommand.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommand.java
index 5c8dd19..e51893e 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommand.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommand.java
@@ -92,20 +92,22 @@ public class CreateMappingCommand extends SingleGfshCommand {
   @Override
   public void updateClusterConfig(String group, CacheConfig cacheConfig, Object element) {
     RegionMapping newCacheElement = (RegionMapping) element;
-    RegionMapping existingCacheElement = cacheConfig.findCustomRegionElement(newCacheElement.getRegionName(), newCacheElement.getId(), RegionMapping.class);
+    RegionMapping existingCacheElement = cacheConfig.findCustomRegionElement(
+        newCacheElement.getRegionName(), newCacheElement.getId(), RegionMapping.class);
 
     if (existingCacheElement != null) {
       cacheConfig
           .getRegions()
           .stream()
-          .filter(regionConfig ->  regionConfig.getName().equals(newCacheElement.getRegionName()))
-          .forEach(regionConfig -> regionConfig.getCustomRegionElements().remove(existingCacheElement));
+          .filter(regionConfig -> regionConfig.getName().equals(newCacheElement.getRegionName()))
+          .forEach(
+              regionConfig -> regionConfig.getCustomRegionElements().remove(existingCacheElement));
     }
 
     cacheConfig
         .getRegions()
         .stream()
-        .filter(regionConfig ->  regionConfig.getName().equals(newCacheElement.getRegionName()))
+        .filter(regionConfig -> regionConfig.getName().equals(newCacheElement.getRegionName()))
         .forEach(regionConfig -> regionConfig.getCustomRegionElements().add(newCacheElement));
   }
 }
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeMappingCommand.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeMappingCommand.java
index 0cf0cbd..aa20042 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeMappingCommand.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeMappingCommand.java
@@ -26,10 +26,7 @@ import org.springframework.shell.core.annotation.CliCommand;
 import org.springframework.shell.core.annotation.CliOption;
 
 import org.apache.geode.annotations.Experimental;
-import org.apache.geode.cache.configuration.CacheConfig;
-import org.apache.geode.cache.configuration.CacheElement;
 import org.apache.geode.connectors.jdbc.internal.configuration.RegionMapping;
-import org.apache.geode.distributed.ConfigurationPersistenceService;
 import org.apache.geode.distributed.DistributedMember;
 import org.apache.geode.management.cli.CliMetaData;
 import org.apache.geode.management.cli.GfshCommand;
@@ -62,28 +59,28 @@ public class DescribeMappingCommand extends GfshCommand {
     RegionMapping mapping = null;
 
     // check if CC is available and use it to describe the connection
-//    ConfigurationPersistenceService ccService = getConfigurationPersistenceService();
-//    if (ccService != null) {
-//      CacheConfig cacheConfig = ccService.getCacheConfig("cluster");
-//      if (cacheConfig != null) {
-//        ConnectorService service =
-//            cacheConfig.findCustomCacheElement("connector-service", ConnectorService.class);
-//        if (service != null) {
-//          mapping = CacheElement.findElement(service.getRegionMapping(), regionName);
-//        }
-//      }
-//    } else {
-      // otherwise get it from any member
-      Set<DistributedMember> members = findMembers(null, null);
-      if (members.size() > 0) {
-        DistributedMember targetMember = members.iterator().next();
-        CliFunctionResult result = executeFunctionAndGetFunctionResult(
-            new DescribeMappingFunction(), regionName, targetMember);
-        if (result != null) {
-          mapping = (RegionMapping) result.getResultObject();
-        }
+    // ConfigurationPersistenceService ccService = getConfigurationPersistenceService();
+    // if (ccService != null) {
+    // CacheConfig cacheConfig = ccService.getCacheConfig("cluster");
+    // if (cacheConfig != null) {
+    // ConnectorService service =
+    // cacheConfig.findCustomCacheElement("connector-service", ConnectorService.class);
+    // if (service != null) {
+    // mapping = CacheElement.findElement(service.getRegionMapping(), regionName);
+    // }
+    // }
+    // } else {
+    // otherwise get it from any member
+    Set<DistributedMember> members = findMembers(null, null);
+    if (members.size() > 0) {
+      DistributedMember targetMember = members.iterator().next();
+      CliFunctionResult result = executeFunctionAndGetFunctionResult(
+          new DescribeMappingFunction(), regionName, targetMember);
+      if (result != null) {
+        mapping = (RegionMapping) result.getResultObject();
       }
-//    }
+    }
+    // }
 
     if (mapping == null) {
       throw new EntityNotFoundException(
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyMappingCommand.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyMappingCommand.java
index ac4f4bc..f85bf44 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyMappingCommand.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyMappingCommand.java
@@ -22,7 +22,6 @@ import org.springframework.shell.core.annotation.CliOption;
 
 import org.apache.geode.annotations.Experimental;
 import org.apache.geode.cache.configuration.CacheConfig;
-import org.apache.geode.cache.configuration.CacheElement;
 import org.apache.geode.connectors.jdbc.internal.configuration.RegionMapping;
 import org.apache.geode.distributed.DistributedMember;
 import org.apache.geode.management.cli.CliMetaData;
@@ -63,15 +62,17 @@ public class DestroyMappingCommand extends SingleGfshCommand {
 
   @Override
   public void updateClusterConfig(String group, CacheConfig cacheConfig, Object configObject) {
-    String region = (String)configObject;
-    RegionMapping existingCacheElement = cacheConfig.findCustomRegionElement("/" + region, RegionMapping.ELEMENT_ID, RegionMapping.class);
+    String region = (String) configObject;
+    RegionMapping existingCacheElement = cacheConfig.findCustomRegionElement("/" + region,
+        RegionMapping.ELEMENT_ID, RegionMapping.class);
 
     if (existingCacheElement != null) {
       cacheConfig
           .getRegions()
           .stream()
           .filter(regionConfig -> regionConfig.getName().equals(region))
-          .forEach(regionConfig -> regionConfig.getCustomRegionElements().remove(existingCacheElement));
+          .forEach(
+              regionConfig -> regionConfig.getCustomRegionElements().remove(existingCacheElement));
     }
   }
 }
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingCommand.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingCommand.java
index 8be59b5..213756e 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingCommand.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingCommand.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.connectors.jdbc.internal.cli;
 
-import static org.apache.geode.distributed.ConfigurationPersistenceService.CLUSTER_CONFIG;
 
 import java.util.Collection;
 import java.util.Set;
@@ -22,9 +21,7 @@ import java.util.Set;
 import org.springframework.shell.core.annotation.CliCommand;
 
 import org.apache.geode.annotations.Experimental;
-import org.apache.geode.cache.configuration.CacheConfig;
 import org.apache.geode.connectors.jdbc.internal.configuration.RegionMapping;
-import org.apache.geode.distributed.ConfigurationPersistenceService;
 import org.apache.geode.distributed.DistributedMember;
 import org.apache.geode.management.cli.CliMetaData;
 import org.apache.geode.management.cli.GfshCommand;
@@ -54,28 +51,28 @@ public class ListMappingCommand extends GfshCommand {
     Collection<RegionMapping> mappings = null;
 
     // check if CC is available and use it to describe the connection
-//    ConfigurationPersistenceService ccService = getConfigurationPersistenceService();
-//    if (ccService != null) {
-//      CacheConfig cacheConfig = ccService.getCacheConfig(CLUSTER_CONFIG);
-//      if (cacheConfig != null) {
-//        ConnectorService service =
-//            cacheConfig.findCustomCacheElement("connector-service", ConnectorService.class);
-//        if (service != null) {
-//          mappings = service.getRegionMapping();
-//        }
-//      }
-//    } else {
-      // otherwise get it from any member
-      Set<DistributedMember> members = findMembers(null, null);
-      if (members.size() > 0) {
-        DistributedMember targetMember = members.iterator().next();
-        CliFunctionResult result =
-            executeFunctionAndGetFunctionResult(new ListMappingFunction(), null, targetMember);
-        if (result != null) {
-          mappings = (Collection<RegionMapping>) result.getResultObject();
-        }
+    // ConfigurationPersistenceService ccService = getConfigurationPersistenceService();
+    // if (ccService != null) {
+    // CacheConfig cacheConfig = ccService.getCacheConfig(CLUSTER_CONFIG);
+    // if (cacheConfig != null) {
+    // ConnectorService service =
+    // cacheConfig.findCustomCacheElement("connector-service", ConnectorService.class);
+    // if (service != null) {
+    // mappings = service.getRegionMapping();
+    // }
+    // }
+    // } else {
+    // otherwise get it from any member
+    Set<DistributedMember> members = findMembers(null, null);
+    if (members.size() > 0) {
+      DistributedMember targetMember = members.iterator().next();
+      CliFunctionResult result =
+          executeFunctionAndGetFunctionResult(new ListMappingFunction(), null, targetMember);
+      if (result != null) {
+        mappings = (Collection<RegionMapping>) result.getResultObject();
       }
-//    }
+    }
+    // }
 
     if (mappings == null) {
       return ResultModel.createInfo(EXPERIMENTAL + "\n" + "No mappings found");
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/configuration/RegionMapping.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/configuration/RegionMapping.java
index 6ee2634..3226411 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/configuration/RegionMapping.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/configuration/RegionMapping.java
@@ -103,7 +103,7 @@ public class RegionMapping implements CacheElement {
   public RegionMapping() {}
 
   public RegionMapping(String regionName, String pdxClassName, String tableName,
-                       String connectionConfigName, Boolean primaryKeyInValue) {
+      String connectionConfigName, Boolean primaryKeyInValue) {
     this.regionName = regionName;
     this.pdxClassName = pdxClassName;
     this.tableName = tableName;
@@ -360,7 +360,7 @@ public class RegionMapping implements CacheElement {
   }
 
   @XmlAccessorType(XmlAccessType.FIELD)
-  public static class   FieldMapping implements Serializable {
+  public static class FieldMapping implements Serializable {
     @XmlAttribute(name = "field-name")
     protected String fieldName;
     @XmlAttribute(name = "column-name")
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/xml/ElementType.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/xml/ElementType.java
index 88ea477..a7d5b5f 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/xml/ElementType.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/xml/ElementType.java
@@ -20,7 +20,6 @@ import org.xml.sax.Attributes;
 
 import org.apache.geode.cache.CacheXmlException;
 import org.apache.geode.connectors.jdbc.internal.configuration.RegionMapping;
-import org.apache.geode.internal.cache.xmlcache.CacheCreation;
 import org.apache.geode.internal.cache.xmlcache.RegionCreation;
 
 public enum ElementType {
@@ -31,7 +30,7 @@ public enum ElementType {
         throw new CacheXmlException(
             "jdbc <region-mapping> elements must occur within <region> elements");
       }
-//      RegionCreation regionCreation = (RegionCreation) stack.peek();
+      // RegionCreation regionCreation = (RegionCreation) stack.peek();
       RegionMapping mapping = new RegionMapping();
       mapping.setRegionName(attributes.getValue(JdbcConnectorServiceXmlParser.REGION));
       mapping.setConnectionConfigName(
@@ -47,7 +46,7 @@ public enum ElementType {
     void endElement(Stack<Object> stack) {
       RegionMapping mapping = (RegionMapping) stack.pop();
       RegionCreation regionCreation = (RegionCreation) stack.peek();
-//      regionCreation.addRegionMapping(mapping);
+      // regionCreation.addRegionMapping(mapping);
       regionCreation.getExtensionPoint().addExtension(new RegionMappingConfiguration(mapping));
     }
   },
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcServiceConfiguration.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcServiceConfiguration.java
index fe6d26b..534a3ef 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcServiceConfiguration.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcServiceConfiguration.java
@@ -12,52 +12,41 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-//package org.apache.geode.connectors.jdbc.internal.xml;
-//
-//import java.util.ArrayList;
-//import java.util.List;
-//
-//import org.apache.geode.InternalGemFireException;
-//import org.apache.geode.cache.Cache;
-//import org.apache.geode.connectors.jdbc.internal.JdbcConnectorService;
-//import org.apache.geode.connectors.jdbc.internal.RegionMappingExistsException;
-//import org.apache.geode.connectors.jdbc.internal.configuration.RegionMapping;
-//import org.apache.geode.internal.cache.InternalCache;
-//import org.apache.geode.internal.cache.extension.Extensible;
-//import org.apache.geode.internal.cache.extension.Extension;
-//import org.apache.geode.internal.cache.xmlcache.XmlGenerator;
-//
-//public class JdbcServiceConfiguration implements Extension<Cache> {
-//
-//  private final List<RegionMapping> mappings = new ArrayList<>();
-//
-//  void addRegionMapping(RegionMapping mapping) {
-//    mappings.add(mapping);
-//  }
-//
-//  @Override
-//  public XmlGenerator<Cache> getXmlGenerator() {
-//    return null;
-//  }
-//
-//  @Override
-//  public void beforeCreate(Extensible<Cache> source, Cache cache) {
-//    // nothing
-//  }
-//
-//  @Override
-//  public void onCreate(Extensible<Cache> source, Extensible<Cache> target) {
-//    InternalCache internalCache = (InternalCache) target;
-//    JdbcConnectorService service = internalCache.getService(JdbcConnectorService.class);
-//    mappings.forEach(mapping -> createRegionMapping(service, mapping));
-//  }
-//
-//  private void createRegionMapping(JdbcConnectorService service,
-//      RegionMapping regionMapping) {
-//    try {
-//      service.createRegionMapping(regionMapping);
-//    } catch (RegionMappingExistsException e) {
-//      throw new InternalGemFireException(e);
-//    }
-//  }
-//}
+// package org.apache.geode.connectors.jdbc.internal.xml;
+//
+//
+//
+// public class JdbcServiceConfiguration implements Extension<Cache> {
+//
+// private final List<RegionMapping> mappings = new ArrayList<>();
+//
+// void addRegionMapping(RegionMapping mapping) {
+// mappings.add(mapping);
+// }
+//
+// @Override
+// public XmlGenerator<Cache> getXmlGenerator() {
+// return null;
+// }
+//
+// @Override
+// public void beforeCreate(Extensible<Cache> source, Cache cache) {
+// // nothing
+// }
+//
+// @Override
+// public void onCreate(Extensible<Cache> source, Extensible<Cache> target) {
+// InternalCache internalCache = (InternalCache) target;
+// JdbcConnectorService service = internalCache.getService(JdbcConnectorService.class);
+// mappings.forEach(mapping -> createRegionMapping(service, mapping));
+// }
+//
+// private void createRegionMapping(JdbcConnectorService service,
+// RegionMapping regionMapping) {
+// try {
+// service.createRegionMapping(regionMapping);
+// } catch (RegionMappingExistsException e) {
+// throw new InternalGemFireException(e);
+// }
+// }
+// }
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/xml/RegionMappingConfiguration.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/xml/RegionMappingConfiguration.java
index f6bb3fe..1f13e64 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/xml/RegionMappingConfiguration.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/xml/RegionMappingConfiguration.java
@@ -54,7 +54,7 @@ public class RegionMappingConfiguration implements Extension<Region<?, ?>> {
   }
 
   private void createRegionMapping(JdbcConnectorService service,
-                                   RegionMapping regionMapping) {
+      RegionMapping regionMapping) {
     try {
       service.createRegionMapping(regionMapping);
     } catch (RegionMappingExistsException e) {
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingCommandTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingCommandTest.java
index b294399..176eddf 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingCommandTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingCommandTest.java
@@ -19,7 +19,6 @@ import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -47,7 +46,7 @@ public class AlterMappingCommandTest {
   private ConfigurationPersistenceService ccService;
   private RegionMapping mapping;
   private List<RegionMapping> mappings;
-//  private ConnectorService connectorService;
+  // private ConnectorService connectorService;
   private CacheConfig cacheConfig;
 
   @ClassRule
@@ -67,7 +66,7 @@ public class AlterMappingCommandTest {
     doReturn(ccService).when(command).getConfigurationPersistenceService();
     cacheConfig = mock(CacheConfig.class);
     when(ccService.getCacheConfig("cluster")).thenReturn(cacheConfig);
-//    connectorService = mock(ConnectorService.class);
+    // connectorService = mock(ConnectorService.class);
     mappings = new ArrayList<>();
     mapping = new RegionMapping();
     mapping.setRegionName("region");
@@ -112,27 +111,27 @@ public class AlterMappingCommandTest {
     verify(command).executeAndGetFunctionResult(any(), any(), any());
   }
 
-//  @Test
-//  public void whenCCServiceIsRunningAndNoConnectorServiceFound() {
-//    gfsh.executeAndAssertThat(command, COMMAND).statusIsError()
-//        .containsOutput("mapping with name 'region' does not exist.");
-//    verify(command, times(0)).executeAndGetFunctionResult(any(), any(), any());
-//  }
-
-//  @Test
-//  public void whenCCServiceIsRunningAndNoMappingFound() {
-//    ConnectorService connectorService = mock(ConnectorService.class);
-//    when(cacheConfig.findCustomCacheElement(any(), any())).thenReturn(connectorService);
-//    gfsh.executeAndAssertThat(command, COMMAND).statusIsError()
-//        .containsOutput("mapping with name 'region' does not exist.");
-//    verify(command, times(0)).executeAndGetFunctionResult(any(), any(), any());
-//  }
+  // @Test
+  // public void whenCCServiceIsRunningAndNoConnectorServiceFound() {
+  // gfsh.executeAndAssertThat(command, COMMAND).statusIsError()
+  // .containsOutput("mapping with name 'region' does not exist.");
+  // verify(command, times(0)).executeAndGetFunctionResult(any(), any(), any());
+  // }
+
+  // @Test
+  // public void whenCCServiceIsRunningAndNoMappingFound() {
+  // ConnectorService connectorService = mock(ConnectorService.class);
+  // when(cacheConfig.findCustomCacheElement(any(), any())).thenReturn(connectorService);
+  // gfsh.executeAndAssertThat(command, COMMAND).statusIsError()
+  // .containsOutput("mapping with name 'region' does not exist.");
+  // verify(command, times(0)).executeAndGetFunctionResult(any(), any(), any());
+  // }
 
   @Test
   public void noSuccessfulResult() {
     // mapping found in CC
-//    when(cacheConfig.findCustomCacheElement(any(), any())).thenReturn(connectorService);
-//    when(connectorService.getRegionMapping()).thenReturn(mappings);
+    // when(cacheConfig.findCustomCacheElement(any(), any())).thenReturn(connectorService);
+    // when(connectorService.getRegionMapping()).thenReturn(mappings);
     mappings.add(mapping);
     // result is not successful
     when(result.isSuccessful()).thenReturn(false);
@@ -145,8 +144,8 @@ public class AlterMappingCommandTest {
   @Test
   public void successfulResult() {
     // mapping found in CC
-//    when(cacheConfig.findCustomCacheElement(any(), any())).thenReturn(connectorService);
-//    when(connectorService.getRegionMapping()).thenReturn(mappings);
+    // when(cacheConfig.findCustomCacheElement(any(), any())).thenReturn(connectorService);
+    // when(connectorService.getRegionMapping()).thenReturn(mappings);
     mappings.add(mapping);
 
     // result is not successful
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeMappingCommandTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeMappingCommandTest.java
index eb96749..b20c9ca 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeMappingCommandTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeMappingCommandTest.java
@@ -20,9 +20,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 
-import java.util.ArrayList;
 import java.util.Collections;
-import java.util.List;
 import java.util.Set;
 
 import org.junit.Before;
@@ -63,47 +61,48 @@ public class DescribeMappingCommandTest {
         .containsOutput("Invalid command");
   }
 
-//  @Test
-//  public void whenCCServiceIsRunningAndNoConnectorServiceFound() {
-//    doReturn(ccService).when(command).getConfigurationPersistenceService();
-//    gfsh.executeAndAssertThat(command, COMMAND).statusIsError()
-//        .containsOutput("mapping for region 'region' not found");
-//  }
-
-//  @Test
-//  public void whenCCServiceIsRunningAndNoConnectionFound() {
-//    doReturn(ccService).when(command).getConfigurationPersistenceService();
-//
-//    ConnectorService connectorService = mock(ConnectorService.class);
-//    when(cacheConfig.findCustomCacheElement(any(), any())).thenReturn(connectorService);
-//    gfsh.executeAndAssertThat(command, COMMAND).statusIsError()
-//        .containsOutput("mapping for region 'region' not found");
-//  }
-
-//  @Test
-//  public void whenCCIsAvailable() {
-//    doReturn(ccService).when(command).getConfigurationPersistenceService();
-//
-//    // mapping found in CC
-//    RegionMapping mapping =
-//        new RegionMapping("region", "class1", "table1", "name1", true);
-//    mapping.getFieldMapping()
-//        .add(new RegionMapping.FieldMapping("field1", "value1"));
-//    mapping.getFieldMapping()
-//        .add(new RegionMapping.FieldMapping("field2", "value2"));
-//
-//    ConnectorService connectorService = mock(ConnectorService.class);
-//    List<RegionMapping> mappings = new ArrayList<>();
-//    when(connectorService.getRegionMapping()).thenReturn(mappings);
-//    mappings.add(mapping);
-//    when(cacheConfig.findCustomCacheElement(any(), any())).thenReturn(connectorService);
-//
-//    gfsh.executeAndAssertThat(command, COMMAND).statusIsSuccess().containsOutput("region", "region")
-//        .containsOutput("connection", "name1").containsOutput("table", "table1")
-//        .containsOutput("pdx-class-name", "class1")
-//        .containsOutput("value-contains-primary-key", "true").containsOutput("field1", "value1")
-//        .containsOutput("field2", "value2");
-//  }
+  // @Test
+  // public void whenCCServiceIsRunningAndNoConnectorServiceFound() {
+  // doReturn(ccService).when(command).getConfigurationPersistenceService();
+  // gfsh.executeAndAssertThat(command, COMMAND).statusIsError()
+  // .containsOutput("mapping for region 'region' not found");
+  // }
+
+  // @Test
+  // public void whenCCServiceIsRunningAndNoConnectionFound() {
+  // doReturn(ccService).when(command).getConfigurationPersistenceService();
+  //
+  // ConnectorService connectorService = mock(ConnectorService.class);
+  // when(cacheConfig.findCustomCacheElement(any(), any())).thenReturn(connectorService);
+  // gfsh.executeAndAssertThat(command, COMMAND).statusIsError()
+  // .containsOutput("mapping for region 'region' not found");
+  // }
+
+  // @Test
+  // public void whenCCIsAvailable() {
+  // doReturn(ccService).when(command).getConfigurationPersistenceService();
+  //
+  // // mapping found in CC
+  // RegionMapping mapping =
+  // new RegionMapping("region", "class1", "table1", "name1", true);
+  // mapping.getFieldMapping()
+  // .add(new RegionMapping.FieldMapping("field1", "value1"));
+  // mapping.getFieldMapping()
+  // .add(new RegionMapping.FieldMapping("field2", "value2"));
+  //
+  // ConnectorService connectorService = mock(ConnectorService.class);
+  // List<RegionMapping> mappings = new ArrayList<>();
+  // when(connectorService.getRegionMapping()).thenReturn(mappings);
+  // mappings.add(mapping);
+  // when(cacheConfig.findCustomCacheElement(any(), any())).thenReturn(connectorService);
+  //
+  // gfsh.executeAndAssertThat(command, COMMAND).statusIsSuccess().containsOutput("region",
+  // "region")
+  // .containsOutput("connection", "name1").containsOutput("table", "table1")
+  // .containsOutput("pdx-class-name", "class1")
+  // .containsOutput("value-contains-primary-key", "true").containsOutput("field1", "value1")
+  // .containsOutput("field2", "value2");
+  // }
 
   @Test
   public void whenCCIsNotAvailableAndNoMemberExists() {
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingCommandTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingCommandTest.java
index 82a0532..10da42f 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingCommandTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ListMappingCommandTest.java
@@ -57,58 +57,58 @@ public class ListMappingCommandTest {
     when(ccService.getCacheConfig("cluster")).thenReturn(cacheConfig);
   }
 
-//  @Test
-//  public void whenCCServiceIsNotAvailable() {
-//    doReturn(null).when(command).getConfigurationPersistenceService();
-//    doReturn(Collections.emptySet()).when(command).findMembers(any(), any());
-//    gfsh.executeAndAssertThat(command, COMMAND).statusIsSuccess()
-//        .containsOutput("No mappings found");
-//  }
-
-//  @Test
-//  public void whenCCServiceIsRunningAndNoConnectorServiceFound() {
-//    doReturn(ccService).when(command).getConfigurationPersistenceService();
-//    gfsh.executeAndAssertThat(command, COMMAND).statusIsSuccess()
-//        .containsOutput("(Experimental) \\nNo mappings found");
-//  }
-
-//  @Test
-//  public void whenCCServiceIsRunningAndNoConnectionFound() {
-//    doReturn(ccService).when(command).getConfigurationPersistenceService();
-//
-//    ConnectorService connectorService = mock(ConnectorService.class);
-//    when(cacheConfig.findCustomCacheElement(any(), any())).thenReturn(connectorService);
-//    gfsh.executeAndAssertThat(command, COMMAND).statusIsSuccess()
-//        .containsOutput("(Experimental) \\nNo mappings found");
-//  }
-//
-//  @Test
-//  public void whenCCIsAvailable() {
-//    doReturn(ccService).when(command).getConfigurationPersistenceService();
-//
-//    // mappings found in CC
-//    RegionMapping mapping1 =
-//        new RegionMapping("region1", "class1", "table1", "name1", true);
-//    mapping1.getFieldMapping()
-//        .add(new RegionMapping.FieldMapping("field1", "value1"));
-//    RegionMapping mapping2 =
-//        new RegionMapping("region2", "class2", "table2", "name2", true);
-//    mapping2.getFieldMapping()
-//        .add(new RegionMapping.FieldMapping("field2", "value2"));
-//
-//    ConnectorService connectorService = new ConnectorService();
-//    connectorService.getRegionMapping().add(mapping1);
-//    connectorService.getRegionMapping().add(mapping2);
-//
-//    when(cacheConfig.findCustomCacheElement(any(), any())).thenReturn(connectorService);
-//
-//    gfsh.executeAndAssertThat(command, COMMAND).statusIsSuccess().containsOutput("region1",
-//        "region2");
-//  }
+  // @Test
+  // public void whenCCServiceIsNotAvailable() {
+  // doReturn(null).when(command).getConfigurationPersistenceService();
+  // doReturn(Collections.emptySet()).when(command).findMembers(any(), any());
+  // gfsh.executeAndAssertThat(command, COMMAND).statusIsSuccess()
+  // .containsOutput("No mappings found");
+  // }
+
+  // @Test
+  // public void whenCCServiceIsRunningAndNoConnectorServiceFound() {
+  // doReturn(ccService).when(command).getConfigurationPersistenceService();
+  // gfsh.executeAndAssertThat(command, COMMAND).statusIsSuccess()
+  // .containsOutput("(Experimental) \\nNo mappings found");
+  // }
+
+  // @Test
+  // public void whenCCServiceIsRunningAndNoConnectionFound() {
+  // doReturn(ccService).when(command).getConfigurationPersistenceService();
+  //
+  // ConnectorService connectorService = mock(ConnectorService.class);
+  // when(cacheConfig.findCustomCacheElement(any(), any())).thenReturn(connectorService);
+  // gfsh.executeAndAssertThat(command, COMMAND).statusIsSuccess()
+  // .containsOutput("(Experimental) \\nNo mappings found");
+  // }
+  //
+  // @Test
+  // public void whenCCIsAvailable() {
+  // doReturn(ccService).when(command).getConfigurationPersistenceService();
+  //
+  // // mappings found in CC
+  // RegionMapping mapping1 =
+  // new RegionMapping("region1", "class1", "table1", "name1", true);
+  // mapping1.getFieldMapping()
+  // .add(new RegionMapping.FieldMapping("field1", "value1"));
+  // RegionMapping mapping2 =
+  // new RegionMapping("region2", "class2", "table2", "name2", true);
+  // mapping2.getFieldMapping()
+  // .add(new RegionMapping.FieldMapping("field2", "value2"));
+  //
+  // ConnectorService connectorService = new ConnectorService();
+  // connectorService.getRegionMapping().add(mapping1);
+  // connectorService.getRegionMapping().add(mapping2);
+  //
+  // when(cacheConfig.findCustomCacheElement(any(), any())).thenReturn(connectorService);
+  //
+  // gfsh.executeAndAssertThat(command, COMMAND).statusIsSuccess().containsOutput("region1",
+  // "region2");
+  // }
 
   @Test
   public void whenCCIsNotAvailableAndNoMemberExists() {
-//    doReturn(null).when(command).getConfigurationPersistenceService();
+    // doReturn(null).when(command).getConfigurationPersistenceService();
     doReturn(Collections.emptySet()).when(command).findMembers(null, null);
 
     gfsh.executeAndAssertThat(command, COMMAND).statusIsSuccess()
@@ -117,7 +117,7 @@ public class ListMappingCommandTest {
 
   @Test
   public void whenCCIsNotAvailableAndMemberExists() {
-//    doReturn(null).when(command).getConfigurationPersistenceService();
+    // doReturn(null).when(command).getConfigurationPersistenceService();
     doReturn(Collections.singleton(mock(DistributedMember.class))).when(command).findMembers(null,
         null);
 
@@ -147,7 +147,7 @@ public class ListMappingCommandTest {
 
   @Test
   public void whenCCIsNotAvailableAndNoConnectionFoundOnMember() {
-//    doReturn(null).when(command).getConfigurationPersistenceService();
+    // doReturn(null).when(command).getConfigurationPersistenceService();
     doReturn(Collections.singleton(mock(DistributedMember.class))).when(command).findMembers(null,
         null);
 
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/configuration/ConnectorServiceTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/configuration/ConnectorServiceTest.java
index 15a6c07..71ee902 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/configuration/ConnectorServiceTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/configuration/ConnectorServiceTest.java
@@ -15,63 +15,55 @@
  * limitations under the License.
  */
 //
-//package org.apache.geode.connectors.jdbc.internal.configuration;
+// package org.apache.geode.connectors.jdbc.internal.configuration;
 //
-//import static org.assertj.core.api.Assertions.assertThat;
 //
-//import java.net.URL;
-//import java.util.List;
 //
-//import org.junit.Before;
-//import org.junit.Test;
 //
-//import org.apache.geode.cache.configuration.CacheConfig;
-//import org.apache.geode.internal.ClassPathLoader;
-//import org.apache.geode.internal.config.JAXBService;
 //
 //
-//public class ConnectorServiceTest {
+// public class ConnectorServiceTest {
 //
-//  private JAXBService jaxbService;
+// private JAXBService jaxbService;
 //
-//  @Before
-//  public void setUp() throws Exception {
-//    jaxbService = new JAXBService(CacheConfig.class, ConnectorService.class);
-//    // find the local jdbc-1.0.xsd
-//    URL local_xsd = ClassPathLoader.getLatest()
-//        .getResource("META-INF/schemas/geode.apache.org/schema/jdbc/jdbc-1.0.xsd");
-//    jaxbService.validateWith(local_xsd);
-//  }
+// @Before
+// public void setUp() throws Exception {
+// jaxbService = new JAXBService(CacheConfig.class, ConnectorService.class);
+// // find the local jdbc-1.0.xsd
+// URL local_xsd = ClassPathLoader.getLatest()
+// .getResource("META-INF/schemas/geode.apache.org/schema/jdbc/jdbc-1.0.xsd");
+// jaxbService.validateWith(local_xsd);
+// }
 //
-//  @Test
-//  public void regionMappingTest() {
-//    ConnectorService service = new ConnectorService();
-//    RegionMapping mapping = new RegionMapping();
-//    mapping.setConnectionConfigName("configName");
-//    mapping.setPdxClassName("pdxClassName");
-//    mapping.setRegionName("regionA");
-//    mapping.setTableName("tableName");
-//    mapping.getFieldMapping()
-//        .add(new RegionMapping.FieldMapping("field1", "column1"));
-//    mapping.getFieldMapping()
-//        .add(new RegionMapping.FieldMapping("field2", "column2"));
+// @Test
+// public void regionMappingTest() {
+// ConnectorService service = new ConnectorService();
+// RegionMapping mapping = new RegionMapping();
+// mapping.setConnectionConfigName("configName");
+// mapping.setPdxClassName("pdxClassName");
+// mapping.setRegionName("regionA");
+// mapping.setTableName("tableName");
+// mapping.getFieldMapping()
+// .add(new RegionMapping.FieldMapping("field1", "column1"));
+// mapping.getFieldMapping()
+// .add(new RegionMapping.FieldMapping("field2", "column2"));
 //
-//    service.getRegionMapping().add(mapping);
-//    String xml = jaxbService.marshall(service);
+// service.getRegionMapping().add(mapping);
+// String xml = jaxbService.marshall(service);
 //
-//    assertThat(xml).contains("jdbc:connector-service").contains("connection-name=\"configName\" ")
-//        .contains("pdx-class=\"pdxClassName\"")
-//        .contains("<jdbc:field-mapping field-name=\"field1\" column-name=\"column1\"/>");
-//    System.out.println(xml);
+// assertThat(xml).contains("jdbc:connector-service").contains("connection-name=\"configName\" ")
+// .contains("pdx-class=\"pdxClassName\"")
+// .contains("<jdbc:field-mapping field-name=\"field1\" column-name=\"column1\"/>");
+// System.out.println(xml);
 //
-//    ConnectorService service2 = jaxbService.unMarshall(xml);
-//    assertThat(service2.getRegionMapping()).hasSize(1);
-//    List<RegionMapping.FieldMapping> mappings =
-//        service2.getRegionMapping().get(0).getFieldMapping();
+// ConnectorService service2 = jaxbService.unMarshall(xml);
+// assertThat(service2.getRegionMapping()).hasSize(1);
+// List<RegionMapping.FieldMapping> mappings =
+// service2.getRegionMapping().get(0).getFieldMapping();
 //
-//    assertThat(mappings.get(0).getFieldName()).isEqualTo("field1");
-//    assertThat(mappings.get(0).getColumnName()).isEqualTo("column1");
-//    assertThat(mappings.get(1).getFieldName()).isEqualTo("field2");
-//    assertThat(mappings.get(1).getColumnName()).isEqualTo("column2");
-//  }
-//}
+// assertThat(mappings.get(0).getFieldName()).isEqualTo("field1");
+// assertThat(mappings.get(0).getColumnName()).isEqualTo("column1");
+// assertThat(mappings.get(1).getFieldName()).isEqualTo("field2");
+// assertThat(mappings.get(1).getColumnName()).isEqualTo("column2");
+// }
+// }
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/ElementTypeTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/ElementTypeTest.java
index 0137ccc..172d0d5 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/ElementTypeTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/ElementTypeTest.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.connectors.jdbc.internal.xml;
 
-//import static org.apache.geode.connectors.jdbc.internal.xml.ElementType.CONNECTION_SERVICE;
 
 import static org.apache.geode.connectors.jdbc.internal.xml.ElementType.FIELD_MAPPING;
 import static org.apache.geode.connectors.jdbc.internal.xml.ElementType.REGION_MAPPING;
@@ -37,13 +36,11 @@ import org.junit.Before;
 import org.junit.Test;
 import org.xml.sax.Attributes;
 
-import org.apache.geode.cache.Cache;
 import org.apache.geode.cache.CacheXmlException;
 import org.apache.geode.cache.Region;
 import org.apache.geode.connectors.jdbc.internal.TableMetaDataView;
 import org.apache.geode.connectors.jdbc.internal.configuration.RegionMapping;
 import org.apache.geode.internal.cache.extension.ExtensionPoint;
-import org.apache.geode.internal.cache.xmlcache.CacheCreation;
 import org.apache.geode.internal.cache.xmlcache.RegionCreation;
 
 public class ElementTypeTest {
@@ -64,13 +61,13 @@ public class ElementTypeTest {
     stack = new Stack<>();
   }
 
-//  @Test
-//  public void gettingElementTypeByNameReturnsCorrectType() {
-//    assertThat(ElementType.getTypeFromName(CONNECTION_SERVICE.getTypeName()))
-//        .isSameAs(CONNECTION_SERVICE);
-//    assertThat(ElementType.getTypeFromName(REGION_MAPPING.getTypeName())).isSameAs(REGION_MAPPING);
-//    assertThat(ElementType.getTypeFromName(FIELD_MAPPING.getTypeName())).isSameAs(FIELD_MAPPING);
-//  }
+  // @Test
+  // public void gettingElementTypeByNameReturnsCorrectType() {
+  // assertThat(ElementType.getTypeFromName(CONNECTION_SERVICE.getTypeName()))
+  // .isSameAs(CONNECTION_SERVICE);
+  // assertThat(ElementType.getTypeFromName(REGION_MAPPING.getTypeName())).isSameAs(REGION_MAPPING);
+  // assertThat(ElementType.getTypeFromName(FIELD_MAPPING.getTypeName())).isSameAs(FIELD_MAPPING);
+  // }
 
   @Test
   public void gettingElementTypeThatDoesNotExistThrowsException() {
@@ -78,32 +75,32 @@ public class ElementTypeTest {
         .isInstanceOf(IllegalArgumentException.class);
   }
 
-//  @Test
-//  public void startElementConnectionServiceThrowsWithoutCacheCreation() {
-//    stack.push(new Object());
-//
-//    assertThatThrownBy(() -> CONNECTION_SERVICE.startElement(stack, attributes))
-//        .isInstanceOf(CacheXmlException.class);
-//  }
-
-//  @Test
-//  public void startElementConnectionService() {
-//    stack.push(cacheCreation);
-//
-//    CONNECTION_SERVICE.startElement(stack, attributes);
-//
-//    verify(extensionPoint, times(1)).addExtension(any(JdbcServiceConfiguration.class));
-//    assertThat(stack.peek()).isInstanceOf(JdbcServiceConfiguration.class);
-//  }
-//
-//  @Test
-//  public void endElementConnectionService() {
-//    stack.push(new Object());
-//
-//    CONNECTION_SERVICE.endElement(stack);
-//
-//    assertThat(stack).isEmpty();
-//  }
+  // @Test
+  // public void startElementConnectionServiceThrowsWithoutCacheCreation() {
+  // stack.push(new Object());
+  //
+  // assertThatThrownBy(() -> CONNECTION_SERVICE.startElement(stack, attributes))
+  // .isInstanceOf(CacheXmlException.class);
+  // }
+
+  // @Test
+  // public void startElementConnectionService() {
+  // stack.push(cacheCreation);
+  //
+  // CONNECTION_SERVICE.startElement(stack, attributes);
+  //
+  // verify(extensionPoint, times(1)).addExtension(any(JdbcServiceConfiguration.class));
+  // assertThat(stack.peek()).isInstanceOf(JdbcServiceConfiguration.class);
+  // }
+  //
+  // @Test
+  // public void endElementConnectionService() {
+  // stack.push(new Object());
+  //
+  // CONNECTION_SERVICE.endElement(stack);
+  //
+  // assertThat(stack).isEmpty();
+  // }
 
   @Test
   public void startElementRegionMappingThrowsWithoutJdbcServiceConfiguration() {
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcServiceConfigurationTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcServiceConfigurationTest.java
index 43daf10..b6dc521 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcServiceConfigurationTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/xml/JdbcServiceConfigurationTest.java
@@ -12,58 +12,48 @@
  * or implied. See the License for the specific language governing permissions and limitations under
  * the License.
  */
-//package org.apache.geode.connectors.jdbc.internal.xml;
+// package org.apache.geode.connectors.jdbc.internal.xml;
 //
-//import static org.mockito.Mockito.mock;
-//import static org.mockito.Mockito.times;
-//import static org.mockito.Mockito.verify;
-//import static org.mockito.Mockito.verifyZeroInteractions;
-//import static org.mockito.Mockito.when;
 //
-//import org.junit.Before;
-//import org.junit.Test;
 //
-//import org.apache.geode.connectors.jdbc.internal.JdbcConnectorService;
-//import org.apache.geode.connectors.jdbc.internal.configuration.RegionMapping;
-//import org.apache.geode.internal.cache.InternalCache;
 //
-//public class JdbcServiceConfigurationTest {
+// public class JdbcServiceConfigurationTest {
 //
-//  private InternalCache cache;
-//  private JdbcConnectorService service;
-//  private RegionMapping mapping1;
-//  private RegionMapping mapping2;
+// private InternalCache cache;
+// private JdbcConnectorService service;
+// private RegionMapping mapping1;
+// private RegionMapping mapping2;
 //
-//  private JdbcServiceConfiguration configuration;
+// private JdbcServiceConfiguration configuration;
 //
-//  @Before
-//  public void setUp() throws Exception {
-//    mapping1 = mock(RegionMapping.class);
-//    mapping2 = mock(RegionMapping.class);
-//    service = mock(JdbcConnectorService.class);
-//    cache = mock(InternalCache.class);
+// @Before
+// public void setUp() throws Exception {
+// mapping1 = mock(RegionMapping.class);
+// mapping2 = mock(RegionMapping.class);
+// service = mock(JdbcConnectorService.class);
+// cache = mock(InternalCache.class);
 //
-//    when(cache.getService(JdbcConnectorService.class)).thenReturn(service);
+// when(cache.getService(JdbcConnectorService.class)).thenReturn(service);
 //
-//    configuration = new JdbcServiceConfiguration();
-//  }
+// configuration = new JdbcServiceConfiguration();
+// }
 //
-//  @Test
-//  public void onCreateWithNoConnectionsOrMappings() throws Exception {
-//    configuration.onCreate(cache, cache);
+// @Test
+// public void onCreateWithNoConnectionsOrMappings() throws Exception {
+// configuration.onCreate(cache, cache);
 //
-//    verifyZeroInteractions(service);
-//  }
+// verifyZeroInteractions(service);
+// }
 //
-//  @Test
-//  public void onCreateWithRegionMappings() throws Exception {
-//    configuration.addRegionMapping(mapping1);
-//    configuration.addRegionMapping(mapping2);
+// @Test
+// public void onCreateWithRegionMappings() throws Exception {
+// configuration.addRegionMapping(mapping1);
+// configuration.addRegionMapping(mapping2);
 //
-//    configuration.onCreate(cache, cache);
+// configuration.onCreate(cache, cache);
 //
-//    verify(service, times(1)).createRegionMapping(mapping1);
-//    verify(service, times(1)).createRegionMapping(mapping2);
-//  }
+// verify(service, times(1)).createRegionMapping(mapping1);
+// verify(service, times(1)).createRegionMapping(mapping2);
+// }
 //
-//}
+// }


[geode] 02/03: The create jdbc-mapping now checks if the region exists. The tests for create jdbc-mapping now pass.

Posted by ds...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dschneider pushed a commit to branch feature/GEODE-5935
in repository https://gitbox.apache.org/repos/asf/geode.git

commit 900eef59b7bbac4f404b4e2141d8c7d88cb1a547
Author: Darrel Schneider <ds...@pivotal.io>
AuthorDate: Fri Oct 26 11:44:16 2018 -0700

    The create jdbc-mapping now checks if the region exists.
    The tests for create jdbc-mapping now pass.
---
 .../internal/cli/CreateMappingCommandDUnitTest.java    | 18 ++++++++++--------
 .../cli/CreateMappingCommandIntegrationTest.java       | 10 +++++++---
 .../jdbc/internal/cli/CreateMappingFunction.java       | 13 +++++++++++++
 .../jdbc/internal/cli/CreateMappingFunctionTest.java   | 17 ++++++++++++++++-
 4 files changed, 46 insertions(+), 12 deletions(-)

diff --git a/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandDUnitTest.java b/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandDUnitTest.java
index 22e8808..4f23017 100644
--- a/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandDUnitTest.java
+++ b/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandDUnitTest.java
@@ -44,6 +44,7 @@ import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
 @Category({JDBCConnectorTest.class})
 public class CreateMappingCommandDUnitTest {
 
+  private static final String REGION_NAME = "testRegion";
   @Rule
   public transient GfshCommandRule gfsh = new GfshCommandRule();
 
@@ -62,12 +63,15 @@ public class CreateMappingCommandDUnitTest {
     server = startupRule.startServerVM(1, locator.getPort());
 
     gfsh.connectAndVerify(locator);
+
+    gfsh.executeAndAssertThat("create region --name=" + REGION_NAME + " --type=REPLICATE")
+        .statusIsSuccess();
   }
 
   @Test
   public void createsMappingWithAllOptions() {
     CommandStringBuilder csb = new CommandStringBuilder(CREATE_MAPPING);
-    csb.addOption(CREATE_MAPPING__REGION_NAME, "testRegion");
+    csb.addOption(CREATE_MAPPING__REGION_NAME, REGION_NAME);
     csb.addOption(CREATE_MAPPING__CONNECTION_NAME, "connection");
     csb.addOption(CREATE_MAPPING__TABLE_NAME, "myTable");
     csb.addOption(CREATE_MAPPING__PDX_CLASS_NAME, "myPdxClass");
@@ -79,15 +83,13 @@ public class CreateMappingCommandDUnitTest {
     locator.invoke(() -> {
       String xml = InternalLocator.getLocator().getConfigurationPersistenceService()
           .getConfiguration("cluster").getCacheXmlContent();
-      assertThat(xml).isNotNull().contains("jdbc:connector-service")
-          .doesNotContain("jdbc:connection").contains("jdbc:region-mapping")
-          .contains("jdbc:field-mapping");
+      assertThat(xml).isNotNull().contains("jdbc:region-mapping").contains("jdbc:field-mapping");
     });
 
     server.invoke(() -> {
       InternalCache cache = ClusterStartupRule.getCache();
       RegionMapping mapping =
-          cache.getService(JdbcConnectorService.class).getMappingForRegion("testRegion");
+          cache.getService(JdbcConnectorService.class).getMappingForRegion(REGION_NAME);
       assertThat(mapping.getConnectionConfigName()).isEqualTo("connection");
       assertThat(mapping.getTableName()).isEqualTo("myTable");
       assertThat(mapping.getPdxClassName()).isEqualTo("myPdxClass");
@@ -104,7 +106,7 @@ public class CreateMappingCommandDUnitTest {
   @Test
   public void validateThatPrimaryKeyInValueDefaultsToFalse() {
     CommandStringBuilder csb = new CommandStringBuilder(CREATE_MAPPING);
-    csb.addOption(CREATE_MAPPING__REGION_NAME, "testRegion");
+    csb.addOption(CREATE_MAPPING__REGION_NAME, REGION_NAME);
     csb.addOption(CREATE_MAPPING__CONNECTION_NAME, "connection");
     csb.addOption(CREATE_MAPPING__TABLE_NAME, "myTable");
     csb.addOption(CREATE_MAPPING__PDX_CLASS_NAME, "myPdxClass");
@@ -121,7 +123,7 @@ public class CreateMappingCommandDUnitTest {
     server.invoke(() -> {
       InternalCache cache = ClusterStartupRule.getCache();
       RegionMapping mapping =
-          cache.getService(JdbcConnectorService.class).getMappingForRegion("testRegion");
+          cache.getService(JdbcConnectorService.class).getMappingForRegion(REGION_NAME);
       assertThat(mapping.getConnectionConfigName()).isEqualTo("connection");
       assertThat(mapping.getTableName()).isEqualTo("myTable");
       assertThat(mapping.getPdxClassName()).isEqualTo("myPdxClass");
@@ -138,7 +140,7 @@ public class CreateMappingCommandDUnitTest {
   @Test
   public void createsRegionMappingWithoutFieldMap() {
     CommandStringBuilder csb = new CommandStringBuilder(CREATE_MAPPING);
-    csb.addOption(CREATE_MAPPING__REGION_NAME, "testRegion");
+    csb.addOption(CREATE_MAPPING__REGION_NAME, REGION_NAME);
     csb.addOption(CREATE_MAPPING__CONNECTION_NAME, "connection");
     csb.addOption(CREATE_MAPPING__TABLE_NAME, "myTable");
     csb.addOption(CREATE_MAPPING__PDX_CLASS_NAME, "myPdxClass");
diff --git a/geode-connectors/src/integrationTest/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandIntegrationTest.java b/geode-connectors/src/integrationTest/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandIntegrationTest.java
index e9549d2..d47b6f4 100644
--- a/geode-connectors/src/integrationTest/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandIntegrationTest.java
+++ b/geode-connectors/src/integrationTest/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandIntegrationTest.java
@@ -24,6 +24,7 @@ import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
 import org.apache.geode.cache.CacheFactory;
+import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.connectors.jdbc.internal.JdbcConnectorService;
 import org.apache.geode.connectors.jdbc.internal.RegionMappingExistsException;
 import org.apache.geode.connectors.jdbc.internal.TableMetaDataView;
@@ -58,6 +59,7 @@ public class CreateMappingCommandIntegrationTest {
 
     cache = (InternalCache) new CacheFactory().set("locators", "").set("mcast-port", "0")
         .set(ENABLE_CLUSTER_CONFIGURATION, "true").create();
+    cache.createRegionFactory(RegionShortcut.LOCAL).create(regionName);
 
     createRegionMappingCommand = new CreateMappingCommand();
     createRegionMappingCommand.setCache(cache);
@@ -92,14 +94,16 @@ public class CreateMappingCommandIntegrationTest {
 
   @Test
   public void createsRegionMappingOnceOnly() {
-    createRegionMappingCommand.createMapping(regionName, connectionName, tableName, pdxClass,
-        keyInValue, fieldMappings);
     JdbcConnectorService service = cache.getService(JdbcConnectorService.class);
+    ResultModel result;
+    result =
+        createRegionMappingCommand.createMapping(regionName, connectionName, tableName, pdxClass,
+            keyInValue, fieldMappings);
+    assertThat(result.getStatus()).isSameAs(Result.Status.OK);
 
     IgnoredException ignoredException =
         IgnoredException.addIgnoredException(RegionMappingExistsException.class.getName());
 
-    ResultModel result;
     try {
       result = createRegionMappingCommand.createMapping(regionName, connectionName, tableName,
           pdxClass, keyInValue, fieldMappings);
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingFunction.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingFunction.java
index 52f1782..ba71dfb 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingFunction.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingFunction.java
@@ -15,6 +15,7 @@
 package org.apache.geode.connectors.jdbc.internal.cli;
 
 import org.apache.geode.annotations.Experimental;
+import org.apache.geode.cache.Cache;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.connectors.jdbc.internal.JdbcConnectorService;
 import org.apache.geode.connectors.jdbc.internal.RegionMappingExistsException;
@@ -36,6 +37,8 @@ public class CreateMappingFunction extends CliFunction<RegionMapping> {
     // input
     RegionMapping regionMapping = context.getArguments();
 
+    verifyRegionExists(context, regionMapping);
+
     // action
     createRegionMapping(service, regionMapping);
 
@@ -46,6 +49,16 @@ public class CreateMappingFunction extends CliFunction<RegionMapping> {
     return new CliFunctionResult(member, true, message);
   }
 
+  private void verifyRegionExists(FunctionContext<RegionMapping> context,
+      RegionMapping regionMapping) {
+    Cache cache = context.getCache();
+    String regionName = regionMapping.getRegionName();
+    if (cache.getRegion(regionName) == null) {
+      throw new IllegalStateException(
+          "create jdbc-mapping requires that the region \"" + regionName + "\" exists.");
+    }
+  }
+
   /**
    * Creates the named connection configuration
    */
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingFunctionTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingFunctionTest.java
index faf53f8..5250419 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingFunctionTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingFunctionTest.java
@@ -16,6 +16,7 @@ package org.apache.geode.connectors.jdbc.internal.cli;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.assertj.core.api.Assertions.catchThrowable;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doThrow;
@@ -31,6 +32,7 @@ import org.junit.Before;
 import org.junit.Test;
 import org.mockito.ArgumentCaptor;
 
+import org.apache.geode.cache.Region;
 import org.apache.geode.cache.execute.FunctionContext;
 import org.apache.geode.cache.execute.ResultSender;
 import org.apache.geode.connectors.jdbc.internal.JdbcConnectorService;
@@ -50,6 +52,7 @@ public class CreateMappingFunctionTest {
   private DistributedMember distributedMember;
   private ResultSender<Object> resultSender;
   private JdbcConnectorService service;
+  private InternalCache cache;
 
   private CreateMappingFunction function;
 
@@ -57,7 +60,8 @@ public class CreateMappingFunctionTest {
   public void setUp() {
     context = mock(FunctionContext.class);
     resultSender = mock(ResultSender.class);
-    InternalCache cache = mock(InternalCache.class);
+    cache = mock(InternalCache.class);
+    Region region = mock(Region.class);
     DistributedSystem system = mock(DistributedSystem.class);
     distributedMember = mock(DistributedMember.class);
     service = mock(JdbcConnectorService.class);
@@ -67,6 +71,7 @@ public class CreateMappingFunctionTest {
     when(context.getResultSender()).thenReturn(resultSender);
     when(context.getCache()).thenReturn(cache);
     when(cache.getDistributedSystem()).thenReturn(system);
+    when(cache.getRegion(REGION_NAME)).thenReturn(region);
     when(system.getDistributedMember()).thenReturn(distributedMember);
     when(context.getArguments()).thenReturn(regionMapping);
     when(cache.getService(eq(JdbcConnectorService.class))).thenReturn(service);
@@ -114,6 +119,16 @@ public class CreateMappingFunctionTest {
   }
 
   @Test
+  public void createRegionMappingThrowsIfRegionDoesNotExist() throws Exception {
+    when(cache.getRegion(REGION_NAME)).thenReturn(null);
+
+    Throwable throwable = catchThrowable(() -> function.executeFunction(context));
+
+    assertThat(throwable).isInstanceOf(IllegalStateException.class)
+        .hasMessage("create jdbc-mapping requires that the region \"" + REGION_NAME + "\" exists.");
+  }
+
+  @Test
   public void executeCreatesMapping() throws Exception {
     function.execute(context);