You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ab...@apache.org on 2016/11/12 17:44:27 UTC
[1/3] incubator-geode git commit: Adding option partition-resolver in
gfsh while creating a region.
Repository: incubator-geode
Updated Branches:
refs/heads/develop 3db9b3097 -> e9c571692
Adding option partition-resolver in gfsh while creating a region.
Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/95ad1643
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/95ad1643
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/95ad1643
Branch: refs/heads/develop
Commit: 95ad1643874cd37d8c3b9dbcae8923ea58fe5be7
Parents: 3db9b30
Author: adongre <av...@ampool.io>
Authored: Fri Oct 28 16:04:15 2016 +0530
Committer: Anthony Baker <ab...@apache.org>
Committed: Sat Nov 12 07:55:22 2016 -0800
----------------------------------------------------------------------
.../CreateAlterDestroyRegionCommands.java | 45 +++++--
.../cli/functions/RegionCreateFunction.java | 42 ++++++
.../cli/functions/RegionFunctionArgs.java | 42 +++++-
.../internal/cli/i18n/CliStrings.java | 21 +++
.../geode/redis/internal/RegionProvider.java | 2 +-
...eateAlterDestroyRegionCommandsDUnitTest.java | 129 ++++++++++++++++++-
.../cli/commands/golden-help-offline.properties | 12 +-
7 files changed, 263 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/95ad1643/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java
index 5dba0d8..58af6cb 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java
@@ -31,19 +31,13 @@ import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
+import joptsimple.internal.Strings;
+import org.apache.geode.cache.*;
import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
import org.springframework.shell.core.annotation.CliCommand;
import org.springframework.shell.core.annotation.CliOption;
import org.apache.geode.LogWriter;
-import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.CacheFactory;
-import org.apache.geode.cache.DataPolicy;
-import org.apache.geode.cache.ExpirationAttributes;
-import org.apache.geode.cache.Region;
-import org.apache.geode.cache.RegionAttributes;
-import org.apache.geode.cache.RegionShortcut;
-import org.apache.geode.cache.Scope;
import org.apache.geode.cache.execute.ResultCollector;
import org.apache.geode.compression.Compressor;
import org.apache.geode.distributed.DistributedMember;
@@ -199,6 +193,9 @@ public class CreateAlterDestroyRegionCommands extends AbstractCommandsSupport {
unspecifiedDefaultValue = CliMetaData.ANNOTATION_NULL_VALUE,
specifiedDefaultValue = "true",
help = CliStrings.CREATE_REGION__OFF_HEAP__HELP) Boolean offHeap,
+ @CliOption(key = CliStrings.CREATE_REGION__PARTITION_RESOLVER,
+ unspecifiedDefaultValue = CliMetaData.ANNOTATION_NULL_VALUE,
+ help = CliStrings.CREATE_REGION__PARTITION_RESOLVER__HELP) String partitionResolver,
@CliOption(key = CliStrings.CREATE_REGION__REGIONEXPIRATIONIDLETIME,
unspecifiedDefaultValue = CliMetaData.ANNOTATION_NULL_VALUE,
help = CliStrings.CREATE_REGION__REGIONEXPIRATIONIDLETIME__HELP) Integer regionExpirationIdleTime,
@@ -299,7 +296,7 @@ public class CreateAlterDestroyRegionCommands extends AbstractCommandsSupport {
asyncEventQueueIds, gatewaySenderIds, concurrencyChecksEnabled, cloningEnabled,
concurrencyLevel, prColocatedWith, prLocalMaxMemory, prRecoveryDelay, prRedundantCopies,
prStartupRecoveryDelay, prTotalMaxMemory, prTotalNumBuckets, offHeap, mcastEnabled,
- regionAttributes);
+ regionAttributes, partitionResolver);
if (regionAttributes.getPartitionAttributes() == null
@@ -318,7 +315,7 @@ public class CreateAlterDestroyRegionCommands extends AbstractCommandsSupport {
asyncEventQueueIds, gatewaySenderIds, concurrencyChecksEnabled, cloningEnabled,
concurrencyLevel, prColocatedWith, prLocalMaxMemory, prRecoveryDelay, prRedundantCopies,
prStartupRecoveryDelay, prTotalMaxMemory, prTotalNumBuckets, null, compressor, offHeap,
- mcastEnabled);
+ mcastEnabled, partitionResolver);
if (!regionShortcut.name().startsWith("PARTITION")
&& regionFunctionArgs.hasPartitionAttributes()) {
@@ -369,7 +366,6 @@ public class CreateAlterDestroyRegionCommands extends AbstractCommandsSupport {
xmlEntity = regionCreateResult.getXmlEntity();
}
}
-
result = ResultBuilder.buildResult(tabularResultData);
verifyDistributedRegionMbean(cache, regionPath);
@@ -550,7 +546,7 @@ public class CreateAlterDestroyRegionCommands extends AbstractCommandsSupport {
regionFunctionArgs = new RegionFunctionArgs(regionPath, null, null, false, null, null, null,
entryIdle, entryTTL, regionIdle, regionTTL, null, null, null, null, cacheListeners,
cacheLoader, cacheWriter, asyncEventQueueIds, gatewaySenderIds, null, cloningEnabled,
- null, null, null, null, null, null, null, null, evictionMax, null, null, null);
+ null, null, null, null, null, null, null, null, evictionMax, null, null, null, null);
Set<String> cacheListenersSet = regionFunctionArgs.getCacheListeners();
if (cacheListenersSet != null && !cacheListenersSet.isEmpty()) {
@@ -907,6 +903,31 @@ public class CreateAlterDestroyRegionCommands extends AbstractCommandsSupport {
new Object[] {regionFunctionArgs.getCompressor()}));
}
}
+
+ if (regionFunctionArgs.hasPartitionAttributes()) {
+ boolean partitionResolverFailure = false;
+ if (regionFunctionArgs.isPartitionResolverSet()) {
+ String partitionResolverClassName = regionFunctionArgs.getPartitionResolver();
+ Object partitionResolver = null;
+
+ try {
+ Class<?> compressorClass =
+ (Class<?>) ClassPathLoader.getLatest().forName(partitionResolverClassName);
+ partitionResolver = compressorClass.newInstance();
+ } catch (InstantiationException e) {
+ partitionResolverFailure = true;
+ } catch (IllegalAccessException e) {
+ partitionResolverFailure = true;
+ } catch (ClassNotFoundException e) {
+ partitionResolverFailure = true;
+ }
+ if (partitionResolverFailure || !(partitionResolver instanceof PartitionResolver)) {
+ throw new IllegalArgumentException(
+ CliStrings.format(CliStrings.CREATE_REGION__MSG__INVALID_PARTITION_RESOLVER,
+ new Object[] {regionFunctionArgs.getCompressor()}));
+ }
+ }
+ }
}
private boolean diskStoreExists(Cache cache, String diskStoreName) {
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/95ad1643/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionCreateFunction.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionCreateFunction.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionCreateFunction.java
index c7c27cc..b925936 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionCreateFunction.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionCreateFunction.java
@@ -16,6 +16,8 @@ package org.apache.geode.management.internal.cli.functions;
import java.util.Set;
+import joptsimple.internal.Strings;
+import org.apache.geode.internal.ClassPathLoader;
import org.apache.logging.log4j.Logger;
import org.apache.geode.cache.Cache;
@@ -26,6 +28,7 @@ import org.apache.geode.cache.CacheWriter;
import org.apache.geode.cache.DataPolicy;
import org.apache.geode.cache.PartitionAttributes;
import org.apache.geode.cache.PartitionAttributesFactory;
+import org.apache.geode.cache.PartitionResolver;
import org.apache.geode.cache.Region;
import org.apache.geode.cache.RegionAttributes;
import org.apache.geode.cache.RegionExistsException;
@@ -405,9 +408,48 @@ public class RegionCreateFunction extends FunctionAdapter implements InternalEnt
prAttrFactory.setStartupRecoveryDelay(partitionArgs.getPrStartupRecoveryDelay());
}
+ if (regionCreateArgs.isPartitionResolverSet()) {
+ Class<?> partitionResolverClass = forName(regionCreateArgs.getPartitionResolver(),
+ CliStrings.CREATE_REGION__PARTITION_RESOLVER);
+ prAttrFactory
+ .setPartitionResolver((PartitionResolver<K, V>) newInstance(partitionResolverClass,
+ CliStrings.CREATE_REGION__PARTITION_RESOLVER));
+ }
return prAttrFactory.create();
}
+
+ private static Class<?> forName(String className, String neededFor) {
+ if (Strings.isNullOrEmpty(className)) {
+ return null;
+ }
+ try {
+ return ClassPathLoader.getLatest().forName(className);
+ } catch (ClassNotFoundException e) {
+ throw new RuntimeException(CliStrings.format(
+ CliStrings.CREATE_REGION_PARTITION_RESOLVER__MSG__COULDNOT_FIND_CLASS_0_SPECIFIED_FOR_1,
+ new Object[] {className, neededFor}), e);
+ } catch (ClassCastException e) {
+ throw new RuntimeException(CliStrings.format(
+ CliStrings.CREATE_REGION__MSG__PARTITION_RESOLVER__CLASS_0_SPECIFIED_FOR_1_IS_NOT_OF_EXPECTED_TYPE,
+ new Object[] {className, neededFor}), e);
+ }
+ }
+
+ private static Object newInstance(Class<?> klass, String neededFor) {
+ try {
+ return klass.newInstance();
+ } catch (InstantiationException e) {
+ throw new RuntimeException(CliStrings.format(
+ CliStrings.CREATE_REGION__MSG__PARTITION_RESOLVER__COULDNOT_INSTANTIATE_CLASS_0_SPECIFIED_FOR_1,
+ new Object[] {klass, neededFor}), e);
+ } catch (IllegalAccessException e) {
+ throw new RuntimeException(CliStrings.format(
+ CliStrings.CREATE_REGION__MSG__PARTITION_RESOLVER__COULDNOT_ACCESS_CLASS_0_SPECIFIED_FOR_1,
+ new Object[] {klass, neededFor}), e);
+ }
+ }
+
@Override
public String getId() {
return ID;
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/95ad1643/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionFunctionArgs.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionFunctionArgs.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionFunctionArgs.java
index c1a8d1f..573b82e 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionFunctionArgs.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionFunctionArgs.java
@@ -77,6 +77,8 @@ public class RegionFunctionArgs implements Serializable {
private Boolean offHeap;
private final boolean isSetOffHeap;
private RegionAttributes<?, ?> regionAttributes;
+ private final boolean isPartitionResolver;
+ private String partitionResolver;
public RegionFunctionArgs(String regionPath, RegionShortcut regionShortcut,
String useAttributesFrom, boolean skipIfExists, String keyConstraint, String valueConstraint,
@@ -90,7 +92,7 @@ public class RegionFunctionArgs implements Serializable {
Integer concurrencyLevel, String prColocatedWith, Integer prLocalMaxMemory,
Long prRecoveryDelay, Integer prRedundantCopies, Long prStartupRecoveryDelay,
Long prTotalMaxMemory, Integer prTotalNumBuckets, Integer evictionMax, String compressor,
- Boolean offHeap, Boolean mcastEnabled) {
+ Boolean offHeap, Boolean mcastEnabled, final String partitionResolver) {
this.regionPath = regionPath;
this.regionShortcut = regionShortcut;
this.useAttributesFrom = useAttributesFrom;
@@ -155,8 +157,9 @@ public class RegionFunctionArgs implements Serializable {
if (this.isSetConcurrencyLevel) {
this.concurrencyLevel = concurrencyLevel;
}
- this.partitionArgs = new PartitionArgs(prColocatedWith, prLocalMaxMemory, prRecoveryDelay,
- prRedundantCopies, prStartupRecoveryDelay, prTotalMaxMemory, prTotalNumBuckets);
+ this.partitionArgs =
+ new PartitionArgs(prColocatedWith, prLocalMaxMemory, prRecoveryDelay, prRedundantCopies,
+ prStartupRecoveryDelay, prTotalMaxMemory, prTotalNumBuckets, partitionResolver);
this.isSetCompressor = (compressor != null);
if (this.isSetCompressor) {
@@ -166,6 +169,10 @@ public class RegionFunctionArgs implements Serializable {
if (this.isSetOffHeap) {
this.offHeap = offHeap;
}
+ this.isPartitionResolver = (partitionResolver != null);
+ if (this.isPartitionResolver) {
+ this.partitionResolver = partitionResolver;
+ }
}
// Constructor to be used for supplied region attributes
@@ -181,7 +188,7 @@ public class RegionFunctionArgs implements Serializable {
Integer concurrencyLevel, String prColocatedWith, Integer prLocalMaxMemory,
Long prRecoveryDelay, Integer prRedundantCopies, Long prStartupRecoveryDelay,
Long prTotalMaxMemory, Integer prTotalNumBuckets, Boolean offHeap, Boolean mcastEnabled,
- RegionAttributes<?, ?> regionAttributes) {
+ RegionAttributes<?, ?> regionAttributes, final String partitionResolver) {
this(regionPath, null, useAttributesFrom, skipIfExists, keyConstraint, valueConstraint,
statisticsEnabled, entryExpirationIdleTime, entryExpirationTTL, regionExpirationIdleTime,
regionExpirationTTL, diskStore, diskSynchronous, enableAsyncConflation,
@@ -189,7 +196,7 @@ public class RegionFunctionArgs implements Serializable {
gatewaySenderIds, concurrencyChecksEnabled, cloningEnabled, concurrencyLevel,
prColocatedWith, prLocalMaxMemory, prRecoveryDelay, prRedundantCopies,
prStartupRecoveryDelay, prTotalMaxMemory, prTotalNumBuckets, null, null, offHeap,
- mcastEnabled);
+ mcastEnabled, partitionResolver);
this.regionAttributes = regionAttributes;
}
@@ -387,6 +394,20 @@ public class RegionFunctionArgs implements Serializable {
}
/**
+ * @return the PartitionResolver
+ */
+ public String getPartitionResolver() {
+ return this.partitionResolver;
+ }
+
+ /**
+ * @return True if Partition Resolver is set otherwise False
+ */
+ public Boolean isPartitionResolverSet() {
+ return this.isPartitionResolver;
+ }
+
+ /**
* @return the concurrencyChecksEnabled
*/
public Boolean isConcurrencyChecksEnabled() {
@@ -590,13 +611,15 @@ public class RegionFunctionArgs implements Serializable {
private final boolean isSetPRTotalMaxMemory;
private int prTotalNumBuckets;
private final boolean isSetPRTotalNumBuckets;
+ private final boolean isPartitionResolver;
+ private String partitionResolver;
private boolean hasPartitionAttributes;
private final Set<String> userSpecifiedPartitionAttributes = new HashSet<String>();
public PartitionArgs(String prColocatedWith, Integer prLocalMaxMemory, Long prRecoveryDelay,
Integer prRedundantCopies, Long prStartupRecoveryDelay, Long prTotalMaxMemory,
- Integer prTotalNumBuckets) {
+ Integer prTotalNumBuckets, String partitionResolver) {
this.prColocatedWith = prColocatedWith;
if (this.prColocatedWith != null) {
this.hasPartitionAttributes = true;
@@ -638,6 +661,13 @@ public class RegionFunctionArgs implements Serializable {
this.hasPartitionAttributes = true;
userSpecifiedPartitionAttributes.add(CliStrings.CREATE_REGION__TOTALNUMBUCKETS);
}
+ this.isPartitionResolver = partitionResolver != null;
+ if (this.isPartitionResolver) {
+ this.partitionResolver = partitionResolver;
+ this.hasPartitionAttributes = true;
+ userSpecifiedPartitionAttributes.add(CliStrings.CREATE_REGION__PARTITION_RESOLVER);
+ }
+
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/95ad1643/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java
index 3aa6db1..9aaef4d 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java
@@ -1006,6 +1006,27 @@ public class CliStrings {
public static final String CREATE_REGION__OFF_HEAP__HELP =
"Causes the values of the region to be stored in off-heap memory. The default is on heap.";
+ public static final String CREATE_REGION__PARTITION_RESOLVER = "partition-resolver";
+ public static final String CREATE_REGION__PARTITION_RESOLVER__HELP =
+ "The fully-qualified class name of the region's partition resolver";
+ public static final String CREATE_REGION__MSG__PARTITION_RESOLVER_ONLY_FOR_REGION_TYPE_PARTITION =
+ "partition resolver property is only applicable to PARTITION region type";
+
+ public static final String CREATE_REGION_PARTITION_RESOLVER__MSG__COULDNOT_FIND_CLASS_0_SPECIFIED_FOR_1 =
+ "Could not find class \"{0}\" specified for \"{1}\".";
+
+ public static final String CREATE_REGION__MSG__PARTITION_RESOLVER__CLASS_0_SPECIFIED_FOR_1_IS_NOT_OF_EXPECTED_TYPE =
+ "Class \"{0}\" specified for \"{1}\" is not of an expected type.";
+
+ public static final String CREATE_REGION__MSG__PARTITION_RESOLVER__COULDNOT_INSTANTIATE_CLASS_0_SPECIFIED_FOR_1 =
+ "Could not instantiate class \"{0}\" specified for \"{1}\".";
+
+ public static final String CREATE_REGION__MSG__PARTITION_RESOLVER__COULDNOT_ACCESS_CLASS_0_SPECIFIED_FOR_1 =
+ "Could not access class \"{0}\" specified for \"{1}\".";
+
+ public static final String CREATE_REGION__MSG__INVALID_PARTITION_RESOLVER =
+ "{0} is an invalid Partition Resolver.";
+
/* debug command */
public static final String DEBUG = "debug";
public static final String DEBUG__HELP = "Enable/Disable debugging output in GFSH.";
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/95ad1643/geode-core/src/main/java/org/apache/geode/redis/internal/RegionProvider.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/redis/internal/RegionProvider.java b/geode-core/src/main/java/org/apache/geode/redis/internal/RegionProvider.java
index 07e313b..5994d7d 100644
--- a/geode-core/src/main/java/org/apache/geode/redis/internal/RegionProvider.java
+++ b/geode-core/src/main/java/org/apache/geode/redis/internal/RegionProvider.java
@@ -405,7 +405,7 @@ public class RegionProvider implements Closeable {
Result result = cliCmds.createRegion(key, defaultRegionType, null, null, true, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
- null);
+ null, null);
r = cache.getRegion(key);
if (result.getStatus() == Status.ERROR && r == null) {
String err = "";
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/95ad1643/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java
index 9e3b804..4896ead 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java
@@ -35,17 +35,12 @@ import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
+import org.apache.geode.cache.*;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.apache.geode.cache.Cache;
-import org.apache.geode.cache.PartitionAttributesFactory;
-import org.apache.geode.cache.Region;
-import org.apache.geode.cache.RegionAttributes;
-import org.apache.geode.cache.RegionFactory;
-import org.apache.geode.cache.RegionShortcut;
-import org.apache.geode.cache.Scope;
+import org.apache.geode.internal.cache.PartitionedRegion;
import org.apache.geode.cache.asyncqueue.AsyncEvent;
import org.apache.geode.cache.asyncqueue.AsyncEventListener;
import org.apache.geode.cache.wan.GatewaySenderFactory;
@@ -1091,6 +1086,126 @@ public class CreateAlterDestroyRegionCommandsDUnitTest extends CliCommandTestBas
});
}
+
+ final String PR_STRING = " package com.cadrdunit;"
+ + " public class TestPartitionResolver implements org.apache.geode.cache.PartitionResolver { "
+ + " @Override" + " public void close() {" + " }" + " @Override"
+ + " public Object getRoutingObject(org.apache.geode.cache.EntryOperation opDetails) { "
+ + " return null; " + " }" + " @Override" + " public String getName() { "
+ + " return \"TestPartitionResolver\";" + " }" + " }";
+
+ /**
+ * Test Description 1. Deploy a JAR with Custom Partition Resolver 2. Create Region with Partition
+ * Resolver 3. Region should get created with no Errors 4. Verify Region Partition Attributes for
+ * Partition Resolver
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testCreateRegionWithPartitionResolver() throws IOException {
+ setUpJmxManagerOnVm0ThenConnect(null);
+ VM vm = Host.getHost(0).getVM(1);
+ // Create a cache in vm 1
+ vm.invoke(() -> {
+ assertNotNull(getCache());
+ });
+
+ ClassBuilder classBuilder = new ClassBuilder();
+ // classBuilder.addToClassPath(".");
+ final File prJarFile = new File(new File(".").getAbsolutePath(), "myPartitionResolver.jar");
+ this.filesToBeDeleted.add(prJarFile.getAbsolutePath());
+ byte[] jarBytes =
+ classBuilder.createJarFromClassContent("com/cadrdunit/TestPartitionResolver", PR_STRING);
+ writeJarBytesToFile(prJarFile, jarBytes);
+
+ CommandResult cmdResult = executeCommand("deploy --jar=myPartitionResolver.jar");
+ assertEquals(Result.Status.OK, cmdResult.getStatus());
+
+
+ // Create a region with an unrecognized compressor
+ CommandStringBuilder commandStringBuilder = new CommandStringBuilder(CliStrings.CREATE_REGION);
+ commandStringBuilder.addOption(CliStrings.CREATE_REGION__REGION, "regionWithPartitionResolver");
+ commandStringBuilder.addOption(CliStrings.CREATE_REGION__REGIONSHORTCUT, "PARTITION");
+ commandStringBuilder.addOption(CliStrings.CREATE_REGION__PARTITION_RESOLVER,
+ "com.cadrdunit.TestPartitionResolver");
+ CommandResult cmdResult1 = executeCommand(commandStringBuilder.toString());
+ assertEquals(Result.Status.OK, cmdResult1.getStatus());
+
+ // Assert that our region was not created
+ vm.invoke(() -> {
+ Region region = getCache().getRegion("regionWithPartitionResolver");
+ assertNotNull(region);
+
+ PartitionedRegion pr = (PartitionedRegion) region;
+ PartitionAttributes partitionAttributes = pr.getPartitionAttributes();
+ assertNotNull(partitionAttributes);
+ PartitionResolver partitionResolver = partitionAttributes.getPartitionResolver();
+ assertNotNull(partitionResolver);
+ assertEquals("TestPartitionResolver", partitionResolver.getName());
+ });
+
+ vm.invoke(() -> {
+ getCache().getRegion("regionWithPartitionResolver").destroyRegion();
+ });
+ }
+
+ @Test
+ public void testCreateRegionWithInvalidPartitionResolver() {
+ setUpJmxManagerOnVm0ThenConnect(null);
+ VM vm = Host.getHost(0).getVM(1);
+ // Create a cache in vm 1
+ vm.invoke(() -> {
+ assertNotNull(getCache());
+ });
+
+ // Create a region with an unrecognized compressor
+ CommandStringBuilder commandStringBuilder = new CommandStringBuilder(CliStrings.CREATE_REGION);
+ commandStringBuilder.addOption(CliStrings.CREATE_REGION__REGION,
+ "testCreateRegionWithInvalidPartitionResolver");
+ commandStringBuilder.addOption(CliStrings.CREATE_REGION__REGIONSHORTCUT, "PARTITION");
+ commandStringBuilder.addOption(CliStrings.CREATE_REGION__PARTITION_RESOLVER, "a.b.c.d");
+ CommandResult cmdResult = executeCommand(commandStringBuilder.toString());
+ assertEquals(Result.Status.ERROR, cmdResult.getStatus());
+
+ // Assert that our region was not created
+ vm.invoke(() -> {
+ Region region = getCache().getRegion("testCreateRegionWithInvalidPartitionResolver");
+ assertNull(region);
+ });
+ }
+
+ /**
+ * Test Description Try creating region of type REPLICATED and specify partition resolver Region
+ * Creation should fail.
+ */
+ @Test
+ public void testCreateRegionForReplicatedRegionWithParitionResolver() {
+ setUpJmxManagerOnVm0ThenConnect(null);
+ VM vm = Host.getHost(0).getVM(1);
+ // Create a cache in vm 1
+ vm.invoke(() -> {
+ assertNotNull(getCache());
+ });
+
+ // Create a region with an unrecognized compressor
+ CommandStringBuilder commandStringBuilder = new CommandStringBuilder(CliStrings.CREATE_REGION);
+ commandStringBuilder.addOption(CliStrings.CREATE_REGION__REGION,
+ "testCreateRegionForReplicatedRegionWithParitionResolver");
+ commandStringBuilder.addOption(CliStrings.CREATE_REGION__REGIONSHORTCUT, "REPLICATE");
+ commandStringBuilder.addOption(CliStrings.CREATE_REGION__PARTITION_RESOLVER, "a.b.c.d");
+ CommandResult cmdResult = executeCommand(commandStringBuilder.toString());
+ System.out.println("Result --> " + cmdResult);
+ assertEquals(Result.Status.ERROR, cmdResult.getStatus());
+
+ // Assert that our region was not created
+ vm.invoke(() -> {
+ Region region =
+ getCache().getRegion("testCreateRegionForReplicatedRegionWithParitionResolver");
+ assertNull(region);
+ });
+ }
+
+
@Override
protected final void preTearDownCliCommandTestBase() throws Exception {
for (String path : this.filesToBeDeleted) {
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/95ad1643/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-offline.properties
----------------------------------------------------------------------
diff --git a/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-offline.properties b/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-offline.properties
index 7ee735b..f08a257 100644
--- a/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-offline.properties
+++ b/geode-core/src/test/resources/org/apache/geode/management/internal/cli/commands/golden-help-offline.properties
@@ -885,10 +885,11 @@ SYNTAX\n\
\ \ \ \ [--entry-idle-time-expiration-action=value] [--entry-time-to-live-expiration=value]\n\
\ \ \ \ [--entry-time-to-live-expiration-action=value] [--gateway-sender-id=value(,value)*]\n\
\ \ \ \ [--key-constraint=value] [--local-max-memory=value] [--off-heap(=value)?]\n\
-\ \ \ \ [--region-idle-time-expiration=value] [--region-idle-time-expiration-action=value]\n\
-\ \ \ \ [--region-time-to-live-expiration=value] [--region-time-to-live-expiration-action=value]\n\
-\ \ \ \ [--recovery-delay=value] [--redundant-copies=value] [--startup-recovery-delay=value]\n\
-\ \ \ \ [--total-max-memory=value] [--total-num-buckets=value] [--value-constraint=value]\n\
+\ \ \ \ [--partition-resolver=value] [--region-idle-time-expiration=value]\n\
+\ \ \ \ [--region-idle-time-expiration-action=value] [--region-time-to-live-expiration=value]\n\
+\ \ \ \ [--region-time-to-live-expiration-action=value] [--recovery-delay=value]\n\
+\ \ \ \ [--redundant-copies=value] [--startup-recovery-delay=value] [--total-max-memory=value]\n\
+\ \ \ \ [--total-num-buckets=value] [--value-constraint=value]\n\
PARAMETERS\n\
\ \ \ \ name\n\
\ \ \ \ \ \ \ \ Name/Path of the region to be created.\n\
@@ -1005,6 +1006,9 @@ PARAMETERS\n\
\ \ \ \ \ \ \ \ Causes the values of the region to be stored in off-heap memory. The default is on heap.\n\
\ \ \ \ \ \ \ \ Required: false\n\
\ \ \ \ \ \ \ \ Default (if the parameter is specified without value): true\n\
+\ \ \ \ partition-resolver\n\
+\ \ \ \ \ \ \ \ The fully-qualified class name of the region's partition resolver\n\
+\ \ \ \ \ \ \ \ Required: false\n\
\ \ \ \ region-idle-time-expiration\n\
\ \ \ \ \ \ \ \ How long the region can remain in the cache without being accessed. The default is no\n\
\ \ \ \ \ \ \ \ expiration of this type.\n\
[3/3] incubator-geode git commit: Addressing Review comments.
Posted by ab...@apache.org.
Addressing Review comments.
This closes #278
Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/e9c57169
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/e9c57169
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/e9c57169
Branch: refs/heads/develop
Commit: e9c571692c9875f1ec5113c06703703b7206099f
Parents: 86f4755
Author: adongre <av...@ampool.io>
Authored: Sun Nov 6 17:27:55 2016 +0530
Committer: Anthony Baker <ab...@apache.org>
Committed: Sat Nov 12 07:56:16 2016 -0800
----------------------------------------------------------------------
.../CreateAlterDestroyRegionCommands.java | 22 ++++++--------------
.../cli/functions/RegionCreateFunction.java | 18 +++++++++-------
...eateAlterDestroyRegionCommandsDUnitTest.java | 6 +++---
3 files changed, 19 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e9c57169/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java
index 58af6cb..358cdc1 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java
@@ -31,7 +31,6 @@ import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
-import joptsimple.internal.Strings;
import org.apache.geode.cache.*;
import org.springframework.shell.core.annotation.CliAvailabilityIndicator;
import org.springframework.shell.core.annotation.CliCommand;
@@ -905,26 +904,17 @@ public class CreateAlterDestroyRegionCommands extends AbstractCommandsSupport {
}
if (regionFunctionArgs.hasPartitionAttributes()) {
- boolean partitionResolverFailure = false;
if (regionFunctionArgs.isPartitionResolverSet()) {
String partitionResolverClassName = regionFunctionArgs.getPartitionResolver();
- Object partitionResolver = null;
-
try {
- Class<?> compressorClass =
- (Class<?>) ClassPathLoader.getLatest().forName(partitionResolverClassName);
- partitionResolver = compressorClass.newInstance();
- } catch (InstantiationException e) {
- partitionResolverFailure = true;
- } catch (IllegalAccessException e) {
- partitionResolverFailure = true;
- } catch (ClassNotFoundException e) {
- partitionResolverFailure = true;
- }
- if (partitionResolverFailure || !(partitionResolver instanceof PartitionResolver)) {
+ Class<PartitionResolver> resolverClass = (Class<PartitionResolver>) ClassPathLoader
+ .getLatest().forName(partitionResolverClassName);
+ PartitionResolver partitionResolver = resolverClass.newInstance();
+ } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
throw new IllegalArgumentException(
CliStrings.format(CliStrings.CREATE_REGION__MSG__INVALID_PARTITION_RESOLVER,
- new Object[] {regionFunctionArgs.getCompressor()}));
+ new Object[] {regionFunctionArgs.getCompressor()}),
+ e);
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e9c57169/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionCreateFunction.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionCreateFunction.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionCreateFunction.java
index b925936..c99f84a 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionCreateFunction.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/RegionCreateFunction.java
@@ -16,8 +16,8 @@ package org.apache.geode.management.internal.cli.functions;
import java.util.Set;
-import joptsimple.internal.Strings;
import org.apache.geode.internal.ClassPathLoader;
+import org.apache.geode.internal.lang.StringUtils;
import org.apache.logging.log4j.Logger;
import org.apache.geode.cache.Cache;
@@ -409,8 +409,8 @@ public class RegionCreateFunction extends FunctionAdapter implements InternalEnt
}
if (regionCreateArgs.isPartitionResolverSet()) {
- Class<?> partitionResolverClass = forName(regionCreateArgs.getPartitionResolver(),
- CliStrings.CREATE_REGION__PARTITION_RESOLVER);
+ Class<PartitionResolver> partitionResolverClass = forName(
+ regionCreateArgs.getPartitionResolver(), CliStrings.CREATE_REGION__PARTITION_RESOLVER);
prAttrFactory
.setPartitionResolver((PartitionResolver<K, V>) newInstance(partitionResolverClass,
CliStrings.CREATE_REGION__PARTITION_RESOLVER));
@@ -419,12 +419,14 @@ public class RegionCreateFunction extends FunctionAdapter implements InternalEnt
}
- private static Class<?> forName(String className, String neededFor) {
- if (Strings.isNullOrEmpty(className)) {
- return null;
+ private static Class<PartitionResolver> forName(String className, String neededFor) {
+ if (StringUtils.isBlank(className)) {
+ throw new IllegalArgumentException(
+ CliStrings.format(CliStrings.CREATE_REGION__MSG__INVALID_PARTITION_RESOLVER,
+ new Object[] {className, neededFor}));
}
try {
- return ClassPathLoader.getLatest().forName(className);
+ return (Class<PartitionResolver>) ClassPathLoader.getLatest().forName(className);
} catch (ClassNotFoundException e) {
throw new RuntimeException(CliStrings.format(
CliStrings.CREATE_REGION_PARTITION_RESOLVER__MSG__COULDNOT_FIND_CLASS_0_SPECIFIED_FOR_1,
@@ -436,7 +438,7 @@ public class RegionCreateFunction extends FunctionAdapter implements InternalEnt
}
}
- private static Object newInstance(Class<?> klass, String neededFor) {
+ private static PartitionResolver newInstance(Class<PartitionResolver> klass, String neededFor) {
try {
return klass.newInstance();
} catch (InstantiationException e) {
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e9c57169/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java
index 4896ead..7a75cfa 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java
@@ -1112,13 +1112,14 @@ public class CreateAlterDestroyRegionCommandsDUnitTest extends CliCommandTestBas
ClassBuilder classBuilder = new ClassBuilder();
// classBuilder.addToClassPath(".");
- final File prJarFile = new File(new File(".").getAbsolutePath(), "myPartitionResolver.jar");
+ final File prJarFile = new File(temporaryFolder.getRoot().getCanonicalPath() + File.separator,
+ "myPartitionResolver.jar");
this.filesToBeDeleted.add(prJarFile.getAbsolutePath());
byte[] jarBytes =
classBuilder.createJarFromClassContent("com/cadrdunit/TestPartitionResolver", PR_STRING);
writeJarBytesToFile(prJarFile, jarBytes);
- CommandResult cmdResult = executeCommand("deploy --jar=myPartitionResolver.jar");
+ CommandResult cmdResult = executeCommand("deploy --jar=" + prJarFile.getAbsolutePath());
assertEquals(Result.Status.OK, cmdResult.getStatus());
@@ -1194,7 +1195,6 @@ public class CreateAlterDestroyRegionCommandsDUnitTest extends CliCommandTestBas
commandStringBuilder.addOption(CliStrings.CREATE_REGION__REGIONSHORTCUT, "REPLICATE");
commandStringBuilder.addOption(CliStrings.CREATE_REGION__PARTITION_RESOLVER, "a.b.c.d");
CommandResult cmdResult = executeCommand(commandStringBuilder.toString());
- System.out.println("Result --> " + cmdResult);
assertEquals(Result.Status.ERROR, cmdResult.getStatus());
// Assert that our region was not created
[2/3] incubator-geode git commit: Fixing test
org.apache.geode.codeAnalysis.AnalyzeSerializablesJUnitTest testSerializables
Posted by ab...@apache.org.
Fixing test org.apache.geode.codeAnalysis.AnalyzeSerializablesJUnitTest testSerializables
Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/86f47558
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/86f47558
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/86f47558
Branch: refs/heads/develop
Commit: 86f47558912711853e432fbb6daf90ac33e95afa
Parents: 95ad164
Author: adongre <av...@ampool.io>
Authored: Sat Oct 29 08:35:39 2016 +0530
Committer: Anthony Baker <ab...@apache.org>
Committed: Sat Nov 12 07:55:23 2016 -0800
----------------------------------------------------------------------
.../geode/codeAnalysis/sanctionedSerializables.txt | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/86f47558/geode-core/src/test/resources/org/apache/geode/codeAnalysis/sanctionedSerializables.txt
----------------------------------------------------------------------
diff --git a/geode-core/src/test/resources/org/apache/geode/codeAnalysis/sanctionedSerializables.txt b/geode-core/src/test/resources/org/apache/geode/codeAnalysis/sanctionedSerializables.txt
index 03bb3ea..8167ed3 100644
--- a/geode-core/src/test/resources/org/apache/geode/codeAnalysis/sanctionedSerializables.txt
+++ b/geode-core/src/test/resources/org/apache/geode/codeAnalysis/sanctionedSerializables.txt
@@ -136,7 +136,6 @@ org/apache/geode/cache/persistence/PersistentReplicatesOfflineException,true,620
org/apache/geode/cache/persistence/RevokeFailedException,true,-2629287782021455875
org/apache/geode/cache/persistence/RevokedPersistentDataException,true,0
org/apache/geode/cache/query/AmbiguousNameException,true,5635771575414148564
-org/apache/geode/cache/query/CqAttributesFactory$CqAttributesImpl,true,-959395592883099100,clSync:java/lang/Object,cqListeners:java/util/ArrayList,dataPolicyHasBeenSet:boolean
org/apache/geode/cache/query/CqClosedException,true,-3793993436374495840
org/apache/geode/cache/query/CqException,true,-5905461592471139171
org/apache/geode/cache/query/CqExistsException,true,-4805225282677926623
@@ -246,7 +245,6 @@ org/apache/geode/internal/CopyOnWriteHashSet,true,8591978652141659932
org/apache/geode/internal/DSFIDNotFoundException,true,130596009484324655,dsfid:int,versionOrdinal:short
org/apache/geode/internal/InternalDataSerializer$SERIALIZATION_VERSION,false
org/apache/geode/internal/InternalStatisticsDisabledException,true,4146181546364258311
-org/apache/geode/internal/LinuxProcFsStatistics$CPU,false
org/apache/geode/internal/ObjIdConcurrentMap,true,7249069246763182397,segmentMask:int,segmentShift:int,segments:org/apache/geode/internal/ObjIdConcurrentMap$Segment[]
org/apache/geode/internal/ObjIdConcurrentMap$Segment,true,2249069246763182397,loadFactor:float
org/apache/geode/internal/SystemAdmin$CombinedResources,false
@@ -441,7 +439,6 @@ org/apache/geode/internal/memcached/ResponseStatus$4,false
org/apache/geode/internal/memcached/ResponseStatus$5,false
org/apache/geode/internal/memcached/ResponseStatus$6,false
org/apache/geode/internal/memcached/commands/ClientError,true,-2426928000696680541
-org/apache/geode/internal/net/SSLEnabledComponent,false,constant:java/lang/String
org/apache/geode/internal/offheap/MemoryBlock$State,false
org/apache/geode/internal/offheap/OffHeapStorage$1,false
org/apache/geode/internal/offheap/OffHeapStorage$2,false
@@ -598,10 +595,10 @@ org/apache/geode/management/internal/cli/functions/RebalanceFunction,true,1
org/apache/geode/management/internal/cli/functions/RegionAlterFunction,true,-4846425364943216425
org/apache/geode/management/internal/cli/functions/RegionCreateFunction,true,8746830191680509335
org/apache/geode/management/internal/cli/functions/RegionDestroyFunction,true,9172773671865750685
-org/apache/geode/management/internal/cli/functions/RegionFunctionArgs,true,-5158224572470173267,asyncEventQueueIds:java/util/Set,cacheListeners:java/util/Set,cacheLoader:java/lang/String,cacheWriter:java/lang/String,cloningEnabled:java/lang/Boolean,compressor:java/lang/String,concurrencyChecksEnabled:java/lang/Boolean,concurrencyLevel:java/lang/Integer,diskStore:java/lang/String,diskSynchronous:java/lang/Boolean,enableAsyncConflation:java/lang/Boolean,enableSubscriptionConflation:java/lang/Boolean,entryExpirationIdleTime:org/apache/geode/management/internal/cli/functions/RegionFunctionArgs$ExpirationAttrs,entryExpirationTTL:org/apache/geode/management/internal/cli/functions/RegionFunctionArgs$ExpirationAttrs,evictionMax:java/lang/Integer,gatewaySenderIds:java/util/Set,isSetCloningEnabled:boolean,isSetCompressor:boolean,isSetConcurrencyChecksEnabled:boolean,isSetConcurrencyLevel:boolean,isSetDiskSynchronous:boolean,isSetEnableAsyncConflation:boolean,isSetEnableSubscriptionConflation:
boolean,isSetMcastEnabled:boolean,isSetOffHeap:boolean,isSetStatisticsEnabled:boolean,keyConstraint:java/lang/String,mcastEnabled:java/lang/Boolean,offHeap:java/lang/Boolean,partitionArgs:org/apache/geode/management/internal/cli/functions/RegionFunctionArgs$PartitionArgs,regionAttributes:org/apache/geode/cache/RegionAttributes,regionExpirationIdleTime:org/apache/geode/management/internal/cli/functions/RegionFunctionArgs$ExpirationAttrs,regionExpirationTTL:org/apache/geode/management/internal/cli/functions/RegionFunctionArgs$ExpirationAttrs,regionPath:java/lang/String,regionShortcut:org/apache/geode/cache/RegionShortcut,skipIfExists:java/lang/Boolean,statisticsEnabled:java/lang/Boolean,useAttributesFrom:java/lang/String,valueConstraint:java/lang/String
+org/apache/geode/management/internal/cli/functions/RegionFunctionArgs,true,-5158224572470173267,asyncEventQueueIds:java/util/Set,cacheListeners:java/util/Set,cacheLoader:java/lang/String,cacheWriter:java/lang/String,cloningEnabled:java/lang/Boolean,compressor:java/lang/String,concurrencyChecksEnabled:java/lang/Boolean,concurrencyLevel:java/lang/Integer,diskStore:java/lang/String,diskSynchronous:java/lang/Boolean,enableAsyncConflation:java/lang/Boolean,enableSubscriptionConflation:java/lang/Boolean,entryExpirationIdleTime:org/apache/geode/management/internal/cli/functions/RegionFunctionArgs$ExpirationAttrs,entryExpirationTTL:org/apache/geode/management/internal/cli/functions/RegionFunctionArgs$ExpirationAttrs,evictionMax:java/lang/Integer,gatewaySenderIds:java/util/Set,isPartitionResolver:boolean,isSetCloningEnabled:boolean,isSetCompressor:boolean,isSetConcurrencyChecksEnabled:boolean,isSetConcurrencyLevel:boolean,isSetDiskSynchronous:boolean,isSetEnableAsyncConflation:boolean,isSetE
nableSubscriptionConflation:boolean,isSetMcastEnabled:boolean,isSetOffHeap:boolean,isSetStatisticsEnabled:boolean,keyConstraint:java/lang/String,mcastEnabled:java/lang/Boolean,offHeap:java/lang/Boolean,partitionArgs:org/apache/geode/management/internal/cli/functions/RegionFunctionArgs$PartitionArgs,partitionResolver:java/lang/String,regionAttributes:org/apache/geode/cache/RegionAttributes,regionExpirationIdleTime:org/apache/geode/management/internal/cli/functions/RegionFunctionArgs$ExpirationAttrs,regionExpirationTTL:org/apache/geode/management/internal/cli/functions/RegionFunctionArgs$ExpirationAttrs,regionPath:java/lang/String,regionShortcut:org/apache/geode/cache/RegionShortcut,skipIfExists:java/lang/Boolean,statisticsEnabled:java/lang/Boolean,useAttributesFrom:java/lang/String,valueConstraint:java/lang/String
org/apache/geode/management/internal/cli/functions/RegionFunctionArgs$ExpirationAttrs,true,1474255033398008062,action:org/apache/geode/cache/ExpirationAction,time:java/lang/Integer,type:org/apache/geode/management/internal/cli/functions/RegionFunctionArgs$ExpirationAttrs$ExpirationFor
org/apache/geode/management/internal/cli/functions/RegionFunctionArgs$ExpirationAttrs$ExpirationFor,false
-org/apache/geode/management/internal/cli/functions/RegionFunctionArgs$PartitionArgs,true,5907052187323280919,hasPartitionAttributes:boolean,isSetPRLocalMaxMemory:boolean,isSetPRRecoveryDelay:boolean,isSetPRRedundantCopies:boolean,isSetPRStartupRecoveryDelay:boolean,isSetPRTotalMaxMemory:boolean,isSetPRTotalNumBuckets:boolean,prColocatedWith:java/lang/String,prLocalMaxMemory:int,prRecoveryDelay:long,prRedundantCopies:int,prStartupRecoveryDelay:long,prTotalMaxMemory:long,prTotalNumBuckets:int,userSpecifiedPartitionAttributes:java/util/Set
+org/apache/geode/management/internal/cli/functions/RegionFunctionArgs$PartitionArgs,true,5907052187323280919,hasPartitionAttributes:boolean,isPartitionResolver:boolean,isSetPRLocalMaxMemory:boolean,isSetPRRecoveryDelay:boolean,isSetPRRedundantCopies:boolean,isSetPRStartupRecoveryDelay:boolean,isSetPRTotalMaxMemory:boolean,isSetPRTotalNumBuckets:boolean,partitionResolver:java/lang/String,prColocatedWith:java/lang/String,prLocalMaxMemory:int,prRecoveryDelay:long,prRedundantCopies:int,prStartupRecoveryDelay:long,prTotalMaxMemory:long,prTotalNumBuckets:int,userSpecifiedPartitionAttributes:java/util/Set
org/apache/geode/management/internal/cli/functions/ShowMissingDiskStoresFunction,false
org/apache/geode/management/internal/cli/functions/ShutDownFunction,true,1
org/apache/geode/management/internal/cli/functions/UndeployFunction,true,1
@@ -659,10 +656,6 @@ org/apache/geode/pdx/internal/PdxInstanceImpl,true,-1669268527103938431
org/apache/geode/pdx/internal/PdxInstanceInputStream,false
org/apache/geode/pdx/internal/PdxReaderImpl,true,-6094553093860427759,blobType:org/apache/geode/pdx/internal/PdxType,dis:org/apache/geode/pdx/internal/PdxInputStream
org/apache/geode/pdx/internal/WritablePdxInstanceImpl,true,7398999150097596214,dirtyFields:java/lang/Object[]
-org/apache/geode/security/AuthenticationFailedException,true,-8202866472279088879
-org/apache/geode/security/AuthenticationRequiredException,true,4675976651103154919
-org/apache/geode/security/GemFireSecurityException,true,3814254578203076926,cause:java/lang/Throwable
-org/apache/geode/security/NotAuthorizedException,true,419215768216387745,principal:java/security/Principal
org/apache/geode/redis/internal/RedisCommandParserException,true,4707944288714910949
org/apache/geode/redis/internal/RedisCommandType,false
org/apache/geode/redis/internal/RedisCommandType$1,false,dataType:org/apache/geode/redis/internal/RedisDataType,executor:org/apache/geode/redis/internal/Executor
@@ -844,3 +837,7 @@ org/apache/geode/redis/internal/executor/SortedSetQuery$7,false
org/apache/geode/redis/internal/executor/SortedSetQuery$8,false
org/apache/geode/redis/internal/executor/SortedSetQuery$9,false
org/apache/geode/redis/internal/executor/list/ListExecutor$ListDirection,false
+org/apache/geode/security/AuthenticationFailedException,true,-8202866472279088879
+org/apache/geode/security/AuthenticationRequiredException,true,4675976651103154919
+org/apache/geode/security/GemFireSecurityException,true,3814254578203076926,cause:java/lang/Throwable
+org/apache/geode/security/NotAuthorizedException,true,419215768216387745,principal:java/security/Principal