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 2014/02/24 20:21:07 UTC

git commit: [KARAF-2778] The bin/shell script is broken

Repository: karaf
Updated Branches:
  refs/heads/master d0c4f4108 -> e3c87cef0


[KARAF-2778] The bin/shell script is broken


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/e3c87cef
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/e3c87cef
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/e3c87cef

Branch: refs/heads/master
Commit: e3c87cef088203eeee12f39ad049bbdad4012643
Parents: d0c4f41
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Mon Feb 24 20:20:49 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Mon Feb 24 20:20:59 2014 +0100

----------------------------------------------------------------------
 .../main/filtered-resources/resources/bin/shell |  2 +-
 .../filtered-resources/resources/bin/shell.bat  |  2 +-
 .../apache/karaf/shell/console/impl/Main.java   |  2 +-
 .../impl/jline/ConsoleFactoryService.java       |  2 +-
 .../shell/console/impl/jline/ConsoleImpl.java   | 32 +++++++++++++++-----
 .../shell/console/impl/ExampleSubclassMain.java |  2 +-
 .../console/impl/jline/ConsoleImplTest.java     |  2 +-
 7 files changed, 30 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/e3c87cef/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell
----------------------------------------------------------------------
diff --git a/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell b/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell
index beb9559..7f66eaa 100755
--- a/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell
+++ b/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell
@@ -331,7 +331,7 @@ run() {
         CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
     fi
 
-    exec "$JAVA" $JAVA_OPTS -Dkaraf.instances="${KARAF_HOME}/instances" -Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" -Dkaraf.etc="$KARAF_ETC" -Djava.io.tmpdir="$KARAF_DATA/tmp" -Djava.util.logging.config.file="$KARAF_BASE/etc/java.util.logging.properties" -Djavax.management.builder.initial=org.apache.karaf.management.boot.KarafMBeanServerBuilder $KARAF_OPTS $OPTS -classpath "$CLASSPATH" org.apache.karaf.shell.console.impl.Main --classpath="$KARAF_HOME/system" "$@"
+    exec "$JAVA" $JAVA_OPTS -Dkaraf.instances="${KARAF_HOME}/instances" -Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" -Dkaraf.etc="$KARAF_ETC" -Djava.io.tmpdir="$KARAF_DATA/tmp" -Djava.util.logging.config.file="$KARAF_BASE/etc/java.util.logging.properties" $KARAF_OPTS $OPTS -classpath "$CLASSPATH" org.apache.karaf.shell.console.impl.Main --classpath="$KARAF_HOME/system" "$@"
 }
 
 main() {

http://git-wip-us.apache.org/repos/asf/karaf/blob/e3c87cef/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell.bat
----------------------------------------------------------------------
diff --git a/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell.bat b/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell.bat
index 287bac3..c4734f8 100644
--- a/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell.bat
+++ b/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell.bat
@@ -129,7 +129,7 @@ set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\system\jline\jline\${jline.version}\jline
     if "%SHIFT%" == "true" SET ARGS=%2 %3 %4 %5 %6 %7 %8
     if not "%SHIFT%" == "true" SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8
     rem Execute the Java Virtual Machine
-    "%JAVA%" %JAVA_OPTS% %OPTS% -classpath "%CLASSPATH%" -Dkaraf.instances="%KARAF_HOME%\instances" -Dkaraf.home="%KARAF_HOME%" -Dkaraf.base="%KARAF_BASE%" -Dkaraf.etc="%KARAF_ETC%" -Djava.io.tmpdir="%KARAF_DATA%\tmp" -Djava.util.logging.config.file="%KARAF_BASE%\etc\java.util.logging.properties" -Djavax.management.builder.initial=org.apache.karaf.management.boot.KarafMBeanServerBuilder %KARAF_OPTS% org.apache.karaf.shell.console.impl.Main --classpath="%KARAF_HOME%\system" %ARGS%
+    "%JAVA%" %JAVA_OPTS% %OPTS% -classpath "%CLASSPATH%" -Dkaraf.instances="%KARAF_HOME%\instances" -Dkaraf.home="%KARAF_HOME%" -Dkaraf.base="%KARAF_BASE%" -Dkaraf.etc="%KARAF_ETC%" -Djava.io.tmpdir="%KARAF_DATA%\tmp" -Djava.util.logging.config.file="%KARAF_BASE%\etc\java.util.logging.properties" %KARAF_OPTS% org.apache.karaf.shell.console.impl.Main --classpath="%KARAF_HOME%\system" %ARGS%
 
 rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/e3c87cef/shell/console/src/main/java/org/apache/karaf/shell/console/impl/Main.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/impl/Main.java b/shell/console/src/main/java/org/apache/karaf/shell/console/impl/Main.java
index 4cc2686..2b0d0d9 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/impl/Main.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/impl/Main.java
@@ -230,7 +230,7 @@ public class Main {
      * @throws Exception
      */
     protected ConsoleImpl createConsole(CommandProcessorImpl commandProcessor, ThreadIO threadIO, InputStream in, PrintStream out, PrintStream err, Terminal terminal) throws Exception {
-        return new ConsoleImpl(commandProcessor, threadIO, in, out, err, terminal, null, null, null);
+        return new ConsoleImpl(commandProcessor, threadIO, in, out, err, terminal, null, null, null, false);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/karaf/blob/e3c87cef/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleFactoryService.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleFactoryService.java b/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleFactoryService.java
index 2bb853a..f32328c 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleFactoryService.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleFactoryService.java
@@ -60,7 +60,7 @@ public class ConsoleFactoryService implements ConsoleFactory {
     @Override
     public Console create(InputStream in, PrintStream out, PrintStream err, final Terminal terminal,
             String encoding, Runnable closeCallback) {
-        ConsoleImpl console = new ConsoleImpl(processor, threadIO, in, out, err, terminal, encoding, closeCallback, bundleContext);
+        ConsoleImpl console = new ConsoleImpl(processor, threadIO, in, out, err, terminal, encoding, closeCallback, bundleContext, true);
         CommandSession session = console.getSession();
         
         session.put("USER", ShellUtil.getCurrentUserName());

http://git-wip-us.apache.org/repos/asf/karaf/blob/e3c87cef/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleImpl.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleImpl.java b/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleImpl.java
index 1396cc5..24a7277 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleImpl.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleImpl.java
@@ -79,6 +79,7 @@ public class ConsoleImpl implements Console {
     private InputStream in;
     private PrintStream out;
     private PrintStream err;
+    private boolean secured;
     private Thread thread;
     private final BundleContext bundleContext;
 
@@ -90,15 +91,21 @@ public class ConsoleImpl implements Console {
                        Terminal term,
                        String encoding,
                        Runnable closeCallback,
-                       BundleContext bc) {
+                       BundleContext bc,
+                       boolean secured) {
         this.threadIO = threadIO;
         this.in = in;
         this.out = out;
         this.err = err;
+        this.secured = secured;
         this.queue = new ArrayBlockingQueue<Integer>(1024);
         this.terminal = term == null ? new UnsupportedTerminal() : term;
         this.consoleInput = new ConsoleInputStream();
-        this.session = new DelegateSession();
+        if (secured) {
+            this.session = new DelegateSession();
+        } else {
+            this.session = processor.createSession(consoleInput, out, err);
+        }
         this.session.put("SCOPE", "shell:bundle:*");
         this.session.put("SUBSHELL", "");
         this.setCompletionMode();
@@ -130,7 +137,7 @@ public class ConsoleImpl implements Console {
                 ((MemoryHistory)reader.getHistory()).setMaxSize(Integer.parseInt(maxSizeStr));   
             }
         }
-        
+
         session.put(".jline.reader", reader);
         session.put(".jline.history", reader.getHistory());
         Completer completer = createCompleter();
@@ -152,6 +159,10 @@ public class ConsoleImpl implements Console {
         return new File(System.getProperty("karaf.history", defaultHistoryPath));
     }
 
+    public boolean isSecured() {
+        return secured;
+    }
+
     public CommandSession getSession() {
         return session;
     }
@@ -178,7 +189,10 @@ public class ConsoleImpl implements Console {
     public void run() {
         try {
             threadIO.setStreams(consoleInput, out, err);
-            SecuredCommandProcessorImpl secCP = createSecuredCommandProcessor();
+            SecuredCommandProcessorImpl secCP = null;
+            if (secured) {
+                secCP = createSecuredCommandProcessor();
+            }
             thread = Thread.currentThread();
             CommandSessionHolder.setSession(session);
             running = true;
@@ -210,10 +224,12 @@ public class ConsoleImpl implements Console {
                     ShellUtil.logException(session, t);
                 }
             }
-            try {
-                secCP.close();
-            } catch (Throwable t) {
-                // Ignore
+            if (secured) {
+                try {
+                    secCP.close();
+                } catch (Throwable t) {
+                    // Ignore
+                }
             }
             close(true);
         } finally {

http://git-wip-us.apache.org/repos/asf/karaf/blob/e3c87cef/shell/console/src/test/java/org/apache/karaf/shell/console/impl/ExampleSubclassMain.java
----------------------------------------------------------------------
diff --git a/shell/console/src/test/java/org/apache/karaf/shell/console/impl/ExampleSubclassMain.java b/shell/console/src/test/java/org/apache/karaf/shell/console/impl/ExampleSubclassMain.java
index eb1be3e..6a3f8b2 100644
--- a/shell/console/src/test/java/org/apache/karaf/shell/console/impl/ExampleSubclassMain.java
+++ b/shell/console/src/test/java/org/apache/karaf/shell/console/impl/ExampleSubclassMain.java
@@ -47,7 +47,7 @@ public class ExampleSubclassMain extends Main  {
 
     @Override
     protected ConsoleImpl createConsole(CommandProcessorImpl commandProcessor, ThreadIO threadIO, InputStream in, PrintStream out, PrintStream err, Terminal terminal) throws Exception {
-        return new ConsoleImpl(commandProcessor, threadIO, in, out, err, terminal, null, null, null) {
+        return new ConsoleImpl(commandProcessor, threadIO, in, out, err, terminal, null, null, null, true) {
 
             /**
              * If you don't overwrite, then karaf will use the welcome message found in the

http://git-wip-us.apache.org/repos/asf/karaf/blob/e3c87cef/shell/console/src/test/java/org/apache/karaf/shell/console/impl/jline/ConsoleImplTest.java
----------------------------------------------------------------------
diff --git a/shell/console/src/test/java/org/apache/karaf/shell/console/impl/jline/ConsoleImplTest.java b/shell/console/src/test/java/org/apache/karaf/shell/console/impl/jline/ConsoleImplTest.java
index e4648f9..24b229b 100644
--- a/shell/console/src/test/java/org/apache/karaf/shell/console/impl/jline/ConsoleImplTest.java
+++ b/shell/console/src/test/java/org/apache/karaf/shell/console/impl/jline/ConsoleImplTest.java
@@ -74,7 +74,7 @@ public class ConsoleImplTest {
         }).anyTimes();
         EasyMock.replay(bc);
 
-        final ConsoleImpl console = new ConsoleImpl(null, new ThreadIOImpl(), System.in, System.out, System.err, null, "UTF-8", null, bc);
+        final ConsoleImpl console = new ConsoleImpl(null, new ThreadIOImpl(), System.in, System.out, System.err, null, "UTF-8", null, bc, true);
         assertTrue(console.session instanceof DelegateSession);
 
         console.session.put("foo", "bar");