You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ji...@apache.org on 2019/04/10 00:24:48 UTC

[geode] branch develop updated: GEODE-6612: make group an attribute in CacheElement (#3437)

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

jinmeiliao pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/develop by this push:
     new c5e52ef  GEODE-6612: make group an attribute in CacheElement (#3437)
c5e52ef is described below

commit c5e52ef4f738b2f197c83deb290a3ad86ee0fbf3
Author: jinmeiliao <ji...@pivotal.io>
AuthorDate: Tue Apr 9 17:24:33 2019 -0700

    GEODE-6612: make group an attribute in CacheElement (#3437)
---
 .../ManagementClientTestCreateRegion.java          |  2 +-
 .../ClientClusterManagementServiceDunitTest.java   | 11 +++++-----
 .../jdbc/internal/configuration/RegionMapping.java |  2 +-
 .../internal/api/RegionAPIDUnitTest.java           |  6 +++---
 .../api/LocatorClusterManagementService.java       | 11 ++++------
 .../sanctioned-geode-core-serializables.txt        |  1 +
 .../geode/internal/config/JAXBServiceTest.java     |  4 ++--
 .../api/LocatorClusterManagementServiceTest.java   | 10 ++++-----
 .../lucene/management/configuration/Index.java     |  2 +-
 .../cache/configuration/BasicRegionConfig.java     |  2 +-
 .../geode/cache/configuration/CacheConfig.java     |  2 +-
 .../geode/cache/configuration/CacheElement.java    | 24 ++++++++++++++++++----
 .../geode/cache/configuration/DiskStoreType.java   |  2 +-
 .../cache/configuration/JndiBindingsType.java      |  4 ++--
 .../geode/cache/configuration/RegionConfig.java    |  2 +-
 .../management/api/ClusterManagementService.java   | 22 ++++----------------
 .../management/configuration/MemberConfig.java     |  2 +-
 .../internal/ClientClusterManagementService.java   | 10 ++++-----
 .../controllers/RegionManagementController.java    |  6 ++----
 19 files changed, 62 insertions(+), 63 deletions(-)

diff --git a/geode-assembly/src/acceptanceTest/resources/ManagementClientTestCreateRegion.java b/geode-assembly/src/acceptanceTest/resources/ManagementClientTestCreateRegion.java
index 2e99273..a5e18fb 100644
--- a/geode-assembly/src/acceptanceTest/resources/ManagementClientTestCreateRegion.java
+++ b/geode-assembly/src/acceptanceTest/resources/ManagementClientTestCreateRegion.java
@@ -39,7 +39,7 @@ public class ManagementClientCreateRegion {
     config.setName(regionName);
     config.setType(RegionType.REPLICATE);
 
-    ClusterManagementResult result = cms.create(config, "cluster");
+    ClusterManagementResult result = cms.create(config);
 
     if (!result.isSuccessful()) {
       throw new RuntimeException(
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ClientClusterManagementServiceDunitTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ClientClusterManagementServiceDunitTest.java
index ccaaad2..f5cfcde 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ClientClusterManagementServiceDunitTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/ClientClusterManagementServiceDunitTest.java
@@ -56,13 +56,13 @@ public class ClientClusterManagementServiceDunitTest {
     BasicRegionConfig region = new BasicRegionConfig();
     region.setName("customer");
 
-    ClusterManagementResult result = cmsClient.create(region, "");
+    ClusterManagementResult result = cmsClient.create(region);
 
     assertThat(result.isSuccessful()).isTrue();
     assertThat(result.getStatusCode()).isEqualTo(ClusterManagementResult.StatusCode.OK);
     assertThat(result.getMemberStatuses()).containsOnlyKeys("server-1", "server-2");
 
-    result = cmsClient.create(region, "");
+    result = cmsClient.create(region);
     assertThat(result.isSuccessful()).isFalse();
     assertThat(result.getStatusCode()).isEqualTo(ClusterManagementResult.StatusCode.ENTITY_EXISTS);
   }
@@ -72,7 +72,7 @@ public class ClientClusterManagementServiceDunitTest {
     BasicRegionConfig region = new BasicRegionConfig();
     region.setName("orders");
 
-    ClusterManagementResult result = cmsClient.create(region, null);
+    ClusterManagementResult result = cmsClient.create(region);
 
     assertThat(result.isSuccessful()).isTrue();
     assertThat(result.getStatusCode()).isEqualTo(ClusterManagementResult.StatusCode.OK);
@@ -85,7 +85,7 @@ public class ClientClusterManagementServiceDunitTest {
     BasicRegionConfig region = new BasicRegionConfig();
     region.setName("__test");
 
-    ClusterManagementResult result = cmsClient.create(region, "");
+    ClusterManagementResult result = cmsClient.create(region);
     assertThat(result.isSuccessful()).isFalse();
     assertThat(result.getStatusCode())
         .isEqualTo(ClusterManagementResult.StatusCode.ILLEGAL_ARGUMENT);
@@ -95,8 +95,9 @@ public class ClientClusterManagementServiceDunitTest {
   public void createRegionWithGroup() {
     BasicRegionConfig region = new BasicRegionConfig();
     region.setName("company");
+    region.setGroup(groupA);
 
-    ClusterManagementResult result = cmsClient.create(region, groupA);
+    ClusterManagementResult result = cmsClient.create(region);
 
     assertThat(result.isSuccessful()).isTrue();
     assertThat(result.getStatusCode()).isEqualTo(ClusterManagementResult.StatusCode.OK);
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 6d8e3d1..aedbfe9 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
@@ -40,7 +40,7 @@ import org.apache.geode.cache.configuration.XSDRootElement;
 @XmlRootElement(name = "mapping", namespace = "http://geode.apache.org/schema/jdbc")
 @XSDRootElement(namespace = "http://geode.apache.org/schema/jdbc",
     schemaLocation = "http://geode.apache.org/schema/jdbc/jdbc-1.0.xsd")
-public class RegionMapping implements CacheElement {
+public class RegionMapping extends CacheElement {
 
   @XmlElement(name = "field-mapping", namespace = "http://geode.apache.org/schema/jdbc")
   protected final List<FieldMapping> fieldMappings = new ArrayList<>();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/api/RegionAPIDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/api/RegionAPIDUnitTest.java
index 6d451b6..34f8cc5 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/api/RegionAPIDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/api/RegionAPIDUnitTest.java
@@ -65,7 +65,7 @@ public class RegionAPIDUnitTest {
       config.setName(regionName);
       config.setType(RegionType.PARTITION);
       ClusterManagementResult result = ClusterStartupRule.getLocator().getClusterManagementService()
-          .create(config, "cluster");
+          .create(config);
       assertThat(result.isSuccessful()).isTrue();
     });
 
@@ -90,7 +90,7 @@ public class RegionAPIDUnitTest {
       config.setName(regionName);
       config.setType(RegionType.REPLICATE);
       ClusterManagementResult result = ClusterStartupRule.getLocator().getClusterManagementService()
-          .create(config, "cluster");
+          .create(config);
       assertThat(result.isSuccessful()).isTrue();
     });
 
@@ -106,7 +106,7 @@ public class RegionAPIDUnitTest {
       BasicRegionConfig config = new BasicRegionConfig();
       config.setName(regionName);
       ClusterManagementResult result = ClusterStartupRule.getLocator().getClusterManagementService()
-          .create(config, "cluster");
+          .create(config);
       assertThat(result.isSuccessful()).isTrue();
     });
 
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/api/LocatorClusterManagementService.java b/geode-core/src/main/java/org/apache/geode/management/internal/api/LocatorClusterManagementService.java
index 5c231c3..d64b06c 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/api/LocatorClusterManagementService.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/api/LocatorClusterManagementService.java
@@ -25,7 +25,6 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import org.apache.commons.lang3.NotImplementedException;
-import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.Logger;
 
 import org.apache.geode.annotations.VisibleForTesting;
@@ -79,10 +78,8 @@ public class LocatorClusterManagementService implements ClusterManagementService
   }
 
   @Override
-  public ClusterManagementResult create(CacheElement config, String group) {
-    if (StringUtils.isBlank(group)) {
-      group = "cluster";
-    }
+  public ClusterManagementResult create(CacheElement config) {
+    String group = config.getGroup();
 
     if (persistenceService == null) {
       return new ClusterManagementResult(false,
@@ -145,12 +142,12 @@ public class LocatorClusterManagementService implements ClusterManagementService
   }
 
   @Override
-  public ClusterManagementResult delete(CacheElement config, String group) {
+  public ClusterManagementResult delete(CacheElement config) {
     throw new NotImplementedException("Not implemented");
   }
 
   @Override
-  public ClusterManagementResult update(CacheElement config, String group) {
+  public ClusterManagementResult update(CacheElement config) {
     throw new NotImplementedException("Not implemented");
   }
 
diff --git a/geode-core/src/main/resources/org/apache/geode/internal/sanctioned-geode-core-serializables.txt b/geode-core/src/main/resources/org/apache/geode/internal/sanctioned-geode-core-serializables.txt
index bf8f741..f0c4d90 100644
--- a/geode-core/src/main/resources/org/apache/geode/internal/sanctioned-geode-core-serializables.txt
+++ b/geode-core/src/main/resources/org/apache/geode/internal/sanctioned-geode-core-serializables.txt
@@ -122,6 +122,7 @@ org/apache/geode/cache/client/internal/TXSynchronizationOp$CompletionType,false
 org/apache/geode/cache/client/internal/pooling/ConnectionDestroyedException,true,-6918516787578041316
 org/apache/geode/cache/configuration/BasicRegionConfig,false,name:java/lang/String,refid:java/lang/String,regionAttributes:org/apache/geode/cache/configuration/RegionAttributesType
 org/apache/geode/cache/configuration/CacheConfig$AsyncEventQueue,false,asyncEventListener:org/apache/geode/cache/configuration/DeclarableType,batchSize:java/lang/String,batchTimeInterval:java/lang/String,diskStoreName:java/lang/String,diskSynchronous:java/lang/Boolean,dispatcherThreads:java/lang/String,enableBatchConflation:java/lang/Boolean,forwardExpirationDestroy:java/lang/Boolean,gatewayEventFilters:java/util/List,gatewayEventSubstitutionFilter:org/apache/geode/cache/configuration/De [...]
+org/apache/geode/cache/configuration/CacheElement,false,group:java/lang/String
 org/apache/geode/cache/configuration/ClassNameType,false,className:java/lang/String
 org/apache/geode/cache/configuration/DeclarableType,false,parameters:java/util/List
 org/apache/geode/cache/configuration/DiskDirsType,false,diskDirs:java/util/List
diff --git a/geode-core/src/test/java/org/apache/geode/internal/config/JAXBServiceTest.java b/geode-core/src/test/java/org/apache/geode/internal/config/JAXBServiceTest.java
index e67f085..99dc8e8 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/config/JAXBServiceTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/config/JAXBServiceTest.java
@@ -226,7 +226,7 @@ public class JAXBServiceTest {
   @XmlAccessorType(XmlAccessType.FIELD)
   @XmlType(name = "", propOrder = {"id", "value"})
   @XmlRootElement(name = "custom-one", namespace = "http://geode.apache.org/schema/CustomOne")
-  public static class ElementOne implements CacheElement {
+  public static class ElementOne extends CacheElement {
     @XmlElement(name = "id", namespace = "http://geode.apache.org/schema/CustomOne")
     private String id;
     @XmlElement(name = "value", namespace = "http://geode.apache.org/schema/CustomOne")
@@ -259,7 +259,7 @@ public class JAXBServiceTest {
   @XmlAccessorType(XmlAccessType.FIELD)
   @XmlType(name = "", propOrder = {"id", "value"})
   @XmlRootElement(name = "custom-two", namespace = "http://geode.apache.org/schema/CustomTwo")
-  public static class ElementTwo implements CacheElement {
+  public static class ElementTwo extends CacheElement {
     @XmlElement(name = "id", namespace = "http://geode.apache.org/schema/CustomTwo")
     private String id;
     @XmlElement(name = "value", namespace = "http://geode.apache.org/schema/CustomTwo")
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/api/LocatorClusterManagementServiceTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/api/LocatorClusterManagementServiceTest.java
index d17a1bf..9ffb352 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/api/LocatorClusterManagementServiceTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/api/LocatorClusterManagementServiceTest.java
@@ -58,7 +58,7 @@ public class LocatorClusterManagementServiceTest {
   @Test
   public void persistenceIsNull() throws Exception {
     service = new LocatorClusterManagementService(cache, null);
-    result = service.create(regionConfig, "cluster");
+    result = service.create(regionConfig);
     assertThat(result.isSuccessful()).isFalse();
     assertThat(result.getStatusMessage())
         .contains("Cluster configuration service needs to be enabled");
@@ -71,14 +71,14 @@ public class LocatorClusterManagementServiceTest {
     cacheConfig.addRegion(regionConfig);
     when(persistenceService.getCacheConfig("cluster", true)).thenReturn(cacheConfig);
 
-    assertThatThrownBy(() -> service.create(regionConfig, "cluster"))
+    assertThatThrownBy(() -> service.create(regionConfig))
         .isInstanceOf(EntityExistsException.class)
         .hasMessageContaining("cache element test already exists");
   }
 
   @Test
   public void validationFailed() throws Exception {
-    assertThatThrownBy(() -> service.create(regionConfig, "cluster"))
+    assertThatThrownBy(() -> service.create(regionConfig))
         .isInstanceOf(IllegalArgumentException.class)
         .hasMessageContaining("Name of the region has to be specified");
   }
@@ -88,7 +88,7 @@ public class LocatorClusterManagementServiceTest {
     regionConfig.setName("test");
     when(persistenceService.getCacheConfig("cluster", true)).thenReturn(new CacheConfig());
     doReturn(Collections.emptySet()).when(service).findMembers(any());
-    result = service.create(regionConfig, "cluster");
+    result = service.create(regionConfig);
     assertThat(result.isSuccessful()).isFalse();
     assertThat(result.getStatusMessage())
         .contains("no members found in cluster to create cache element");
@@ -105,7 +105,7 @@ public class LocatorClusterManagementServiceTest {
 
     when(persistenceService.getCacheConfig("cluster", true)).thenReturn(new CacheConfig());
     regionConfig.setName("test");
-    result = service.create(regionConfig, "cluster");
+    result = service.create(regionConfig);
     assertThat(result.isSuccessful()).isFalse();
     assertThat(result.getStatusMessage())
         .contains("Failed to apply the update on all members");
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/management/configuration/Index.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/management/configuration/Index.java
index b87ed42..2b324d3 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/management/configuration/Index.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/management/configuration/Index.java
@@ -71,7 +71,7 @@ import org.apache.geode.cache.configuration.XSDRootElement;
 @XmlRootElement(name = "index", namespace = "http://geode.apache.org/schema/lucene")
 @XSDRootElement(namespace = "http://geode.apache.org/schema/lucene",
     schemaLocation = "http://geode.apache.org/schema/lucene/lucene-1.0.xsd")
-public class Index implements CacheElement {
+public class Index extends CacheElement {
   @XmlElement(namespace = "http://geode.apache.org/schema/lucene", required = true)
   protected List<Index.Field> field;
   @XmlElement(namespace = "http://geode.apache.org/schema/lucene")
diff --git a/geode-management/src/main/java/org/apache/geode/cache/configuration/BasicRegionConfig.java b/geode-management/src/main/java/org/apache/geode/cache/configuration/BasicRegionConfig.java
index e339cae..e4572ad 100644
--- a/geode-management/src/main/java/org/apache/geode/cache/configuration/BasicRegionConfig.java
+++ b/geode-management/src/main/java/org/apache/geode/cache/configuration/BasicRegionConfig.java
@@ -44,7 +44,7 @@ import org.apache.geode.management.api.RestfulEndpoint;
 @XmlAccessorType(XmlAccessType.FIELD)
 @XmlType(propOrder = {"regionAttributes"})
 @Experimental
-public class BasicRegionConfig implements CacheElement, RestfulEndpoint {
+public class BasicRegionConfig extends CacheElement implements RestfulEndpoint {
 
   public static final String REGION_CONFIG_ENDPOINT = "/regions";
 
diff --git a/geode-management/src/main/java/org/apache/geode/cache/configuration/CacheConfig.java b/geode-management/src/main/java/org/apache/geode/cache/configuration/CacheConfig.java
index 6d5f94b..4fb154b 100644
--- a/geode-management/src/main/java/org/apache/geode/cache/configuration/CacheConfig.java
+++ b/geode-management/src/main/java/org/apache/geode/cache/configuration/CacheConfig.java
@@ -1112,7 +1112,7 @@ public class CacheConfig {
   @XmlAccessorType(XmlAccessType.FIELD)
   @XmlType(name = "",
       propOrder = {"gatewayEventFilters", "gatewayEventSubstitutionFilter", "asyncEventListener"})
-  public static class AsyncEventQueue implements CacheElement {
+  public static class AsyncEventQueue extends CacheElement {
 
     @XmlElement(name = "gateway-event-filter", namespace = "http://geode.apache.org/schema/cache")
     protected List<DeclarableType> gatewayEventFilters;
diff --git a/geode-management/src/main/java/org/apache/geode/cache/configuration/CacheElement.java b/geode-management/src/main/java/org/apache/geode/cache/configuration/CacheElement.java
index 6ab7173..7c01106 100644
--- a/geode-management/src/main/java/org/apache/geode/cache/configuration/CacheElement.java
+++ b/geode-management/src/main/java/org/apache/geode/cache/configuration/CacheElement.java
@@ -20,24 +20,40 @@ package org.apache.geode.cache.configuration;
 import java.io.Serializable;
 import java.util.List;
 
+import javax.xml.bind.annotation.XmlTransient;
+
 import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import org.apache.commons.lang3.StringUtils;
 
 import org.apache.geode.annotations.Experimental;
 import org.apache.geode.lang.Identifiable;
 
 @Experimental
 @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "class")
-public interface CacheElement extends Identifiable<String>, Serializable {
+public abstract class CacheElement implements Identifiable<String>, Serializable {
+  private String group;
 
-  static <T extends CacheElement> boolean exists(List<T> list, String id) {
+  public static <T extends CacheElement> boolean exists(List<T> list, String id) {
     return list.stream().anyMatch(o -> o.getId().equals(id));
   }
 
-  static <T extends CacheElement> T findElement(List<T> list, String id) {
+  public static <T extends CacheElement> T findElement(List<T> list, String id) {
     return list.stream().filter(o -> o.getId().equals(id)).findFirst().orElse(null);
   }
 
-  static <T extends CacheElement> void removeElement(List<T> list, String id) {
+  public static <T extends CacheElement> void removeElement(List<T> list, String id) {
     list.removeIf(t -> t.getId().equals(id));
   }
+
+  @XmlTransient
+  public String getGroup() {
+    if (StringUtils.isBlank(group)) {
+      return "cluster";
+    }
+    return group;
+  }
+
+  public void setGroup(String group) {
+    this.group = group;
+  }
 }
diff --git a/geode-management/src/main/java/org/apache/geode/cache/configuration/DiskStoreType.java b/geode-management/src/main/java/org/apache/geode/cache/configuration/DiskStoreType.java
index 6f30171..49343f8 100644
--- a/geode-management/src/main/java/org/apache/geode/cache/configuration/DiskStoreType.java
+++ b/geode-management/src/main/java/org/apache/geode/cache/configuration/DiskStoreType.java
@@ -66,7 +66,7 @@ import org.apache.geode.annotations.Experimental;
 @XmlType(name = "disk-store-type", namespace = "http://geode.apache.org/schema/cache",
     propOrder = {"diskDirs"})
 @Experimental
-public class DiskStoreType implements CacheElement {
+public class DiskStoreType extends CacheElement {
 
   @XmlElement(name = "disk-dirs", namespace = "http://geode.apache.org/schema/cache")
   protected DiskDirsType diskDirs;
diff --git a/geode-management/src/main/java/org/apache/geode/cache/configuration/JndiBindingsType.java b/geode-management/src/main/java/org/apache/geode/cache/configuration/JndiBindingsType.java
index 67fbe44..04aa221 100644
--- a/geode-management/src/main/java/org/apache/geode/cache/configuration/JndiBindingsType.java
+++ b/geode-management/src/main/java/org/apache/geode/cache/configuration/JndiBindingsType.java
@@ -202,7 +202,7 @@ public class JndiBindingsType {
   @XmlAccessorType(XmlAccessType.FIELD)
   @XmlType(name = "", propOrder = {"configProperties"})
   @Experimental
-  public static class JndiBinding implements CacheElement {
+  public static class JndiBinding extends CacheElement {
 
     @XmlElement(name = "config-property", namespace = "http://geode.apache.org/schema/cache")
     protected List<ConfigProperty> configProperties;
@@ -628,7 +628,7 @@ public class JndiBindingsType {
     @XmlAccessorType(XmlAccessType.FIELD)
     @XmlType(name = "",
         propOrder = {"configPropertyName", "configPropertyType", "configPropertyValue"})
-    public static class ConfigProperty implements CacheElement {
+    public static class ConfigProperty extends CacheElement {
 
       @XmlElement(name = "config-property-name", namespace = "http://geode.apache.org/schema/cache",
           required = true)
diff --git a/geode-management/src/main/java/org/apache/geode/cache/configuration/RegionConfig.java b/geode-management/src/main/java/org/apache/geode/cache/configuration/RegionConfig.java
index 1e582e6..361710b 100644
--- a/geode-management/src/main/java/org/apache/geode/cache/configuration/RegionConfig.java
+++ b/geode-management/src/main/java/org/apache/geode/cache/configuration/RegionConfig.java
@@ -343,7 +343,7 @@ public class RegionConfig extends BasicRegionConfig {
    *
    */
   @XmlAccessorType(XmlAccessType.FIELD)
-  public static class Index implements CacheElement, Serializable {
+  public static class Index extends CacheElement {
     @XmlAttribute(name = "name", required = true)
     protected String name;
     @XmlAttribute(name = "expression")
diff --git a/geode-management/src/main/java/org/apache/geode/management/api/ClusterManagementService.java b/geode-management/src/main/java/org/apache/geode/management/api/ClusterManagementService.java
index 053fd62..cc36dde 100644
--- a/geode-management/src/main/java/org/apache/geode/management/api/ClusterManagementService.java
+++ b/geode-management/src/main/java/org/apache/geode/management/api/ClusterManagementService.java
@@ -32,15 +32,10 @@ public interface ClusterManagementService {
    * the configuration in the cluster configuration if persistence is enabled.
    *
    * @param config this holds the configuration attributes of the element to be created on the
-   *        cluster
-   * @param group the server group to which this config applies
+   *        cluster, as well as the group this config belongs to
    * @see CacheElement
    */
-  ClusterManagementResult create(CacheElement config, String group);
-
-  default ClusterManagementResult create(CacheElement config) {
-    return create(config, null);
-  }
+  ClusterManagementResult create(CacheElement config);
 
   /**
    * This method will delete the element on all the applicable members in the cluster and update the
@@ -48,15 +43,11 @@ public interface ClusterManagementService {
    *
    * @param config this holds the configuration attributes of the element to be deleted on the
    *        cluster
-   * @param group the server group to which this config applies
    * @throws IllegalArgumentException, NoMemberException, EntityExistsException
    * @see CacheElement
    */
-  ClusterManagementResult delete(CacheElement config, String group);
+  ClusterManagementResult delete(CacheElement config);
 
-  default ClusterManagementResult delete(CacheElement config) {
-    return delete(config, null);
-  }
 
   /**
    * This method will update the element on all the applicable members in the cluster and persist
@@ -64,15 +55,10 @@ public interface ClusterManagementService {
    *
    * @param config this holds the configuration attributes of the element to be updated on the
    *        cluster
-   * @param group the server group to which this config applies
    * @throws IllegalArgumentException, NoMemberException, EntityExistsException
    * @see CacheElement
    */
-  ClusterManagementResult update(CacheElement config, String group);
-
-  default ClusterManagementResult update(CacheElement config) {
-    return update(config, null);
-  }
+  ClusterManagementResult update(CacheElement config);
 
   ClusterManagementResult list(CacheElement config);
 
diff --git a/geode-management/src/main/java/org/apache/geode/management/configuration/MemberConfig.java b/geode-management/src/main/java/org/apache/geode/management/configuration/MemberConfig.java
index 174d79a..4f488db 100644
--- a/geode-management/src/main/java/org/apache/geode/management/configuration/MemberConfig.java
+++ b/geode-management/src/main/java/org/apache/geode/management/configuration/MemberConfig.java
@@ -22,7 +22,7 @@ import org.apache.geode.cache.configuration.CacheElement;
 import org.apache.geode.management.api.RestfulEndpoint;
 
 @Experimental
-public class MemberConfig implements CacheElement, RestfulEndpoint {
+public class MemberConfig extends CacheElement implements RestfulEndpoint {
 
   private static final long serialVersionUID = -6262538068604902018L;
 
diff --git a/geode-management/src/main/java/org/apache/geode/management/internal/ClientClusterManagementService.java b/geode-management/src/main/java/org/apache/geode/management/internal/ClientClusterManagementService.java
index 0fab185..0a18b11 100644
--- a/geode-management/src/main/java/org/apache/geode/management/internal/ClientClusterManagementService.java
+++ b/geode-management/src/main/java/org/apache/geode/management/internal/ClientClusterManagementService.java
@@ -106,21 +106,21 @@ public class ClientClusterManagementService implements ClusterManagementService
   }
 
   @Override
-  public ClusterManagementResult create(CacheElement config, String group) {
-    String endPoint = getEndpoint(config) + "?group={group}";
+  public ClusterManagementResult create(CacheElement config) {
+    String endPoint = getEndpoint(config);
     // the response status code info is represented by the ClusterManagementResult.errorCode already
     return restTemplate
-        .postForEntity(VERSION + endPoint, config, ClusterManagementResult.class, group)
+        .postForEntity(VERSION + endPoint, config, ClusterManagementResult.class)
         .getBody();
   }
 
   @Override
-  public ClusterManagementResult delete(CacheElement config, String group) {
+  public ClusterManagementResult delete(CacheElement config) {
     throw new NotImplementedException("Not Implemented");
   }
 
   @Override
-  public ClusterManagementResult update(CacheElement config, String group) {
+  public ClusterManagementResult update(CacheElement config) {
     throw new NotImplementedException("Not Implemented");
   }
 
diff --git a/geode-web-management/src/main/java/org/apache/geode/management/internal/rest/controllers/RegionManagementController.java b/geode-web-management/src/main/java/org/apache/geode/management/internal/rest/controllers/RegionManagementController.java
index 3d6a006..150d5d6 100644
--- a/geode-web-management/src/main/java/org/apache/geode/management/internal/rest/controllers/RegionManagementController.java
+++ b/geode-web-management/src/main/java/org/apache/geode/management/internal/rest/controllers/RegionManagementController.java
@@ -28,7 +28,6 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
 
 import org.apache.geode.cache.configuration.BasicRegionConfig;
 import org.apache.geode.management.api.ClusterManagementResult;
@@ -46,10 +45,9 @@ public class RegionManagementController extends AbstractManagementController {
   @PreAuthorize("@securityService.authorize('DATA', 'MANAGE')")
   @RequestMapping(method = RequestMethod.POST, value = REGION_CONFIG_ENDPOINT)
   public ResponseEntity<ClusterManagementResult> createRegion(
-      @RequestBody BasicRegionConfig regionConfig,
-      @RequestParam(required = false) String group) {
+      @RequestBody BasicRegionConfig regionConfig) {
     ClusterManagementResult result =
-        clusterManagementService.create(regionConfig, group);
+        clusterManagementService.create(regionConfig);
     return new ResponseEntity<>(result,
         result.isSuccessful() ? HttpStatus.CREATED : HttpStatus.INTERNAL_SERVER_ERROR);
   }