You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2014/02/14 13:44:11 UTC
[01/15] git commit: [KARAF-2756] Hide Completer services
Updated Branches:
refs/heads/master d79376eed -> 22bae9241
[KARAF-2756] Hide Completer services
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/3cef88c5
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/3cef88c5
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/3cef88c5
Branch: refs/heads/master
Commit: 3cef88c538c6530bb4d5d5c33b1ade6e2b02ed36
Parents: ef7ba25
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Fri Feb 14 11:41:23 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Fri Feb 14 13:43:57 2014 +0100
----------------------------------------------------------------------
.../org/apache/karaf/bundle/command/ListBundleServices.java | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/3cef88c5/bundle/command/src/main/java/org/apache/karaf/bundle/command/ListBundleServices.java
----------------------------------------------------------------------
diff --git a/bundle/command/src/main/java/org/apache/karaf/bundle/command/ListBundleServices.java b/bundle/command/src/main/java/org/apache/karaf/bundle/command/ListBundleServices.java
index 682e2bd..f9c234f 100644
--- a/bundle/command/src/main/java/org/apache/karaf/bundle/command/ListBundleServices.java
+++ b/bundle/command/src/main/java/org/apache/karaf/bundle/command/ListBundleServices.java
@@ -21,6 +21,7 @@ import java.util.List;
import org.apache.felix.service.command.Function;
import org.apache.karaf.shell.commands.Command;
import org.apache.karaf.shell.commands.Option;
+import org.apache.karaf.shell.console.Completer;
import org.apache.karaf.shell.util.ShellUtil;
import org.osgi.framework.Bundle;
import org.osgi.framework.Constants;
@@ -61,7 +62,7 @@ public class ListBundleServices extends BundlesCommand {
for (ServiceReference<?> serviceRef : refs) {
String[] objectClass = (String[]) serviceRef.getProperty(Constants.OBJECTCLASS);
- boolean print = showAll || !isCommand(objectClass);
+ boolean print = showAll || !isCommandOrCompleter(objectClass);
// Print header if we have not already done so.
if (!headerPrinted) {
@@ -89,9 +90,10 @@ public class ListBundleServices extends BundlesCommand {
}
}
- private boolean isCommand(String[] objectClasses) {
+ private boolean isCommandOrCompleter(String[] objectClasses) {
for (String objectClass : objectClasses) {
- if (objectClass.equals(Function.class.getName())) {
+ if (objectClass.equals(Function.class.getName())
+ || objectClass.equals(Completer.class.getName())) {
return true;
}
}
[07/15] git commit: [KARAF-2756] Use @Completer for kar commands
Posted by gn...@apache.org.
[KARAF-2756] Use @Completer for kar commands
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/edfae484
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/edfae484
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/edfae484
Branch: refs/heads/master
Commit: edfae484f05dafa4d76d0731a14daebed7b68282
Parents: 2a12fbb
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Wed Feb 12 23:00:54 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Fri Feb 14 13:43:57 2014 +0100
----------------------------------------------------------------------
.../OSGI-INF/blueprint/features-command.xml | 6 +-----
kar/command/pom.xml | 4 ++++
.../karaf/kar/command/CreateKarCommand.java | 3 +++
.../karaf/kar/command/UninstallKarCommand.java | 3 +++
.../OSGI-INF/blueprint/kar-command.xml | 21 +++++++-------------
5 files changed, 18 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/edfae484/features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml
----------------------------------------------------------------------
diff --git a/features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml b/features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml
index 9b4afb3..b7789e5 100644
--- a/features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml
+++ b/features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml
@@ -98,10 +98,6 @@
<bean id="installedRepoNameCompleter" class="org.apache.karaf.features.command.completers.InstalledRepoNameCompleter">
<property name="featuresService" ref="featuresService"/>
</bean>
- <service ref="installedRepoNameCompleter" auto-export="all-classes">
- <service-properties>
- <entry key="name" value="installedRepoNameCompleter"/>
- </service-properties>
- </service>
+ <service ref="installedRepoNameCompleter" auto-export="all-classes"/>
</blueprint>
http://git-wip-us.apache.org/repos/asf/karaf/blob/edfae484/kar/command/pom.xml
----------------------------------------------------------------------
diff --git a/kar/command/pom.xml b/kar/command/pom.xml
index d6762ef..c4cdab5 100644
--- a/kar/command/pom.xml
+++ b/kar/command/pom.xml
@@ -57,6 +57,10 @@
<artifactId>org.apache.karaf.shell.table</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.karaf.features</groupId>
+ <artifactId>org.apache.karaf.features.command</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/karaf/blob/edfae484/kar/command/src/main/java/org/apache/karaf/kar/command/CreateKarCommand.java
----------------------------------------------------------------------
diff --git a/kar/command/src/main/java/org/apache/karaf/kar/command/CreateKarCommand.java b/kar/command/src/main/java/org/apache/karaf/kar/command/CreateKarCommand.java
index 58562f4..96c99c7 100644
--- a/kar/command/src/main/java/org/apache/karaf/kar/command/CreateKarCommand.java
+++ b/kar/command/src/main/java/org/apache/karaf/kar/command/CreateKarCommand.java
@@ -18,13 +18,16 @@ package org.apache.karaf.kar.command;
import java.util.List;
+import org.apache.karaf.features.command.completers.InstalledRepoNameCompleter;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Completer;
@Command(scope = "kar", name = "create", description = "Create a kar file for a list of feature repos")
public class CreateKarCommand extends KarCommandSupport {
@Argument(index = 0, name = "repoName", description = "Repository name. The kar will contain all features of the named repository by default", required = true, multiValued = false)
+ @Completer(InstalledRepoNameCompleter.class)
private String repoName;
@Argument(index = 1, name = "features", description = "Names of the features to include. If set then only these features will be added", required = false, multiValued = true)
http://git-wip-us.apache.org/repos/asf/karaf/blob/edfae484/kar/command/src/main/java/org/apache/karaf/kar/command/UninstallKarCommand.java
----------------------------------------------------------------------
diff --git a/kar/command/src/main/java/org/apache/karaf/kar/command/UninstallKarCommand.java b/kar/command/src/main/java/org/apache/karaf/kar/command/UninstallKarCommand.java
index e3f4dca..a02efb5 100644
--- a/kar/command/src/main/java/org/apache/karaf/kar/command/UninstallKarCommand.java
+++ b/kar/command/src/main/java/org/apache/karaf/kar/command/UninstallKarCommand.java
@@ -16,13 +16,16 @@
*/
package org.apache.karaf.kar.command;
+import org.apache.karaf.kar.command.completers.KarCompleter;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Completer;
@Command(scope = "kar", name = "uninstall", description = "Uninstall a KAR file.")
public class UninstallKarCommand extends KarCommandSupport {
@Argument(index = 0, name = "name", description = "The name of the KAR file to uninstall.", required = true, multiValued = false)
+ @Completer(KarCompleter.class)
private String name;
public Object doExecute() throws Exception {
http://git-wip-us.apache.org/repos/asf/karaf/blob/edfae484/kar/command/src/main/resources/OSGI-INF/blueprint/kar-command.xml
----------------------------------------------------------------------
diff --git a/kar/command/src/main/resources/OSGI-INF/blueprint/kar-command.xml b/kar/command/src/main/resources/OSGI-INF/blueprint/kar-command.xml
index 2997601..17acba1 100644
--- a/kar/command/src/main/resources/OSGI-INF/blueprint/kar-command.xml
+++ b/kar/command/src/main/resources/OSGI-INF/blueprint/kar-command.xml
@@ -17,14 +17,6 @@
-->
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy">
- <reference id="karService" interface="org.apache.karaf.kar.KarService"/>
-
- <bean id="karCompleter" class="org.apache.karaf.kar.command.completers.KarCompleter">
- <property name="karService" ref="karService"/>
- </bean>
-
- <reference id="installedRepoNameCompleter" interface="org.apache.karaf.shell.console.Completer" filter="(name=installedRepoNameCompleter)"/>
-
<command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
<command>
<action class="org.apache.karaf.kar.command.ListKarCommand">
@@ -40,18 +32,19 @@
<action class="org.apache.karaf.kar.command.UninstallKarCommand">
<property name="karService" ref="karService"/>
</action>
- <completers>
- <ref component-id="karCompleter"/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.kar.command.CreateKarCommand">
<property name="karService" ref="karService"/>
</action>
- <completers>
- <ref component-id="installedRepoNameCompleter"/>
- </completers>
</command>
</command-bundle>
+ <reference id="karService" interface="org.apache.karaf.kar.KarService"/>
+
+ <bean id="karCompleter" class="org.apache.karaf.kar.command.completers.KarCompleter">
+ <property name="karService" ref="karService"/>
+ </bean>
+ <service ref="karCompleter" auto-export="all-classes"/>
+
</blueprint>
\ No newline at end of file
[02/15] git commit: [KARAF-2756] Fix @Completer to correctly handle
multi-valued arguments
Posted by gn...@apache.org.
[KARAF-2756] Fix @Completer to correctly handle multi-valued arguments
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/ef7ba257
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/ef7ba257
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/ef7ba257
Branch: refs/heads/master
Commit: ef7ba257f8517fafdd84fd61486df76bf1dee6d0
Parents: 83042cf
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Fri Feb 14 11:41:07 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Fri Feb 14 13:43:57 2014 +0100
----------------------------------------------------------------------
.../shell/console/completer/ArgumentCompleter.java | 16 ++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/ef7ba257/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 ea6a5d4..26090b0 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
@@ -67,7 +67,6 @@ public class ArgumentCompleter implements Completer {
final Map<Option, Field> fields = new HashMap<Option, Field>();
final Map<String, Option> options = new HashMap<String, Option>();
final Map<Integer, Field> arguments = new HashMap<Integer, Field>();
- final Map<Field, org.apache.karaf.shell.commands.Completer> completerAnnotations = new HashMap<Field, org.apache.karaf.shell.commands.Completer>();
boolean strict = true;
@SuppressWarnings({ "unchecked", "rawtypes" })
@@ -98,12 +97,6 @@ public class ArgumentCompleter implements Completer {
arguments.put(key, field);
}
}
- if (option != null || argument != null) {
- org.apache.karaf.shell.commands.Completer completer = field.getAnnotation(org.apache.karaf.shell.commands.Completer.class);
- if (completer != null) {
- completerAnnotations.put(field, completer);
- }
- }
}
}
options.put(HelpOption.HELP.name(), HelpOption.HELP);
@@ -115,11 +108,14 @@ public class ArgumentCompleter implements Completer {
Map<String, Completer> focl = ((CompletableFunction) function).getOptionalCompleters();
List<Completer> fcl = ((CompletableFunction) function).getCompleters();
if (focl == null && fcl == null) {
+ boolean multi = false;
for (int key = 0; key < arguments.size(); key++) {
Completer completer = null;
Field field = arguments.get(key);
if (field != null) {
- org.apache.karaf.shell.commands.Completer ann = completerAnnotations.get(field);
+ Argument argument = field.getAnnotation(Argument.class);
+ multi = (argument != null && argument.multiValued());
+ org.apache.karaf.shell.commands.Completer ann = field.getAnnotation(org.apache.karaf.shell.commands.Completer.class);
if (ann != null) {
Class clazz = ann.value();
String[] values = ann.values();
@@ -138,7 +134,7 @@ public class ArgumentCompleter implements Completer {
}
argsCompleters.add(completer);
}
- if (argsCompleters.isEmpty()) {
+ if (argsCompleters.isEmpty() || !multi) {
argsCompleters.add(NullCompleter.INSTANCE);
}
optionalCompleters = new HashMap<String, Completer>();
@@ -146,7 +142,7 @@ public class ArgumentCompleter implements Completer {
Completer completer = null;
Field field = fields.get(option);
if (field != null) {
- org.apache.karaf.shell.commands.Completer ann = completerAnnotations.get(field);
+ org.apache.karaf.shell.commands.Completer ann = field.getAnnotation(org.apache.karaf.shell.commands.Completer.class);
if (ann != null) {
Class clazz = ann.value();
String[] values = ann.values();
[10/15] git commit: [KARAF-2756] Allow simple StringsCompleter
definitions using @Completer
Posted by gn...@apache.org.
[KARAF-2756] Allow simple StringsCompleter definitions using @Completer
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/334121ea
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/334121ea
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/334121ea
Branch: refs/heads/master
Commit: 334121ead51a45cd61c8bbd932c24b18825d892f
Parents: bdb8f07
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Thu Feb 13 15:06:38 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Fri Feb 14 13:43:57 2014 +0100
----------------------------------------------------------------------
.../apache/karaf/shell/commands/Completer.java | 4 ++++
.../console/completer/ArgumentCompleter.java | 18 ++++++++++++++----
2 files changed, 18 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/334121ea/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 6724dc6..ece3e1d 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
@@ -27,4 +27,8 @@ public @interface Completer {
Class<? extends org.apache.karaf.shell.console.Completer> value();
+ String[] values() default { };
+
+ boolean caseSensitive() default false;
+
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/334121ea/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 1424bd6..ea6a5d4 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
@@ -122,9 +122,14 @@ public class ArgumentCompleter implements Completer {
org.apache.karaf.shell.commands.Completer ann = completerAnnotations.get(field);
if (ann != null) {
Class clazz = ann.value();
+ String[] values = ann.values();
if (clazz != null) {
- BundleContext context = FrameworkUtil.getBundle(function.getClass()).getBundleContext();
- completer = new ProxyServiceCompleter(context, clazz);
+ if (values.length > 0 && clazz == StringsCompleter.class) {
+ completer = new StringsCompleter(values, ann.caseSensitive());
+ } else {
+ BundleContext context = FrameworkUtil.getBundle(function.getClass()).getBundleContext();
+ completer = new ProxyServiceCompleter(context, clazz);
+ }
}
}
}
@@ -144,9 +149,14 @@ public class ArgumentCompleter implements Completer {
org.apache.karaf.shell.commands.Completer ann = completerAnnotations.get(field);
if (ann != null) {
Class clazz = ann.value();
+ String[] values = ann.values();
if (clazz != null) {
- BundleContext context = FrameworkUtil.getBundle(function.getClass()).getBundleContext();
- completer = new ProxyServiceCompleter(context, clazz);
+ if (values.length > 0 && clazz == StringsCompleter.class) {
+ completer = new StringsCompleter(values, ann.caseSensitive());
+ } else {
+ BundleContext context = FrameworkUtil.getBundle(function.getClass()).getBundleContext();
+ completer = new ProxyServiceCompleter(context, clazz);
+ }
}
}
}
[12/15] git commit: [KARAF-2756] Use @Completer for jndi commands
Posted by gn...@apache.org.
[KARAF-2756] Use @Completer for jndi commands
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/7d80946e
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/7d80946e
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/7d80946e
Branch: refs/heads/master
Commit: 7d80946ed022b28c88db7d3d7edffcc49140d369
Parents: 680ad58
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Fri Feb 14 13:19:45 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Fri Feb 14 13:43:58 2014 +0100
----------------------------------------------------------------------
.../apache/karaf/jndi/command/AliasCommand.java | 5 +++
.../apache/karaf/jndi/command/BindCommand.java | 5 +++
.../karaf/jndi/command/ContextsCommand.java | 3 ++
.../karaf/jndi/command/CreateCommand.java | 3 ++
.../karaf/jndi/command/DeleteCommand.java | 3 ++
.../apache/karaf/jndi/command/NamesCommand.java | 3 ++
.../karaf/jndi/command/UnbindCommand.java | 3 ++
.../OSGI-INF/blueprint/jndi-command.xml | 34 +++-----------------
8 files changed, 30 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/7d80946e/jndi/command/src/main/java/org/apache/karaf/jndi/command/AliasCommand.java
----------------------------------------------------------------------
diff --git a/jndi/command/src/main/java/org/apache/karaf/jndi/command/AliasCommand.java b/jndi/command/src/main/java/org/apache/karaf/jndi/command/AliasCommand.java
index f5243a5..86a126e 100644
--- a/jndi/command/src/main/java/org/apache/karaf/jndi/command/AliasCommand.java
+++ b/jndi/command/src/main/java/org/apache/karaf/jndi/command/AliasCommand.java
@@ -16,16 +16,21 @@
*/
package org.apache.karaf.jndi.command;
+import org.apache.karaf.jndi.command.completers.ContextsCompleter;
+import org.apache.karaf.jndi.command.completers.NamesCompleter;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Completer;
@Command(scope = "jndi", name = "alias", description = "Create a JNDI alias on a given name.")
public class AliasCommand extends JndiCommandSupport {
@Argument(index = 0, name = "name", description = "The JNDI name", required = true, multiValued = false)
+ @Completer(NamesCompleter.class)
String name;
@Argument(index = 1, name = "alias", description = "The JNDI alias", required = true, multiValued = false)
+ @Completer(ContextsCompleter.class)
String alias;
public Object doExecute() throws Exception {
http://git-wip-us.apache.org/repos/asf/karaf/blob/7d80946e/jndi/command/src/main/java/org/apache/karaf/jndi/command/BindCommand.java
----------------------------------------------------------------------
diff --git a/jndi/command/src/main/java/org/apache/karaf/jndi/command/BindCommand.java b/jndi/command/src/main/java/org/apache/karaf/jndi/command/BindCommand.java
index 87b0213..a0560d3 100644
--- a/jndi/command/src/main/java/org/apache/karaf/jndi/command/BindCommand.java
+++ b/jndi/command/src/main/java/org/apache/karaf/jndi/command/BindCommand.java
@@ -16,16 +16,21 @@
*/
package org.apache.karaf.jndi.command;
+import org.apache.karaf.jndi.command.completers.ContextsCompleter;
+import org.apache.karaf.jndi.command.completers.ServicesIdCompleter;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Completer;
@Command(scope = "jndi", name = "bind", description = "Bind an OSGi service in the JNDI context")
public class BindCommand extends JndiCommandSupport {
@Argument(index = 0, name = "service", description = "The ID of the OSGi service to bind", required = true, multiValued = false)
+ @Completer(ServicesIdCompleter.class)
Long serviceId;
@Argument(index = 1, name = "name", description = "The JNDI name to bind the OSGi service", required = true, multiValued = false)
+ @Completer(ContextsCompleter.class)
String name;
public Object doExecute() throws Exception {
http://git-wip-us.apache.org/repos/asf/karaf/blob/7d80946e/jndi/command/src/main/java/org/apache/karaf/jndi/command/ContextsCommand.java
----------------------------------------------------------------------
diff --git a/jndi/command/src/main/java/org/apache/karaf/jndi/command/ContextsCommand.java b/jndi/command/src/main/java/org/apache/karaf/jndi/command/ContextsCommand.java
index b766c25..b50f3c3 100644
--- a/jndi/command/src/main/java/org/apache/karaf/jndi/command/ContextsCommand.java
+++ b/jndi/command/src/main/java/org/apache/karaf/jndi/command/ContextsCommand.java
@@ -16,8 +16,10 @@
*/
package org.apache.karaf.jndi.command;
+import org.apache.karaf.jndi.command.completers.ContextsCompleter;
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.table.ShellTable;
import java.util.List;
@@ -26,6 +28,7 @@ import java.util.List;
public class ContextsCommand extends JndiCommandSupport {
@Argument(index = 0, name = "context", description = "The base JNDI context", required = false, multiValued = false)
+ @Completer(ContextsCompleter.class)
String context;
public Object doExecute() throws Exception {
http://git-wip-us.apache.org/repos/asf/karaf/blob/7d80946e/jndi/command/src/main/java/org/apache/karaf/jndi/command/CreateCommand.java
----------------------------------------------------------------------
diff --git a/jndi/command/src/main/java/org/apache/karaf/jndi/command/CreateCommand.java b/jndi/command/src/main/java/org/apache/karaf/jndi/command/CreateCommand.java
index 1338cb6..dfaa108 100644
--- a/jndi/command/src/main/java/org/apache/karaf/jndi/command/CreateCommand.java
+++ b/jndi/command/src/main/java/org/apache/karaf/jndi/command/CreateCommand.java
@@ -16,13 +16,16 @@
*/
package org.apache.karaf.jndi.command;
+import org.apache.karaf.jndi.command.completers.ContextsCompleter;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Completer;
@Command(scope = "jndi", name = "create", description = "Create a new JNDI sub-context.")
public class CreateCommand extends JndiCommandSupport {
@Argument(index = 0, name = "context", description = "The JNDI sub-context name", required = true, multiValued = false)
+ @Completer(ContextsCompleter.class)
String context;
public Object doExecute() throws Exception {
http://git-wip-us.apache.org/repos/asf/karaf/blob/7d80946e/jndi/command/src/main/java/org/apache/karaf/jndi/command/DeleteCommand.java
----------------------------------------------------------------------
diff --git a/jndi/command/src/main/java/org/apache/karaf/jndi/command/DeleteCommand.java b/jndi/command/src/main/java/org/apache/karaf/jndi/command/DeleteCommand.java
index 4ab41d6..0370859 100644
--- a/jndi/command/src/main/java/org/apache/karaf/jndi/command/DeleteCommand.java
+++ b/jndi/command/src/main/java/org/apache/karaf/jndi/command/DeleteCommand.java
@@ -16,13 +16,16 @@
*/
package org.apache.karaf.jndi.command;
+import org.apache.karaf.jndi.command.completers.ContextsCompleter;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Completer;
@Command(scope = "jndi", name = "delete", description = "Delete a JNDI sub-context.")
public class DeleteCommand extends JndiCommandSupport {
@Argument(index = 0, name = "context", description = "The JNDI sub-context name", required = true, multiValued = false)
+ @Completer(ContextsCompleter.class)
String context;
public Object doExecute() throws Exception {
http://git-wip-us.apache.org/repos/asf/karaf/blob/7d80946e/jndi/command/src/main/java/org/apache/karaf/jndi/command/NamesCommand.java
----------------------------------------------------------------------
diff --git a/jndi/command/src/main/java/org/apache/karaf/jndi/command/NamesCommand.java b/jndi/command/src/main/java/org/apache/karaf/jndi/command/NamesCommand.java
index 165a5be..661dbbf 100644
--- a/jndi/command/src/main/java/org/apache/karaf/jndi/command/NamesCommand.java
+++ b/jndi/command/src/main/java/org/apache/karaf/jndi/command/NamesCommand.java
@@ -16,8 +16,10 @@
*/
package org.apache.karaf.jndi.command;
+import org.apache.karaf.jndi.command.completers.ContextsCompleter;
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.table.ShellTable;
import java.util.Map;
@@ -26,6 +28,7 @@ import java.util.Map;
public class NamesCommand extends JndiCommandSupport {
@Argument(index = 0, name = "context", description = "The JNDI context to display the names", required = false, multiValued = false)
+ @Completer(ContextsCompleter.class)
String context;
public Object doExecute() throws Exception {
http://git-wip-us.apache.org/repos/asf/karaf/blob/7d80946e/jndi/command/src/main/java/org/apache/karaf/jndi/command/UnbindCommand.java
----------------------------------------------------------------------
diff --git a/jndi/command/src/main/java/org/apache/karaf/jndi/command/UnbindCommand.java b/jndi/command/src/main/java/org/apache/karaf/jndi/command/UnbindCommand.java
index acac41f..10b9740 100644
--- a/jndi/command/src/main/java/org/apache/karaf/jndi/command/UnbindCommand.java
+++ b/jndi/command/src/main/java/org/apache/karaf/jndi/command/UnbindCommand.java
@@ -16,13 +16,16 @@
*/
package org.apache.karaf.jndi.command;
+import org.apache.karaf.jndi.command.completers.NamesCompleter;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Completer;
@Command(scope = "jndi", name = "unbind", description = "Unbind a JNDI name.")
public class UnbindCommand extends JndiCommandSupport {
@Argument(index = 0, name = "name", description = "The JNDI name to unbind", required = true, multiValued = false)
+ @Completer(NamesCompleter.class)
String name;
public Object doExecute() throws Exception {
http://git-wip-us.apache.org/repos/asf/karaf/blob/7d80946e/jndi/command/src/main/resources/OSGI-INF/blueprint/jndi-command.xml
----------------------------------------------------------------------
diff --git a/jndi/command/src/main/resources/OSGI-INF/blueprint/jndi-command.xml b/jndi/command/src/main/resources/OSGI-INF/blueprint/jndi-command.xml
index cccba60..d9b9f14 100644
--- a/jndi/command/src/main/resources/OSGI-INF/blueprint/jndi-command.xml
+++ b/jndi/command/src/main/resources/OSGI-INF/blueprint/jndi-command.xml
@@ -24,76 +24,52 @@
<action class="org.apache.karaf.jndi.command.AliasCommand">
<property name="jndiService" ref="jndiService" />
</action>
- <completers>
- <ref component-id="namesCompleter" />
- <ref component-id="contextsCompleter" />
- <null />
- </completers>
</command>
<command>
<action class="org.apache.karaf.jndi.command.ContextsCommand">
<property name="jndiService" ref="jndiService" />
</action>
- <completers>
- <ref component-id="contextsCompleter" />
- <null />
- </completers>
</command>
<command>
<action class="org.apache.karaf.jndi.command.NamesCommand">
<property name="jndiService" ref="jndiService" />
</action>
- <completers>
- <ref component-id="contextsCompleter" />
- <null />
- </completers>
</command>
<command>
<action class="org.apache.karaf.jndi.command.CreateCommand">
<property name="jndiService" ref="jndiService"/>
</action>
- <completers>
- <ref component-id="contextsCompleter" />
- <null />
- </completers>
</command>
<command>
<action class="org.apache.karaf.jndi.command.DeleteCommand">
<property name="jndiService" ref="jndiService"/>
</action>
- <completers>
- <ref component-id="contextsCompleter" />
- <null />
- </completers>
</command>
<command>
<action class="org.apache.karaf.jndi.command.BindCommand">
<property name="jndiService" ref="jndiService"/>
</action>
- <completers>
- <ref component-id="servicesIdCompleter" />
- <ref component-id="contextsCompleter" />
- <null />
- </completers>
</command>
<command>
<action class="org.apache.karaf.jndi.command.UnbindCommand">
<property name="jndiService" ref="jndiService" />
</action>
- <completers>
- <ref component-id="namesCompleter" />
- </completers>
</command>
</command-bundle>
<bean id="namesCompleter" class="org.apache.karaf.jndi.command.completers.NamesCompleter">
<property name="jndiService" ref="jndiService" />
</bean>
+ <service ref="namesCompleter" auto-export="all-classes"/>
+
<bean id="contextsCompleter" class="org.apache.karaf.jndi.command.completers.ContextsCompleter">
<property name="jndiService" ref="jndiService" />
</bean>
+ <service ref="contextsCompleter" auto-export="all-classes"/>
+
<bean id="servicesIdCompleter" class="org.apache.karaf.jndi.command.completers.ServicesIdCompleter">
<property name="bundleContext" ref="blueprintBundleContext" />
</bean>
+ <service ref="servicesIdCompleter" auto-export="all-classes"/>
</blueprint>
\ No newline at end of file
[03/15] git commit: [KARAF-2756] Use @Completer for config commands
Posted by gn...@apache.org.
[KARAF-2756] Use @Completer for config commands
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/61fc1b68
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/61fc1b68
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/61fc1b68
Branch: refs/heads/master
Commit: 61fc1b685318a7403403fd9d2d8d3581c141fd2c
Parents: ec6c1ba
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Wed Feb 12 22:35:24 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Fri Feb 14 13:43:57 2014 +0100
----------------------------------------------------------------------
.../command/ConfigPropertyCommandSupport.java | 3 ++
.../karaf/config/command/DeleteCommand.java | 3 ++
.../karaf/config/command/EditCommand.java | 3 ++
.../karaf/config/command/PropAppendCommand.java | 3 ++
.../karaf/config/command/PropSetCommand.java | 3 ++
.../OSGI-INF/blueprint/shell-config.xml | 38 ++------------------
6 files changed, 17 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/61fc1b68/config/command/src/main/java/org/apache/karaf/config/command/ConfigPropertyCommandSupport.java
----------------------------------------------------------------------
diff --git a/config/command/src/main/java/org/apache/karaf/config/command/ConfigPropertyCommandSupport.java b/config/command/src/main/java/org/apache/karaf/config/command/ConfigPropertyCommandSupport.java
index c4086bd..3e6af04 100644
--- a/config/command/src/main/java/org/apache/karaf/config/command/ConfigPropertyCommandSupport.java
+++ b/config/command/src/main/java/org/apache/karaf/config/command/ConfigPropertyCommandSupport.java
@@ -19,6 +19,8 @@ package org.apache.karaf.config.command;
import java.util.Dictionary;
import java.util.Properties;
+import org.apache.karaf.config.command.completers.ConfigurationCompleter;
+import org.apache.karaf.shell.commands.Completer;
import org.apache.karaf.shell.commands.Option;
/**
@@ -27,6 +29,7 @@ import org.apache.karaf.shell.commands.Option;
public abstract class ConfigPropertyCommandSupport extends ConfigCommandSupport {
@Option(name = "-p", aliases = "--pid", description = "The configuration pid", required = false, multiValued = false)
+ @Completer(ConfigurationCompleter.class)
protected String pid;
@SuppressWarnings("rawtypes")
http://git-wip-us.apache.org/repos/asf/karaf/blob/61fc1b68/config/command/src/main/java/org/apache/karaf/config/command/DeleteCommand.java
----------------------------------------------------------------------
diff --git a/config/command/src/main/java/org/apache/karaf/config/command/DeleteCommand.java b/config/command/src/main/java/org/apache/karaf/config/command/DeleteCommand.java
index ff9a469..7e8b3d2 100644
--- a/config/command/src/main/java/org/apache/karaf/config/command/DeleteCommand.java
+++ b/config/command/src/main/java/org/apache/karaf/config/command/DeleteCommand.java
@@ -16,14 +16,17 @@
*/
package org.apache.karaf.config.command;
+import org.apache.karaf.config.command.completers.ConfigurationCompleter;
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.commands.Option;
@Command(scope = "config", name = "delete", description = "Delete a configuration.")
public class DeleteCommand extends ConfigCommandSupport {
@Argument(index = 0, name = "pid", description = "PID of the configuration", required = true, multiValued = false)
+ @Completer(ConfigurationCompleter.class)
String pid;
@Option(name = "--force", aliases = {}, description = "Force the edition of this config, even if another one was under edition", required = false, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/61fc1b68/config/command/src/main/java/org/apache/karaf/config/command/EditCommand.java
----------------------------------------------------------------------
diff --git a/config/command/src/main/java/org/apache/karaf/config/command/EditCommand.java b/config/command/src/main/java/org/apache/karaf/config/command/EditCommand.java
index 60ba76e..3f494c7 100644
--- a/config/command/src/main/java/org/apache/karaf/config/command/EditCommand.java
+++ b/config/command/src/main/java/org/apache/karaf/config/command/EditCommand.java
@@ -18,8 +18,10 @@ package org.apache.karaf.config.command;
import java.util.Dictionary;
+import org.apache.karaf.config.command.completers.ConfigurationCompleter;
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.commands.Option;
import org.osgi.service.cm.Configuration;
@@ -27,6 +29,7 @@ import org.osgi.service.cm.Configuration;
public class EditCommand extends ConfigCommandSupport {
@Argument(index = 0, name = "pid", description = "PID of the configuration or of the factory if --factory is given. Pid can also be specified as ldap query", required = true, multiValued = false)
+ @Completer(ConfigurationCompleter.class)
String pid;
@Option(name = "--force", aliases = {}, description = "Force the edition of this config, even if another one was under edition", required = false, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/61fc1b68/config/command/src/main/java/org/apache/karaf/config/command/PropAppendCommand.java
----------------------------------------------------------------------
diff --git a/config/command/src/main/java/org/apache/karaf/config/command/PropAppendCommand.java b/config/command/src/main/java/org/apache/karaf/config/command/PropAppendCommand.java
index 8ff76c7..9c04638 100644
--- a/config/command/src/main/java/org/apache/karaf/config/command/PropAppendCommand.java
+++ b/config/command/src/main/java/org/apache/karaf/config/command/PropAppendCommand.java
@@ -18,13 +18,16 @@ package org.apache.karaf.config.command;
import java.util.Dictionary;
+import org.apache.karaf.config.command.completers.ConfigurationPropertyCompleter;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Completer;
@Command(scope = "config", name = "property-append", description = "Appends the given value to an existing property or creates the property with the specified name and value.")
public class PropAppendCommand extends ConfigPropertyCommandSupport {
@Argument(index = 0, name = "name", description = "The name of the property", required = true, multiValued = false)
+ @Completer(ConfigurationPropertyCompleter.class)
String prop;
@Argument(index = 1, name = "value", description = "The value to append to the property", required = true, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/61fc1b68/config/command/src/main/java/org/apache/karaf/config/command/PropSetCommand.java
----------------------------------------------------------------------
diff --git a/config/command/src/main/java/org/apache/karaf/config/command/PropSetCommand.java b/config/command/src/main/java/org/apache/karaf/config/command/PropSetCommand.java
index de2ac2e..30135d8 100644
--- a/config/command/src/main/java/org/apache/karaf/config/command/PropSetCommand.java
+++ b/config/command/src/main/java/org/apache/karaf/config/command/PropSetCommand.java
@@ -18,13 +18,16 @@ package org.apache.karaf.config.command;
import java.util.Dictionary;
+import org.apache.karaf.config.command.completers.ConfigurationPropertyCompleter;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Completer;
@Command(scope = "config", name = "property-set", description = "Sets a property in the currently edited configuration.")
public class PropSetCommand extends ConfigPropertyCommandSupport {
@Argument(index = 0, name = "property", description = "The name of the property to set", required = true, multiValued = false)
+ @Completer(ConfigurationPropertyCompleter.class)
String prop;
@Argument(index = 1, name = "value", description = "The value of the property", required = true, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/61fc1b68/config/command/src/main/resources/OSGI-INF/blueprint/shell-config.xml
----------------------------------------------------------------------
diff --git a/config/command/src/main/resources/OSGI-INF/blueprint/shell-config.xml b/config/command/src/main/resources/OSGI-INF/blueprint/shell-config.xml
index c1a6da6..def3594 100644
--- a/config/command/src/main/resources/OSGI-INF/blueprint/shell-config.xml
+++ b/config/command/src/main/resources/OSGI-INF/blueprint/shell-config.xml
@@ -32,71 +32,36 @@
<action class="org.apache.karaf.config.command.DeleteCommand">
<property name="configRepository" ref="configRepo"/>
</action>
- <completers>
- <ref component-id="configCompleter" />
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.config.command.EditCommand">
<property name="configRepository" ref="configRepo"/>
</action>
- <completers>
- <ref component-id="configCompleter" />
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.config.command.ListCommand">
<property name="configRepository" ref="configRepo"/>
</action>
- <optional-completers>
- <entry key="-p" value-ref="configCompleter"/>
- </optional-completers>
</command>
<command>
<action class="org.apache.karaf.config.command.PropDelCommand">
<property name="configRepository" ref="configRepo"/>
</action>
- <completers>
- <ref component-id="configPropertyCompleter" />
- <null/>
- </completers>
- <optional-completers>
- <entry key="-p" value-ref="configCompleter"/>
- </optional-completers>
</command>
<command>
<action class="org.apache.karaf.config.command.PropListCommand">
<property name="configRepository" ref="configRepo"/>
</action>
- <optional-completers>
- <entry key="-p" value-ref="configCompleter"/>
- </optional-completers>
</command>
<command>
<action class="org.apache.karaf.config.command.PropSetCommand">
<property name="configRepository" ref="configRepo"/>
</action>
- <completers>
- <ref component-id="configPropertyCompleter" />
- <null/>
- </completers>
- <optional-completers>
- <entry key="-p" value-ref="configCompleter"/>
- </optional-completers>
</command>
<command>
<action class="org.apache.karaf.config.command.PropAppendCommand">
<property name="configRepository" ref="configRepo"/>
</action>
- <completers>
- <ref component-id="configPropertyCompleter" />
- <null/>
- </completers>
- <optional-completers>
- <entry key="-p" value-ref="configCompleter"/>
- </optional-completers>
</command>
<command>
<action class="org.apache.karaf.config.command.UpdateCommand">
@@ -108,11 +73,12 @@
<bean id="configCompleter" class="org.apache.karaf.config.command.completers.ConfigurationCompleter" init-method="init">
<property name="admin" ref="configAdmin"/>
</bean>
- <service ref="configCompleter" interface="org.osgi.service.cm.ConfigurationListener" />
+ <service ref="configCompleter" auto-export="all-classes" />
<bean id="configPropertyCompleter" class="org.apache.karaf.config.command.completers.ConfigurationPropertyCompleter">
<property name="configAdmin" ref="configAdmin"/>
</bean>
+ <service ref="configPropertyCompleter" auto-export="all-classes" />
<reference id="configRepo" interface="org.apache.karaf.config.core.ConfigRepository" />
<reference id="configAdmin" interface="org.osgi.service.cm.ConfigurationAdmin" />
[15/15] git commit: [KARAF-2756] Use @Completer for jms commands
Posted by gn...@apache.org.
[KARAF-2756] Use @Completer for jms commands
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/680ad584
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/680ad584
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/680ad584
Branch: refs/heads/master
Commit: 680ad584da737d9a16e2118344b3a5551c19b588
Parents: 456effe
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Fri Feb 14 12:56:48 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Fri Feb 14 13:43:58 2014 +0100
----------------------------------------------------------------------
.../karaf/jms/command/ConsumeCommand.java | 1 -
.../apache/karaf/jms/command/CreateCommand.java | 3 ++
.../apache/karaf/jms/command/DeleteCommand.java | 3 ++
.../command/JmsConnectionCommandSupport.java | 3 ++
.../apache/karaf/jms/command/MoveCommand.java | 1 +
.../OSGI-INF/blueprint/jms-command.xml | 39 ++------------------
6 files changed, 13 insertions(+), 37 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/680ad584/jms/command/src/main/java/org/apache/karaf/jms/command/ConsumeCommand.java
----------------------------------------------------------------------
diff --git a/jms/command/src/main/java/org/apache/karaf/jms/command/ConsumeCommand.java b/jms/command/src/main/java/org/apache/karaf/jms/command/ConsumeCommand.java
index d7c732d..84e1d19 100644
--- a/jms/command/src/main/java/org/apache/karaf/jms/command/ConsumeCommand.java
+++ b/jms/command/src/main/java/org/apache/karaf/jms/command/ConsumeCommand.java
@@ -23,7 +23,6 @@ import org.apache.karaf.shell.commands.Option;
@Command(scope = "jms", name = "consume", description = "Consume messages from a JMS queue.")
public class ConsumeCommand extends JmsConnectionCommandSupport {
-
@Argument(index = 1, name = "queue", description = "The JMS queue where to consume messages", required = true, multiValued = false)
String queue;
http://git-wip-us.apache.org/repos/asf/karaf/blob/680ad584/jms/command/src/main/java/org/apache/karaf/jms/command/CreateCommand.java
----------------------------------------------------------------------
diff --git a/jms/command/src/main/java/org/apache/karaf/jms/command/CreateCommand.java b/jms/command/src/main/java/org/apache/karaf/jms/command/CreateCommand.java
index 9e029f5..dcea101 100644
--- a/jms/command/src/main/java/org/apache/karaf/jms/command/CreateCommand.java
+++ b/jms/command/src/main/java/org/apache/karaf/jms/command/CreateCommand.java
@@ -18,7 +18,9 @@ package org.apache.karaf.jms.command;
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.commands.Option;
+import org.apache.karaf.shell.console.completer.StringsCompleter;
@Command(scope = "jms", name = "create", description = "Create a JMS connection factory.")
public class CreateCommand extends JmsCommandSupport {
@@ -27,6 +29,7 @@ public class CreateCommand extends JmsCommandSupport {
String name;
@Option(name = "-t", aliases = { "--type" }, description = "The JMS connection factory type (ActiveMQ or WebsphereMQ)", required = false, multiValued = false)
+ @Completer(value = StringsCompleter.class, values = { "activemq", "webspheremq" })
String type = "ActiveMQ";
@Option(name = "--url", description = "URL of the JMS broker. For WebsphereMQ type, the URL is hostname/port/queuemanager/channel", required = false, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/680ad584/jms/command/src/main/java/org/apache/karaf/jms/command/DeleteCommand.java
----------------------------------------------------------------------
diff --git a/jms/command/src/main/java/org/apache/karaf/jms/command/DeleteCommand.java b/jms/command/src/main/java/org/apache/karaf/jms/command/DeleteCommand.java
index b9d1656..882c318 100644
--- a/jms/command/src/main/java/org/apache/karaf/jms/command/DeleteCommand.java
+++ b/jms/command/src/main/java/org/apache/karaf/jms/command/DeleteCommand.java
@@ -16,13 +16,16 @@
*/
package org.apache.karaf.jms.command;
+import org.apache.karaf.jms.command.completers.ConnectionFactoriesFileNameCompleter;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Completer;
@Command(scope = "jms", name = "delete", description = "Delete a JMS connection factory")
public class DeleteCommand extends JmsCommandSupport {
@Argument(index = 0, name = "name", description = "The JMS connection factory name", required = true, multiValued = false)
+ @Completer(ConnectionFactoriesFileNameCompleter.class)
String name;
public Object doExecute() throws Exception {
http://git-wip-us.apache.org/repos/asf/karaf/blob/680ad584/jms/command/src/main/java/org/apache/karaf/jms/command/JmsConnectionCommandSupport.java
----------------------------------------------------------------------
diff --git a/jms/command/src/main/java/org/apache/karaf/jms/command/JmsConnectionCommandSupport.java b/jms/command/src/main/java/org/apache/karaf/jms/command/JmsConnectionCommandSupport.java
index 00f0a95..cb89717 100644
--- a/jms/command/src/main/java/org/apache/karaf/jms/command/JmsConnectionCommandSupport.java
+++ b/jms/command/src/main/java/org/apache/karaf/jms/command/JmsConnectionCommandSupport.java
@@ -16,7 +16,9 @@
*/
package org.apache.karaf.jms.command;
+import org.apache.karaf.jms.command.completers.ConnectionFactoriesNameCompleter;
import org.apache.karaf.shell.commands.Argument;
+import org.apache.karaf.shell.commands.Completer;
import org.apache.karaf.shell.commands.Option;
/**
@@ -25,6 +27,7 @@ import org.apache.karaf.shell.commands.Option;
public abstract class JmsConnectionCommandSupport extends JmsCommandSupport {
@Argument(index = 0, name = "connectionFactory", description = "The JMS connection factory name", required = true, multiValued = false)
+ @Completer(ConnectionFactoriesNameCompleter.class)
String connectionFactory;
@Option(name = "-u", aliases = { "--username" }, description = "Username to connect to the JMS broker", required = false, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/680ad584/jms/command/src/main/java/org/apache/karaf/jms/command/MoveCommand.java
----------------------------------------------------------------------
diff --git a/jms/command/src/main/java/org/apache/karaf/jms/command/MoveCommand.java b/jms/command/src/main/java/org/apache/karaf/jms/command/MoveCommand.java
index f1bc85b..4ab8b46 100644
--- a/jms/command/src/main/java/org/apache/karaf/jms/command/MoveCommand.java
+++ b/jms/command/src/main/java/org/apache/karaf/jms/command/MoveCommand.java
@@ -22,6 +22,7 @@ import org.apache.karaf.shell.commands.Option;
@Command(scope = "jms", name = "move", description = "Move messages from one JMS queue to another one.")
public class MoveCommand extends JmsConnectionCommandSupport {
+
@Argument(index = 1, name = "source", description = "The source JMS queue", required = true, multiValued = false)
String source;
http://git-wip-us.apache.org/repos/asf/karaf/blob/680ad584/jms/command/src/main/resources/OSGI-INF/blueprint/jms-command.xml
----------------------------------------------------------------------
diff --git a/jms/command/src/main/resources/OSGI-INF/blueprint/jms-command.xml b/jms/command/src/main/resources/OSGI-INF/blueprint/jms-command.xml
index 008fa6e..be81647 100644
--- a/jms/command/src/main/resources/OSGI-INF/blueprint/jms-command.xml
+++ b/jms/command/src/main/resources/OSGI-INF/blueprint/jms-command.xml
@@ -24,10 +24,6 @@
<action class="org.apache.karaf.jms.command.BrowseCommand">
<property name="jmsService" ref="jmsService"/>
</action>
- <completers>
- <ref component-id="connectionFactoriesNameCompleter"/>
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.jms.command.ConnectionFactoriesCommand">
@@ -38,19 +34,11 @@
<action class="org.apache.karaf.jms.command.ConsumeCommand">
<property name="jmsService" ref="jmsService"/>
</action>
- <completers>
- <ref component-id="connectionFactoriesNameCompleter"/>
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.jms.command.CountCommand">
<property name="jmsService" ref="jmsService"/>
</action>
- <completers>
- <ref component-id="connectionFactoriesNameCompleter"/>
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.jms.command.CreateCommand">
@@ -61,63 +49,42 @@
<action class="org.apache.karaf.jms.command.DeleteCommand">
<property name="jmsService" ref="jmsService"/>
</action>
- <completers>
- <ref component-id="connectionFactoriesFileNameCompleter"/>
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.jms.command.InfoCommand">
<property name="jmsService" ref="jmsService"/>
</action>
- <completers>
- <ref component-id="connectionFactoriesNameCompleter"/>
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.jms.command.MoveCommand">
<property name="jmsService" ref="jmsService"/>
</action>
- <completers>
- <ref component-id="connectionFactoriesNameCompleter"/>
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.jms.command.QueuesCommand">
<property name="jmsService" ref="jmsService"/>
</action>
- <completers>
- <ref component-id="connectionFactoriesNameCompleter"/>
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.jms.command.SendCommand">
<property name="jmsService" ref="jmsService"/>
</action>
- <completers>
- <ref component-id="connectionFactoriesNameCompleter"/>
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.jms.command.TopicsCommand">
<property name="jmsService" ref="jmsService"/>
</action>
- <completers>
- <ref component-id="connectionFactoriesNameCompleter"/>
- <null/>
- </completers>
</command>
</command-bundle>
<bean id="connectionFactoriesNameCompleter" class="org.apache.karaf.jms.command.completers.ConnectionFactoriesNameCompleter">
<property name="jmsService" ref="jmsService"/>
</bean>
+ <service ref="connectionFactoriesNameCompleter" auto-export="all-classes"/>
+
<bean id="connectionFactoriesFileNameCompleter" class="org.apache.karaf.jms.command.completers.ConnectionFactoriesFileNameCompleter">
<property name="jmsService" ref="jmsService"/>
</bean>
+ <service ref="connectionFactoriesFileNameCompleter" auto-export="all-classes"/>
</blueprint>
\ No newline at end of file
[11/15] git commit: [KARAF-2756] Use @Completer for shell commands
Posted by gn...@apache.org.
[KARAF-2756] Use @Completer for shell commands
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/22bae924
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/22bae924
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/22bae924
Branch: refs/heads/master
Commit: 22bae92410976befe0a56b1f4f29ee55ff2e0eff
Parents: fe817d2
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Fri Feb 14 13:28:22 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Fri Feb 14 13:43:58 2014 +0100
----------------------------------------------------------------------
.../java/org/apache/karaf/shell/commands/impl/WatchAction.java | 3 +++
.../src/main/resources/OSGI-INF/blueprint/shell-commands.xml | 5 +----
2 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/22bae924/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/WatchAction.java
----------------------------------------------------------------------
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/WatchAction.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/WatchAction.java
index 7edcb9b..2850c76 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/WatchAction.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/WatchAction.java
@@ -28,8 +28,10 @@ import org.apache.felix.service.command.CommandProcessor;
import org.apache.felix.service.command.CommandSession;
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.commands.Option;
import org.apache.karaf.shell.console.AbstractAction;
+import org.apache.karaf.shell.console.completer.CommandsCompleter;
@Command(scope = "shell", name = "watch", description = "Watches & refreshes the output of a command")
public class WatchAction extends AbstractAction {
@@ -41,6 +43,7 @@ public class WatchAction extends AbstractAction {
private boolean append = false;
@Argument(index = 0, name = "command", description = "The command to watch / refresh", required = true, multiValued = true)
+ @Completer(CommandsCompleter.class)
private String[] arguments;
CommandProcessor commandProcessor;
http://git-wip-us.apache.org/repos/asf/karaf/blob/22bae924/shell/commands/src/main/resources/OSGI-INF/blueprint/shell-commands.xml
----------------------------------------------------------------------
diff --git a/shell/commands/src/main/resources/OSGI-INF/blueprint/shell-commands.xml b/shell/commands/src/main/resources/OSGI-INF/blueprint/shell-commands.xml
index 45c547c..9258998 100644
--- a/shell/commands/src/main/resources/OSGI-INF/blueprint/shell-commands.xml
+++ b/shell/commands/src/main/resources/OSGI-INF/blueprint/shell-commands.xml
@@ -101,10 +101,6 @@
<action class="org.apache.karaf.shell.commands.impl.WatchAction">
<property name="commandProcessor" ref="commandProcessor"/>
</action>
- <completers>
- <ref component-id="commandCompleter" />
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.shell.commands.impl.WcAction"/>
@@ -117,6 +113,7 @@
</command-bundle>
<bean id="commandCompleter" class="org.apache.karaf.shell.console.completer.CommandsCompleter"/>
+ <service ref="commandCompleter" auto-export="all-classes"/>
<bean class="org.osgi.util.tracker.BundleTracker" init-method="open"
destroy-method="close">
[13/15] git commit: [KARAF-2756] Use @Completer for jdbc commands
Posted by gn...@apache.org.
[KARAF-2756] Use @Completer for jdbc commands
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/456effe6
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/456effe6
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/456effe6
Branch: refs/heads/master
Commit: 456effe6a9fa4479b54896eb427d62cb4ca28f54
Parents: 3cef88c
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Fri Feb 14 11:42:01 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Fri Feb 14 13:43:58 2014 +0100
----------------------------------------------------------------------
.../karaf/jdbc/command/CreateCommand.java | 3 +++
.../karaf/jdbc/command/DeleteCommand.java | 3 +++
.../karaf/jdbc/command/ExecuteCommand.java | 3 +++
.../apache/karaf/jdbc/command/InfoCommand.java | 3 +++
.../apache/karaf/jdbc/command/QueryCommand.java | 3 +++
.../karaf/jdbc/command/TablesCommand.java | 3 +++
.../OSGI-INF/blueprint/jdbc-command.xml | 27 ++++----------------
7 files changed, 23 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/456effe6/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/CreateCommand.java
----------------------------------------------------------------------
diff --git a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/CreateCommand.java b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/CreateCommand.java
index 35f3940..775f9ad 100644
--- a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/CreateCommand.java
+++ b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/CreateCommand.java
@@ -18,7 +18,9 @@ package org.apache.karaf.jdbc.command;
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.commands.Option;
+import org.apache.karaf.shell.console.completer.StringsCompleter;
@Command(scope = "jdbc", name = "create", description = "Create a JDBC datasource")
public class CreateCommand extends JdbcCommandSupport {
@@ -27,6 +29,7 @@ public class CreateCommand extends JdbcCommandSupport {
String name;
@Option(name = "-t", aliases = { "--type" }, description = "The JDBC datasource type (generic, MySQL, Oracle, Postgres, H2, HSQL, Derby)", required = false, multiValued = false)
+ @Completer(value = StringsCompleter.class, values = { "db2", "derby", "generic", "h2", "hsql", "mysql", "oracle", "postgres" })
String type;
@Option(name = "-d", aliases = { "--driver" }, description = "The classname of the JDBC driver to use. NB: this option is used only the type generic", required = false, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/456effe6/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/DeleteCommand.java
----------------------------------------------------------------------
diff --git a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/DeleteCommand.java b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/DeleteCommand.java
index b4c8c5a..20982bb 100644
--- a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/DeleteCommand.java
+++ b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/DeleteCommand.java
@@ -16,13 +16,16 @@
*/
package org.apache.karaf.jdbc.command;
+import org.apache.karaf.jdbc.command.completers.DataSourcesFileNameCompleter;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Completer;
@Command(scope = "jdbc", name = "delete", description = "Delete a JDBC datasource")
public class DeleteCommand extends JdbcCommandSupport {
@Argument(index = 0, name = "name", description = "The JDBC datasource name (the one used at creation time)", required = true, multiValued = false)
+ @Completer(DataSourcesFileNameCompleter.class)
String name;
public Object doExecute() throws Exception {
http://git-wip-us.apache.org/repos/asf/karaf/blob/456effe6/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/ExecuteCommand.java
----------------------------------------------------------------------
diff --git a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/ExecuteCommand.java b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/ExecuteCommand.java
index dbbca62..42f0a76 100644
--- a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/ExecuteCommand.java
+++ b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/ExecuteCommand.java
@@ -16,13 +16,16 @@
*/
package org.apache.karaf.jdbc.command;
+import org.apache.karaf.jdbc.command.completers.DataSourcesNameCompleter;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Completer;
@Command(scope = "jdbc", name = "execute", description = "Execute a SQL command on a given JDBC datasource")
public class ExecuteCommand extends JdbcCommandSupport {
@Argument(index = 0, name = "datasource", description = "The JDBC datasource", required = true, multiValued = false)
+ @Completer(DataSourcesNameCompleter.class)
String datasource;
@Argument(index = 1, name = "command", description = "The SQL command to execute", required = true, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/456effe6/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/InfoCommand.java
----------------------------------------------------------------------
diff --git a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/InfoCommand.java b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/InfoCommand.java
index 772fbdc..89bca19 100644
--- a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/InfoCommand.java
+++ b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/InfoCommand.java
@@ -16,8 +16,10 @@
*/
package org.apache.karaf.jdbc.command;
+import org.apache.karaf.jdbc.command.completers.DataSourcesNameCompleter;
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.table.ShellTable;
import java.util.Map;
@@ -26,6 +28,7 @@ import java.util.Map;
public class InfoCommand extends JdbcCommandSupport {
@Argument(index = 0, name = "datasource", description = "The JDBC datasource name", required = true, multiValued = false)
+ @Completer(DataSourcesNameCompleter.class)
String datasource;
public Object doExecute() throws Exception {
http://git-wip-us.apache.org/repos/asf/karaf/blob/456effe6/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/QueryCommand.java
----------------------------------------------------------------------
diff --git a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/QueryCommand.java b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/QueryCommand.java
index 6644657..7fc641a 100644
--- a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/QueryCommand.java
+++ b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/QueryCommand.java
@@ -16,8 +16,10 @@
*/
package org.apache.karaf.jdbc.command;
+import org.apache.karaf.jdbc.command.completers.DataSourcesNameCompleter;
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.table.Row;
import org.apache.karaf.shell.table.ShellTable;
@@ -28,6 +30,7 @@ import java.util.Map;
public class QueryCommand extends JdbcCommandSupport {
@Argument(index = 0, name = "datasource", description = "The JDBC datasource to use", required = true, multiValued = false)
+ @Completer(DataSourcesNameCompleter.class)
String datasource;
@Argument(index = 1, name = "query", description = "The SQL query to execute", required = true, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/456effe6/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/TablesCommand.java
----------------------------------------------------------------------
diff --git a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/TablesCommand.java b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/TablesCommand.java
index 976f2d4..6256cbc 100644
--- a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/TablesCommand.java
+++ b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/TablesCommand.java
@@ -16,8 +16,10 @@
*/
package org.apache.karaf.jdbc.command;
+import org.apache.karaf.jdbc.command.completers.DataSourcesNameCompleter;
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.table.Row;
import org.apache.karaf.shell.table.ShellTable;
@@ -28,6 +30,7 @@ import java.util.Map;
public class TablesCommand extends JdbcCommandSupport {
@Argument(index = 0, name = "datasource", description = "The JDBC datasource to use", required = true, multiValued = false)
+ @Completer(DataSourcesNameCompleter.class)
String datasource;
public Object doExecute() throws Exception {
http://git-wip-us.apache.org/repos/asf/karaf/blob/456effe6/jdbc/command/src/main/resources/OSGI-INF/blueprint/jdbc-command.xml
----------------------------------------------------------------------
diff --git a/jdbc/command/src/main/resources/OSGI-INF/blueprint/jdbc-command.xml b/jdbc/command/src/main/resources/OSGI-INF/blueprint/jdbc-command.xml
index fe501f4..2433e00 100644
--- a/jdbc/command/src/main/resources/OSGI-INF/blueprint/jdbc-command.xml
+++ b/jdbc/command/src/main/resources/OSGI-INF/blueprint/jdbc-command.xml
@@ -29,10 +29,6 @@
<action class="org.apache.karaf.jdbc.command.DeleteCommand">
<property name="jdbcService" ref="jdbcService"/>
</action>
- <completers>
- <ref component-id="datasourcesFileNameCompleter"/>
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.jdbc.command.DataSourcesCommand">
@@ -43,45 +39,32 @@
<action class="org.apache.karaf.jdbc.command.QueryCommand">
<property name="jdbcService" ref="jdbcService"/>
</action>
- <completers>
- <ref component-id="datasourcesNameCompleter"/>
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.jdbc.command.ExecuteCommand">
<property name="jdbcService" ref="jdbcService"/>
</action>
- <completers>
- <ref component-id="datasourcesNameCompleter"/>
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.jdbc.command.InfoCommand">
<property name="jdbcService" ref="jdbcService"/>
</action>
- <completers>
- <ref component-id="datasourcesNameCompleter"/>
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.jdbc.command.TablesCommand">
<property name="jdbcService" ref="jdbcService"/>
</action>
- <completers>
- <ref component-id="datasourcesNameCompleter"/>
- <null/>
- </completers>
</command>
</command-bundle>
- <bean id="datasourcesNameCompleter" class="org.apache.karaf.jdbc.command.completers.DataSourcesNameCompleter">
+ <bean id="dataSourcesNameCompleter" class="org.apache.karaf.jdbc.command.completers.DataSourcesNameCompleter">
<property name="jdbcService" ref="jdbcService" />
</bean>
- <bean id="datasourcesFileNameCompleter" class="org.apache.karaf.jdbc.command.completers.DataSourcesFileNameCompleter">
+ <service ref="dataSourcesNameCompleter" auto-export="all-classes"/>
+
+ <bean id="dataSourcesFileNameCompleter" class="org.apache.karaf.jdbc.command.completers.DataSourcesFileNameCompleter">
<property name="jdbcService" ref="jdbcService" />
</bean>
+ <service ref="dataSourcesFileNameCompleter" auto-export="all-classes"/>
</blueprint>
\ No newline at end of file
[14/15] git commit: [KARAF-2756] Use @Completer for service commands
Posted by gn...@apache.org.
[KARAF-2756] Use @Completer for service commands
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/fe817d27
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/fe817d27
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/fe817d27
Branch: refs/heads/master
Commit: fe817d2717bae1fd28b9c062974e1e787554dc96
Parents: 7d80946
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Fri Feb 14 13:21:08 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Fri Feb 14 13:43:58 2014 +0100
----------------------------------------------------------------------
.../java/org/apache/karaf/service/command/ListServices.java | 5 ++++-
.../src/main/resources/OSGI-INF/blueprint/shell-services.xml | 5 +----
2 files changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/fe817d27/service/command/src/main/java/org/apache/karaf/service/command/ListServices.java
----------------------------------------------------------------------
diff --git a/service/command/src/main/java/org/apache/karaf/service/command/ListServices.java b/service/command/src/main/java/org/apache/karaf/service/command/ListServices.java
index 558d1af..9b8f389 100644
--- a/service/command/src/main/java/org/apache/karaf/service/command/ListServices.java
+++ b/service/command/src/main/java/org/apache/karaf/service/command/ListServices.java
@@ -26,6 +26,7 @@ import java.util.Map;
import org.apache.felix.service.command.Function;
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.commands.Option;
import org.apache.karaf.shell.console.OsgiCommandSupport;
import org.apache.karaf.shell.util.ShellUtil;
@@ -36,8 +37,10 @@ import org.osgi.framework.ServiceReference;
@Command(scope = "service", name = "list", description = "Lists OSGi services.")
public class ListServices extends OsgiCommandSupport {
- @Argument(index = 0, name = "objectClass", description = "Name of service objectClass to filter for", required = false,
+
+ @Argument(index = 0, name = "objectClass", description = "Name of service objectClass to filter for", required = false,
multiValued = false)
+ @Completer(ObjectClassCompleter.class)
String objectClass;
@Option(name = "-a", aliases = {}, description = "Shows all services. (By default Karaf commands are hidden)", required = false, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/fe817d27/service/command/src/main/resources/OSGI-INF/blueprint/shell-services.xml
----------------------------------------------------------------------
diff --git a/service/command/src/main/resources/OSGI-INF/blueprint/shell-services.xml b/service/command/src/main/resources/OSGI-INF/blueprint/shell-services.xml
index d3b7f83..8bc4308 100644
--- a/service/command/src/main/resources/OSGI-INF/blueprint/shell-services.xml
+++ b/service/command/src/main/resources/OSGI-INF/blueprint/shell-services.xml
@@ -23,10 +23,6 @@
<command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
<command>
<action class="org.apache.karaf.service.command.ListServices"/>
- <completers>
- <ref component-id="objectClassCompleter" />
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.service.command.Wait"/>
@@ -36,4 +32,5 @@
<bean id="objectClassCompleter" class="org.apache.karaf.service.command.ObjectClassCompleter">
<property name="context" ref="blueprintBundleContext"/>
</bean>
+ <service ref="objectClassCompleter" auto-export="all-classes"/>
</blueprint>
\ No newline at end of file
[05/15] git commit: [KARAF-2756] Use @Completer for instance commands
Posted by gn...@apache.org.
[KARAF-2756] Use @Completer for instance commands
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/2a12fbb6
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/2a12fbb6
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/2a12fbb6
Branch: refs/heads/master
Commit: 2a12fbb6ac05f05185cbd64716df37617e0906df
Parents: a7c642c
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Wed Feb 12 22:55:33 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Fri Feb 14 13:43:57 2014 +0100
----------------------------------------------------------------------
.../instance/command/ChangeOptsCommand.java | 3 +
.../command/ChangeRmiRegistryPortCommand.java | 3 +
.../command/ChangeRmiServerPortCommand.java | 3 +
.../instance/command/ChangeSshPortCommand.java | 3 +
.../karaf/instance/command/CloneCommand.java | 3 +
.../karaf/instance/command/ConnectCommand.java | 3 +
.../karaf/instance/command/CreateCommand.java | 5 ++
.../karaf/instance/command/DestroyCommand.java | 3 +
.../karaf/instance/command/RenameCommand.java | 3 +
.../karaf/instance/command/StartCommand.java | 3 +
.../karaf/instance/command/StatusCommand.java | 3 +
.../karaf/instance/command/StopCommand.java | 3 +
.../OSGI-INF/blueprint/instance-command.xml | 62 ++------------------
13 files changed, 43 insertions(+), 57 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/2a12fbb6/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeOptsCommand.java
----------------------------------------------------------------------
diff --git a/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeOptsCommand.java b/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeOptsCommand.java
index 7b443fd..3db7cec 100644
--- a/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeOptsCommand.java
+++ b/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeOptsCommand.java
@@ -16,13 +16,16 @@
*/
package org.apache.karaf.instance.command;
+import org.apache.karaf.instance.command.completers.InstanceCompleter;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Completer;
@Command(scope = "instance", name = "opts-change", description = "Changes the Java options of an existing container instance.")
public class ChangeOptsCommand extends InstanceCommandSupport {
@Argument(index = 0, name = "name", description="The name of the container instance", required = true, multiValued = false)
+ @Completer(InstanceCompleter.class)
private String instance = null;
@Argument(index = 1, name = "javaOpts", description = "The new Java options to set", required = true, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/2a12fbb6/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeRmiRegistryPortCommand.java
----------------------------------------------------------------------
diff --git a/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeRmiRegistryPortCommand.java b/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeRmiRegistryPortCommand.java
index a35c153..d889fa2 100644
--- a/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeRmiRegistryPortCommand.java
+++ b/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeRmiRegistryPortCommand.java
@@ -16,13 +16,16 @@
*/
package org.apache.karaf.instance.command;
+import org.apache.karaf.instance.command.completers.InstanceCompleter;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Completer;
@Command(scope = "instance", name = "rmi-registry-port-change", description = "Changes the RMI registry port (used by management layer) of an existing container instance.")
public class ChangeRmiRegistryPortCommand extends InstanceCommandSupport {
@Argument(index = 0, name = "name", description = "The name of the container instance", required = true, multiValued = false)
+ @Completer(InstanceCompleter.class)
private String instance = null;
@Argument(index = 1, name = "port", description = "The new RMI registry port to set", required = true, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/2a12fbb6/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeRmiServerPortCommand.java
----------------------------------------------------------------------
diff --git a/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeRmiServerPortCommand.java b/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeRmiServerPortCommand.java
index 60f75b2..1bef267 100644
--- a/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeRmiServerPortCommand.java
+++ b/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeRmiServerPortCommand.java
@@ -16,13 +16,16 @@
*/
package org.apache.karaf.instance.command;
+import org.apache.karaf.instance.command.completers.InstanceCompleter;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Completer;
@Command(scope = "instance", name = "rmi-server-port-change", description = "Changes the RMI server port (used by management layer) of an existing instance.")
public class ChangeRmiServerPortCommand extends InstanceCommandSupport {
@Argument(index = 0, name = "name", description = "The name of the container instance", required = true, multiValued = false)
+ @Completer(InstanceCompleter.class)
private String instance = null;
@Argument(index = 1, name = "port", description = "The new RMI server port to set", required = true, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/2a12fbb6/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeSshPortCommand.java
----------------------------------------------------------------------
diff --git a/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeSshPortCommand.java b/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeSshPortCommand.java
index 91c8281..9977971 100644
--- a/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeSshPortCommand.java
+++ b/instance/command/src/main/java/org/apache/karaf/instance/command/ChangeSshPortCommand.java
@@ -16,13 +16,16 @@
*/
package org.apache.karaf.instance.command;
+import org.apache.karaf.instance.command.completers.InstanceCompleter;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Completer;
@Command(scope = "instance", name = "ssh-port-change", description = "Changes the secure shell port of an existing container instance.")
public class ChangeSshPortCommand extends InstanceCommandSupport {
@Argument(index = 0, name = "name", description="The name of the container instance", required = true, multiValued = false)
+ @Completer(InstanceCompleter.class)
private String instance = null;
@Argument(index = 1, name = "port", description = "The new secure shell port to set", required = true, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/2a12fbb6/instance/command/src/main/java/org/apache/karaf/instance/command/CloneCommand.java
----------------------------------------------------------------------
diff --git a/instance/command/src/main/java/org/apache/karaf/instance/command/CloneCommand.java b/instance/command/src/main/java/org/apache/karaf/instance/command/CloneCommand.java
index fcde463..5e6b2b4 100644
--- a/instance/command/src/main/java/org/apache/karaf/instance/command/CloneCommand.java
+++ b/instance/command/src/main/java/org/apache/karaf/instance/command/CloneCommand.java
@@ -16,8 +16,10 @@
*/
package org.apache.karaf.instance.command;
+import org.apache.karaf.instance.command.completers.InstanceCompleter;
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.commands.Option;
import org.apache.karaf.instance.core.InstanceSettings;
@@ -46,6 +48,7 @@ public class CloneCommand extends InstanceCommandSupport {
boolean verbose = false;
@Argument(index = 0, name = "name", description = "The name of the source container instance", required = true, multiValued = false)
+ @Completer(InstanceCompleter.class)
String name;
@Argument(index = 1, name = "cloneName", description = "The name of the cloned container instance", required = true, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/2a12fbb6/instance/command/src/main/java/org/apache/karaf/instance/command/ConnectCommand.java
----------------------------------------------------------------------
diff --git a/instance/command/src/main/java/org/apache/karaf/instance/command/ConnectCommand.java b/instance/command/src/main/java/org/apache/karaf/instance/command/ConnectCommand.java
index a2a542a..6c909e9 100644
--- a/instance/command/src/main/java/org/apache/karaf/instance/command/ConnectCommand.java
+++ b/instance/command/src/main/java/org/apache/karaf/instance/command/ConnectCommand.java
@@ -20,6 +20,8 @@ package org.apache.karaf.instance.command;
import java.util.List;
+import org.apache.karaf.instance.command.completers.InstanceCompleter;
+import org.apache.karaf.shell.commands.Completer;
import org.apache.karaf.shell.commands.Option;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
@@ -34,6 +36,7 @@ public class ConnectCommand extends InstanceCommandSupport {
private String password;
@Argument(index = 0, name="name", description="The name of the container instance", required = true, multiValued = false)
+ @Completer(InstanceCompleter.class)
private String instance = null;
@Argument(index = 1, name = "command", description = "Optional command to execute", required = false, multiValued = true)
http://git-wip-us.apache.org/repos/asf/karaf/blob/2a12fbb6/instance/command/src/main/java/org/apache/karaf/instance/command/CreateCommand.java
----------------------------------------------------------------------
diff --git a/instance/command/src/main/java/org/apache/karaf/instance/command/CreateCommand.java b/instance/command/src/main/java/org/apache/karaf/instance/command/CreateCommand.java
index 219690d..a3c8595 100644
--- a/instance/command/src/main/java/org/apache/karaf/instance/command/CreateCommand.java
+++ b/instance/command/src/main/java/org/apache/karaf/instance/command/CreateCommand.java
@@ -18,8 +18,11 @@ package org.apache.karaf.instance.command;
import java.util.List;
+import org.apache.karaf.features.command.completers.AllFeatureCompleter;
+import org.apache.karaf.features.command.completers.InstalledRepoUriCompleter;
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.commands.Option;
import org.apache.karaf.instance.core.InstanceSettings;
@@ -46,10 +49,12 @@ public class CreateCommand extends InstanceCommandSupport
@Option(name = "-f", aliases = {"--feature"},
description = "Initial features. This option can be specified multiple times to enable multiple initial features", required = false, multiValued = true)
+ @Completer(AllFeatureCompleter.class)
List<String> features;
@Option(name = "-furl", aliases = {"--featureURL"},
description = "Additional feature descriptor URLs. This option can be specified multiple times to add multiple URLs", required = false, multiValued = true)
+ @Completer(InstalledRepoUriCompleter.class)
List<String> featureURLs;
@Option(name = "-v", aliases = {"--verbose"}, description = "Display actions performed by the command (disabled by default)", required = false, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/2a12fbb6/instance/command/src/main/java/org/apache/karaf/instance/command/DestroyCommand.java
----------------------------------------------------------------------
diff --git a/instance/command/src/main/java/org/apache/karaf/instance/command/DestroyCommand.java b/instance/command/src/main/java/org/apache/karaf/instance/command/DestroyCommand.java
index b2162da..3e41be0 100644
--- a/instance/command/src/main/java/org/apache/karaf/instance/command/DestroyCommand.java
+++ b/instance/command/src/main/java/org/apache/karaf/instance/command/DestroyCommand.java
@@ -16,8 +16,10 @@
*/
package org.apache.karaf.instance.command;
+import org.apache.karaf.instance.command.completers.InstanceCompleter;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Completer;
/**
* Destroy an existing instance.
@@ -26,6 +28,7 @@ import org.apache.karaf.shell.commands.Command;
public class DestroyCommand extends InstanceCommandSupport
{
@Argument(index = 0, name = "name", description= "The name of the container instance to destroy", required = true, multiValued = false)
+ @Completer(InstanceCompleter.class)
private String instance = null;
protected Object doExecute() throws Exception {
http://git-wip-us.apache.org/repos/asf/karaf/blob/2a12fbb6/instance/command/src/main/java/org/apache/karaf/instance/command/RenameCommand.java
----------------------------------------------------------------------
diff --git a/instance/command/src/main/java/org/apache/karaf/instance/command/RenameCommand.java b/instance/command/src/main/java/org/apache/karaf/instance/command/RenameCommand.java
index bb0067b..5b57774 100644
--- a/instance/command/src/main/java/org/apache/karaf/instance/command/RenameCommand.java
+++ b/instance/command/src/main/java/org/apache/karaf/instance/command/RenameCommand.java
@@ -16,8 +16,10 @@
*/
package org.apache.karaf.instance.command;
+import org.apache.karaf.instance.command.completers.InstanceCompleter;
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.commands.Option;
@Command(scope = "instance", name = "rename", description = "Rename an existing container instance.")
@@ -27,6 +29,7 @@ public class RenameCommand extends InstanceCommandSupport {
boolean verbose = false;
@Argument(index = 0, name = "name", description = "The name of the container instance to rename", required = true, multiValued = false)
+ @Completer(InstanceCompleter.class)
String instance = null;
@Argument(index = 1, name = "new-name", description = "The new name of the container instance", required = true, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/2a12fbb6/instance/command/src/main/java/org/apache/karaf/instance/command/StartCommand.java
----------------------------------------------------------------------
diff --git a/instance/command/src/main/java/org/apache/karaf/instance/command/StartCommand.java b/instance/command/src/main/java/org/apache/karaf/instance/command/StartCommand.java
index 82807be..1f3c13b 100644
--- a/instance/command/src/main/java/org/apache/karaf/instance/command/StartCommand.java
+++ b/instance/command/src/main/java/org/apache/karaf/instance/command/StartCommand.java
@@ -16,8 +16,10 @@
*/
package org.apache.karaf.instance.command;
+import org.apache.karaf.instance.command.completers.InstanceCompleter;
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.commands.Option;
import org.apache.karaf.instance.core.Instance;
@@ -34,6 +36,7 @@ public class StartCommand extends InstanceCommandSupport {
private boolean wait;
@Argument(index = 0, name = "name", description = "The name of the container instance", required = true, multiValued = false)
+ @Completer(InstanceCompleter.class)
private String instance = null;
static final String DEBUG_OPTS = " -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005";
http://git-wip-us.apache.org/repos/asf/karaf/blob/2a12fbb6/instance/command/src/main/java/org/apache/karaf/instance/command/StatusCommand.java
----------------------------------------------------------------------
diff --git a/instance/command/src/main/java/org/apache/karaf/instance/command/StatusCommand.java b/instance/command/src/main/java/org/apache/karaf/instance/command/StatusCommand.java
index d66580e..fce8d5f 100644
--- a/instance/command/src/main/java/org/apache/karaf/instance/command/StatusCommand.java
+++ b/instance/command/src/main/java/org/apache/karaf/instance/command/StatusCommand.java
@@ -16,15 +16,18 @@
*/
package org.apache.karaf.instance.command;
+import org.apache.karaf.instance.command.completers.InstanceCompleter;
import org.apache.karaf.instance.core.Instance;
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.commands.Option;
@Command(scope = "instance", name = "status", description = "Check the current status of an instance.")
public class StatusCommand extends InstanceCommandSupport {
@Argument(index = 0, name = "name", description = "The name of the instance", required = true, multiValued = false)
+ @Completer(InstanceCompleter.class)
private String name;
protected Object doExecute() throws Exception {
http://git-wip-us.apache.org/repos/asf/karaf/blob/2a12fbb6/instance/command/src/main/java/org/apache/karaf/instance/command/StopCommand.java
----------------------------------------------------------------------
diff --git a/instance/command/src/main/java/org/apache/karaf/instance/command/StopCommand.java b/instance/command/src/main/java/org/apache/karaf/instance/command/StopCommand.java
index b2c35fd..ad4cce5 100644
--- a/instance/command/src/main/java/org/apache/karaf/instance/command/StopCommand.java
+++ b/instance/command/src/main/java/org/apache/karaf/instance/command/StopCommand.java
@@ -16,13 +16,16 @@
*/
package org.apache.karaf.instance.command;
+import org.apache.karaf.instance.command.completers.InstanceCompleter;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Completer;
@Command(scope = "instance", name = "stop", description = "Stop an existing container instance.")
public class StopCommand extends InstanceCommandSupport {
@Argument(index = 0, name = "name", description = "The name of the container instance", required = true, multiValued = false)
+ @Completer(InstanceCompleter.class)
private String instance = null;
protected Object doExecute() throws Exception {
http://git-wip-us.apache.org/repos/asf/karaf/blob/2a12fbb6/instance/command/src/main/resources/OSGI-INF/blueprint/instance-command.xml
----------------------------------------------------------------------
diff --git a/instance/command/src/main/resources/OSGI-INF/blueprint/instance-command.xml b/instance/command/src/main/resources/OSGI-INF/blueprint/instance-command.xml
index d23b5b2..1db1a0e 100644
--- a/instance/command/src/main/resources/OSGI-INF/blueprint/instance-command.xml
+++ b/instance/command/src/main/resources/OSGI-INF/blueprint/instance-command.xml
@@ -25,19 +25,11 @@
<action class="org.apache.karaf.instance.command.CreateCommand">
<property name="instanceService" ref="instanceService" />
</action>
- <optional-completers>
- <entry key="-f" value-ref="allFeatureCompleter"/>
- <entry key="-furl" value-ref="featureUrlCompleter"/>
- </optional-completers>
</command>
<command>
<action class="org.apache.karaf.instance.command.ConnectCommand">
<property name="instanceService" ref="instanceService" />
</action>
- <completers>
- <ref component-id="instanceCompleter" />
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.instance.command.ListCommand">
@@ -48,107 +40,63 @@
<action class="org.apache.karaf.instance.command.StartCommand">
<property name="instanceService" ref="instanceService" />
</action>
- <completers>
- <ref component-id="instanceCompleter" />
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.instance.command.StopCommand">
<property name="instanceService" ref="instanceService" />
</action>
- <completers>
- <ref component-id="instanceCompleter" />
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.instance.command.DestroyCommand">
<property name="instanceService" ref="instanceService" />
</action>
- <completers>
- <ref component-id="instanceCompleter" />
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.instance.command.RenameCommand">
<property name="instanceService" ref="instanceService" />
</action>
- <completers>
- <ref component-id="instanceCompleter" />
- <null />
- </completers>
</command>
<command>
<action class="org.apache.karaf.instance.command.CloneCommand">
<property name="instanceService" ref="instanceService" />
</action>
- <completers>
- <ref component-id="instanceCompleter" />
- <null />
- </completers>
</command>
<command>
<action class="org.apache.karaf.instance.command.ChangeSshPortCommand">
<property name="instanceService" ref="instanceService" />
</action>
- <completers>
- <ref component-id="instanceCompleter" />
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.instance.command.ChangeRmiRegistryPortCommand">
<property name="instanceService" ref="instanceService" />
</action>
- <completers>
- <ref component-id="instanceCompleter" />
- <null />
- </completers>
</command>
<command>
<action class="org.apache.karaf.instance.command.ChangeRmiServerPortCommand">
<property name="instanceService" ref="instanceService" />
</action>
- <completers>
- <ref component-id="instanceCompleter" />
- <null />
- </completers>
</command>
<command>
<action class="org.apache.karaf.instance.command.ChangeOptsCommand">
<property name="instanceService" ref="instanceService" />
</action>
- <completers>
- <ref component-id="instanceCompleter" />
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.instance.command.StatusCommand">
<property name="instanceService" ref="instanceService" />
</action>
- <completers>
- <ref component-id="instanceCompleter" />
- <null/>
- </completers>
</command>
</command-bundle>
+ <!-- Services -->
+
<reference id="instanceService" interface="org.apache.karaf.instance.core.InstanceService" />
- <reference id="featuresService" interface="org.apache.karaf.features.FeaturesService" />
+
+ <!-- Completers -->
<bean id="instanceCompleter" class="org.apache.karaf.instance.command.completers.InstanceCompleter">
<property name="instanceService" ref="instanceService" />
</bean>
-
- <bean id="allFeatureCompleter" class="org.apache.karaf.features.command.completers.AllFeatureCompleter">
- <property name="featuresService" ref="featuresService" />
- </bean>
-
- <bean id="featureUrlCompleter" class="org.apache.karaf.features.command.completers.InstalledRepoUriCompleter">
- <property name="featuresService" ref="featuresService" />
- </bean>
+ <service ref="instanceCompleter" auto-export="all-classes"/>
</blueprint>
[04/15] git commit: [KARAF-2756] Define an annotation for completers
and retrieve them from the OSGi Service Registry
Posted by gn...@apache.org.
[KARAF-2756] Define an annotation for completers and retrieve them from the OSGi Service Registry
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/ec6c1ba3
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/ec6c1ba3
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/ec6c1ba3
Branch: refs/heads/master
Commit: ec6c1ba355556ddab7d0df9b7844aea0b6057f4b
Parents: d79376e
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Wed Feb 12 22:23:48 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Fri Feb 14 13:43:57 2014 +0100
----------------------------------------------------------------------
.../apache/karaf/shell/commands/Completer.java | 30 +++++++
.../console/completer/ArgumentCompleter.java | 93 ++++++++++++++++++--
2 files changed, 118 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/ec6c1ba3/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
new file mode 100644
index 0000000..6724dc6
--- /dev/null
+++ b/shell/console/src/main/java/org/apache/karaf/shell/commands/Completer.java
@@ -0,0 +1,30 @@
+/*
+ * 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.commands;
+
+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})
+public @interface Completer {
+
+ Class<? extends org.apache.karaf.shell.console.Completer> value();
+
+}
http://git-wip-us.apache.org/repos/asf/karaf/blob/ec6c1ba3/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 967edb4..1424bd6 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
@@ -43,6 +43,9 @@ import org.apache.karaf.shell.console.CommandSessionHolder;
import org.apache.karaf.shell.console.CompletableFunction;
import org.apache.karaf.shell.console.Completer;
import org.apache.karaf.shell.console.NameScoping;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -64,6 +67,7 @@ public class ArgumentCompleter implements Completer {
final Map<Option, Field> fields = new HashMap<Option, Field>();
final Map<String, Option> options = new HashMap<String, Option>();
final Map<Integer, Field> arguments = new HashMap<Integer, Field>();
+ final Map<Field, org.apache.karaf.shell.commands.Completer> completerAnnotations = new HashMap<Field, org.apache.karaf.shell.commands.Completer>();
boolean strict = true;
@SuppressWarnings({ "unchecked", "rawtypes" })
@@ -94,6 +98,12 @@ public class ArgumentCompleter implements Completer {
arguments.put(key, field);
}
}
+ if (option != null || argument != null) {
+ org.apache.karaf.shell.commands.Completer completer = field.getAnnotation(org.apache.karaf.shell.commands.Completer.class);
+ if (completer != null) {
+ completerAnnotations.put(field, completer);
+ }
+ }
}
}
options.put(HelpOption.HELP.name(), HelpOption.HELP);
@@ -102,14 +112,61 @@ public class ArgumentCompleter implements Completer {
argsCompleters = new ArrayList<Completer>();
if (function instanceof CompletableFunction) {
- optionalCompleters = ((CompletableFunction) function).getOptionalCompleters();
+ Map<String, Completer> focl = ((CompletableFunction) function).getOptionalCompleters();
List<Completer> fcl = ((CompletableFunction) function).getCompleters();
- if (fcl != null) {
- for (Completer c : fcl) {
- argsCompleters.add(c == null ? NullCompleter.INSTANCE : c);
+ if (focl == null && fcl == null) {
+ for (int key = 0; key < arguments.size(); key++) {
+ Completer completer = null;
+ Field field = arguments.get(key);
+ if (field != null) {
+ org.apache.karaf.shell.commands.Completer ann = completerAnnotations.get(field);
+ if (ann != null) {
+ Class clazz = ann.value();
+ if (clazz != null) {
+ BundleContext context = FrameworkUtil.getBundle(function.getClass()).getBundleContext();
+ completer = new ProxyServiceCompleter(context, clazz);
+ }
+ }
+ }
+ if (completer == null) {
+ completer = NullCompleter.INSTANCE;
+ }
+ argsCompleters.add(completer);
+ }
+ if (argsCompleters.isEmpty()) {
+ argsCompleters.add(NullCompleter.INSTANCE);
+ }
+ optionalCompleters = new HashMap<String, Completer>();
+ for (Option option : fields.keySet()) {
+ Completer completer = null;
+ Field field = fields.get(option);
+ if (field != null) {
+ org.apache.karaf.shell.commands.Completer ann = completerAnnotations.get(field);
+ if (ann != null) {
+ Class clazz = ann.value();
+ if (clazz != null) {
+ BundleContext context = FrameworkUtil.getBundle(function.getClass()).getBundleContext();
+ completer = new ProxyServiceCompleter(context, clazz);
+ }
+ }
+ }
+ if (completer == null) {
+ completer = NullCompleter.INSTANCE;
+ }
+ optionalCompleters.put(option.name(), completer);
+ if (option.aliases() != null) {
+ for (String alias : option.aliases()) {
+ optionalCompleters.put(alias, completer);
+ }
+ }
}
} else {
- argsCompleters.add(NullCompleter.INSTANCE);
+ if (fcl != null) {
+ for (Completer c : fcl) {
+ argsCompleters.add(c == null ? NullCompleter.INSTANCE : c);
+ }
+ }
+ optionalCompleters = focl;
}
} else {
optionalCompleters = new HashMap<String, Completer>();
@@ -454,4 +511,30 @@ public class ArgumentCompleter implements Completer {
return this.bufferPosition;
}
}
+
+ public static class ProxyServiceCompleter implements Completer {
+ private final BundleContext context;
+ private final Class<? extends Completer> clazz;
+
+ public ProxyServiceCompleter(BundleContext context, Class<? extends Completer> clazz) {
+ this.context = context;
+ this.clazz = clazz;
+ }
+
+ @Override
+ public int complete(String buffer, int cursor, List<String> candidates) {
+ ServiceReference<? extends Completer> ref = context.getServiceReference(clazz);
+ if (ref != null) {
+ Completer completer = context.getService(ref);
+ if (completer != null) {
+ try {
+ return completer.complete(buffer, cursor, candidates);
+ } finally {
+ context.ungetService(ref);
+ }
+ }
+ }
+ return -1;
+ }
+ }
}
[06/15] git commit: [KARAF-2756] Use @Completer for feature commands
Posted by gn...@apache.org.
[KARAF-2756] Use @Completer for feature commands
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/a7c642c0
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/a7c642c0
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/a7c642c0
Branch: refs/heads/master
Commit: a7c642c01fcf950a5ff9b084dd75923410282251
Parents: 61fc1b6
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Wed Feb 12 22:46:43 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Fri Feb 14 13:43:57 2014 +0100
----------------------------------------------------------------------
.../features/command/InfoFeatureCommand.java | 3 ++
.../features/command/InstallFeatureCommand.java | 3 ++
.../command/ListFeatureVersionsCommand.java | 3 ++
.../karaf/features/command/RepoAddCommand.java | 3 ++
.../features/command/RepoRefreshCommand.java | 3 ++
.../features/command/RepoRemoveCommand.java | 3 ++
.../command/UninstallFeatureCommand.java | 3 ++
.../OSGI-INF/blueprint/features-command.xml | 47 +++++++-------------
8 files changed, 37 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/a7c642c0/features/command/src/main/java/org/apache/karaf/features/command/InfoFeatureCommand.java
----------------------------------------------------------------------
diff --git a/features/command/src/main/java/org/apache/karaf/features/command/InfoFeatureCommand.java b/features/command/src/main/java/org/apache/karaf/features/command/InfoFeatureCommand.java
index 3286a2a..2b27dfe 100644
--- a/features/command/src/main/java/org/apache/karaf/features/command/InfoFeatureCommand.java
+++ b/features/command/src/main/java/org/apache/karaf/features/command/InfoFeatureCommand.java
@@ -22,8 +22,10 @@ import java.util.List;
import java.util.Map;
import org.apache.karaf.features.Conditional;
+import org.apache.karaf.features.command.completers.AllFeatureCompleter;
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.commands.Option;
import org.apache.karaf.features.BundleInfo;
import org.apache.karaf.features.ConfigFileInfo;
@@ -39,6 +41,7 @@ public class InfoFeatureCommand extends FeaturesCommandSupport {
private static final String CONDITIONAL_CONTENT = "Conditional(%s)";
@Argument(index = 0, name = "name", description = "The name of the feature", required = true, multiValued = false)
+ @Completer(AllFeatureCompleter.class)
private String name;
@Argument(index = 1, name = "version", description = "The version of the feature", required = false, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/a7c642c0/features/command/src/main/java/org/apache/karaf/features/command/InstallFeatureCommand.java
----------------------------------------------------------------------
diff --git a/features/command/src/main/java/org/apache/karaf/features/command/InstallFeatureCommand.java b/features/command/src/main/java/org/apache/karaf/features/command/InstallFeatureCommand.java
index 371ce2f..01d805f 100644
--- a/features/command/src/main/java/org/apache/karaf/features/command/InstallFeatureCommand.java
+++ b/features/command/src/main/java/org/apache/karaf/features/command/InstallFeatureCommand.java
@@ -19,6 +19,8 @@ package org.apache.karaf.features.command;
import java.util.EnumSet;
import java.util.List;
+import org.apache.karaf.features.command.completers.AvailableFeatureCompleter;
+import org.apache.karaf.shell.commands.Completer;
import org.apache.karaf.shell.commands.Option;
import org.apache.karaf.features.FeaturesService;
import org.apache.karaf.shell.commands.Argument;
@@ -30,6 +32,7 @@ public class InstallFeatureCommand extends FeaturesCommandSupport {
private static String DEFAULT_VERSION = "0.0.0";
@Argument(index = 0, name = "feature", description = "The name and version of the features to install. A feature id looks like name/version. The version is optional.", required = true, multiValued = true)
+ @Completer(AvailableFeatureCompleter.class)
List<String> features;
@Option(name = "-c", aliases = "--no-clean", description = "Do not uninstall bundles on failure", required = false, multiValued = false)
boolean noClean;
http://git-wip-us.apache.org/repos/asf/karaf/blob/a7c642c0/features/command/src/main/java/org/apache/karaf/features/command/ListFeatureVersionsCommand.java
----------------------------------------------------------------------
diff --git a/features/command/src/main/java/org/apache/karaf/features/command/ListFeatureVersionsCommand.java b/features/command/src/main/java/org/apache/karaf/features/command/ListFeatureVersionsCommand.java
index 9d09297..2ab942f 100644
--- a/features/command/src/main/java/org/apache/karaf/features/command/ListFeatureVersionsCommand.java
+++ b/features/command/src/main/java/org/apache/karaf/features/command/ListFeatureVersionsCommand.java
@@ -21,8 +21,10 @@ import java.util.Arrays;
import org.apache.karaf.features.Feature;
import org.apache.karaf.features.FeaturesService;
import org.apache.karaf.features.Repository;
+import org.apache.karaf.features.command.completers.AllFeatureCompleter;
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.commands.Option;
import org.apache.karaf.shell.table.ShellTable;
@@ -30,6 +32,7 @@ import org.apache.karaf.shell.table.ShellTable;
public class ListFeatureVersionsCommand extends FeaturesCommandSupport {
@Argument(index = 0, name = "feature", description = "Name of feature.", required = true, multiValued = false)
+ @Completer(AllFeatureCompleter.class)
String feature;
@Option(name = "--no-format", description = "Disable table rendered output", required = false, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/a7c642c0/features/command/src/main/java/org/apache/karaf/features/command/RepoAddCommand.java
----------------------------------------------------------------------
diff --git a/features/command/src/main/java/org/apache/karaf/features/command/RepoAddCommand.java b/features/command/src/main/java/org/apache/karaf/features/command/RepoAddCommand.java
index ede1376..f2fb614 100644
--- a/features/command/src/main/java/org/apache/karaf/features/command/RepoAddCommand.java
+++ b/features/command/src/main/java/org/apache/karaf/features/command/RepoAddCommand.java
@@ -19,8 +19,10 @@ package org.apache.karaf.features.command;
import java.net.URI;
import org.apache.karaf.features.FeaturesService;
+import org.apache.karaf.features.command.completers.AvailableRepoNameCompleter;
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.commands.Option;
import org.apache.karaf.shell.console.AbstractAction;
@@ -28,6 +30,7 @@ import org.apache.karaf.shell.console.AbstractAction;
public class RepoAddCommand extends AbstractAction {
@Argument(index = 0, name = "name/url", description = "Shortcut name of the features repository or the full URL", required = true, multiValued = false)
+ @Completer(AvailableRepoNameCompleter.class)
private String nameOrUrl;
@Argument(index = 1, name = "version", description = "The version of the features repository if using features repository name as first argument. It should be empty if using the URL", required = false, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/a7c642c0/features/command/src/main/java/org/apache/karaf/features/command/RepoRefreshCommand.java
----------------------------------------------------------------------
diff --git a/features/command/src/main/java/org/apache/karaf/features/command/RepoRefreshCommand.java b/features/command/src/main/java/org/apache/karaf/features/command/RepoRefreshCommand.java
index 0dfac1d..6e1bbb5 100644
--- a/features/command/src/main/java/org/apache/karaf/features/command/RepoRefreshCommand.java
+++ b/features/command/src/main/java/org/apache/karaf/features/command/RepoRefreshCommand.java
@@ -20,13 +20,16 @@ import java.net.URI;
import org.apache.karaf.features.FeaturesService;
import org.apache.karaf.features.Repository;
+import org.apache.karaf.features.command.completers.InstalledRepoUriCompleter;
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.AbstractAction;
@Command(scope = "feature", name = "repo-refresh", description = "Refresh a features repository")
public class RepoRefreshCommand extends AbstractAction {
@Argument(index = 0, name = "Feature name or uri", description = "Shortcut name of the feature repository or the full URI", required = false, multiValued = false)
+ @Completer(InstalledRepoUriCompleter.class)
private String nameOrUrl;
@Argument(index = 1, name = "Feature version", description = "The version of the feature if using the feature name. Should be empty if using the uri", required = false, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/a7c642c0/features/command/src/main/java/org/apache/karaf/features/command/RepoRemoveCommand.java
----------------------------------------------------------------------
diff --git a/features/command/src/main/java/org/apache/karaf/features/command/RepoRemoveCommand.java b/features/command/src/main/java/org/apache/karaf/features/command/RepoRemoveCommand.java
index 6801d16..a82f0f9 100644
--- a/features/command/src/main/java/org/apache/karaf/features/command/RepoRemoveCommand.java
+++ b/features/command/src/main/java/org/apache/karaf/features/command/RepoRemoveCommand.java
@@ -18,8 +18,10 @@ package org.apache.karaf.features.command;
import java.net.URI;
+import org.apache.karaf.features.command.completers.InstalledRepoNameCompleter;
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.commands.Option;
import org.apache.karaf.features.FeaturesService;
import org.apache.karaf.features.Repository;
@@ -28,6 +30,7 @@ import org.apache.karaf.features.Repository;
public class RepoRemoveCommand extends FeaturesCommandSupport {
@Argument(index = 0, name = "repository", description = "Name or url of the repository to remove.", required = true, multiValued = false)
+ @Completer(InstalledRepoNameCompleter.class)
private String repository;
@Option(name = "-u", aliases = { "--uninstall-all" }, description = "Uninstall all features from the repository", required = false, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/a7c642c0/features/command/src/main/java/org/apache/karaf/features/command/UninstallFeatureCommand.java
----------------------------------------------------------------------
diff --git a/features/command/src/main/java/org/apache/karaf/features/command/UninstallFeatureCommand.java b/features/command/src/main/java/org/apache/karaf/features/command/UninstallFeatureCommand.java
index cc25943..5c7795a 100644
--- a/features/command/src/main/java/org/apache/karaf/features/command/UninstallFeatureCommand.java
+++ b/features/command/src/main/java/org/apache/karaf/features/command/UninstallFeatureCommand.java
@@ -16,9 +16,11 @@
*/
package org.apache.karaf.features.command;
+import org.apache.karaf.features.command.completers.InstalledFeatureCompleter;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.commands.Command;
import org.apache.karaf.features.FeaturesService;
+import org.apache.karaf.shell.commands.Completer;
import java.util.List;
@@ -26,6 +28,7 @@ import java.util.List;
public class UninstallFeatureCommand extends FeaturesCommandSupport {
@Argument(index = 0, name = "features", description = "The name and version of the features to uninstall. A feature id looks like name/version. The version is optional.", required = true, multiValued = true)
+ @Completer(InstalledFeatureCompleter.class)
List<String> features;
protected void doExecute(FeaturesService admin) throws Exception {
http://git-wip-us.apache.org/repos/asf/karaf/blob/a7c642c0/features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml
----------------------------------------------------------------------
diff --git a/features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml b/features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml
index 799a5b6..9b4afb3 100644
--- a/features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml
+++ b/features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml
@@ -19,72 +19,47 @@
-->
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy">
+ <!-- Commands -->
+
<command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0">
<command>
<action class="org.apache.karaf.features.command.RepoListCommand"/>
</command>
<command>
<action class="org.apache.karaf.features.command.RepoRemoveCommand"/>
- <completers>
- <ref component-id="installedRepoNameCompleter" />
- </completers>
</command>
<command>
<action class="org.apache.karaf.features.command.RepoAddCommand">
<property name="featureFinder" ref="featureFinder" />
<property name="featuresService" ref="featuresService" />
</action>
- <completers>
- <ref component-id="availableRepoNameCompleter" />
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.features.command.RepoRefreshCommand">
<property name="featureFinder" ref="featureFinder" />
<property name="featuresService" ref="featuresService" />
</action>
- <completers>
- <ref component-id="installedRepoUriCompleter" />
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.features.command.InstallFeatureCommand"/>
- <completers>
- <ref component-id="uninstalledFeatureCompleter" />
- </completers>
</command>
<command>
<action class="org.apache.karaf.features.command.UninstallFeatureCommand"/>
- <completers>
- <ref component-id="installedFeatureCompleter" />
- </completers>
</command>
<command>
<action class="org.apache.karaf.features.command.ListFeaturesCommand"/>
</command>
<command>
<action class="org.apache.karaf.features.command.ListFeatureVersionsCommand"/>
- <completers>
- <ref component-id="allFeatureCompleter" />
- </completers>
</command>
<command>
<action class="org.apache.karaf.features.command.InfoFeatureCommand"/>
- <completers>
- <ref component-id="allFeatureCompleter" />
- </completers>
</command>
</command-bundle>
- <bean id="availableRepoNameCompleter" class="org.apache.karaf.features.command.completers.AvailableRepoNameCompleter">
- <property name="featureFinder" ref="featureFinder" />
- </bean>
-
- <bean id="featureFinder" class="org.apache.karaf.features.command.FeatureFinder">
- </bean>
+ <!-- Services -->
+ <bean id="featureFinder" class="org.apache.karaf.features.command.FeatureFinder"/>
<service ref="featureFinder" interface="org.osgi.service.cm.ManagedService" >
<service-properties>
<entry key="service.pid" value="org.apache.karaf.features.repos" />
@@ -93,27 +68,37 @@
<reference id="featuresService" interface="org.apache.karaf.features.FeaturesService" />
+ <!-- Completers -->
+
+ <bean id="availableRepoNameCompleter" class="org.apache.karaf.features.command.completers.AvailableRepoNameCompleter">
+ <property name="featureFinder" ref="featureFinder" />
+ </bean>
+ <service ref="availableRepoNameCompleter" auto-export="all-classes"/>
+
<bean id="uninstalledFeatureCompleter" class="org.apache.karaf.features.command.completers.AvailableFeatureCompleter">
<property name="featuresService" ref="featuresService" />
</bean>
+ <service ref="uninstalledFeatureCompleter" auto-export="all-classes"/>
<bean id="installedFeatureCompleter" class="org.apache.karaf.features.command.completers.InstalledFeatureCompleter">
<property name="featuresService" ref="featuresService" />
</bean>
+ <service ref="installedFeatureCompleter" auto-export="all-classes"/>
<bean id="allFeatureCompleter" class="org.apache.karaf.features.command.completers.AllFeatureCompleter">
<property name="featuresService" ref="featuresService" />
</bean>
+ <service ref="allFeatureCompleter" auto-export="all-classes"/>
<bean id="installedRepoUriCompleter" class="org.apache.karaf.features.command.completers.InstalledRepoUriCompleter">
<property name="featuresService" ref="featuresService" />
</bean>
+ <service ref="installedRepoUriCompleter" auto-export="all-classes"/>
<bean id="installedRepoNameCompleter" class="org.apache.karaf.features.command.completers.InstalledRepoNameCompleter">
<property name="featuresService" ref="featuresService"/>
</bean>
-
- <service ref="installedRepoNameCompleter" interface="org.apache.karaf.shell.console.Completer">
+ <service ref="installedRepoNameCompleter" auto-export="all-classes">
<service-properties>
<entry key="name" value="installedRepoNameCompleter"/>
</service-properties>
[09/15] git commit: [KARAF-2756] Use @Completer for jaas commands
Posted by gn...@apache.org.
[KARAF-2756] Use @Completer for jaas commands
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/bdb8f07c
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/bdb8f07c
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/bdb8f07c
Branch: refs/heads/master
Commit: bdb8f07c17687102ffb48a84f50401c23cbf9e61
Parents: edfae48
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Thu Feb 13 14:42:07 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Fri Feb 14 13:43:57 2014 +0100
----------------------------------------------------------------------
.../org/apache/karaf/jaas/command/ManageRealmCommand.java | 5 +++++
.../src/main/resources/OSGI-INF/blueprint/jaas-command.xml | 9 +++------
2 files changed, 8 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/bdb8f07c/jaas/command/src/main/java/org/apache/karaf/jaas/command/ManageRealmCommand.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/ManageRealmCommand.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/ManageRealmCommand.java
index 89b5195..24d0646 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/ManageRealmCommand.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/ManageRealmCommand.java
@@ -16,7 +16,10 @@
package org.apache.karaf.jaas.command;
import org.apache.karaf.jaas.boot.ProxyLoginModule;
+import org.apache.karaf.jaas.command.completers.LoginModuleNameCompleter;
+import org.apache.karaf.jaas.command.completers.RealmCompleter;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Completer;
import org.apache.karaf.shell.commands.Option;
import org.apache.karaf.jaas.config.JaasRealm;
import org.apache.karaf.jaas.modules.BackingEngine;
@@ -30,12 +33,14 @@ import java.util.Queue;
public class ManageRealmCommand extends JaasCommandSupport {
@Option(name = "--realm", description = "JAAS Realm", required = false, multiValued = false)
+ @Completer(RealmCompleter.class)
String realmName;
@Option(name = "--index", description = "Realm Index", required = false, multiValued = false)
int index;
@Option(name = "--module", description = "JAAS Login Module Class Name", required = false, multiValued = false)
+ @Completer(LoginModuleNameCompleter.class)
String moduleName;
@Option(name = "-f", aliases = { "--force" }, description = "Force the management of this realm, even if another one was under management", required = false, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/bdb8f07c/jaas/command/src/main/resources/OSGI-INF/blueprint/jaas-command.xml
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/resources/OSGI-INF/blueprint/jaas-command.xml b/jaas/command/src/main/resources/OSGI-INF/blueprint/jaas-command.xml
index 9767676..cf5ea15 100644
--- a/jaas/command/src/main/resources/OSGI-INF/blueprint/jaas-command.xml
+++ b/jaas/command/src/main/resources/OSGI-INF/blueprint/jaas-command.xml
@@ -24,11 +24,6 @@
<action class="org.apache.karaf.jaas.command.ManageRealmCommand">
<property name="realms" ref="realms"/>
</action>
- <completers>
- <ref component-id="realmCompleter" />
- <ref component-id="moduleClassNameCompleter" />
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.jaas.command.UpdateCommand">
@@ -93,9 +88,11 @@
<bean id="realmCompleter" class="org.apache.karaf.jaas.command.completers.RealmCompleter">
<property name="realms" ref="realms"/>
</bean>
+ <service ref="realmCompleter" auto-export="all-classes"/>
- <bean id="moduleClassNameCompleter" class="org.apache.karaf.jaas.command.completers.LoginModuleNameCompleter">
+ <bean id="loginModuleNameCompleter" class="org.apache.karaf.jaas.command.completers.LoginModuleNameCompleter">
<property name="realms" ref="realms"/>
</bean>
+ <service ref="loginModuleNameCompleter" auto-export="all-classes"/>
</blueprint>
[08/15] git commit: [KARAF-2756] Use @Completer for log commands
Posted by gn...@apache.org.
[KARAF-2756] Use @Completer for log commands
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/83042cf7
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/83042cf7
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/83042cf7
Branch: refs/heads/master
Commit: 83042cf71b799b1d4401d42eb5ba0f5d7a4f3635
Parents: 334121e
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Thu Feb 13 15:09:15 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Fri Feb 14 13:43:57 2014 +0100
----------------------------------------------------------------------
.../org/apache/karaf/log/command/LogEntry.java | 3 +
.../apache/karaf/log/command/SetLogLevel.java | 3 +
.../command/completers/LogLevelCompleter.java | 43 -------------
.../resources/OSGI-INF/blueprint/shell-log.xml | 21 -------
.../completers/LogLevelCompleterTest.java | 65 --------------------
5 files changed, 6 insertions(+), 129 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/83042cf7/log/command/src/main/java/org/apache/karaf/log/command/LogEntry.java
----------------------------------------------------------------------
diff --git a/log/command/src/main/java/org/apache/karaf/log/command/LogEntry.java b/log/command/src/main/java/org/apache/karaf/log/command/LogEntry.java
index 05062e8..4bb53d0 100644
--- a/log/command/src/main/java/org/apache/karaf/log/command/LogEntry.java
+++ b/log/command/src/main/java/org/apache/karaf/log/command/LogEntry.java
@@ -18,8 +18,10 @@ package org.apache.karaf.log.command;
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.commands.Option;
import org.apache.karaf.shell.console.AbstractAction;
+import org.apache.karaf.shell.console.completer.StringsCompleter;
import org.osgi.service.log.LogService;
import java.util.HashMap;
@@ -32,6 +34,7 @@ public class LogEntry extends AbstractAction {
private String message;
@Option(name = "--level", aliases = {"-l"}, description = "The level the message will be logged at", required = false, multiValued = false)
+ @Completer(value = StringsCompleter.class, values = { "DEBUG", "INFO", "WARNING", "ERROR" })
private String level = "INFO";
private LogService logService;
http://git-wip-us.apache.org/repos/asf/karaf/blob/83042cf7/log/command/src/main/java/org/apache/karaf/log/command/SetLogLevel.java
----------------------------------------------------------------------
diff --git a/log/command/src/main/java/org/apache/karaf/log/command/SetLogLevel.java b/log/command/src/main/java/org/apache/karaf/log/command/SetLogLevel.java
index 03e5576..ae41b7d 100644
--- a/log/command/src/main/java/org/apache/karaf/log/command/SetLogLevel.java
+++ b/log/command/src/main/java/org/apache/karaf/log/command/SetLogLevel.java
@@ -18,6 +18,8 @@ package org.apache.karaf.log.command;
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.completer.StringsCompleter;
/**
* Set the log level for a given logger
@@ -26,6 +28,7 @@ import org.apache.karaf.shell.commands.Command;
public class SetLogLevel extends LogCommandSupport {
@Argument(index = 0, name = "level", description = "The log level to set (TRACE, DEBUG, INFO, WARN, ERROR) or DEFAULT to unset", required = true, multiValued = false)
+ @Completer(value = StringsCompleter.class, values = { "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "DEFAULT" })
String level;
@Argument(index = 1, name = "logger", description = "Logger name or ROOT (default)", required = false, multiValued = false)
http://git-wip-us.apache.org/repos/asf/karaf/blob/83042cf7/log/command/src/main/java/org/apache/karaf/log/command/completers/LogLevelCompleter.java
----------------------------------------------------------------------
diff --git a/log/command/src/main/java/org/apache/karaf/log/command/completers/LogLevelCompleter.java b/log/command/src/main/java/org/apache/karaf/log/command/completers/LogLevelCompleter.java
deleted file mode 100644
index 7cd396e..0000000
--- a/log/command/src/main/java/org/apache/karaf/log/command/completers/LogLevelCompleter.java
+++ /dev/null
@@ -1,43 +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.log.command.completers;
-
-import java.util.List;
-
-import org.apache.karaf.log.core.Level;
-import org.apache.karaf.shell.console.Completer;
-import org.apache.karaf.shell.console.completer.StringsCompleter;
-
-/**
- * {@link Completer} implementation for completing log levels
- */
-public class LogLevelCompleter extends StringsCompleter {
-
- public LogLevelCompleter() {
- super(Level.strings());
- }
-
- @Override
- public int complete(String buffer, int cursor, @SuppressWarnings("rawtypes") List candidates) {
- if (buffer == null) {
- return super.complete(null, cursor, candidates);
- } else {
- // support completing lower case as well with the toUpperCase() call
- return super.complete(buffer.toUpperCase(), cursor, candidates);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/karaf/blob/83042cf7/log/command/src/main/resources/OSGI-INF/blueprint/shell-log.xml
----------------------------------------------------------------------
diff --git a/log/command/src/main/resources/OSGI-INF/blueprint/shell-log.xml b/log/command/src/main/resources/OSGI-INF/blueprint/shell-log.xml
index 59905ba..0b94658 100644
--- a/log/command/src/main/resources/OSGI-INF/blueprint/shell-log.xml
+++ b/log/command/src/main/resources/OSGI-INF/blueprint/shell-log.xml
@@ -47,10 +47,6 @@
<action class="org.apache.karaf.log.command.SetLogLevel" >
<property name="logService" ref="logService" />
</action>
- <completers>
- <ref component-id="logLevelCompleter"/>
- <null/>
- </completers>
</command>
<command>
<action class="org.apache.karaf.log.command.LogTail">
@@ -62,28 +58,11 @@
<action class="org.apache.karaf.log.command.LogEntry">
<argument ref="osgiLogService" />
</action>
- <optional-completers>
- <entry key="--level" value-ref="osgiLogLevelsCompleter"/>
- </optional-completers>
</command>
</command-bundle>
- <bean id="osgiLogLevelsCompleter" class="org.apache.karaf.shell.console.completer.StringsCompleter">
- <argument type="java.util.Collection" >
- <list>
- <value>WARNING</value>
- <value>DEBUG</value>
- <value>INFO</value>
- <value>ERROR</value>
- </list>
- </argument>
- <argument value="false" />
- </bean>
-
<reference id="formatter" interface="org.apache.karaf.log.core.LogEventFormatter"/>
<reference id="logService" interface="org.apache.karaf.log.core.LogService"/>
<reference id="osgiLogService" interface="org.osgi.service.log.LogService"/>
- <bean id="logLevelCompleter" class="org.apache.karaf.log.command.completers.LogLevelCompleter"/>
-
</blueprint>
http://git-wip-us.apache.org/repos/asf/karaf/blob/83042cf7/log/command/src/test/java/org/apache/karaf/log/command/completers/LogLevelCompleterTest.java
----------------------------------------------------------------------
diff --git a/log/command/src/test/java/org/apache/karaf/log/command/completers/LogLevelCompleterTest.java b/log/command/src/test/java/org/apache/karaf/log/command/completers/LogLevelCompleterTest.java
deleted file mode 100644
index f81c115..0000000
--- a/log/command/src/test/java/org/apache/karaf/log/command/completers/LogLevelCompleterTest.java
+++ /dev/null
@@ -1,65 +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.log.command.completers;
-
-import java.util.LinkedList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.apache.karaf.log.core.Level;
-
-/**
- * Test cases for {@link LogLevelCompleter}
- */
-public class LogLevelCompleterTest extends TestCase {
-
- private final LogLevelCompleter completer = new LogLevelCompleter();
-
- public void testComplete() throws Exception {
- assertCompletions("I", Level.INFO.name());
- assertCompletions("D", Level.DEBUG.name(), Level.DEFAULT.name());
- }
-
- public void testCompleteLowerCase() throws Exception {
- assertCompletions("i", Level.INFO.name());
- assertCompletions("d", Level.DEBUG.name(), Level.DEFAULT.name());
- }
-
- public void testCompleteWithNullBuffer() throws Exception {
- // an empty buffer should return all available options
- assertCompletions(null, Level.strings());
- }
-
- private void assertCompletions(String buffer, String... results) {
- List<String> candidates = new LinkedList<String>();
- assertEquals("Completer should have found a match", 0, completer.complete(buffer, 0, candidates));
- assertEquals(results.length, candidates.size());
- for (String result : results) {
- assertContains(result, candidates);
- }
- }
-
- private void assertContains(String value, List<String> values) {
- for (String element : values) {
- if (value.trim().equals(element.trim())) {
- return;
- }
- }
- fail("Element " + value + " not found in array");
- }
-}