@CliAvailabilityIndicator({ CliStrings.ALTER_REGION, CliStrings.CREATE_REGION, CliStrings.DESTROY_REGION }) public boolean isRegionCommandAvailable() { boolean isAvailable = true; // always available on server if (CliUtil.isGfshVM()) { // in gfsh check if connected //TODO - Abhishek: make this better isAvailable = getGfsh() != null && getGfsh().isConnectedAndReady(); } return isAvailable; } }
membersList[0] = getMembersByIds(cache, regionMemberIds); membersList[1] = getMembersByIds(cache, localRegionMemberIds);
private static <K, V> FetchRegionAttributesFunctionResult<K, V> getRegionAttributes(Cache cache, String regionPath) { if (!isClusterwideSameConfig(cache, regionPath)) { throw new IllegalStateException(CliStrings.format(CliStrings.CREATE_REGION__MSG__USE_ATTRIBUTES_FORM_REGIONS_EXISTS_BUT_DIFFERENT_SCOPE_OR_DATAPOLICY_USE_DESCRIBE_REGION_FOR_0, regionPath));
validateRegionPathAndParent(cache, regionPath); validateGroups(cache, groups); if (!regionExists(cache, useAttributesFrom)) { throw new IllegalArgumentException(CliStrings.format(CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_REGION_PATH_FOR_0_REGIONPATH_1_NOT_FOUND, new Object[] {CliStrings.CREATE_REGION__USEATTRIBUTESFROM, useAttributesFrom})); FetchRegionAttributesFunctionResult<Object, Object> regionAttributesResult = getRegionAttributes(cache, useAttributesFrom); RegionAttributes<?, ?> regionAttributes = regionAttributesResult.getRegionAttributes(); validateRegionFunctionArgs(cache, regionFunctionArgs); verifyDistributedRegionMbean(cache, regionPath);
if (useAttributesFrom != null && !useAttributesFrom.isEmpty() && regionExists(cache, useAttributesFrom)) { if (!regionExists(cache, useAttributesFrom)) { // check already done in createRegion !!! throw new IllegalArgumentException(CliStrings.format(CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_REGION_PATH_FOR_0_REGIONPATH_1_NOT_FOUND, new Object[] {CliStrings.CREATE_REGION__USEATTRIBUTESFROM, useAttributesFrom})); if (keyConstraint != null && !isClassNameValid(keyConstraint)) { throw new IllegalArgumentException(CliStrings.format(CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_CLASSNAME_FOR_KEYCONSTRAINT_0_IS_INVALID, new Object[] {keyConstraint})); if (valueConstraint != null && !isClassNameValid(valueConstraint)) { throw new IllegalArgumentException(CliStrings.format(CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_CLASSNAME_FOR_VALUECONSTRAINT_0_IS_INVALID, new Object[] {valueConstraint})); if (cacheListeners != null && !cacheListeners.isEmpty()) { for (String cacheListener : cacheListeners) { if (!isClassNameValid(cacheListener)) { throw new IllegalArgumentException(CliStrings.format(CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_CLASSNAME_FOR_CACHELISTENER_0_IS_INVALID, new Object[] {cacheListener})); if (cacheLoader != null && !isClassNameValid(cacheLoader)) { throw new IllegalArgumentException(CliStrings.format(CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_CLASSNAME_FOR_CACHELOADER_0_IS_INVALID, new Object[] {cacheLoader})); if (cacheWriter != null && !isClassNameValid(cacheWriter)) { throw new IllegalArgumentException(CliStrings.format(CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_CLASSNAME_FOR_CACHEWRITER_0_IS_INVALID, new Object[] {cacheWriter})); if (!diskStoreExists(cache, diskStore)) { throw new IllegalArgumentException(CliStrings.format(CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_DISKSTORE_UNKNOWN_DISKSTORE_0, new Object[] {diskStore}));
validateGroups(cache, groups); cacheLoader = convertDefaultValue(cacheLoader, StringUtils.EMPTY_STRING); cacheWriter = convertDefaultValue(cacheWriter, StringUtils.EMPTY_STRING); if (cacheListenersSet != null && !cacheListenersSet.isEmpty()) { for (String cacheListener : cacheListenersSet) { if (!isClassNameValid(cacheListener)) { throw new IllegalArgumentException(CliStrings.format( CliStrings.ALTER_REGION__MSG__SPECIFY_VALID_CLASSNAME_FOR_CACHELISTENER_0_IS_INVALID, if (cacheLoader != null && !isClassNameValid(cacheLoader)) { throw new IllegalArgumentException(CliStrings.format( CliStrings.ALTER_REGION__MSG__SPECIFY_VALID_CLASSNAME_FOR_CACHELOADER_0_IS_INVALID, new Object[] { cacheLoader })); if (cacheWriter != null && !isClassNameValid(cacheWriter)) { throw new IllegalArgumentException(CliStrings.format( CliStrings.ALTER_REGION__MSG__SPECIFY_VALID_CLASSNAME_FOR_CACHEWRITER_0_IS_INVALID, new Object[] { cacheWriter }));
validateGroups(cache, groups.split(",")); if (cacheListenersSet != null && !cacheListenersSet.isEmpty()) { for (String cacheListener : cacheListenersSet) { if (!isClassNameValid(cacheListener)) { throw new IllegalArgumentException(CliStrings.format( CliStrings.ALTER_REGION__MSG__SPECIFY_VALID_CLASSNAME_FOR_CACHELISTENER_0_IS_INVALID, if (cacheLoader != null && !isClassNameValid(cacheLoader)) { throw new IllegalArgumentException(CliStrings.format( CliStrings.ALTER_REGION__MSG__SPECIFY_VALID_CLASSNAME_FOR_CACHELOADER_0_IS_INVALID, new Object[] { cacheLoader })); if (cacheWriter != null && !isClassNameValid(cacheWriter)) { throw new IllegalArgumentException(CliStrings.format( CliStrings.ALTER_REGION__MSG__SPECIFY_VALID_CLASSNAME_FOR_CACHEWRITER_0_IS_INVALID, new Object[] { cacheWriter }));
private void validateRegionPathAndParent(Cache cache, String regionPath) { if (regionPath == null || "".equals(regionPath)) { throw new IllegalArgumentException(CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_REGION_PATH); } // If a region path indicates a sub-region, check whether the parent region exists RegionPath regionPathData = new RegionPath(regionPath); String parentRegionPath = regionPathData.getParent(); if (parentRegionPath != null && !Region.SEPARATOR.equals(parentRegionPath)) { if (!regionExists(cache, parentRegionPath)) { throw new IllegalArgumentException(CliStrings.format(CliStrings.CREATE_REGION__MSG__PARENT_REGION_FOR_0_DOESNOT_EXIST, new Object[] {regionPath})); } } }
regionPathToUse = Region.SEPARATOR + regionPathToUse; Set<DistributedMember>[] regionMembersList = findMembersForRegion(cache, managementService, regionPathToUse); if (regionMembersList != null) { Set<DistributedMember> regionMembers = regionMembersList[0];
validateRegionPathAndParent(cache, regionPath); validateGroups(cache, groups); if (!regionExists(cache, useAttributesFrom)) { throw new IllegalArgumentException(CliStrings.format(CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_REGION_PATH_FOR_0_REGIONPATH_1_NOT_FOUND, new Object[] {CliStrings.CREATE_REGION__USEATTRIBUTESFROM, useAttributesFrom})); FetchRegionAttributesFunctionResult<Object, Object> regionAttributesResult = getRegionAttributes(cache, useAttributesFrom); RegionAttributes<?, ?> regionAttributes = regionAttributesResult.getRegionAttributes(); validateRegionFunctionArgs(cache, regionFunctionArgs);
if (useAttributesFrom != null && !useAttributesFrom.isEmpty() && regionExists(cache, useAttributesFrom)) { if (!regionExists(cache, useAttributesFrom)) { // check already done in createRegion !!! throw new IllegalArgumentException(CliStrings.format(CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_REGION_PATH_FOR_0_REGIONPATH_1_NOT_FOUND, new Object[] {CliStrings.CREATE_REGION__USEATTRIBUTESFROM, useAttributesFrom})); if (keyConstraint != null && !isClassNameValid(keyConstraint)) { throw new IllegalArgumentException(CliStrings.format(CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_CLASSNAME_FOR_KEYCONSTRAINT_0_IS_INVALID, new Object[] {keyConstraint})); if (valueConstraint != null && !isClassNameValid(valueConstraint)) { throw new IllegalArgumentException(CliStrings.format(CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_CLASSNAME_FOR_VALUECONSTRAINT_0_IS_INVALID, new Object[] {valueConstraint})); if (cacheListeners != null && !cacheListeners.isEmpty()) { for (String cacheListener : cacheListeners) { if (!isClassNameValid(cacheListener)) { throw new IllegalArgumentException(CliStrings.format(CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_CLASSNAME_FOR_CACHELISTENER_0_IS_INVALID, new Object[] {cacheListener})); if (cacheLoader != null && !isClassNameValid(cacheLoader)) { throw new IllegalArgumentException(CliStrings.format(CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_CLASSNAME_FOR_CACHELOADER_0_IS_INVALID, new Object[] {cacheLoader})); if (cacheWriter != null && !isClassNameValid(cacheWriter)) { throw new IllegalArgumentException(CliStrings.format(CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_CLASSNAME_FOR_CACHEWRITER_0_IS_INVALID, new Object[] {cacheWriter})); if (!diskStoreExists(cache, diskStore)) { throw new IllegalArgumentException(CliStrings.format(CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_DISKSTORE_UNKNOWN_DISKSTORE_0, new Object[] {diskStore}));
private void validateRegionPathAndParent(Cache cache, String regionPath) { if (regionPath == null || "".equals(regionPath)) { throw new IllegalArgumentException(CliStrings.CREATE_REGION__MSG__SPECIFY_VALID_REGION_PATH); } // If a region path indicates a sub-region, check whether the parent region exists RegionPath regionPathData = new RegionPath(regionPath); String parentRegionPath = regionPathData.getParent(); if (parentRegionPath != null && !Region.SEPARATOR.equals(parentRegionPath)) { if (!regionExists(cache, parentRegionPath)) { throw new IllegalArgumentException(CliStrings.format(CliStrings.CREATE_REGION__MSG__PARENT_REGION_FOR_0_DOESNOT_EXIST, new Object[] {regionPath})); } } }
regionPathToUse = Region.SEPARATOR + regionPathToUse; Set<DistributedMember>[] regionMembersList = findMembersForRegion(cache, managementService, regionPathToUse); if (regionMembersList != null) { Set<DistributedMember> regionMembers = regionMembersList[0];
@CliAvailabilityIndicator({ CliStrings.ALTER_REGION, CliStrings.CREATE_REGION, CliStrings.DESTROY_REGION }) public boolean isRegionCommandAvailable() { boolean isAvailable = true; // always available on server if (CliUtil.isGfshVM()) { // in gfsh check if connected //TODO - Abhishek: make this better isAvailable = getGfsh() != null && getGfsh().isConnectedAndReady(); } return isAvailable; } }
private static <K, V> FetchRegionAttributesFunctionResult<K, V> getRegionAttributes(Cache cache, String regionPath) { if (!isClusterwideSameConfig(cache, regionPath)) { throw new IllegalStateException(CliStrings.format(CliStrings.CREATE_REGION__MSG__USE_ATTRIBUTES_FORM_REGIONS_EXISTS_BUT_DIFFERENT_SCOPE_OR_DATAPOLICY_USE_DESCRIBE_REGION_FOR_0, regionPath));
membersList[0] = getMembersByIds(cache, regionMemberIds); membersList[1] = getMembersByIds(cache, localRegionMemberIds);