You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2013/10/17 14:50:11 UTC
svn commit: r1533063 - in /karaf/branches/karaf-2.x/client: pom.xml
src/main/java/org/apache/karaf/client/Main.java
Author: gnodet
Date: Thu Oct 17 12:50:10 2013
New Revision: 1533063
URL: http://svn.apache.org/r1533063
Log:
[KARAF-2521] The client script should find better default values
Modified:
karaf/branches/karaf-2.x/client/pom.xml
karaf/branches/karaf-2.x/client/src/main/java/org/apache/karaf/client/Main.java
Modified: karaf/branches/karaf-2.x/client/pom.xml
URL: http://svn.apache.org/viewvc/karaf/branches/karaf-2.x/client/pom.xml?rev=1533063&r1=1533062&r2=1533063&view=diff
==============================================================================
--- karaf/branches/karaf-2.x/client/pom.xml (original)
+++ karaf/branches/karaf-2.x/client/pom.xml Thu Oct 17 12:50:10 2013
@@ -75,6 +75,7 @@
<Bundle-Description>Shell client bundle for Apache Karaf.</Bundle-Description>
<Private-Package>
org.apache.karaf.client;-split-package:=merge-first,
+ org.apache.felix.utils.properties;-split-package:=merge-first,
org.slf4j;-split-package:=merge-first,
org.slf4j.spi;-split-package:=merge-first,
org.slf4j.helpers;-split-package:=merge-first,
Modified: karaf/branches/karaf-2.x/client/src/main/java/org/apache/karaf/client/Main.java
URL: http://svn.apache.org/viewvc/karaf/branches/karaf-2.x/client/src/main/java/org/apache/karaf/client/Main.java?rev=1533063&r1=1533062&r2=1533063&view=diff
==============================================================================
--- karaf/branches/karaf-2.x/client/src/main/java/org/apache/karaf/client/Main.java (original)
+++ karaf/branches/karaf-2.x/client/src/main/java/org/apache/karaf/client/Main.java Thu Oct 17 12:50:10 2013
@@ -25,6 +25,7 @@ import java.util.concurrent.ArrayBlockin
import java.util.concurrent.BlockingQueue;
import jline.Terminal;
+import org.apache.felix.utils.properties.Properties;
import org.apache.karaf.shell.console.jline.TerminalFactory;
import org.apache.sshd.ClientChannel;
import org.apache.sshd.ClientSession;
@@ -43,17 +44,30 @@ import org.slf4j.impl.SimpleLogger;
*/
public class Main {
+ private static final String ROLE_DELIMITER = ",";
+
public static void main(String[] args) throws Exception {
- String host = "localhost";
- int port = 8101;
- String user = "karaf";
- String password = null;
- StringBuilder sb = new StringBuilder();
+ Properties shellCfg = new Properties(new File(System.getProperty("karaf.home"), "etc/org.apache.karaf.shell.cfg"));
+
+ String host = shellCfg.getProperty("sshHost", "localhost");
+ int port = Integer.parseInt(shellCfg.getProperty("sshPort", "8101"));
int level = 1;
int retryAttempts = 0;
int retryDelay = 2;
boolean batch = false;
String file = null;
+ String user = "karaf";
+ String password = null;
+ StringBuilder command = new StringBuilder();
+
+ Properties usersCfg = new Properties(new File(System.getProperty("karaf.home") + "/etc/users.properties"));
+ if (!usersCfg.isEmpty()) {
+ user = (String) usersCfg.keySet().iterator().next();
+ password = (String) usersCfg.getProperty(user);
+ if (password.contains(ROLE_DELIMITER)) {
+ password = password.substring(0, password.indexOf(ROLE_DELIMITER));
+ }
+ }
for (int i = 0; i < args.length; i++) {
if (args[i].charAt(0) == '-') {
@@ -97,8 +111,8 @@ public class Main {
System.exit(1);
}
} else {
- sb.append(args[i]);
- sb.append(' ');
+ command.append(args[i]);
+ command.append(' ');
}
}
SimpleLogger.setLevel(level);
@@ -106,9 +120,9 @@ public class Main {
if (file != null) {
Reader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
try {
- sb.setLength(0);
+ command.setLength(0);
for (int c = reader.read(); c >= 0; c = reader.read()) {
- sb.append((char) c);
+ command.append((char) c);
}
} finally {
reader.close();
@@ -116,9 +130,9 @@ public class Main {
} else if (batch) {
// read all stdin
Reader reader = new BufferedReader(new InputStreamReader(System.in));
- sb.setLength(0);
+ command.setLength(0);
for (int c = reader.read(); c >= 0; c = reader.read()) {
- sb.append((char) c);
+ command.append((char) c);
}
}
@@ -164,8 +178,8 @@ public class Main {
}
}
ClientChannel channel;
- if (sb.length() > 0) {
- channel = session.createChannel("exec", sb.append("\n").toString());
+ if (command.length() > 0) {
+ channel = session.createChannel("exec", command.append("\n").toString());
channel.setIn(new ByteArrayInputStream(new byte[0]));
} else {
terminal = new TerminalFactory().getTerminal();