diff --git a/cli/pom.xml b/cli/pom.xml index 2cf25e8..183e3a4 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -44,6 +44,16 @@ org.apache.xmlrpc xmlrpc-client 3.1.3 + + + junit + junit + + + xml-apis + xml-apis + + jline @@ -55,10 +65,5 @@ commons-cli 1.3.1 - - log4j - log4j - 1.2.17 - diff --git a/cli/src/main/java/de/hsadmin/jscli/Main.java b/cli/src/main/java/de/hsadmin/jscli/Main.java index bb4a82c..b167754 100644 --- a/cli/src/main/java/de/hsadmin/jscli/Main.java +++ b/cli/src/main/java/de/hsadmin/jscli/Main.java @@ -62,7 +62,7 @@ public class Main { } if (cmdParser.isInteractive()) { String command = console.readInput(); - while (!("bye".equals(command.trim()) || "exit".equals(command.trim()) || "quit".equals(command.trim()))) { + while (!isExitCommand(command)) { try { scriptClient.execute(command); console.println(formatter.format(scriptClient.getLastRpcResult())); @@ -78,6 +78,11 @@ public class Main { } } + private static boolean isExitCommand(String command) { + String trimmedCommand = command.trim(); + return "bye".equals(trimmedCommand) || "exit".equals(trimmedCommand) || "quit".equals(trimmedCommand); + } + private static String findRootException(final Exception exp) { Throwable cause = exp; while (cause.getCause() != null && cause.getCause() != cause) { diff --git a/cli/src/main/java/de/hsadmin/jscli/RpcClient.java b/cli/src/main/java/de/hsadmin/jscli/RpcClient.java index 153e139..268c70e 100644 --- a/cli/src/main/java/de/hsadmin/jscli/RpcClient.java +++ b/cli/src/main/java/de/hsadmin/jscli/RpcClient.java @@ -75,7 +75,9 @@ public class RpcClient { } return list; } catch (XmlRpcException e) { - throw new JSCliException(e); + final String message = e.getLocalizedMessage(); + final int messageStartIndex = message.lastIndexOf("Exception:") + 10; + throw new JSCliException(message.substring(messageStartIndex).trim()); } }