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;
     }

Reply via email to