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/11/01 22:53:21 UTC

[geode] 01/01: removed gfsh alter jdbc-mapping command

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

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

commit eb2a06cde29ab630c07eca47e3f680ca5ba77a66
Author: Darrel Schneider <ds...@pivotal.io>
AuthorDate: Thu Nov 1 15:52:19 2018 -0700

    removed gfsh alter jdbc-mapping command
---
 .../internal/cli/AlterMappingCommandDUnitTest.java | 147 -----------
 .../cli/AlterMappingCommandIntegrationTest.java    |  86 ------
 .../cli/JDBCConnectorFunctionsSecurityTest.java    |   1 -
 .../jdbc/internal/cli/AlterMappingCommand.java     | 120 ---------
 .../jdbc/internal/cli/AlterMappingFunction.java    |  79 ------
 .../org.springframework.shell.core.CommandMarker   |   1 -
 .../sanctioned-geode-connectors-serializables.txt  |   1 -
 .../jdbc/internal/cli/AlterMappingCommandTest.java | 116 ---------
 .../internal/cli/AlterMappingFunctionTest.java     | 288 ---------------------
 9 files changed, 839 deletions(-)

diff --git a/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingCommandDUnitTest.java b/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingCommandDUnitTest.java
deleted file mode 100644
index f93dc9d..0000000
--- a/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingCommandDUnitTest.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-package org.apache.geode.connectors.jdbc.internal.cli;
-
-import static org.apache.geode.connectors.jdbc.internal.cli.AlterMappingCommand.ALTER_MAPPING;
-import static org.apache.geode.connectors.jdbc.internal.cli.AlterMappingCommand.ALTER_MAPPING__CONNECTION_NAME;
-import static org.apache.geode.connectors.jdbc.internal.cli.AlterMappingCommand.ALTER_MAPPING__FIELD_MAPPING;
-import static org.apache.geode.connectors.jdbc.internal.cli.AlterMappingCommand.ALTER_MAPPING__PDX_CLASS_NAME;
-import static org.apache.geode.connectors.jdbc.internal.cli.AlterMappingCommand.ALTER_MAPPING__PRIMARY_KEY_IN_VALUE;
-import static org.apache.geode.connectors.jdbc.internal.cli.AlterMappingCommand.ALTER_MAPPING__REGION_NAME;
-import static org.apache.geode.connectors.jdbc.internal.cli.AlterMappingCommand.ALTER_MAPPING__TABLE_NAME;
-import static org.apache.geode.connectors.jdbc.internal.cli.CreateMappingCommand.CREATE_MAPPING;
-import static org.apache.geode.connectors.jdbc.internal.cli.CreateMappingCommand.CREATE_MAPPING__CONNECTION_NAME;
-import static org.apache.geode.connectors.jdbc.internal.cli.CreateMappingCommand.CREATE_MAPPING__FIELD_MAPPING;
-import static org.apache.geode.connectors.jdbc.internal.cli.CreateMappingCommand.CREATE_MAPPING__PDX_CLASS_NAME;
-import static org.apache.geode.connectors.jdbc.internal.cli.CreateMappingCommand.CREATE_MAPPING__REGION_NAME;
-import static org.apache.geode.connectors.jdbc.internal.cli.CreateMappingCommand.CREATE_MAPPING__TABLE_NAME;
-import static org.apache.geode.connectors.jdbc.internal.cli.CreateMappingCommand.CREATE_MAPPING__VALUE_CONTAINS_PRIMARY_KEY;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import org.apache.geode.connectors.jdbc.internal.JdbcConnectorService;
-import org.apache.geode.connectors.jdbc.internal.configuration.RegionMapping;
-import org.apache.geode.distributed.internal.InternalLocator;
-import org.apache.geode.internal.cache.InternalCache;
-import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
-import org.apache.geode.test.dunit.rules.ClusterStartupRule;
-import org.apache.geode.test.dunit.rules.MemberVM;
-import org.apache.geode.test.junit.categories.JDBCConnectorTest;
-import org.apache.geode.test.junit.rules.GfshCommandRule;
-import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
-
-@Category({JDBCConnectorTest.class})
-public class AlterMappingCommandDUnitTest {
-  private static final String REGION_NAME = "testRegion";
-
-  @Rule
-  public transient GfshCommandRule gfsh = new GfshCommandRule();
-
-  @Rule
-  public ClusterStartupRule startupRule = new ClusterStartupRule();
-
-  @Rule
-  public SerializableTestName testName = new SerializableTestName();
-
-  private MemberVM locator;
-  private MemberVM server;
-
-  @Before
-  public void before() throws Exception {
-    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, REGION_NAME);
-    csb.addOption(CREATE_MAPPING__CONNECTION_NAME, "connection");
-    csb.addOption(CREATE_MAPPING__TABLE_NAME, "myTable");
-    csb.addOption(CREATE_MAPPING__PDX_CLASS_NAME, "myPdxClass");
-    csb.addOption(CREATE_MAPPING__VALUE_CONTAINS_PRIMARY_KEY, "true");
-    csb.addOption(CREATE_MAPPING__FIELD_MAPPING, "field1:column1,field2:column2");
-
-    gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess();
-  }
-
-  @Test
-  public void altersMappingWithNewValues() throws Exception {
-    CommandStringBuilder csb = new CommandStringBuilder(ALTER_MAPPING);
-    csb.addOption(ALTER_MAPPING__REGION_NAME, REGION_NAME);
-    csb.addOption(ALTER_MAPPING__CONNECTION_NAME, "newConnection");
-    csb.addOption(ALTER_MAPPING__TABLE_NAME, "newTable");
-    csb.addOption(ALTER_MAPPING__PDX_CLASS_NAME, "newPdxClass");
-    csb.addOption(ALTER_MAPPING__PRIMARY_KEY_IN_VALUE, "false");
-    csb.addOption(ALTER_MAPPING__FIELD_MAPPING, "field3:column3,field4:column4");
-    gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess();
-
-
-    locator.invoke(() -> {
-      String xml = InternalLocator.getLocator().getConfigurationPersistenceService()
-          .getConfiguration("cluster").getCacheXmlContent();
-      assertThat(xml).isNotNull().contains("jdbc:mapping");
-    });
-
-    server.invoke(() -> {
-      InternalCache cache = ClusterStartupRule.getCache();
-      RegionMapping mapping =
-          cache.getService(JdbcConnectorService.class).getMappingForRegion(REGION_NAME);
-      assertThat(mapping.getConnectionConfigName()).isEqualTo("newConnection");
-      assertThat(mapping.getTableName()).isEqualTo("newTable");
-      assertThat(mapping.getPdxClassName()).isEqualTo("newPdxClass");
-      assertThat(mapping.isPrimaryKeyInValue()).isEqualTo(false);
-      List<RegionMapping.FieldMapping> fieldMappings = mapping.getFieldMapping();
-      assertThat(fieldMappings).hasSize(2);
-      assertThat(fieldMappings.get(0).getFieldName()).isEqualTo("field3");
-      assertThat(fieldMappings.get(0).getColumnName()).isEqualTo("column3");
-      assertThat(fieldMappings.get(1).getFieldName()).isEqualTo("field4");
-      assertThat(fieldMappings.get(1).getColumnName()).isEqualTo("column4");
-    });
-  }
-
-  @Test
-  public void altersMappingByRemovingValues() {
-    CommandStringBuilder csb = new CommandStringBuilder(ALTER_MAPPING);
-    csb.addOption(ALTER_MAPPING__REGION_NAME, REGION_NAME);
-    csb.addOption(ALTER_MAPPING__TABLE_NAME, "");
-    csb.addOption(ALTER_MAPPING__PDX_CLASS_NAME, "");
-    csb.addOption(ALTER_MAPPING__FIELD_MAPPING, "");
-
-    gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess();
-
-    locator.invoke(() -> {
-      String xml = InternalLocator.getLocator().getConfigurationPersistenceService()
-          .getConfiguration("cluster").getCacheXmlContent();
-      assertThat(xml).isNotNull().contains("jdbc:mapping");
-    });
-
-    server.invoke(() -> {
-      InternalCache cache = ClusterStartupRule.getCache();
-      RegionMapping mapping =
-          cache.getService(JdbcConnectorService.class).getMappingForRegion(REGION_NAME);
-      assertThat(mapping.getConnectionConfigName()).isEqualTo("connection");
-      assertThat(mapping.getTableName()).isNull();
-      assertThat(mapping.getPdxClassName()).isNull();
-      assertThat(mapping.getFieldMapping()).isEmpty();
-    });
-  }
-}
diff --git a/geode-connectors/src/integrationTest/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingCommandIntegrationTest.java b/geode-connectors/src/integrationTest/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingCommandIntegrationTest.java
deleted file mode 100644
index f142b4f..0000000
--- a/geode-connectors/src/integrationTest/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingCommandIntegrationTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-package org.apache.geode.connectors.jdbc.internal.cli;
-
-import static org.apache.geode.distributed.ConfigurationProperties.ENABLE_CLUSTER_CONFIGURATION;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import org.junit.After;
-import org.junit.Before;
-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.configuration.RegionMapping;
-import org.apache.geode.internal.cache.InternalCache;
-import org.apache.geode.management.cli.Result;
-import org.apache.geode.management.internal.cli.result.model.ResultModel;
-import org.apache.geode.test.junit.categories.JDBCConnectorTest;
-
-@Category({JDBCConnectorTest.class})
-public class AlterMappingCommandIntegrationTest {
-
-  private InternalCache cache;
-  private AlterMappingCommand alterRegionMappingCommand;
-
-  private String regionName;
-
-  @Before
-  public void setup() {
-    regionName = "regionName";
-    String connectionName = "connection";
-    String tableName = "testTable";
-    String pdxClass = "myPdxClass";
-    Boolean keyInValue = true;
-    String[] fieldMappings = new String[] {"field1:column1", "field2:column2"};
-
-    cache = (InternalCache) new CacheFactory().set("locators", "").set("mcast-port", "0")
-        .set(ENABLE_CLUSTER_CONFIGURATION, "true").create();
-    cache.createRegionFactory(RegionShortcut.LOCAL).create(regionName);
-    CreateMappingCommand create = new CreateMappingCommand();
-    create.setCache(cache);
-    assertThat(create.createMapping(regionName, connectionName, tableName, pdxClass, keyInValue,
-        fieldMappings).isSuccessful()).isTrue();
-
-    alterRegionMappingCommand = new AlterMappingCommand();
-    alterRegionMappingCommand.setCache(cache);
-  }
-
-  @After
-  public void tearDown() {
-    cache.close();
-  }
-
-  @Test
-  public void altersRegionMappingInService() {
-    String[] newMappings = new String[] {"field3:column3", "field4:column4"};
-    ResultModel result = alterRegionMappingCommand.alterMapping(regionName, "newConnection",
-        "newTable", "newPdxClass", false, newMappings);
-
-    assertThat(result.getStatus()).isSameAs(Result.Status.OK);
-
-    JdbcConnectorService service = cache.getService(JdbcConnectorService.class);
-    RegionMapping regionMapping = service.getMappingForRegion(regionName);
-
-    assertThat(regionMapping).isNotNull();
-    assertThat(regionMapping.getConnectionConfigName()).isEqualTo("newConnection");
-    assertThat(regionMapping.getTableName()).isEqualTo("newTable");
-    assertThat(regionMapping.getPdxClassName()).isEqualTo("newPdxClass");
-    assertThat(regionMapping.isPrimaryKeyInValue()).isFalse();
-  }
-
-}
diff --git a/geode-connectors/src/integrationTest/java/org/apache/geode/connectors/jdbc/internal/cli/JDBCConnectorFunctionsSecurityTest.java b/geode-connectors/src/integrationTest/java/org/apache/geode/connectors/jdbc/internal/cli/JDBCConnectorFunctionsSecurityTest.java
index 42b6be7..abf8bf6 100644
--- a/geode-connectors/src/integrationTest/java/org/apache/geode/connectors/jdbc/internal/cli/JDBCConnectorFunctionsSecurityTest.java
+++ b/geode-connectors/src/integrationTest/java/org/apache/geode/connectors/jdbc/internal/cli/JDBCConnectorFunctionsSecurityTest.java
@@ -61,7 +61,6 @@ public class JDBCConnectorFunctionsSecurityTest {
 
   @BeforeClass
   public static void setupClass() {
-    functionStringMap.put(new AlterMappingFunction(), "*");
     functionStringMap.put(new CreateMappingFunction(), "*");
     functionStringMap.put(new DestroyMappingFunction(), "*");
     functionStringMap.put(new InheritsDefaultPermissionsJDBCFunction(), "*");
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
deleted file mode 100644
index b095915..0000000
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingCommand.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-package org.apache.geode.connectors.jdbc.internal.cli;
-
-
-import java.util.List;
-import java.util.Set;
-
-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.connectors.jdbc.internal.configuration.RegionMapping;
-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.functions.CliFunctionResult;
-import org.apache.geode.management.internal.cli.i18n.CliStrings;
-import org.apache.geode.management.internal.cli.result.model.ResultModel;
-import org.apache.geode.management.internal.security.ResourceOperation;
-import org.apache.geode.security.ResourcePermission;
-
-@Experimental
-public class AlterMappingCommand extends SingleGfshCommand {
-  static final String ALTER_MAPPING = "alter jdbc-mapping";
-  static final String ALTER_MAPPING__HELP =
-      EXPERIMENTAL + "Alter properties for an existing jdbc mapping.";
-
-  static final String ALTER_MAPPING__REGION_NAME = "region";
-  static final String ALTER_MAPPING__REGION_NAME__HELP =
-      "Name of the region the mapping to be altered.";
-  static final String ALTER_MAPPING__PDX_CLASS_NAME = "pdx-class-name";
-  static final String ALTER_MAPPING__PDX_CLASS_NAME__HELP =
-      "Name of new pdx class for which values with be written to the database.";
-  static final String ALTER_MAPPING__TABLE_NAME = "table";
-  static final String ALTER_MAPPING__TABLE_NAME__HELP =
-      "Name of new database table for values to be written to.";
-  static final String ALTER_MAPPING__CONNECTION_NAME = "connection";
-  static final String ALTER_MAPPING__CONNECTION_NAME__HELP = "Name of new JDBC connection to use.";
-  static final String ALTER_MAPPING__PRIMARY_KEY_IN_VALUE = "primary-key-in-value";
-  static final String ALTER_MAPPING__PRIMARY_KEY_IN_VALUE__HELP =
-      "If false, the entry value does not contain the data used for the database table's primary key, instead the entry key will be used for the primary key column value.";
-  static final String ALTER_MAPPING__FIELD_MAPPING = "field-mapping";
-  static final String ALTER_MAPPING__FIELD_MAPPING__HELP =
-      "New key value pairs of entry value fields to database columns.";
-
-  @CliCommand(value = ALTER_MAPPING, help = ALTER_MAPPING__HELP)
-  @CliMetaData(relatedTopic = CliStrings.DEFAULT_TOPIC_GEODE)
-  @ResourceOperation(resource = ResourcePermission.Resource.CLUSTER,
-      operation = ResourcePermission.Operation.MANAGE)
-  public ResultModel alterMapping(
-      @CliOption(key = ALTER_MAPPING__REGION_NAME, mandatory = true,
-          help = ALTER_MAPPING__REGION_NAME__HELP) String regionName,
-      @CliOption(key = ALTER_MAPPING__CONNECTION_NAME, specifiedDefaultValue = "",
-          help = ALTER_MAPPING__CONNECTION_NAME__HELP) String connectionName,
-      @CliOption(key = ALTER_MAPPING__TABLE_NAME, help = ALTER_MAPPING__TABLE_NAME__HELP,
-          specifiedDefaultValue = "") String table,
-      @CliOption(key = ALTER_MAPPING__PDX_CLASS_NAME, help = ALTER_MAPPING__PDX_CLASS_NAME__HELP,
-          specifiedDefaultValue = "") String pdxClassName,
-      @CliOption(key = ALTER_MAPPING__PRIMARY_KEY_IN_VALUE,
-          help = ALTER_MAPPING__PRIMARY_KEY_IN_VALUE__HELP,
-          specifiedDefaultValue = "true") Boolean keyInValue,
-      @CliOption(key = ALTER_MAPPING__FIELD_MAPPING, help = ALTER_MAPPING__FIELD_MAPPING__HELP,
-          specifiedDefaultValue = "") String[] fieldMappings) {
-    // input
-    Set<DistributedMember> targetMembers = getMembers(null, null);
-    RegionMapping newMapping = new RegionMapping(regionName,
-        pdxClassName, table, connectionName, keyInValue);
-    newMapping.setFieldMapping(fieldMappings);
-
-    // action
-    List<CliFunctionResult> results =
-        executeAndGetFunctionResult(new AlterMappingFunction(), newMapping, targetMembers);
-    ResultModel result =
-        ResultModel.createMemberStatusResult(results, EXPERIMENTAL, null, false, true);
-    if (!result.isSuccessful()) {
-      return result;
-    }
-    // find the merged regionMapping from the function result
-    CliFunctionResult successResult =
-        results.stream().filter(CliFunctionResult::isSuccessful).findAny().get();
-    RegionMapping mergedMapping =
-        (RegionMapping) successResult.getResultObject();
-    result.setConfigObject(mergedMapping);
-    return result;
-  }
-
-  @Override
-  public void updateClusterConfig(String group, CacheConfig cacheConfig, Object element) {
-    RegionMapping newCacheElement = (RegionMapping) element;
-    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));
-
-    cacheConfig
-        .getRegions()
-        .stream()
-        .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
deleted file mode 100644
index e0b182d..0000000
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingFunction.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-package org.apache.geode.connectors.jdbc.internal.cli;
-
-import java.util.List;
-
-import org.apache.geode.annotations.Experimental;
-import org.apache.geode.cache.execute.FunctionContext;
-import org.apache.geode.connectors.jdbc.internal.JdbcConnectorService;
-import org.apache.geode.connectors.jdbc.internal.RegionMappingNotFoundException;
-import org.apache.geode.connectors.jdbc.internal.configuration.RegionMapping;
-import org.apache.geode.management.cli.CliFunction;
-import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
-
-@Experimental
-public class AlterMappingFunction extends CliFunction<RegionMapping> {
-
-  @Override
-  public CliFunctionResult executeFunction(FunctionContext<RegionMapping> context)
-      throws Exception {
-    JdbcConnectorService service = FunctionContextArgumentProvider.getJdbcConnectorService(context);
-    RegionMapping mapping = context.getArguments();
-    RegionMapping existingMapping =
-        service.getMappingForRegion(mapping.getRegionName());
-    if (existingMapping == null) {
-      throw new RegionMappingNotFoundException(
-          "RegionMapping for region " + mapping.getRegionName() + " was not found");
-    }
-
-    // action
-    RegionMapping alteredMapping = alterRegionMapping(mapping, existingMapping);
-    service.replaceRegionMapping(alteredMapping);
-
-    // output
-    return new CliFunctionResult(context.getMemberName(), alteredMapping, null);
-  }
-
-  RegionMapping alterRegionMapping(RegionMapping regionMapping,
-      RegionMapping existingMapping) {
-    String connectionName = getValue(regionMapping.getConnectionConfigName(),
-        existingMapping.getConnectionConfigName());
-    String table = getValue(regionMapping.getTableName(), existingMapping.getTableName());
-    String pdxClassName =
-        getValue(regionMapping.getPdxClassName(), existingMapping.getPdxClassName());
-    Boolean keyInValue = regionMapping.isPrimaryKeyInValue() == null
-        ? existingMapping.isPrimaryKeyInValue() : regionMapping.isPrimaryKeyInValue();
-
-    List<RegionMapping.FieldMapping> fieldMappings =
-        regionMapping.getFieldMapping();
-    if (!regionMapping.isFieldMappingModified()) {
-      fieldMappings = existingMapping.getFieldMapping();
-    }
-    RegionMapping alteredMapping = new RegionMapping(
-        existingMapping.getRegionName(), pdxClassName, table, connectionName, keyInValue);
-    alteredMapping.getFieldMapping().addAll(fieldMappings);
-    return alteredMapping;
-  }
-
-  private String getValue(String newValue, String existingValue) {
-    // if newValue is null use the value already in the config
-    // if newValue is the empty string, then "unset" it by returning null
-    if (newValue == null) {
-      return existingValue;
-    }
-    return newValue.isEmpty() ? null : newValue;
-  }
-}
diff --git a/geode-connectors/src/main/resources/META-INF/services/org.springframework.shell.core.CommandMarker b/geode-connectors/src/main/resources/META-INF/services/org.springframework.shell.core.CommandMarker
index 27742b3..bf3e1eb 100644
--- a/geode-connectors/src/main/resources/META-INF/services/org.springframework.shell.core.CommandMarker
+++ b/geode-connectors/src/main/resources/META-INF/services/org.springframework.shell.core.CommandMarker
@@ -16,7 +16,6 @@
 #
 # JDBC Connector Extension commands
 org.apache.geode.connectors.jdbc.internal.cli.CreateMappingCommand
-org.apache.geode.connectors.jdbc.internal.cli.AlterMappingCommand
 org.apache.geode.connectors.jdbc.internal.cli.DestroyMappingCommand
 org.apache.geode.connectors.jdbc.internal.cli.DescribeMappingCommand
 org.apache.geode.connectors.jdbc.internal.cli.ListMappingCommand
diff --git a/geode-connectors/src/main/resources/org/apache/geode/internal/sanctioned-geode-connectors-serializables.txt b/geode-connectors/src/main/resources/org/apache/geode/internal/sanctioned-geode-connectors-serializables.txt
index 0e719ef..5fd7867 100755
--- a/geode-connectors/src/main/resources/org/apache/geode/internal/sanctioned-geode-connectors-serializables.txt
+++ b/geode-connectors/src/main/resources/org/apache/geode/internal/sanctioned-geode-connectors-serializables.txt
@@ -1,7 +1,6 @@
 org/apache/geode/connectors/jdbc/JdbcConnectorException,true,1
 org/apache/geode/connectors/jdbc/internal/RegionMappingExistsException,false
 org/apache/geode/connectors/jdbc/internal/RegionMappingNotFoundException,false
-org/apache/geode/connectors/jdbc/internal/cli/AlterMappingFunction,false
 org/apache/geode/connectors/jdbc/internal/cli/CreateMappingFunction,false
 org/apache/geode/connectors/jdbc/internal/cli/DescribeMappingFunction,false
 org/apache/geode/connectors/jdbc/internal/cli/DestroyMappingFunction,false
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
deleted file mode 100644
index ccb3e32..0000000
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingCommandTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-package org.apache.geode.connectors.jdbc.internal.cli;
-
-import static org.assertj.core.api.Assertions.assertThat;
-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.verify;
-import static org.mockito.Mockito.when;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.junit.Before;
-import org.junit.ClassRule;
-import org.junit.Test;
-
-import org.apache.geode.connectors.jdbc.internal.configuration.RegionMapping;
-import org.apache.geode.management.internal.cli.GfshParseResult;
-import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
-import org.apache.geode.test.junit.rules.GfshParserRule;
-
-public class AlterMappingCommandTest {
-  public static final String COMMAND = "alter jdbc-mapping --region='region' ";
-  private AlterMappingCommand command;
-  private List<CliFunctionResult> results;
-  private CliFunctionResult result;
-  private RegionMapping mapping;
-  private List<RegionMapping> mappings;
-
-  @ClassRule
-  public static GfshParserRule gfsh = new GfshParserRule();
-
-  @Before
-  public void setUp() throws Exception {
-    command = spy(AlterMappingCommand.class);
-    results = new ArrayList<>();
-    doReturn(Collections.EMPTY_SET).when(command).getMembers(any(), any());
-    doReturn(results).when(command).executeAndGetFunctionResult(any(), any(), any());
-    result = mock(CliFunctionResult.class);
-    when(result.isSuccessful()).thenReturn(true);
-    when(result.getMemberIdOrName()).thenReturn("memberName");
-    when(result.getStatusMessage()).thenReturn("message");
-    mappings = new ArrayList<>();
-    mapping = new RegionMapping();
-    mapping.setRegionName("region");
-  }
-
-  @Test
-  public void requiredParameter() {
-    gfsh.executeAndAssertThat(command, "alter jdbc-mapping").statusIsError()
-        .containsOutput("Invalid command");
-  }
-
-  @Test
-  public void valuesAreParsedAsExpected() {
-    GfshParseResult parseResult = gfsh.parse("alter jdbc-mapping --region='region' --connection='' "
-        + "--table='' --pdx-class-name='' " + "--field-mapping=''");
-
-    String[] mappings = (String[]) parseResult.getParamValue("field-mapping");
-    assertThat(mappings).hasSize(1);
-    assertThat(mappings[0]).isEqualTo("");
-    assertThat(parseResult.getParamValue("region")).isEqualTo("region");
-    assertThat(parseResult.getParamValue("connection")).isEqualTo("");
-    assertThat(parseResult.getParamValue("table")).isEqualTo("");
-    assertThat(parseResult.getParamValue("pdx-class-name")).isEqualTo("");
-
-    parseResult = gfsh.parse("alter jdbc-mapping --region=testRegion-1 --connection=connection "
-        + "--table=myTable --pdx-class-name=myPdxClass " + "--field-mapping");
-    mappings = (String[]) parseResult.getParamValue("field-mapping");
-    assertThat(mappings).hasSize(1);
-    assertThat(mappings[0]).isEqualTo("");
-
-    parseResult = gfsh.parse("alter jdbc-mapping --region=testRegion-1 --connection=connection "
-        + "--table=myTable --pdx-class-name=myPdxClass ");
-    mappings = (String[]) parseResult.getParamValue("field-mapping");
-    assertThat(mappings).isNull();
-  }
-
-  @Test
-  public void noSuccessfulResult() {
-    mappings.add(mapping);
-    // result is not successful
-    when(result.isSuccessful()).thenReturn(false);
-    results.add(result);
-
-    gfsh.executeAndAssertThat(command, COMMAND).statusIsError();
-    verify(command).executeAndGetFunctionResult(any(), any(), any());
-  }
-
-  @Test
-  public void successfulResult() {
-    mappings.add(mapping);
-    // result is successful
-    when(result.isSuccessful()).thenReturn(true);
-    results.add(result);
-
-    gfsh.executeAndAssertThat(command, COMMAND).statusIsSuccess();
-    verify(command).executeAndGetFunctionResult(any(), any(), any());
-  }
-}
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingFunctionTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingFunctionTest.java
deleted file mode 100644
index 7b94ad7..0000000
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterMappingFunctionTest.java
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-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.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doAnswer;
-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;
-
-import java.io.Serializable;
-import java.util.List;
-
-import org.apache.commons.lang.SerializationUtils;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.ArgumentCaptor;
-
-import org.apache.geode.cache.execute.FunctionContext;
-import org.apache.geode.cache.execute.ResultSender;
-import org.apache.geode.connectors.jdbc.internal.JdbcConnectorService;
-import org.apache.geode.connectors.jdbc.internal.RegionMappingNotFoundException;
-import org.apache.geode.connectors.jdbc.internal.configuration.RegionMapping;
-import org.apache.geode.distributed.DistributedMember;
-import org.apache.geode.distributed.DistributedSystem;
-import org.apache.geode.internal.cache.InternalCache;
-import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
-
-public class AlterMappingFunctionTest {
-
-  private static final String REGION_NAME = "testRegion";
-
-  private RegionMapping regionMapping;
-  private RegionMapping existingMapping;
-  private RegionMapping mappingToAlter;
-  private FunctionContext<RegionMapping> context;
-  private ResultSender<Object> resultSender;
-  private JdbcConnectorService service;
-
-  private AlterMappingFunction function;
-
-  @Before
-  public void setUp() {
-    context = mock(FunctionContext.class);
-    resultSender = mock(ResultSender.class);
-    InternalCache cache = mock(InternalCache.class);
-    DistributedSystem system = mock(DistributedSystem.class);
-    DistributedMember distributedMember = mock(DistributedMember.class);
-    service = mock(JdbcConnectorService.class);
-
-    regionMapping = new RegionMapping(REGION_NAME, null, null, null, null);
-    existingMapping = new RegionMapping(REGION_NAME, null, null, null, null);
-    mappingToAlter =
-        new RegionMapping(REGION_NAME, "pdxClass", "myTable", "connection", true);
-    mappingToAlter.setFieldMapping(new String[] {"field1:column1", "field2:column2"});
-
-    when(context.getResultSender()).thenReturn(resultSender);
-    when(context.getCache()).thenReturn(cache);
-    when(cache.getDistributedSystem()).thenReturn(system);
-    when(system.getDistributedMember()).thenReturn(distributedMember);
-    when(context.getArguments()).thenReturn(regionMapping);
-    when(cache.getService(eq(JdbcConnectorService.class))).thenReturn(service);
-    function = new AlterMappingFunction();
-  }
-
-  @Test
-  public void isHAReturnsFalse() {
-    assertThat(function.isHA()).isFalse();
-  }
-
-  @Test
-  public void getIdReturnsNameOfClass() {
-    assertThat(function.getId()).isEqualTo(function.getClass().getName());
-  }
-
-  @Test
-  public void serializes() {
-    Serializable original = function;
-
-    Object copy = SerializationUtils.clone(original);
-
-    assertThat(copy).isNotSameAs(original).isInstanceOf(AlterMappingFunction.class);
-  }
-
-  @Test
-  public void alterMissingRegionMappingThrowsRegionMappingNotFound() {
-    AlterMappingFunction alterFunction = mock(AlterMappingFunction.class);
-    doAnswer((m) -> {
-      throw new RegionMappingNotFoundException();
-    }).when(alterFunction).alterRegionMapping(any(),
-        any());
-
-    assertThatThrownBy(() -> alterFunction.alterRegionMapping(regionMapping, existingMapping))
-        .isInstanceOf(RegionMappingNotFoundException.class);
-  }
-
-  @Test
-  public void executeInvokesReplaceOnService() throws Exception {
-    when(service.getMappingForRegion(REGION_NAME)).thenReturn(existingMapping);
-
-    AlterMappingFunction function = spy(new AlterMappingFunction());
-    function.execute(context);
-
-    verify(service, times(1)).replaceRegionMapping(any());
-  }
-
-  @Test
-  public void executeReportsErrorIfRegionMappingNotFound() throws Exception {
-    doAnswer((m) -> {
-      throw new RegionMappingNotFoundException();
-    }).when(service)
-        .replaceRegionMapping(eq(regionMapping));
-
-    function.execute(context);
-
-    ArgumentCaptor<CliFunctionResult> argument = ArgumentCaptor.forClass(CliFunctionResult.class);
-    verify(resultSender, times(1)).lastResult(argument.capture());
-    assertThat(argument.getValue().getStatusMessage()).contains(REGION_NAME);
-  }
-
-  @Test
-  public void alterMappingPdxClassName() {
-    RegionMapping newConfigValues =
-        new RegionMapping(REGION_NAME, "newClassName", null, null, null);
-
-    RegionMapping alteredConfig =
-        function.alterRegionMapping(newConfigValues, mappingToAlter);
-
-    assertThat(alteredConfig.getRegionName()).isEqualTo(REGION_NAME);
-    assertThat(alteredConfig.getPdxClassName()).isEqualTo("newClassName");
-    assertThat(alteredConfig.getTableName()).isEqualTo("myTable");
-    assertThat(alteredConfig.getConnectionConfigName()).isEqualTo("connection");
-    assertThat(alteredConfig.isPrimaryKeyInValue()).isTrue();
-
-    assertFieldMapping(alteredConfig);
-  }
-
-  private void assertFieldMapping(RegionMapping alteredConfig) {
-    List<RegionMapping.FieldMapping> fieldMappings =
-        alteredConfig.getFieldMapping();
-    assertThat(fieldMappings).hasSize(2);
-    assertThat(fieldMappings.get(0).getFieldName()).isEqualTo("field1");
-    assertThat(fieldMappings.get(0).getColumnName()).isEqualTo("column1");
-    assertThat(fieldMappings.get(1).getFieldName()).isEqualTo("field2");
-    assertThat(fieldMappings.get(1).getColumnName()).isEqualTo("column2");
-  }
-
-  @Test
-  public void alterRegionMappingTable() {
-    RegionMapping newConfigValues =
-        new RegionMapping(REGION_NAME, null, "newTable", null, null);
-
-    RegionMapping alteredConfig =
-        function.alterRegionMapping(newConfigValues, mappingToAlter);
-
-    assertThat(alteredConfig.getRegionName()).isEqualTo(REGION_NAME);
-    assertThat(alteredConfig.getPdxClassName()).isEqualTo("pdxClass");
-    assertThat(alteredConfig.getTableName()).isEqualTo("newTable");
-    assertThat(alteredConfig.getConnectionConfigName()).isEqualTo("connection");
-    assertThat(alteredConfig.isPrimaryKeyInValue()).isTrue();
-    assertFieldMapping(alteredConfig);
-  }
-
-  @Test
-  public void alterRegionMappingPrimaryKeyInValue() {
-    RegionMapping newConfigValues =
-        new RegionMapping(REGION_NAME, null, null, null, false);
-
-    RegionMapping alteredConfig =
-        function.alterRegionMapping(newConfigValues, mappingToAlter);
-
-    assertThat(alteredConfig.getRegionName()).isEqualTo(REGION_NAME);
-    assertThat(alteredConfig.getPdxClassName()).isEqualTo("pdxClass");
-    assertThat(alteredConfig.getTableName()).isEqualTo("myTable");
-    assertThat(alteredConfig.getConnectionConfigName()).isEqualTo("connection");
-    assertThat(alteredConfig.isPrimaryKeyInValue()).isFalse();
-    assertFieldMapping(alteredConfig);
-  }
-
-  @Test
-  public void alterRegionMappingConnectionName() {
-    RegionMapping newConfigValues =
-        new RegionMapping(REGION_NAME, null, null, "newConnection", null);
-
-    RegionMapping alteredConfig =
-        function.alterRegionMapping(newConfigValues, mappingToAlter);
-
-    assertThat(alteredConfig.getRegionName()).isEqualTo(REGION_NAME);
-    assertThat(alteredConfig.getPdxClassName()).isEqualTo("pdxClass");
-    assertThat(alteredConfig.getTableName()).isEqualTo("myTable");
-    assertThat(alteredConfig.getConnectionConfigName()).isEqualTo("newConnection");
-    assertThat(alteredConfig.isPrimaryKeyInValue()).isTrue();
-    assertFieldMapping(alteredConfig);
-  }
-
-  @Test
-  public void alterRegionMappingFieldMappings() {
-    RegionMapping newConfigValues =
-        new RegionMapping(REGION_NAME, null, null, null, null);
-    newConfigValues.setFieldMapping(new String[] {"field5:column5", "field6:column6"});
-
-
-    RegionMapping alteredConfig =
-        function.alterRegionMapping(newConfigValues, mappingToAlter);
-
-    assertThat(alteredConfig.getRegionName()).isEqualTo(REGION_NAME);
-    assertThat(alteredConfig.getPdxClassName()).isEqualTo("pdxClass");
-    assertThat(alteredConfig.getTableName()).isEqualTo("myTable");
-    assertThat(alteredConfig.getConnectionConfigName()).isEqualTo("connection");
-    assertThat(alteredConfig.isPrimaryKeyInValue()).isTrue();
-    List<RegionMapping.FieldMapping> fieldMappings =
-        alteredConfig.getFieldMapping();
-    assertThat(fieldMappings).hasSize(2);
-    assertThat(fieldMappings)
-        .contains(new RegionMapping.FieldMapping("field5", "column5"));
-    assertThat(fieldMappings)
-        .contains(new RegionMapping.FieldMapping("field6", "column6"));
-  }
-
-  @Test
-  public void alterRegionMappingRemoveFieldMappings() {
-    RegionMapping newConfigValues =
-        new RegionMapping(REGION_NAME, null, null, null, null);
-    newConfigValues.setFieldMapping(new String[0]);
-    RegionMapping alteredConfig =
-        function.alterRegionMapping(newConfigValues, mappingToAlter);
-
-    assertThat(alteredConfig.getRegionName()).isEqualTo(REGION_NAME);
-    assertThat(alteredConfig.getPdxClassName()).isEqualTo("pdxClass");
-    assertThat(alteredConfig.getTableName()).isEqualTo("myTable");
-    assertThat(alteredConfig.getConnectionConfigName()).isEqualTo("connection");
-    assertThat(alteredConfig.isPrimaryKeyInValue()).isTrue();
-    List<RegionMapping.FieldMapping> fieldMappings =
-        alteredConfig.getFieldMapping();
-    assertThat(fieldMappings).hasSize(0);
-  }
-
-  @Test
-  public void alterRegionMappingWithEmptyString() {
-    RegionMapping newConfigValues =
-        new RegionMapping(REGION_NAME, null, null, null, null);
-    newConfigValues.setFieldMapping(new String[] {""});
-    RegionMapping alteredConfig =
-        function.alterRegionMapping(newConfigValues, mappingToAlter);
-
-    assertThat(alteredConfig.getRegionName()).isEqualTo(REGION_NAME);
-    assertThat(alteredConfig.getPdxClassName()).isEqualTo("pdxClass");
-    assertThat(alteredConfig.getTableName()).isEqualTo("myTable");
-    assertThat(alteredConfig.getConnectionConfigName()).isEqualTo("connection");
-    assertThat(alteredConfig.isPrimaryKeyInValue()).isTrue();
-    List<RegionMapping.FieldMapping> fieldMappings =
-        alteredConfig.getFieldMapping();
-    assertThat(fieldMappings).hasSize(0);
-  }
-
-  @Test
-  public void alterRegionMappingWithNothingToAlter() {
-    RegionMapping newConfigValues =
-        new RegionMapping(REGION_NAME, null, null, null, null);
-
-    RegionMapping alteredConfig =
-        function.alterRegionMapping(newConfigValues, mappingToAlter);
-
-    assertThat(alteredConfig.getRegionName()).isEqualTo(REGION_NAME);
-    assertThat(alteredConfig.getPdxClassName()).isEqualTo("pdxClass");
-    assertThat(alteredConfig.getTableName()).isEqualTo("myTable");
-    assertThat(alteredConfig.getConnectionConfigName()).isEqualTo("connection");
-    assertThat(alteredConfig.isPrimaryKeyInValue()).isTrue();
-    assertFieldMapping(alteredConfig);
-  }
-}