Upgrade to karaf 4.x
diff --git a/assembly/pom.xml b/assembly/pom.xml
index a1eae0c..6b4ce7e 100644
--- a/assembly/pom.xml
+++ b/assembly/pom.xml
@@ -49,12 +49,12 @@
</dependency>
<dependency>
<groupId>org.apache.karaf</groupId>
- <artifactId>apache-karaf</artifactId>
+ <artifactId>apache-karaf-minimal</artifactId>
<type>tar.gz</type>
</dependency>
<dependency>
<groupId>org.apache.karaf</groupId>
- <artifactId>apache-karaf</artifactId>
+ <artifactId>apache-karaf-minimal</artifactId>
<type>zip</type>
</dependency>
@@ -114,6 +114,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
+ <version>3.0.0</version>
<executions>
<execution>
<id>unpack-unix</id>
@@ -125,9 +126,8 @@
<artifactItems>
<artifactItem>
<groupId>org.apache.karaf</groupId>
- <artifactId>apache-karaf</artifactId>
+ <artifactId>apache-karaf-minimal</artifactId>
<version>${karaf.version}</version>
- <classifier>minimal</classifier>
<type>tar.gz</type>
<outputDirectory>target/dependencies/unix</outputDirectory>
</artifactItem>
@@ -144,9 +144,8 @@
<artifactItems>
<artifactItem>
<groupId>org.apache.karaf</groupId>
- <artifactId>apache-karaf</artifactId>
+ <artifactId>apache-karaf-minimal</artifactId>
<version>${karaf.version}</version>
- <classifier>minimal</classifier>
<type>zip</type>
<outputDirectory>target/dependencies/win</outputDirectory>
</artifactItem>
@@ -157,26 +156,30 @@
</plugin>
<plugin>
<groupId>org.apache.karaf.tooling</groupId>
- <artifactId>features-maven-plugin</artifactId>
+ <artifactId>karaf-maven-plugin</artifactId>
<version>${karaf.version}</version>
<executions>
<execution>
- <id>add-features-to-repo</id>
+ <id>features-add-to-repository</id>
<phase>compile</phase>
<goals>
- <goal>add-features-to-repo</goal>
+ <goal>features-add-to-repository</goal>
</goals>
<configuration>
<descriptors>
<descriptor>
- mvn:org.apache.karaf.assemblies.features/standard/${karaf.version}/xml/features
+ mvn:org.apache.karaf.features/standard/${karaf.version}/xml/features
</descriptor>
<descriptor>
mvn:org.apache.jclouds.karaf/jclouds-karaf/${jclouds.karaf.version}/xml/features
</descriptor>
+ <descriptor>
+ mvn:org.apache.jclouds.karaf/jclouds-karaf-labs/${jclouds.karaf.version}/xml/features
+ </descriptor>
</descriptors>
<features>
<feature>config</feature>
+ <feature>shell-compat</feature>
<feature>jclouds</feature>
<feature>jclouds-commands</feature>
<feature>jclouds-compute</feature>
@@ -249,14 +252,14 @@
<configuration>
<tasks>
<replace token="#!/bin/bash" value="#!/bin/sh"
- dir="target/dependencies/unix/apache-karaf-${karaf.version}/bin">
+ dir="target/dependencies/unix/apache-karaf-minimal-${karaf.version}/bin">
<include name="*"/>
</replace>
- <replaceregexp file="target/dependencies/unix/apache-karaf-${karaf.version}/etc/config.properties"
+ <replaceregexp file="target/dependencies/unix/apache-karaf-minimal-${karaf.version}/etc/config.properties"
match="karaf.framework.equinox=*"
replace="#"
byline="true"/>
- <replaceregexp file="target/dependencies/win/apache-karaf-${karaf.version}/etc/config.properties"
+ <replaceregexp file="target/dependencies/win/apache-karaf-minimal-${karaf.version}/etc/config.properties"
match="karaf.framework.equinox=*"
replace="#"
byline="true"/>
diff --git a/assembly/src/main/assembly/unix.xml b/assembly/src/main/assembly/unix.xml
index 095fe62..7ccf15e 100644
--- a/assembly/src/main/assembly/unix.xml
+++ b/assembly/src/main/assembly/unix.xml
@@ -28,7 +28,7 @@
<fileSets>
<!-- Strip the Karaf distribution -->
<fileSet>
- <directory>target/dependencies/unix/apache-karaf-${karaf.version}</directory>
+ <directory>target/dependencies/unix/apache-karaf-minimal-${karaf.version}</directory>
<outputDirectory>/</outputDirectory>
<excludes>
<exclude>**/demos/**</exclude>
@@ -59,7 +59,7 @@
<!-- Copy over bin/* scripts separately to get the correct file mode -->
<fileSet>
- <directory>target/dependencies/unix/apache-karaf-${karaf.version}</directory>
+ <directory>target/dependencies/unix/apache-karaf-minimal-${karaf.version}</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>bin/*</include>
@@ -119,7 +119,7 @@
<files>
<file>
- <source>${basedir}/target/dependencies/unix/apache-karaf-${karaf.version}/bin/karaf</source>
+ <source>${basedir}/target/dependencies/unix/apache-karaf-minimal-${karaf.version}/bin/karaf</source>
<outputDirectory>/bin/</outputDirectory>
<destName>jclouds-cli</destName>
<fileMode>0755</fileMode>
diff --git a/assembly/src/main/assembly/win.xml b/assembly/src/main/assembly/win.xml
index 88053f2..44a2638 100644
--- a/assembly/src/main/assembly/win.xml
+++ b/assembly/src/main/assembly/win.xml
@@ -28,7 +28,7 @@
<fileSets>
<!-- Strip the Karaf distribution -->
<fileSet>
- <directory>target/dependencies/win/apache-karaf-${karaf.version}</directory>
+ <directory>target/dependencies/win/apache-karaf-minimal-${karaf.version}</directory>
<outputDirectory>/</outputDirectory>
<excludes>
<exclude>**/demos/**</exclude>
@@ -58,7 +58,7 @@
<!-- Copy over bin/* scripts separately to get the correct file mode -->
<fileSet>
- <directory>target/dependencies/win/apache-karaf-${karaf.version}</directory>
+ <directory>target/dependencies/win/apache-karaf-minimal-${karaf.version}</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>bin/*</include>
@@ -117,7 +117,7 @@
<files>
<file>
- <source>${basedir}/target/dependencies/win/apache-karaf-${karaf.version}/bin/karaf.bat</source>
+ <source>${basedir}/target/dependencies/win/apache-karaf-minimal-${karaf.version}/bin/karaf.bat</source>
<outputDirectory>/bin/</outputDirectory>
<destName>jclouds-cli.bat</destName>
<lineEnding>dos</lineEnding>
diff --git a/assembly/src/main/filtered-resources/unix/bin/shell b/assembly/src/main/filtered-resources/unix/bin/shell
index d6ee688..4035bc3 100644
--- a/assembly/src/main/filtered-resources/unix/bin/shell
+++ b/assembly/src/main/filtered-resources/unix/bin/shell
@@ -266,6 +266,8 @@
CLASSPATH="$CLASSPATH:$KARAF_HOME/system/org/apache/jclouds/jclouds-core/${jclouds.version}/jclouds-core-${jclouds.version}.jar"
CLASSPATH="$CLASSPATH:$KARAF_HOME/system/org/apache/jclouds/jclouds-blobstore/${jclouds.version}/jclouds-blobstore-${jclouds.version}.jar"
CLASSPATH="$CLASSPATH:$KARAF_HOME/system/org/apache/karaf/shell/org.apache.karaf.shell.console/${karaf.version}/org.apache.karaf.shell.console-${karaf.version}.jar"
+ CLASSPATH="$CLASSPATH:$KARAF_HOME/system/org/apache/karaf/shell/org.apache.karaf.shell.core/${karaf.version}/org.apache.karaf.shell.core-${karaf.version}.jar"
+ CLASSPATH="$CLASSPATH:$KARAF_HOME/system/jline/jline/2.14.1/jline-2.14.1.jar"
#We set external libraries for logging.
CLASSPATH="$CLASSPATH:$KARAF_HOME/lib/other/slf4j-api-${slf4j.version}.jar:$KARAF_HOME/lib/other/slf4j-log4j12-${slf4j.version}.jar:$KARAF_HOME/lib/other/log4j-${log4j.version}.jar"
CLASSPATH="$CLASSPATH:$KARAF_HOME/etc/log4j.properties"
diff --git a/project/pom.xml b/project/pom.xml
index 4d94f9e..0693eb5 100644
--- a/project/pom.xml
+++ b/project/pom.xml
@@ -66,7 +66,7 @@
<properties>
<!-- Karaf Version Dependencies -->
- <karaf.version>2.3.11</karaf.version>
+ <karaf.version>4.0.9</karaf.version>
<pax.url.version>1.3.7</pax.url.version>
<pax.logging.version>1.7.4</pax.logging.version>
<felix.configadmin.version>1.8.0</felix.configadmin.version>
@@ -85,7 +85,7 @@
<slf4j.version>1.7.7</slf4j.version>
<!-- Plugin Versions -->
<maven-antrun-plugin.version>1.7</maven-antrun-plugin.version>
- <maven-assembly-plugin.version>2.2.1</maven-assembly-plugin.version>
+ <maven-assembly-plugin.version>3.0.0</maven-assembly-plugin.version>
<maven-bundle-plugin.version>2.3.7</maven-bundle-plugin.version>
<maven-compiler-plugin.version>3.1</maven-compiler-plugin.version>
<maven-release-plugin.version>2.4</maven-release-plugin.version>
@@ -108,13 +108,13 @@
<!-- NOTE, jclouds dependencies are not managed from here -->
<dependency>
<groupId>org.apache.karaf</groupId>
- <artifactId>apache-karaf</artifactId>
+ <artifactId>apache-karaf-minimal</artifactId>
<version>${karaf.version}</version>
<type>tar.gz</type>
</dependency>
<dependency>
<groupId>org.apache.karaf</groupId>
- <artifactId>apache-karaf</artifactId>
+ <artifactId>apache-karaf-minimal</artifactId>
<version>${karaf.version}</version>
<type>zip</type>
</dependency>
diff --git a/runner/src/main/java/org/jclouds/cli/runner/Main.java b/runner/src/main/java/org/jclouds/cli/runner/Main.java
index c2dde3e..4d0b9b9 100644
--- a/runner/src/main/java/org/jclouds/cli/runner/Main.java
+++ b/runner/src/main/java/org/jclouds/cli/runner/Main.java
@@ -49,9 +49,11 @@
import org.apache.felix.gogo.runtime.threadio.ThreadIOImpl;
import org.apache.felix.service.command.CommandSession;
import org.apache.felix.service.command.Function;
+import org.apache.felix.service.threadio.ThreadIO;
+import org.apache.karaf.shell.console.Console;
import org.apache.karaf.shell.console.NameScoping;
-import org.apache.karaf.shell.console.jline.Console;
-import org.apache.karaf.shell.console.jline.TerminalFactory;
+import org.apache.karaf.shell.console.impl.jline.ConsoleImpl;
+import org.apache.karaf.shell.console.impl.jline.TerminalFactory;
import org.fusesource.jansi.Ansi;
import org.fusesource.jansi.AnsiConsole;
import org.jclouds.blobstore.ContainerNotFoundException;
@@ -173,7 +175,7 @@
InputStream in = unwrap(System.in);
PrintStream out = wrap(unwrap(System.out));
PrintStream err = wrap(unwrap(System.err));
- run(commandProcessor, args, in, out, err);
+ run(commandProcessor, threadio, args, in, out, err);
}
@@ -211,7 +213,7 @@
}
- private void run(final CommandProcessorImpl commandProcessor, String[] args, final InputStream in, final PrintStream out, final PrintStream err) throws Exception {
+ private void run(final CommandProcessorImpl commandProcessor, ThreadIO threadio, String[] args, final InputStream in, final PrintStream out, final PrintStream err) throws Exception {
if (args.length > 0) {
// Commands have the form: jclouds:category-action.
@@ -276,10 +278,9 @@
session.execute(sb);
} else {
// We are going into full blown interactive shell mode.
-
final TerminalFactory terminalFactory = new TerminalFactory();
final Terminal terminal = terminalFactory.getTerminal();
- Console console = createConsole(commandProcessor, in, out, err, terminal);
+ Console console = createConsole(commandProcessor, threadio, in, out, err, terminal);
CommandSession session = console.getSession();
session.put("USER", user);
session.put("APPLICATION", application);
@@ -314,8 +315,8 @@
* @return
* @throws Exception
*/
- protected Console createConsole(CommandProcessorImpl commandProcessor, InputStream in, PrintStream out, PrintStream err, Terminal terminal) throws Exception {
- return new Console(commandProcessor, in, out, err, terminal, null, null);
+ protected Console 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, false);
}
/**