[maven-release-plugin] copy for tag karaf-2.1.2
git-svn-id: https://svn.apache.org/repos/asf/karaf/tags/karaf-2.1.2@1037319 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index f32761b..3f90f7f 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -31,6 +31,9 @@
* [KARAF-273] - java.lang.NullPointerException: Inflater has been closed
* [KARAF-277] - The bin/client script does not work anymore
* [KARAF-262] - The command admin create new instance cannot create good script in bash language on cygwin
+ * [KARAF-284] - Remove snapshot dependency on org.apache.karaf.shell.console in archetypes/command/src/main/resources/archetype-resources/pom.xml
+ * [KARAF-285] - The bin/shell script should not read the input stream when a command is passed
+ * [KARAF-286] - When running in the plain shell console (using bin/shell), tab completion prints lots of exceptions
** Task
* [KARAF-276] - upgrade to pax-url 1.2.1
diff --git a/admin/core/src/main/java/org/apache/karaf/admin/internal/AdminServiceImpl.java b/admin/core/src/main/java/org/apache/karaf/admin/internal/AdminServiceImpl.java
index c8edd50..1be67cf 100644
--- a/admin/core/src/main/java/org/apache/karaf/admin/internal/AdminServiceImpl.java
+++ b/admin/core/src/main/java/org/apache/karaf/admin/internal/AdminServiceImpl.java
@@ -170,7 +170,9 @@
copyFilteredResourceToDir(karafBase, "etc/system.properties", props);
copyFilteredResourceToDir(karafBase, "etc/org.apache.karaf.shell.cfg", props);
// If we use batch files, use batch files, else use bash scripts (even on cygwin)
- if( new File( System.getProperty("karaf.home"), "bin/admin.bat" ).exists() ) {
+ boolean windows = System.getProperty("os.name").startsWith("Win");
+ boolean cygwin = windows && new File( System.getProperty("karaf.home"), "bin/admin" ).exists();
+ if( windows && !cygwin ) {
copyFilteredResourceToDir(karafBase, "bin/karaf.bat", props);
copyFilteredResourceToDir(karafBase, "bin/start.bat", props);
copyFilteredResourceToDir(karafBase, "bin/stop.bat", props);
@@ -178,9 +180,11 @@
copyFilteredResourceToDir(karafBase, "bin/karaf", props);
copyFilteredResourceToDir(karafBase, "bin/start", props);
copyFilteredResourceToDir(karafBase, "bin/stop", props);
- chmod(new File(karafBase, "bin/karaf"), "a+x");
- chmod(new File(karafBase, "bin/start"), "a+x");
- chmod(new File(karafBase, "bin/stop"), "a+x");
+ if ( !cygwin ) {
+ chmod(new File(karafBase, "bin/karaf"), "a+x");
+ chmod(new File(karafBase, "bin/start"), "a+x");
+ chmod(new File(karafBase, "bin/stop"), "a+x");
+ }
}
handleFeatures(new File(karafBase, FEATURES_CFG), settings);
diff --git a/archetypes/command/pom.xml b/archetypes/command/pom.xml
index 1d1be8e..2bbd0df 100644
--- a/archetypes/command/pom.xml
+++ b/archetypes/command/pom.xml
@@ -16,38 +16,59 @@
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
+ <modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.karaf</groupId>
<artifactId>archetypes</artifactId>
<version>2.1.2</version>
</parent>
-
- <groupId>org.apache.karaf.archetypes</groupId>
- <artifactId>archetypes-command</artifactId>
- <version>2.1.2</version>
- <name>Apache Karaf :: Command Archetype</name>
+ <groupId>org.apache.karaf.archetypes</groupId>
+ <artifactId>archetypes-command</artifactId>
+ <version>2.1.2</version>
- <build>
- <extensions>
- <extension>
- <groupId>org.apache.maven.archetype</groupId>
- <artifactId>archetype-packaging</artifactId>
- <version>2.0-alpha-5</version>
- </extension>
- </extensions>
+ <name>Apache Karaf :: Command Archetype</name>
- <pluginManagement>
- <plugins>
- <plugin>
- <artifactId>maven-archetype-plugin</artifactId>
- <version>2.0-alpha-5</version>
- <extensions>true</extensions>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
+ <build>
+ <resources>
+ <resource>
+ <directory>${project.basedir}/src/main/resources</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ </resource>
+ </resources>
+
+ <extensions>
+ <extension>
+ <groupId>org.apache.maven.archetype</groupId>
+ <artifactId>archetype-packaging</artifactId>
+ <version>2.0-alpha-5</version>
+ </extension>
+ </extensions>
+
+ <plugins>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <configuration>
+ <delimiters>
+ <delimiter>^*^</delimiter>
+ </delimiters>
+ </configuration>
+ </plugin>
+ </plugins>
+
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-archetype-plugin</artifactId>
+ <version>2.0-alpha-5</version>
+ <extensions>true</extensions>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
</project>
diff --git a/archetypes/command/src/main/resources/archetype-resources/pom.xml b/archetypes/command/src/main/resources/archetype-resources/pom.xml
index 494cc59..6425704 100644
--- a/archetypes/command/src/main/resources/archetype-resources/pom.xml
+++ b/archetypes/command/src/main/resources/archetype-resources/pom.xml
@@ -26,28 +26,29 @@
<description>Provides the OSGi ${scope} commands</description>
<properties>
- <junit.version>4.7_1</junit.version>
- <felix.osgi.version>1.4.0</felix.osgi.version>
+ <junit.version>^junit.bundle.version^</junit.version>
+ <osgi.version>4.2.0</osgi.version>
+ <karaf.version>^project.version^</karaf.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.karaf.shell</groupId>
<artifactId>org.apache.karaf.shell.console</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>${karaf.version}</version>
</dependency>
<dependency>
- <groupId>org.apache.felix</groupId>
+ <groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
- <version>${felix.osgi.version}</version>
+ <version>${osgi.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.apache.felix</groupId>
+ <groupId>org.osgi</groupId>
<artifactId>org.osgi.compendium</artifactId>
- <version>${felix.osgi.version}</version>
+ <version>${osgi.version}</version>
<scope>provided</scope>
</dependency>
diff --git a/pom.xml b/pom.xml
index e6949a8..a63c251 100644
--- a/pom.xml
+++ b/pom.xml
@@ -893,7 +893,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
- <version>2.3</version>
+ <version>2.4.3</version>
</plugin>
<plugin>
<groupId>org.apache.servicemix.tooling</groupId>
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/CatAction.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/CatAction.java
index a3ffbb3..d85ba2e 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/CatAction.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/CatAction.java
@@ -18,17 +18,14 @@
import java.io.IOException;
import java.io.BufferedReader;
-import java.io.InputStream;
import java.io.FileReader;
import java.io.File;
import java.io.InputStreamReader;
import java.net.URL;
-import java.net.URI;
import java.net.MalformedURLException;
import java.util.List;
import org.apache.karaf.shell.console.AbstractAction;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
import org.apache.felix.gogo.commands.Argument;
import org.apache.felix.gogo.commands.Option;
import org.apache.felix.gogo.commands.Command;
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/ClearAction.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/ClearAction.java
index d30f10c..c44bd7f 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/ClearAction.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/ClearAction.java
@@ -18,7 +18,6 @@
import org.apache.felix.gogo.commands.Command;
import org.apache.karaf.shell.console.AbstractAction;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
/**
* A command to clear the console buffer
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/EchoAction.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/EchoAction.java
index b198261..cbe9abf 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/EchoAction.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/EchoAction.java
@@ -22,7 +22,6 @@
import org.apache.felix.gogo.commands.Option;
import org.apache.felix.gogo.commands.Argument;
import org.apache.karaf.shell.console.AbstractAction;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
@Command(scope = "shell", name = "echo", description="Echoes or prints arguments to STDOUT")
public class EchoAction extends AbstractAction
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/ExecuteAction.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/ExecuteAction.java
index 518afac..8e4bd1c 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/ExecuteAction.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/ExecuteAction.java
@@ -22,7 +22,6 @@
import org.apache.felix.gogo.commands.Command;
import org.apache.karaf.shell.commands.utils.PumpStreamHandler;
import org.apache.karaf.shell.console.AbstractAction;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
/**
* Execute system processes.
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/GrepAction.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/GrepAction.java
index aaf5857..6a8079c 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/GrepAction.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/GrepAction.java
@@ -27,7 +27,6 @@
import java.util.regex.Pattern;
import org.apache.karaf.shell.console.AbstractAction;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
import org.apache.felix.gogo.commands.Argument;
import org.apache.felix.gogo.commands.Option;
import org.apache.felix.gogo.commands.Command;
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/JavaAction.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/JavaAction.java
index 8ea4fb4..7750182 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/JavaAction.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/JavaAction.java
@@ -23,7 +23,6 @@
import org.apache.felix.gogo.commands.Command;
import org.apache.felix.gogo.commands.Option;
import org.apache.karaf.shell.console.AbstractAction;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
/**
* Execute a Java standard application.
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/LogoutAction.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/LogoutAction.java
index 5e7fc81..753d751 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/LogoutAction.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/LogoutAction.java
@@ -19,9 +19,6 @@
import org.apache.felix.gogo.commands.Command;
import org.apache.karaf.shell.console.AbstractAction;
import org.apache.karaf.shell.console.CloseShellException;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
@Command(scope = "shell", name = "logout", description = "Disconnect shell from current session")
public class LogoutAction extends AbstractAction {
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/NewAction.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/NewAction.java
index 3164ea4..a849761 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/NewAction.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/NewAction.java
@@ -16,6 +16,13 @@
*/
package org.apache.karaf.shell.commands;
+import org.apache.felix.gogo.commands.Argument;
+import org.apache.felix.gogo.commands.Command;
+import org.apache.felix.gogo.commands.converter.DefaultConverter;
+import org.apache.felix.gogo.commands.converter.ReifiedType;
+import org.apache.felix.gogo.commands.converter.GenericType;
+import org.apache.karaf.shell.console.AbstractAction;
+
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Type;
@@ -27,17 +34,8 @@
import java.util.List;
import java.util.Map;
-import org.apache.felix.gogo.commands.Argument;
-import org.apache.felix.gogo.commands.Command;
-import org.apache.karaf.shell.console.AbstractAction;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.shell.console.commands.GenericType;
-import org.osgi.service.blueprint.container.ComponentDefinitionException;
-import org.osgi.service.blueprint.container.Converter;
-import org.osgi.service.blueprint.container.ReifiedType;
-
/**
- * Execute a closure on a list of arguments.
+ * Instanciate a new object
*/
@Command(scope = "shell", name = "new", description = "Creates a new java object.")
public class NewAction extends AbstractAction {
@@ -50,11 +48,7 @@
boolean reorderArguments;
- protected Converter blueprintConverter;
-
- public void setBlueprintConverter(Converter blueprintConverter) {
- this.blueprintConverter = blueprintConverter;
- }
+ protected DefaultConverter converter = new DefaultConverter(getClass().getClassLoader());
@Override
protected Object doExecute() throws Exception {
@@ -68,12 +62,12 @@
Map.Entry<Constructor, List<Object>> match = matches.entrySet().iterator().next();
return newInstance(match.getKey(), match.getValue().toArray());
} catch (Throwable e) {
- throw new ComponentDefinitionException("Error when instanciating object of class " + clazz.getName(), getRealCause(e));
+ throw new Exception("Error when instanciating object of class " + clazz.getName(), getRealCause(e));
}
} else if (matches.size() == 0) {
- throw new ComponentDefinitionException("Unable to find a matching constructor on class " + clazz.getName() + " for arguments " + args + " when instanciating object.");
+ throw new Exception("Unable to find a matching constructor on class " + clazz.getName() + " for arguments " + args + " when instanciating object.");
} else {
- throw new ComponentDefinitionException("Multiple matching constructors found on class " + clazz.getName() + " for arguments " + args + " when instanciating object: " + matches.keySet());
+ throw new Exception("Multiple matching constructors found on class " + clazz.getName() + " for arguments " + args + " when instanciating object: " + matches.keySet());
}
}
@@ -188,11 +182,11 @@
}
protected Object convert(Object obj, Type type) throws Exception {
- return blueprintConverter.convert(obj, new GenericType(type));
+ return converter.convert(obj, new GenericType(type));
}
protected Object convert(Object obj, ReifiedType type) throws Exception {
- return blueprintConverter.convert(obj, type);
+ return converter.convert(obj, type);
}
public static boolean isAssignable(Object source, ReifiedType target) {
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/PrintfAction.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/PrintfAction.java
index bec02a1..d8c966f 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/PrintfAction.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/PrintfAction.java
@@ -19,7 +19,6 @@
import java.util.Collection;
import org.apache.karaf.shell.console.AbstractAction;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
import org.apache.felix.gogo.commands.Argument;
import org.apache.felix.gogo.commands.Command;
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/SleepAction.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/SleepAction.java
index e9ad3ef..059d09c 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/SleepAction.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/SleepAction.java
@@ -17,7 +17,6 @@
package org.apache.karaf.shell.commands;
import org.apache.karaf.shell.console.AbstractAction;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
import org.apache.felix.gogo.commands.Argument;
import org.apache.felix.gogo.commands.Command;
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/SortAction.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/SortAction.java
index 9da9525..fb0244c 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/SortAction.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/SortAction.java
@@ -38,7 +38,6 @@
import org.apache.felix.gogo.commands.Command;
import org.apache.felix.gogo.commands.Option;
import org.apache.karaf.shell.console.AbstractAction;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
/**
* Sort lines of text
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/TacAction.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/TacAction.java
index 03078a7..b951b6d 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/TacAction.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/TacAction.java
@@ -28,7 +28,6 @@
import java.io.Writer;
import org.apache.karaf.shell.console.AbstractAction;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
import org.apache.felix.gogo.commands.Command;
import org.apache.felix.gogo.commands.Option;
diff --git a/shell/commands/src/main/resources/OSGI-INF/blueprint/shell-commands.xml b/shell/commands/src/main/resources/OSGI-INF/blueprint/shell-commands.xml
index 1d07c13..b6d4a7b 100644
--- a/shell/commands/src/main/resources/OSGI-INF/blueprint/shell-commands.xml
+++ b/shell/commands/src/main/resources/OSGI-INF/blueprint/shell-commands.xml
@@ -56,9 +56,7 @@
</command>
-->
<command name="shell/new">
- <action class="org.apache.karaf.shell.commands.NewAction">
- <property name="blueprintConverter" ref="blueprintConverter"/>
- </action>
+ <action class="org.apache.karaf.shell.commands.NewAction"/>
</command>
<command name="shell/logout">
<action class="org.apache.karaf.shell.commands.LogoutAction"/>
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/Main.java b/shell/console/src/main/java/org/apache/karaf/shell/console/Main.java
index 5b16077..2c13e54 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/Main.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/Main.java
@@ -133,16 +133,6 @@
}
private void run(final CommandShellImpl commandProcessor, String[] args, final InputStream in, final PrintStream out, final PrintStream err) throws Exception {
- TerminalFactory terminalFactory = new TerminalFactory();
- Terminal terminal = terminalFactory.getTerminal();
- Console console = createConsole(commandProcessor, in, out, err, terminal);
- CommandSession session = console.getSession();
- session.put("USER", user);
- session.put("APPLICATION", application);
- session.put("LINES", Integer.toString(terminal.getTerminalHeight()));
- session.put("COLUMNS", Integer.toString(terminal.getTerminalWidth()));
- session.put(".jline.terminal", terminal);
- session.put(NameScoping.MULTI_SCOPE_MODE_KEY, Boolean.toString(isMultiScopeMode()));
if (args.length > 0) {
StringBuilder sb = new StringBuilder();
@@ -152,6 +142,13 @@
}
sb.append(args[i]);
}
+
+ // Shell is directly executing a sub/command, we don't setup a terminal and console
+ // in this case, this avoids us reading from stdin un-necessarily.
+ CommandSession session = commandProcessor.createSession(in,out, err);
+ session.put("USER", user);
+ session.put("APPLICATION", application);
+ session.put(NameScoping.MULTI_SCOPE_MODE_KEY, Boolean.toString(isMultiScopeMode()));
try {
session.execute(sb);
} catch (Throwable t) {
@@ -164,10 +161,22 @@
}
}
} else {
- console.run();
- }
- terminalFactory.destroy();
+ // We are going into full blown interactive shell mode.
+ TerminalFactory terminalFactory = new TerminalFactory();
+ Terminal terminal = terminalFactory.getTerminal();
+ Console console = createConsole(commandProcessor, in, out, err, terminal);
+ CommandSession session = console.getSession();
+ session.put("LINES", Integer.toString(terminal.getTerminalHeight()));
+ session.put("COLUMNS", Integer.toString(terminal.getTerminalWidth()));
+ session.put(".jline.terminal", terminal);
+ session.put("USER", user);
+ session.put("APPLICATION", application);
+ session.put(NameScoping.MULTI_SCOPE_MODE_KEY, Boolean.toString(isMultiScopeMode()));
+
+ console.run();
+ terminalFactory.destroy();
+ }
}
/**