You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by cs...@apache.org on 2012/07/13 17:20:44 UTC
svn commit: r1361269 - in /karaf/trunk: ./ assemblies/features/framework/
assemblies/features/framework/src/main/filtered-resources/resources/bin/
client/ shell/commands/ shell/console/
shell/console/src/main/java/org/apache/karaf/shell/console/ shell/...
Author: cschneider
Date: Fri Jul 13 15:20:43 2012
New Revision: 1361269
URL: http://svn.apache.org/viewvc?rev=1361269&view=rev
Log:
KARAF-1641 Use jline as bundle and remove special Activator for gogo
Removed:
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/Activator.java
Modified:
karaf/trunk/assemblies/features/framework/pom.xml
karaf/trunk/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell
karaf/trunk/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell.bat
karaf/trunk/client/pom.xml
karaf/trunk/pom.xml
karaf/trunk/shell/commands/pom.xml
karaf/trunk/shell/console/pom.xml
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/ConsoleFactory.java
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleFactoryService.java
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleImpl.java
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/LocalConsoleManager.java
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/StreamWrapUtil.java
karaf/trunk/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java
karaf/trunk/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java
Modified: karaf/trunk/assemblies/features/framework/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/assemblies/features/framework/pom.xml?rev=1361269&r1=1361268&r2=1361269&view=diff
==============================================================================
--- karaf/trunk/assemblies/features/framework/pom.xml (original)
+++ karaf/trunk/assemblies/features/framework/pom.xml Fri Jul 13 15:20:43 2012
@@ -74,12 +74,6 @@
<dependency>
<groupId>jline</groupId>
<artifactId>jline</artifactId>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <scope>runtime</scope>
</dependency>
<!-- listed in source feature.xml with explicit startlevel -->
Modified: karaf/trunk/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell
URL: http://svn.apache.org/viewvc/karaf/trunk/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell?rev=1361269&r1=1361268&r2=1361269&view=diff
==============================================================================
--- karaf/trunk/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell (original)
+++ karaf/trunk/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell Fri Jul 13 15:20:43 2012
@@ -265,6 +265,7 @@ setupDefaults() {
# Setup classpath
CLASSPATH="$KARAF_HOME/system/org/apache/karaf/shell/org.apache.karaf.shell.console/${project.version}/org.apache.karaf.shell.console-${project.version}.jar"
CLASSPATH="$CLASSPATH:$KARAF_HOME/system/org/ops4j/pax/logging/pax-logging-api/${pax.logging.version}/pax-logging-api-${pax.logging.version}.jar"
+ CLASSPATH="$CLASSPATH:$KARAF_HOME/system/jline/jline/${jline.version}/jline-${jline.version}.jar"
DEFAULT_JAVA_DEBUG_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
Modified: karaf/trunk/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell.bat
URL: http://svn.apache.org/viewvc/karaf/trunk/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell.bat?rev=1361269&r1=1361268&r2=1361269&view=diff
==============================================================================
--- karaf/trunk/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell.bat (original)
+++ karaf/trunk/assemblies/features/framework/src/main/filtered-resources/resources/bin/shell.bat Fri Jul 13 15:20:43 2012
@@ -113,6 +113,7 @@ if "%KARAF_DEBUG%" == "" goto :KARAF_DEB
set CLASSPATH=%KARAF_HOME%\system\org\apache\karaf\shell\org.apache.karaf.shell.console\${project.version}\org.apache.karaf.shell.console-${project.version}.jar
set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\system\org\ops4j\pax\logging\pax-logging-api\${pax.logging.version}\pax-logging-api-${pax.logging.version}.jar
+set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\system\jline\jline\${jline.version}\jline-${jline.version}.jar
:EXECUTE
if "%SHIFT%" == "true" SET ARGS=%2 %3 %4 %5 %6 %7 %8
Modified: karaf/trunk/client/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/client/pom.xml?rev=1361269&r1=1361268&r2=1361269&view=diff
==============================================================================
--- karaf/trunk/client/pom.xml (original)
+++ karaf/trunk/client/pom.xml Fri Jul 13 15:20:43 2012
@@ -52,4 +52,29 @@
</dependency>
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-artifacts</id>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>target/classes/karaf.key</file>
+ <type>key</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
</project>
Modified: karaf/trunk/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/pom.xml?rev=1361269&r1=1361268&r2=1361269&view=diff
==============================================================================
--- karaf/trunk/pom.xml (original)
+++ karaf/trunk/pom.xml Fri Jul 13 15:20:43 2012
@@ -184,7 +184,7 @@
<gemini.blueprint.version>1.0.0.RELEASE</gemini.blueprint.version>
<jansi.version>1.9</jansi.version>
- <jline.version>2.7</jline.version>
+ <jline.version>2.8-SNAPSHOT</jline.version>
<jsw.version>3.2.3</jsw.version>
<log4j.version>1.2.16</log4j.version>
<maven.version>2.0.9</maven.version>
Modified: karaf/trunk/shell/commands/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/commands/pom.xml?rev=1361269&r1=1361268&r2=1361269&view=diff
==============================================================================
--- karaf/trunk/shell/commands/pom.xml (original)
+++ karaf/trunk/shell/commands/pom.xml Fri Jul 13 15:20:43 2012
@@ -39,20 +39,10 @@
<dependencies>
<dependency>
- <groupId>org.fusesource.jansi</groupId>
- <artifactId>jansi</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>org.apache.karaf.shell</groupId>
<artifactId>org.apache.karaf.shell.console</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.gogo.runtime</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>org.apache.karaf</groupId>
<artifactId>org.apache.karaf.util</artifactId>
<scope>provided</scope>
Modified: karaf/trunk/shell/console/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/console/pom.xml?rev=1361269&r1=1361268&r2=1361269&view=diff
==============================================================================
--- karaf/trunk/shell/console/pom.xml (original)
+++ karaf/trunk/shell/console/pom.xml Fri Jul 13 15:20:43 2012
@@ -40,24 +40,12 @@
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>org.fusesource.jansi</groupId>
- <artifactId>jansi</artifactId>
+ <artifactId>slf4j-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jline</groupId>
<artifactId>jline</artifactId>
- <exclusions>
- <exclusion>
- <groupId>org.fusesource.jansi</groupId>
- <artifactId>jansi</artifactId>
- </exclusion>
- </exclusions>
- <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.karaf</groupId>
@@ -141,6 +129,7 @@
*
</Import-Package>
<Export-Package>
+ org.apache.felix.gogo.commands,
org.apache.karaf.shell.commands*,
org.apache.karaf.shell.console,
org.apache.karaf.shell.console.commands,
@@ -149,23 +138,13 @@
org.apache.felix.gogo*;version=${felix.gogo.version},
org.apache.felix.service.command;version=${felix.gogo.version};status=provisional;mandatory:=status,
org.apache.felix.service.threadio;version=${felix.gogo.version};status=provisional;mandatory:=status,
- org.fusesource.jansi;version=${jansi.version};-split-package:=first,
- jline*;version=${jline.version},
- org.fusesource.hawtjni*;version=1.0;-split-package:=first
</Export-Package>
<Private-Package>
org.apache.karaf.shell.console.impl*,
- org.fusesource.jansi.internal;-split-package:=first,
- org.apache.felix.gogo.runtime*;-split-package:=first,
- META-INF.native.*;-split-package:=first
+ org.apache.felix.gogo.runtime*;-split-package:=first
</Private-Package>
- <Bundle-NativeCode>
- META-INF/native/windows32/jansi.dll;osname=Win32;processor=x86,
- META-INF/native/windows64/jansi.dll;osname=Win32;processor=x86-64,
- *
- </Bundle-NativeCode>
<Bundle-Activator>
- org.apache.karaf.shell.console.impl.jline.Activator
+ org.apache.felix.gogo.runtime.activator.Activator
</Bundle-Activator>
<Main-Class>
org.apache.karaf.shell.console.impl.Main
Modified: karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/ConsoleFactory.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/ConsoleFactory.java?rev=1361269&r1=1361268&r2=1361269&view=diff
==============================================================================
--- karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/ConsoleFactory.java (original)
+++ karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/ConsoleFactory.java Fri Jul 13 15:20:43 2012
@@ -28,14 +28,7 @@ import jline.Terminal;
import org.apache.felix.service.command.CommandProcessor;
public interface ConsoleFactory {
- Console createAndStart(Subject user,
- CommandProcessor processor,
- InputStream in,
- PrintStream out,
- PrintStream err,
- final Terminal term,
- Runnable closeCallback) throws Exception;
-
- Console createLocalAndStart(Subject user, CommandProcessor processor, Terminal terminal, Runnable closeCallback)
- throws Exception;
+ Console create(CommandProcessor processor, InputStream in, PrintStream out, PrintStream err, final Terminal term, Runnable closeCallback);
+ Console createLocal(CommandProcessor processor, Terminal terminal, Runnable closeCallback);
+ void startConsoleAs(Console console, Subject subject);
}
Modified: karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleFactoryService.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleFactoryService.java?rev=1361269&r1=1361268&r2=1361269&view=diff
==============================================================================
--- karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleFactoryService.java (original)
+++ karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleFactoryService.java Fri Jul 13 15:20:43 2012
@@ -24,6 +24,7 @@ import java.security.Principal;
import java.security.PrivilegedAction;
import java.util.Iterator;
import java.util.List;
+import java.util.Properties;
import java.util.Set;
import javax.security.auth.Subject;
@@ -39,10 +40,8 @@ import org.apache.karaf.shell.console.Co
public class ConsoleFactoryService implements ConsoleFactory {
@Override
- public Console createLocalAndStart(Subject user, CommandProcessor processor, final Terminal terminal,
- Runnable closeCallback) throws Exception {
- return createAndStart(user,
- processor,
+ public Console createLocal(CommandProcessor processor, final Terminal terminal, Runnable closeCallback) {
+ return create(processor,
StreamWrapUtil.reWrapIn(terminal, System.in),
StreamWrapUtil.reWrap(System.out),
StreamWrapUtil.reWrap(System.err),
@@ -51,12 +50,10 @@ public class ConsoleFactoryService imple
}
@Override
- public Console createAndStart(Subject subject, CommandProcessor processor, InputStream in, PrintStream out, PrintStream err, final Terminal terminal,
- Runnable closeCallback) throws Exception {
+ public Console create(CommandProcessor processor, InputStream in, PrintStream out, PrintStream err, final Terminal terminal,
+ Runnable closeCallback) {
ConsoleImpl console = new ConsoleImpl(processor, in, out, err, terminal, closeCallback);
CommandSession session = console.getSession();
- String userName = getFirstPrincipalName(subject);
- session.put("USER", userName);
session.put("APPLICATION", System.getProperty("karaf.name", "root"));
session.put("#LINES", new Function() {
public Object execute(CommandSession session, List<Object> arguments) throws Exception {
@@ -69,9 +66,18 @@ public class ConsoleFactoryService imple
}
});
session.put(".jline.terminal", terminal);
- startConsoleAs(console, subject);
+ addSystemProperties(session);
return console;
}
+
+ private void addSystemProperties(CommandSession session) {
+ Properties sysProps = System.getProperties();
+ Iterator<Object> it = sysProps.keySet().iterator();
+ while (it.hasNext()) {
+ String key = (String) it.next();
+ session.put(key, System.getProperty(key));
+ }
+ }
private String getFirstPrincipalName(Subject user) {
if (user != null) {
@@ -86,11 +92,15 @@ public class ConsoleFactoryService imple
return null;
}
- private void startConsoleAs(final Console console, final Subject subject) {
+ @Override
+ public void startConsoleAs(final Console console, final Subject subject) {
new Thread(console) {
@Override
public void run() {
if (subject != null) {
+ CommandSession session = console.getSession();
+ String userName = getFirstPrincipalName(subject);
+ session.put("USER", userName);
Subject.doAs(subject, new PrivilegedAction<Object>() {
public Object run() {
doRun();
Modified: karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleImpl.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleImpl.java?rev=1361269&r1=1361268&r2=1361269&view=diff
==============================================================================
--- karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleImpl.java (original)
+++ karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/ConsoleImpl.java Fri Jul 13 15:20:43 2012
@@ -84,7 +84,7 @@ public class ConsoleImpl implements Cons
PrintStream out,
PrintStream err,
Terminal term,
- Runnable closeCallback) throws Exception
+ Runnable closeCallback)
{
this.in = in;
this.out = out;
@@ -97,9 +97,13 @@ public class ConsoleImpl implements Cons
this.session.put("SUBSHELL", "");
this.closeCallback = closeCallback;
- reader = new ConsoleReader(this.consoleInput,
- this.out,
- this.terminal);
+ try {
+ reader = new ConsoleReader(this.consoleInput,
+ this.out,
+ this.terminal);
+ } catch (IOException e) {
+ throw new RuntimeException("Error opening console reader", e);
+ }
final File file = getHistoryFile();
Modified: karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/LocalConsoleManager.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/LocalConsoleManager.java?rev=1361269&r1=1361268&r2=1361269&view=diff
==============================================================================
--- karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/LocalConsoleManager.java (original)
+++ karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/LocalConsoleManager.java Fri Jul 13 15:20:43 2012
@@ -82,8 +82,9 @@ public class LocalConsoleManager {
}
};
String agentId = startAgent("karaf");
- this.console = consoleFactory.createLocalAndStart(subject, this.commandProcessor, terminal, callback);
+ this.console = consoleFactory.createLocal(this.commandProcessor, terminal, callback);
this.console.getSession().put(SshAgent.SSH_AUTHSOCKET_ENV_NAME, agentId);
+ consoleFactory.startConsoleAs(console, subject);
}
protected String startAgent(String user) {
Modified: karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/StreamWrapUtil.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/StreamWrapUtil.java?rev=1361269&r1=1361268&r2=1361269&view=diff
==============================================================================
--- karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/StreamWrapUtil.java (original)
+++ karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/impl/jline/StreamWrapUtil.java Fri Jul 13 15:20:43 2012
@@ -78,8 +78,12 @@ final class StreamWrapUtil {
}
}
- static InputStream reWrapIn(Terminal terminal, InputStream stream) throws IOException {
- return terminal.wrapInIfNeeded(unwrapBIS(stream));
+ static InputStream reWrapIn(Terminal terminal, InputStream stream) {
+ try {
+ return terminal.wrapInIfNeeded(unwrapBIS(stream));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
}
static PrintStream reWrap(PrintStream stream) {
Modified: karaf/trunk/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java?rev=1361269&r1=1361268&r2=1361269&view=diff
==============================================================================
--- karaf/trunk/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java (original)
+++ karaf/trunk/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java Fri Jul 13 15:20:43 2012
@@ -105,12 +105,13 @@ public class ShellFactoryImpl implements
destroy();
}
};
- Console console = consoleFactory.createAndStart(subject, commandProcessor, in,
+ Console console = consoleFactory.create(commandProcessor, in,
lfToCrLfPrintStream(out), lfToCrLfPrintStream(err), terminal, destroyCallback);
final CommandSession session = console.getSession();
for (Map.Entry<String, String> e : env.getEnv().entrySet()) {
session.put(e.getKey(), e.getValue());
}
+ consoleFactory.startConsoleAs(console, subject);
} catch (Exception e) {
throw (IOException) new IOException("Unable to start shell").initCause(e);
}
Modified: karaf/trunk/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java
URL: http://svn.apache.org/viewvc/karaf/trunk/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java?rev=1361269&r1=1361268&r2=1361269&view=diff
==============================================================================
--- karaf/trunk/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java (original)
+++ karaf/trunk/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java Fri Jul 13 15:20:43 2012
@@ -40,7 +40,6 @@ import javax.servlet.http.HttpServletReq
import javax.servlet.http.HttpServletResponse;
import org.apache.felix.service.command.CommandProcessor;
-import org.apache.felix.service.command.CommandSession;
import org.apache.karaf.jaas.boot.principal.UserPrincipal;
import org.apache.karaf.shell.console.Console;
import org.apache.karaf.shell.console.ConsoleFactory;
@@ -217,12 +216,13 @@ public class GogoPlugin extends Abstract
final Subject subject = new Subject();
subject.getPrincipals().add(new UserPrincipal("karaf"));
- consoleFactory.createAndStart(subject, commandProcessor,
+ Console console = consoleFactory.create(commandProcessor,
new PipedInputStream(in),
pipedOut,
pipedOut,
new WebTerminal(TERM_WIDTH, TERM_HEIGHT),
null);
+ consoleFactory.startConsoleAs(console, subject);
} catch (IOException e) {
e.printStackTrace();
throw e;