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/03/06 01:40:04 UTC

[1/6] git commit: [KARAF-2805] Convert SCR commands to the new model

Repository: karaf
Updated Branches:
  refs/heads/master d2249e439 -> 427871032


[KARAF-2805] Convert SCR commands to the new model

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

Branch: refs/heads/master
Commit: bc7bf92e763d93294504272469f1e95040998e61
Parents: d2249e4
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Thu Mar 6 00:53:08 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Thu Mar 6 00:53:34 2014 +0100

----------------------------------------------------------------------
 scr/command/pom.xml                             | 22 +++-----
 .../scr/command/action/ActivateAction.java      | 10 ++--
 .../scr/command/action/DeactivateAction.java    | 12 ++---
 .../karaf/scr/command/action/DetailsAction.java | 22 ++++----
 .../karaf/scr/command/action/ListAction.java    |  8 +--
 .../scr/command/action/ScrActionSupport.java    | 54 ++++++++------------
 .../command/completer/ActivateCompleter.java    |  2 +-
 .../command/completer/DeactivateCompleter.java  |  2 +-
 .../scr/command/completer/DetailsCompleter.java |  2 +-
 .../command/completer/ScrCompleterSupport.java  | 18 ++++---
 10 files changed, 66 insertions(+), 86 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/bc7bf92e/scr/command/pom.xml
----------------------------------------------------------------------
diff --git a/scr/command/pom.xml b/scr/command/pom.xml
index 59cfb7a..51e4c2e 100644
--- a/scr/command/pom.xml
+++ b/scr/command/pom.xml
@@ -41,24 +41,13 @@
     <dependencies>
 
         <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.gogo.runtime</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.karaf.shell</groupId>
-            <artifactId>org.apache.karaf.shell.console</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.karaf.shell</groupId>
-            <artifactId>org.apache.karaf.shell.table</artifactId>
+            <artifactId>org.apache.karaf.shell.core</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -95,12 +84,13 @@
         </resources>
         <plugins>
             <plugin>
-                <groupId>org.apache.karaf.tooling</groupId>
-                <artifactId>karaf-scr-maven-plugin</artifactId>
-           </plugin>
-            <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
+                <configuration>
+                    <instructions>
+                        <Karaf-Commands>*</Karaf-Commands>
+                    </instructions>
+                </configuration>
             </plugin>
         </plugins>
     </build>

http://git-wip-us.apache.org/repos/asf/karaf/blob/bc7bf92e/scr/command/src/main/java/org/apache/karaf/scr/command/action/ActivateAction.java
----------------------------------------------------------------------
diff --git a/scr/command/src/main/java/org/apache/karaf/scr/command/action/ActivateAction.java b/scr/command/src/main/java/org/apache/karaf/scr/command/action/ActivateAction.java
index 22de6e2..c86909d 100755
--- a/scr/command/src/main/java/org/apache/karaf/scr/command/action/ActivateAction.java
+++ b/scr/command/src/main/java/org/apache/karaf/scr/command/action/ActivateAction.java
@@ -17,14 +17,14 @@
 package org.apache.karaf.scr.command.action;
 
 import org.apache.karaf.scr.command.completer.ActivateCompleter;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
 import org.apache.felix.scr.Component;
 import org.apache.felix.scr.ScrService;
 import org.apache.karaf.scr.command.ScrCommandConstants;
 import org.apache.karaf.scr.command.ScrUtils;
-import org.apache.karaf.shell.commands.Completer;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 
 /**
  * Activates the given component by supplying its component name.
@@ -34,7 +34,7 @@ import org.apache.karaf.shell.inject.Service;
 public class ActivateAction extends ScrActionSupport {
 
     @Argument(index = 0, name = "name", description = "The name of the Component to activate ", required = true, multiValued = false)
-    @Completer(ActivateCompleter.class)
+    @Completion(ActivateCompleter.class)
     String name;
 
     @Override

http://git-wip-us.apache.org/repos/asf/karaf/blob/bc7bf92e/scr/command/src/main/java/org/apache/karaf/scr/command/action/DeactivateAction.java
----------------------------------------------------------------------
diff --git a/scr/command/src/main/java/org/apache/karaf/scr/command/action/DeactivateAction.java b/scr/command/src/main/java/org/apache/karaf/scr/command/action/DeactivateAction.java
index 3c0093e..622b0e7 100755
--- a/scr/command/src/main/java/org/apache/karaf/scr/command/action/DeactivateAction.java
+++ b/scr/command/src/main/java/org/apache/karaf/scr/command/action/DeactivateAction.java
@@ -17,15 +17,13 @@
 package org.apache.karaf.scr.command.action;
 
 import org.apache.karaf.scr.command.completer.DeactivateCompleter;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
 import org.apache.felix.scr.Component;
 import org.apache.felix.scr.ScrService;
 import org.apache.karaf.scr.command.ScrCommandConstants;
-import org.apache.karaf.shell.commands.Completer;
-import org.apache.karaf.shell.inject.Destroy;
-import org.apache.karaf.shell.inject.Init;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 
 /**
  * Deactivates the given component by supplying its component name.
@@ -35,7 +33,7 @@ import org.apache.karaf.shell.inject.Service;
 public class DeactivateAction extends ScrActionSupport {
 
     @Argument(index = 0, name = "name", description = "The name of the Component to deactivate ", required = true, multiValued = false)
-    @Completer(DeactivateCompleter.class)
+    @Completion(DeactivateCompleter.class)
     String name;
 
     @Override

http://git-wip-us.apache.org/repos/asf/karaf/blob/bc7bf92e/scr/command/src/main/java/org/apache/karaf/scr/command/action/DetailsAction.java
----------------------------------------------------------------------
diff --git a/scr/command/src/main/java/org/apache/karaf/scr/command/action/DetailsAction.java b/scr/command/src/main/java/org/apache/karaf/scr/command/action/DetailsAction.java
index 4c1528a..0304b00 100644
--- a/scr/command/src/main/java/org/apache/karaf/scr/command/action/DetailsAction.java
+++ b/scr/command/src/main/java/org/apache/karaf/scr/command/action/DetailsAction.java
@@ -22,11 +22,11 @@ import org.apache.felix.scr.ScrService;
 import org.apache.karaf.scr.command.ScrCommandConstants;
 import org.apache.karaf.scr.command.ScrUtils;
 import org.apache.karaf.scr.command.completer.DetailsCompleter;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Completer;
-import org.apache.karaf.shell.inject.Service;
-import org.fusesource.jansi.Ansi;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.ansi.SimpleAnsi;
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceReference;
 import org.osgi.service.component.ComponentConstants;
@@ -41,7 +41,7 @@ import java.util.Hashtable;
 public class DetailsAction extends ScrActionSupport {
 
     @Argument(index = 0, name = "name", description = "The component name", required = true, multiValued = false)
-    @Completer(DetailsCompleter.class)
+    @Completion(DetailsCompleter.class)
     String name;
 
     @SuppressWarnings("rawtypes")
@@ -50,7 +50,7 @@ public class DetailsAction extends ScrActionSupport {
         if (logger.isDebugEnabled()) {
             logger.debug("Executing the Details Action");
         }
-        System.out.println(Ansi.ansi().a(Ansi.Attribute.INTENSITY_BOLD).a("Component Details").a(Ansi.Attribute.INTENSITY_BOLD_OFF));
+        System.out.println(SimpleAnsi.INTENSITY_BOLD + "Component Details" + SimpleAnsi.INTENSITY_NORMAL);
         Component[] components = scrService.getComponents(name);
         for (Component component : ScrUtils.emptyIfNull(Component.class, components)) {
             printDetail("  Name                : ", component.getName());
@@ -58,14 +58,14 @@ public class DetailsAction extends ScrActionSupport {
 
             Hashtable props = (Hashtable)component.getProperties();
             if (!props.isEmpty()) {
-                System.out.println(Ansi.ansi().a(Ansi.Attribute.INTENSITY_BOLD).a("  Properties          : ").a(Ansi.Attribute.INTENSITY_BOLD_OFF));
+                System.out.println(SimpleAnsi.INTENSITY_BOLD + "  Properties          : " + SimpleAnsi.INTENSITY_NORMAL);
                 for (Object key : props.keySet()) {
                     Object value = props.get(key);
                     printDetail("    ", key + "=" + value);
                 }
             }
             Reference[] references = component.getReferences();
-            System.out.println(Ansi.ansi().a(Ansi.Attribute.INTENSITY_BOLD).a("References").a(Ansi.Attribute.INTENSITY_BOLD_OFF));
+            System.out.println(SimpleAnsi.INTENSITY_BOLD + "References" + SimpleAnsi.INTENSITY_NORMAL);
 
             for (Reference reference : ScrUtils.emptyIfNull(Reference.class, references)) {
                 printDetail("  Reference           : ", reference.getName());
@@ -96,7 +96,7 @@ public class DetailsAction extends ScrActionSupport {
                     printDetail("    Service Reference : ", b.toString());
                 }
                 
-                if(ScrUtils.emptyIfNull(ServiceReference.class, boundRefs).length == 0) {
+                if (ScrUtils.emptyIfNull(ServiceReference.class, boundRefs).length == 0) {
                     printDetail("    Service Reference : ", "No Services bound");
                 }
             }
@@ -107,7 +107,7 @@ public class DetailsAction extends ScrActionSupport {
     }
 
     private void printDetail(String header, String value) {
-        System.out.println(Ansi.ansi().a(Ansi.Attribute.INTENSITY_BOLD).a(header).a(Ansi.Attribute.INTENSITY_BOLD_OFF).a(value));
+        System.out.println(SimpleAnsi.INTENSITY_BOLD + header + SimpleAnsi.INTENSITY_NORMAL + value);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/bc7bf92e/scr/command/src/main/java/org/apache/karaf/scr/command/action/ListAction.java
----------------------------------------------------------------------
diff --git a/scr/command/src/main/java/org/apache/karaf/scr/command/action/ListAction.java b/scr/command/src/main/java/org/apache/karaf/scr/command/action/ListAction.java
index 740da35..ce47532 100755
--- a/scr/command/src/main/java/org/apache/karaf/scr/command/action/ListAction.java
+++ b/scr/command/src/main/java/org/apache/karaf/scr/command/action/ListAction.java
@@ -21,9 +21,9 @@ import org.apache.felix.scr.ScrService;
 import org.apache.karaf.scr.command.ScrCommandConstants;
 import org.apache.karaf.scr.command.ScrUtils;
 import org.apache.karaf.scr.command.support.IdComparator;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
-import org.apache.karaf.shell.table.ShellTable;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
 
 import java.util.Arrays;
 
@@ -58,6 +58,8 @@ public class ListAction extends ScrActionSupport {
                 }
             }
         }
+        table.print(System.out);
+
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/bc7bf92e/scr/command/src/main/java/org/apache/karaf/scr/command/action/ScrActionSupport.java
----------------------------------------------------------------------
diff --git a/scr/command/src/main/java/org/apache/karaf/scr/command/action/ScrActionSupport.java b/scr/command/src/main/java/org/apache/karaf/scr/command/action/ScrActionSupport.java
index 5c85c1b..6cfe354 100755
--- a/scr/command/src/main/java/org/apache/karaf/scr/command/action/ScrActionSupport.java
+++ b/scr/command/src/main/java/org/apache/karaf/scr/command/action/ScrActionSupport.java
@@ -16,27 +16,23 @@
  */
 package org.apache.karaf.scr.command.action;
 
+import java.util.Arrays;
+import java.util.Dictionary;
+import java.util.List;
+
 import org.apache.felix.scr.Component;
 import org.apache.felix.scr.ScrService;
-import org.apache.felix.service.command.CommandSession;
 import org.apache.karaf.scr.command.ScrCommandConstants;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.console.AbstractAction;
-import org.apache.karaf.shell.console.CommandSessionHolder;
-import org.apache.karaf.shell.console.SubShellAction;
-import org.apache.karaf.shell.console.completer.ArgumentCompleter;
-import org.apache.karaf.shell.inject.Reference;
-import org.fusesource.jansi.Ansi;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.console.CommandLine;
+import org.apache.karaf.shell.api.console.Session;
 import org.osgi.framework.BundleContext;
-import org.osgi.framework.FrameworkUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.Arrays;
-import java.util.Hashtable;
-import java.util.List;
-
-public abstract class ScrActionSupport extends AbstractAction {
+public abstract class ScrActionSupport implements Action {
 
     @Option(name = ScrActionSupport.SHOW_ALL_OPTION, aliases = {ScrActionSupport.SHOW_ALL_ALIAS}, description = "Show all Components including the System Components (hidden by default)", required = false, multiValued = false)
     boolean showHidden = false;
@@ -49,11 +45,14 @@ public abstract class ScrActionSupport extends AbstractAction {
     @Reference
     private ScrService scrService;
 
+    @Reference
+    BundleContext bundleContext;
+
     public ScrActionSupport() {
     }
 
     @Override
-    public Object doExecute() throws Exception {
+    public Object execute() throws Exception {
         if (scrService == null) {
             String msg = "ScrService is unavailable";
             System.out.println(msg);
@@ -71,33 +70,22 @@ public abstract class ScrActionSupport extends AbstractAction {
         return answer;
     }
 
-    public static boolean showHiddenComponent(Component component) {
-        boolean answer = false;
+    public static boolean showHiddenComponent(CommandLine commandLine, Component component) {
         // first look to see if the show all option is there
         // if it is we set showAllFlag to true so the next section will be skipped
-        CommandSession commandSession = CommandSessionHolder.getSession();
-        ArgumentCompleter.ArgumentList list = (ArgumentCompleter.ArgumentList) commandSession.get(ArgumentCompleter.ARGUMENTS_LIST);
-        if (list != null && list.getArguments() != null && list.getArguments().length > 0) {
-            List<String> arguments = Arrays.asList(list.getArguments());
-            if (arguments.contains(ScrActionSupport.SHOW_ALL_OPTION) || arguments.contains(ScrActionSupport.SHOW_ALL_ALIAS)) {
-                answer = true;
-            }
-        }
-
-        return answer;
+        List<String> arguments = Arrays.asList(commandLine.getArguments());
+        return arguments.contains(ScrActionSupport.SHOW_ALL_OPTION) || arguments.contains(ScrActionSupport.SHOW_ALL_ALIAS);
     }
 
     @SuppressWarnings("rawtypes")
     public static boolean isHiddenComponent(Component component) {
         boolean answer = false;
-        Hashtable properties = (Hashtable) component.getProperties();
-        if (properties != null && properties.containsKey(ScrCommandConstants.HIDDEN_COMPONENT_KEY)) {
+        Dictionary properties = component.getProperties();
+        if (properties != null) {
             String value = (String) properties.get(ScrCommandConstants.HIDDEN_COMPONENT_KEY);
             // if the value is false, show the hidden
             // then someone wants us to display the name of a hidden component
-            if (value != null && value.equals("true")) {
-                answer = true;
-            }
+            answer = Boolean.parseBoolean(value);
         }
         return answer;
     }
@@ -109,7 +97,7 @@ public abstract class ScrActionSupport extends AbstractAction {
      * @return the bundleContext
      */
     public BundleContext getBundleContext() {
-        return FrameworkUtil.getBundle(ListAction.class).getBundleContext();
+        return bundleContext;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/karaf/blob/bc7bf92e/scr/command/src/main/java/org/apache/karaf/scr/command/completer/ActivateCompleter.java
----------------------------------------------------------------------
diff --git a/scr/command/src/main/java/org/apache/karaf/scr/command/completer/ActivateCompleter.java b/scr/command/src/main/java/org/apache/karaf/scr/command/completer/ActivateCompleter.java
index 7cfe6e6..0908814 100644
--- a/scr/command/src/main/java/org/apache/karaf/scr/command/completer/ActivateCompleter.java
+++ b/scr/command/src/main/java/org/apache/karaf/scr/command/completer/ActivateCompleter.java
@@ -17,7 +17,7 @@
 package org.apache.karaf.scr.command.completer;
 
 import org.apache.felix.scr.Component;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 
 @Service
 public class ActivateCompleter extends ScrCompleterSupport {

http://git-wip-us.apache.org/repos/asf/karaf/blob/bc7bf92e/scr/command/src/main/java/org/apache/karaf/scr/command/completer/DeactivateCompleter.java
----------------------------------------------------------------------
diff --git a/scr/command/src/main/java/org/apache/karaf/scr/command/completer/DeactivateCompleter.java b/scr/command/src/main/java/org/apache/karaf/scr/command/completer/DeactivateCompleter.java
index 60361d7..a968223 100644
--- a/scr/command/src/main/java/org/apache/karaf/scr/command/completer/DeactivateCompleter.java
+++ b/scr/command/src/main/java/org/apache/karaf/scr/command/completer/DeactivateCompleter.java
@@ -17,7 +17,7 @@
 package org.apache.karaf.scr.command.completer;
 
 import org.apache.felix.scr.Component;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 
 @Service
 public class DeactivateCompleter extends ScrCompleterSupport {

http://git-wip-us.apache.org/repos/asf/karaf/blob/bc7bf92e/scr/command/src/main/java/org/apache/karaf/scr/command/completer/DetailsCompleter.java
----------------------------------------------------------------------
diff --git a/scr/command/src/main/java/org/apache/karaf/scr/command/completer/DetailsCompleter.java b/scr/command/src/main/java/org/apache/karaf/scr/command/completer/DetailsCompleter.java
index 49bc9ba..e1dab36 100644
--- a/scr/command/src/main/java/org/apache/karaf/scr/command/completer/DetailsCompleter.java
+++ b/scr/command/src/main/java/org/apache/karaf/scr/command/completer/DetailsCompleter.java
@@ -17,7 +17,7 @@
 package org.apache.karaf.scr.command.completer;
 
 import org.apache.felix.scr.Component;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 
 @Service
 public class DetailsCompleter extends ScrCompleterSupport {

http://git-wip-us.apache.org/repos/asf/karaf/blob/bc7bf92e/scr/command/src/main/java/org/apache/karaf/scr/command/completer/ScrCompleterSupport.java
----------------------------------------------------------------------
diff --git a/scr/command/src/main/java/org/apache/karaf/scr/command/completer/ScrCompleterSupport.java b/scr/command/src/main/java/org/apache/karaf/scr/command/completer/ScrCompleterSupport.java
index 3434f86..7a0dad7 100755
--- a/scr/command/src/main/java/org/apache/karaf/scr/command/completer/ScrCompleterSupport.java
+++ b/scr/command/src/main/java/org/apache/karaf/scr/command/completer/ScrCompleterSupport.java
@@ -21,9 +21,11 @@ import java.util.List;
 import org.apache.felix.scr.Component;
 import org.apache.felix.scr.ScrService;
 import org.apache.karaf.scr.command.action.ScrActionSupport;
-import org.apache.karaf.shell.console.Completer;
-import org.apache.karaf.shell.console.completer.StringsCompleter;
-import org.apache.karaf.shell.inject.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.console.CommandLine;
+import org.apache.karaf.shell.api.console.Completer;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -38,17 +40,17 @@ public abstract class ScrCompleterSupport implements Completer {
      * Overrides the super method noted below. See super documentation for
      * details.
      *
-     * @see org.apache.karaf.shell.console.Completer#complete(java.lang.String,
-     *      int, java.util.List)
+     * @see org.apache.karaf.shell.api.console.Completer#complete(org.apache.karaf.shell.api.console.Session, org.apache.karaf.shell.api.console.CommandLine, java.util.List)
      */
-    public int complete(String buffer, int cursor, List<String> candidates) {
+    @Override
+    public int complete(Session session, CommandLine commandLine, List<String> candidates) {
         StringsCompleter delegate = new StringsCompleter();
         try {
             for (Component component : scrService.getComponents()) {
                 if (logger.isDebugEnabled()) {
                     logger.debug("Component Name to work on: " + component.getName());
                 }
-                if (ScrActionSupport.showHiddenComponent(component)) {
+                if (ScrActionSupport.showHiddenComponent(commandLine, component)) {
                     // we display all because we are overridden
                     if (availableComponent(component)) {
                         delegate.getStrings().add(component.getName());
@@ -67,7 +69,7 @@ public abstract class ScrCompleterSupport implements Completer {
         } catch (Exception e) {
             logger.warn("Exception completing the command request: " + e.getLocalizedMessage());
         }
-        return delegate.complete(buffer, cursor, candidates);
+        return delegate.complete(session, commandLine, candidates);
     }
 
     public abstract boolean availableComponent(Component component) throws Exception;


[3/6] git commit: [KARAF-2805] Flag all classes from shell/console as deprecated

Posted by gn...@apache.org.
[KARAF-2805] Flag all classes from shell/console as deprecated

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

Branch: refs/heads/master
Commit: 66c52d19b0b779a1c54cb43ffeb342d144cce7e4
Parents: 7ccf13c
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Thu Mar 6 01:03:23 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Thu Mar 6 01:03:23 2014 +0100

----------------------------------------------------------------------
 .../src/main/java/org/apache/karaf/shell/commands/Action.java       | 1 +
 .../src/main/java/org/apache/karaf/shell/commands/Argument.java     | 1 +
 .../src/main/java/org/apache/karaf/shell/commands/Command.java      | 1 +
 .../main/java/org/apache/karaf/shell/commands/CommandException.java | 1 +
 .../java/org/apache/karaf/shell/commands/CommandWithAction.java     | 1 +
 .../src/main/java/org/apache/karaf/shell/commands/Completer.java    | 1 +
 .../main/java/org/apache/karaf/shell/commands/CompleterValues.java  | 1 +
 .../src/main/java/org/apache/karaf/shell/commands/HelpOption.java   | 1 +
 .../src/main/java/org/apache/karaf/shell/commands/InfoProvider.java | 1 +
 .../src/main/java/org/apache/karaf/shell/commands/Option.java       | 1 +
 .../main/java/org/apache/karaf/shell/commands/ansi/SimpleAnsi.java  | 1 +
 .../java/org/apache/karaf/shell/commands/basic/AbstractCommand.java | 1 +
 .../org/apache/karaf/shell/commands/basic/ActionPreparator.java     | 1 +
 .../apache/karaf/shell/commands/basic/DefaultActionPreparator.java  | 1 +
 .../java/org/apache/karaf/shell/commands/basic/SimpleCommand.java   | 1 +
 .../org/apache/karaf/shell/commands/converter/DefaultConverter.java | 1 +
 .../java/org/apache/karaf/shell/commands/converter/GenericType.java | 1 +
 .../java/org/apache/karaf/shell/commands/converter/ReifiedType.java | 1 +
 .../main/java/org/apache/karaf/shell/console/AbstractAction.java    | 1 +
 .../org/apache/karaf/shell/console/BlueprintContainerAware.java     | 1 +
 .../java/org/apache/karaf/shell/console/BundleContextAware.java     | 1 +
 .../java/org/apache/karaf/shell/console/CloseShellException.java    | 1 +
 .../java/org/apache/karaf/shell/console/CommandSessionHolder.java   | 1 +
 .../java/org/apache/karaf/shell/console/CompletableFunction.java    | 1 +
 .../src/main/java/org/apache/karaf/shell/console/Completer.java     | 1 +
 .../src/main/java/org/apache/karaf/shell/console/Console.java       | 1 +
 .../src/main/java/org/apache/karaf/shell/console/ExitAction.java    | 1 +
 .../src/main/java/org/apache/karaf/shell/console/HelpProvider.java  | 1 +
 .../main/java/org/apache/karaf/shell/console/MultiException.java    | 1 +
 .../src/main/java/org/apache/karaf/shell/console/NameScoping.java   | 1 +
 .../java/org/apache/karaf/shell/console/OsgiCommandSupport.java     | 1 +
 .../main/java/org/apache/karaf/shell/console/SessionProperties.java | 1 +
 .../src/main/java/org/apache/karaf/shell/console/SubShell.java      | 1 +
 .../main/java/org/apache/karaf/shell/console/SubShellAction.java    | 1 +
 .../org/apache/karaf/shell/console/commands/AnnotatedSubShell.java  | 1 +
 .../java/org/apache/karaf/shell/console/commands/BasicSubShell.java | 1 +
 .../org/apache/karaf/shell/console/commands/BlueprintCommand.java   | 1 +
 .../java/org/apache/karaf/shell/console/commands/GenericType.java   | 1 +
 .../org/apache/karaf/shell/console/commands/NamespaceHandler.java   | 1 +
 .../karaf/shell/console/commands/NumberToStringConverter.java       | 1 +
 .../apache/karaf/shell/console/completer/AggregateCompleter.java    | 1 +
 .../org/apache/karaf/shell/console/completer/ArgumentCompleter.java | 1 +
 .../apache/karaf/shell/console/completer/CommandNamesCompleter.java | 1 +
 .../org/apache/karaf/shell/console/completer/CommandsCompleter.java | 1 +
 .../org/apache/karaf/shell/console/completer/FileCompleter.java     | 1 +
 .../org/apache/karaf/shell/console/completer/NullCompleter.java     | 1 +
 .../apache/karaf/shell/console/completer/OldArgumentCompleter.java  | 1 +
 .../main/java/org/apache/karaf/shell/console/completer/Parser.java  | 1 +
 .../org/apache/karaf/shell/console/completer/StringsCompleter.java  | 1 +
 .../java/org/apache/karaf/shell/console/factory/ConsoleFactory.java | 1 +
 .../src/main/java/org/apache/karaf/shell/inject/Destroy.java        | 1 +
 shell/console/src/main/java/org/apache/karaf/shell/inject/Init.java | 1 +
 .../src/main/java/org/apache/karaf/shell/inject/Reference.java      | 1 +
 .../src/main/java/org/apache/karaf/shell/inject/Service.java        | 1 +
 .../karaf/shell/security/impl/SecuredCommandConfigTransformer.java  | 1 +
 .../karaf/shell/security/impl/SecuredCommandProcessorImpl.java      | 1 +
 .../src/main/java/org/apache/karaf/shell/util/ShellUtil.java        | 1 +
 57 files changed, 57 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/commands/Action.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/Action.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/Action.java
index c3421e3..6e1d212 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/Action.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/Action.java
@@ -33,6 +33,7 @@ import org.apache.felix.service.command.CommandSession;
  * is necessary so the help generator can instantiate the class and get the 
  * default values. 
  */
+@Deprecated
 public interface Action extends org.apache.felix.gogo.commands.Action {
 
     Object execute(CommandSession session) throws Exception;

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/commands/Argument.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/Argument.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/Argument.java
index eced53d..d878cec 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/Argument.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/Argument.java
@@ -28,6 +28,7 @@ import java.lang.annotation.ElementType;
  */
 @Retention(RetentionPolicy.RUNTIME)
 @Target({ElementType.FIELD})
+@Deprecated
 public @interface Argument
 {
     public static final String DEFAULT_STRING= "DEFAULT";

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/commands/Command.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/Command.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/Command.java
index 490785d..36fd665 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/Command.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/Command.java
@@ -29,6 +29,7 @@ import java.lang.annotation.ElementType;
  */
 @Retention(RetentionPolicy.RUNTIME)
 @Target({ElementType.TYPE})
+@Deprecated
 public @interface Command
 {
     /**

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/commands/CommandException.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/CommandException.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/CommandException.java
index 1ffa25d..41280bd 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/CommandException.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/CommandException.java
@@ -25,6 +25,7 @@ import org.apache.karaf.shell.commands.ansi.SimpleAnsi;
  * Base class for exceptions thrown when executing commands.
  */
 @SuppressWarnings("serial")
+@Deprecated
 public class CommandException extends Exception {
 
     private String help;

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/commands/CommandWithAction.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/CommandWithAction.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/CommandWithAction.java
index 9209eb1..d4be812 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/CommandWithAction.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/CommandWithAction.java
@@ -20,6 +20,7 @@ package org.apache.karaf.shell.commands;
 
 import org.apache.felix.service.command.Function;
 
+@Deprecated
 public interface CommandWithAction extends Function {
 
     Class<? extends org.apache.felix.gogo.commands.Action> getActionClass();

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/commands/Completer.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/Completer.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/Completer.java
index ece3e1d..93a939c 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/Completer.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/Completer.java
@@ -23,6 +23,7 @@ import java.lang.annotation.Target;
 
 @Retention(RetentionPolicy.RUNTIME)
 @Target({ElementType.FIELD})
+@Deprecated
 public @interface Completer {
 
     Class<? extends org.apache.karaf.shell.console.Completer> value();

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/commands/CompleterValues.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/CompleterValues.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/CompleterValues.java
index 4463d35..d3388cd 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/CompleterValues.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/CompleterValues.java
@@ -31,6 +31,7 @@ import java.lang.annotation.Target;
  */
 @Retention(RetentionPolicy.RUNTIME)
 @Target({ElementType.METHOD, ElementType.FIELD})
+@Deprecated
 public @interface CompleterValues
 {
     int index() default 0;

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/commands/HelpOption.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/HelpOption.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/HelpOption.java
index b5a0fa5..dac319b 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/HelpOption.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/HelpOption.java
@@ -20,6 +20,7 @@ package org.apache.karaf.shell.commands;
 
 import java.lang.annotation.Annotation;
 
+@Deprecated
 public class HelpOption {
 
     public static final Option HELP = new Option() {

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/commands/InfoProvider.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/InfoProvider.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/InfoProvider.java
index e253af1..2945e83 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/InfoProvider.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/InfoProvider.java
@@ -21,6 +21,7 @@ import java.util.Properties;
 /**
  * A bundle can publish a service with this interface to offer some informations for the shell:info command
  */
+@Deprecated
 public interface InfoProvider {
 
 	public String getName();

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/commands/Option.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/Option.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/Option.java
index b0a9e9c..44a3e0a 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/Option.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/Option.java
@@ -28,6 +28,7 @@ import java.lang.annotation.Target;
  */
 @Retention(RetentionPolicy.RUNTIME)
 @Target({ElementType.FIELD})
+@Deprecated
 public @interface Option
 {
     public static final String DEFAULT_STRING= "DEFAULT";

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/commands/ansi/SimpleAnsi.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/ansi/SimpleAnsi.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/ansi/SimpleAnsi.java
index 8437949..0ea9ff2 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/ansi/SimpleAnsi.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/ansi/SimpleAnsi.java
@@ -21,6 +21,7 @@ package org.apache.karaf.shell.commands.ansi;
 import org.fusesource.jansi.Ansi;
 import org.fusesource.jansi.Ansi.Color;
 
+@Deprecated
 public class SimpleAnsi {
     public static String COLOR_RED = Ansi.ansi().fg(Color.RED).toString();
     public static String COLOR_DEFAULT = Ansi.ansi().fg(Color.DEFAULT).toString();

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/AbstractCommand.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/AbstractCommand.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/AbstractCommand.java
index 41d4a51..17ca14c 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/AbstractCommand.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/AbstractCommand.java
@@ -24,6 +24,7 @@ import org.apache.felix.gogo.commands.Action;
 import org.apache.felix.service.command.CommandSession;
 import org.apache.karaf.shell.commands.CommandWithAction;
 
+@Deprecated
 public abstract class AbstractCommand implements CommandWithAction {
 
     public Object execute(CommandSession session, List<Object> arguments) throws Exception {

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/ActionPreparator.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/ActionPreparator.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/ActionPreparator.java
index a6d2f8f..e1681b0 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/ActionPreparator.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/ActionPreparator.java
@@ -23,6 +23,7 @@ import java.util.List;
 import org.apache.felix.gogo.commands.Action;
 import org.apache.felix.service.command.CommandSession;
 
+@Deprecated
 public interface ActionPreparator {
 
     /**

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/DefaultActionPreparator.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/DefaultActionPreparator.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/DefaultActionPreparator.java
index 3ad8d29..b230e1e 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/DefaultActionPreparator.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/DefaultActionPreparator.java
@@ -45,6 +45,7 @@ import org.apache.karaf.shell.commands.meta.ActionMetaData;
 import org.apache.karaf.shell.commands.meta.ActionMetaDataFactory;
 import org.apache.karaf.shell.console.NameScoping;
 
+@Deprecated
 public class DefaultActionPreparator implements ActionPreparator {
 
     public boolean prepare(Action action, CommandSession session, List<Object> params) throws Exception {

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/SimpleCommand.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/SimpleCommand.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/SimpleCommand.java
index 4ea5dfc..9fc389c 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/SimpleCommand.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/basic/SimpleCommand.java
@@ -30,6 +30,7 @@ import org.osgi.framework.BundleContext;
 /**
  * A very simple {@link Function} which creates {@link Action} based on a class name.
  */
+@Deprecated
 public class SimpleCommand extends AbstractCommand {
 
     private Class<? extends Action> actionClass;

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/commands/converter/DefaultConverter.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/converter/DefaultConverter.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/converter/DefaultConverter.java
index 54fe81a..3f3aad9 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/converter/DefaultConverter.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/converter/DefaultConverter.java
@@ -51,6 +51,7 @@ import java.lang.reflect.Array;
 import java.lang.reflect.Type;
 import java.lang.reflect.InvocationTargetException;
 
+@Deprecated
 public class DefaultConverter
 {
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/commands/converter/GenericType.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/converter/GenericType.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/converter/GenericType.java
index 2f2b5e0..a8d1718 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/converter/GenericType.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/converter/GenericType.java
@@ -29,6 +29,7 @@ import java.util.Map;
 
 import org.osgi.framework.Bundle;
 
+@Deprecated
 public class GenericType extends ReifiedType {
 
 	private static final GenericType[] EMPTY = new GenericType[0];

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/commands/converter/ReifiedType.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/commands/converter/ReifiedType.java b/shell/console/src/main/java/org/apache/karaf/shell/commands/converter/ReifiedType.java
index dda4477..8f28dc2 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/commands/converter/ReifiedType.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/converter/ReifiedType.java
@@ -35,6 +35,7 @@ package org.apache.karaf.shell.commands.converter;
  *
  * @Immutable
  */
+@Deprecated
 public class ReifiedType {
 	final static ReifiedType ALL = new ReifiedType(Object.class);
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/AbstractAction.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/AbstractAction.java b/shell/console/src/main/java/org/apache/karaf/shell/console/AbstractAction.java
index f9990c5..634f264 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/AbstractAction.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/AbstractAction.java
@@ -23,6 +23,7 @@ import org.apache.felix.service.command.CommandSession;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@Deprecated
 public abstract class AbstractAction implements Action {
 
     protected final Logger log = LoggerFactory.getLogger(getClass());

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/BlueprintContainerAware.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/BlueprintContainerAware.java b/shell/console/src/main/java/org/apache/karaf/shell/console/BlueprintContainerAware.java
index d566f48..8467baa 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/BlueprintContainerAware.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/BlueprintContainerAware.java
@@ -20,6 +20,7 @@ package org.apache.karaf.shell.console;
 
 import org.osgi.service.blueprint.container.BlueprintContainer;
 
+@Deprecated
 public interface BlueprintContainerAware {
 
     void setBlueprintContainer(BlueprintContainer blueprintContainer);

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/BundleContextAware.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/BundleContextAware.java b/shell/console/src/main/java/org/apache/karaf/shell/console/BundleContextAware.java
index bbd03c5..9abd862 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/BundleContextAware.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/BundleContextAware.java
@@ -20,6 +20,7 @@ package org.apache.karaf.shell.console;
 
 import org.osgi.framework.BundleContext;
 
+@Deprecated
 public interface BundleContextAware {
 
     void setBundleContext(BundleContext bundleContext);

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/CloseShellException.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/CloseShellException.java b/shell/console/src/main/java/org/apache/karaf/shell/console/CloseShellException.java
index 81cee88..3a67fd8 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/CloseShellException.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/CloseShellException.java
@@ -22,6 +22,7 @@ package org.apache.karaf.shell.console;
  * Exception thrown to indicate the console to close.
  */
 @SuppressWarnings("serial")
+@Deprecated
 public class CloseShellException extends Exception {
 
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/CommandSessionHolder.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/CommandSessionHolder.java b/shell/console/src/main/java/org/apache/karaf/shell/console/CommandSessionHolder.java
index f07554f..679c2d8 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/CommandSessionHolder.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/CommandSessionHolder.java
@@ -20,6 +20,7 @@ package org.apache.karaf.shell.console;
 
 import org.apache.felix.service.command.CommandSession;
 
+@Deprecated
 public class CommandSessionHolder {
 
     private static final ThreadLocal<CommandSession> session = new ThreadLocal<CommandSession>();

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/CompletableFunction.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/CompletableFunction.java b/shell/console/src/main/java/org/apache/karaf/shell/console/CompletableFunction.java
index fcb96da..b3f1771 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/CompletableFunction.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/CompletableFunction.java
@@ -23,6 +23,7 @@ import java.util.Map;
 
 import org.apache.felix.service.command.Function;
 
+@Deprecated
 public interface CompletableFunction extends Function {
 
     List<Completer> getCompleters();

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/Completer.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/Completer.java b/shell/console/src/main/java/org/apache/karaf/shell/console/Completer.java
index 59f7897..e73a5a3 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/Completer.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/Completer.java
@@ -20,6 +20,7 @@ package org.apache.karaf.shell.console;
 
 import java.util.List;
 
+@Deprecated
 public interface Completer {
 
     int complete(String buffer, int cursor, List<String> candidates);

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/Console.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/Console.java b/shell/console/src/main/java/org/apache/karaf/shell/console/Console.java
index fcca7ad..ba87851 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/Console.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/Console.java
@@ -20,6 +20,7 @@ package org.apache.karaf.shell.console;
 
 import org.apache.felix.service.command.CommandSession;
 
+@Deprecated
 public interface Console extends Runnable {
 
     CommandSession getSession();

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/ExitAction.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/ExitAction.java b/shell/console/src/main/java/org/apache/karaf/shell/console/ExitAction.java
index 1449315..d50cc91 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/ExitAction.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/ExitAction.java
@@ -24,6 +24,7 @@ import org.apache.karaf.shell.commands.Command;
  * Exit from the current sub-shell and get back to the previous one.
  */
 @Command(scope = "*", name = "exit", description = "Exit from the current shell")
+@Deprecated
 public class ExitAction extends AbstractAction {
     
     public Object doExecute() throws Exception {

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/HelpProvider.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/HelpProvider.java b/shell/console/src/main/java/org/apache/karaf/shell/console/HelpProvider.java
index 7e3bca7..d71cfdf 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/HelpProvider.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/HelpProvider.java
@@ -19,6 +19,7 @@ package org.apache.karaf.shell.console;
 
 import org.apache.felix.service.command.CommandSession;
 
+@Deprecated
 public interface HelpProvider {
     
     String getHelp(CommandSession session, String path);

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/MultiException.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/MultiException.java b/shell/console/src/main/java/org/apache/karaf/shell/console/MultiException.java
index 6e6185c..cef676d 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/MultiException.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/MultiException.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 @SuppressWarnings("serial")
+@Deprecated
 public class MultiException extends Exception {
 
     private List<Exception> exceptions = new ArrayList<Exception>();

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/NameScoping.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/NameScoping.java b/shell/console/src/main/java/org/apache/karaf/shell/console/NameScoping.java
index 355464d..3fcdad3 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/NameScoping.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/NameScoping.java
@@ -23,6 +23,7 @@ import org.apache.felix.service.command.CommandSession;
 /**
  * A helper class for name scoping
  */
+@Deprecated
 public class NameScoping {
 
     public static final String MULTI_SCOPE_MODE_KEY = "MULTI_SCOPE_MODE";

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/OsgiCommandSupport.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/OsgiCommandSupport.java b/shell/console/src/main/java/org/apache/karaf/shell/console/OsgiCommandSupport.java
index d737865..ed7e67e 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/OsgiCommandSupport.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/OsgiCommandSupport.java
@@ -29,6 +29,7 @@ import org.osgi.framework.BundleContext;
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
 
+@Deprecated
 public abstract class OsgiCommandSupport extends AbstractAction implements Action, BundleContextAware {
 
     protected BundleContext bundleContext;

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/SessionProperties.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/SessionProperties.java b/shell/console/src/main/java/org/apache/karaf/shell/console/SessionProperties.java
index 30f3433..70cc64a 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/SessionProperties.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/SessionProperties.java
@@ -18,6 +18,7 @@
  */
 package org.apache.karaf.shell.console;
 
+@Deprecated
 public class SessionProperties {
 
     public static final String PRINT_STACK_TRACES = "karaf.printStackTraces";

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/SubShell.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/SubShell.java b/shell/console/src/main/java/org/apache/karaf/shell/console/SubShell.java
index 2de0d20..8f627a6 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/SubShell.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/SubShell.java
@@ -18,6 +18,7 @@
  */
 package org.apache.karaf.shell.console;
 
+@Deprecated
 public interface SubShell {
 
     /**

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/SubShellAction.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/SubShellAction.java b/shell/console/src/main/java/org/apache/karaf/shell/console/SubShellAction.java
index 8774927..78f12e0 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/SubShellAction.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/SubShellAction.java
@@ -22,6 +22,7 @@ package org.apache.karaf.shell.console;
 /**
  * Switch to a sub-shell.
  */
+@Deprecated
 public class SubShellAction extends AbstractAction {
     
     private String subShell;

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/commands/AnnotatedSubShell.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/commands/AnnotatedSubShell.java b/shell/console/src/main/java/org/apache/karaf/shell/console/commands/AnnotatedSubShell.java
index 9cd3dda..7d16b46 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/commands/AnnotatedSubShell.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/commands/AnnotatedSubShell.java
@@ -19,6 +19,7 @@ package org.apache.karaf.shell.console.commands;
 
 import org.apache.karaf.shell.console.SubShell;
 
+@Deprecated
 public class AnnotatedSubShell implements SubShell {
 
     public String getName() {

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/commands/BasicSubShell.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/commands/BasicSubShell.java b/shell/console/src/main/java/org/apache/karaf/shell/console/commands/BasicSubShell.java
index 3e40c5a..eb5e4ae 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/commands/BasicSubShell.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/commands/BasicSubShell.java
@@ -19,6 +19,7 @@ package org.apache.karaf.shell.console.commands;
 
 import org.apache.karaf.shell.console.SubShell;
 
+@Deprecated
 public class BasicSubShell implements SubShell {
     
     private String name;

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/commands/BlueprintCommand.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/commands/BlueprintCommand.java b/shell/console/src/main/java/org/apache/karaf/shell/console/commands/BlueprintCommand.java
index 83fa1ec..c334cf3 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/commands/BlueprintCommand.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/commands/BlueprintCommand.java
@@ -34,6 +34,7 @@ import org.osgi.framework.BundleContext;
 import org.osgi.service.blueprint.container.BlueprintContainer;
 import org.osgi.service.blueprint.container.Converter;
 
+@Deprecated
 public class
         BlueprintCommand extends AbstractCommand implements CompletableFunction
 {

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/commands/GenericType.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/commands/GenericType.java b/shell/console/src/main/java/org/apache/karaf/shell/console/commands/GenericType.java
index faf7c18..d71c15c 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/commands/GenericType.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/commands/GenericType.java
@@ -29,6 +29,7 @@ import java.util.Map;
 import org.osgi.framework.Bundle;
 import org.osgi.service.blueprint.container.ReifiedType;
 
+@Deprecated
 public class GenericType extends ReifiedType {
 
 	private static final GenericType[] EMPTY = new GenericType[0];

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/commands/NamespaceHandler.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/commands/NamespaceHandler.java b/shell/console/src/main/java/org/apache/karaf/shell/console/commands/NamespaceHandler.java
index 6c3a5b3..075b986 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/commands/NamespaceHandler.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/commands/NamespaceHandler.java
@@ -68,6 +68,7 @@ import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
 
+@Deprecated
 public class NamespaceHandler implements org.apache.aries.blueprint.NamespaceHandler {
 
     public static final String ID = "id";

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/commands/NumberToStringConverter.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/commands/NumberToStringConverter.java b/shell/console/src/main/java/org/apache/karaf/shell/console/commands/NumberToStringConverter.java
index fb68c3a..42b25f3 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/commands/NumberToStringConverter.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/commands/NumberToStringConverter.java
@@ -21,6 +21,7 @@ package org.apache.karaf.shell.console.commands;
 import org.osgi.service.blueprint.container.Converter;
 import org.osgi.service.blueprint.container.ReifiedType;
 
+@Deprecated
 public class NumberToStringConverter implements Converter {
 
     @Override

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/completer/AggregateCompleter.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/AggregateCompleter.java b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/AggregateCompleter.java
index dbba436..37eee53 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/AggregateCompleter.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/AggregateCompleter.java
@@ -29,6 +29,7 @@ import org.apache.karaf.shell.console.Completer;
 /**
  * Completer which contains multipule completers and aggregates them together.
  */
+@Deprecated
 public class AggregateCompleter implements Completer
 {
     private final Collection<Completer> completers;

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/completer/ArgumentCompleter.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/ArgumentCompleter.java b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/ArgumentCompleter.java
index 745489e..bdf1733 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/ArgumentCompleter.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/ArgumentCompleter.java
@@ -52,6 +52,7 @@ import org.slf4j.LoggerFactory;
 
 import static org.apache.karaf.shell.console.completer.CommandsCompleter.unProxy;
 
+@Deprecated
 public class ArgumentCompleter implements Completer {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(ArgumentCompleter.class);

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandNamesCompleter.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandNamesCompleter.java b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandNamesCompleter.java
index 23f5447..1749acc 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandNamesCompleter.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandNamesCompleter.java
@@ -36,6 +36,7 @@ import org.osgi.framework.ServiceListener;
 /**
  * Completes command names
  */
+@Deprecated
 public class CommandNamesCompleter implements Completer {
 
     public static final String COMMANDS = ".commands";

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java
index ba95b0c..7011059 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java
@@ -48,6 +48,7 @@ import org.slf4j.LoggerFactory;
  * Like the {@link org.apache.karaf.shell.console.completer.CommandsCompleter} but does not use OSGi but is
  * instead used from the non-OSGi {@link org.apache.karaf.shell.console.impl.Main}
  */
+@Deprecated
 public class CommandsCompleter implements Completer {
 
     public static final String COMMANDS = ".commands";

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/completer/FileCompleter.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/FileCompleter.java b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/FileCompleter.java
index dbb3034..477aad0 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/FileCompleter.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/FileCompleter.java
@@ -43,6 +43,7 @@ import org.apache.karaf.shell.console.Completer;
  * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
  * @since 2.3
  */
+@Deprecated
 public class FileCompleter implements Completer
 {
     private static String OS = System.getProperty("os.name").toLowerCase();

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/completer/NullCompleter.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/NullCompleter.java b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/NullCompleter.java
index 13da2df..0aaea01 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/NullCompleter.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/NullCompleter.java
@@ -22,6 +22,7 @@ import java.util.List;
 
 import org.apache.karaf.shell.console.Completer;
 
+@Deprecated
 public class NullCompleter implements Completer {
 
     public static final NullCompleter INSTANCE = new NullCompleter();

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/completer/OldArgumentCompleter.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/OldArgumentCompleter.java b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/OldArgumentCompleter.java
index 583d6f8..90c3b1a 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/OldArgumentCompleter.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/OldArgumentCompleter.java
@@ -44,6 +44,7 @@ import org.apache.karaf.shell.console.NameScoping;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@Deprecated
 public class OldArgumentCompleter implements Completer {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(OldArgumentCompleter.class);

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/completer/Parser.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/Parser.java b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/Parser.java
index dcdab7d..4018efa 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/Parser.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/Parser.java
@@ -23,6 +23,7 @@ package org.apache.karaf.shell.console.completer;
 import java.util.ArrayList;
 import java.util.List;
 
+@Deprecated
 public class Parser {
 
     int current = 0;

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/completer/StringsCompleter.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/StringsCompleter.java b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/StringsCompleter.java
index a3f7c6d..d8296bd 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/completer/StringsCompleter.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/completer/StringsCompleter.java
@@ -29,6 +29,7 @@ import org.apache.karaf.shell.console.Completer;
 /**
  * Completer for a set of strings.
  */
+@Deprecated
 public class StringsCompleter
     implements Completer
 {

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/console/factory/ConsoleFactory.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/factory/ConsoleFactory.java b/shell/console/src/main/java/org/apache/karaf/shell/console/factory/ConsoleFactory.java
index cf16648..6c27434 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/factory/ConsoleFactory.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/factory/ConsoleFactory.java
@@ -25,6 +25,7 @@ import jline.Terminal;
 
 import org.apache.karaf.shell.console.Console;
 
+@Deprecated
 public interface ConsoleFactory {
     Console create(InputStream in, PrintStream out, PrintStream err, final Terminal term, String encoding, Runnable closeCallback);
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/inject/Destroy.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/inject/Destroy.java b/shell/console/src/main/java/org/apache/karaf/shell/inject/Destroy.java
index 4df9fe3..d985db3 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/inject/Destroy.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/inject/Destroy.java
@@ -25,5 +25,6 @@ import java.lang.annotation.Target;
 
 @Retention(RetentionPolicy.RUNTIME)
 @Target({ElementType.METHOD})
+@Deprecated
 public @interface Destroy {
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/inject/Init.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/inject/Init.java b/shell/console/src/main/java/org/apache/karaf/shell/inject/Init.java
index 154b883..99744e2 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/inject/Init.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/inject/Init.java
@@ -25,5 +25,6 @@ import java.lang.annotation.Target;
 
 @Retention(RetentionPolicy.RUNTIME)
 @Target({ElementType.METHOD})
+@Deprecated
 public @interface Init {
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/inject/Reference.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/inject/Reference.java b/shell/console/src/main/java/org/apache/karaf/shell/inject/Reference.java
index b74d609..61feabc 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/inject/Reference.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/inject/Reference.java
@@ -25,5 +25,6 @@ import java.lang.annotation.Target;
 
 @Retention(RetentionPolicy.RUNTIME)
 @Target({ElementType.FIELD})
+@Deprecated
 public @interface Reference {
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/inject/Service.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/inject/Service.java b/shell/console/src/main/java/org/apache/karaf/shell/inject/Service.java
index ff3f3a3..ef0d813 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/inject/Service.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/inject/Service.java
@@ -25,5 +25,6 @@ import java.lang.annotation.Target;
 
 @Retention(RetentionPolicy.RUNTIME)
 @Target({ElementType.TYPE})
+@Deprecated
 public @interface Service {
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/security/impl/SecuredCommandConfigTransformer.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/security/impl/SecuredCommandConfigTransformer.java b/shell/console/src/main/java/org/apache/karaf/shell/security/impl/SecuredCommandConfigTransformer.java
index d61911d..d69efd6 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/security/impl/SecuredCommandConfigTransformer.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/security/impl/SecuredCommandConfigTransformer.java
@@ -29,6 +29,7 @@ import org.slf4j.LoggerFactory;
 import java.io.IOException;
 import java.util.*;
 
+@Deprecated
 public class SecuredCommandConfigTransformer implements ConfigurationListener {
 
     static final String PROXY_COMMAND_ACL_PID_PREFIX = "org.apache.karaf.command.acl.";

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/security/impl/SecuredCommandProcessorImpl.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/security/impl/SecuredCommandProcessorImpl.java b/shell/console/src/main/java/org/apache/karaf/shell/security/impl/SecuredCommandProcessorImpl.java
index bb47d74..f8a3ff0 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/security/impl/SecuredCommandProcessorImpl.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/security/impl/SecuredCommandProcessorImpl.java
@@ -41,6 +41,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 
+@Deprecated
 public class SecuredCommandProcessorImpl extends CommandProcessorImpl {
 
     private final BundleContext bundleContext;

http://git-wip-us.apache.org/repos/asf/karaf/blob/66c52d19/shell/console/src/main/java/org/apache/karaf/shell/util/ShellUtil.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/util/ShellUtil.java b/shell/console/src/main/java/org/apache/karaf/shell/util/ShellUtil.java
index e8a1d6a..5d678c7 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/util/ShellUtil.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/util/ShellUtil.java
@@ -42,6 +42,7 @@ import org.osgi.framework.startlevel.BundleStartLevel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@Deprecated
 public class ShellUtil {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(ShellUtil.class);


[6/6] git commit: [KARAF-2805] Remove the help bundle which is now integrated in core

Posted by gn...@apache.org.
[KARAF-2805] Remove the help bundle which is now integrated in core

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

Branch: refs/heads/master
Commit: 427871032a8e946ba985c719b4b7f82f69da4d4b
Parents: ed9f078
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Thu Mar 6 01:39:40 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Thu Mar 6 01:39:40 2014 +0100

----------------------------------------------------------------------
 pom.xml                                         |   5 -
 shell/help/NOTICE                               |  71 ---------
 shell/help/pom.xml                              | 122 ---------------
 .../help/impl/CommandListHelpProvider.java      | 152 -------------------
 .../karaf/shell/help/impl/HelpAction.java       |  47 ------
 .../karaf/shell/help/impl/HelpSystem.java       |  85 -----------
 .../shell/help/impl/SimpleHelpProvider.java     |  48 ------
 .../help/impl/SingleCommandHelpProvider.java    |  71 ---------
 .../OSGI-INF/blueprint/shell-commands.xml       |  78 ----------
 .../src/main/resources/OSGI-INF/bundle.info     |  18 ---
 .../services/org/apache/karaf/shell/commands    |  17 ---
 shell/pom.xml                                   |   1 -
 12 files changed, 715 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/42787103/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 5a37852..938537e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -651,11 +651,6 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.karaf.shell</groupId>
-                <artifactId>org.apache.karaf.shell.help</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.karaf.shell</groupId>
                 <artifactId>org.apache.karaf.shell.table</artifactId>
                 <version>${project.version}</version>
             </dependency>

http://git-wip-us.apache.org/repos/asf/karaf/blob/42787103/shell/help/NOTICE
----------------------------------------------------------------------
diff --git a/shell/help/NOTICE b/shell/help/NOTICE
deleted file mode 100644
index b70f1f9..0000000
--- a/shell/help/NOTICE
+++ /dev/null
@@ -1,71 +0,0 @@
-Apache Karaf
-Copyright 2010-2014 The Apache Software Foundation
-
-
-I. Included Software
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
-
-This product uses software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2010).
-Licensed under the Apache License 2.0.
-
-This product includes software developed at
-OW2 (http://www.ow2.org/).
-Licensed under the BSD License.
-
-This product includes software developed at
-OPS4J (http://www.ops4j.org/).
-Licensed under the Apache License 2.0.
-
-This product includes software developed at
-Eclipse Foundation (http://www.eclipse.org/).
-Licensed under the EPL.
-
-This product includes software written by
-Antony Lesuisse.
-Licensed under Public Domain.
-
-
-II. Used Software
-
-This product uses software developed at
-FUSE Source (http://www.fusesource.org/).
-Licensed under the Apache License 2.0.
-
-This product uses software developed at
-AOP Alliance (http://aopalliance.sourceforge.net/).
-Licensed under the Public Domain.
-
-This product uses software developed at
-Tanuki Software (http://www.tanukisoftware.com/).
-Licensed under the Apache License 2.0.
-
-This product uses software developed at
-Jasypt (http://jasypt.sourceforge.net/).
-Licensed under the Apache License 2.0.
-
-This product uses software developed at
-JLine (http://jline.sourceforge.net).
-Licensed under the BSD License.
-
-This product uses software developed at
-SLF4J (http://www.slf4j.org/).
-Licensed under the MIT License.
-
-This product uses software developed at
-SpringSource (http://www.springsource.org/).
-Licensed under the Apache License 2.0.
-
-This product includes software from http://www.json.org.
-Copyright (c) 2002 JSON.org
-
-
-III. License Summary
-- Apache License 2.0
-- BSD License
-- EPL License
-- MIT License

http://git-wip-us.apache.org/repos/asf/karaf/blob/42787103/shell/help/pom.xml
----------------------------------------------------------------------
diff --git a/shell/help/pom.xml b/shell/help/pom.xml
deleted file mode 100644
index 4273703..0000000
--- a/shell/help/pom.xml
+++ /dev/null
@@ -1,122 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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">
-
-    <!--
-
-        Licensed to the Apache Software Foundation (ASF) under one or more
-        contributor license agreements.  See the NOTICE file distributed with
-        this work for additional information regarding copyright ownership.
-        The ASF licenses this file to You under the Apache License, Version 2.0
-        (the "License"); you may not use this file except in compliance with
-        the License.  You may obtain a copy of the License at
-
-           http://www.apache.org/licenses/LICENSE-2.0
-
-        Unless required by applicable law or agreed to in writing, software
-        distributed under the License is distributed on an "AS IS" BASIS,
-        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-        See the License for the specific language governing permissions and
-        limitations under the License.
-    -->
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.karaf.shell</groupId>
-        <artifactId>shell</artifactId>
-        <version>3.1.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <artifactId>org.apache.karaf.shell.help</artifactId>
-    <packaging>bundle</packaging>
-    <name>Apache Karaf :: Shell :: Help System</name>
-    <description>This bundles provides the karaf help system</description>
-
-    <properties>
-        <appendedResourcesDirectory>${basedir}/../../etc/appended-resources</appendedResourcesDirectory>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.karaf.shell</groupId>
-            <artifactId>org.apache.karaf.shell.console</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.karaf.shell</groupId>
-            <artifactId>org.apache.karaf.shell.table</artifactId>
-        </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>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-simple</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <resources>
-            <resource>
-                <directory>${project.basedir}/src/main/resources</directory>
-                <includes>
-                    <include>**/*</include>
-                </includes>
-            </resource>
-            <resource>
-                <directory>${project.basedir}/src/main/resources</directory>
-                <filtering>true</filtering>
-                <includes>
-                    <include>**/*.info</include>
-                </includes>
-            </resource>
-        </resources>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Export-Package>
-                        	!org.apache.karaf.shell.help.impl*
-                        </Export-Package>
-                        <Private-Package>
-                            org.apache.karaf.util.process;-split-package:=merge-first,
-                            org.apache.karaf.util.properties;-split-package:=merge-first,
-                            org.apache.karaf.shell.help.impl*
-                        </Private-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>

http://git-wip-us.apache.org/repos/asf/karaf/blob/42787103/shell/help/src/main/java/org/apache/karaf/shell/help/impl/CommandListHelpProvider.java
----------------------------------------------------------------------
diff --git a/shell/help/src/main/java/org/apache/karaf/shell/help/impl/CommandListHelpProvider.java b/shell/help/src/main/java/org/apache/karaf/shell/help/impl/CommandListHelpProvider.java
deleted file mode 100644
index 98102c4..0000000
--- a/shell/help/src/main/java/org/apache/karaf/shell/help/impl/CommandListHelpProvider.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.karaf.shell.help.impl;
-
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-import java.lang.reflect.Field;
-import java.util.Map;
-import java.util.Set;
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-import jline.Terminal;
-
-import org.apache.felix.gogo.commands.Action;
-import org.apache.felix.service.command.CommandSession;
-import org.apache.felix.service.command.Function;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.CommandWithAction;
-import org.apache.karaf.shell.commands.basic.AbstractCommand;
-import org.apache.karaf.shell.commands.meta.ActionMetaDataFactory;
-import org.apache.karaf.shell.console.HelpProvider;
-import org.apache.karaf.shell.console.NameScoping;
-import org.apache.karaf.shell.console.SessionProperties;
-import org.apache.karaf.shell.table.Col;
-import org.apache.karaf.shell.table.ShellTable;
-import org.fusesource.jansi.Ansi;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-
-public class CommandListHelpProvider implements HelpProvider {
-
-    public static final String COMMANDS = ".commands";
-
-    public String getHelp(CommandSession session, String path) {
-        if (path.indexOf('|') > 0) {
-            if (path.startsWith("command-list|")) {
-                path = path.substring("command-list|".length());
-            } else {
-                return null;
-            }
-        }
-        SortedMap<String, String> commands = getCommandDescriptions(session, path);
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        printMethodList(session, new PrintStream(baos), commands);
-        return baos.toString();
-    }
-
-    private SortedMap<String, String> getCommandDescriptions(CommandSession session, String command) {
-        Set<String> names = (Set<String>) session.get(COMMANDS);
-
-        String subshell = (String) session.get("SUBSHELL");
-        String completionMode = (String) session.get(SessionProperties.COMPLETION_MODE);
-
-        SortedMap<String,String> commands = new TreeMap<String,String>();
-        for (String name : names) {
-
-            if (command != null && !name.startsWith(command)) {
-                continue;
-            }
-
-            if (completionMode != null && completionMode.equalsIgnoreCase("subshell")) {
-                // filter the help only for "global" commands
-                if (subshell == null || subshell.trim().isEmpty()) {
-                    if (!name.startsWith("*")) {
-                        continue;
-                    }
-                }
-            }
-
-            if (completionMode != null && (completionMode.equalsIgnoreCase("subshell") || completionMode.equalsIgnoreCase("first"))) {
-                // filter the help only for commands local to the subshell
-                if (!name.startsWith(subshell)) {
-                    continue;
-                }
-            }
-
-            String description = null;
-            Function function = (Function) session.get(name);
-            function = unProxy(function);
-            if (function instanceof CommandWithAction) {
-                try {
-                    Class<? extends Action> actionClass = ((CommandWithAction) function).getActionClass();
-                    Command ann = new ActionMetaDataFactory().getCommand(actionClass);
-                    description = ann.description();
-                } catch (Throwable e) {
-                }
-                if (name.startsWith("*:")) {
-                    name = name.substring(2);
-                }
-                if (subshell != null && !subshell.trim().isEmpty() && name.startsWith(subshell)) {
-                    name = name.substring(subshell.length() + 1);
-                }
-                commands.put(name, description);
-            }
-        }
-        return commands;
-    }
-
-    protected void printMethodList(CommandSession session, PrintStream out, SortedMap<String, String> commands) {
-        Terminal term = (Terminal) session.get(".jline.terminal");
-        int termWidth = term != null ? term.getWidth() : 80;
-        out.println(Ansi.ansi().a(Ansi.Attribute.INTENSITY_BOLD).a("COMMANDS").a(Ansi.Attribute.RESET));
-        ShellTable table = new ShellTable().noHeaders().separator(" ").size(termWidth);
-        table.column(new Col("Command").maxSize(35));
-        table.column(new Col("Description"));
-        for (Map.Entry<String,String> entry : commands.entrySet()) {
-            String key = NameScoping.getCommandNameWithoutGlobalPrefix(session, entry.getKey());
-            table.addRow().addContent(key, entry.getValue());
-        }
-        table.print(out, true);
-    }
-    
-    protected Function unProxy(Function function) {
-        try {
-            if (function.getClass().getName().contains("CommandProxy")) {
-                Field contextField = function.getClass().getDeclaredField("context");
-                Field referenceField = function.getClass().getDeclaredField("reference");
-                contextField.setAccessible(true);
-                referenceField.setAccessible(true);
-                BundleContext context = (BundleContext) contextField.get(function);
-                ServiceReference reference = (ServiceReference) referenceField.get(function);
-                Object target = context.getService(reference);
-                try {
-                    if (target instanceof Function) {
-                        function = (Function) target;
-                    }
-                } finally {
-                    context.ungetService(reference);
-                }
-            }
-        } catch (Throwable t) {
-        }
-        return function;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/42787103/shell/help/src/main/java/org/apache/karaf/shell/help/impl/HelpAction.java
----------------------------------------------------------------------
diff --git a/shell/help/src/main/java/org/apache/karaf/shell/help/impl/HelpAction.java b/shell/help/src/main/java/org/apache/karaf/shell/help/impl/HelpAction.java
deleted file mode 100644
index 16c17d2..0000000
--- a/shell/help/src/main/java/org/apache/karaf/shell/help/impl/HelpAction.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.karaf.shell.help.impl;
-
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.console.AbstractAction;
-
-/**
- * Displays help on the available commands
- */
-@Command(scope = "*", name = "help", description = "Displays this help or help about a command")
-public class HelpAction extends AbstractAction {
-
-    @Argument(name = "command", required = false, description = "The command to get help for")
-    private String command;
-    
-    private HelpSystem provider;
-
-    public void setProvider(HelpSystem provider) {
-        this.provider = provider;
-    }
-
-    public Object doExecute() throws Exception {
-        String help = provider.getHelp(session, command);
-        if (help != null) {
-            System.out.println(help);
-        }
-        return null;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/42787103/shell/help/src/main/java/org/apache/karaf/shell/help/impl/HelpSystem.java
----------------------------------------------------------------------
diff --git a/shell/help/src/main/java/org/apache/karaf/shell/help/impl/HelpSystem.java b/shell/help/src/main/java/org/apache/karaf/shell/help/impl/HelpSystem.java
deleted file mode 100644
index d88a747..0000000
--- a/shell/help/src/main/java/org/apache/karaf/shell/help/impl/HelpSystem.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/**
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.karaf.shell.help.impl;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.felix.service.command.CommandSession;
-import org.apache.karaf.shell.console.HelpProvider;
-import org.apache.karaf.util.properties.InterpolationHelper;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
-
-public class HelpSystem implements HelpProvider {
-
-    private BundleContext context;
-
-    public HelpSystem(BundleContext context) {
-        this.context = context;
-    }
-
-    @SuppressWarnings("unchecked")
-    public synchronized List<HelpProvider> getProviders() {
-        ServiceReference<HelpProvider> [] refs = null;
-        try {
-            refs = context.getServiceReferences(HelpProvider.class, null).toArray(new ServiceReference[]{});
-        } catch (InvalidSyntaxException e) {
-            throw new RuntimeException(e);
-        }
-        Arrays.sort(refs);
-        List<HelpProvider> providers = new ArrayList<HelpProvider>();
-        for (int i = refs.length - 1; i >= 0; i--) {
-            providers.add(context.getService(refs[i]));
-        }
-        return providers;
-    }
-    
-    public String getHelp(final CommandSession session, String path) {
-        if (path == null) {
-            path = "%root%";
-        }
-        Map<String,String> props = new HashMap<String,String>();
-        props.put("data", "${" + path + "}");
-        final List<HelpProvider> providers = getProviders();
-        InterpolationHelper.performSubstitution(props, new InterpolationHelper.SubstitutionCallback() {
-            public String getValue(final String key) {
-                for (HelpProvider hp : providers) {
-                    String result = hp.getHelp(session, key);
-                    if (result != null) {
-                        return removeNewLine(result);
-                    }
-                }
-                return null;
-            }
-        });
-        return props.get("data");
-    }
-    
-    private String removeNewLine(String help) {
-        if (help != null && help.endsWith("\n")) {
-            help = help.substring(0, help.length()  -1);
-        }
-        return help;
-    }
-    
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/42787103/shell/help/src/main/java/org/apache/karaf/shell/help/impl/SimpleHelpProvider.java
----------------------------------------------------------------------
diff --git a/shell/help/src/main/java/org/apache/karaf/shell/help/impl/SimpleHelpProvider.java b/shell/help/src/main/java/org/apache/karaf/shell/help/impl/SimpleHelpProvider.java
deleted file mode 100644
index c37f4e1..0000000
--- a/shell/help/src/main/java/org/apache/karaf/shell/help/impl/SimpleHelpProvider.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.karaf.shell.help.impl;
-
-import java.util.Map;
-
-import org.apache.felix.service.command.CommandSession;
-import org.apache.karaf.shell.console.HelpProvider;
-
-public class SimpleHelpProvider implements HelpProvider {
-    
-    private Map<String, String> help;
-
-    public Map<String, String> getHelp() {
-        return help;
-    }
-
-    public void setHelp(Map<String, String> help) {
-        this.help = help;
-    }
-
-    public String getHelp(CommandSession session, String path) {
-        if (path.indexOf('|') > 0) {
-            if (path.startsWith("simple|")) {
-                path = path.substring("simple|".length());
-            } else {
-                return null;
-            }
-        }
-        String str = help.get(path);
-        return str;
-    }
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/42787103/shell/help/src/main/java/org/apache/karaf/shell/help/impl/SingleCommandHelpProvider.java
----------------------------------------------------------------------
diff --git a/shell/help/src/main/java/org/apache/karaf/shell/help/impl/SingleCommandHelpProvider.java b/shell/help/src/main/java/org/apache/karaf/shell/help/impl/SingleCommandHelpProvider.java
deleted file mode 100644
index ad3afc4..0000000
--- a/shell/help/src/main/java/org/apache/karaf/shell/help/impl/SingleCommandHelpProvider.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.karaf.shell.help.impl;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-import java.util.Set;
-
-import org.apache.felix.service.command.CommandSession;
-import org.apache.felix.service.threadio.ThreadIO;
-import org.apache.karaf.shell.console.HelpProvider;
-
-public class SingleCommandHelpProvider implements HelpProvider {
-
-    public static final String COMMANDS = ".commands";
-
-    private ThreadIO io;
-    
-    public SingleCommandHelpProvider(ThreadIO io) {
-        this.io = io;
-    }
-
-    public String getHelp(CommandSession session, String path) {
-
-        String subshell = (String) session.get("SUBSHELL");
-
-        if (subshell != null && !subshell.trim().isEmpty()) {
-            if (!path.startsWith(subshell)) {
-                path = subshell + ":" + path;
-            }
-        }
-
-        if (path.indexOf('|') > 0) {
-            if (path.startsWith("command|")) {
-                path = path.substring("command|".length());
-            } else {
-                return null;
-            }
-        }
-        Set<String> names = (Set<String>) session.get(COMMANDS);
-        if (path != null && names.contains(path)) {
-            ByteArrayOutputStream baos = new ByteArrayOutputStream();
-            io.setStreams(new ByteArrayInputStream(new byte[0]), new PrintStream(baos, true), new PrintStream(baos, true));
-            try {
-                session.execute(path + " --help");
-            } catch (Throwable t) {
-                t.printStackTrace();
-            } finally {
-                io.close();
-            }
-            return baos.toString();
-        }
-        return null;
-    }
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/42787103/shell/help/src/main/resources/OSGI-INF/blueprint/shell-commands.xml
----------------------------------------------------------------------
diff --git a/shell/help/src/main/resources/OSGI-INF/blueprint/shell-commands.xml b/shell/help/src/main/resources/OSGI-INF/blueprint/shell-commands.xml
deleted file mode 100644
index 4a67c37..0000000
--- a/shell/help/src/main/resources/OSGI-INF/blueprint/shell-commands.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy">
-
-   	<bean id="commandCompleter" class="org.apache.karaf.shell.console.completer.CommandsCompleter"/>
-
-    <service>
-        <interfaces>
-            <value>org.apache.felix.service.command.Function</value>
-            <value>org.apache.karaf.shell.console.CompletableFunction</value>
-        </interfaces>
-        <service-properties>
-            <entry key="osgi.command.scope" value="*"/>
-            <entry key="osgi.command.function" value="help"/>
-        </service-properties>
-        <bean class="org.apache.karaf.shell.console.commands.BlueprintCommand">
-            <property name="blueprintContainer" ref="blueprintContainer"/>
-            <property name="blueprintConverter" ref="blueprintConverter"/>
-            <property name="actionId" value="help"/>
-            <property name="completers">
-                <list>
-                    <bean class="org.apache.karaf.shell.console.completer.CommandNamesCompleter"/>
-                </list>
-            </property>
-        </bean>
-    </service>
-
-    <bean id="help" class="org.apache.karaf.shell.help.impl.HelpAction" activation="lazy" scope="prototype">
-        <property name="provider" ref="helpSystem"/>
-    </bean>
-    
-    <bean id="helpSystem" class="org.apache.karaf.shell.help.impl.HelpSystem">
-        <argument ref="blueprintBundleContext"/>
-    </bean>
-
-    <!--use to get the help on the list of commands -->
-    <service interface="org.apache.karaf.shell.console.HelpProvider" ranking="-20">
-        <bean class="org.apache.karaf.shell.help.impl.CommandListHelpProvider" />
-    </service>
-
-    <!-- use for "help command" syntax -->
-    <reference id="threadIO" interface="org.apache.felix.service.threadio.ThreadIO"/>
-    <service auto-export="interfaces" ranking="-10">
-        <bean class="org.apache.karaf.shell.help.impl.SingleCommandHelpProvider">
-            <argument ref="threadIO" />
-        </bean>
-    </service>
-
-    <!-- use for "help" to get help on each command in the commands list -->
-    <service auto-export="interfaces" ranking="-5">
-        <bean class="org.apache.karaf.shell.help.impl.SimpleHelpProvider">
-            <property name="help">
-                <map>
-                    <entry key="%root%"><value><![CDATA[${command-list|}]]></value></entry>
-                    <entry key="all"><value><![CDATA[${command-list|}]]></value></entry>
-                </map>
-            </property>
-        </bean>
-    </service>
- 
-</blueprint>

http://git-wip-us.apache.org/repos/asf/karaf/blob/42787103/shell/help/src/main/resources/OSGI-INF/bundle.info
----------------------------------------------------------------------
diff --git a/shell/help/src/main/resources/OSGI-INF/bundle.info b/shell/help/src/main/resources/OSGI-INF/bundle.info
deleted file mode 100644
index 09520d1..0000000
--- a/shell/help/src/main/resources/OSGI-INF/bundle.info
+++ /dev/null
@@ -1,18 +0,0 @@
-h1. Synopsis
-
-${project.name}
-
-${project.description}
-
-Maven URL:
-[mvn:${project.groupId}/${project.artifactId}/${project.version}]
-
-h1. Description
-
-This bundle provides the Karaf help system and command
-
-shell:help
-
-h1. See also
-
-Commands - and Using the console - sections of the Karaf User Guide.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/karaf/blob/42787103/shell/help/src/main/resources/services/org/apache/karaf/shell/commands
----------------------------------------------------------------------
diff --git a/shell/help/src/main/resources/services/org/apache/karaf/shell/commands b/shell/help/src/main/resources/services/org/apache/karaf/shell/commands
deleted file mode 100644
index ee78f61..0000000
--- a/shell/help/src/main/resources/services/org/apache/karaf/shell/commands
+++ /dev/null
@@ -1,17 +0,0 @@
-##---------------------------------------------------------------------------
-##  Licensed to the Apache Software Foundation (ASF) under one or more
-##  contributor license agreements.  See the NOTICE file distributed with
-##  this work for additional information regarding copyright ownership.
-##  The ASF licenses this file to You under the Apache License, Version 2.0
-##  (the "License"); you may not use this file except in compliance with
-##  the License.  You may obtain a copy of the License at
-##
-##     http://www.apache.org/licenses/LICENSE-2.0
-##
-##  Unless required by applicable law or agreed to in writing, software
-##  distributed under the License is distributed on an "AS IS" BASIS,
-##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-##  See the License for the specific language governing permissions and
-##  limitations under the License.
-##---------------------------------------------------------------------------
-org.apache.karaf.shell.console.impl.help.HelpAction

http://git-wip-us.apache.org/repos/asf/karaf/blob/42787103/shell/pom.xml
----------------------------------------------------------------------
diff --git a/shell/pom.xml b/shell/pom.xml
index 482021b..8d31157 100644
--- a/shell/pom.xml
+++ b/shell/pom.xml
@@ -38,7 +38,6 @@
         <module>core</module>
         <module>console</module>
         <module>ssh</module>
-        <module>help</module>
         <module>table</module>
     </modules>
 


[5/6] git commit: Revert [KARAF-2762]

Posted by gn...@apache.org.
Revert [KARAF-2762]

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

Branch: refs/heads/master
Commit: ed9f0785faf28f0bf142ea67546f83684a8edb80
Parents: 662c07a
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Thu Mar 6 01:31:22 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Thu Mar 6 01:31:22 2014 +0100

----------------------------------------------------------------------
 shell/command-exporter/NOTICE                   |  71 ----------
 shell/command-exporter/pom.xml                  | 110 ---------------
 .../karaf/shell/exporter/ActionCommand.java     | 133 -------------------
 .../karaf/shell/exporter/ActionTracker.java     |  94 -------------
 .../apache/karaf/shell/exporter/Activator.java  |  42 ------
 shell/pom.xml                                   |   1 -
 6 files changed, 451 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/ed9f0785/shell/command-exporter/NOTICE
----------------------------------------------------------------------
diff --git a/shell/command-exporter/NOTICE b/shell/command-exporter/NOTICE
deleted file mode 100644
index b70f1f9..0000000
--- a/shell/command-exporter/NOTICE
+++ /dev/null
@@ -1,71 +0,0 @@
-Apache Karaf
-Copyright 2010-2014 The Apache Software Foundation
-
-
-I. Included Software
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
-
-This product uses software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2010).
-Licensed under the Apache License 2.0.
-
-This product includes software developed at
-OW2 (http://www.ow2.org/).
-Licensed under the BSD License.
-
-This product includes software developed at
-OPS4J (http://www.ops4j.org/).
-Licensed under the Apache License 2.0.
-
-This product includes software developed at
-Eclipse Foundation (http://www.eclipse.org/).
-Licensed under the EPL.
-
-This product includes software written by
-Antony Lesuisse.
-Licensed under Public Domain.
-
-
-II. Used Software
-
-This product uses software developed at
-FUSE Source (http://www.fusesource.org/).
-Licensed under the Apache License 2.0.
-
-This product uses software developed at
-AOP Alliance (http://aopalliance.sourceforge.net/).
-Licensed under the Public Domain.
-
-This product uses software developed at
-Tanuki Software (http://www.tanukisoftware.com/).
-Licensed under the Apache License 2.0.
-
-This product uses software developed at
-Jasypt (http://jasypt.sourceforge.net/).
-Licensed under the Apache License 2.0.
-
-This product uses software developed at
-JLine (http://jline.sourceforge.net).
-Licensed under the BSD License.
-
-This product uses software developed at
-SLF4J (http://www.slf4j.org/).
-Licensed under the MIT License.
-
-This product uses software developed at
-SpringSource (http://www.springsource.org/).
-Licensed under the Apache License 2.0.
-
-This product includes software from http://www.json.org.
-Copyright (c) 2002 JSON.org
-
-
-III. License Summary
-- Apache License 2.0
-- BSD License
-- EPL License
-- MIT License

http://git-wip-us.apache.org/repos/asf/karaf/blob/ed9f0785/shell/command-exporter/pom.xml
----------------------------------------------------------------------
diff --git a/shell/command-exporter/pom.xml b/shell/command-exporter/pom.xml
deleted file mode 100644
index cf4bca9..0000000
--- a/shell/command-exporter/pom.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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">
-
-    <!--
-
-        Licensed to the Apache Software Foundation (ASF) under one or more
-        contributor license agreements.  See the NOTICE file distributed with
-        this work for additional information regarding copyright ownership.
-        The ASF licenses this file to You under the Apache License, Version 2.0
-        (the "License"); you may not use this file except in compliance with
-        the License.  You may obtain a copy of the License at
-
-           http://www.apache.org/licenses/LICENSE-2.0
-
-        Unless required by applicable law or agreed to in writing, software
-        distributed under the License is distributed on an "AS IS" BASIS,
-        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-        See the License for the specific language governing permissions and
-        limitations under the License.
-    -->
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.karaf.shell</groupId>
-        <artifactId>shell</artifactId>
-        <version>3.1.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <artifactId>command-exporter</artifactId>
-    <packaging>bundle</packaging>
-
-    <properties>
-        <appendedResourcesDirectory>${basedir}/../../etc/appended-resources</appendedResourcesDirectory>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.karaf.shell</groupId>
-            <artifactId>org.apache.karaf.shell.console</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.karaf.shell</groupId>
-            <artifactId>org.apache.karaf.shell.table</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.karaf.package</groupId>
-            <artifactId>org.apache.karaf.package.core</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.gogo.runtime</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-jdk14</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.utils</artifactId>
-            <scope>provided</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <resources>
-            <resource>
-                <directory>${project.basedir}/src/main/resources</directory>
-                <includes>
-                    <include>**/*</include>
-                </includes>
-            </resource>
-            <resource>
-                <directory>${project.basedir}/src/main/resources</directory>
-                <filtering>true</filtering>
-                <includes>
-                    <include>**/*.info</include>
-                </includes>
-            </resource>
-        </resources>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Bundle-Activator>org.apache.karaf.shell.exporter.Activator</Bundle-Activator>
-                        <Export-Package>!*</Export-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/karaf/blob/ed9f0785/shell/command-exporter/src/main/java/org/apache/karaf/shell/exporter/ActionCommand.java
----------------------------------------------------------------------
diff --git a/shell/command-exporter/src/main/java/org/apache/karaf/shell/exporter/ActionCommand.java b/shell/command-exporter/src/main/java/org/apache/karaf/shell/exporter/ActionCommand.java
deleted file mode 100644
index 8779249..0000000
--- a/shell/command-exporter/src/main/java/org/apache/karaf/shell/exporter/ActionCommand.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.karaf.shell.exporter;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.felix.gogo.commands.Action;
-import org.apache.felix.gogo.commands.Command;
-import org.apache.felix.gogo.commands.CommandWithAction;
-import org.apache.felix.gogo.commands.basic.AbstractCommand;
-import org.apache.felix.service.command.CommandProcessor;
-import org.apache.felix.service.command.Function;
-import org.apache.karaf.shell.console.CompletableFunction;
-import org.apache.karaf.shell.console.Completer;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceRegistration;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Wraps an Action as a command using a template for the action injects
- */
-@SuppressWarnings("deprecation")
-public class ActionCommand extends AbstractCommand implements CompletableFunction {
-
-    private static Logger logger = LoggerFactory.getLogger(ActionCommand.class);
-
-    private Action actionTemplate;
-    private List<Completer> completers = new ArrayList<Completer>();
-
-    public ActionCommand(Action actionTemplate) {
-        this.actionTemplate = actionTemplate;
-        addCompleters();
-    }
-
-    public ServiceRegistration<?> registerService(BundleContext context) {
-        Class<? extends Action> actionClass = actionTemplate.getClass();
-        Command cmd = actionClass.getAnnotation(Command.class);
-        if (cmd == null) {
-            throw new IllegalArgumentException("Action class " + actionClass
-                    + " is not annotated with @Command");
-        }
-        String[] interfaces = new String[]{
-                Function.class.getName(),
-                CommandWithAction.class.getName(),
-                AbstractCommand.class.getName()
-        };
-        Hashtable<String, String> props = new Hashtable<String, String>();
-        props.put(CommandProcessor.COMMAND_SCOPE, cmd.scope());
-        props.put(CommandProcessor.COMMAND_FUNCTION, cmd.name());
-        logger.info("Registering command " + cmd.scope() + ":" + cmd.name() + " in the name of bundle " + context.getBundle().getBundleId());
-        return context.registerService(interfaces, this, props);
-    }
-
-    @Override
-    public Class<? extends Action> getActionClass() {
-        return actionTemplate.getClass();
-    }
-
-    @Override
-    public Action createNewAction() {
-        try {
-            Action newAction = actionTemplate.getClass().newInstance();
-            copyFields(newAction);
-            return newAction;
-        } catch (InstantiationException e) {
-            throw new RuntimeException(e);
-        } catch (IllegalAccessException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    @Override
-    public List<Completer> getCompleters() {
-        return completers;
-    }
-
-    @Override
-    public Map<String, Completer> getOptionalCompleters() {
-        return null;
-    }
-
-    private void copyFields(Action newAction) {
-        Field[] fields = actionTemplate.getClass().getDeclaredFields();
-        for (Field field : fields) {
-            try {
-                if (!field.isAccessible()) {
-                    field.setAccessible(true);
-                }
-                Object value = field.get(actionTemplate);
-                field.set(newAction, value);
-            } catch (Exception e) {
-                throw new RuntimeException(e.getMessage(), e);
-            }
-        }
-    }
-
-    private void addCompleters() {
-        for (Field field : actionTemplate.getClass().getDeclaredFields()) {
-            if (Completer.class.isAssignableFrom(field.getType())) {
-                try {
-                    if (!field.isAccessible()) {
-                        field.setAccessible(true);
-                    }
-                    this.completers.add((Completer) field.get(actionTemplate));
-                } catch (Exception e) {
-                    logger.warn("Error setting completer from field " + field.getName());
-                }
-            }
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/ed9f0785/shell/command-exporter/src/main/java/org/apache/karaf/shell/exporter/ActionTracker.java
----------------------------------------------------------------------
diff --git a/shell/command-exporter/src/main/java/org/apache/karaf/shell/exporter/ActionTracker.java b/shell/command-exporter/src/main/java/org/apache/karaf/shell/exporter/ActionTracker.java
deleted file mode 100644
index 5065759..0000000
--- a/shell/command-exporter/src/main/java/org/apache/karaf/shell/exporter/ActionTracker.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.karaf.shell.exporter;
-
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.felix.gogo.commands.Action;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.util.tracker.ServiceTracker;
-import org.osgi.util.tracker.ServiceTrackerCustomizer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Tracks services that implement {@link org.apache.felix.gogo.commands.Action},
- * wraps each into an ActionCommand
- * and exports the command as a service in the name of the bundle exporting the Action
- */
-@SuppressWarnings("deprecation")
-final class ActionTracker extends ServiceTracker<Action, Action> {
-
-    private Logger logger = LoggerFactory.getLogger(this.getClass());
-
-    @SuppressWarnings("rawtypes")
-    private Map<ServiceReference, ServiceRegistration> registrations =
-            new ConcurrentHashMap<ServiceReference, ServiceRegistration>();
-
-    ActionTracker(BundleContext context, Class<Action> clazz,
-                  ServiceTrackerCustomizer<Action, Action> customizer) {
-        super(context, clazz, customizer);
-    }
-
-    @Override
-    public Action addingService(ServiceReference<Action> reference) {
-        if (!registrations.containsKey(reference)) {
-            Bundle userBundle = reference.getBundle();
-            try {
-                BundleContext context = userBundle.getBundleContext();
-                ActionCommand command = new ActionCommand(context.getService(reference));
-                registrations.put(reference, command.registerService(context));
-            } catch (Exception e) {
-                logger.warn("Error exporting action as command from service of bundle "
-                        + userBundle.getSymbolicName()
-                        + "[" + userBundle.getBundleId() + "]", e);
-            }
-        }
-        return super.addingService(reference);
-    }
-
-    @Override
-    public void removedService(ServiceReference<Action> reference, Action service) {
-        if (registrations.containsKey(reference)) {
-            try {
-                registrations.remove(reference).unregister();
-            } catch (Exception e) {
-                // Ignore .. might already be unregistered if exporting bundle stopped
-            }
-        }
-        super.removedService(reference, service);
-    }
-
-    @Override
-    public void close() {
-        for (ServiceRegistration<?> reg : registrations.values()) {
-            try {
-                reg.unregister();
-            } catch (Exception e) {
-                // Ignore .. might already be unregistered if exporting bundle stopped
-            }
-        }
-        registrations.clear();
-        super.close();
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/karaf/blob/ed9f0785/shell/command-exporter/src/main/java/org/apache/karaf/shell/exporter/Activator.java
----------------------------------------------------------------------
diff --git a/shell/command-exporter/src/main/java/org/apache/karaf/shell/exporter/Activator.java b/shell/command-exporter/src/main/java/org/apache/karaf/shell/exporter/Activator.java
deleted file mode 100644
index 2bf000c..0000000
--- a/shell/command-exporter/src/main/java/org/apache/karaf/shell/exporter/Activator.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.karaf.shell.exporter;
-
-import org.apache.felix.gogo.commands.Action;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.util.tracker.ServiceTracker;
-
-@SuppressWarnings("deprecation")
-public class Activator implements BundleActivator {
-
-    private ServiceTracker<Action, Action> tracker;
-
-    @Override
-    public void start(BundleContext context) throws Exception {
-        tracker = new ActionTracker(context, Action.class, null);
-        tracker.open();
-    }
-
-    @Override
-    public void stop(BundleContext context) throws Exception {
-        tracker.close();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/ed9f0785/shell/pom.xml
----------------------------------------------------------------------
diff --git a/shell/pom.xml b/shell/pom.xml
index 1ab6361..482021b 100644
--- a/shell/pom.xml
+++ b/shell/pom.xml
@@ -40,7 +40,6 @@
         <module>ssh</module>
         <module>help</module>
         <module>table</module>
-        <module>command-exporter</module>
     </modules>
 
 </project>


[4/6] git commit: Revert [KARAF-2763] and update demo / manuel for [KARAF-2805]

Posted by gn...@apache.org.
Revert [KARAF-2763] and update demo / manuel for [KARAF-2805] 

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

Branch: refs/heads/master
Commit: 662c07a68bf53c4a99a480f5ca69deb452413df4
Parents: 66c52d1
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Thu Mar 6 01:27:40 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Thu Mar 6 01:27:40 2014 +0100

----------------------------------------------------------------------
 demos/command/pom.xml                           |  16 +-
 .../apache/karaf/demos/command/MyCommand.java   |  17 +-
 .../apache/karaf/demos/command/MyCompleter.java |  19 +-
 .../resources/OSGI-INF/blueprint/mycommand.xml  |  43 ---
 .../main/webapp/developers-guide/extending.conf | 190 +++-------
 pom.xml                                         |  15 -
 .../console/commands/NamespaceHandler.java      | 186 +--------
 .../org/apache/karaf/shell/inject/Destroy.java  |  30 --
 .../org/apache/karaf/shell/inject/Init.java     |  30 --
 .../apache/karaf/shell/inject/Reference.java    |  30 --
 .../org/apache/karaf/shell/inject/Service.java  |  30 --
 .../blueprint/shell-namespacehandler.xml        |   6 -
 .../console/commands/karaf-shell-1.2.0.xsd      | 225 -----------
 tooling/karaf-scr-maven-plugin/NOTICE           |  71 ----
 tooling/karaf-scr-maven-plugin/pom.xml          | 243 ------------
 .../karaf/tooling/scr/ScrCommandMojo.java       | 374 -------------------
 .../karaf/tooling/scr/ScrCommandSupport.java    | 112 ------
 tooling/pom.xml                                 |   1 -
 18 files changed, 71 insertions(+), 1567 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/662c07a6/demos/command/pom.xml
----------------------------------------------------------------------
diff --git a/demos/command/pom.xml b/demos/command/pom.xml
index e066f7b..2042170 100644
--- a/demos/command/pom.xml
+++ b/demos/command/pom.xml
@@ -42,13 +42,7 @@
 
         <dependency>
             <groupId>org.apache.karaf.shell</groupId>
-            <artifactId>org.apache.karaf.shell.console</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.gogo.runtime</artifactId>
+            <artifactId>org.apache.karaf.shell.core</artifactId>
             <scope>provided</scope>
         </dependency>
 
@@ -67,13 +61,7 @@
                 <artifactId>maven-bundle-plugin</artifactId>
                 <configuration>
                     <instructions>
-                        <Import-Package>
-                            org.apache.felix.service.command,
-                            org.apache.karaf.shell.commands,
-                            org.apache.karaf.shell.console,
-                            org.apache.karaf.shell.inject,
-                            *
-                        </Import-Package>
+                        <Karaf-Commands>*</Karaf-Commands>
                     </instructions>
                 </configuration>
             </plugin>

http://git-wip-us.apache.org/repos/asf/karaf/blob/662c07a6/demos/command/src/main/java/org/apache/karaf/demos/command/MyCommand.java
----------------------------------------------------------------------
diff --git a/demos/command/src/main/java/org/apache/karaf/demos/command/MyCommand.java b/demos/command/src/main/java/org/apache/karaf/demos/command/MyCommand.java
index fb37705..6f5fc1d 100644
--- a/demos/command/src/main/java/org/apache/karaf/demos/command/MyCommand.java
+++ b/demos/command/src/main/java/org/apache/karaf/demos/command/MyCommand.java
@@ -19,22 +19,23 @@
 
 package org.apache.karaf.demos.command;
 
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Completer;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.shell.inject.Service;
+
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 
 @Command(scope = "mycommand", name = "hello", description="Says hello")
 @Service
-public class MyCommand extends OsgiCommandSupport {
+public class MyCommand implements Action {
 
     @Argument(index = 0, name = "arg", description = "The command argument", required = false, multiValued = false)
-    @Completer(MyCompleter.class)
+    @Completion(MyCompleter.class)
     String arg = null;
 
     @Override
-    protected Object doExecute() throws Exception {
+    public Object execute() throws Exception {
         System.out.println("Executing My Command Demo");
         return null;
     }

http://git-wip-us.apache.org/repos/asf/karaf/blob/662c07a6/demos/command/src/main/java/org/apache/karaf/demos/command/MyCompleter.java
----------------------------------------------------------------------
diff --git a/demos/command/src/main/java/org/apache/karaf/demos/command/MyCompleter.java b/demos/command/src/main/java/org/apache/karaf/demos/command/MyCompleter.java
index ba45232..bc9a5c9 100644
--- a/demos/command/src/main/java/org/apache/karaf/demos/command/MyCompleter.java
+++ b/demos/command/src/main/java/org/apache/karaf/demos/command/MyCompleter.java
@@ -19,12 +19,14 @@
 
 package org.apache.karaf.demos.command;
 
-import org.apache.karaf.shell.console.completer.StringsCompleter;
-import org.apache.karaf.shell.console.Completer;
-import org.apache.karaf.shell.inject.Service;
-
 import java.util.List;
 
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.CommandLine;
+import org.apache.karaf.shell.api.console.Completer;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
+
 /**
 * <p>
 * My completer.
@@ -34,17 +36,12 @@ import java.util.List;
 @Service
 public class MyCompleter implements Completer {
 
-    /**
-     * @param buffer it's the beginning string typed by the user
-     * @param cursor it's the position of the cursor
-     * @param candidates the list of completions proposed to the user
-     */
-    public int complete(String buffer, int cursor, List candidates) {
+    public int complete(Session session, CommandLine commandLine, List<String> candidates) {
 
         StringsCompleter delegate = new StringsCompleter();
         delegate.getStrings().add("one");
         delegate.getStrings().add("two");
         delegate.getStrings().add("three");
-        return delegate.complete(buffer, cursor, candidates);
+        return delegate.complete(session, commandLine, candidates);
     }
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/662c07a6/demos/command/src/main/resources/OSGI-INF/blueprint/mycommand.xml
----------------------------------------------------------------------
diff --git a/demos/command/src/main/resources/OSGI-INF/blueprint/mycommand.xml b/demos/command/src/main/resources/OSGI-INF/blueprint/mycommand.xml
deleted file mode 100644
index 66709b8..0000000
--- a/demos/command/src/main/resources/OSGI-INF/blueprint/mycommand.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
-
-    <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0"
-                    scan="org.apache.karaf.demos.command" />
-
-    <!-- Old style way of declaring commands
-         This may be needed for actions that need complicated injections
-         based on blueprint.
-
-    <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
-        <command>
-            <action class="org.apache.karaf.demos.command.MyCommand"/>
-            <completers>
-                <ref component-id="myCompleter"/>
-                <null/>
-            </completers>
-        </command>
-    </command-bundle>
-
-    <bean id="myCompleter" class="org.apache.karaf.demos.command.MyCompleter"/>
-    -->
-
-</blueprint>

http://git-wip-us.apache.org/repos/asf/karaf/blob/662c07a6/manual/src/main/webapp/developers-guide/extending.conf
----------------------------------------------------------------------
diff --git a/manual/src/main/webapp/developers-guide/extending.conf b/manual/src/main/webapp/developers-guide/extending.conf
index 6a762a0..eb04003 100644
--- a/manual/src/main/webapp/developers-guide/extending.conf
+++ b/manual/src/main/webapp/developers-guide/extending.conf
@@ -140,63 +140,37 @@ We can now create the command class {{HelloShellCommand.java}}
 {code:lang=java}
 package org.apache.karaf.shell.samples;
 
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 
 @Command(scope = "test", name = "hello", description="Says hello")
 @Service
-public class HelloShellCommand extends OsgiCommandSupport {
+public class HelloShellCommand implements Action {
 
     @Override
-    protected Object doExecute() throws Exception {
+    public Object execute() throws Exception {
         System.out.println("Executing Hello command");
         return null;
     }
 }
 {code}
 
-h3. Blueprint definition
+h3. Manifest
 
-Blueprint is an injection framework for OSGi. It allows you to declare beans in a XML file and contains specific statement for OSGi services.
-
-For the command, we use Blueprint to create the command bean and register as an OSGi service.
-
-The blueprint definition file is located in the {{OSGI-INF/blueprint}} folder of our bundle.
-
-If you don't have the {{src/main/resources}} directory yet, create it.
-
-{code}
-mkdir src/main/resources
-{code}
-
-Then, re-generate the IDE project files and reload it so that this folder is now recognized as a source folder.
-
-Inside this directory, create the {{OSGI-INF/blueprint/}} directory and put the following file inside (the name of this file has no impact at all):
-
-For simple cases as above, or even if you only need to inject an OSGi service, you can use the auto-detecting feature provided by the blueprint namespace handler:
-
-{code:lang=xml}
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
-
-    <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0"
-                    scan="org.apache.karaf.shell.samples" />
-
-</blueprint>
-{code}
-
-Alternatively, if you need more control over the wiring, you can declare the command explicitely:
+In order for Karaf to find your command, you need to add the {{Karaf-Commands=*}} manifest header.
 
+This is usually done by modifying the maven bundle plugin configuration
 {code:lang=xml}
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
-
-    <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0">
-        <command>
-            <action class="org.apache.karaf.shell.samples.HelloShellCommand"/>
-        </command>
-    </command-bundle>
-
-</blueprint>
+<plugin>
+    <groupId>org.apache.felix</groupId>
+    <artifactId>maven-bundle-plugin</artifactId>
+    <configuration>
+        <instructions>
+            <Karaf-Commands>*</Karaf-Commands>
+        </instructions>
+    </configuration>
+</plugin>
 {code}
 
 h3. Compile
@@ -243,30 +217,28 @@ We add an argument to the HelloCommand:
 {code:lang=java}
 package org.apache.karaf.shell.samples;
 
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Completer;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 
 @Command(scope = "test", name = "hello", description="Says hello")
 @Service
-public class HelloShellCommand extends OsgiCommandSupport {
+public class HelloShellCommand implements Action {
 
     @Argument(index = 0, name = "name", description = "The name that sends the greet.", required = true, multiValued = false)
-    @Completer(SimpleNameCompleter.class)
+    @Completion(SimpleNameCompleter.class)
     String name = null;
 
     @Override
-    protected Object doExecute() throws Exception {
+    public Object execute() throws Exception {
         System.out.println("Hello " + name);
         return null;
     }
 }
 {code}
 
-The Blueprint configuration file is the same as previously.
-
 h3. Completer bean
 
 A completer is a bean which implements the Completer interface:
@@ -274,9 +246,11 @@ A completer is a bean which implements the Completer interface:
 {code:lang=java}
 package org.apache.karaf.shell.samples;
 
-import org.apache.karaf.shell.console.completer.StringsCompleter;
-import org.apache.karaf.shell.console.Completer;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.CommandLine;
+import org.apache.karaf.shell.api.console.Completer;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
 
 /**
  * <p>
@@ -286,47 +260,17 @@ import org.apache.karaf.shell.inject.Service;
 @Service
 public class SimpleNameCompleter implements Completer {
 
- /**
-  * @param buffer the beginning string typed by the user
-  * @param cursor the position of the cursor
-  * @param candidates the list of completions proposed to the user
-  */
- public int complete(String buffer, int cursor, List candidates) {
-   StringsCompleter delegate = new StringsCompleter();
-   delegate.getStrings().add("Mike");
-   delegate.getStrings().add("Eric");
-   delegate.getStrings().add("Jenny");
-   return delegate.complete(buffer, cursor, candidates);
- }
+    public int complete(Session session, CommandLine commandLine, List<String> candidates) {
+        StringsCompleter delegate = new StringsCompleter();
+        delegate.getStrings().add("Mike");
+        delegate.getStrings().add("Eric");
+        delegate.getStrings().add("Jenny");
+        return delegate.complete(buffer, cursor, candidates);
+    }
 
 }
 {code}
 
-h3. Blueprint with completer
-
-If you're not using the scanning feature, you need to "inject" the completer linked to your command. The same completer could be used for several commands and a command can have several completers:
-
-{code:lang=xml}
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
-
-    <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0">
-        <command>
-            <action class="org.apache.karaf.shell.samples.HelloShellCommand"/>
-            <completers>
-                <ref component-id="simpleNameCompleter"/>
-                <null/>
-            </completers>
-        </command>
-    </command-bundle>
-
-    <bean id="simpleNameCompleter" class="org.apache.karaf.shell.samples.SimpleNameCompleter"/>
-
-</blueprint>
-{code}
-
-You can have multiple completers for a single class, each matching a command argument.
-The order of the completers must match the order of the arguments, in order to have the desirable results.
-
 h3. Completers for option values
 
 Quite often your commands will not have just arguments, but also options. You can provide completers for option values.
@@ -335,56 +279,33 @@ The snippet below shows the HelloShellCommand with an option to specify what the
 {code:lang=java}
 package org.apache.karaf.shell.samples;
 
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 
 @Command(scope = "test", name = "hello", description="Says hello")
 @Service
-public class HelloShellCommand extends OsgiCommandSupport {
+public class HelloShellCommand implements Action {
 
     @Argument(index = 0, name = "name", description = "The name that sends the greet.", required = true, multiValued = false)
-    @Completer(SimpleNameCompleter.class)
+    @Completion(SimpleNameCompleter.class)
     String name = null;
 
     @Option(name = "-g", aliases = "--greet", description = "The configuration pid", required = false, multiValued = false)
-    @Completer(GreetCompleter.class)
+    @Completion(GreetCompleter.class)
     String greet = "Hello;
 
     @Override
-    protected Object doExecute() throws Exception {
+    public Object execute() throws Exception {
         System.out.println(greet + " " + name);
         return null;
     }
 }
 {code}
 
-If you're using explicit wiring for the command, you need to specify the completer for the greet option in the blueprint file.
-All that is required is to add an optional-completer element in the blueprint configuration that will associate a completer with the -g option or its --greet alias.
-
-{code:lang=xml}
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
-
-    <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0">
-        <command>
-            <action class="org.apache.karaf.shell.samples.HelloShellCommand"/>
-            <completers>
-                <ref component-id="simpleNameCompleter"/>
-                <null/>
-            </completers>
-            <optional-completers>
-                <entry key="-g" value-ref="greetCompleter"/>
-            </optional-completers>
-        </command>
-    </command-bundle>
-
-    <bean id="simpleNameCompleter" class="org.apache.karaf.shell.samples.SimpleNameCompleter"/>
-    <bean id="greetCompleter" class="org.apache.karaf.shell.samples.GreetCompleter"/>
-
-</blueprint>
-{code}
-
 h3. Completers with state
 
 Some times we want to tune the behavior of the completer depending on the commands already executed, in the current shell
@@ -392,19 +313,10 @@ or even the rest of the arguments that have been already passed to the command.
 command which will provide auto completion for only for the properties of the pid specified by a previously issued config:edit
 command or by the option --pid.
 
-This is done by accessing the CommandSession object which holds the state of the console. To get access to the CommandSession:
-
-{code}
-CommandSession session = CommandSessionHolder.getSession();
-{code}
-
-CommandSession provides map like methods for storing key/value pairs and can be used to put/get the state.
-
-If you want to get access to the list of arguments that is already passed to the command, you can simply:
-
-{code}
-ArgumentCompleter.ArgumentList list = (ArgumentCompleter.ArgumentList) commandSession.get(ArgumentCompleter.ARGUMENTS_LIST);
-{code}
+The Session object provides map like methods for storing key/value pairs and can be used to put/get the state.
+The pre-parsed CommandLine objects allows you to check the previous arguments and options on the command line and to fine tune
+the behavior of the Completer.
+Those two objects are given to the Completer when calling the {{complete}} method.
 
 h3. Test
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/662c07a6/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 032442a..5a37852 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1935,21 +1935,6 @@
                     </configuration>
                 </plugin>
                 <plugin>
-                    <groupId>org.apache.karaf.tooling</groupId>
-                    <artifactId>karaf-scr-maven-plugin</artifactId>
-                    <version>${project.version}</version>
-                    <executions>
-                        <execution>
-                            <goals>
-                                <goal>scr</goal>
-                            </goals>
-                            <configuration>
-                                <ranking>${karaf.service.ranking}</ranking>
-                            </configuration>
-                        </execution>
-                    </executions>
-                </plugin>
-                <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-idea-plugin</artifactId>
                     <version>2.2.1</version>

http://git-wip-us.apache.org/repos/asf/karaf/blob/662c07a6/shell/console/src/main/java/org/apache/karaf/shell/console/commands/NamespaceHandler.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/console/commands/NamespaceHandler.java b/shell/console/src/main/java/org/apache/karaf/shell/console/commands/NamespaceHandler.java
index 075b986..2dd6976 100644
--- a/shell/console/src/main/java/org/apache/karaf/shell/console/commands/NamespaceHandler.java
+++ b/shell/console/src/main/java/org/apache/karaf/shell/console/commands/NamespaceHandler.java
@@ -18,11 +18,8 @@
  */
 package org.apache.karaf.shell.console.commands;
 
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
 import java.net.URL;
 import java.util.Arrays;
-import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -34,20 +31,11 @@ import org.apache.aries.blueprint.mutable.MutableCollectionMetadata;
 import org.apache.aries.blueprint.mutable.MutableIdRefMetadata;
 import org.apache.aries.blueprint.mutable.MutablePassThroughMetadata;
 import org.apache.aries.blueprint.mutable.MutableRefMetadata;
-import org.apache.aries.blueprint.mutable.MutableReferenceMetadata;
 import org.apache.aries.blueprint.mutable.MutableServiceMetadata;
 import org.apache.aries.blueprint.mutable.MutableValueMetadata;
-import org.apache.felix.gogo.commands.Action;
-import org.apache.karaf.shell.console.Completer;
 import org.apache.karaf.shell.console.SubShellAction;
 import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Destroy;
-import org.apache.karaf.shell.inject.Init;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
 import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.wiring.BundleWiring;
 import org.osgi.service.blueprint.container.ComponentDefinitionException;
 import org.osgi.service.blueprint.reflect.BeanArgument;
 import org.osgi.service.blueprint.reflect.BeanMetadata;
@@ -58,12 +46,9 @@ import org.osgi.service.blueprint.reflect.MapMetadata;
 import org.osgi.service.blueprint.reflect.Metadata;
 import org.osgi.service.blueprint.reflect.NullMetadata;
 import org.osgi.service.blueprint.reflect.RefMetadata;
-import org.osgi.service.blueprint.reflect.ReferenceMetadata;
 import org.osgi.service.blueprint.reflect.ServiceMetadata;
 import org.osgi.service.blueprint.reflect.ValueMetadata;
-import org.w3c.dom.Attr;
 import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -90,7 +75,6 @@ public class NamespaceHandler implements org.apache.aries.blueprint.NamespaceHan
 
     public static final String SHELL_NAMESPACE_1_0_0 = "http://karaf.apache.org/xmlns/shell/v1.0.0";
     public static final String SHELL_NAMESPACE_1_1_0 = "http://karaf.apache.org/xmlns/shell/v1.1.0";
-    public static final String SHELL_NAMESPACE_1_2_0 = "http://karaf.apache.org/xmlns/shell/v1.2.0";
 
     private int nameCounter = 0;
 
@@ -99,10 +83,8 @@ public class NamespaceHandler implements org.apache.aries.blueprint.NamespaceHan
             return getClass().getResource("karaf-shell-1.0.0.xsd");
         } else if(SHELL_NAMESPACE_1_1_0.equals(namespace)) {
             return getClass().getResource("karaf-shell-1.1.0.xsd");
-        } else if(SHELL_NAMESPACE_1_2_0.equals(namespace)) {
-            return getClass().getResource("karaf-shell-1.2.0.xsd");
         }
-        return getClass().getResource("karaf-shell-1.2.0.xsd");
+        return getClass().getResource("karaf-shell-1.1.0.xsd");
     }
 
 	public Set<Class> getManagedClasses() {
@@ -117,14 +99,6 @@ public class NamespaceHandler implements org.apache.aries.blueprint.NamespaceHan
 
     public Metadata parse(Element element, ParserContext context) {
         if (nodeNameEquals(element, COMMAND_BUNDLE)) {
-            NamedNodeMap attrs = element.getAttributes();
-            for (int i = 0; i < attrs.getLength(); i++) {
-                Node child = attrs.item(i);
-                if (child instanceof Attr) {
-                    Attr childAttr = (Attr) child;
-                    parseChildAttr(childAttr, context);
-                }
-            }
             NodeList children = element.getChildNodes();
             for (int i = 0; i < children.getLength(); i++) {
                 Node child  = children.item(i);
@@ -140,164 +114,6 @@ public class NamespaceHandler implements org.apache.aries.blueprint.NamespaceHan
         }
     }
 
-    private void parseChildAttr(Attr attr, ParserContext context) {
-        if (nodeNameEquals(attr, SCAN)) {
-            scan(attr, context);
-        }
-    }
-
-    private void scan(Attr attr, ParserContext context) {
-        try {
-            Bundle bundle = getBundle(context);
-            BundleWiring wiring = bundle.adapt(BundleWiring.class);
-            for (String pkg : attr.getValue().split(" ")) {
-                String name = pkg;
-                int options = BundleWiring.LISTRESOURCES_LOCAL;
-                name = name.replace('.', '/');
-                if (name.endsWith("*")) {
-                    options |= BundleWiring.LISTRESOURCES_RECURSE;
-                    name = name.substring(0, name.length() - 1);
-                }
-                if (!name.startsWith("/")) {
-                    name = "/" + name;
-                }
-                if (name.endsWith("/")) {
-                    name = name.substring(0, name.length() - 1);
-                }
-                Collection<String> classes = wiring.listResources(name, "*.class", options);
-                for (String className : classes) {
-                    className = className.replace('/', '.').replace(".class", "");
-                    inspectClass(context, bundle.loadClass(className));
-                }
-            }
-        } catch (ComponentDefinitionException e) {
-            throw e;
-        } catch (Exception e) {
-            throw new ComponentDefinitionException("Unable to scan commands", e);
-        }
-    }
-
-    private void inspectClass(ParserContext context, Class<?> clazz) throws Exception {
-        Service reg = clazz.getAnnotation(Service.class);
-        if (reg == null) {
-            return;
-        }
-        if (Action.class.isAssignableFrom(clazz)) {
-            final Command cmd = clazz.getAnnotation(Command.class);
-            if (cmd == null) {
-                throw new IllegalArgumentException("Command " + clazz.getName() + " is not annotated with @Command");
-            }
-            String scope = cmd.scope();
-            String function = cmd.name();
-            // Create action
-            MutableBeanMetadata action = context.createMetadata(MutableBeanMetadata.class);
-            action.setId(getName());
-            action.setActivation(MutableBeanMetadata.ACTIVATION_LAZY);
-            action.setScope(MutableBeanMetadata.SCOPE_PROTOTYPE);
-            action.setRuntimeClass(clazz);
-            for (Class<?> cl = clazz; cl != Object.class; cl = cl.getSuperclass()) {
-                for (Field field : cl.getDeclaredFields()) {
-                    if (field.getAnnotation(Reference.class) != null) {
-                        if (field.getType() == BundleContext.class) {
-                            action.addProperty(field.getName(), createRef(context, "blueprintBundleContext"));
-                        } else {
-                            action.addProperty(field.getName(), createRef(context, createServiceRef(context, field.getType()).getId()));
-                        }
-                    }
-                }
-                for (Method method : cl.getDeclaredMethods()) {
-                    if (method.getAnnotation(Init.class) != null) {
-                        if (action.getInitMethod() == null) {
-                            action.setInitMethod(method.getName());
-                        }
-                    }
-                    if (method.getAnnotation(Destroy.class) != null) {
-                        if (action.getDestroyMethod() == null) {
-                            action.setDestroyMethod(method.getName());
-                        }
-                    }
-                }
-            }
-            context.getComponentDefinitionRegistry().registerComponentDefinition(action);
-            // Create command
-            MutableBeanMetadata command = context.createMetadata(MutableBeanMetadata.class);
-            command.setRuntimeClass(BlueprintCommand.class);
-            command.addProperty(BLUEPRINT_CONTAINER, createRef(context, BLUEPRINT_CONTAINER));
-            command.addProperty(BLUEPRINT_CONVERTER, createRef(context, BLUEPRINT_CONVERTER));
-            command.addProperty(ACTION_ID, createIdRef(context, action.getId()));
-            // Create command service
-            MutableServiceMetadata commandService = context.createMetadata(MutableServiceMetadata.class);
-            commandService.setActivation(MutableServiceMetadata.ACTIVATION_LAZY);
-            commandService.setId(getName());
-            commandService.setAutoExport(ServiceMetadata.AUTO_EXPORT_ALL_CLASSES);
-            commandService.setServiceComponent(command);
-            commandService.addServiceProperty(createStringValue(context, "osgi.command.scope"),
-                    createStringValue(context, scope));
-            commandService.addServiceProperty(createStringValue(context, "osgi.command.function"),
-                    createStringValue(context, function));
-            context.getComponentDefinitionRegistry().registerComponentDefinition(commandService);
-
-            // create the sub-shell action
-            createSubShell(context, scope);
-        }
-        if (Completer.class.isAssignableFrom(clazz)) {
-            MutableBeanMetadata completer = context.createMetadata(MutableBeanMetadata.class);
-            completer.setId(getName());
-            completer.setActivation(MutableBeanMetadata.ACTIVATION_LAZY);
-            completer.setScope(MutableBeanMetadata.SCOPE_SINGLETON);
-            completer.setRuntimeClass(clazz);
-            // Create completer
-            for (Class<?> cl = clazz; cl != Object.class; cl = cl.getSuperclass()) {
-                for (Field field : cl.getDeclaredFields()) {
-                    if (field.getAnnotation(Reference.class) != null) {
-                        if (field.getType() == BundleContext.class) {
-                            completer.addProperty(field.getName(), createRef(context, "blueprintBundleContext"));
-                        } else {
-                            completer.addProperty(field.getName(), createRef(context, createServiceRef(context, field.getType()).getId()));
-                        }
-                    }
-                }
-                for (Method method : cl.getDeclaredMethods()) {
-                    if (method.getAnnotation(Init.class) != null) {
-                        if (completer.getInitMethod() == null) {
-                            completer.setInitMethod(method.getName());
-                        }
-                    }
-                    if (method.getAnnotation(Destroy.class) != null) {
-                        if (completer.getDestroyMethod() == null) {
-                            completer.setDestroyMethod(method.getName());
-                        }
-                    }
-                }
-            }
-            context.getComponentDefinitionRegistry().registerComponentDefinition(completer);
-            // Create completer service
-            MutableServiceMetadata completerService = context.createMetadata(MutableServiceMetadata.class);
-            completerService.setActivation(MutableServiceMetadata.ACTIVATION_LAZY);
-            completerService.setId(getName());
-            completerService.setAutoExport(ServiceMetadata.AUTO_EXPORT_ALL_CLASSES);
-            completerService.setServiceComponent(createRef(context, completer.getId()));
-            context.getComponentDefinitionRegistry().registerComponentDefinition(completerService);
-        }
-    }
-
-    private ComponentMetadata createServiceRef(ParserContext context, Class<?> cls) {
-        String id = ".serviceref." + cls.getName();
-        ComponentMetadata metadata = context.getComponentDefinitionRegistry().getComponentDefinition(id);
-        if (metadata == null) {
-            MutableReferenceMetadata m = context.createMetadata(MutableReferenceMetadata.class);
-            m.setRuntimeInterface(cls);
-            m.setInterface(cls.getName());
-            m.setActivation(ReferenceMetadata.ACTIVATION_EAGER);
-            m.setAvailability(ReferenceMetadata.AVAILABILITY_MANDATORY);
-            m.setId(id);
-            context.getComponentDefinitionRegistry().registerComponentDefinition(m);
-            return m;
-        } else {
-            return metadata;
-        }
-    }
-
     private Bundle getBundle(ParserContext context) {
         PassThroughMetadata ptm = (PassThroughMetadata) context.getComponentDefinitionRegistry().getComponentDefinition("blueprintBundle");
         return (Bundle) ptm.getObject();

http://git-wip-us.apache.org/repos/asf/karaf/blob/662c07a6/shell/console/src/main/java/org/apache/karaf/shell/inject/Destroy.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/inject/Destroy.java b/shell/console/src/main/java/org/apache/karaf/shell/inject/Destroy.java
deleted file mode 100644
index d985db3..0000000
--- a/shell/console/src/main/java/org/apache/karaf/shell/inject/Destroy.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.karaf.shell.inject;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD})
-@Deprecated
-public @interface Destroy {
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/662c07a6/shell/console/src/main/java/org/apache/karaf/shell/inject/Init.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/inject/Init.java b/shell/console/src/main/java/org/apache/karaf/shell/inject/Init.java
deleted file mode 100644
index 99744e2..0000000
--- a/shell/console/src/main/java/org/apache/karaf/shell/inject/Init.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.karaf.shell.inject;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD})
-@Deprecated
-public @interface Init {
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/662c07a6/shell/console/src/main/java/org/apache/karaf/shell/inject/Reference.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/inject/Reference.java b/shell/console/src/main/java/org/apache/karaf/shell/inject/Reference.java
deleted file mode 100644
index 61feabc..0000000
--- a/shell/console/src/main/java/org/apache/karaf/shell/inject/Reference.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.karaf.shell.inject;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.FIELD})
-@Deprecated
-public @interface Reference {
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/662c07a6/shell/console/src/main/java/org/apache/karaf/shell/inject/Service.java
----------------------------------------------------------------------
diff --git a/shell/console/src/main/java/org/apache/karaf/shell/inject/Service.java b/shell/console/src/main/java/org/apache/karaf/shell/inject/Service.java
deleted file mode 100644
index ef0d813..0000000
--- a/shell/console/src/main/java/org/apache/karaf/shell/inject/Service.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.karaf.shell.inject;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.TYPE})
-@Deprecated
-public @interface Service {
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/662c07a6/shell/console/src/main/resources/OSGI-INF/blueprint/shell-namespacehandler.xml
----------------------------------------------------------------------
diff --git a/shell/console/src/main/resources/OSGI-INF/blueprint/shell-namespacehandler.xml b/shell/console/src/main/resources/OSGI-INF/blueprint/shell-namespacehandler.xml
index b2b5566..be1dd92 100644
--- a/shell/console/src/main/resources/OSGI-INF/blueprint/shell-namespacehandler.xml
+++ b/shell/console/src/main/resources/OSGI-INF/blueprint/shell-namespacehandler.xml
@@ -33,10 +33,4 @@
         </service-properties>
     </service>
 
-    <service ref="namespaceHandler" interface="org.apache.aries.blueprint.NamespaceHandler">
-        <service-properties>
-            <entry key="osgi.service.blueprint.namespace" value="http://karaf.apache.org/xmlns/shell/v1.2.0" />
-        </service-properties>
-    </service>
-
 </blueprint>

http://git-wip-us.apache.org/repos/asf/karaf/blob/662c07a6/shell/console/src/main/resources/org/apache/karaf/shell/console/commands/karaf-shell-1.2.0.xsd
----------------------------------------------------------------------
diff --git a/shell/console/src/main/resources/org/apache/karaf/shell/console/commands/karaf-shell-1.2.0.xsd b/shell/console/src/main/resources/org/apache/karaf/shell/console/commands/karaf-shell-1.2.0.xsd
deleted file mode 100644
index afc00f4..0000000
--- a/shell/console/src/main/resources/org/apache/karaf/shell/console/commands/karaf-shell-1.2.0.xsd
+++ /dev/null
@@ -1,225 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
--->
-
-<!-- $Rev: 699828 $ $Date: 2008-09-28 16:35:27 +0200 (Sun, 28 Sep 2008) $ -->
-
-<xsd:schema xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0"
-        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-        xmlns:bp="http://www.osgi.org/xmlns/blueprint/v1.0.0"
-        targetNamespace="http://karaf.apache.org/xmlns/shell/v1.2.0"
-        elementFormDefault="qualified"
-        attributeFormDefault="unqualified">
-
-    <xsd:import namespace="http://www.osgi.org/xmlns/blueprint/v1.0.0"/>
-
-    <xsd:annotation>
-        <xsd:documentation>
-            Defines the configuration elements for Apache Karaf commands support.
-        </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:element name="command-bundle">
-        <xsd:complexType>
-            <xsd:annotation>
-                <xsd:documentation>
-                    Defines a command bundle.
-                </xsd:documentation>
-            </xsd:annotation>
-            <xsd:sequence>
-                <xsd:element ref="command" minOccurs="0" maxOccurs="unbounded"/>
-            </xsd:sequence>
-            <xsd:attribute name="scan" type="Tscan"/>
-        </xsd:complexType>
-    </xsd:element>
-
-    <xsd:simpleType name="Tscan">
-        <xsd:restriction>
-            <xsd:simpleType>
-                <xsd:list itemType="Tpackage" />
-            </xsd:simpleType>
-            <xsd:minLength value="1" />
-        </xsd:restriction>
-    </xsd:simpleType>
-
-    <xsd:simpleType name="Tpackage">
-        <xsd:restriction base="xsd:string">
-            <xsd:pattern value="\*|[a-z]+(\.[a-z]+)+(\.\*)?" />
-        </xsd:restriction>
-    </xsd:simpleType>
-
-    <xsd:element name="command">
-        <xsd:complexType>
-            <xsd:annotation>
-                <xsd:documentation>
-                    Defines a command.
-                </xsd:documentation>
-            </xsd:annotation>
-            <xsd:sequence>
-                <!--
-                NOTE: Not using an xsd:choice here, as I can't seem to figure out how to get it to properly
-                      validate the min/max of the containted elements.  W/o the xsd:choice the validation
-                      works, though have to define elements in order :-(
-                -->
-                <xsd:element ref="action" minOccurs="1" maxOccurs="1"/>
-                <xsd:element ref="documenter" minOccurs="0" maxOccurs="1"/>
-                <xsd:choice minOccurs="0" maxOccurs="1">
-                    <xsd:element ref="completer"/>
-                    <xsd:element ref="completers"/>
-                </xsd:choice>
-                <xsd:element ref="optional-completers" minOccurs="0" maxOccurs="1"/>
-                <xsd:element ref="message-source" minOccurs="0" maxOccurs="1"/>
-            </xsd:sequence>
-        </xsd:complexType>
-    </xsd:element>
-
-    <xsd:group name="commandComponentElements">
-        <xsd:annotation>
-            <xsd:documentation>
-                Defines the valid elements for command components.  This is based on beans:beanElements,
-                stripping off the bits which are not valid in the command component context.
-            </xsd:documentation>
-        </xsd:annotation>
-		<xsd:sequence>
-			<xsd:choice minOccurs="0" maxOccurs="unbounded">
-                <xsd:element name="argument" type="bp:Targument"/>
-                <xsd:element name="property" type="bp:Tproperty"/>
-				<!--
-				NOTE: This seems to cause schema validation problems... not really sure why
-				<xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
-				-->
-			</xsd:choice>
-		</xsd:sequence>
-	</xsd:group>
-
-    <xsd:attributeGroup name="commandComponentAttributes">
-        <xsd:annotation>
-            <xsd:documentation>
-                Defines the valid attributes for command components.  This is based on beans:beanAttributes,
-                stripping off the bits which are not valid in the command component context.
-            </xsd:documentation>
-        </xsd:annotation>
-		<xsd:attribute name="class" type="xsd:string"/>
-		<xsd:attribute name="depends-on" type="xsd:string"/>
-		<xsd:attribute name="init-method" type="xsd:string"/>
-		<xsd:attribute name="factory-method" type="xsd:string"/>
-		<xsd:attribute name="factory-bean" type="xsd:string"/>
-		<xsd:anyAttribute namespace="##other" processContents="lax"/>
-	</xsd:attributeGroup>
-
-    <xsd:complexType name="commandComponent" abstract="true">
-        <xsd:annotation>
-            <xsd:documentation>
-                Support for command component elements, which are all basically just beans.
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:group ref="commandComponentElements"/>
-        <xsd:attributeGroup ref="commandComponentAttributes"/>
-    </xsd:complexType>
-
-    <xsd:element name="action">
-        <xsd:complexType>
-            <xsd:annotation>
-                <xsd:documentation>
-                    Defines a command action.
-                </xsd:documentation>
-            </xsd:annotation>
-            <xsd:complexContent>
-                <xsd:extension base="commandComponent"/>
-            </xsd:complexContent>
-        </xsd:complexType>
-    </xsd:element>
-
-    <xsd:element name="documenter">
-        <xsd:complexType>
-            <xsd:annotation>
-                <xsd:documentation>
-                    Defines a command documenter.
-                </xsd:documentation>
-            </xsd:annotation>
-            <xsd:complexContent>
-                <xsd:extension base="commandComponent"/>
-            </xsd:complexContent>
-        </xsd:complexType>
-    </xsd:element>
-
-    <xsd:element name="completer">
-        <xsd:complexType>
-            <xsd:annotation>
-                <xsd:documentation>
-                    Defines a command completer.
-                </xsd:documentation>
-            </xsd:annotation>
-            <xsd:complexContent>
-                <xsd:extension base="commandComponent"/>
-            </xsd:complexContent>
-        </xsd:complexType>
-    </xsd:element>
-
-    <xsd:element name="completers">
-        <xsd:complexType>
-            <xsd:annotation>
-                <xsd:documentation>
-                    Defines a configurable command completer with a set of completers.
-                </xsd:documentation>
-            </xsd:annotation>
-            <xsd:sequence>
-                <xsd:choice minOccurs="1" maxOccurs="unbounded">
-                    <xsd:element name="bean" type="bp:Tbean"/>
-                    <xsd:element name="ref" type="bp:Tref"/>
-                    <xsd:element name="null" type="bp:Tnull"/>
-                </xsd:choice>
-            </xsd:sequence>
-        </xsd:complexType>
-    </xsd:element>
-
-        <xsd:element name="optional-completers">
-        <xsd:complexType>
-            <xsd:annotation>
-                <xsd:documentation>
-                    Defines a configurable command completer with a set of completers.
-                    These completers are used for option value completion.
-                </xsd:documentation>
-            </xsd:annotation>
-            <xsd:complexContent>
-			<xsd:extension base="bp:TtypedCollection">
-				<xsd:sequence>
-					<xsd:element name="entry" type="bp:TmapEntry" minOccurs="0"
-						maxOccurs="unbounded" />
-				</xsd:sequence>
-				<xsd:attribute name="key-type" type="bp:Ttype" />
-			</xsd:extension>
-		</xsd:complexContent>
-        </xsd:complexType>
-    </xsd:element>
-
-    <xsd:element name="message-source">
-        <xsd:complexType>
-            <xsd:annotation>
-                <xsd:documentation>
-                    Defines a command message source.
-                </xsd:documentation>
-            </xsd:annotation>
-            <xsd:complexContent>
-                <xsd:extension base="commandComponent"/>
-            </xsd:complexContent>
-        </xsd:complexType>
-    </xsd:element>
-
-</xsd:schema>

http://git-wip-us.apache.org/repos/asf/karaf/blob/662c07a6/tooling/karaf-scr-maven-plugin/NOTICE
----------------------------------------------------------------------
diff --git a/tooling/karaf-scr-maven-plugin/NOTICE b/tooling/karaf-scr-maven-plugin/NOTICE
deleted file mode 100644
index 7ec727b..0000000
--- a/tooling/karaf-scr-maven-plugin/NOTICE
+++ /dev/null
@@ -1,71 +0,0 @@
-Apache Karaf
-Copyright 2010-2014 The Apache Software Foundation
-
-
-I. Included Software
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-Licensed under the Apache License 2.0.
-
-This product uses software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2010).
-Licensed under the Apache License 2.0.
-
-This product includes software developed at
-OW2 (http://www.ow2.org/).
-Licensed under the BSD License.
-
-This product includes software developed at
-OPS4J (http://www.ops4j.org/).
-Licensed under the Apache License 2.0.
-
-This product includes software developed at
-Eclipse Foundation (http://www.eclipse.org/).
-Licensed under the EPL.
-
-This product includes software written by
-Antony Lesuisse.
-Licensed under Public Domain.
-
-
-II. Used Software
-
-This product uses software developed at
-FUSE Source (http://www.fusesource.org/).
-Licensed under the Apache License 2.0.
-
-This product uses software developed at
-AOP Alliance (http://aopalliance.sourceforge.net/).
-Licensed under the Public Domain.
-
-This product uses software developed at
-Tanuki Software (http://www.tanukisoftware.com/).
-Licensed under the Apache License 2.0.
-
-This product uses software developed at
-Jasypt (http://jasypt.sourceforge.net/).
-Licensed under the Apache License 2.0.
-
-This product uses software developed at
-JLine (http://jline.sourceforge.net).
-Licensed under the BSD License.
-
-This product uses software developed at
-SLF4J (http://www.slf4j.org/).
-Licensed under the MIT License.
-
-This product uses software developed at
-SpringSource (http://www.springsource.org/).
-Licensed under the Apache License 2.0.
-
-This product includes software from http://www.json.org.
-Copyright (c) 2002 JSON.org
-
-
-III. License Summary
-- Apache License 2.0
-- BSD License
-- EPL License
-- MIT License

http://git-wip-us.apache.org/repos/asf/karaf/blob/662c07a6/tooling/karaf-scr-maven-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/tooling/karaf-scr-maven-plugin/pom.xml b/tooling/karaf-scr-maven-plugin/pom.xml
deleted file mode 100644
index 6189e8f..0000000
--- a/tooling/karaf-scr-maven-plugin/pom.xml
+++ /dev/null
@@ -1,243 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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">
-
-    <!--
-
-        Licensed to the Apache Software Foundation (ASF) under one or more
-        contributor license agreements.  See the NOTICE file distributed with
-        this work for additional information regarding copyright ownership.
-        The ASF licenses this file to You under the Apache License, Version 2.0
-        (the "License"); you may not use this file except in compliance with
-        the License.  You may obtain a copy of the License at
-
-           http://www.apache.org/licenses/LICENSE-2.0
-
-        Unless required by applicable law or agreed to in writing, software
-        distributed under the License is distributed on an "AS IS" BASIS,
-        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-        See the License for the specific language governing permissions and
-        limitations under the License.
-    -->
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.karaf.tooling</groupId>
-        <artifactId>tooling</artifactId>
-        <version>3.1.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <artifactId>karaf-scr-maven-plugin</artifactId>
-    <packaging>maven-plugin</packaging>
-    <name>Apache Karaf :: Tooling :: Maven Karaf SCR Plugin</name>
-
-    <properties>
-        <appendedResourcesDirectory>${basedir}/../../etc/appended-resources</appendedResourcesDirectory>
-    </properties>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-plugin-api</artifactId>
-            <version>3.0.3</version>
-        </dependency>
-        <dependency>
-           <groupId>org.sonatype.aether</groupId>
-           <artifactId>aether-api</artifactId>
-           <version>1.11</version>
-         </dependency>
-         <dependency>
-           <groupId>org.sonatype.aether</groupId>
-           <artifactId>aether-util</artifactId>
-           <version>1.11</version>
-         </dependency>
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-artifact</artifactId>
-            <version>3.0.3</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-core</artifactId>
-            <version>3.0.3</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-compat</artifactId>
-            <version>3.0.3</version>
-        </dependency>
-
-
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-jdk14</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.maven.shared</groupId>
-            <artifactId>maven-filtering</artifactId>
-            <version>1.0-beta-4</version>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.plexus</groupId>
-            <artifactId>plexus-utils</artifactId>
-            <version>3.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>maven-bundle-plugin</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.apache.felix</groupId>
-                    <artifactId>org.apache.felix.bundlerepository</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.fileinstall</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.karaf.features</groupId>
-            <artifactId>org.apache.karaf.features.core</artifactId>
-            <exclusions>
-                <exclusion>
-                    <artifactId>org.apache.karaf.shell.console</artifactId>
-                    <groupId>org.apache.karaf.shell</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.ops4j.pax.url</groupId>
-            <artifactId>pax-url-wrap</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.ops4j.pax.url</groupId>
-            <artifactId>pax-url-aether</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.karaf.deployer</groupId>
-            <artifactId>org.apache.karaf.deployer.spring</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.karaf.deployer</groupId>
-            <artifactId>org.apache.karaf.deployer.blueprint</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.karaf.deployer</groupId>
-            <artifactId>org.apache.karaf.deployer.features</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.karaf.deployer</groupId>
-            <artifactId>org.apache.karaf.deployer.kar</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.karaf.kar</groupId>
-            <artifactId>org.apache.karaf.kar.core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.servicemix.bundles</groupId>
-            <artifactId>org.apache.servicemix.bundles.ant</artifactId>
-        </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.scr</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.gogo.runtime</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.xbean</groupId>
-          <artifactId>xbean-finder-shaded</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.scr.generator</artifactId>
-            <version>1.5.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.scr.ds-annotations</artifactId>
-            <version>1.2.4</version>
-        </dependency>
-        <dependency>
-            <groupId>org.sonatype.plexus</groupId>
-            <artifactId>plexus-build-api</artifactId>
-            <version>0.0.7</version>
-        </dependency>
-    </dependencies>
-
-    <profiles>
-        <profile>
-            <id>ci-build-profile</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-invoker-plugin</artifactId>
-                        <version>1.6</version>
-                        <configuration>
-                            <debug>true</debug>
-                            <projectsDirectory>src/it</projectsDirectory>
-                            <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
-                            <pomIncludes>
-                                <pomInclude>*/pom.xml</pomInclude>
-                            </pomIncludes>
-                            <postBuildHookScript>verify</postBuildHookScript>
-                            <localRepositoryPath>${project.build.directory}/system</localRepositoryPath>
-                            <!--<settingsFile>src/it/settings.xml</settingsFile>-->
-                            <mavenOpts>-Djava.io.tmpdir=${project.build.directory}</mavenOpts>
-                            <goals>
-                                <goal>install</goal>
-                            </goals>
-                        </configuration>
-                        <executions>
-                            <execution>
-                                <id>integration-test</id>
-                                <goals>
-                                    <goal>install</goal>
-                                    <goal>run</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                        <dependencies>
-                            <dependency>
-                                <groupId>xmlunit</groupId>
-                                <artifactId>xmlunit</artifactId>
-                                <version>1.3</version>
-                            </dependency>
-                        </dependencies>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-    <reporting>
-        <!--<outputDirectory>target/site</outputDirectory>-->
-        <plugins>
-            <plugin>
-                <artifactId>maven-plugin-plugin</artifactId>
-                <version>2.9</version>
-            </plugin>
-        </plugins>
-    </reporting>
-
-</project>

http://git-wip-us.apache.org/repos/asf/karaf/blob/662c07a6/tooling/karaf-scr-maven-plugin/src/main/java/org/apache/karaf/tooling/scr/ScrCommandMojo.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-scr-maven-plugin/src/main/java/org/apache/karaf/tooling/scr/ScrCommandMojo.java b/tooling/karaf-scr-maven-plugin/src/main/java/org/apache/karaf/tooling/scr/ScrCommandMojo.java
deleted file mode 100644
index 413bc6c..0000000
--- a/tooling/karaf-scr-maven-plugin/src/main/java/org/apache/karaf/tooling/scr/ScrCommandMojo.java
+++ /dev/null
@@ -1,374 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.karaf.tooling.scr;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.Writer;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.StringTokenizer;
-
-import org.apache.felix.service.command.CommandProcessor;
-import org.apache.felix.service.command.Function;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.CommandWithAction;
-import org.apache.karaf.shell.console.CompletableFunction;
-import org.apache.karaf.shell.inject.Destroy;
-import org.apache.karaf.shell.inject.Init;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
-import org.apache.maven.artifact.DependencyResolutionRequiredException;
-import org.apache.maven.model.Resource;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.project.MavenProject;
-import org.apache.xbean.finder.ClassFinder;
-
-/**
- * The <code>ScrCommandMojo</code> generates a service descriptor file based
- * on annotations found in the sources.
- *
- * @goal scr
- * @phase process-classes
- * @threadSafe
- * @description Build Service Descriptors from Java Source
- * @requiresDependencyResolution compile
- */
-public class ScrCommandMojo extends AbstractMojo {
-
-    /**
-     * The Maven project.
-     *
-     * @parameter expression="project"
-     * @required
-     * @readonly
-     */
-    private MavenProject project;
-
-    /**
-     * @parameter expression="${project.build.directory}/generated-scr-commands"
-     */
-    private File outputDirectory;
-
-    /**
-     * @parameter
-     */
-    private int ranking;
-
-    @Override
-    public void execute() throws MojoExecutionException, MojoFailureException {
-        try {
-            ClassFinder finder = new ClassFinder(getClassLoader());
-            List<String> components = new ArrayList<String>();
-            boolean hasCommand = false;
-            for (Class<?> clazz : finder.findAnnotatedClasses(Service.class)) {
-
-                Command cmd = clazz.getAnnotation(Command.class);
-                if (cmd != null) {
-//                    System.out.println("\nFound command: " + clazz.getName() + "\n\t" + cmd.scope() + ":" + cmd.name() + "\n");
-
-                    StringBuilder sb = new StringBuilder();
-                    sb.append("<?xml version='1.1'?>\n");
-                    sb.append("<scr:component xmlns:scr=\"http://www.osgi.org/xmlns/scr/v1.1.0\" name=\"")
-                            .append(clazz.getName())
-                            .append("\" activate=\"activate\" deactivate=\"deactivate\">\n");
-                    sb.append("  <implementation class=\"").append(ScrCommandSupport.class.getName()).append("\"/>\n");
-                    sb.append("  <service>\n");
-                    sb.append("    <provide interface=\"").append(Function.class.getName()).append("\"/>\n");
-                    sb.append("    <provide interface=\"").append(CompletableFunction.class.getName()).append("\"/>\n");
-                    sb.append("    <provide interface=\"").append(CommandWithAction.class.getName()).append("\"/>\n");
-                    sb.append("  </service>\n");
-                    Map<String, Class> refs = getReferences(clazz);
-                    for (String key : refs.keySet()) {
-                        sb.append("  <reference name=\"").append(key).append("\" cardinality=\"1..1\" interface=\"")
-                                .append(refs.get(key).getName()).append("\"/>\n");
-                    }
-                    sb.append("  <property name=\"hidden.component\" value=\"true\"/>\n");
-                    if (ranking != 0) {
-                        sb.append("  <property name=\"service.ranking\" value=\"").append(ranking).append("\"/>\n");
-                    }
-                    sb.append("  <property name=\"").append(CommandProcessor.COMMAND_SCOPE).append("\" value=\"").append(cmd.scope()).append("\"/>\n");
-                    sb.append("  <property name=\"").append(CommandProcessor.COMMAND_FUNCTION).append("\" value=\"").append(cmd.name()).append("\"/>\n");
-                    sb.append("</scr:component>\n");
-                    String component = "OSGI-INF/" + clazz.getName() + ".xml";
-                    components.add(component);
-                    File file = new File(outputDirectory, component);
-                    file.getParentFile().mkdirs();
-                    Writer w = new FileWriter(file);
-                    w.write(sb.toString());
-                    w.close();
-                    hasCommand = true;
-                } else {
-//                    System.out.println("\nFound service: " + clazz.getName() + "\n");
-
-                    StringBuilder sb = new StringBuilder();
-                    sb.append("<?xml version='1.1'?>\n");
-
-                    String[] lf = getLifecycleMethods(clazz);
-                    sb.append("<scr:component xmlns:scr=\"http://www.osgi.org/xmlns/scr/v1.1.0\" name=\"")
-                            .append(clazz.getName()).append("\"");
-                    if (lf[0] != null) {
-                        sb.append(" activate=\"activate\"");
-                    }
-                    if (lf[1] != null) {
-                        sb.append(" deactivate=\"deactivate\"");
-                    }
-                    sb.append(">\n");
-                    sb.append("  <implementation class=\"").append(clazz.getName()).append("\"/>\n");
-                    sb.append("  <service>\n");
-                    List<Class> allClasses = new ArrayList<Class>();
-                    addAllClasses(allClasses, clazz);
-                    for (Class cl : allClasses) {
-                        sb.append("    <provide interface=\"").append(cl.getName()).append("\"/>\n");
-                    }
-                    sb.append("  </service>\n");
-                    Map<String, Class> refs = getReferences(clazz);
-                    for (String key : refs.keySet()) {
-                        sb.append("  <reference name=\"").append(key).append("\" cardinality=\"1..1\" interface=\"")
-                                .append(refs.get(key).getName()).append("\"");
-                        String[] bind = getBindMethods(clazz, key, refs.get(key));
-                        if (bind[0] != null) {
-                            sb.append(" bind=\"").append(bind[0]).append("\"");
-                        }
-                        if (bind[1] != null) {
-                            sb.append(" unbind=\"").append(bind[1]).append("\"");
-                        }
-                        sb.append("/>\n");
-                    }
-                    sb.append("  <property name=\"hidden.component\" value=\"true\"/>\n");
-                    if (ranking != 0) {
-                        sb.append("  <property name=\"service.ranking\" value=\"").append(ranking).append("\"/>\n");
-                    }
-                    sb.append("</scr:component>\n");
-                    String component = "OSGI-INF/" + clazz.getName() + ".xml";
-                    components.add(component);
-                    File file = new File(outputDirectory, component);
-                    file.getParentFile().mkdirs();
-                    Writer w = new FileWriter(file);
-                    w.write(sb.toString());
-                    w.close();
-                }
-            }
-            if (!components.isEmpty()) {
-                if (hasCommand) {
-                    String name = ScrCommandSupport.class.getName().replace('.', '/') + ".class";
-                    File file = new File(outputDirectory, name);
-                    file.getParentFile().mkdirs();
-                    URL url = getClass().getClassLoader().getResource(name);
-                    InputStream is = url.openStream();
-                    FileOutputStream fos = new FileOutputStream(file);
-                    copy(is, fos);
-                    is.close();
-                    fos.close();
-                    name = ScrCommandSupport.class.getName();
-                    name = name.substring(0, name.lastIndexOf('.'));
-                    setPrivatePackageHeader(name);
-                }
-                setServiceComponentHeader(components);
-                updateProjectResources();
-            }
-        } catch (Exception e) {
-            throw new MojoExecutionException("Error executing SCR command scanner", e);
-        }
-    }
-
-    private String[] getLifecycleMethods(Class<?> clazz) {
-        Method activate = null;
-        Method deactivate = null;
-        for (Method method : clazz.getMethods()) {
-            if (method.getAnnotation(Init.class) != null) {
-                if (activate == null) {
-                    activate = method;
-                } else {
-                    throw new IllegalArgumentException("Multiple methods annotated with @Init found");
-                }
-            }
-            if (method.getAnnotation(Destroy.class) != null) {
-                if (deactivate == null) {
-                    deactivate = method;
-                } else {
-                    throw new IllegalArgumentException("Multiple methods annotated with @Destroy found");
-                }
-            }
-        }
-        return new String[]{
-                activate != null ? activate.getName() : null,
-                deactivate != null ? deactivate.getName() : null
-        };
-    }
-
-    private String[] getBindMethods(Class<?> clazz, String key, Class type) {
-        String cap = key.substring(0, 1).toUpperCase() + key.substring(1);
-        Method bind = null;
-        Method unbind = null;
-        try {
-            bind = clazz.getMethod("set" + cap, type);
-        } catch (NoSuchMethodException e0) {
-            try {
-                bind = clazz.getMethod("bind" + cap, type);
-            } catch (NoSuchMethodException e1) {
-            }
-        }
-        if (bind != null) {
-            try {
-                unbind = clazz.getMethod("un" + bind.getName(), type);
-            } catch (NoSuchMethodException e0) {
-            }
-        }
-        return new String[]{
-                bind != null ? bind.getName() : null,
-                unbind != null ? unbind.getName() : null
-        };
-    }
-
-    private void addAllClasses(List<Class> allClasses, Class<?> clazz) {
-        if (clazz != null && clazz != Object.class) {
-            if (allClasses.add(clazz)) {
-                addAllClasses(allClasses, clazz.getSuperclass());
-                for (Class cl : clazz.getInterfaces()) {
-                    addAllClasses(allClasses, cl);
-                }
-            }
-        }
-    }
-
-    private Map<String, Class> getReferences(Class<?> clazz) {
-        Map<String, Class> refs = new HashMap<String, Class>();
-        while (clazz != null) {
-            for (Field field : clazz.getDeclaredFields()) {
-                if (field.getAnnotation(Reference.class) != null) {
-                    refs.put(field.getName(), field.getType());
-                }
-            }
-            clazz = clazz.getSuperclass();
-        }
-        return refs;
-    }
-
-    private ClassLoader getClassLoader() throws MojoFailureException, DependencyResolutionRequiredException, MalformedURLException {
-        List<String> roots = Arrays.asList(project.getBuild().getOutputDirectory());
-        List<String> paths = project.getCompileClasspathElements();
-        List<URL> parentUrls = new ArrayList<URL>();
-        List<URL> childUrls = new ArrayList<URL>();
-
-//        System.out.println("Roots: " + roots);
-//        System.out.println("Paths: " + paths);
-        for (String path : paths) {
-            URL url = new File(path).toURL();
-            if (roots.contains(path)) {
-                childUrls.add(url);
-            } else {
-                parentUrls.add(url);
-            }
-        }
-        ClassLoader classLoader = new URLClassLoader(childUrls.toArray(new URL[]{}),
-                new URLClassLoader(parentUrls.toArray(new URL[]{}), getClass().getClassLoader()));
-        return classLoader;
-    }
-
-    private void setPrivatePackageHeader(String pkg) {
-        String header = project.getProperties().getProperty("Private-Package");
-        if (header != null && header.length() > 0) {
-            header += "," + pkg;
-        } else {
-            header = pkg;
-        }
-        project.getProperties().setProperty("Private-Package", header);
-//        System.out.println("\nPrivate-Package: " + header + "\n");
-    }
-
-    /**
-     * Set the service component header based on the scr files.
-     */
-    private void setServiceComponentHeader(final List<String> files) {
-        if (files != null && files.size() > 0) {
-            final String svcHeader = project.getProperties().getProperty("Service-Component");
-            final Set<String> xmlFiles = new HashSet<String>();
-            if (svcHeader != null) {
-                final StringTokenizer st = new StringTokenizer(svcHeader, ",");
-                while (st.hasMoreTokens()) {
-                    final String token = st.nextToken();
-                    xmlFiles.add(token.trim());
-                }
-            }
-
-            for (final String path : files) {
-                xmlFiles.add(path);
-            }
-            final StringBuilder sb = new StringBuilder();
-            boolean first = true;
-            for (final String entry : xmlFiles) {
-                if (!first) {
-                    sb.append(", ");
-                } else {
-                    first = false;
-                }
-                sb.append(entry);
-            }
-            project.getProperties().setProperty("Service-Component", sb.toString());
-//            System.out.println("\nService-Component: " + sb.toString() + "\n");
-        }
-    }
-
-    /**
-     * Update the Maven project resources.
-     */
-    private void updateProjectResources() {
-        // now add the descriptor directory to the maven resources
-        final String ourRsrcPath = this.outputDirectory.getAbsolutePath();
-        boolean found = false;
-        @SuppressWarnings("unchecked")
-        final Iterator<Resource> rsrcIterator = this.project.getResources().iterator();
-        while (!found && rsrcIterator.hasNext()) {
-            final Resource rsrc = rsrcIterator.next();
-            found = rsrc.getDirectory().equals(ourRsrcPath);
-        }
-        if (!found) {
-            final Resource resource = new Resource();
-            resource.setDirectory(this.outputDirectory.getAbsolutePath());
-            this.project.addResource(resource);
-        }
-    }
-
-    static void copy(InputStream is, OutputStream os) throws IOException {
-        byte[] buffer = new byte[8192];
-        int l;
-        while ((l = is.read(buffer)) > 0) {
-            os.write(buffer, 0, l);
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/662c07a6/tooling/karaf-scr-maven-plugin/src/main/java/org/apache/karaf/tooling/scr/ScrCommandSupport.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-scr-maven-plugin/src/main/java/org/apache/karaf/tooling/scr/ScrCommandSupport.java b/tooling/karaf-scr-maven-plugin/src/main/java/org/apache/karaf/tooling/scr/ScrCommandSupport.java
deleted file mode 100644
index 2a16ebb..0000000
--- a/tooling/karaf-scr-maven-plugin/src/main/java/org/apache/karaf/tooling/scr/ScrCommandSupport.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.karaf.tooling.scr;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.felix.gogo.commands.Action;
-import org.apache.karaf.shell.commands.basic.AbstractCommand;
-import org.apache.karaf.shell.console.BundleContextAware;
-import org.apache.karaf.shell.console.CompletableFunction;
-import org.apache.karaf.shell.console.Completer;
-import org.apache.karaf.shell.inject.Init;
-import org.apache.karaf.shell.inject.Reference;
-import org.osgi.framework.BundleContext;
-import org.osgi.service.component.ComponentContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ScrCommandSupport extends AbstractCommand implements CompletableFunction {
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(ScrCommandSupport.class);
-
-    private ComponentContext componentContext;
-
-    public ScrCommandSupport() {
-    }
-
-    public void activate(ComponentContext componentContext) {
-        LOGGER.info("Activating SCR command for " + componentContext.getProperties().get("component.name"));
-        this.componentContext = componentContext;
-    }
-
-    public void deactivate(ComponentContext componentContext) {
-    }
-
-    public Class<? extends Action> getActionClass() {
-        try {
-            String className = (String) componentContext.getProperties().get("component.name");
-            return (Class<? extends Action>) componentContext.getBundleContext().getBundle().loadClass(className);
-        } catch (ClassNotFoundException e) {
-            throw new IllegalStateException(e);
-        }
-    }
-
-    @Override
-    public Action createNewAction() {
-        Class actionClass = getActionClass();
-        try {
-            Action action = (Action) actionClass.newInstance();
-            // Inject services
-            for (Class<?> cl = actionClass; cl != Object.class; cl = cl.getSuperclass()) {
-                for (Field field : cl.getDeclaredFields()) {
-                    if (field.getAnnotation(Reference.class) != null) {
-                        Object value;
-                        if (field.getType() == BundleContext.class) {
-                            value = componentContext.getBundleContext();
-                        } else {
-                            value = componentContext.locateService(field.getName());
-                        }
-                        if (value == null) {
-                            throw new RuntimeException("No OSGi service matching " + field.getType().getName());
-                        }
-                        field.setAccessible(true);
-                        field.set(action, value);
-                    }
-                }
-            }
-            if (action instanceof BundleContextAware) {
-                ((BundleContextAware) action).setBundleContext(componentContext.getBundleContext());
-            }
-            for (Method method : actionClass.getDeclaredMethods()) {
-                Init ann = method.getAnnotation(Init.class);
-                if (ann != null && method.getParameterTypes().length == 0 && method.getReturnType() == void.class) {
-                    method.setAccessible(true);
-                    method.invoke(action);
-                }
-            }
-            return action;
-        } catch (Exception e) {
-            throw new RuntimeException("Unable to creation command action " + actionClass.getName(), e);
-        }
-    }
-
-    @Override
-    public List<Completer> getCompleters() {
-        return null;
-    }
-
-    @Override
-    public Map<String, Completer> getOptionalCompleters() {
-        return null;
-    }
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/662c07a6/tooling/pom.xml
----------------------------------------------------------------------
diff --git a/tooling/pom.xml b/tooling/pom.xml
index 619463e..8535a9e 100644
--- a/tooling/pom.xml
+++ b/tooling/pom.xml
@@ -34,7 +34,6 @@
     <name>Apache Karaf :: Tooling</name>
 
     <modules>
-        <module>karaf-scr-maven-plugin</module>
         <module>karaf-maven-plugin</module>
     </modules>
 


[2/6] git commit: [KARAF-2773] Refreshing the console bundle closes karaf Regression with the new console. Also, make sure that we usually end up on a new line after stopping the console so that in case of a restart, the banner is correctly displayed.

Posted by gn...@apache.org.
[KARAF-2773] Refreshing the console bundle closes karaf
Regression with the new console.
Also, make sure that we usually end up on a new line after stopping the console so that in case of a restart, the banner is correctly displayed.

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

Branch: refs/heads/master
Commit: 7ccf13cc63e8949354db1ff50f3f404aa2ba9e4d
Parents: bc7bf92
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Thu Mar 6 00:55:49 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Thu Mar 6 00:55:49 2014 +0100

----------------------------------------------------------------------
 .../org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java  | 4 +++-
 .../java/org/apache/karaf/shell/impl/console/osgi/Activator.java | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/7ccf13cc/shell/core/src/main/java/org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java
index 7988035..0bf75f0 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java
@@ -213,6 +213,7 @@ public class ConsoleSessionImpl implements Session {
         if (!running) {
             return;
         }
+        out.println();
         if (reader.getHistory() instanceof PersistentHistory) {
             try {
                 ((PersistentHistory) reader.getHistory()).flush();
@@ -558,7 +559,8 @@ public class ConsoleSessionImpl implements Session {
                         if (c == -1) {
                             return;
                         } else if (c == 4 && !ShellUtil.getBoolean(ConsoleSessionImpl.this, Session.IGNORE_INTERRUPTS)) {
-                            err.println("^D");
+                            err.print("^D");
+                            err.flush();
                             return;
                         } else if (c == 3 && !ShellUtil.getBoolean(ConsoleSessionImpl.this, Session.IGNORE_INTERRUPTS)) {
                             err.println("^C");

http://git-wip-us.apache.org/repos/asf/karaf/blob/7ccf13cc/shell/core/src/main/java/org/apache/karaf/shell/impl/console/osgi/Activator.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/osgi/Activator.java b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/osgi/Activator.java
index 921dca3..1dba465 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/osgi/Activator.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/osgi/Activator.java
@@ -69,8 +69,8 @@ public class Activator implements BundleActivator {
     @Override
     public void stop(BundleContext context) throws Exception {
         sessionFactoryRegistration.unregister();
-        sessionFactory.stop();
         localConsoleManager.stop();
+        sessionFactory.stop();
         actionExtender.stop(context);
         threadIO.stop();
         terminalFactory.destroy();