Author: rmannibucau
Date: Wed May  9 16:07:06 2012
New Revision: 1336258

URL: http://svn.apache.org/viewvc?rev=1336258&view=rev
Log:
command doesn't need the command, they know it if it is mandatory. It avoids 
boilerplate parsing for simple commands.

Modified:
    
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/CliRunnable.java
    
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/StreamManager.java
    
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/CatCommand.java
    
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ClassLoaderCommand.java
    
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/Deploy.java
    
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/HelpCommand.java
    
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/LocalJMXCommand.java
    
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/LsCommand.java
    
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/PartCommand.java
    
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/PathCommand.java
    
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ScriptCommand.java
    
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ScriptFileCommand.java
    
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/Undeploy.java

Modified: 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/CliRunnable.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/CliRunnable.java?rev=1336258&r1=1336257&r2=1336258&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/CliRunnable.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/CliRunnable.java
 Wed May  9 16:07:06 2012
@@ -19,6 +19,7 @@ package org.apache.openejb.server.cli;
 import jline.ConsoleReader;
 import jline.FileNameCompletor;
 import jline.SimpleCompletor;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.openejb.config.ConfigurableClasspathArchive;
 import org.apache.openejb.server.cli.command.AbstractCommand;
 import org.apache.openejb.server.cli.command.Command;
@@ -208,9 +209,11 @@ public class CliRunnable implements Runn
                 }
 
                 Class<?> cmdClass = null;
+                String key = null;
                 for (Map.Entry<String, Class<?>> cmd : COMMANDS.entrySet()) {
                     if (line.startsWith(cmd.getKey())) {
                         cmdClass = cmd.getValue();
+                        key = cmd.getKey();
                         break;
                     }
                 }
@@ -228,7 +231,7 @@ public class CliRunnable implements Runn
 
                     try {
                         final AbstractCommand cmdInstance = (AbstractCommand) 
recipe.create();
-                        cmdInstance.execute(line);
+                        cmdInstance.execute(trunc(line, key));
                     } catch (Exception e) {
                         streamManager.writeErr(e);
                     }
@@ -244,6 +247,21 @@ public class CliRunnable implements Runn
         }
     }
 
+    private String trunc(final String line, final String cmd) {
+        if (line.length() == cmd.length()) {
+            return "";
+        }
+        final String trunc = line.substring(cmd.length());
+        int idx = 0;
+        while (trunc.charAt(idx) == ' ') {
+            idx++;
+        }
+        if (idx < trunc.length()) {
+            return trunc.substring(idx);
+        }
+        return "";
+    }
+
     private String prompt() {
         final StringBuilder prompt = new StringBuilder("");
         if (username != null) {

Modified: 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/StreamManager.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/StreamManager.java?rev=1336258&r1=1336257&r2=1336258&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/StreamManager.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/StreamManager.java
 Wed May  9 16:07:06 2012
@@ -121,4 +121,10 @@ public class StreamManager {
     public void writeErr(final String s) {
         write(serr, s);
     }
+
+    public void writeOut(final String text, final String sep) {
+        for (String line : text.split(sep)) {
+            writeOut(line);
+        }
+    }
 }

Modified: 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/CatCommand.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/CatCommand.java?rev=1336258&r1=1336257&r2=1336258&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/CatCommand.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/CatCommand.java
 Wed May  9 16:07:06 2012
@@ -29,7 +29,7 @@ public class CatCommand extends PathComm
     public void execute(final String cmd) {
         final File file;
         try {
-            file = resolve("cat", cmd);
+            file = resolve(cmd);
         } catch (IllegalArgumentException iae) {
             streamManager.writeErr(iae.getMessage());
             return;

Modified: 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ClassLoaderCommand.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ClassLoaderCommand.java?rev=1336258&r1=1336257&r2=1336258&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ClassLoaderCommand.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ClassLoaderCommand.java
 Wed May  9 16:07:06 2012
@@ -92,11 +92,12 @@ public class ClassLoaderCommand extends 
         }
     }
 
-    protected String extractAppName(final String cmd) {
-        if (CLASSLOADER_CMD.length() == cmd.length()) {
+    protected String extractAppName(final String raw) {
+        final String cmd = raw.trim();
+        if (0 == cmd.length()) {
             return "";
         }
-        return cmd.substring(CLASSLOADER_CMD.length()).trim();
+        return cmd;
     }
 
     private class URLComparator implements Comparator<URL> {

Modified: 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/Deploy.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/Deploy.java?rev=1336258&r1=1336257&r2=1336258&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/Deploy.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/Deploy.java
 Wed May  9 16:07:06 2012
@@ -24,7 +24,7 @@ public class Deploy extends AbstractComm
     @Override
     public void execute(String cmd) {
         try {
-            lookup(Deployer.class, 
"openejb/DeployerBusinessRemote").deploy(cmd.substring(6).trim());
+            lookup(Deployer.class, 
"openejb/DeployerBusinessRemote").deploy(cmd.trim());
         } catch (Exception e) {
             streamManager.writeErr(e);
         }

Modified: 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/HelpCommand.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/HelpCommand.java?rev=1336258&r1=1336257&r2=1336258&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/HelpCommand.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/HelpCommand.java
 Wed May  9 16:07:06 2012
@@ -29,7 +29,7 @@ public class HelpCommand extends Abstrac
                 final Class<?> clazz = command.getValue();
                 final Command annotation = clazz.getAnnotation(Command.class);
                 streamManager.writeOut(annotation.name() + ": " + 
annotation.description());
-                streamManager.writeOut("\tUsage: " + annotation.usage());
+                streamManager.writeOut("\tUsage: " + annotation.usage(), "\n");
             } catch (Exception e) {
                 // ignored = command not available
             }

Modified: 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/LocalJMXCommand.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/LocalJMXCommand.java?rev=1336258&r1=1336257&r2=1336258&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/LocalJMXCommand.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/LocalJMXCommand.java
 Wed May  9 16:07:06 2012
@@ -42,7 +42,7 @@ import org.apache.xbean.propertyeditor.P
 public class LocalJMXCommand extends AbstractCommand {
     @Override
     public void execute(final String cmd) {
-        final String jmxCmd = cmd.substring("jmx".length()).trim();
+        final String jmxCmd = cmd.trim();
         if ("list".equals(jmxCmd)) {
             listMBeans();
             return;

Modified: 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/LsCommand.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/LsCommand.java?rev=1336258&r1=1336257&r2=1336258&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/LsCommand.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/LsCommand.java
 Wed May  9 16:07:06 2012
@@ -24,7 +24,7 @@ public class LsCommand extends PathComma
     public void execute(final String cmd) {
         final File file;
         try {
-            file = resolve("ls", cmd);
+            file = resolve(cmd);
         } catch (IllegalArgumentException iae) {
             streamManager.writeErr(iae.getMessage());
             return;

Modified: 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/PartCommand.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/PartCommand.java?rev=1336258&r1=1336257&r2=1336258&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/PartCommand.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/PartCommand.java
 Wed May  9 16:07:06 2012
@@ -27,7 +27,7 @@ import java.util.regex.Pattern;
 
 @Command(name = "part", usage = "part <first line>-<last line> <path>", 
description = "print the specified line range of a file (in tomee directories 
only)")
 public class PartCommand extends PathCommand {
-    private static final Pattern PATTERN = Pattern.compile("part 
([0-9]*)-([0-9]*) (.*)");
+    private static final Pattern PATTERN = Pattern.compile("([0-9]*)-([0-9]*) 
(.*)");
     @Override
     public void execute(final String cmd) {
         final Matcher matcher = PATTERN.matcher(cmd);
@@ -49,7 +49,7 @@ public class PartCommand extends PathCom
         final String path = matcher.group(3);
         final File file;
         try {
-            file = resolve(null, path);
+            file = resolve(path);
         } catch (IllegalArgumentException iae) {
             streamManager.writeErr(iae.getMessage());
             return;

Modified: 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/PathCommand.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/PathCommand.java?rev=1336258&r1=1336257&r2=1336258&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/PathCommand.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/PathCommand.java
 Wed May  9 16:07:06 2012
@@ -24,15 +24,11 @@ public abstract class PathCommand extend
     public static final String HOME = "$home";
     public static final String BASE = "$base";
 
-    protected File resolve(final String prefix, final String cmd) {
-        if (cmd == null || (prefix != null && cmd.trim().equals(prefix)) || 
cmd.trim().isEmpty()) {
+    protected File resolve(final String cmd) {
+        if (cmd == null || cmd.trim().isEmpty()) {
             return SystemInstance.get().getBase().getDirectory();
         }
-        int idx = 0;
-        if (prefix != null) {
-            idx = prefix.length() + 1;
-        }
-        String path = cmd.substring(idx);
+        String path = cmd.trim();
         File workingFile = new File(path);
         if ((!path.startsWith(HOME) && !path.startsWith(BASE) && 
workingFile.getPath().equals(workingFile.getAbsolutePath())) || 
path.startsWith("..")) {
             throw new IllegalArgumentException("path should start with " + 
BASE + " or " + HOME + " or be relative");

Modified: 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ScriptCommand.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ScriptCommand.java?rev=1336258&r1=1336257&r2=1336258&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ScriptCommand.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ScriptCommand.java
 Wed May  9 16:07:06 2012
@@ -35,8 +35,7 @@ public class ScriptCommand extends Abstr
         }
     }
 
-    private void parse(final String cmd) {
-        final String parseableCmd = cmd.substring(7);
+    private void parse(final String parseableCmd) {
         final int spaceIdx = parseableCmd.indexOf(" ");
         if (spaceIdx < 0) {
             throw new IllegalArgumentException("bad syntax, see help");

Modified: 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ScriptFileCommand.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ScriptFileCommand.java?rev=1336258&r1=1336257&r2=1336258&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ScriptFileCommand.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/ScriptFileCommand.java
 Wed May  9 16:07:06 2012
@@ -68,7 +68,7 @@ public class ScriptFileCommand extends S
     }
 
     private void parse(final String cmd) {
-        script = cmd.substring(12);
+        script = cmd;
         final int dotIdx = script.lastIndexOf(".");
         if (dotIdx < 0) {
             throw new IllegalArgumentException("bad syntax, see help");

Modified: 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/Undeploy.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/Undeploy.java?rev=1336258&r1=1336257&r2=1336258&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/Undeploy.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-common-cli/src/main/java/org/apache/openejb/server/cli/command/Undeploy.java
 Wed May  9 16:07:06 2012
@@ -24,7 +24,7 @@ public class Undeploy extends AbstractCo
     @Override
     public void execute(String cmd) {
         try {
-            lookup(Deployer.class, 
"openejb/DeployerBusinessRemote").undeploy(cmd.substring(8).trim());
+            lookup(Deployer.class, 
"openejb/DeployerBusinessRemote").undeploy(cmd.trim());
         } catch (Exception e) {
             streamManager.writeErr(e);
         }


Reply via email to