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