Repository: karaf-cellar Updated Branches: refs/heads/master 5379aef34 -> a1233c361
[KARAF-3051] Use shell table in Cellar core commands Project: http://git-wip-us.apache.org/repos/asf/karaf-cellar/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf-cellar/commit/a1233c36 Tree: http://git-wip-us.apache.org/repos/asf/karaf-cellar/tree/a1233c36 Diff: http://git-wip-us.apache.org/repos/asf/karaf-cellar/diff/a1233c36 Branch: refs/heads/master Commit: a1233c361272ed17a420f8068a2e100b20ba2f0f Parents: 5379aef Author: Jean-Baptiste Onofré <[email protected]> Authored: Thu Jun 19 07:41:16 2014 +0200 Committer: Jean-Baptiste Onofré <[email protected]> Committed: Thu Jun 19 07:41:16 2014 +0200 ---------------------------------------------------------------------- shell/pom.xml | 4 ++++ .../karaf/cellar/shell/NodesListCommand.java | 16 ++++++++++------ .../apache/karaf/cellar/shell/SyncCommand.java | 2 +- .../cellar/shell/consumer/ConsumerSupport.java | 16 +++++++++------- .../karaf/cellar/shell/group/GroupSupport.java | 20 +++++++++++--------- .../cellar/shell/handler/HandlersSupport.java | 17 ++++++++++------- .../cellar/shell/producer/ProducerSupport.java | 16 +++++++++------- 7 files changed, 54 insertions(+), 37 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/a1233c36/shell/pom.xml ---------------------------------------------------------------------- diff --git a/shell/pom.xml b/shell/pom.xml index 6426e24..bd93d8b 100644 --- a/shell/pom.xml +++ b/shell/pom.xml @@ -71,6 +71,10 @@ <groupId>org.apache.karaf.cellar</groupId> <artifactId>org.apache.karaf.cellar.utils</artifactId> </dependency> + <dependency> + <groupId>org.apache.karaf.shell</groupId> + <artifactId>org.apache.karaf.shell.table</artifactId> + </dependency> <!-- Logging Dependencies --> <dependency> <groupId>org.slf4j</groupId> http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/a1233c36/shell/src/main/java/org/apache/karaf/cellar/shell/NodesListCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/karaf/cellar/shell/NodesListCommand.java b/shell/src/main/java/org/apache/karaf/cellar/shell/NodesListCommand.java index 822538f..d8559f8 100644 --- a/shell/src/main/java/org/apache/karaf/cellar/shell/NodesListCommand.java +++ b/shell/src/main/java/org/apache/karaf/cellar/shell/NodesListCommand.java @@ -15,26 +15,30 @@ package org.apache.karaf.cellar.shell; import org.apache.karaf.cellar.core.Node; import org.apache.karaf.shell.commands.Command; +import org.apache.karaf.shell.table.ShellTable; import java.util.Set; @Command(scope = "cluster", name = "node-list", description = "List the nodes in the cluster") public class NodesListCommand extends ClusterCommandSupport { - private static final String HEADER_FORMAT = " %-30s %-20s %-5s"; - private static final String OUTPUT_FORMAT = "%1s [%-30s] [%-20s] [%5s]"; @Override protected Object doExecute() throws Exception { Set<Node> nodes = clusterManager.listNodes(); if (nodes != null && !nodes.isEmpty()) { - System.out.println(String.format(HEADER_FORMAT, "ID", "Host Name", "Port")); + ShellTable table = new ShellTable(); + table.column(" "); + table.column("Id"); + table.column("Host Name"); + table.column("Port"); for (Node node : nodes) { - String mark = " "; + String local = ""; if (node.equals(clusterManager.getNode())) - mark = "*"; - System.out.println(String.format(OUTPUT_FORMAT, mark, node.getId(), node.getHost(), node.getPort())); + local = "x"; + table.addRow().addContent(local, node.getId(), node.getHost(), node.getPort()); } + table.print(System.out); } else { System.err.println("No node found in the cluster"); } http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/a1233c36/shell/src/main/java/org/apache/karaf/cellar/shell/SyncCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/karaf/cellar/shell/SyncCommand.java b/shell/src/main/java/org/apache/karaf/cellar/shell/SyncCommand.java index 4782abd..f5fefa9 100644 --- a/shell/src/main/java/org/apache/karaf/cellar/shell/SyncCommand.java +++ b/shell/src/main/java/org/apache/karaf/cellar/shell/SyncCommand.java @@ -38,7 +38,7 @@ public class SyncCommand extends ClusterCommandSupport { System.out.print(" sync " + synchronizer.getClass() + " ..."); synchronizer.pull(group); synchronizer.push(group); - System.out.println("OK"); + System.out.println("done"); } bundleContext.ungetService(ref); } http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/a1233c36/shell/src/main/java/org/apache/karaf/cellar/shell/consumer/ConsumerSupport.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/karaf/cellar/shell/consumer/ConsumerSupport.java b/shell/src/main/java/org/apache/karaf/cellar/shell/consumer/ConsumerSupport.java index 38ecfee..daa80b0 100644 --- a/shell/src/main/java/org/apache/karaf/cellar/shell/consumer/ConsumerSupport.java +++ b/shell/src/main/java/org/apache/karaf/cellar/shell/consumer/ConsumerSupport.java @@ -18,6 +18,7 @@ import org.apache.karaf.cellar.core.control.ConsumerSwitchCommand; import org.apache.karaf.cellar.core.control.ConsumerSwitchResult; import org.apache.karaf.cellar.core.control.SwitchStatus; import org.apache.karaf.cellar.shell.ClusterCommandSupport; +import org.apache.karaf.shell.table.ShellTable; import java.util.HashSet; import java.util.List; @@ -29,9 +30,6 @@ import java.util.Set; */ public abstract class ConsumerSupport extends ClusterCommandSupport { - protected static final String HEADER_FORMAT = " %-30s %-5s"; - protected static final String OUTPUT_FORMAT = "%1s [%-30s] [%-5s]"; - protected Object doExecute(List<String> nodeIds, SwitchStatus status) throws Exception { ConsumerSwitchCommand command = new ConsumerSwitchCommand(clusterManager.generateId()); @@ -68,19 +66,23 @@ public abstract class ConsumerSupport extends ClusterCommandSupport { if (results == null || results.isEmpty()) { System.out.println("No result received within given timeout"); } else { - System.out.println(String.format(HEADER_FORMAT, "Node", "Status")); + ShellTable table = new ShellTable(); + table.column(" "); + table.column("Node"); + table.column("Status"); for (Node node : results.keySet()) { - String local = " "; + String local = ""; if (node.equals(clusterManager.getNode())) { - local = "*"; + local = "x"; } ConsumerSwitchResult result = results.get(node); String statusString = "OFF"; if (result.getStatus()) { statusString = "ON"; } - System.out.println(String.format(OUTPUT_FORMAT, local, node.getId(), statusString)); + table.addRow().addContent(local, node.getId(), statusString); } + table.print(System.out); } return null; } http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/a1233c36/shell/src/main/java/org/apache/karaf/cellar/shell/group/GroupSupport.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/karaf/cellar/shell/group/GroupSupport.java b/shell/src/main/java/org/apache/karaf/cellar/shell/group/GroupSupport.java index dbe5cdb..3f1605a 100644 --- a/shell/src/main/java/org/apache/karaf/cellar/shell/group/GroupSupport.java +++ b/shell/src/main/java/org/apache/karaf/cellar/shell/group/GroupSupport.java @@ -19,6 +19,7 @@ import org.apache.karaf.cellar.core.control.ManageGroupAction; import org.apache.karaf.cellar.core.control.ManageGroupCommand; import org.apache.karaf.cellar.core.control.ManageGroupResult; import org.apache.karaf.cellar.shell.ClusterCommandSupport; +import org.apache.karaf.shell.table.ShellTable; import java.util.Collection; import java.util.HashSet; @@ -30,9 +31,6 @@ import java.util.Set; */ public abstract class GroupSupport extends ClusterCommandSupport { - protected static final String HEADER_FORMAT = " %-20s %s"; - protected static final String OUTPUT_FORMAT = "%1s [%-20s] [%s]"; - protected Object doExecute(ManageGroupAction action, String group, Group source, Collection<String> nodes) throws Exception { return doExecute(action, group, source, nodes, true); } @@ -86,30 +84,34 @@ public abstract class GroupSupport extends ClusterCommandSupport { if (results == null || results.isEmpty()) { System.out.println("No result received within given timeout"); } else { - System.out.println(String.format(HEADER_FORMAT, "Group", "Members")); + ShellTable table = new ShellTable(); + table.column(" "); + table.column("Group"); + table.column("Members"); for (Node node : results.keySet()) { ManageGroupResult result = results.get(node); if (result != null && result.getGroups() != null) { for (Group g : result.getGroups()) { StringBuffer buffer = new StringBuffer(); if (g.getNodes() != null && !g.getNodes().isEmpty()) { - String mark = " "; + String local = ""; for (Node member : g.getNodes()) { // display only up and running nodes in the cluster if (clusterManager.findNodeById(member.getId()) != null) { buffer.append(member.getId()); if (member.equals(clusterManager.getNode())) { - mark = "*"; - buffer.append(mark); + local = "x"; + buffer.append("(x)"); } buffer.append(" "); } } - System.out.println(String.format(OUTPUT_FORMAT, mark, g.getName(), buffer.toString())); - } else System.out.println(String.format(OUTPUT_FORMAT, "", g.getName(), "")); + table.addRow().addContent(local, g.getName(), buffer.toString()); + } else table.addRow().addContent("", g.getName(), ""); } } } + table.print(System.out); } } return null; http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/a1233c36/shell/src/main/java/org/apache/karaf/cellar/shell/handler/HandlersSupport.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/karaf/cellar/shell/handler/HandlersSupport.java b/shell/src/main/java/org/apache/karaf/cellar/shell/handler/HandlersSupport.java index c4c0271..e848dbd 100644 --- a/shell/src/main/java/org/apache/karaf/cellar/shell/handler/HandlersSupport.java +++ b/shell/src/main/java/org/apache/karaf/cellar/shell/handler/HandlersSupport.java @@ -17,6 +17,7 @@ import org.apache.karaf.cellar.core.Node; import org.apache.karaf.cellar.core.control.ManageHandlersCommand; import org.apache.karaf.cellar.core.control.ManageHandlersResult; import org.apache.karaf.cellar.shell.ClusterCommandSupport; +import org.apache.karaf.shell.table.ShellTable; import java.util.HashSet; import java.util.List; @@ -28,9 +29,6 @@ import java.util.Set; */ public abstract class HandlersSupport extends ClusterCommandSupport { - protected static final String HEADER_FORMAT = " %-30s %-5s %s"; - protected static final String OUTPUT_FORMAT = "%1s [%-30s] [%-5s] %s"; - protected Object doExecute(String handlerName, List<String> nodeIds, Boolean status) throws Exception { ManageHandlersCommand command = new ManageHandlersCommand(clusterManager.generateId()); @@ -68,12 +66,16 @@ public abstract class HandlersSupport extends ClusterCommandSupport { if (results == null || results.isEmpty()) { System.out.println("No result received within given timeout"); } else { - System.out.println(String.format(HEADER_FORMAT, "Node", "Status", "Event Handler")); + ShellTable table = new ShellTable(); + table.column(" "); + table.column("Node"); + table.column("Status"); + table.column("Event Handler"); for (Map.Entry<Node,ManageHandlersResult> handlersResultEntry : results.entrySet()) { Node node = handlersResultEntry.getKey(); - String local = " "; + String local = ""; if (node.equals(clusterManager.getNode())) { - local = "*"; + local = "x"; } ManageHandlersResult result = handlersResultEntry.getValue(); if (result != null && result.getHandlers() != null) { @@ -81,10 +83,11 @@ public abstract class HandlersSupport extends ClusterCommandSupport { for (Map.Entry<String,String> handlerEntry: result.getHandlers().entrySet()) { String handler = handlerEntry.getKey(); String s = handlerEntry.getValue(); - System.out.println(String.format(OUTPUT_FORMAT, local, node.getId(), s, handler)); + table.addRow().addContent(local, node.getId(), s, handler); } } } + table.print(System.out); } return null; } http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/a1233c36/shell/src/main/java/org/apache/karaf/cellar/shell/producer/ProducerSupport.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/karaf/cellar/shell/producer/ProducerSupport.java b/shell/src/main/java/org/apache/karaf/cellar/shell/producer/ProducerSupport.java index 602abb7..a37bf96 100644 --- a/shell/src/main/java/org/apache/karaf/cellar/shell/producer/ProducerSupport.java +++ b/shell/src/main/java/org/apache/karaf/cellar/shell/producer/ProducerSupport.java @@ -18,6 +18,7 @@ import org.apache.karaf.cellar.core.control.ProducerSwitchCommand; import org.apache.karaf.cellar.core.control.ProducerSwitchResult; import org.apache.karaf.cellar.core.control.SwitchStatus; import org.apache.karaf.cellar.shell.ClusterCommandSupport; +import org.apache.karaf.shell.table.ShellTable; import java.util.HashSet; import java.util.List; @@ -29,9 +30,6 @@ import java.util.Set; */ public abstract class ProducerSupport extends ClusterCommandSupport { - protected static final String HEADER_FORMAT = " %-30s %-5s"; - protected static final String OUTPUT_FORMAT = "%1s [%-30s] [%-5s]"; - protected Object doExecute(List<String> nodeIds, SwitchStatus status) throws Exception { ProducerSwitchCommand command = new ProducerSwitchCommand(clusterManager.generateId()); @@ -68,19 +66,23 @@ public abstract class ProducerSupport extends ClusterCommandSupport { if (results == null || results.isEmpty()) { System.out.println("No result received within given timeout"); } else { - System.out.println(String.format(HEADER_FORMAT, "Node", "Status")); + ShellTable table = new ShellTable(); + table.column(" "); + table.column("Node"); + table.column("Status"); for (Node node : results.keySet()) { - String local = " "; + String local = ""; if (node.equals(clusterManager.getNode())) { - local = "*"; + local = "x"; } ProducerSwitchResult result = results.get(node); String statusString = "OFF"; if (result.getStatus()) { statusString = "ON"; } - System.out.println(String.format(OUTPUT_FORMAT, local, node.getId(), statusString)); + table.addRow().addContent(local, node.getId(), statusString); } + table.print(System.out); } return null; }
