GEODE-3267: Refactoring QueueCommands - updated based on feedback
Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/957d583e Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/957d583e Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/957d583e Branch: refs/heads/develop Commit: 957d583e54dc34c029885f32a54f0b25a3ac1094 Parents: 64de3b6 Author: YehEmily <emilyyeh1...@gmail.com> Authored: Mon Aug 7 15:25:24 2017 -0700 Committer: Kirk Lund <kl...@apache.org> Committed: Fri Aug 11 13:59:14 2017 -0700 ---------------------------------------------------------------------- .../cli/commands/DescribeRegionCommand.java | 62 +++++++++----------- .../cli/commands/ListRegionCommand.java | 51 ++++------------ .../controllers/RegionCommandsController.java | 7 ++- .../internal/security/TestCommand.java | 3 - 4 files changed, 43 insertions(+), 80 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/geode/blob/957d583e/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeRegionCommand.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeRegionCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeRegionCommand.java index eb74793..65a6153 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeRegionCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DescribeRegionCommand.java @@ -16,7 +16,6 @@ package org.apache.geode.management.internal.cli.commands; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; @@ -234,7 +233,7 @@ public class DescribeRegionCommand implements GfshCommand { for (String attributeName : attributes) { String attributeValue = attributesMap.get(attributeName); - String type, memName; + String type; if (!isTypeAdded) { type = attributeType; @@ -249,46 +248,39 @@ public class DescribeRegionCommand implements GfshCommand { private void writeFixedPartitionAttributesToTable(TabularResultData table, List<FixedPartitionAttributesInfo> fpaList, String member, boolean isMemberNameAdded) { + if (fpaList == null) { + return; + } - if (fpaList != null) { - boolean isTypeAdded = false; - final String blank = ""; - - Iterator<FixedPartitionAttributesInfo> fpaIter = fpaList.iterator(); - String type, memName; - - while (fpaIter.hasNext()) { - FixedPartitionAttributesInfo fpa = fpaIter.next(); - StringBuilder fpaBuilder = new StringBuilder(); - fpaBuilder.append(fpa.getPartitionName()); - fpaBuilder.append(','); + boolean isTypeAdded = false; + final String blank = ""; + String memName; - if (fpa.isPrimary()) { - fpaBuilder.append("Primary"); - } else { - fpaBuilder.append("Secondary"); - } - fpaBuilder.append(','); - fpaBuilder.append(fpa.getNumBuckets()); + for (FixedPartitionAttributesInfo fpa : fpaList) { + StringBuilder fpaBuilder = new StringBuilder(); + fpaBuilder.append(fpa.getPartitionName()); + fpaBuilder.append(','); - if (!isTypeAdded) { - type = ""; - isTypeAdded = true; - } else { - type = blank; - } + if (fpa.isPrimary()) { + fpaBuilder.append("Primary"); + } else { + fpaBuilder.append("Secondary"); + } + fpaBuilder.append(','); + fpaBuilder.append(fpa.getNumBuckets()); - if (!isMemberNameAdded) { - memName = member; - isMemberNameAdded = true; - } else { - memName = blank; - } + if (!isTypeAdded) { + isTypeAdded = true; + } - writeAttributeToTable(table, memName, type, "Fixed Partition", fpaBuilder.toString()); + if (!isMemberNameAdded) { + memName = member; + isMemberNameAdded = true; + } else { + memName = blank; } + writeAttributeToTable(table, memName, "", "Fixed Partition", fpaBuilder.toString()); } - } private boolean writeAttributesToTable(TabularResultData table, String attributeType, http://git-wip-us.apache.org/repos/asf/geode/blob/957d583e/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListRegionCommand.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListRegionCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListRegionCommand.java index 1ca310c..5e379b0 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListRegionCommand.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListRegionCommand.java @@ -16,9 +16,11 @@ package org.apache.geode.management.internal.cli.commands; import java.util.ArrayList; +import java.util.Arrays; import java.util.LinkedHashSet; +import java.util.List; import java.util.Set; -import java.util.TreeSet; +import java.util.stream.Collectors; import org.springframework.shell.core.annotation.CliCommand; import org.springframework.shell.core.annotation.CliOption; @@ -34,7 +36,6 @@ import org.apache.geode.management.internal.cli.domain.RegionInformation; import org.apache.geode.management.internal.cli.functions.GetRegionsFunction; import org.apache.geode.management.internal.cli.i18n.CliStrings; import org.apache.geode.management.internal.cli.result.ResultBuilder; -import org.apache.geode.management.internal.cli.result.TabularResultData; import org.apache.geode.management.internal.security.ResourceOperation; import org.apache.geode.security.ResourcePermission; @@ -54,7 +55,6 @@ public class ListRegionCommand implements GfshCommand { help = CliStrings.LIST_REGION__MEMBER__HELP) String[] memberNameOrId) { Result result = null; try { - Set<RegionInformation> regionInfoSet = new LinkedHashSet<>(); ResultCollector<?, ?> rc; Set<DistributedMember> targetMembers = CliUtil.findMembers(group, memberNameOrId); @@ -62,45 +62,18 @@ public class ListRegionCommand implements GfshCommand { return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); } - TabularResultData resultData = ResultBuilder.createTabularResultData(); rc = CliUtil.executeFunction(getRegionsFunction, null, targetMembers); - ArrayList<?> resultList = (ArrayList<?>) rc.getResult(); + List<?> resultList = (ArrayList<?>) rc.getResult(); - if (resultList != null) { - - for (Object resultObj : resultList) { - if (resultObj != null) { - if (resultObj instanceof Object[]) { - Object[] resultObjectArray = (Object[]) resultObj; - for (Object regionInfo : resultObjectArray) { - if (regionInfo instanceof RegionInformation) { - regionInfoSet.add((RegionInformation) regionInfo); - } - } - } - } - } - - Set<String> regionNames = new TreeSet<>(); - - for (RegionInformation regionInfo : regionInfoSet) { - regionNames.add(regionInfo.getName()); - Set<String> subRegionNames = regionInfo.getSubRegionNames(); - - regionNames.addAll(subRegionNames); - } - - for (String regionName : regionNames) { - resultData.accumulate("List of regions", regionName); - } - - if (!regionNames.isEmpty()) { - result = ResultBuilder.buildResult(resultData); - - } else { - result = ResultBuilder.createInfoResult(CliStrings.LIST_REGION__MSG__NOT_FOUND); - } + if (resultList == null) { + return null; } + + resultList.stream().filter(resultObj -> resultObj instanceof Object[]) + .map(resultObj -> (Object[]) resultObj).flatMap(Arrays::stream) + .filter(regionInfo -> regionInfo instanceof RegionInformation) + .map(regionInfo -> (RegionInformation) regionInfo) + .collect(Collectors.toCollection(LinkedHashSet::new)); } catch (FunctionInvocationTargetException e) { result = ResultBuilder.createGemFireErrorResult(CliStrings .format(CliStrings.COULD_NOT_EXECUTE_COMMAND_TRY_AGAIN, CliStrings.LIST_REGION)); http://git-wip-us.apache.org/repos/asf/geode/blob/957d583e/geode-core/src/main/java/org/apache/geode/management/internal/web/controllers/RegionCommandsController.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/web/controllers/RegionCommandsController.java b/geode-core/src/main/java/org/apache/geode/management/internal/web/controllers/RegionCommandsController.java index 6d30d74..815bc47 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/web/controllers/RegionCommandsController.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/web/controllers/RegionCommandsController.java @@ -14,9 +14,6 @@ */ package org.apache.geode.management.internal.web.controllers; -import org.apache.geode.internal.lang.StringUtils; -import org.apache.geode.management.internal.cli.i18n.CliStrings; -import org.apache.geode.management.internal.cli.util.CommandStringBuilder; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -25,6 +22,10 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.context.request.WebRequest; +import org.apache.geode.internal.lang.StringUtils; +import org.apache.geode.management.internal.cli.i18n.CliStrings; +import org.apache.geode.management.internal.cli.util.CommandStringBuilder; + /** * The ListRegionCommand and DescribeRegionCommand classes implement GemFire Management REST API web * service endpoints for the Gfsh Region Commands. http://git-wip-us.apache.org/repos/asf/geode/blob/957d583e/geode-core/src/test/java/org/apache/geode/management/internal/security/TestCommand.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/security/TestCommand.java b/geode-core/src/test/java/org/apache/geode/management/internal/security/TestCommand.java index e5b004c..178b6b0 100644 --- a/geode-core/src/test/java/org/apache/geode/management/internal/security/TestCommand.java +++ b/geode-core/src/test/java/org/apache/geode/management/internal/security/TestCommand.java @@ -278,8 +278,5 @@ public class TestCommand { // ShellCommand createTestCommand("disconnect"); - - // Misc commands - // createTestCommand("shutdown", clusterManage); } }