You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by cs...@apache.org on 2012/05/15 12:24:24 UTC

svn commit: r1338627 - in /karaf/trunk/instance/command: pom.xml src/main/java/org/apache/karaf/instance/command/ListCommand.java

Author: cschneider
Date: Tue May 15 10:24:23 2012
New Revision: 1338627

URL: http://svn.apache.org/viewvc?rev=1338627&view=rev
Log:
KARAF-1206 Adding table support to instance list

Modified:
    karaf/trunk/instance/command/pom.xml
    karaf/trunk/instance/command/src/main/java/org/apache/karaf/instance/command/ListCommand.java

Modified: karaf/trunk/instance/command/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/instance/command/pom.xml?rev=1338627&r1=1338626&r2=1338627&view=diff
==============================================================================
--- karaf/trunk/instance/command/pom.xml (original)
+++ karaf/trunk/instance/command/pom.xml Tue May 15 10:24:23 2012
@@ -39,6 +39,11 @@
 
     <dependencies>
         <dependency>
+            <groupId>org.apache.karaf.shell</groupId>
+            <artifactId>org.apache.karaf.shell.table</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
             <groupId>org.apache.karaf</groupId>
             <artifactId>org.osgi.core</artifactId>
             <scope>provided</scope>

Modified: karaf/trunk/instance/command/src/main/java/org/apache/karaf/instance/command/ListCommand.java
URL: http://svn.apache.org/viewvc/karaf/trunk/instance/command/src/main/java/org/apache/karaf/instance/command/ListCommand.java?rev=1338627&r1=1338626&r2=1338627&view=diff
==============================================================================
--- karaf/trunk/instance/command/src/main/java/org/apache/karaf/instance/command/ListCommand.java (original)
+++ karaf/trunk/instance/command/src/main/java/org/apache/karaf/instance/command/ListCommand.java Tue May 15 10:24:23 2012
@@ -16,9 +16,10 @@
  */
 package org.apache.karaf.instance.command;
 
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.commands.Command;
 import org.apache.karaf.instance.core.Instance;
+import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Option;
+import org.apache.karaf.shell.table.ShellTable;
 
 @Command(scope = "instance", name = "list", description = "Lists all existing container instances.")
 public class ListCommand extends InstanceCommandSupport {
@@ -31,51 +32,44 @@ public class ListCommand extends Instanc
 
     protected Object doExecute() throws Exception {
         Instance[] instances = getInstanceService().getInstances();
+        ShellTable table = new ShellTable();
+        table.column("SSH Port").alignRight();
+        table.column("RMI Registry").alignRight();
+        table.column("RMI Server").alignRight();
+        table.column("State");
+        table.column("PID");
+        table.column(getRightColumnHeader());
+        for (Instance instance : instances) {
+            table.addRow().addContent(
+                    instance.getSshPort(),
+                    instance.getRmiRegistryPort(),
+                    instance.getRmiServerPort(),
+                    instance.getState(),
+                    instance.getPid(),
+                    getRightColumnValue(instance));
+        }
+        table.print(System.out);
+        return null;
+    }
+
+    private String getRightColumnHeader() {
         if (javaOpts) {
-            System.out.println("  SSH Port   RMI Ports          State       Pid  JavaOpts");
+            return "JavaOpts";
         } else if (location) {
-            System.out.println("  SSH Port   RMI Ports          State       Pid  Location");
+            return "Location";
         } else {
-            System.out.println("  SSH Port   RMI Ports          State       Pid  Name");
+            return "Name";
         }
-        for (Instance instance : instances) {
-            StringBuilder sb = new StringBuilder();
-            sb.append('[');
-            String s = Integer.toString(instance.getSshPort());
-            for (int i = s.length(); i < 8; i++) {
-                sb.append(' ');
-            }
-            sb.append(s);
-            sb.append("] [");
-            String rmiRegistry = Integer.toString(instance.getRmiRegistryPort());
-            String rmiServer = Integer.toString(instance.getRmiServerPort());
-            sb.append(rmiRegistry).append("/").append(rmiServer);
-            for (int i = (rmiRegistry.length() + rmiServer.length() + 1); i < 15; i++) {
-                sb.append(' ');
-            }
-            sb.append("] [");
-            String state = instance.getState();
-            while (state.length() < "starting".length()) {
-                state += " ";
-            }
-            sb.append(state);
-            sb.append("] [");
-            s = Integer.toString(instance.getPid());
-            for (int i = s.length(); i < 5; i++) {
-                sb.append(' ');
-            }
-            sb.append(s);
-            sb.append("] ");
-            if (javaOpts) {
-                sb.append(instance.getJavaOpts());
-            } else if (location) {
-                sb.append(instance.getLocation());
-            } else {
-                sb.append(instance.getName());
-            }
-            System.out.println(sb.toString());
+    }
+
+    private String getRightColumnValue(Instance instance) {
+        if (javaOpts) {
+            return instance.getJavaOpts();
+        } else if (location) {
+            return instance.getLocation();
+        } else {
+            return instance.getName();
         }
-        return null;
     }
 
 }