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