You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2014/03/05 23:25:20 UTC
[1/6] git commit: [KARAF-2805] Fix injection for multiple services
Repository: karaf
Updated Branches:
refs/heads/master 2e2b9324d -> d2249e439
[KARAF-2805] Fix injection for multiple services
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/1c29cbc9
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/1c29cbc9
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/1c29cbc9
Branch: refs/heads/master
Commit: 1c29cbc94ba0a6e891c2da6a4fe13f05c18b38dd
Parents: 2e2b932
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Wed Mar 5 18:32:32 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Wed Mar 5 18:32:32 2014 +0100
----------------------------------------------------------------------
.../shell/impl/action/command/ManagerImpl.java | 11 +-
.../action/osgi/AggregateServiceTracker.java | 131 ++++++++++++++++++
.../impl/action/osgi/CommandExtension.java | 36 +++--
.../impl/action/osgi/MultiServiceTracker.java | 138 ++++++++++++-------
.../shell/impl/action/osgi/RegistryImpl.java | 20 ++-
5 files changed, 266 insertions(+), 70 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/1c29cbc9/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ManagerImpl.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ManagerImpl.java b/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ManagerImpl.java
index 611ecab..5498d2d 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ManagerImpl.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ManagerImpl.java
@@ -20,9 +20,12 @@ package org.apache.karaf.shell.impl.action.command;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import org.apache.karaf.shell.api.action.Action;
import org.apache.karaf.shell.api.action.Command;
@@ -71,10 +74,12 @@ public class ManagerImpl implements Manager {
GenericType type = new GenericType(field.getGenericType());
Object value;
if (type.getRawClass() == List.class) {
- value = registry.getServices(type.getActualTypeArgument(0).getRawClass());
- if (value == null && registry != this.dependencies) {
- value = this.dependencies.getServices(type.getActualTypeArgument(0).getRawClass());
+ Set<Object> set = new HashSet<Object>();
+ set.addAll(registry.getServices(type.getActualTypeArgument(0).getRawClass()));
+ if (registry != this.dependencies) {
+ set.addAll(this.dependencies.getServices(type.getActualTypeArgument(0).getRawClass()));
}
+ value = new ArrayList<Object>(set);
} else {
value = registry.getService(type.getRawClass());
if (value == null && registry != this.dependencies) {
http://git-wip-us.apache.org/repos/asf/karaf/blob/1c29cbc9/shell/core/src/main/java/org/apache/karaf/shell/impl/action/osgi/AggregateServiceTracker.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/impl/action/osgi/AggregateServiceTracker.java b/shell/core/src/main/java/org/apache/karaf/shell/impl/action/osgi/AggregateServiceTracker.java
new file mode 100644
index 0000000..e36b260
--- /dev/null
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/action/osgi/AggregateServiceTracker.java
@@ -0,0 +1,131 @@
+/*
+ * 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.impl.action.osgi;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.osgi.framework.BundleContext;
+
+/**
+ * Track multiple services by their type
+ */
+public class AggregateServiceTracker implements Satisfiable {
+
+ private final BundleContext bundleContext;
+ private final Satisfiable satisfiable;
+ private final ConcurrentMap<Class, SingleServiceTracker> singleTrackers = new ConcurrentHashMap<Class, SingleServiceTracker>();
+ private final ConcurrentMap<Class, MultiServiceTracker> multiTrackers = new ConcurrentHashMap<Class, MultiServiceTracker>();
+ private final AtomicInteger count = new AtomicInteger(-1);
+
+ public AggregateServiceTracker(BundleContext bundleContext, Satisfiable satisfiable) {
+ this.bundleContext = bundleContext;
+ this.satisfiable = satisfiable;
+ }
+
+ @SuppressWarnings("unchecked")
+ public void track(Class service, boolean multiple) {
+ if (multiple) {
+ if (multiTrackers.get(service) == null) {
+ MultiServiceTracker tracker = new MultiServiceTracker(bundleContext, service, this);
+ multiTrackers.put(service, tracker);
+ }
+ } else {
+ if (singleTrackers.get(service) == null) {
+ SingleServiceTracker tracker = new SingleServiceTracker(bundleContext, service, this);
+ singleTrackers.putIfAbsent(service, tracker);
+ }
+ }
+ }
+
+ public <T> T getService(Class<T> clazz) {
+ SingleServiceTracker tracker = singleTrackers.get(clazz);
+ return tracker != null ? clazz.cast(tracker.getService()) : null;
+ }
+
+ @SuppressWarnings("unchecked")
+ public <T> List<T> getServices(Class<T> clazz) {
+ MultiServiceTracker tracker = multiTrackers.get(clazz);
+ return tracker != null ? tracker.getServices() : null;
+ }
+
+ public void open() {
+ for (SingleServiceTracker tracker : singleTrackers.values()) {
+ tracker.open();
+ }
+ for (MultiServiceTracker tracker : multiTrackers.values()) {
+ tracker.open();
+ }
+ found();
+ }
+
+ public void close() {
+ lost();
+ for (MultiServiceTracker tracker : multiTrackers.values()) {
+ tracker.close();
+ }
+ for (SingleServiceTracker tracker : singleTrackers.values()) {
+ tracker.close();
+ }
+ }
+
+ public boolean isSatisfied() {
+ return count.get() == singleTrackers.size() + multiTrackers.size();
+ }
+
+ public List<String> getMissingServices() {
+ List<String> missing = new ArrayList<String>();
+ for (SingleServiceTracker tracker : singleTrackers.values()) {
+ if (!tracker.isSatisfied()) {
+ missing.add(tracker.getClassName());
+ }
+ }
+ for (MultiServiceTracker tracker : multiTrackers.values()) {
+ if (!tracker.isSatisfied()) {
+ missing.add("List<" + tracker.getClassName() + ">");
+ }
+ }
+ return missing;
+ }
+
+ @Override
+ public void found() {
+ if (count.incrementAndGet() == singleTrackers.size() + multiTrackers.size()) {
+ satisfiable.found();
+ }
+ }
+
+ @Override
+ public void updated() {
+ if (count.get() == singleTrackers.size() + multiTrackers.size()) {
+ satisfiable.updated();
+ }
+ }
+
+ @Override
+ public void lost() {
+ if (count.getAndDecrement() == singleTrackers.size() + multiTrackers.size()) {
+ satisfiable.lost();
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/karaf/blob/1c29cbc9/shell/core/src/main/java/org/apache/karaf/shell/impl/action/osgi/CommandExtension.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/impl/action/osgi/CommandExtension.java b/shell/core/src/main/java/org/apache/karaf/shell/impl/action/osgi/CommandExtension.java
index b1a953b..865933f 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/impl/action/osgi/CommandExtension.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/action/osgi/CommandExtension.java
@@ -55,7 +55,7 @@ public class CommandExtension implements Extension, Satisfiable {
private final ManagerImpl manager;
private final Registry registry;
private final CountDownLatch started;
- private final MultiServiceTracker tracker;
+ private final AggregateServiceTracker tracker;
private final List<Satisfiable> satisfiables = new ArrayList<Satisfiable>();
@@ -66,7 +66,7 @@ public class CommandExtension implements Extension, Satisfiable {
this.manager = new ManagerImpl(this.registry, registry);
this.registry.register(this.manager);
this.started = new CountDownLatch(1);
- this.tracker = new MultiServiceTracker(bundle.getBundleContext(), this);
+ this.tracker = new AggregateServiceTracker(bundle.getBundleContext(), this);
}
@Override
@@ -142,7 +142,7 @@ public class CommandExtension implements Extension, Satisfiable {
for (Class<?> cl = clazz; cl != Object.class; cl = cl.getSuperclass()) {
for (Field field : cl.getDeclaredFields()) {
if (field.getAnnotation(Reference.class) != null) {
- GenericType type = new GenericType(field.getType());
+ GenericType type = new GenericType(field.getGenericType());
Class clazzRef = type.getRawClass() == List.class ? type.getActualTypeArgument(0).getRawClass() : type.getRawClass();
if (clazzRef != BundleContext.class
&& clazzRef != Session.class
@@ -151,7 +151,7 @@ public class CommandExtension implements Extension, Satisfiable {
&& clazzRef != Registry.class
&& clazzRef != SessionFactory.class
&& !registry.hasService(clazzRef)) {
- track(clazzRef);
+ track(type);
}
}
}
@@ -159,14 +159,26 @@ public class CommandExtension implements Extension, Satisfiable {
satisfiables.add(new AutoRegister(clazz));
}
- protected void track(final Class clazzRef) {
- tracker.track(clazzRef);
- registry.register(new Callable() {
- @Override
- public Object call() throws Exception {
- return tracker.getService(clazzRef);
- }
- }, clazzRef);
+ protected void track(final GenericType type) {
+ if (type.getRawClass() == List.class) {
+ final Class clazzRef = type.getActualTypeArgument(0).getRawClass();
+ tracker.track(clazzRef, true);
+ registry.register(new Callable() {
+ @Override
+ public Object call() throws Exception {
+ return tracker.getServices(clazzRef);
+ }
+ }, clazzRef);
+ } else {
+ final Class clazzRef = type.getRawClass();
+ tracker.track(clazzRef, false);
+ registry.register(new Callable() {
+ @Override
+ public Object call() throws Exception {
+ return tracker.getService(clazzRef);
+ }
+ }, clazzRef);
+ }
}
public class AutoRegister implements Satisfiable {
http://git-wip-us.apache.org/repos/asf/karaf/blob/1c29cbc9/shell/core/src/main/java/org/apache/karaf/shell/impl/action/osgi/MultiServiceTracker.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/impl/action/osgi/MultiServiceTracker.java b/shell/core/src/main/java/org/apache/karaf/shell/impl/action/osgi/MultiServiceTracker.java
index a762957..1b918b9 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/impl/action/osgi/MultiServiceTracker.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/action/osgi/MultiServiceTracker.java
@@ -20,87 +20,121 @@ package org.apache.karaf.shell.impl.action.osgi;
import java.util.ArrayList;
import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.atomic.AtomicBoolean;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+import org.osgi.framework.Filter;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceEvent;
+import org.osgi.framework.ServiceListener;
+import org.osgi.framework.ServiceReference;
/**
- * Track multiple services by their type
+ * Track multiple service by its type.
+ *
+ * @param <T>
*/
-public class MultiServiceTracker implements Satisfiable {
+public final class MultiServiceTracker<T> {
- private final BundleContext bundleContext;
- private final Satisfiable satisfiable;
- private final ConcurrentMap<Class, SingleServiceTracker> trackers = new ConcurrentHashMap<Class, SingleServiceTracker>();
- private final AtomicInteger count = new AtomicInteger(-1);
+ private final BundleContext ctx;
+ private final String className;
+ private final List<T> services = new CopyOnWriteArrayList<T>();
+ private final List<ServiceReference> refs = new CopyOnWriteArrayList<ServiceReference>();
+ private final AtomicBoolean open = new AtomicBoolean(false);
+ private final Satisfiable serviceListener;
+ private Filter filter;
- public MultiServiceTracker(BundleContext bundleContext, Satisfiable satisfiable) {
- this.bundleContext = bundleContext;
- this.satisfiable = satisfiable;
+ private final ServiceListener listener = new ServiceListener() {
+ public void serviceChanged(ServiceEvent event) {
+ if (open.get()) {
+ if (event.getType() == ServiceEvent.UNREGISTERING) {
+ removeRef(event.getServiceReference());
+ } else if (event.getType() == ServiceEvent.REGISTERED) {
+ addRef(event.getServiceReference());
+ }
+ }
+ }
+ };
+
+ public MultiServiceTracker(BundleContext context, Class<T> clazz, Satisfiable sl) {
+ ctx = context;
+ this.className = clazz.getName();
+ serviceListener = sl;
}
- @SuppressWarnings("unchecked")
- public void track(Class service) {
- if (trackers.get(service) == null) {
- SingleServiceTracker tracker = new SingleServiceTracker(bundleContext, service, this);
- trackers.putIfAbsent(service, tracker);
- }
+ public List<T> getServices() {
+ return services;
}
- public <T> T getService(Class<T> clazz) {
- SingleServiceTracker tracker = trackers.get(clazz);
- return tracker != null ? clazz.cast(tracker.getService()) : null;
+ public List<ServiceReference> getServiceReferences() {
+ return refs;
}
public void open() {
- for (SingleServiceTracker tracker : trackers.values()) {
- tracker.open();
+ if (open.compareAndSet(false, true)) {
+ try {
+ String filterString = '(' + Constants.OBJECTCLASS + '=' + className + ')';
+ if (filter != null) filterString = "(&" + filterString + filter + ')';
+ ctx.addServiceListener(listener, filterString);
+ ServiceReference[] refs = ctx.getServiceReferences(className, filter != null ? filter.toString() : null);
+ if (refs != null) {
+ for (ServiceReference ref : refs) {
+ addRef(ref);
+ }
+ }
+ } catch (InvalidSyntaxException e) {
+ // this can never happen. (famous last words :)
+ }
+ serviceListener.found();
}
- found();
}
- public void close() {
- lost();
- for (SingleServiceTracker tracker : trackers.values()) {
- tracker.close();
+ private void addRef(ServiceReference ref) {
+ T service = (T) ctx.getService(ref);
+ synchronized (refs) {
+ if (refs.add(ref)) {
+ services.add(service);
+ return;
+ }
}
+ ctx.ungetService(ref);
+ serviceListener.updated();
}
- public boolean isSatisfied() {
- return count.get() == trackers.size();
- }
-
- public List<String> getMissingServices() {
- List<String> missing = new ArrayList<String>();
- for (SingleServiceTracker tracker : trackers.values()) {
- if (!tracker.isSatisfied()) {
- missing.add(tracker.getClassName());
+ private void removeRef(ServiceReference ref) {
+ synchronized (refs) {
+ if (!refs.remove(ref)) {
+ return;
}
}
- return missing;
+ ctx.ungetService(ref);
+ serviceListener.updated();
}
- @Override
- public void found() {
- if (count.incrementAndGet() == trackers.size()) {
- satisfiable.found();
+ public void close() {
+ if (open.compareAndSet(true, false)) {
+ ctx.removeServiceListener(listener);
+
+ List<ServiceReference> oldRefs;
+ synchronized (refs) {
+ oldRefs = new ArrayList<ServiceReference>(refs);
+ refs.clear();
+ services.clear();
+ }
+ for (ServiceReference ref : oldRefs) {
+ ctx.ungetService(ref);
+ }
}
}
- @Override
- public void updated() {
- if (count.get() == trackers.size()) {
- satisfiable.updated();
- }
+ public boolean isSatisfied() {
+ return true;
}
- @Override
- public void lost() {
- if (count.getAndDecrement() == trackers.size()) {
- satisfiable.lost();
- }
+ public String getClassName() {
+ return className;
}
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/1c29cbc9/shell/core/src/main/java/org/apache/karaf/shell/impl/action/osgi/RegistryImpl.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/impl/action/osgi/RegistryImpl.java b/shell/core/src/main/java/org/apache/karaf/shell/impl/action/osgi/RegistryImpl.java
index 38b56ed..38f750a 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/impl/action/osgi/RegistryImpl.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/action/osgi/RegistryImpl.java
@@ -44,7 +44,7 @@ public class RegistryImpl implements Registry {
@Override
public <T> void register(Callable<T> factory, Class<T> clazz) {
synchronized (services) {
- services.put(factory, new Factory<T>(clazz, factory));
+ services.put(clazz, new Factory<T>(clazz, factory));
}
}
@@ -70,7 +70,14 @@ public class RegistryImpl implements Registry {
if (clazz.isAssignableFrom(((Factory) service).clazz)) {
if (isVisible(service)) {
try {
- return clazz.cast(((Factory) service).callable.call());
+ Object value = ((Factory) service).callable.call();
+ if (value instanceof List) {
+ for (Object v : (List) value) {
+ return clazz.cast(v);
+ }
+ } else {
+ return clazz.cast(value);
+ }
} catch (Exception e) {
// TODO: log exception
}
@@ -98,7 +105,14 @@ public class RegistryImpl implements Registry {
if (clazz.isAssignableFrom(((Factory) service).clazz)) {
if (isVisible(service)) {
try {
- list.add(clazz.cast(((Factory) service).callable.call()));
+ Object value = ((Factory) service).callable.call();
+ if (value instanceof List) {
+ for (Object v : (List) value) {
+ list.add(clazz.cast(v));
+ }
+ } else {
+ list.add(clazz.cast(value));
+ }
} catch (Exception e) {
// TODO: log exception
}
[3/6] [KARAF-2805] Convert remaining commands to the new model
Posted by gn...@apache.org.
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jndi/command/src/main/java/org/apache/karaf/jndi/command/completers/ServicesIdCompleter.java
----------------------------------------------------------------------
diff --git a/jndi/command/src/main/java/org/apache/karaf/jndi/command/completers/ServicesIdCompleter.java b/jndi/command/src/main/java/org/apache/karaf/jndi/command/completers/ServicesIdCompleter.java
index c56490b..c7cdb80 100644
--- a/jndi/command/src/main/java/org/apache/karaf/jndi/command/completers/ServicesIdCompleter.java
+++ b/jndi/command/src/main/java/org/apache/karaf/jndi/command/completers/ServicesIdCompleter.java
@@ -16,10 +16,12 @@
*/
package org.apache.karaf.jndi.command.completers;
-import org.apache.karaf.shell.console.Completer;
-import org.apache.karaf.shell.console.completer.StringsCompleter;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.CommandLine;
+import org.apache.karaf.shell.api.console.Completer;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
@@ -36,7 +38,8 @@ public class ServicesIdCompleter implements Completer {
@Reference
private BundleContext bundleContext;
- public int complete(String buffer, int cursor, List candidates) {
+ @Override
+ public int complete(Session session, CommandLine commandLine, List<String> candidates) {
StringsCompleter delegate = new StringsCompleter();
Bundle[] bundles = bundleContext.getBundles();
for (Bundle bundle : bundles) {
@@ -49,7 +52,7 @@ public class ServicesIdCompleter implements Completer {
}
}
}
- return delegate.complete(buffer, cursor, candidates);
+ return delegate.complete(session, commandLine, candidates);
}
public BundleContext getBundleContext() {
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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
deleted file mode 100644
index f59750b..0000000
--- a/jndi/command/src/main/resources/OSGI-INF/blueprint/jndi-command.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version
- 2.0 (the "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0 Unless required by
- applicable law or agreed to in writing, software distributed under the
- License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
- CONDITIONS OF ANY KIND, either express or implied. See the License for
- the specific language governing permissions and limitations under the
- License.
- -->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy">
-
- <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0"
- scan="org.apache.karaf.jndi.command.*" />
-
-</blueprint>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/kar/command/pom.xml
----------------------------------------------------------------------
diff --git a/kar/command/pom.xml b/kar/command/pom.xml
index 67d18f5..431c0e4 100644
--- a/kar/command/pom.xml
+++ b/kar/command/pom.xml
@@ -39,12 +39,6 @@
<dependencies>
<dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.gogo.runtime</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
<groupId>org.apache.karaf.kar</groupId>
<artifactId>org.apache.karaf.kar.core</artifactId>
</dependency>
@@ -53,10 +47,6 @@
<artifactId>org.apache.karaf.shell.core</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.table</artifactId>
- </dependency>
- <dependency>
<groupId>org.apache.karaf.features</groupId>
<artifactId>org.apache.karaf.features.command</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/kar/command/src/main/java/org/apache/karaf/kar/command/ListKarCommand.java
----------------------------------------------------------------------
diff --git a/kar/command/src/main/java/org/apache/karaf/kar/command/ListKarCommand.java b/kar/command/src/main/java/org/apache/karaf/kar/command/ListKarCommand.java
index 853a743..98813ff 100644
--- a/kar/command/src/main/java/org/apache/karaf/kar/command/ListKarCommand.java
+++ b/kar/command/src/main/java/org/apache/karaf/kar/command/ListKarCommand.java
@@ -17,12 +17,12 @@
package org.apache.karaf.kar.command;
import org.apache.karaf.kar.KarService;
-import org.apache.karaf.shell.table.ShellTable;
import org.apache.karaf.shell.api.action.Action;
import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.Option;
import org.apache.karaf.shell.api.action.lifecycle.Reference;
import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
@Command(scope = "kar", name = "list", description = "List the installed KAR files.")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/log/command/pom.xml
----------------------------------------------------------------------
diff --git a/log/command/pom.xml b/log/command/pom.xml
index 363c733..550a3be 100644
--- a/log/command/pom.xml
+++ b/log/command/pom.xml
@@ -44,17 +44,7 @@
</dependency>
<dependency>
<groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.console</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.table</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.gogo.runtime</artifactId>
- <scope>provided</scope>
+ <artifactId>org.apache.karaf.shell.core</artifactId>
</dependency>
<dependency>
@@ -105,7 +95,15 @@
<Import-Package>
*
</Import-Package>
- <Private-Package>org.apache.karaf.log.command*</Private-Package>
+ <Export-Package>
+ !*
+ </Export-Package>
+ <Private-Package>
+ org.apache.karaf.log.command*
+ </Private-Package>
+ <Karaf-Commands>
+ org.apache.karaf.log.command*
+ </Karaf-Commands>
</instructions>
</configuration>
</plugin>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/log/command/src/main/java/org/apache/karaf/log/command/ClearLog.java
----------------------------------------------------------------------
diff --git a/log/command/src/main/java/org/apache/karaf/log/command/ClearLog.java b/log/command/src/main/java/org/apache/karaf/log/command/ClearLog.java
index 8733568..75a48d6 100644
--- a/log/command/src/main/java/org/apache/karaf/log/command/ClearLog.java
+++ b/log/command/src/main/java/org/apache/karaf/log/command/ClearLog.java
@@ -16,17 +16,24 @@
*/
package org.apache.karaf.log.command;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.log.core.LogService;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
/**
* Clear the last log entries.
*/
@Command(scope = "log", name = "clear", description = "Clear log entries.")
@Service
-public class ClearLog extends LogCommandSupport {
-
- protected Object doExecute() throws Exception {
+public class ClearLog implements Action {
+
+ @Reference
+ LogService logService;
+
+ @Override
+ public Object execute() throws Exception {
logService.clearEvents();
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/log/command/src/main/java/org/apache/karaf/log/command/DisplayException.java
----------------------------------------------------------------------
diff --git a/log/command/src/main/java/org/apache/karaf/log/command/DisplayException.java b/log/command/src/main/java/org/apache/karaf/log/command/DisplayException.java
index d8cb4b5..52a2661 100644
--- a/log/command/src/main/java/org/apache/karaf/log/command/DisplayException.java
+++ b/log/command/src/main/java/org/apache/karaf/log/command/DisplayException.java
@@ -16,19 +16,26 @@
*/
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.inject.Service;
+import org.apache.karaf.log.core.LogService;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.ops4j.pax.logging.spi.PaxLoggingEvent;
@Command(scope = "log", name = "exception-display", description = "Displays the last occurred exception from the log.")
@Service
-public class DisplayException extends LogCommandSupport {
+public class DisplayException implements Action {
@Argument(index = 0, name = "logger", description = "The name of the logger. This can be ROOT, ALL, or the name of a logger specified in the org.ops4j.pax.logger.cfg file.", required = false, multiValued = false)
String logger;
-
- protected Object doExecute() throws Exception {
+
+ @Reference
+ LogService logService;
+
+ @Override
+ public Object execute() throws Exception {
PaxLoggingEvent throwableEvent = logService.getLastException(logger);
if (throwableEvent != null) {
for (String r : throwableEvent.getThrowableStrRep()) {
@@ -38,7 +45,5 @@ public class DisplayException extends LogCommandSupport {
}
return null;
}
-
-
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/log/command/src/main/java/org/apache/karaf/log/command/DisplayLog.java
----------------------------------------------------------------------
diff --git a/log/command/src/main/java/org/apache/karaf/log/command/DisplayLog.java b/log/command/src/main/java/org/apache/karaf/log/command/DisplayLog.java
index f17e775..813eea5 100644
--- a/log/command/src/main/java/org/apache/karaf/log/command/DisplayLog.java
+++ b/log/command/src/main/java/org/apache/karaf/log/command/DisplayLog.java
@@ -19,11 +19,13 @@ package org.apache.karaf.log.command;
import java.io.PrintStream;
import org.apache.karaf.log.core.LogEventFormatter;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.log.core.LogService;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.ops4j.pax.logging.spi.PaxLoggingEvent;
/**
@@ -31,28 +33,28 @@ import org.ops4j.pax.logging.spi.PaxLoggingEvent;
*/
@Command(scope = "log", name = "display", description = "Displays log entries.")
@Service
-public class DisplayLog extends LogCommandSupport {
+public class DisplayLog implements Action {
@Option(name = "-n", aliases = {}, description="Number of entries to display", required = false, multiValued = false)
- protected int entries;
+ int entries;
@Option(name = "-p", aliases = {}, description="Pattern for formatting the output", required = false, multiValued = false)
- protected String overridenPattern;
+ String overridenPattern;
@Option(name = "--no-color", description="Disable syntax coloring of log events", required = false, multiValued = false)
- protected boolean noColor;
+ boolean noColor;
@Argument(index = 0, name = "logger", description = "The name of the logger. This can be ROOT, ALL, or the name of a logger specified in the org.ops4j.pax.logger.cfg file.", required = false, multiValued = false)
String logger;
@Reference
- protected LogEventFormatter formatter;
-
- public void setFormatter(LogEventFormatter formatter) {
- this.formatter = formatter;
- }
+ LogService logService;
+
+ @Reference
+ LogEventFormatter formatter;
- protected Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
final PrintStream out = System.out;
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/log/command/src/main/java/org/apache/karaf/log/command/GetLogLevel.java
----------------------------------------------------------------------
diff --git a/log/command/src/main/java/org/apache/karaf/log/command/GetLogLevel.java b/log/command/src/main/java/org/apache/karaf/log/command/GetLogLevel.java
index 290fffb..83e5003 100644
--- a/log/command/src/main/java/org/apache/karaf/log/command/GetLogLevel.java
+++ b/log/command/src/main/java/org/apache/karaf/log/command/GetLogLevel.java
@@ -16,22 +16,23 @@
*/
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.Option;
-import org.apache.karaf.shell.inject.Service;
-import org.apache.karaf.shell.table.ShellTable;
-
-import java.util.Enumeration;
-import java.util.Iterator;
import java.util.Map;
+import org.apache.karaf.log.core.LogService;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
+
/**
* Get the log level
*/
@Command(scope = "log", name = "get", description = "Shows the currently set log level.")
@Service
-public class GetLogLevel extends LogCommandSupport {
+public class GetLogLevel implements Action {
@Argument(index = 0, name = "logger", description = "The name of the logger, ALL or ROOT (default)", required = false, multiValued = false)
String logger;
@@ -39,7 +40,11 @@ public class GetLogLevel extends LogCommandSupport {
@Option(name = "--no-format", description = "Disable table rendered output", required = false, multiValued = false)
boolean noFormat;
- protected Object doExecute() throws Exception {
+ @Reference
+ LogService logService;
+
+ @Override
+ public Object execute() throws Exception {
Map<String, String> loggers = logService.getLevel(logger);
ShellTable table = new ShellTable();
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/log/command/src/main/java/org/apache/karaf/log/command/LogCommandSupport.java
----------------------------------------------------------------------
diff --git a/log/command/src/main/java/org/apache/karaf/log/command/LogCommandSupport.java b/log/command/src/main/java/org/apache/karaf/log/command/LogCommandSupport.java
deleted file mode 100644
index 9ce0f8c..0000000
--- a/log/command/src/main/java/org/apache/karaf/log/command/LogCommandSupport.java
+++ /dev/null
@@ -1,32 +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;
-
-import org.apache.karaf.log.core.LogService;
-import org.apache.karaf.shell.console.AbstractAction;
-import org.apache.karaf.shell.inject.Reference;
-
-public abstract class LogCommandSupport extends AbstractAction {
-
- @Reference
- protected LogService logService;
-
- public void setLogService(LogService logService) {
- this.logService = logService;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 d2c1786..d7c17a9 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
@@ -16,14 +16,14 @@
*/
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.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
import org.osgi.service.log.LogService;
import java.util.HashMap;
@@ -31,31 +31,30 @@ import java.util.Map;
@Command(scope = "log", name = "log", description = "Log a message.")
@Service
-public class LogEntry extends AbstractAction {
+public class LogEntry implements Action {
@Argument(index = 0, name = "message", description = "The message to log", required = true, multiValued = false)
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" })
+ @Completion(value = StringsCompleter.class, values = { "DEBUG", "INFO", "WARNING", "ERROR" })
private String level = "INFO";
@Reference
- private LogService logService;
+ LogService logService;
private final Map<String,Integer> mappings = new HashMap<String,Integer>();
public LogEntry() {
- mappings.put("ERROR",1);
- mappings.put("WARNING",2);
- mappings.put("INFO",3);
- mappings.put("DEBUG",4);
+ mappings.put("ERROR", 1);
+ mappings.put("WARNING", 2);
+ mappings.put("INFO", 3);
+ mappings.put("DEBUG", 4);
}
@Override
- protected Object doExecute() throws Exception {
+ public Object execute() throws Exception {
logService.log(toLevel(level.toUpperCase()), message);
-
return null;
}
@@ -67,7 +66,4 @@ public class LogEntry extends AbstractAction {
return level;
}
- public void setLogService(LogService logService) {
- this.logService = logService;
- }
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/log/command/src/main/java/org/apache/karaf/log/command/LogTail.java
----------------------------------------------------------------------
diff --git a/log/command/src/main/java/org/apache/karaf/log/command/LogTail.java b/log/command/src/main/java/org/apache/karaf/log/command/LogTail.java
index a79b8a9..bf2801e 100644
--- a/log/command/src/main/java/org/apache/karaf/log/command/LogTail.java
+++ b/log/command/src/main/java/org/apache/karaf/log/command/LogTail.java
@@ -18,10 +18,16 @@ package org.apache.karaf.log.command;
import java.io.IOException;
import java.io.PrintStream;
-import java.util.concurrent.*;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.LinkedBlockingQueue;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.log.core.LogService;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.Session;
import org.ops4j.pax.logging.spi.PaxAppender;
import org.ops4j.pax.logging.spi.PaxLoggingEvent;
@@ -29,9 +35,16 @@ import org.ops4j.pax.logging.spi.PaxLoggingEvent;
@Service
public class LogTail extends DisplayLog {
+ @Reference
+ Session session;
+
+ @Reference
+ LogService logService;
+
private ExecutorService executorService = Executors.newSingleThreadExecutor();
-
- protected Object doExecute() throws Exception {
+
+ @Override
+ public Object execute() throws Exception {
PrintEventThread printThread = new PrintEventThread();
executorService.execute(printThread);
new Thread(new ReadKeyBoardThread(this, Thread.currentThread())).start();
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 4bdf5d8..b1145b4 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
@@ -16,27 +16,35 @@
*/
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;
-import org.apache.karaf.shell.inject.Service;
+
+import org.apache.karaf.log.core.LogService;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
/**
* Set the log level for a given logger
*/
@Command(scope = "log", name = "set", description = "Sets the log level.")
@Service
-public class SetLogLevel extends LogCommandSupport {
+public class SetLogLevel implements Action {
@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" })
+ @Completion(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)
String logger;
- protected Object doExecute() throws Exception {
+ @Reference
+ LogService logService;
+
+ @Override
+ public Object execute() throws Exception {
logService.setLevel(logger, level);
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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
deleted file mode 100644
index d074489..0000000
--- a/log/command/src/main/resources/OSGI-INF/blueprint/shell-log.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
- xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
- default-activation="lazy">
-
- <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0"
- scan="org.apache.karaf.log.command.*" />
-
-</blueprint>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/obr/command/pom.xml
----------------------------------------------------------------------
diff --git a/obr/command/pom.xml b/obr/command/pom.xml
index a622eb6..73ae804 100644
--- a/obr/command/pom.xml
+++ b/obr/command/pom.xml
@@ -40,12 +40,6 @@
<dependencies>
<dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.gogo.runtime</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<scope>provided</scope>
@@ -69,13 +63,9 @@
<dependency>
<groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.console</artifactId>
+ <artifactId>org.apache.karaf.shell.core</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.table</artifactId>
- </dependency>
-
+
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
@@ -113,6 +103,7 @@
<Export-Package>
!*
</Export-Package>
+ <Karaf-Commands>*</Karaf-Commands>
</instructions>
</configuration>
</plugin>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/obr/command/src/main/java/org/apache/karaf/obr/command/AddUrlCommand.java
----------------------------------------------------------------------
diff --git a/obr/command/src/main/java/org/apache/karaf/obr/command/AddUrlCommand.java b/obr/command/src/main/java/org/apache/karaf/obr/command/AddUrlCommand.java
index 416639f..5aaf13a 100644
--- a/obr/command/src/main/java/org/apache/karaf/obr/command/AddUrlCommand.java
+++ b/obr/command/src/main/java/org/apache/karaf/obr/command/AddUrlCommand.java
@@ -19,9 +19,9 @@ package org.apache.karaf.obr.command;
import java.util.List;
import org.apache.felix.bundlerepository.RepositoryAdmin;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "obr", name = "url-add", description = "Adds a list of repository URLs to the OBR service.")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/obr/command/src/main/java/org/apache/karaf/obr/command/DeployCommand.java
----------------------------------------------------------------------
diff --git a/obr/command/src/main/java/org/apache/karaf/obr/command/DeployCommand.java b/obr/command/src/main/java/org/apache/karaf/obr/command/DeployCommand.java
index 48e42d6..a852c70 100644
--- a/obr/command/src/main/java/org/apache/karaf/obr/command/DeployCommand.java
+++ b/obr/command/src/main/java/org/apache/karaf/obr/command/DeployCommand.java
@@ -19,10 +19,10 @@ package org.apache.karaf.obr.command;
import java.util.List;
import org.apache.felix.bundlerepository.RepositoryAdmin;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "obr", name = "deploy", description = "Deploys a list of bundles using OBR service.")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/obr/command/src/main/java/org/apache/karaf/obr/command/FindCommand.java
----------------------------------------------------------------------
diff --git a/obr/command/src/main/java/org/apache/karaf/obr/command/FindCommand.java b/obr/command/src/main/java/org/apache/karaf/obr/command/FindCommand.java
index cfa4c53..fad967b 100644
--- a/obr/command/src/main/java/org/apache/karaf/obr/command/FindCommand.java
+++ b/obr/command/src/main/java/org/apache/karaf/obr/command/FindCommand.java
@@ -20,9 +20,9 @@ import org.apache.felix.bundlerepository.Capability;
import org.apache.felix.bundlerepository.RepositoryAdmin;
import org.apache.felix.bundlerepository.Requirement;
import org.apache.felix.bundlerepository.Resource;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
import java.io.PrintStream;
import java.lang.reflect.Array;
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/obr/command/src/main/java/org/apache/karaf/obr/command/InfoCommand.java
----------------------------------------------------------------------
diff --git a/obr/command/src/main/java/org/apache/karaf/obr/command/InfoCommand.java b/obr/command/src/main/java/org/apache/karaf/obr/command/InfoCommand.java
index e2efa16..bacc61b 100644
--- a/obr/command/src/main/java/org/apache/karaf/obr/command/InfoCommand.java
+++ b/obr/command/src/main/java/org/apache/karaf/obr/command/InfoCommand.java
@@ -26,9 +26,9 @@ import org.apache.felix.bundlerepository.Capability;
import org.apache.felix.bundlerepository.RepositoryAdmin;
import org.apache.felix.bundlerepository.Requirement;
import org.apache.felix.bundlerepository.Resource;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "obr", name = "info", description = "Prints information about OBR bundles.")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/obr/command/src/main/java/org/apache/karaf/obr/command/ListCommand.java
----------------------------------------------------------------------
diff --git a/obr/command/src/main/java/org/apache/karaf/obr/command/ListCommand.java b/obr/command/src/main/java/org/apache/karaf/obr/command/ListCommand.java
index 71df53f..45db82f 100644
--- a/obr/command/src/main/java/org/apache/karaf/obr/command/ListCommand.java
+++ b/obr/command/src/main/java/org/apache/karaf/obr/command/ListCommand.java
@@ -20,14 +20,11 @@ import java.util.List;
import org.apache.felix.bundlerepository.RepositoryAdmin;
import org.apache.felix.bundlerepository.Resource;
-import org.apache.karaf.shell.commands.Action;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.felix.service.command.CommandSession;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
-import org.apache.karaf.shell.table.ShellTable;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
@Command(scope = "obr", name = "list", description = "Lists OBR bundles, optionally providing the given packages.")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/obr/command/src/main/java/org/apache/karaf/obr/command/ListUrlCommand.java
----------------------------------------------------------------------
diff --git a/obr/command/src/main/java/org/apache/karaf/obr/command/ListUrlCommand.java b/obr/command/src/main/java/org/apache/karaf/obr/command/ListUrlCommand.java
index e03477b..1c07236 100644
--- a/obr/command/src/main/java/org/apache/karaf/obr/command/ListUrlCommand.java
+++ b/obr/command/src/main/java/org/apache/karaf/obr/command/ListUrlCommand.java
@@ -18,10 +18,10 @@ package org.apache.karaf.obr.command;
import org.apache.felix.bundlerepository.Repository;
import org.apache.felix.bundlerepository.RepositoryAdmin;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.inject.Service;
-import org.apache.karaf.shell.table.ShellTable;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
@Command(scope = "obr", name = "url-list", description = "Displays the repository URLs currently associated with the OBR service.")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/obr/command/src/main/java/org/apache/karaf/obr/command/ObrCommandSupport.java
----------------------------------------------------------------------
diff --git a/obr/command/src/main/java/org/apache/karaf/obr/command/ObrCommandSupport.java b/obr/command/src/main/java/org/apache/karaf/obr/command/ObrCommandSupport.java
index 9b70875..5f038b4 100644
--- a/obr/command/src/main/java/org/apache/karaf/obr/command/ObrCommandSupport.java
+++ b/obr/command/src/main/java/org/apache/karaf/obr/command/ObrCommandSupport.java
@@ -32,25 +32,29 @@ import org.apache.felix.bundlerepository.RepositoryAdmin;
import org.apache.felix.bundlerepository.Requirement;
import org.apache.felix.bundlerepository.Resolver;
import org.apache.felix.bundlerepository.Resource;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.shell.inject.Reference;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
import org.osgi.framework.Version;
-public abstract class ObrCommandSupport extends OsgiCommandSupport {
+public abstract class ObrCommandSupport implements Action {
protected static final char VERSION_DELIM = ',';
@Reference
private RepositoryAdmin repositoryAdmin;
+ @Reference
+ BundleContext bundleContext;
+
public void setRepositoryAdmin(RepositoryAdmin repositoryAdmin) {
this.repositoryAdmin = repositoryAdmin;
}
- protected Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
doExecute(repositoryAdmin);
return null;
}
@@ -60,7 +64,7 @@ public abstract class ObrCommandSupport extends OsgiCommandSupport {
protected Resource[] searchRepository(RepositoryAdmin admin, String targetId, String targetVersion) throws InvalidSyntaxException {
// Try to see if the targetId is a bundle ID.
try {
- Bundle bundle = getBundleContext().getBundle(Long.parseLong(targetId));
+ Bundle bundle = bundleContext.getBundle(Long.parseLong(targetId));
targetId = bundle.getSymbolicName();
} catch (NumberFormatException ex) {
// It was not a number, so ignore.
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/obr/command/src/main/java/org/apache/karaf/obr/command/RefreshUrlCommand.java
----------------------------------------------------------------------
diff --git a/obr/command/src/main/java/org/apache/karaf/obr/command/RefreshUrlCommand.java b/obr/command/src/main/java/org/apache/karaf/obr/command/RefreshUrlCommand.java
index 9610b97..20a65ed 100644
--- a/obr/command/src/main/java/org/apache/karaf/obr/command/RefreshUrlCommand.java
+++ b/obr/command/src/main/java/org/apache/karaf/obr/command/RefreshUrlCommand.java
@@ -20,10 +20,10 @@ import java.util.List;
import org.apache.felix.bundlerepository.Repository;
import org.apache.felix.bundlerepository.RepositoryAdmin;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "obr", name = "url-refresh", description = "Reloads the repositories to obtain a fresh list of bundles.")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/obr/command/src/main/java/org/apache/karaf/obr/command/RemoveUrlCommand.java
----------------------------------------------------------------------
diff --git a/obr/command/src/main/java/org/apache/karaf/obr/command/RemoveUrlCommand.java b/obr/command/src/main/java/org/apache/karaf/obr/command/RemoveUrlCommand.java
index dd183d1..2d41519 100644
--- a/obr/command/src/main/java/org/apache/karaf/obr/command/RemoveUrlCommand.java
+++ b/obr/command/src/main/java/org/apache/karaf/obr/command/RemoveUrlCommand.java
@@ -20,10 +20,10 @@ import java.util.List;
import org.apache.felix.bundlerepository.Repository;
import org.apache.felix.bundlerepository.RepositoryAdmin;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "obr", name = "url-remove", description = "Removes a list of repository URLs from the OBR service.")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/obr/command/src/main/java/org/apache/karaf/obr/command/ResolveCommand.java
----------------------------------------------------------------------
diff --git a/obr/command/src/main/java/org/apache/karaf/obr/command/ResolveCommand.java b/obr/command/src/main/java/org/apache/karaf/obr/command/ResolveCommand.java
index edbf11f..ab1bd04 100644
--- a/obr/command/src/main/java/org/apache/karaf/obr/command/ResolveCommand.java
+++ b/obr/command/src/main/java/org/apache/karaf/obr/command/ResolveCommand.java
@@ -26,10 +26,10 @@ import org.apache.felix.bundlerepository.RepositoryAdmin;
import org.apache.felix.bundlerepository.Requirement;
import org.apache.felix.bundlerepository.Resolver;
import org.apache.felix.bundlerepository.Resource;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "obr", name = "resolve", description = "Shows the resolution output for a given set of requirements.")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/obr/command/src/main/java/org/apache/karaf/obr/command/SourceCommand.java
----------------------------------------------------------------------
diff --git a/obr/command/src/main/java/org/apache/karaf/obr/command/SourceCommand.java b/obr/command/src/main/java/org/apache/karaf/obr/command/SourceCommand.java
index 8c2eb89..161ba82 100644
--- a/obr/command/src/main/java/org/apache/karaf/obr/command/SourceCommand.java
+++ b/obr/command/src/main/java/org/apache/karaf/obr/command/SourceCommand.java
@@ -22,10 +22,10 @@ import java.util.List;
import org.apache.felix.bundlerepository.RepositoryAdmin;
import org.apache.felix.bundlerepository.Resource;
import org.apache.karaf.obr.command.util.FileUtil;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "obr", name = "source", description = "Downloads the sources for an OBR bundle.")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/obr/command/src/main/java/org/apache/karaf/obr/command/StartCommand.java
----------------------------------------------------------------------
diff --git a/obr/command/src/main/java/org/apache/karaf/obr/command/StartCommand.java b/obr/command/src/main/java/org/apache/karaf/obr/command/StartCommand.java
index 9947986..0465bae 100644
--- a/obr/command/src/main/java/org/apache/karaf/obr/command/StartCommand.java
+++ b/obr/command/src/main/java/org/apache/karaf/obr/command/StartCommand.java
@@ -17,10 +17,10 @@
package org.apache.karaf.obr.command;
import org.apache.felix.bundlerepository.RepositoryAdmin;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
import java.util.List;
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/obr/command/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/obr/command/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/obr/command/src/main/resources/OSGI-INF/blueprint/blueprint.xml
deleted file mode 100644
index 941d890..0000000
--- a/obr/command/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy">
-
- <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0"
- scan="org.apache.karaf.obr.command.*" />
-
-</blueprint>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/obr/command/src/test/java/org/apache/karaf/obr/command/ListCommandTest.java
----------------------------------------------------------------------
diff --git a/obr/command/src/test/java/org/apache/karaf/obr/command/ListCommandTest.java b/obr/command/src/test/java/org/apache/karaf/obr/command/ListCommandTest.java
index 46b5e38..a4bbb17 100644
--- a/obr/command/src/test/java/org/apache/karaf/obr/command/ListCommandTest.java
+++ b/obr/command/src/test/java/org/apache/karaf/obr/command/ListCommandTest.java
@@ -44,7 +44,7 @@ public class ListCommandTest {
andReturn(resources);
control.replay();
- command.execute(null);
+ command.execute();
control.verify();
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/package/command/pom.xml
----------------------------------------------------------------------
diff --git a/package/command/pom.xml b/package/command/pom.xml
index 70b66c0..377769b 100644
--- a/package/command/pom.xml
+++ b/package/command/pom.xml
@@ -40,23 +40,12 @@
<dependencies>
<dependency>
<groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.console</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.table</artifactId>
+ <artifactId>org.apache.karaf.shell.core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.karaf.package</groupId>
<artifactId>org.apache.karaf.package.core</artifactId>
</dependency>
-
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.gogo.runtime</artifactId>
- <scope>provided</scope>
- </dependency>
-
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
@@ -108,6 +97,9 @@
org.apache.felix.utils.manifest;-split-package:=merge-first,
!*
</Private-Package>
+ <Karaf-Commands>
+ org.apache.karaf.packages.command
+ </Karaf-Commands>
</instructions>
</configuration>
</plugin>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/package/command/src/main/java/org/apache/karaf/packages/command/Exports.java
----------------------------------------------------------------------
diff --git a/package/command/src/main/java/org/apache/karaf/packages/command/Exports.java b/package/command/src/main/java/org/apache/karaf/packages/command/Exports.java
index 72d1af2..c09a5f6 100644
--- a/package/command/src/main/java/org/apache/karaf/packages/command/Exports.java
+++ b/package/command/src/main/java/org/apache/karaf/packages/command/Exports.java
@@ -24,21 +24,22 @@ import java.util.TreeMap;
import org.apache.karaf.packages.core.PackageService;
import org.apache.karaf.packages.core.PackageVersion;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
-import org.apache.karaf.shell.table.Col;
-import org.apache.karaf.shell.table.ShellTable;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.Col;
+import org.apache.karaf.shell.support.table.ShellTable;
import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
import org.osgi.framework.Version;
import org.osgi.framework.wiring.BundleCapability;
import org.osgi.framework.wiring.BundleRevision;
@Command(scope = "package", name = "exports", description = "Lists exported packages and the bundles that export them")
@Service
-public class Exports extends OsgiCommandSupport {
+public class Exports implements Action {
@Option(name = "-d", description = "Only show packages that are exported by more than one bundle", required = false, multiValued = false)
private boolean onlyDuplicates;
@@ -49,11 +50,11 @@ public class Exports extends OsgiCommandSupport {
@Reference
private PackageService packageService;
- public void setPackageService(PackageService packageService) {
- this.packageService = packageService;
- }
+ @Reference
+ private BundleContext bundleContext;
- protected Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
if (onlyDuplicates) {
checkDuplicateExports();
} else {
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/package/command/src/main/java/org/apache/karaf/packages/command/Imports.java
----------------------------------------------------------------------
diff --git a/package/command/src/main/java/org/apache/karaf/packages/command/Imports.java b/package/command/src/main/java/org/apache/karaf/packages/command/Imports.java
index e5ea17a..3d086e9 100644
--- a/package/command/src/main/java/org/apache/karaf/packages/command/Imports.java
+++ b/package/command/src/main/java/org/apache/karaf/packages/command/Imports.java
@@ -20,18 +20,18 @@ import java.util.SortedMap;
import org.apache.karaf.packages.core.PackageRequirement;
import org.apache.karaf.packages.core.PackageService;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
-import org.apache.karaf.shell.table.Col;
-import org.apache.karaf.shell.table.ShellTable;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.Col;
+import org.apache.karaf.shell.support.table.ShellTable;
import org.osgi.framework.Bundle;
@Command(scope = "package", name = "imports", description = "Lists imported packages and the bundles that import them")
@Service
-public class Imports extends OsgiCommandSupport {
+public class Imports implements Action {
@Option(name = "-p", description = "Only show package instead of full filter", required = false, multiValued = false)
boolean onlyPackage;
@@ -42,11 +42,8 @@ public class Imports extends OsgiCommandSupport {
@Reference
private PackageService packageService;
- public void setPackageService(PackageService packageService) {
- this.packageService = packageService;
- }
-
- protected Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
SortedMap<String, PackageRequirement> imports = packageService.getImports();
ShellTable table = new ShellTable();
table.column(new Col(onlyPackage ? "Package name" : "Filter"));
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/package/command/src/main/resources/OSGI-INF/blueprint/shell-bundles.xml
----------------------------------------------------------------------
diff --git a/package/command/src/main/resources/OSGI-INF/blueprint/shell-bundles.xml b/package/command/src/main/resources/OSGI-INF/blueprint/shell-bundles.xml
deleted file mode 100644
index e66dd06..0000000
--- a/package/command/src/main/resources/OSGI-INF/blueprint/shell-bundles.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
-
- <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0"
- scan="org.apache.karaf.packages.command.*" />
-
-</blueprint>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/package/core/pom.xml
----------------------------------------------------------------------
diff --git a/package/core/pom.xml b/package/core/pom.xml
index 5244dc8..90349a0 100644
--- a/package/core/pom.xml
+++ b/package/core/pom.xml
@@ -92,12 +92,8 @@
<configuration>
<instructions>
<Export-Package>
- org.apache.karaf.packages.core
+ org.apache.karaf.packages.core;-noimport:=true
</Export-Package>
- <Import-Package>
- org.apache.felix.service.command;status=provisional,
- *
- </Import-Package>
<Private-Package>
org.apache.karaf.packages.core.internal,
org.apache.felix.utils.version,
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/region/command/pom.xml
----------------------------------------------------------------------
diff --git a/region/command/pom.xml b/region/command/pom.xml
index 79bda61..6e08938 100644
--- a/region/command/pom.xml
+++ b/region/command/pom.xml
@@ -42,16 +42,9 @@
<artifactId>org.osgi.core</artifactId>
<scope>provided</scope>
</dependency>
-
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.gogo.runtime</artifactId>
- <scope>provided</scope>
- </dependency>
-
<dependency>
<groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.console</artifactId>
+ <artifactId>org.apache.karaf.shell.core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.aries</groupId>
@@ -95,6 +88,11 @@
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
+ <configuration>
+ <instructions>
+ <Karaf-Commands>*</Karaf-Commands>
+ </instructions>
+ </configuration>
</plugin>
</plugins>
</build>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/region/command/src/main/java/org/apache/karaf/region/commands/AddBundleCommand.java
----------------------------------------------------------------------
diff --git a/region/command/src/main/java/org/apache/karaf/region/commands/AddBundleCommand.java b/region/command/src/main/java/org/apache/karaf/region/commands/AddBundleCommand.java
index ed7c28f..30af1e0 100644
--- a/region/command/src/main/java/org/apache/karaf/region/commands/AddBundleCommand.java
+++ b/region/command/src/main/java/org/apache/karaf/region/commands/AddBundleCommand.java
@@ -18,9 +18,9 @@ package org.apache.karaf.region.commands;
import java.util.List;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.eclipse.equinox.region.Region;
import org.eclipse.equinox.region.RegionDigraph;
import org.osgi.framework.Bundle;
@@ -40,7 +40,7 @@ public class AddBundleCommand extends RegionCommandSupport {
for (Long id : ids) {
for (Region existing: regionDigraph.getRegions()) {
if (existing.contains(id)) {
- Bundle b = getBundleContext().getBundle(id);
+ Bundle b = bundleContext.getBundle(id);
System.out.println("Removing bundle " + id + " from region " + existing.getName());
existing.removeBundle(b);
break;
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/region/command/src/main/java/org/apache/karaf/region/commands/AddFilterCommand.java
----------------------------------------------------------------------
diff --git a/region/command/src/main/java/org/apache/karaf/region/commands/AddFilterCommand.java b/region/command/src/main/java/org/apache/karaf/region/commands/AddFilterCommand.java
index bbe35b6..ec3766d 100644
--- a/region/command/src/main/java/org/apache/karaf/region/commands/AddFilterCommand.java
+++ b/region/command/src/main/java/org/apache/karaf/region/commands/AddFilterCommand.java
@@ -22,9 +22,9 @@ import java.util.Map;
import org.apache.aries.util.VersionRange;
import org.apache.aries.util.manifest.ManifestHeaderProcessor;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.eclipse.equinox.region.Region;
import org.eclipse.equinox.region.RegionDigraph;
import org.eclipse.equinox.region.RegionFilter;
@@ -50,7 +50,7 @@ public class AddFilterCommand extends RegionCommandSupport {
Region rFrom = getRegion(regionDigraph, fromRegion);
Region rTo = getRegion(regionDigraph, toRegion);
RegionFilterBuilder builder = regionDigraph.createRegionFilterBuilder();
- BundleContext framework = getBundleContext().getBundle(0).getBundleContext();
+ BundleContext framework = bundleContext.getBundle(0).getBundleContext();
if (items != null) {
for (String item : items) {
try {
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/region/command/src/main/java/org/apache/karaf/region/commands/AddRegionCommand.java
----------------------------------------------------------------------
diff --git a/region/command/src/main/java/org/apache/karaf/region/commands/AddRegionCommand.java b/region/command/src/main/java/org/apache/karaf/region/commands/AddRegionCommand.java
index 0daeea3..22c817b 100644
--- a/region/command/src/main/java/org/apache/karaf/region/commands/AddRegionCommand.java
+++ b/region/command/src/main/java/org/apache/karaf/region/commands/AddRegionCommand.java
@@ -18,9 +18,9 @@ package org.apache.karaf.region.commands;
import java.util.List;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.eclipse.equinox.region.RegionDigraph;
@Command(scope = "region", name = "region-add", description = "Adds a list of regions to the region digraph service.")
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/region/command/src/main/java/org/apache/karaf/region/commands/InfoCommand.java
----------------------------------------------------------------------
diff --git a/region/command/src/main/java/org/apache/karaf/region/commands/InfoCommand.java b/region/command/src/main/java/org/apache/karaf/region/commands/InfoCommand.java
index 0843538..7c71e36 100644
--- a/region/command/src/main/java/org/apache/karaf/region/commands/InfoCommand.java
+++ b/region/command/src/main/java/org/apache/karaf/region/commands/InfoCommand.java
@@ -20,10 +20,10 @@ import java.util.Collection;
import java.util.List;
import java.util.Map;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.eclipse.equinox.region.Region;
import org.eclipse.equinox.region.RegionDigraph;
import org.eclipse.equinox.region.RegionFilter;
@@ -73,7 +73,7 @@ public class InfoCommand extends RegionCommandSupport {
System.out.println(region.getName());
if (verbose || bundles) {
for (Long id : region.getBundleIds()) {
- Bundle b = getBundleContext().getBundle(id);
+ Bundle b = bundleContext.getBundle(id);
System.out.println(" " + id + " " + getStateString(b) + b);
}
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/region/command/src/main/java/org/apache/karaf/region/commands/RegionCommandSupport.java
----------------------------------------------------------------------
diff --git a/region/command/src/main/java/org/apache/karaf/region/commands/RegionCommandSupport.java b/region/command/src/main/java/org/apache/karaf/region/commands/RegionCommandSupport.java
index f94b2d1..bcdfb6c 100644
--- a/region/command/src/main/java/org/apache/karaf/region/commands/RegionCommandSupport.java
+++ b/region/command/src/main/java/org/apache/karaf/region/commands/RegionCommandSupport.java
@@ -18,25 +18,31 @@ package org.apache.karaf.region.commands;
import java.io.PrintStream;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
import org.eclipse.equinox.region.Region;
import org.eclipse.equinox.region.RegionDigraph;
+import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleException;
import org.osgi.framework.ServiceReference;
-public abstract class RegionCommandSupport extends OsgiCommandSupport {
+public abstract class RegionCommandSupport implements Action {
protected static final char VERSION_DELIM = ',';
- protected Object doExecute() throws Exception {
+ @Reference
+ BundleContext bundleContext;
+
+ @Override
+ public Object execute() throws Exception {
// Get repository instance service.
- ServiceReference ref = getBundleContext().getServiceReference(RegionDigraph.class.getName());
+ ServiceReference ref = bundleContext.getServiceReference(RegionDigraph.class.getName());
if (ref == null) {
System.out.println("RegionDigraph service is unavailable.");
return null;
}
try {
- RegionDigraph admin = (RegionDigraph) getBundleContext().getService(ref);
+ RegionDigraph admin = (RegionDigraph) bundleContext.getService(ref);
if (admin == null) {
System.out.println("RegionDigraph service is unavailable.");
return null;
@@ -45,7 +51,7 @@ public abstract class RegionCommandSupport extends OsgiCommandSupport {
doExecute(admin);
}
finally {
- getBundleContext().ungetService(ref);
+ bundleContext.ungetService(ref);
}
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/region/command/src/main/resources/OSGI-INF/blueprint/region-commands.xml
----------------------------------------------------------------------
diff --git a/region/command/src/main/resources/OSGI-INF/blueprint/region-commands.xml b/region/command/src/main/resources/OSGI-INF/blueprint/region-commands.xml
deleted file mode 100644
index e769ff2..0000000
--- a/region/command/src/main/resources/OSGI-INF/blueprint/region-commands.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
- default-activation="lazy">
-
- <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0"
- scan="org.apache.karaf.region.commands.*" />
-
-</blueprint>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/service/command/pom.xml
----------------------------------------------------------------------
diff --git a/service/command/pom.xml b/service/command/pom.xml
index 69b485b..fa73662 100644
--- a/service/command/pom.xml
+++ b/service/command/pom.xml
@@ -40,14 +40,8 @@
<dependencies>
<dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.gogo.runtime</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
<groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.console</artifactId>
+ <artifactId>org.apache.karaf.shell.core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
@@ -92,6 +86,11 @@
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
+ <configuration>
+ <instructions>
+ <Karaf-Commands>org.apache.karaf.service.command</Karaf-Commands>
+ </instructions>
+ </configuration>
</plugin>
</plugins>
</build>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 0b12db1..caf546b 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
@@ -23,14 +23,14 @@ import java.util.HashMap;
import java.util.List;
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.inject.Service;
-import org.apache.karaf.shell.util.ShellUtil;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.ShellUtil;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
@@ -38,11 +38,11 @@ import org.osgi.framework.ServiceReference;
@Command(scope = "service", name = "list", description = "Lists OSGi services.")
@Service
-public class ListServices extends OsgiCommandSupport {
+public class ListServices implements Action {
@Argument(index = 0, name = "objectClass", description = "Name of service objectClass to filter for", required = false,
multiValued = false)
- @Completer(ObjectClassCompleter.class)
+ @Completion(ObjectClassCompleter.class)
String objectClass;
@Option(name = "-a", aliases = {}, description = "Shows all services. (By default Karaf commands are hidden)", required = false, multiValued = false)
@@ -51,13 +51,17 @@ public class ListServices extends OsgiCommandSupport {
@Option(name = "-n", aliases = {}, description = "Shows only service class names", required = false, multiValued = false)
boolean onlyNames;
- protected Object doExecute() throws Exception {
+ @Reference
+ BundleContext bundleContext;
+
+ @Override
+ public Object execute() throws Exception {
if (onlyNames) {
listNames();
return null;
}
List<ServiceReference<?>> serviceRefs = new ArrayList<ServiceReference<?>>();
- Bundle[] bundles = getBundleContext().getBundles();
+ Bundle[] bundles = bundleContext.getBundles();
for (Bundle bundle : bundles) {
ServiceReference<?>[] services = bundle.getRegisteredServices();
if (services != null) {
@@ -81,7 +85,7 @@ public class ListServices extends OsgiCommandSupport {
}
private void listNames() {
- Map<String, Integer> serviceNames = getServiceNamesMap(getBundleContext());
+ Map<String, Integer> serviceNames = getServiceNamesMap(bundleContext);
ArrayList<String> serviceNamesList = new ArrayList<String>(serviceNames.keySet());
Collections.sort(serviceNamesList);
for (String name : serviceNamesList) {
@@ -129,7 +133,7 @@ public class ListServices extends OsgiCommandSupport {
private boolean isCommand(String[] objectClasses) {
for (String objectClass : objectClasses) {
- if (objectClass.equals(Function.class.getName())) {
+ if (objectClass.equals("org.apache.felix.service.command.Function")) {
return true;
}
}
@@ -152,5 +156,8 @@ public class ListServices extends OsgiCommandSupport {
return classes1[0].compareTo(classes2[0]);
}
}
-
+
+ public void setBundleContext(BundleContext bundleContext) {
+ this.bundleContext = bundleContext;
+ }
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/service/command/src/main/java/org/apache/karaf/service/command/ObjectClassCompleter.java
----------------------------------------------------------------------
diff --git a/service/command/src/main/java/org/apache/karaf/service/command/ObjectClassCompleter.java b/service/command/src/main/java/org/apache/karaf/service/command/ObjectClassCompleter.java
index 9533215..6b62b0c 100644
--- a/service/command/src/main/java/org/apache/karaf/service/command/ObjectClassCompleter.java
+++ b/service/command/src/main/java/org/apache/karaf/service/command/ObjectClassCompleter.java
@@ -24,10 +24,12 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.karaf.shell.console.Completer;
-import org.apache.karaf.shell.console.completer.StringsCompleter;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.CommandLine;
+import org.apache.karaf.shell.api.console.Completer;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
import org.osgi.framework.BundleContext;
@Service
@@ -41,7 +43,8 @@ public class ObjectClassCompleter implements Completer {
}
@SuppressWarnings("rawtypes")
- public int complete(final String buffer, final int cursor, final List candidates) {
+ @Override
+ public int complete(final Session session, final CommandLine commandLine, final List<String> candidates) {
Map<String, Integer> serviceNamesMap = ListServices.getServiceNamesMap(context);
Set<String> serviceNames = serviceNamesMap.keySet();
List<String> strings = new ArrayList<String>();
@@ -49,7 +52,7 @@ public class ObjectClassCompleter implements Completer {
strings.add(ObjectClassMatcher.getShortName(name));
}
strings.addAll(serviceNames);
- return new StringsCompleter(strings).complete(buffer, cursor, candidates);
+ return new StringsCompleter(strings).complete(session, commandLine, candidates);
}
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/service/command/src/main/java/org/apache/karaf/service/command/Wait.java
----------------------------------------------------------------------
diff --git a/service/command/src/main/java/org/apache/karaf/service/command/Wait.java b/service/command/src/main/java/org/apache/karaf/service/command/Wait.java
index fb9794f..9a0d286 100644
--- a/service/command/src/main/java/org/apache/karaf/service/command/Wait.java
+++ b/service/command/src/main/java/org/apache/karaf/service/command/Wait.java
@@ -18,11 +18,13 @@ package org.apache.karaf.service.command;
import java.util.concurrent.TimeoutException;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
import org.osgi.framework.Filter;
import org.osgi.framework.FrameworkUtil;
@@ -34,7 +36,7 @@ import org.osgi.util.tracker.ServiceTracker;
*/
@Command(scope = "service", name = "wait", description = "Wait for a given OSGi service.")
@Service
-public class Wait extends OsgiCommandSupport {
+public class Wait implements Action {
@Option(name = "-e", aliases = { "--exception" }, description = "throw an exception if the service is not found after the timeout")
boolean exception;
@@ -45,9 +47,12 @@ public class Wait extends OsgiCommandSupport {
@Argument(name = "service", description="The service class or filter", required = true, multiValued = false)
String service;
+ @Reference
+ BundleContext bundleContext;
+
@Override
- protected Object doExecute() throws Exception {
- ServiceTracker tracker = null;
+ public Object execute() throws Exception {
+ ServiceTracker<?,?> tracker = null;
try {
String filter = service;
if (!filter.startsWith("(")) {
@@ -57,7 +62,7 @@ public class Wait extends OsgiCommandSupport {
filter = "(" + filter + ")";
}
Filter osgiFilter = FrameworkUtil.createFilter(filter);
- tracker = new ServiceTracker(bundleContext, osgiFilter, null);
+ tracker = new ServiceTracker<Object, Object>(bundleContext, osgiFilter, null);
tracker.open(true);
Object svc = tracker.getService();
if (timeout >= 0) {
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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
deleted file mode 100644
index 80d4fbe..0000000
--- a/service/command/src/main/resources/OSGI-INF/blueprint/shell-services.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
- default-activation="lazy">
-
- <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0"
- scan="org.apache.karaf.service.command.*" />
-
-</blueprint>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/service/command/src/test/java/org/apache/karaf/service/command/ListServiceNamesTest.java
----------------------------------------------------------------------
diff --git a/service/command/src/test/java/org/apache/karaf/service/command/ListServiceNamesTest.java b/service/command/src/test/java/org/apache/karaf/service/command/ListServiceNamesTest.java
index 71b6db5..9f42147 100644
--- a/service/command/src/test/java/org/apache/karaf/service/command/ListServiceNamesTest.java
+++ b/service/command/src/test/java/org/apache/karaf/service/command/ListServiceNamesTest.java
@@ -28,7 +28,7 @@ public class ListServiceNamesTest {
ListServices listServices = new ListServices();
listServices.setBundleContext(new TestBundleFactory().createBundleContext());
listServices.onlyNames = true;
- listServices.doExecute();
+ listServices.execute();
}
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/service/command/src/test/java/org/apache/karaf/service/command/ListServicesTest.java
----------------------------------------------------------------------
diff --git a/service/command/src/test/java/org/apache/karaf/service/command/ListServicesTest.java b/service/command/src/test/java/org/apache/karaf/service/command/ListServicesTest.java
index 9560717..510de6c 100644
--- a/service/command/src/test/java/org/apache/karaf/service/command/ListServicesTest.java
+++ b/service/command/src/test/java/org/apache/karaf/service/command/ListServicesTest.java
@@ -28,7 +28,7 @@ public class ListServicesTest {
public void listAll() throws Exception {
ListServices listServices = new ListServices();
listServices.setBundleContext(new TestBundleFactory().createBundleContext());
- listServices.doExecute();
+ listServices.execute();
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/shell/commands/pom.xml
----------------------------------------------------------------------
diff --git a/shell/commands/pom.xml b/shell/commands/pom.xml
index 6609cd5..3e0b7d6 100644
--- a/shell/commands/pom.xml
+++ b/shell/commands/pom.xml
@@ -43,20 +43,10 @@
<artifactId>org.apache.karaf.shell.core</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.table</artifactId>
- </dependency>
- <dependency>
<groupId>org.jledit</groupId>
<artifactId>core</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.gogo.runtime</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
<groupId>org.apache.karaf</groupId>
<artifactId>org.apache.karaf.util</artifactId>
<scope>provided</scope>
@@ -106,7 +96,7 @@
<configuration>
<instructions>
<Export-Package>
- !org.apache.karaf.shell.commands.impl*
+ org.apache.karaf.shell.commands.info;-noimport:=true
</Export-Package>
<Private-Package>
org.apache.karaf.util.process;-split-package:=merge-first,
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/shell/commands/src/main/java/org/apache/karaf/shell/commands/InfoProvider.java
----------------------------------------------------------------------
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/InfoProvider.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/InfoProvider.java
deleted file mode 100644
index a69f824..0000000
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/InfoProvider.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.karaf.shell.commands;
-
-import java.util.Properties;
-
-/**
- * A bundle can publish a service with this interface to offer some informations for the shell:info command
- */
-public interface InfoProvider {
-
- public String getName();
-
- public Properties getProperties();
-
-}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/InfoAction.java
----------------------------------------------------------------------
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/InfoAction.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/InfoAction.java
index dfa811d..c116861 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/InfoAction.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/InfoAction.java
@@ -37,7 +37,7 @@ import java.util.Map;
import java.util.Properties;
import java.util.concurrent.Callable;
-import org.apache.karaf.shell.commands.InfoProvider;
+import org.apache.karaf.shell.commands.info.InfoProvider;
import org.apache.karaf.shell.api.action.Action;
import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.lifecycle.Service;
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/ThreadsAction.java
----------------------------------------------------------------------
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/ThreadsAction.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/ThreadsAction.java
index fbf6692..24156c5 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/ThreadsAction.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/ThreadsAction.java
@@ -32,7 +32,7 @@ import org.apache.karaf.shell.api.action.Argument;
import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.Option;
import org.apache.karaf.shell.api.action.lifecycle.Service;
-import org.apache.karaf.shell.table.ShellTable;
+import org.apache.karaf.shell.support.table.ShellTable;
/**
* Command for showing the full tree of bundles that have been used to resolve
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/info/InfoBundleTrackerCustomizer.java
----------------------------------------------------------------------
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/info/InfoBundleTrackerCustomizer.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/info/InfoBundleTrackerCustomizer.java
index 86a3849..a674ad8 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/info/InfoBundleTrackerCustomizer.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/info/InfoBundleTrackerCustomizer.java
@@ -16,7 +16,7 @@
*/
package org.apache.karaf.shell.commands.impl.info;
-import org.apache.karaf.shell.commands.InfoProvider;
+import org.apache.karaf.shell.commands.info.InfoProvider;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleEvent;
[5/6] git commit: [KARAF-2805] Convert remaining commands to the new
model
Posted by gn...@apache.org.
[KARAF-2805] Convert remaining commands to the new model
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/571c6f99
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/571c6f99
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/571c6f99
Branch: refs/heads/master
Commit: 571c6f998181fc8e325ea55b388efea09a0bc319
Parents: 1c29cbc
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Wed Mar 5 23:21:46 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Wed Mar 5 23:21:46 2014 +0100
----------------------------------------------------------------------
bundle/command/pom.xml | 4 --
.../karaf/bundle/command/ListBundles.java | 2 +-
bundle/core/pom.xml | 8 ++-
config/command/pom.xml | 13 +++--
.../karaf/config/command/CancelCommand.java | 4 +-
.../config/command/ConfigCommandSupport.java | 20 ++++++--
.../command/ConfigPropertyCommandSupport.java | 6 +--
.../karaf/config/command/DeleteCommand.java | 12 ++---
.../karaf/config/command/EditCommand.java | 12 ++---
.../karaf/config/command/ListCommand.java | 6 +--
.../karaf/config/command/PropAppendCommand.java | 10 ++--
.../karaf/config/command/PropDelCommand.java | 7 +--
.../karaf/config/command/PropListCommand.java | 5 +-
.../karaf/config/command/PropSetCommand.java | 10 ++--
.../karaf/config/command/UpdateCommand.java | 4 +-
.../completers/ConfigurationCompleter.java | 32 +++++++++---
.../ConfigurationPropertyCompleter.java | 35 ++++++-------
.../OSGI-INF/blueprint/shell-config.xml | 28 ----------
.../karaf/config/command/EditCommandTest.java | 28 ++++------
.../config/command/MockCommandSession.java | 54 +++++++++++++++-----
.../karaf/config/command/UpdateCommandTest.java | 23 +++------
diagnostic/command/pom.xml | 16 +-----
.../karaf/diagnostic/command/DumpCommand.java | 24 +++++----
.../OSGI-INF/blueprint/shell-diagnostic.xml | 25 ---------
features/command/pom.xml | 5 --
.../command/ListFeatureVersionsCommand.java | 2 +-
.../features/command/ListFeaturesCommand.java | 2 +-
.../karaf/features/command/RepoListCommand.java | 2 +-
http/command/pom.xml | 22 +-------
.../karaf/http/command/ServletListCommand.java | 18 +++----
.../resources/OSGI-INF/blueprint/blueprint.xml | 25 ---------
instance/command/pom.xml | 11 ----
.../karaf/instance/command/ListCommand.java | 2 +-
jaas/command/pom.xml | 24 ++-------
.../karaf/jaas/command/CancelCommand.java | 10 ++--
.../karaf/jaas/command/GroupAddCommand.java | 6 +--
.../karaf/jaas/command/GroupDeleteCommand.java | 6 +--
.../karaf/jaas/command/GroupRoleAddCommand.java | 6 +--
.../jaas/command/GroupRoleDeleteCommand.java | 6 +--
.../karaf/jaas/command/JaasCommandSupport.java | 50 +++++++++---------
.../karaf/jaas/command/ListPendingCommand.java | 13 ++---
.../karaf/jaas/command/ListRealmsCommand.java | 18 +++----
.../karaf/jaas/command/ListUsersCommand.java | 19 +++----
.../karaf/jaas/command/ManageRealmCommand.java | 26 +++++-----
.../karaf/jaas/command/RoleAddCommand.java | 6 +--
.../karaf/jaas/command/RoleDeleteCommand.java | 6 +--
.../karaf/jaas/command/UpdateCommand.java | 15 +++---
.../karaf/jaas/command/UserAddCommand.java | 6 +--
.../karaf/jaas/command/UserDeleteCommand.java | 6 +--
.../completers/LoginModuleNameCompleter.java | 25 +++++----
.../jaas/command/completers/RealmCompleter.java | 27 +++++-----
.../OSGI-INF/blueprint/jaas-command.xml | 39 --------------
.../jaas/command/ManageRealmCommandTest.java | 31 +++++------
jdbc/command/pom.xml | 7 +--
.../karaf/jdbc/command/CreateCommand.java | 17 +++---
.../karaf/jdbc/command/DataSourcesCommand.java | 11 ++--
.../karaf/jdbc/command/DeleteCommand.java | 13 ++---
.../karaf/jdbc/command/ExecuteCommand.java | 13 ++---
.../apache/karaf/jdbc/command/InfoCommand.java | 15 +++---
.../karaf/jdbc/command/JdbcCommandSupport.java | 8 ++-
.../apache/karaf/jdbc/command/QueryCommand.java | 21 ++++----
.../karaf/jdbc/command/TablesCommand.java | 21 ++++----
.../DataSourcesFileNameCompleter.java | 14 ++---
.../completers/DataSourcesNameCompleter.java | 14 ++---
.../OSGI-INF/blueprint/jdbc-command.xml | 23 ---------
jms/command/pom.xml | 7 +--
.../apache/karaf/jms/command/BrowseCommand.java | 17 +++---
.../jms/command/ConnectionFactoriesCommand.java | 11 ++--
.../karaf/jms/command/ConsumeCommand.java | 11 ++--
.../apache/karaf/jms/command/CountCommand.java | 12 +++--
.../apache/karaf/jms/command/CreateCommand.java | 19 +++----
.../apache/karaf/jms/command/DeleteCommand.java | 14 ++---
.../apache/karaf/jms/command/InfoCommand.java | 10 ++--
.../karaf/jms/command/JmsCommandSupport.java | 6 +--
.../command/JmsConnectionCommandSupport.java | 8 +--
.../apache/karaf/jms/command/MoveCommand.java | 12 +++--
.../apache/karaf/jms/command/QueuesCommand.java | 10 ++--
.../apache/karaf/jms/command/SendCommand.java | 12 +++--
.../apache/karaf/jms/command/TopicsCommand.java | 10 ++--
.../ConnectionFactoriesFileNameCompleter.java | 18 ++++---
.../ConnectionFactoriesNameCompleter.java | 18 ++++---
.../OSGI-INF/blueprint/jms-command.xml | 23 ---------
jndi/command/pom.xml | 7 +--
.../apache/karaf/jndi/command/AliasCommand.java | 25 +++++----
.../apache/karaf/jndi/command/BindCommand.java | 25 +++++----
.../karaf/jndi/command/ContextsCommand.java | 27 ++++++----
.../karaf/jndi/command/CreateCommand.java | 23 ++++++---
.../karaf/jndi/command/DeleteCommand.java | 23 ++++++---
.../karaf/jndi/command/JndiCommandSupport.java | 38 --------------
.../apache/karaf/jndi/command/NamesCommand.java | 27 ++++++----
.../karaf/jndi/command/UnbindCommand.java | 23 ++++++---
.../command/completers/ContextsCompleter.java | 15 +++---
.../jndi/command/completers/NamesCompleter.java | 15 +++---
.../command/completers/ServicesIdCompleter.java | 15 +++---
.../OSGI-INF/blueprint/jndi-command.xml | 23 ---------
kar/command/pom.xml | 10 ----
.../karaf/kar/command/ListKarCommand.java | 2 +-
log/command/pom.xml | 22 ++++----
.../org/apache/karaf/log/command/ClearLog.java | 17 ++++--
.../karaf/log/command/DisplayException.java | 21 +++++---
.../apache/karaf/log/command/DisplayLog.java | 32 ++++++------
.../apache/karaf/log/command/GetLogLevel.java | 25 +++++----
.../karaf/log/command/LogCommandSupport.java | 32 ------------
.../org/apache/karaf/log/command/LogEntry.java | 36 ++++++-------
.../org/apache/karaf/log/command/LogTail.java | 23 +++++++--
.../apache/karaf/log/command/SetLogLevel.java | 24 ++++++---
.../resources/OSGI-INF/blueprint/shell-log.xml | 27 ----------
obr/command/pom.xml | 15 ++----
.../apache/karaf/obr/command/AddUrlCommand.java | 6 +--
.../apache/karaf/obr/command/DeployCommand.java | 8 +--
.../apache/karaf/obr/command/FindCommand.java | 6 +--
.../apache/karaf/obr/command/InfoCommand.java | 6 +--
.../apache/karaf/obr/command/ListCommand.java | 13 ++---
.../karaf/obr/command/ListUrlCommand.java | 8 +--
.../karaf/obr/command/ObrCommandSupport.java | 16 +++---
.../karaf/obr/command/RefreshUrlCommand.java | 8 +--
.../karaf/obr/command/RemoveUrlCommand.java | 8 +--
.../karaf/obr/command/ResolveCommand.java | 8 +--
.../apache/karaf/obr/command/SourceCommand.java | 8 +--
.../apache/karaf/obr/command/StartCommand.java | 8 +--
.../resources/OSGI-INF/blueprint/blueprint.xml | 25 ---------
.../karaf/obr/command/ListCommandTest.java | 2 +-
package/command/pom.xml | 16 ++----
.../apache/karaf/packages/command/Exports.java | 25 ++++-----
.../apache/karaf/packages/command/Imports.java | 23 ++++-----
.../OSGI-INF/blueprint/shell-bundles.xml | 25 ---------
package/core/pom.xml | 6 +--
region/command/pom.xml | 14 +++--
.../karaf/region/commands/AddBundleCommand.java | 8 +--
.../karaf/region/commands/AddFilterCommand.java | 8 +--
.../karaf/region/commands/AddRegionCommand.java | 6 +--
.../karaf/region/commands/InfoCommand.java | 10 ++--
.../region/commands/RegionCommandSupport.java | 18 ++++---
.../OSGI-INF/blueprint/region-commands.xml | 26 ----------
service/command/pom.xml | 13 +++--
.../karaf/service/command/ListServices.java | 37 ++++++++------
.../service/command/ObjectClassCompleter.java | 15 +++---
.../org/apache/karaf/service/command/Wait.java | 23 +++++----
.../OSGI-INF/blueprint/shell-services.xml | 26 ----------
.../service/command/ListServiceNamesTest.java | 2 +-
.../karaf/service/command/ListServicesTest.java | 2 +-
shell/commands/pom.xml | 12 +----
.../karaf/shell/commands/InfoProvider.java | 30 -----------
.../karaf/shell/commands/impl/InfoAction.java | 2 +-
.../shell/commands/impl/ThreadsAction.java | 2 +-
.../impl/info/InfoBundleTrackerCustomizer.java | 2 +-
.../commands/impl/info/PojoInfoProvider.java | 2 +-
.../karaf/shell/commands/info/InfoProvider.java | 30 +++++++++++
system/command/pom.xml | 17 +-----
.../system/commands/AbstractSystemAction.java | 33 ------------
.../karaf/system/commands/FrameworkOptions.java | 18 ++++---
.../org/apache/karaf/system/commands/Name.java | 18 +++++--
.../apache/karaf/system/commands/Shutdown.java | 26 ++++++----
.../karaf/system/commands/StartLevel.java | 17 +++---
.../karaf/system/commands/SystemProperty.java | 34 ++++++++----
.../apache/karaf/system/commands/Version.java | 15 ++++--
.../OSGI-INF/blueprint/system-commands.xml | 25 ---------
web/command/pom.xml | 15 +-----
.../org/apache/karaf/web/commands/List.java | 22 ++++----
.../org/apache/karaf/web/commands/Start.java | 17 +++---
.../org/apache/karaf/web/commands/Stop.java | 19 +++----
.../OSGI-INF/blueprint/web-commands.xml | 25 ---------
162 files changed, 1109 insertions(+), 1494 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/bundle/command/pom.xml
----------------------------------------------------------------------
diff --git a/bundle/command/pom.xml b/bundle/command/pom.xml
index d6bd26a..f1a0867 100644
--- a/bundle/command/pom.xml
+++ b/bundle/command/pom.xml
@@ -40,10 +40,6 @@
<dependencies>
<dependency>
<groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.table</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.shell</groupId>
<artifactId>org.apache.karaf.shell.core</artifactId>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/bundle/command/src/main/java/org/apache/karaf/bundle/command/ListBundles.java
----------------------------------------------------------------------
diff --git a/bundle/command/src/main/java/org/apache/karaf/bundle/command/ListBundles.java b/bundle/command/src/main/java/org/apache/karaf/bundle/command/ListBundles.java
index 4ab0af9..107e578 100644
--- a/bundle/command/src/main/java/org/apache/karaf/bundle/command/ListBundles.java
+++ b/bundle/command/src/main/java/org/apache/karaf/bundle/command/ListBundles.java
@@ -19,12 +19,12 @@ package org.apache.karaf.bundle.command;
import org.apache.karaf.bundle.core.BundleInfo;
import org.apache.karaf.bundle.core.BundleService;
import org.apache.karaf.bundle.core.BundleState;
-import org.apache.karaf.shell.table.ShellTable;
import org.apache.karaf.shell.api.action.Action;
import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.Option;
import org.apache.karaf.shell.api.action.lifecycle.Reference;
import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.startlevel.FrameworkStartLevel;
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/bundle/core/pom.xml
----------------------------------------------------------------------
diff --git a/bundle/core/pom.xml b/bundle/core/pom.xml
index e1ba3fa..dbcd62a 100644
--- a/bundle/core/pom.xml
+++ b/bundle/core/pom.xml
@@ -107,11 +107,9 @@
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
- <Export-Package>org.apache.karaf.bundle.core</Export-Package>
- <Import-Package>
- org.apache.felix.service.command;status=provisional,
- *
- </Import-Package>
+ <Export-Package>
+ org.apache.karaf.bundle.core;-noimport:=true
+ </Export-Package>
<Private-Package>
org.apache.karaf.bundle.core.internal,
org.apache.karaf.util.maven,
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/config/command/pom.xml
----------------------------------------------------------------------
diff --git a/config/command/pom.xml b/config/command/pom.xml
index 2a3636f..35f7e1e 100644
--- a/config/command/pom.xml
+++ b/config/command/pom.xml
@@ -44,13 +44,7 @@
</dependency>
<dependency>
<groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.console</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.gogo.runtime</artifactId>
- <scope>provided</scope>
+ <artifactId>org.apache.karaf.shell.core</artifactId>
</dependency>
<dependency>
@@ -97,6 +91,11 @@
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
+ <configuration>
+ <instructions>
+ <Karaf-Commands>*</Karaf-Commands>
+ </instructions>
+ </configuration>
</plugin>
</plugins>
</build>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/config/command/src/main/java/org/apache/karaf/config/command/CancelCommand.java
----------------------------------------------------------------------
diff --git a/config/command/src/main/java/org/apache/karaf/config/command/CancelCommand.java b/config/command/src/main/java/org/apache/karaf/config/command/CancelCommand.java
index d3274dd..dff43fa 100644
--- a/config/command/src/main/java/org/apache/karaf/config/command/CancelCommand.java
+++ b/config/command/src/main/java/org/apache/karaf/config/command/CancelCommand.java
@@ -16,8 +16,8 @@
*/
package org.apache.karaf.config.command;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "config", name = "cancel", description = "Cancels the changes to the configuration being edited.")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/config/command/src/main/java/org/apache/karaf/config/command/ConfigCommandSupport.java
----------------------------------------------------------------------
diff --git a/config/command/src/main/java/org/apache/karaf/config/command/ConfigCommandSupport.java b/config/command/src/main/java/org/apache/karaf/config/command/ConfigCommandSupport.java
index 9111b53..fe0ca93 100644
--- a/config/command/src/main/java/org/apache/karaf/config/command/ConfigCommandSupport.java
+++ b/config/command/src/main/java/org/apache/karaf/config/command/ConfigCommandSupport.java
@@ -19,8 +19,9 @@ package org.apache.karaf.config.command;
import java.util.Dictionary;
import org.apache.karaf.config.core.ConfigRepository;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.console.Session;
/**
* Abstract class from which all commands related to the ConfigurationAdmin
@@ -28,7 +29,7 @@ import org.apache.karaf.shell.console.OsgiCommandSupport;
* This command retrieves a reference to the ConfigurationAdmin service before
* calling another method to actually process the command.
*/
-public abstract class ConfigCommandSupport extends OsgiCommandSupport {
+public abstract class ConfigCommandSupport implements Action {
public static final String PROPERTY_CONFIG_PID = "ConfigCommand.PID";
public static final String PROPERTY_CONFIG_PROPS = "ConfigCommand.Props";
@@ -37,6 +38,16 @@ public abstract class ConfigCommandSupport extends OsgiCommandSupport {
@Reference
protected ConfigRepository configRepository;
+ @Reference
+ protected Session session;
+
+ @Override
+ public Object execute() throws Exception {
+ return doExecute();
+ }
+
+ protected abstract Object doExecute() throws Exception;
+
@SuppressWarnings("rawtypes")
protected Dictionary getEditedProps() throws Exception {
return (Dictionary) this.session.get(PROPERTY_CONFIG_PROPS);
@@ -46,4 +57,7 @@ public abstract class ConfigCommandSupport extends OsgiCommandSupport {
this.configRepository = configRepository;
}
+ public void setSession(Session session) {
+ this.session = session;
+ }
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 3e6af04..619c224 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
@@ -20,8 +20,8 @@ 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;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.Option;
/**
* Abstract class which commands that are related to property processing should extend.
@@ -29,7 +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)
+ @Completion(ConfigurationCompleter.class)
protected String pid;
@SuppressWarnings("rawtypes")
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 506ce48..6953ef0 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
@@ -17,18 +17,18 @@
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;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "config", name = "delete", description = "Delete a configuration.")
@Service
public class DeleteCommand extends ConfigCommandSupport {
@Argument(index = 0, name = "pid", description = "PID of the configuration", required = true, multiValued = false)
- @Completer(ConfigurationCompleter.class)
+ @Completion(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/571c6f99/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 aeaede3..8c48b83 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
@@ -19,11 +19,11 @@ 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.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.osgi.service.cm.Configuration;
@Command(scope = "config", name = "edit", description = "Creates or edits a configuration.", detailedDescription="classpath:edit.txt")
@@ -31,7 +31,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)
+ @Completion(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/571c6f99/config/command/src/main/java/org/apache/karaf/config/command/ListCommand.java
----------------------------------------------------------------------
diff --git a/config/command/src/main/java/org/apache/karaf/config/command/ListCommand.java b/config/command/src/main/java/org/apache/karaf/config/command/ListCommand.java
index 8589e72..eff3476 100644
--- a/config/command/src/main/java/org/apache/karaf/config/command/ListCommand.java
+++ b/config/command/src/main/java/org/apache/karaf/config/command/ListCommand.java
@@ -19,9 +19,9 @@ package org.apache.karaf.config.command;
import java.util.Dictionary;
import java.util.Enumeration;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.osgi.service.cm.Configuration;
@Command(scope = "config", name = "list", description = "Lists existing configurations.")
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 6d13e13..f021146 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
@@ -19,17 +19,17 @@ 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;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@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.")
@Service
public class PropAppendCommand extends ConfigPropertyCommandSupport {
@Argument(index = 0, name = "name", description = "The name of the property", required = true, multiValued = false)
- @Completer(ConfigurationPropertyCompleter.class)
+ @Completion(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/571c6f99/config/command/src/main/java/org/apache/karaf/config/command/PropDelCommand.java
----------------------------------------------------------------------
diff --git a/config/command/src/main/java/org/apache/karaf/config/command/PropDelCommand.java b/config/command/src/main/java/org/apache/karaf/config/command/PropDelCommand.java
index 3280454..e416cf6 100644
--- a/config/command/src/main/java/org/apache/karaf/config/command/PropDelCommand.java
+++ b/config/command/src/main/java/org/apache/karaf/config/command/PropDelCommand.java
@@ -18,9 +18,10 @@ package org.apache.karaf.config.command;
import java.util.Dictionary;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
@Command(scope = "config", name = "property-delete", description = "Deletes a property from the configuration being edited.")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/config/command/src/main/java/org/apache/karaf/config/command/PropListCommand.java
----------------------------------------------------------------------
diff --git a/config/command/src/main/java/org/apache/karaf/config/command/PropListCommand.java b/config/command/src/main/java/org/apache/karaf/config/command/PropListCommand.java
index d0b208b..a0d3a61 100644
--- a/config/command/src/main/java/org/apache/karaf/config/command/PropListCommand.java
+++ b/config/command/src/main/java/org/apache/karaf/config/command/PropListCommand.java
@@ -18,8 +18,9 @@ package org.apache.karaf.config.command;
import java.util.Dictionary;
import java.util.Enumeration;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
+
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "config", name = "property-list", description = "Lists properties from the currently edited configuration.")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 16e58b9..8337f6a 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
@@ -19,17 +19,17 @@ 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;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "config", name = "property-set", description = "Sets a property in the currently edited configuration.")
@Service
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)
+ @Completion(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/571c6f99/config/command/src/main/java/org/apache/karaf/config/command/UpdateCommand.java
----------------------------------------------------------------------
diff --git a/config/command/src/main/java/org/apache/karaf/config/command/UpdateCommand.java b/config/command/src/main/java/org/apache/karaf/config/command/UpdateCommand.java
index ae48722..cc368b8 100644
--- a/config/command/src/main/java/org/apache/karaf/config/command/UpdateCommand.java
+++ b/config/command/src/main/java/org/apache/karaf/config/command/UpdateCommand.java
@@ -18,8 +18,8 @@ package org.apache.karaf.config.command;
import java.util.Dictionary;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "config", name = "update", description = "Saves and propagates changes from the configuration being edited.")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/config/command/src/main/java/org/apache/karaf/config/command/completers/ConfigurationCompleter.java
----------------------------------------------------------------------
diff --git a/config/command/src/main/java/org/apache/karaf/config/command/completers/ConfigurationCompleter.java b/config/command/src/main/java/org/apache/karaf/config/command/completers/ConfigurationCompleter.java
index 3122ca2..fe60c56 100644
--- a/config/command/src/main/java/org/apache/karaf/config/command/completers/ConfigurationCompleter.java
+++ b/config/command/src/main/java/org/apache/karaf/config/command/completers/ConfigurationCompleter.java
@@ -23,11 +23,16 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import org.apache.karaf.shell.inject.Init;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
-import org.apache.karaf.shell.console.completer.StringsCompleter;
-import org.apache.karaf.shell.console.Completer;
+import org.apache.karaf.shell.api.action.lifecycle.Destroy;
+import org.apache.karaf.shell.api.action.lifecycle.Init;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.CommandLine;
+import org.apache.karaf.shell.api.console.Completer;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
import org.osgi.service.cm.Configuration;
import org.osgi.service.cm.ConfigurationAdmin;
import org.osgi.service.cm.ConfigurationEvent;
@@ -47,12 +52,19 @@ public class ConfigurationCompleter implements Completer, ConfigurationListener
@Reference
private ConfigurationAdmin admin;
+ @Reference
+ private BundleContext bundleContext;
+
+ private ServiceRegistration<ConfigurationListener> registration;
+
public void setAdmin(ConfigurationAdmin admin) {
this.admin = admin;
}
@Init
public void init() {
+ registration = bundleContext.registerService(ConfigurationListener.class, this, null);
+
Configuration[] configs;
try {
configs = admin.listConfigurations(null);
@@ -71,9 +83,13 @@ public class ConfigurationCompleter implements Completer, ConfigurationListener
delegate.getStrings().addAll(pids);
}
- @SuppressWarnings("rawtypes")
- public int complete(final String buffer, final int cursor, final List candidates) {
- return delegate.complete(buffer, cursor, candidates);
+ @Destroy
+ public void destroy() {
+ registration.unregister();
+ }
+
+ public int complete(final Session session, final CommandLine commandLine, final List<String> candidates) {
+ return delegate.complete(session, commandLine, candidates);
}
public void configurationEvent(ConfigurationEvent configurationEvent) {
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/config/command/src/main/java/org/apache/karaf/config/command/completers/ConfigurationPropertyCompleter.java
----------------------------------------------------------------------
diff --git a/config/command/src/main/java/org/apache/karaf/config/command/completers/ConfigurationPropertyCompleter.java b/config/command/src/main/java/org/apache/karaf/config/command/completers/ConfigurationPropertyCompleter.java
index 2d98098..2b43fec 100644
--- a/config/command/src/main/java/org/apache/karaf/config/command/completers/ConfigurationPropertyCompleter.java
+++ b/config/command/src/main/java/org/apache/karaf/config/command/completers/ConfigurationPropertyCompleter.java
@@ -27,14 +27,13 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import org.apache.felix.service.command.CommandSession;
import org.apache.karaf.config.command.ConfigCommandSupport;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
-import org.apache.karaf.shell.console.CommandSessionHolder;
-import org.apache.karaf.shell.console.Completer;
-import org.apache.karaf.shell.console.completer.ArgumentCompleter;
-import org.apache.karaf.shell.console.completer.StringsCompleter;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.CommandLine;
+import org.apache.karaf.shell.api.console.Completer;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
import org.osgi.framework.InvalidSyntaxException;
import org.osgi.service.cm.Configuration;
import org.osgi.service.cm.ConfigurationAdmin;
@@ -57,30 +56,26 @@ public class ConfigurationPropertyCompleter implements Completer {
private ConfigurationAdmin configAdmin;
@SuppressWarnings("rawtypes")
- public int complete(final String buffer, final int cursor, final List candidates) {
- CommandSession session = CommandSessionHolder.getSession();
+ public int complete(final Session session, final CommandLine commandLine, final List<String> candidates) {
if (session != null) {
- String pid = getPid(session);
+ String pid = getPid(session, commandLine);
Set<String> propertyNames = getPropertyNames(pid);
delegate.getStrings().clear();
if (propertyNames != null && !propertyNames.isEmpty()) {
delegate.getStrings().addAll(propertyNames);
}
}
- return delegate.complete(buffer,cursor,candidates);
+ return delegate.complete(session, commandLine, candidates);
}
/**
- * Retrieves the pid stored in the {@link CommandSession} or passed as an argument.
- * Argument takes precedence from pid stored in the {@link CommandSession}.
- * @param commandSession
- * @return
+ * Retrieves the pid stored in the {@link Session} or passed as an argument.
+ * Argument takes precedence from pid stored in the {@link Session}.
*/
- private String getPid(CommandSession commandSession) {
- String pid = (String) commandSession.get(ConfigCommandSupport.PROPERTY_CONFIG_PID);
- ArgumentCompleter.ArgumentList list = (ArgumentCompleter.ArgumentList) commandSession.get(ArgumentCompleter.ARGUMENTS_LIST);
- if (list != null && list.getArguments() != null && list.getArguments().length > 0) {
- List<String> arguments = Arrays.asList(list.getArguments());
+ private String getPid(Session session, CommandLine commandLine) {
+ String pid = (String) session.get(ConfigCommandSupport.PROPERTY_CONFIG_PID);
+ if (commandLine.getArguments().length > 0) {
+ List<String> arguments = Arrays.asList(commandLine.getArguments());
if (arguments.contains(OPTION)) {
int index = arguments.indexOf(OPTION);
if (arguments.size() > index) {
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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
deleted file mode 100644
index 4e91d25..0000000
--- a/config/command/src/main/resources/OSGI-INF/blueprint/shell-config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
- xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
- xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0"
- default-activation="lazy">
-
- <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0"
- scan="org.apache.karaf.config.command.*" />
-
-</blueprint>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/config/command/src/test/java/org/apache/karaf/config/command/EditCommandTest.java
----------------------------------------------------------------------
diff --git a/config/command/src/test/java/org/apache/karaf/config/command/EditCommandTest.java b/config/command/src/test/java/org/apache/karaf/config/command/EditCommandTest.java
index c019644..09dc000 100644
--- a/config/command/src/test/java/org/apache/karaf/config/command/EditCommandTest.java
+++ b/config/command/src/test/java/org/apache/karaf/config/command/EditCommandTest.java
@@ -16,24 +16,20 @@
*/
package org.apache.karaf.config.command;
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-
import java.util.Dictionary;
import java.util.Properties;
import junit.framework.TestCase;
-
-import org.apache.felix.service.command.CommandSession;
-import org.apache.karaf.config.command.ConfigCommandSupport;
-import org.apache.karaf.config.command.EditCommand;
import org.apache.karaf.config.core.impl.ConfigRepositoryImpl;
-import org.easymock.EasyMock;
+import org.apache.karaf.shell.api.console.Session;
import org.osgi.framework.BundleContext;
import org.osgi.service.cm.Configuration;
import org.osgi.service.cm.ConfigurationAdmin;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+
/**
* Test cases for {@link EditCommand}
*/
@@ -44,23 +40,17 @@ public class EditCommandTest extends TestCase {
private EditCommand command;
private BundleContext context;
private ConfigurationAdmin admin;
- private CommandSession session;
+ private Session session;
@Override
protected void setUp() throws Exception {
command = new EditCommand();
-
- context = EasyMock.createMock(BundleContext.class);
- command.setBundleContext(context);
-
admin = createMock(ConfigurationAdmin.class);
command.setConfigRepository(new ConfigRepositoryImpl(admin));
- expect(context.getBundle(0)).andReturn(null).anyTimes();
- replay(context);
-
session = new MockCommandSession();
+ command.setSession(session);
}
public void testExecuteOnExistingPid() throws Exception {
@@ -74,7 +64,7 @@ public class EditCommandTest extends TestCase {
replay(config);
command.pid = PID;
- command.execute(session);
+ command.execute();
// the PID and Dictionary should have been set on the session
assertEquals("The PID should be set on the session",
@@ -94,7 +84,7 @@ public class EditCommandTest extends TestCase {
replay(config);
command.pid = PID;
- command.execute(session);
+ command.execute();
// the PID and an empty Dictionary should have been set on the session
assertEquals("The PID should be set on the session",
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/config/command/src/test/java/org/apache/karaf/config/command/MockCommandSession.java
----------------------------------------------------------------------
diff --git a/config/command/src/test/java/org/apache/karaf/config/command/MockCommandSession.java b/config/command/src/test/java/org/apache/karaf/config/command/MockCommandSession.java
index 8982de1..7fa430b 100644
--- a/config/command/src/test/java/org/apache/karaf/config/command/MockCommandSession.java
+++ b/config/command/src/test/java/org/apache/karaf/config/command/MockCommandSession.java
@@ -16,17 +16,22 @@
*/
package org.apache.karaf.config.command;
+import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.util.HashMap;
import java.util.Map;
-import org.apache.felix.service.command.CommandSession;
+import org.apache.karaf.shell.api.console.History;
+import org.apache.karaf.shell.api.console.Registry;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.api.console.SessionFactory;
+import org.apache.karaf.shell.api.console.Terminal;
/*
* A mock CommandSession implementation that only cares about the properties set on the session
*/
-class MockCommandSession implements CommandSession {
+class MockCommandSession implements Session {
private Map<String, Object> properties = new HashMap<String, Object>();
@@ -34,21 +39,11 @@ class MockCommandSession implements CommandSession {
// not implemented
}
- public Object convert(Class<?> type, Object instance) {
- // not implemented
- return null;
- }
-
public Object execute(CharSequence commandline) throws Exception {
// not implemented
return null;
}
- public CharSequence format(Object target, int level) {
- // not implemented
- return null;
- }
-
public Object get(String name) {
return properties.get(name);
}
@@ -66,4 +61,39 @@ class MockCommandSession implements CommandSession {
public void put(String name, Object value) {
properties.put(name, value);
}
+
+ @Override
+ public String readLine(String prompt, Character mask) throws IOException {
+ return null;
+ }
+
+ @Override
+ public Terminal getTerminal() {
+ return null;
+ }
+
+ @Override
+ public History getHistory() {
+ return null;
+ }
+
+ @Override
+ public Registry getRegistry() {
+ return null;
+ }
+
+ @Override
+ public SessionFactory getFactory() {
+ return null;
+ }
+
+ @Override
+ public String resolveCommand(String name) {
+ return null;
+ }
+
+ @Override
+ public void run() {
+
+ }
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/config/command/src/test/java/org/apache/karaf/config/command/UpdateCommandTest.java
----------------------------------------------------------------------
diff --git a/config/command/src/test/java/org/apache/karaf/config/command/UpdateCommandTest.java b/config/command/src/test/java/org/apache/karaf/config/command/UpdateCommandTest.java
index 64d92ac..e3f58b5 100644
--- a/config/command/src/test/java/org/apache/karaf/config/command/UpdateCommandTest.java
+++ b/config/command/src/test/java/org/apache/karaf/config/command/UpdateCommandTest.java
@@ -27,7 +27,6 @@ import junit.framework.TestCase;
import org.apache.karaf.config.core.ConfigRepository;
import org.easymock.EasyMock;
-import org.osgi.framework.BundleContext;
/**
* Test cases for {@link EditCommand}
@@ -41,40 +40,34 @@ public class UpdateCommandTest extends TestCase {
Dictionary<String, Object> props = new Hashtable<String, Object>();
UpdateCommand command = new UpdateCommand();
- BundleContext context = EasyMock.createMock(BundleContext.class);
- command.setBundleContext(context);
ConfigRepository configRepo = EasyMock.createMock(ConfigRepository.class);
configRepo.update(EasyMock.eq(PID), EasyMock.eq(props));
EasyMock.expectLastCall();
command.setConfigRepository(configRepo);
- expect(context.getBundle(0)).andReturn(null).anyTimes();
-
+
MockCommandSession session = createMockSessionForFactoryEdit(PID, false, props);
- replay(context);
+ command.setSession(session);
replay(configRepo);
- command.execute(session);
- EasyMock.verify(context, configRepo);
+ command.execute();
+ EasyMock.verify(configRepo);
}
public void testupdateOnNewFactoryPid() throws Exception {
Dictionary<String, Object> props = new Hashtable<String, Object>();
UpdateCommand command = new UpdateCommand();
- BundleContext context = EasyMock.createMock(BundleContext.class);
- command.setBundleContext(context);
ConfigRepository configRepo = EasyMock.createMock(ConfigRepository.class);
expect(configRepo.createFactoryConfiguration(EasyMock.eq(FACTORY_PID), EasyMock.eq(props)))
.andReturn(PID + ".35326647");
command.setConfigRepository(configRepo);
- expect(context.getBundle(0)).andReturn(null).anyTimes();
-
+
MockCommandSession session = createMockSessionForFactoryEdit(FACTORY_PID, true, props);
- replay(context);
+ command.setSession(session);
replay(configRepo);
- command.execute(session);
- EasyMock.verify(context, configRepo);
+ command.execute();
+ EasyMock.verify(configRepo);
}
private MockCommandSession createMockSessionForFactoryEdit(String pid, boolean isFactory,
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/diagnostic/command/pom.xml
----------------------------------------------------------------------
diff --git a/diagnostic/command/pom.xml b/diagnostic/command/pom.xml
index 741b472..710b9c5 100644
--- a/diagnostic/command/pom.xml
+++ b/diagnostic/command/pom.xml
@@ -43,13 +43,6 @@
<artifactId>org.osgi.core</artifactId>
<scope>provided</scope>
</dependency>
-
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.gogo.runtime</artifactId>
- <scope>provided</scope>
- </dependency>
-
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.compendium</artifactId>
@@ -61,7 +54,7 @@
</dependency>
<dependency>
<groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.console</artifactId>
+ <artifactId>org.apache.karaf.shell.core</artifactId>
</dependency>
</dependencies>
@@ -87,12 +80,7 @@
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
- <Import-Package>
- org.apache.aries.blueprint,
- org.osgi.service.blueprint.container,
- org.osgi.service.blueprint.reflect,
- *
- </Import-Package>
+ <Karaf-Commands>*</Karaf-Commands>
</instructions>
</configuration>
</plugin>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/diagnostic/command/src/main/java/org/apache/karaf/diagnostic/command/DumpCommand.java
----------------------------------------------------------------------
diff --git a/diagnostic/command/src/main/java/org/apache/karaf/diagnostic/command/DumpCommand.java b/diagnostic/command/src/main/java/org/apache/karaf/diagnostic/command/DumpCommand.java
index 9a0af4c..3f6c607 100644
--- a/diagnostic/command/src/main/java/org/apache/karaf/diagnostic/command/DumpCommand.java
+++ b/diagnostic/command/src/main/java/org/apache/karaf/diagnostic/command/DumpCommand.java
@@ -22,22 +22,23 @@ import java.util.Date;
import java.util.LinkedList;
import java.util.List;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
import org.apache.karaf.diagnostic.core.DumpDestination;
import org.apache.karaf.diagnostic.core.DumpProvider;
import org.apache.karaf.diagnostic.core.common.DirectoryDumpDestination;
import org.apache.karaf.diagnostic.core.common.ZipDumpDestination;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
/**
* Command to create dump from shell.
*/
@Command(scope = "dev", name = "dump-create", description = "Creates zip archive with diagnostic info.")
@Service
-public class DumpCommand extends OsgiCommandSupport {
+public class DumpCommand implements Action {
/**
* Output format of the filename if not defined otherwise
@@ -56,14 +57,15 @@ public class DumpCommand extends OsgiCommandSupport {
@Argument(name = "name", description = "Name of created zip or directory", required = false)
String fileName;
+ @Reference
+ List<DumpProvider> providers;
+
@Override
- protected Object doExecute() throws Exception {
+ public Object execute() throws Exception {
DumpDestination destination;
- List<DumpProvider> providers = getAllServices(DumpProvider.class);
-
if (providers.isEmpty()) {
- session.getConsole().println("Unable to create dump. No providers were found");
+ System.out.println("Unable to create dump. No providers were found");
return null;
}
@@ -87,7 +89,7 @@ public class DumpCommand extends OsgiCommandSupport {
provider.createDump(destination);
}
destination.save();
- session.getConsole().println("Diagnostic dump created at " + target.getAbsolutePath() + ".");
+ System.out.println("Diagnostic dump created at " + target.getAbsolutePath() + ".");
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/diagnostic/command/src/main/resources/OSGI-INF/blueprint/shell-diagnostic.xml
----------------------------------------------------------------------
diff --git a/diagnostic/command/src/main/resources/OSGI-INF/blueprint/shell-diagnostic.xml b/diagnostic/command/src/main/resources/OSGI-INF/blueprint/shell-diagnostic.xml
deleted file mode 100644
index ff508d7..0000000
--- a/diagnostic/command/src/main/resources/OSGI-INF/blueprint/shell-diagnostic.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy">
-
- <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0"
- scan="org.apache.karaf.diagnostic.command.*" />
-
-</blueprint>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/features/command/pom.xml
----------------------------------------------------------------------
diff --git a/features/command/pom.xml b/features/command/pom.xml
index debe123..1aedcde 100644
--- a/features/command/pom.xml
+++ b/features/command/pom.xml
@@ -49,11 +49,6 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.table</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>org.apache.karaf.features</groupId>
<artifactId>org.apache.karaf.features.core</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 792825c..b2c5e42 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
@@ -22,12 +22,12 @@ 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.table.ShellTable;
import org.apache.karaf.shell.api.action.Argument;
import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.Completion;
import org.apache.karaf.shell.api.action.Option;
import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
@Command(scope = "feature", name = "version-list", description = "Lists all versions of a feature available from the currently available repositories.")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/features/command/src/main/java/org/apache/karaf/features/command/ListFeaturesCommand.java
----------------------------------------------------------------------
diff --git a/features/command/src/main/java/org/apache/karaf/features/command/ListFeaturesCommand.java b/features/command/src/main/java/org/apache/karaf/features/command/ListFeaturesCommand.java
index 0cb6d3c..40c45b4 100644
--- a/features/command/src/main/java/org/apache/karaf/features/command/ListFeaturesCommand.java
+++ b/features/command/src/main/java/org/apache/karaf/features/command/ListFeaturesCommand.java
@@ -24,10 +24,10 @@ import java.util.List;
import org.apache.karaf.features.Feature;
import org.apache.karaf.features.FeaturesService;
import org.apache.karaf.features.Repository;
-import org.apache.karaf.shell.table.ShellTable;
import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.Option;
import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
@Command(scope = "feature", name = "list", description = "Lists all existing features available from the defined repositories.")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/features/command/src/main/java/org/apache/karaf/features/command/RepoListCommand.java
----------------------------------------------------------------------
diff --git a/features/command/src/main/java/org/apache/karaf/features/command/RepoListCommand.java b/features/command/src/main/java/org/apache/karaf/features/command/RepoListCommand.java
index af180bd..a735aa6 100644
--- a/features/command/src/main/java/org/apache/karaf/features/command/RepoListCommand.java
+++ b/features/command/src/main/java/org/apache/karaf/features/command/RepoListCommand.java
@@ -21,11 +21,11 @@ import java.util.List;
import org.apache.karaf.features.FeaturesService;
import org.apache.karaf.features.Repository;
-import org.apache.karaf.shell.table.ShellTable;
import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.Option;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.apache.karaf.shell.support.MultiException;
+import org.apache.karaf.shell.support.table.ShellTable;
@Command(scope = "feature", name = "repo-list", description = "Displays a list of all defined repositories.")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/http/command/pom.xml
----------------------------------------------------------------------
diff --git a/http/command/pom.xml b/http/command/pom.xml
index 0e7e06e..3189101 100644
--- a/http/command/pom.xml
+++ b/http/command/pom.xml
@@ -38,25 +38,15 @@
</properties>
<dependencies>
- <dependency>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.table</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.console</artifactId>
+ <artifactId>org.apache.karaf.shell.core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.karaf.http</groupId>
<artifactId>org.apache.karaf.http.core</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.gogo.runtime</artifactId>
- <scope>provided</scope>
- </dependency>
-
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
@@ -108,20 +98,12 @@
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Export-Package>${project.artifactId}*;version=${project.version}</Export-Package>
- <Import-Package>
- org.apache.aries.blueprint,
- org.osgi.service.blueprint.container,
- org.osgi.service.blueprint.reflect,
- org.apache.felix.service.command,
- org.apache.karaf.shell.commands,
- org.apache.karaf.shell.console,
- *
- </Import-Package>
<Private-Package>
org.apache.felix.utils.version,
org.apache.felix.utils.manifest,
org.apache.karaf.util;-split-package:=merge-first
</Private-Package>
+ <Karaf-Commands>*</Karaf-Commands>
<_versionpolicy>${bnd.version.policy}</_versionpolicy>
</instructions>
</configuration>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/http/command/src/main/java/org/apache/karaf/http/command/ServletListCommand.java
----------------------------------------------------------------------
diff --git a/http/command/src/main/java/org/apache/karaf/http/command/ServletListCommand.java b/http/command/src/main/java/org/apache/karaf/http/command/ServletListCommand.java
index 6fe7313..1932499 100644
--- a/http/command/src/main/java/org/apache/karaf/http/command/ServletListCommand.java
+++ b/http/command/src/main/java/org/apache/karaf/http/command/ServletListCommand.java
@@ -20,17 +20,17 @@ import java.util.Arrays;
import org.apache.karaf.http.core.ServletInfo;
import org.apache.karaf.http.core.ServletService;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
-import org.apache.karaf.shell.table.Col;
-import org.apache.karaf.shell.table.ShellTable;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.Col;
+import org.apache.karaf.shell.support.table.ShellTable;
@Command(scope = "http", name = "list", description = "Lists details for servlets.")
@Service
-public class ServletListCommand extends OsgiCommandSupport {
+public class ServletListCommand implements Action {
@Option(name = "--no-format", description = "Disable table rendered output", required = false, multiValued = false)
boolean noFormat;
@@ -39,7 +39,7 @@ public class ServletListCommand extends OsgiCommandSupport {
private ServletService servletService;
@Override
- protected Object doExecute() throws Exception {
+ public Object execute() throws Exception {
ShellTable table = new ShellTable();
table.column(new Col("ID"));
table.column(new Col("Servlet"));
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/http/command/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/http/command/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/http/command/src/main/resources/OSGI-INF/blueprint/blueprint.xml
deleted file mode 100644
index 4c9f164..0000000
--- a/http/command/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy">
-
- <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0"
- scan="org.apache.karaf.http.command.*" />
-
-</blueprint>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/instance/command/pom.xml
----------------------------------------------------------------------
diff --git a/instance/command/pom.xml b/instance/command/pom.xml
index 52058cd..7240ddd 100644
--- a/instance/command/pom.xml
+++ b/instance/command/pom.xml
@@ -39,23 +39,12 @@
<dependencies>
<dependency>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.table</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.gogo.runtime</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.compendium</artifactId>
<scope>provided</scope>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/instance/command/src/main/java/org/apache/karaf/instance/command/ListCommand.java
----------------------------------------------------------------------
diff --git a/instance/command/src/main/java/org/apache/karaf/instance/command/ListCommand.java b/instance/command/src/main/java/org/apache/karaf/instance/command/ListCommand.java
index 368259a..fe571a8 100644
--- a/instance/command/src/main/java/org/apache/karaf/instance/command/ListCommand.java
+++ b/instance/command/src/main/java/org/apache/karaf/instance/command/ListCommand.java
@@ -17,10 +17,10 @@
package org.apache.karaf.instance.command;
import org.apache.karaf.instance.core.Instance;
-import org.apache.karaf.shell.table.ShellTable;
import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.Option;
import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
@Command(scope = "instance", name = "list", description = "Lists all existing container instances.")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jaas/command/pom.xml
----------------------------------------------------------------------
diff --git a/jaas/command/pom.xml b/jaas/command/pom.xml
index 3e4278c..56871dd 100644
--- a/jaas/command/pom.xml
+++ b/jaas/command/pom.xml
@@ -44,12 +44,6 @@
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.gogo.runtime</artifactId>
- <scope>provided</scope>
- </dependency>
-
<dependency>
<groupId>org.apache.karaf.jaas</groupId>
<artifactId>org.apache.karaf.jaas.config</artifactId>
@@ -65,12 +59,7 @@
</dependency>
<dependency>
<groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.console</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.table</artifactId>
- <scope>provided</scope>
+ <artifactId>org.apache.karaf.shell.core</artifactId>
</dependency>
<dependency>
@@ -104,16 +93,11 @@
<instructions>
<Export-Package>${project.artifactId}*;version=${project.version}</Export-Package>
<Import-Package>
- javax.management,
- javax.management.loading,
- org.apache.aries.blueprint,
- org.osgi.service.blueprint.container,
- org.osgi.service.blueprint.reflect,
- org.apache.felix.service.command,
- org.apache.karaf.shell.commands,
- org.apache.karaf.shell.console,
*
</Import-Package>
+ <Karaf-Commands>
+ org.apache.karaf.jaas.command.*
+ </Karaf-Commands>
</instructions>
</configuration>
</plugin>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jaas/command/src/main/java/org/apache/karaf/jaas/command/CancelCommand.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/CancelCommand.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/CancelCommand.java
index 7ad63b1..44fd833 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/CancelCommand.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/CancelCommand.java
@@ -15,18 +15,18 @@
*/
package org.apache.karaf.jaas.command;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.jaas.modules.BackingEngine;
-import org.apache.karaf.shell.inject.Service;
-
import java.util.LinkedList;
+import org.apache.karaf.jaas.modules.BackingEngine;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
@Command(scope = "jaas", name = "cancel", description = "Cancel the modification of a JAAS realm")
@Service
public class CancelCommand extends JaasCommandSupport {
@Override
- protected Object doExecute() throws Exception {
+ public Object execute() throws Exception {
//Cleanup the session
session.put(JAAS_REALM, null);
session.put(JAAS_ENTRY, null);
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupAddCommand.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupAddCommand.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupAddCommand.java
index 3e0341e..78ecede 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupAddCommand.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupAddCommand.java
@@ -16,9 +16,9 @@
package org.apache.karaf.jaas.command;
import org.apache.karaf.jaas.modules.BackingEngine;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jaas", name = "group-add", description = "Make a user part of a group")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupDeleteCommand.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupDeleteCommand.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupDeleteCommand.java
index e1122d1..bea4194 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupDeleteCommand.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupDeleteCommand.java
@@ -16,9 +16,9 @@
package org.apache.karaf.jaas.command;
import org.apache.karaf.jaas.modules.BackingEngine;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jaas", name = "group-delete", description = "Remove a user from a group")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupRoleAddCommand.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupRoleAddCommand.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupRoleAddCommand.java
index 13aa9bf..17bb0fa 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupRoleAddCommand.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupRoleAddCommand.java
@@ -16,9 +16,9 @@
package org.apache.karaf.jaas.command;
import org.apache.karaf.jaas.modules.BackingEngine;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jaas", name = "group-role-add", description = "Add a role to a group")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupRoleDeleteCommand.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupRoleDeleteCommand.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupRoleDeleteCommand.java
index 869a797..13b05d7 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupRoleDeleteCommand.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/GroupRoleDeleteCommand.java
@@ -16,9 +16,9 @@
package org.apache.karaf.jaas.command;
import org.apache.karaf.jaas.modules.BackingEngine;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jaas", name = "group-role-delete", description = "Remove a role from a group")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java
index ca89696..cbfb6d1 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/JaasCommandSupport.java
@@ -15,33 +15,41 @@
*/
package org.apache.karaf.jaas.command;
+import java.util.List;
+import java.util.Queue;
+
+import javax.security.auth.login.AppConfigurationEntry;
+
import org.apache.karaf.jaas.boot.ProxyLoginModule;
import org.apache.karaf.jaas.config.JaasRealm;
import org.apache.karaf.jaas.modules.BackingEngine;
import org.apache.karaf.jaas.modules.BackingEngineFactory;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-
-import javax.security.auth.login.AppConfigurationEntry;
-import java.util.List;
-import java.util.Queue;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.console.Session;
-public abstract class JaasCommandSupport extends OsgiCommandSupport {
+public abstract class JaasCommandSupport implements Action {
public static final String JAAS_REALM = "JaasCommand.REALM";
public static final String JAAS_ENTRY = "JaasCommand.ENTRY";
public static final String JAAS_CMDS = "JaasCommand.COMMANDS";
- private List<JaasRealm> realms;
+ @Reference
+ List<BackingEngineFactory> engineFactories;
+
+ @Reference
+ List<JaasRealm> realms;
+
+ @Reference
+ Session session;
protected abstract Object doExecute(BackingEngine engine) throws Exception;
/**
* Add the command to the command queue.
- *
- * @return
- * @throws Exception
*/
- protected Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
JaasRealm realm = (JaasRealm) session.get(JAAS_REALM);
AppConfigurationEntry entry = (AppConfigurationEntry) session.get(JAAS_ENTRY);
@SuppressWarnings("unchecked")
@@ -57,20 +65,7 @@ public abstract class JaasCommandSupport extends OsgiCommandSupport {
return null;
}
- public void setRealms(List<JaasRealm> realms) {
- this.realms = realms;
- }
-
- public List<JaasRealm> getRealms() {
- if (realms == null) {
- return getAllServices(JaasRealm.class);
- } else {
- return realms;
- }
- }
-
public BackingEngine getBackingEngine(AppConfigurationEntry entry) {
- List<BackingEngineFactory> engineFactories = getAllServices(BackingEngineFactory.class);
if (engineFactories != null) {
for (BackingEngineFactory factory : engineFactories) {
String loginModuleClass = (String) entry.getOptions().get(ProxyLoginModule.PROPERTY_MODULE);
@@ -82,4 +77,11 @@ public abstract class JaasCommandSupport extends OsgiCommandSupport {
return null;
}
+ public void setRealms(List<JaasRealm> realms) {
+ this.realms = realms;
+ }
+
+ public void setSession(Session session) {
+ this.session = session;
+ }
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListPendingCommand.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListPendingCommand.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListPendingCommand.java
index f6f8232..51a8d40 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListPendingCommand.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListPendingCommand.java
@@ -15,21 +15,22 @@
*/
package org.apache.karaf.jaas.command;
-import org.apache.karaf.shell.commands.Command;
+import java.util.Queue;
+
+import javax.security.auth.login.AppConfigurationEntry;
+
import org.apache.karaf.jaas.boot.ProxyLoginModule;
import org.apache.karaf.jaas.config.JaasRealm;
import org.apache.karaf.jaas.modules.BackingEngine;
-import org.apache.karaf.shell.inject.Service;
-
-import javax.security.auth.login.AppConfigurationEntry;
-import java.util.Queue;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jaas", name = "pending-list", description = "List the pending modification on the active JAAS Realm/Login Module")
@Service
public class ListPendingCommand extends JaasCommandSupport {
@Override
- protected Object doExecute() throws Exception {
+ public Object execute() throws Exception {
JaasRealm realm = (JaasRealm) session.get(JAAS_REALM);
AppConfigurationEntry entry = (AppConfigurationEntry) session.get(JAAS_ENTRY);
@SuppressWarnings("unchecked")
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListRealmsCommand.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListRealmsCommand.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListRealmsCommand.java
index 64efe54..25cfe14 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListRealmsCommand.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListRealmsCommand.java
@@ -15,16 +15,15 @@
*/
package org.apache.karaf.jaas.command;
-import org.apache.karaf.shell.commands.Command;
+import javax.security.auth.login.AppConfigurationEntry;
+
import org.apache.karaf.jaas.boot.ProxyLoginModule;
import org.apache.karaf.jaas.config.JaasRealm;
import org.apache.karaf.jaas.modules.BackingEngine;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.inject.Service;
-import org.apache.karaf.shell.table.ShellTable;
-
-import javax.security.auth.login.AppConfigurationEntry;
-import java.util.List;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
@Command(scope = "jaas", name = "realm-list", description = "List JAAS realms")
@Service
@@ -38,9 +37,8 @@ public class ListRealmsCommand extends JaasCommandSupport {
return null;
}
- protected Object doExecute() throws Exception {
- List<JaasRealm> realms = getRealms();
-
+ @Override
+ public Object execute() throws Exception {
ShellTable table = new ShellTable();
table.column("Index");
table.column("Realm Name");
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListUsersCommand.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListUsersCommand.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListUsersCommand.java
index cd8c359..13a0031 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListUsersCommand.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/ListUsersCommand.java
@@ -15,19 +15,20 @@
*/
package org.apache.karaf.jaas.command;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.security.auth.login.AppConfigurationEntry;
+
import org.apache.karaf.jaas.boot.principal.GroupPrincipal;
import org.apache.karaf.jaas.boot.principal.RolePrincipal;
-import org.apache.karaf.shell.commands.Command;
import org.apache.karaf.jaas.boot.principal.UserPrincipal;
import org.apache.karaf.jaas.config.JaasRealm;
import org.apache.karaf.jaas.modules.BackingEngine;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.inject.Service;
-import org.apache.karaf.shell.table.ShellTable;
-
-import javax.security.auth.login.AppConfigurationEntry;
-import java.util.ArrayList;
-import java.util.List;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
@Command(scope = "jaas", name = "user-list", description = "List the users of the selected JAAS realm/login module")
@Service
@@ -37,7 +38,7 @@ public class ListUsersCommand extends JaasCommandSupport {
boolean noFormat;
@Override
- protected Object doExecute() throws Exception {
+ public Object execute() throws Exception {
JaasRealm realm = (JaasRealm) session.get(JAAS_REALM);
AppConfigurationEntry entry = (AppConfigurationEntry) session.get(JAAS_ENTRY);
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 a0647e3..a9fa13b 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
@@ -15,34 +15,34 @@
*/
package org.apache.karaf.jaas.command;
+import java.util.LinkedList;
+import java.util.Queue;
+
+import javax.security.auth.login.AppConfigurationEntry;
+
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;
-import org.apache.karaf.shell.inject.Service;
-
-import javax.security.auth.login.AppConfigurationEntry;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Queue;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jaas", name = "realm-manage", description = "Manage users and roles of a JAAS Realm")
@Service
public class ManageRealmCommand extends JaasCommandSupport {
@Option(name = "--realm", description = "JAAS Realm", required = false, multiValued = false)
- @Completer(RealmCompleter.class)
+ @Completion(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)
+ @Completion(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)
@@ -50,7 +50,7 @@ public class ManageRealmCommand extends JaasCommandSupport {
@SuppressWarnings("unchecked")
@Override
- protected Object doExecute() throws Exception {
+ public Object execute() throws Exception {
if (realmName == null && index <= 0) {
System.err.println("A valid realm or the realm index need to be specified");
return null;
@@ -69,7 +69,6 @@ public class ManageRealmCommand extends JaasCommandSupport {
if (index > 0) {
// user provided the index, get the realm AND entry from the index
- List<JaasRealm> realms = getRealms();
if (realms != null && realms.size() > 0) {
int i = 1;
realms_loop: for (JaasRealm r : realms) {
@@ -88,7 +87,6 @@ public class ManageRealmCommand extends JaasCommandSupport {
}
}
} else {
- List<JaasRealm> realms = getRealms();
if (realms != null && realms.size() > 0) {
for (JaasRealm r : realms) {
if (r.getName().equals(realmName)) {
[4/6] [KARAF-2805] Convert remaining commands to the new model
Posted by gn...@apache.org.
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jaas/command/src/main/java/org/apache/karaf/jaas/command/RoleAddCommand.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/RoleAddCommand.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/RoleAddCommand.java
index 2b0593a..f943be9 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/RoleAddCommand.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/RoleAddCommand.java
@@ -15,10 +15,10 @@
*/
package org.apache.karaf.jaas.command;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
import org.apache.karaf.jaas.modules.BackingEngine;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jaas", name = "role-add", description = "Add a role to a user")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jaas/command/src/main/java/org/apache/karaf/jaas/command/RoleDeleteCommand.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/RoleDeleteCommand.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/RoleDeleteCommand.java
index faf7053..8a9d223 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/RoleDeleteCommand.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/RoleDeleteCommand.java
@@ -15,10 +15,10 @@
*/
package org.apache.karaf.jaas.command;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
import org.apache.karaf.jaas.modules.BackingEngine;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jaas", name = "role-delete", description = "Delete a role from a user")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jaas/command/src/main/java/org/apache/karaf/jaas/command/UpdateCommand.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/UpdateCommand.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/UpdateCommand.java
index efd163c..c979cba 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/UpdateCommand.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/UpdateCommand.java
@@ -15,21 +15,22 @@
*/
package org.apache.karaf.jaas.command;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.jaas.config.JaasRealm;
-import org.apache.karaf.jaas.modules.BackingEngine;
-import org.apache.karaf.shell.inject.Service;
-
-import javax.security.auth.login.AppConfigurationEntry;
import java.util.LinkedList;
import java.util.Queue;
+import javax.security.auth.login.AppConfigurationEntry;
+
+import org.apache.karaf.jaas.config.JaasRealm;
+import org.apache.karaf.jaas.modules.BackingEngine;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
@Command(scope = "jaas", name = "update", description = "Apply pending modification on the edited JAAS Realm")
@Service
public class UpdateCommand extends JaasCommandSupport {
@Override
- protected Object doExecute() throws Exception {
+ public Object execute() throws Exception {
JaasRealm realm = (JaasRealm) session.get(JAAS_REALM);
AppConfigurationEntry entry = (AppConfigurationEntry) session.get(JAAS_ENTRY);
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jaas/command/src/main/java/org/apache/karaf/jaas/command/UserAddCommand.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/UserAddCommand.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/UserAddCommand.java
index 9cafa5d..3854f1d 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/UserAddCommand.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/UserAddCommand.java
@@ -15,10 +15,10 @@
*/
package org.apache.karaf.jaas.command;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
import org.apache.karaf.jaas.modules.BackingEngine;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jaas", name = "user-add", description = "Add a user")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jaas/command/src/main/java/org/apache/karaf/jaas/command/UserDeleteCommand.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/UserDeleteCommand.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/UserDeleteCommand.java
index d7b7529..ba4631f 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/UserDeleteCommand.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/UserDeleteCommand.java
@@ -15,10 +15,10 @@
*/
package org.apache.karaf.jaas.command;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
import org.apache.karaf.jaas.modules.BackingEngine;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jaas", name = "user-delete", description = "Delete a usergit s")
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jaas/command/src/main/java/org/apache/karaf/jaas/command/completers/LoginModuleNameCompleter.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/completers/LoginModuleNameCompleter.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/completers/LoginModuleNameCompleter.java
index 50e543b..3b9655d 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/completers/LoginModuleNameCompleter.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/completers/LoginModuleNameCompleter.java
@@ -18,19 +18,26 @@ package org.apache.karaf.jaas.command.completers;
import java.util.LinkedList;
import java.util.List;
+
import javax.security.auth.login.AppConfigurationEntry;
+
import org.apache.karaf.jaas.boot.ProxyLoginModule;
import org.apache.karaf.jaas.config.JaasRealm;
-import org.apache.karaf.shell.console.Completer;
-import org.apache.karaf.shell.console.completer.StringsCompleter;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.CommandLine;
+import org.apache.karaf.shell.api.console.Completer;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
@Service
public class LoginModuleNameCompleter implements Completer {
+ @Reference
private List<JaasRealm> realms;
- public int complete(String buffer, int cursor, List<String> candidates) {
+ @Override
+ public int complete(Session session, CommandLine commandLine, List<String> candidates) {
StringsCompleter delegate = new StringsCompleter();
try {
if (realms != null && !realms.isEmpty())
@@ -42,7 +49,7 @@ public class LoginModuleNameCompleter implements Completer {
} catch (Exception e) {
// Ignore
}
- return delegate.complete(buffer, cursor, candidates);
+ return delegate.complete(session, commandLine, candidates);
}
/**
@@ -62,12 +69,4 @@ public class LoginModuleNameCompleter implements Completer {
return moduleClassNames;
}
- public List<JaasRealm> getRealms() {
- return realms;
- }
-
- public void setRealms(List<JaasRealm> realms) {
- this.realms = realms;
- }
-
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jaas/command/src/main/java/org/apache/karaf/jaas/command/completers/RealmCompleter.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/main/java/org/apache/karaf/jaas/command/completers/RealmCompleter.java b/jaas/command/src/main/java/org/apache/karaf/jaas/command/completers/RealmCompleter.java
index e251527..a71ef97 100644
--- a/jaas/command/src/main/java/org/apache/karaf/jaas/command/completers/RealmCompleter.java
+++ b/jaas/command/src/main/java/org/apache/karaf/jaas/command/completers/RealmCompleter.java
@@ -16,19 +16,24 @@
*/
package org.apache.karaf.jaas.command.completers;
-import org.apache.karaf.jaas.config.JaasRealm;
-import org.apache.karaf.shell.console.Completer;
-import org.apache.karaf.shell.console.completer.StringsCompleter;
-import org.apache.karaf.shell.inject.Service;
-
import java.util.List;
+import org.apache.karaf.jaas.config.JaasRealm;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.CommandLine;
+import org.apache.karaf.shell.api.console.Completer;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
+
@Service
public class RealmCompleter implements Completer {
+ @Reference
private List<JaasRealm> realms;
- public int complete(String buffer, int cursor, List<String> candidates) {
+ @Override
+ public int complete(Session session, CommandLine commandLine, List<String> candidates) {
StringsCompleter delegate = new StringsCompleter();
try {
if (realms != null && !realms.isEmpty())
@@ -38,15 +43,7 @@ public class RealmCompleter implements Completer {
} catch (Exception e) {
// Ignore
}
- return delegate.complete(buffer, cursor, candidates);
- }
-
- public List<JaasRealm> getRealms() {
- return realms;
- }
-
- public void setRealms(List<JaasRealm> realms) {
- this.realms = realms;
+ return delegate.complete(session, commandLine, candidates);
}
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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
deleted file mode 100644
index c361e48..0000000
--- a/jaas/command/src/main/resources/OSGI-INF/blueprint/jaas-command.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
-
- <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0"
- scan="org.apache.karaf.jaas.command" />
-
- <!-- JAAS Realms -->
- <reference-list id="realms" interface="org.apache.karaf.jaas.config.JaasRealm" availability="optional"/>
-
- <!-- Completers -->
- <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="loginModuleNameCompleter" class="org.apache.karaf.jaas.command.completers.LoginModuleNameCompleter">
- <property name="realms" ref="realms"/>
- </bean>
- <service ref="loginModuleNameCompleter" auto-export="all-classes"/>
-
-</blueprint>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jaas/command/src/test/java/org/apache/karaf/jaas/command/ManageRealmCommandTest.java
----------------------------------------------------------------------
diff --git a/jaas/command/src/test/java/org/apache/karaf/jaas/command/ManageRealmCommandTest.java b/jaas/command/src/test/java/org/apache/karaf/jaas/command/ManageRealmCommandTest.java
index 1171c99..d9458c7 100644
--- a/jaas/command/src/test/java/org/apache/karaf/jaas/command/ManageRealmCommandTest.java
+++ b/jaas/command/src/test/java/org/apache/karaf/jaas/command/ManageRealmCommandTest.java
@@ -15,23 +15,23 @@
*/
package org.apache.karaf.jaas.command;
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.eq;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
+import java.util.Arrays;
+import java.util.Properties;
-import org.apache.felix.service.command.CommandSession;
import org.apache.karaf.jaas.config.JaasRealm;
import org.apache.karaf.jaas.config.impl.Config;
import org.apache.karaf.jaas.config.impl.Module;
+import org.apache.karaf.shell.api.console.Session;
import org.junit.Test;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
-import java.util.Arrays;
-import java.util.Properties;
+import static org.easymock.EasyMock.anyObject;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.eq;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
public class ManageRealmCommandTest {
@@ -63,15 +63,16 @@ public class ManageRealmCommandTest {
*/
private void doVerifyIndex(ManageRealmCommand cmd, int index, Config[] realms) throws Exception {
- // prepare command
- cmd.index = index;
- cmd.setRealms(Arrays.<JaasRealm> asList(realms));
-
// prepare mocks
- CommandSession session = createMock(CommandSession.class);
+ Session session = createMock(Session.class);
BundleContext bundleContext = createMock(BundleContext.class);
Bundle bundle = createMock(Bundle.class);
+ // prepare command
+ cmd.index = index;
+ cmd.setRealms(Arrays.<JaasRealm> asList(realms));
+ cmd.setSession(session);
+
for (Config realm : realms)
realm.setBundleContext(bundleContext);
@@ -90,7 +91,7 @@ public class ManageRealmCommandTest {
// start the test
replay(mocks);
- cmd.execute(session);
+ cmd.execute();
verify(mocks);
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jdbc/command/pom.xml
----------------------------------------------------------------------
diff --git a/jdbc/command/pom.xml b/jdbc/command/pom.xml
index 08edade..18441f3 100644
--- a/jdbc/command/pom.xml
+++ b/jdbc/command/pom.xml
@@ -50,11 +50,7 @@
<dependency>
<groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.console</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.table</artifactId>
+ <artifactId>org.apache.karaf.shell.core</artifactId>
</dependency>
</dependencies>
@@ -81,6 +77,7 @@
<configuration>
<instructions>
<Export-Package>!*</Export-Package>
+ <Karaf-Commands>*</Karaf-Commands>
</instructions>
</configuration>
</plugin>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 fa629da..39f638e5 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
@@ -16,12 +16,12 @@
*/
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;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
@Command(scope = "jdbc", name = "create", description = "Create a JDBC datasource")
@Service
@@ -31,7 +31,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" })
+ @Completion(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)
@@ -52,7 +52,8 @@ public class CreateCommand extends JdbcCommandSupport {
@Option(name = "-i", aliases = { "--install-bundles" }, description = "Try to install the bundles providing the JDBC driver", required = false, multiValued = false)
boolean installBundles = false;
- public Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
this.getJdbcService().create(name, type, driver, version, url, username, password, installBundles);
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/DataSourcesCommand.java
----------------------------------------------------------------------
diff --git a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/DataSourcesCommand.java b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/DataSourcesCommand.java
index e314c9c..cb3edad 100644
--- a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/DataSourcesCommand.java
+++ b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/DataSourcesCommand.java
@@ -16,18 +16,19 @@
*/
package org.apache.karaf.jdbc.command;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
-import org.apache.karaf.shell.table.ShellTable;
-
import java.util.List;
import java.util.Map;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
+
@Command(scope = "jdbc", name = "datasources", description = "List the JDBC datasources")
@Service
public class DataSourcesCommand extends JdbcCommandSupport {
- public Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
ShellTable table = new ShellTable();
table.column("Name");
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 3b6aa16..6bf7236 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
@@ -17,20 +17,21 @@
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;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jdbc", name = "delete", description = "Delete a JDBC datasource")
@Service
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)
+ @Completion(DataSourcesFileNameCompleter.class)
String name;
- public Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
this.getJdbcService().delete(name);
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 48bd412..480ab51 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
@@ -17,23 +17,24 @@
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.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jdbc", name = "execute", description = "Execute a SQL command on a given JDBC datasource")
@Service
public class ExecuteCommand extends JdbcCommandSupport {
@Argument(index = 0, name = "datasource", description = "The JDBC datasource", required = true, multiValued = false)
- @Completer(DataSourcesNameCompleter.class)
+ @Completion(DataSourcesNameCompleter.class)
String datasource;
@Argument(index = 1, name = "command", description = "The SQL command to execute", required = true, multiValued = false)
String command;
- public Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
this.getJdbcService().execute(datasource, command);
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 14df91b..e53bbab 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
@@ -17,11 +17,11 @@
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.inject.Service;
-import org.apache.karaf.shell.table.ShellTable;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
import java.util.Map;
@@ -30,10 +30,11 @@ 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)
+ @Completion(DataSourcesNameCompleter.class)
String datasource;
- public Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
ShellTable table = new ShellTable();
table.column("Property");
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/JdbcCommandSupport.java
----------------------------------------------------------------------
diff --git a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/JdbcCommandSupport.java b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/JdbcCommandSupport.java
index f274cfb..cf1eb58 100644
--- a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/JdbcCommandSupport.java
+++ b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/JdbcCommandSupport.java
@@ -17,16 +17,14 @@
package org.apache.karaf.jdbc.command;
import org.apache.karaf.jdbc.JdbcService;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.shell.inject.Reference;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
-public abstract class JdbcCommandSupport extends OsgiCommandSupport {
+public abstract class JdbcCommandSupport implements Action {
@Reference
private JdbcService jdbcService;
- public abstract Object doExecute() throws Exception;
-
public JdbcService getJdbcService() {
return jdbcService;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 f591cd9..297288b 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,29 +16,30 @@
*/
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.inject.Service;
-import org.apache.karaf.shell.table.Row;
-import org.apache.karaf.shell.table.ShellTable;
-
import java.util.List;
import java.util.Map;
+import org.apache.karaf.jdbc.command.completers.DataSourcesNameCompleter;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.Row;
+import org.apache.karaf.shell.support.table.ShellTable;
+
@Command(scope = "jdbc", name = "query", description = "Execute a SQL query on a JDBC datasource")
@Service
public class QueryCommand extends JdbcCommandSupport {
@Argument(index = 0, name = "datasource", description = "The JDBC datasource to use", required = true, multiValued = false)
- @Completer(DataSourcesNameCompleter.class)
+ @Completion(DataSourcesNameCompleter.class)
String datasource;
@Argument(index = 1, name = "query", description = "The SQL query to execute", required = true, multiValued = false)
String query;
- public Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
ShellTable table = new ShellTable();
Map<String, List<String>> map = this.getJdbcService().query(datasource, query);
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 8a7acdd..04baa70 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,26 +16,27 @@
*/
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.inject.Service;
-import org.apache.karaf.shell.table.Row;
-import org.apache.karaf.shell.table.ShellTable;
-
import java.util.List;
import java.util.Map;
+import org.apache.karaf.jdbc.command.completers.DataSourcesNameCompleter;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.Row;
+import org.apache.karaf.shell.support.table.ShellTable;
+
@Command(scope = "jdbc", name = "tables", description = "List the tables on a given JDBC datasource")
@Service
public class TablesCommand extends JdbcCommandSupport {
@Argument(index = 0, name = "datasource", description = "The JDBC datasource to use", required = true, multiValued = false)
- @Completer(DataSourcesNameCompleter.class)
+ @Completion(DataSourcesNameCompleter.class)
String datasource;
- public Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
ShellTable table = new ShellTable();
Map<String, List<String>> map = this.getJdbcService().tables(datasource);
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesFileNameCompleter.java
----------------------------------------------------------------------
diff --git a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesFileNameCompleter.java b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesFileNameCompleter.java
index 3eb7eb6..8ba0fe9 100644
--- a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesFileNameCompleter.java
+++ b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesFileNameCompleter.java
@@ -17,10 +17,12 @@
package org.apache.karaf.jdbc.command.completers;
import org.apache.karaf.jdbc.JdbcService;
-import org.apache.karaf.shell.console.Completer;
-import org.apache.karaf.shell.console.completer.StringsCompleter;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.CommandLine;
+import org.apache.karaf.shell.api.console.Completer;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
import java.util.List;
@@ -34,7 +36,7 @@ public class DataSourcesFileNameCompleter implements Completer {
private JdbcService jdbcService;
@Override
- public int complete(String buffer, int cursor, List<String> candidates) {
+ public int complete(Session session, CommandLine commandLine, List<String> candidates) {
StringsCompleter delegate = new StringsCompleter();
try {
for (String datasourceFileName : jdbcService.datasourceFileNames()) {
@@ -43,7 +45,7 @@ public class DataSourcesFileNameCompleter implements Completer {
} catch (Exception e) {
// nothing to do
}
- return delegate.complete(buffer, cursor, candidates);
+ return delegate.complete(session, commandLine, candidates);
}
public JdbcService getJdbcService() {
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesNameCompleter.java
----------------------------------------------------------------------
diff --git a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesNameCompleter.java b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesNameCompleter.java
index af4c0e3..238910f 100644
--- a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesNameCompleter.java
+++ b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesNameCompleter.java
@@ -17,10 +17,12 @@
package org.apache.karaf.jdbc.command.completers;
import org.apache.karaf.jdbc.JdbcService;
-import org.apache.karaf.shell.console.Completer;
-import org.apache.karaf.shell.console.completer.StringsCompleter;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.CommandLine;
+import org.apache.karaf.shell.api.console.Completer;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
import java.util.List;
@@ -34,7 +36,7 @@ public class DataSourcesNameCompleter implements Completer {
private JdbcService jdbcService;
@Override
- public int complete(String buffer, int cursor, List<String> candidates) {
+ public int complete(Session session, CommandLine commandLine, List<String> candidates) {
StringsCompleter delegate = new StringsCompleter();
try {
for (String datasource : jdbcService.datasources()) {
@@ -43,7 +45,7 @@ public class DataSourcesNameCompleter implements Completer {
} catch (Exception e) {
// nothing to do
}
- return delegate.complete(buffer, cursor, candidates);
+ return delegate.complete(session, commandLine, candidates);
}
public JdbcService getJdbcService() {
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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
deleted file mode 100644
index fe843fc..0000000
--- a/jdbc/command/src/main/resources/OSGI-INF/blueprint/jdbc-command.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version
- 2.0 (the "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0 Unless required by
- applicable law or agreed to in writing, software distributed under the
- License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
- CONDITIONS OF ANY KIND, either express or implied. See the License for
- the specific language governing permissions and limitations under the
- License.
- -->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy">
-
- <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0"
- scan="org.apache.karaf.jdbc.command.*" />
-
-</blueprint>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jms/command/pom.xml
----------------------------------------------------------------------
diff --git a/jms/command/pom.xml b/jms/command/pom.xml
index 204e2c6..a8c6d76 100644
--- a/jms/command/pom.xml
+++ b/jms/command/pom.xml
@@ -49,11 +49,7 @@
<dependency>
<groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.console</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.table</artifactId>
+ <artifactId>org.apache.karaf.shell.core</artifactId>
</dependency>
</dependencies>
@@ -80,6 +76,7 @@
<configuration>
<instructions>
<Export-Package>!*</Export-Package>
+ <Karaf-Commands>*</Karaf-Commands>
</instructions>
</configuration>
</plugin>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jms/command/src/main/java/org/apache/karaf/jms/command/BrowseCommand.java
----------------------------------------------------------------------
diff --git a/jms/command/src/main/java/org/apache/karaf/jms/command/BrowseCommand.java b/jms/command/src/main/java/org/apache/karaf/jms/command/BrowseCommand.java
index 49bd545..cb86aa6 100644
--- a/jms/command/src/main/java/org/apache/karaf/jms/command/BrowseCommand.java
+++ b/jms/command/src/main/java/org/apache/karaf/jms/command/BrowseCommand.java
@@ -16,15 +16,15 @@
*/
package org.apache.karaf.jms.command;
-import org.apache.karaf.jms.JmsMessage;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.inject.Service;
-import org.apache.karaf.shell.table.ShellTable;
-
import java.util.List;
+import org.apache.karaf.jms.JmsMessage;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
+
@Command(scope = "jms", name = "browse", description = "Browse a JMS queue")
@Service
public class BrowseCommand extends JmsConnectionCommandSupport {
@@ -38,7 +38,8 @@ public class BrowseCommand extends JmsConnectionCommandSupport {
@Option(name = "-v", aliases = { "--verbose" }, description = "Display JMS properties", required = false, multiValued = false)
boolean verbose = false;
- public Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
ShellTable table = new ShellTable();
table.column("Message ID");
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jms/command/src/main/java/org/apache/karaf/jms/command/ConnectionFactoriesCommand.java
----------------------------------------------------------------------
diff --git a/jms/command/src/main/java/org/apache/karaf/jms/command/ConnectionFactoriesCommand.java b/jms/command/src/main/java/org/apache/karaf/jms/command/ConnectionFactoriesCommand.java
index 91182e7..b698336 100644
--- a/jms/command/src/main/java/org/apache/karaf/jms/command/ConnectionFactoriesCommand.java
+++ b/jms/command/src/main/java/org/apache/karaf/jms/command/ConnectionFactoriesCommand.java
@@ -16,17 +16,18 @@
*/
package org.apache.karaf.jms.command;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
-import org.apache.karaf.shell.table.ShellTable;
-
import java.util.List;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
+
@Command(scope = "jms", name = "connectionfactories", description = "List the JMS connection factories")
@Service
public class ConnectionFactoriesCommand extends JmsCommandSupport {
- public Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
ShellTable table = new ShellTable();
table.column("JMS Connection Factory");
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 a1b3855..cd8caaf 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
@@ -16,10 +16,10 @@
*/
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.Option;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jms", name = "consume", description = "Consume messages from a JMS queue.")
@Service
@@ -31,7 +31,8 @@ public class ConsumeCommand extends JmsConnectionCommandSupport {
@Option(name = "-s", aliases = { "--selector" }, description = "The selector to use to select the messages to consume", required = false, multiValued = false)
String selector;
- public Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
System.out.println(getJmsService().consume(connectionFactory, queue, selector, username, password) + " message(s) consumed");
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jms/command/src/main/java/org/apache/karaf/jms/command/CountCommand.java
----------------------------------------------------------------------
diff --git a/jms/command/src/main/java/org/apache/karaf/jms/command/CountCommand.java b/jms/command/src/main/java/org/apache/karaf/jms/command/CountCommand.java
index 600477a..576e8dd 100644
--- a/jms/command/src/main/java/org/apache/karaf/jms/command/CountCommand.java
+++ b/jms/command/src/main/java/org/apache/karaf/jms/command/CountCommand.java
@@ -16,10 +16,11 @@
*/
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.inject.Service;
-import org.apache.karaf.shell.table.ShellTable;
+
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
@Command(scope = "jms", name = "count", description = "Count the number of messages on a JMS queue.")
@Service
@@ -28,7 +29,8 @@ public class CountCommand extends JmsConnectionCommandSupport {
@Argument(index = 1, name = "queue", description = "The JMS queue name", required = true, multiValued = false)
String queue;
- public Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
ShellTable table = new ShellTable();
table.column("Messages Count");
table.addRow().addContent(getJmsService().count(connectionFactory, queue, username, password));
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 0750a57..c2c7eca 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
@@ -16,12 +16,12 @@
*/
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;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
@Command(scope = "jms", name = "create", description = "Create a JMS connection factory.")
@Service
@@ -31,13 +31,14 @@ 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" })
+ @Completion(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)
String url = "tcp://localhost:61616";
-
- public Object doExecute() throws Exception {
+
+ @Override
+ public Object execute() throws Exception {
getJmsService().create(name, type, url);
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 2cd701f..cab3123 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,21 +16,23 @@
*/
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;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jms", name = "delete", description = "Delete a JMS connection factory")
@Service
public class DeleteCommand extends JmsCommandSupport {
@Argument(index = 0, name = "name", description = "The JMS connection factory name", required = true, multiValued = false)
- @Completer(ConnectionFactoriesFileNameCompleter.class)
+ @Completion(ConnectionFactoriesFileNameCompleter.class)
String name;
- public Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
getJmsService().delete(name);
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jms/command/src/main/java/org/apache/karaf/jms/command/InfoCommand.java
----------------------------------------------------------------------
diff --git a/jms/command/src/main/java/org/apache/karaf/jms/command/InfoCommand.java b/jms/command/src/main/java/org/apache/karaf/jms/command/InfoCommand.java
index 732a164..354db39 100644
--- a/jms/command/src/main/java/org/apache/karaf/jms/command/InfoCommand.java
+++ b/jms/command/src/main/java/org/apache/karaf/jms/command/InfoCommand.java
@@ -16,17 +16,19 @@
*/
package org.apache.karaf.jms.command;
+
import java.util.Map;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
-import org.apache.karaf.shell.table.ShellTable;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
@Command(scope = "jms", name = "info", description = "Provides details about a JMS connection factory.")
@Service
public class InfoCommand extends JmsConnectionCommandSupport {
- public Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
ShellTable table = new ShellTable();
table.column("Property");
table.column("Value");
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jms/command/src/main/java/org/apache/karaf/jms/command/JmsCommandSupport.java
----------------------------------------------------------------------
diff --git a/jms/command/src/main/java/org/apache/karaf/jms/command/JmsCommandSupport.java b/jms/command/src/main/java/org/apache/karaf/jms/command/JmsCommandSupport.java
index e4d514c..2f5df8f 100644
--- a/jms/command/src/main/java/org/apache/karaf/jms/command/JmsCommandSupport.java
+++ b/jms/command/src/main/java/org/apache/karaf/jms/command/JmsCommandSupport.java
@@ -17,10 +17,10 @@
package org.apache.karaf.jms.command;
import org.apache.karaf.jms.JmsService;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.shell.inject.Reference;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
-public abstract class JmsCommandSupport extends OsgiCommandSupport {
+public abstract class JmsCommandSupport implements Action {
@Reference
private JmsService jmsService;
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 cb89717..64adfe4 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
@@ -17,9 +17,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;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.Option;
/**
* For commands that need a connection factory and authentication information
@@ -27,7 +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)
+ @Completion(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/571c6f99/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 8afe253..a4c8d12 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
@@ -16,10 +16,11 @@
*/
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.Option;
-import org.apache.karaf.shell.inject.Service;
+
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jms", name = "move", description = "Move messages from one JMS queue to another one.")
@Service
@@ -34,7 +35,8 @@ public class MoveCommand extends JmsConnectionCommandSupport {
@Option(name = "-s", aliases = { "--selector" }, description = "Selector to move only some messages", required = false, multiValued = false)
String selector;
- public Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
System.out.println(getJmsService().move(connectionFactory, source, destination, selector, username, password) + " message(s) moved");
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jms/command/src/main/java/org/apache/karaf/jms/command/QueuesCommand.java
----------------------------------------------------------------------
diff --git a/jms/command/src/main/java/org/apache/karaf/jms/command/QueuesCommand.java b/jms/command/src/main/java/org/apache/karaf/jms/command/QueuesCommand.java
index 105eeb2..7cf1dac 100644
--- a/jms/command/src/main/java/org/apache/karaf/jms/command/QueuesCommand.java
+++ b/jms/command/src/main/java/org/apache/karaf/jms/command/QueuesCommand.java
@@ -16,15 +16,17 @@
*/
package org.apache.karaf.jms.command;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
-import org.apache.karaf.shell.table.ShellTable;
+
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
@Command(scope = "jms", name = "queues", description = "List the JMS queues.")
@Service
public class QueuesCommand extends JmsConnectionCommandSupport {
- public Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
ShellTable table = new ShellTable();
table.column("JMS Queues");
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jms/command/src/main/java/org/apache/karaf/jms/command/SendCommand.java
----------------------------------------------------------------------
diff --git a/jms/command/src/main/java/org/apache/karaf/jms/command/SendCommand.java b/jms/command/src/main/java/org/apache/karaf/jms/command/SendCommand.java
index 3af7436..63d3f4a 100644
--- a/jms/command/src/main/java/org/apache/karaf/jms/command/SendCommand.java
+++ b/jms/command/src/main/java/org/apache/karaf/jms/command/SendCommand.java
@@ -16,10 +16,11 @@
*/
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.Option;
-import org.apache.karaf.shell.inject.Service;
+
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jms", name = "send", description = "Send a message to ")
@Service
@@ -34,7 +35,8 @@ public class SendCommand extends JmsConnectionCommandSupport {
@Option(name = "-r", aliases = { "--replyTo" }, description = "Set the message ReplyTo", required = false, multiValued = false)
String replyTo;
- public Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
getJmsService().send(connectionFactory, queue, message, replyTo, username, password);
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jms/command/src/main/java/org/apache/karaf/jms/command/TopicsCommand.java
----------------------------------------------------------------------
diff --git a/jms/command/src/main/java/org/apache/karaf/jms/command/TopicsCommand.java b/jms/command/src/main/java/org/apache/karaf/jms/command/TopicsCommand.java
index 7a0b707..b583bc4 100644
--- a/jms/command/src/main/java/org/apache/karaf/jms/command/TopicsCommand.java
+++ b/jms/command/src/main/java/org/apache/karaf/jms/command/TopicsCommand.java
@@ -16,15 +16,17 @@
*/
package org.apache.karaf.jms.command;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
-import org.apache.karaf.shell.table.ShellTable;
+
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
@Command(scope = "jms", name = "topics", description = "List the JMS topics.")
@Service
public class TopicsCommand extends JmsConnectionCommandSupport {
- public Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
ShellTable table = new ShellTable();
table.column("JMS Topics");
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jms/command/src/main/java/org/apache/karaf/jms/command/completers/ConnectionFactoriesFileNameCompleter.java
----------------------------------------------------------------------
diff --git a/jms/command/src/main/java/org/apache/karaf/jms/command/completers/ConnectionFactoriesFileNameCompleter.java b/jms/command/src/main/java/org/apache/karaf/jms/command/completers/ConnectionFactoriesFileNameCompleter.java
index 12c42bd..c33ff62 100644
--- a/jms/command/src/main/java/org/apache/karaf/jms/command/completers/ConnectionFactoriesFileNameCompleter.java
+++ b/jms/command/src/main/java/org/apache/karaf/jms/command/completers/ConnectionFactoriesFileNameCompleter.java
@@ -16,14 +16,16 @@
*/
package org.apache.karaf.jms.command.completers;
-import org.apache.karaf.jms.JmsService;
-import org.apache.karaf.shell.console.Completer;
-import org.apache.karaf.shell.console.completer.StringsCompleter;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
-
import java.util.List;
+import org.apache.karaf.jms.JmsService;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.CommandLine;
+import org.apache.karaf.shell.api.console.Completer;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
+
/**
* Completer on the JMS connection factory file names.
*/
@@ -34,7 +36,7 @@ public class ConnectionFactoriesFileNameCompleter implements Completer {
private JmsService jmsService;
@Override
- public int complete(String buffer, int cursor, List<String> candidates) {
+ public int complete(Session session, CommandLine commandLine, List<String> candidates) {
StringsCompleter delegate = new StringsCompleter();
try {
for (String connectionFactory : jmsService.connectionFactoryFileNames()) {
@@ -43,7 +45,7 @@ public class ConnectionFactoriesFileNameCompleter implements Completer {
} catch (Exception e) {
// nothing to do
}
- return delegate.complete(buffer, cursor, candidates);
+ return delegate.complete(session, commandLine, candidates);
}
public JmsService getJmsService() {
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jms/command/src/main/java/org/apache/karaf/jms/command/completers/ConnectionFactoriesNameCompleter.java
----------------------------------------------------------------------
diff --git a/jms/command/src/main/java/org/apache/karaf/jms/command/completers/ConnectionFactoriesNameCompleter.java b/jms/command/src/main/java/org/apache/karaf/jms/command/completers/ConnectionFactoriesNameCompleter.java
index 3437c8e..98f97b3 100644
--- a/jms/command/src/main/java/org/apache/karaf/jms/command/completers/ConnectionFactoriesNameCompleter.java
+++ b/jms/command/src/main/java/org/apache/karaf/jms/command/completers/ConnectionFactoriesNameCompleter.java
@@ -16,14 +16,16 @@
*/
package org.apache.karaf.jms.command.completers;
-import org.apache.karaf.jms.JmsService;
-import org.apache.karaf.shell.console.Completer;
-import org.apache.karaf.shell.console.completer.StringsCompleter;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
-
import java.util.List;
+import org.apache.karaf.jms.JmsService;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.CommandLine;
+import org.apache.karaf.shell.api.console.Completer;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
+
/**
* Completer on the JMS connection factories name.
*/
@@ -34,7 +36,7 @@ public class ConnectionFactoriesNameCompleter implements Completer {
private JmsService jmsService;
@Override
- public int complete(String buffer, int cursor, List<String> candidates) {
+ public int complete(Session session, CommandLine commandLine, List<String> candidates) {
StringsCompleter delegate = new StringsCompleter();
try {
for (String connectionFactory : jmsService.connectionFactories()) {
@@ -43,7 +45,7 @@ public class ConnectionFactoriesNameCompleter implements Completer {
} catch (Exception e) {
// nothing to do
}
- return delegate.complete(buffer, cursor, candidates);
+ return delegate.complete(session, commandLine, candidates);
}
public JmsService getJmsService() {
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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
deleted file mode 100644
index b5a912f..0000000
--- a/jms/command/src/main/resources/OSGI-INF/blueprint/jms-command.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version
- 2.0 (the "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0 Unless required by
- applicable law or agreed to in writing, software distributed under the
- License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
- CONDITIONS OF ANY KIND, either express or implied. See the License for
- the specific language governing permissions and limitations under the
- License.
- -->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy">
-
- <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0"
- scan="org.apache.karaf.jms.command.*" />
-
-</blueprint>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jndi/command/pom.xml
----------------------------------------------------------------------
diff --git a/jndi/command/pom.xml b/jndi/command/pom.xml
index 0b06a24..81eabf5 100644
--- a/jndi/command/pom.xml
+++ b/jndi/command/pom.xml
@@ -50,11 +50,7 @@
<dependency>
<groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.console</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.table</artifactId>
+ <artifactId>org.apache.karaf.shell.core</artifactId>
</dependency>
</dependencies>
@@ -81,6 +77,7 @@
<configuration>
<instructions>
<Export-Package>!*</Export-Package>
+ <Karaf-Commands>*</Karaf-Commands>
</instructions>
</configuration>
</plugin>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 3733858..08e3912 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,27 +16,34 @@
*/
package org.apache.karaf.jndi.command;
+import org.apache.karaf.jndi.JndiService;
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;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jndi", name = "alias", description = "Create a JNDI alias on a given name.")
@Service
-public class AliasCommand extends JndiCommandSupport {
+public class AliasCommand implements Action {
@Argument(index = 0, name = "name", description = "The JNDI name", required = true, multiValued = false)
- @Completer(NamesCompleter.class)
+ @Completion(NamesCompleter.class)
String name;
@Argument(index = 1, name = "alias", description = "The JNDI alias", required = true, multiValued = false)
- @Completer(ContextsCompleter.class)
+ @Completion(ContextsCompleter.class)
String alias;
- public Object doExecute() throws Exception {
- getJndiService().alias(name, alias);
+ @Reference
+ JndiService jndiService;
+
+ @Override
+ public Object execute() throws Exception {
+ jndiService.alias(name, alias);
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 5192853..b181762 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,27 +16,34 @@
*/
package org.apache.karaf.jndi.command;
+import org.apache.karaf.jndi.JndiService;
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;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jndi", name = "bind", description = "Bind an OSGi service in the JNDI context")
@Service
-public class BindCommand extends JndiCommandSupport {
+public class BindCommand implements Action {
@Argument(index = 0, name = "service", description = "The ID of the OSGi service to bind", required = true, multiValued = false)
- @Completer(ServicesIdCompleter.class)
+ @Completion(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)
+ @Completion(ContextsCompleter.class)
String name;
- public Object doExecute() throws Exception {
- this.getJndiService().bind(serviceId, name);
+ @Reference
+ JndiService jndiService;
+
+ @Override
+ public Object execute() throws Exception {
+ jndiService.bind(serviceId, name);
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 34def8f..2209479 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,33 +16,40 @@
*/
package org.apache.karaf.jndi.command;
+import org.apache.karaf.jndi.JndiService;
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.inject.Service;
-import org.apache.karaf.shell.table.ShellTable;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
import java.util.List;
@Command(scope = "jndi", name = "contexts", description = "List the JNDI sub-contexts.")
@Service
-public class ContextsCommand extends JndiCommandSupport {
+public class ContextsCommand implements Action {
@Argument(index = 0, name = "context", description = "The base JNDI context", required = false, multiValued = false)
- @Completer(ContextsCompleter.class)
+ @Completion(ContextsCompleter.class)
String context;
- public Object doExecute() throws Exception {
+ @Reference
+ JndiService jndiService;
+
+ @Override
+ public Object execute() throws Exception {
ShellTable table = new ShellTable();
table.column("JNDI Sub-Context");
List<String> contexts;
if (context == null) {
- contexts = this.getJndiService().contexts();
+ contexts = jndiService.contexts();
} else {
- contexts = this.getJndiService().contexts(context);
+ contexts = jndiService.contexts(context);
}
for (String c : contexts) {
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 d8627a3..86663bf 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,22 +16,29 @@
*/
package org.apache.karaf.jndi.command;
+import org.apache.karaf.jndi.JndiService;
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.inject.Service;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jndi", name = "create", description = "Create a new JNDI sub-context.")
@Service
-public class CreateCommand extends JndiCommandSupport {
+public class CreateCommand implements Action {
@Argument(index = 0, name = "context", description = "The JNDI sub-context name", required = true, multiValued = false)
- @Completer(ContextsCompleter.class)
+ @Completion(ContextsCompleter.class)
String context;
- public Object doExecute() throws Exception {
- this.getJndiService().create(context);
+ @Reference
+ JndiService jndiService;
+
+ @Override
+ public Object execute() throws Exception {
+ jndiService.create(context);
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 7e8a631..3cd3a40 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,22 +16,29 @@
*/
package org.apache.karaf.jndi.command;
+import org.apache.karaf.jndi.JndiService;
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.inject.Service;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jndi", name = "delete", description = "Delete a JNDI sub-context.")
@Service
-public class DeleteCommand extends JndiCommandSupport {
+public class DeleteCommand implements Action {
@Argument(index = 0, name = "context", description = "The JNDI sub-context name", required = true, multiValued = false)
- @Completer(ContextsCompleter.class)
+ @Completion(ContextsCompleter.class)
String context;
- public Object doExecute() throws Exception {
- this.getJndiService().delete(context);
+ @Reference
+ JndiService jndiService;
+
+ @Override
+ public Object execute() throws Exception {
+ jndiService.delete(context);
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jndi/command/src/main/java/org/apache/karaf/jndi/command/JndiCommandSupport.java
----------------------------------------------------------------------
diff --git a/jndi/command/src/main/java/org/apache/karaf/jndi/command/JndiCommandSupport.java b/jndi/command/src/main/java/org/apache/karaf/jndi/command/JndiCommandSupport.java
deleted file mode 100644
index e3e4e48..0000000
--- a/jndi/command/src/main/java/org/apache/karaf/jndi/command/JndiCommandSupport.java
+++ /dev/null
@@ -1,38 +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.jndi.command;
-
-import org.apache.karaf.jndi.JndiService;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.shell.inject.Reference;
-
-public abstract class JndiCommandSupport extends OsgiCommandSupport {
-
- @Reference
- private JndiService jndiService;
-
- public JndiService getJndiService() {
- return jndiService;
- }
-
- public void setJndiService(JndiService jndiService) {
- this.jndiService = jndiService;
- }
-
- public abstract Object doExecute() throws Exception;
-
-}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 c893843..0345f11 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,24 +16,31 @@
*/
package org.apache.karaf.jndi.command;
+import org.apache.karaf.jndi.JndiService;
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.inject.Service;
-import org.apache.karaf.shell.table.ShellTable;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.ShellTable;
import java.util.Map;
@Command(scope = "jndi", name = "names", description = "List the JNDI names.")
@Service
-public class NamesCommand extends JndiCommandSupport {
+public class NamesCommand implements Action {
@Argument(index = 0, name = "context", description = "The JNDI context to display the names", required = false, multiValued = false)
- @Completer(ContextsCompleter.class)
+ @Completion(ContextsCompleter.class)
String context;
- public Object doExecute() throws Exception {
+ @Reference
+ JndiService jndiService;
+
+ @Override
+ public Object execute() throws Exception {
ShellTable table = new ShellTable();
table.column("JNDI Name");
@@ -41,9 +48,9 @@ public class NamesCommand extends JndiCommandSupport {
Map<String, String> names;
if (context == null) {
- names = this.getJndiService().names();
+ names = jndiService.names();
} else {
- names = this.getJndiService().names(context);
+ names = jndiService.names(context);
}
for (String name : names.keySet()) {
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/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 058a822..b93c7b9 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,22 +16,29 @@
*/
package org.apache.karaf.jndi.command;
+import org.apache.karaf.jndi.JndiService;
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;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
@Command(scope = "jndi", name = "unbind", description = "Unbind a JNDI name.")
@Service
-public class UnbindCommand extends JndiCommandSupport {
+public class UnbindCommand implements Action {
@Argument(index = 0, name = "name", description = "The JNDI name to unbind", required = true, multiValued = false)
- @Completer(NamesCompleter.class)
+ @Completion(NamesCompleter.class)
String name;
- public Object doExecute() throws Exception {
- getJndiService().unbind(name);
+ @Reference
+ JndiService jndiService;
+
+ @Override
+ public Object execute() throws Exception {
+ jndiService.unbind(name);
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jndi/command/src/main/java/org/apache/karaf/jndi/command/completers/ContextsCompleter.java
----------------------------------------------------------------------
diff --git a/jndi/command/src/main/java/org/apache/karaf/jndi/command/completers/ContextsCompleter.java b/jndi/command/src/main/java/org/apache/karaf/jndi/command/completers/ContextsCompleter.java
index deab19b..8f2ac29 100644
--- a/jndi/command/src/main/java/org/apache/karaf/jndi/command/completers/ContextsCompleter.java
+++ b/jndi/command/src/main/java/org/apache/karaf/jndi/command/completers/ContextsCompleter.java
@@ -17,10 +17,12 @@
package org.apache.karaf.jndi.command.completers;
import org.apache.karaf.jndi.JndiService;
-import org.apache.karaf.shell.console.Completer;
-import org.apache.karaf.shell.console.completer.StringsCompleter;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.CommandLine;
+import org.apache.karaf.shell.api.console.Completer;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
import java.util.List;
@@ -33,7 +35,8 @@ public class ContextsCompleter implements Completer {
@Reference
private JndiService jndiService;
- public int complete(String buffer, int cursor, List candidates) {
+ @Override
+ public int complete(Session session, CommandLine commandLine, List<String> candidates) {
StringsCompleter delegate = new StringsCompleter();
try {
List<String> contexts = jndiService.contexts();
@@ -43,7 +46,7 @@ public class ContextsCompleter implements Completer {
} catch (Exception e) {
// nothing to do
}
- return delegate.complete(buffer, cursor, candidates);
+ return delegate.complete(session, commandLine, candidates);
}
public JndiService getJndiService() {
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/jndi/command/src/main/java/org/apache/karaf/jndi/command/completers/NamesCompleter.java
----------------------------------------------------------------------
diff --git a/jndi/command/src/main/java/org/apache/karaf/jndi/command/completers/NamesCompleter.java b/jndi/command/src/main/java/org/apache/karaf/jndi/command/completers/NamesCompleter.java
index 618977a..d94e3f4 100644
--- a/jndi/command/src/main/java/org/apache/karaf/jndi/command/completers/NamesCompleter.java
+++ b/jndi/command/src/main/java/org/apache/karaf/jndi/command/completers/NamesCompleter.java
@@ -17,10 +17,12 @@
package org.apache.karaf.jndi.command.completers;
import org.apache.karaf.jndi.JndiService;
-import org.apache.karaf.shell.console.Completer;
-import org.apache.karaf.shell.console.completer.StringsCompleter;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.CommandLine;
+import org.apache.karaf.shell.api.console.Completer;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
import java.util.List;
@@ -33,7 +35,8 @@ public class NamesCompleter implements Completer {
@Reference
private JndiService jndiService;
- public int complete(String buffer, int cursor, List candidates) {
+ @Override
+ public int complete(Session session, CommandLine commandLine, List<String> candidates) {
StringsCompleter delegate = new StringsCompleter();
try {
for (String name : jndiService.names().keySet()) {
@@ -42,7 +45,7 @@ public class NamesCompleter implements Completer {
} catch (Exception e) {
// nothing to do
}
- return delegate.complete(buffer, cursor, candidates);
+ return delegate.complete(session, commandLine, candidates);
}
public JndiService getJndiService() {
[2/6] [KARAF-2805] Convert remaining commands to the new model
Posted by gn...@apache.org.
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/info/PojoInfoProvider.java
----------------------------------------------------------------------
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/info/PojoInfoProvider.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/info/PojoInfoProvider.java
index b929475..c6a131e 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/info/PojoInfoProvider.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/info/PojoInfoProvider.java
@@ -20,7 +20,7 @@ package org.apache.karaf.shell.commands.impl.info;
import java.util.Properties;
-import org.apache.karaf.shell.commands.InfoProvider;
+import org.apache.karaf.shell.commands.info.InfoProvider;
public class PojoInfoProvider implements InfoProvider {
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/shell/commands/src/main/java/org/apache/karaf/shell/commands/info/InfoProvider.java
----------------------------------------------------------------------
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/info/InfoProvider.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/info/InfoProvider.java
new file mode 100644
index 0000000..b66cfae
--- /dev/null
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/info/InfoProvider.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.info;
+
+import java.util.Properties;
+
+/**
+ * A bundle can publish a service with this interface to offer some informations for the shell:info command
+ */
+public interface InfoProvider {
+
+ public String getName();
+
+ public Properties getProperties();
+
+}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/system/command/pom.xml
----------------------------------------------------------------------
diff --git a/system/command/pom.xml b/system/command/pom.xml
index eb2c5d7..cf17321 100644
--- a/system/command/pom.xml
+++ b/system/command/pom.xml
@@ -46,15 +46,8 @@
</dependency>
<dependency>
<groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.console</artifactId>
+ <artifactId>org.apache.karaf.shell.core</artifactId>
</dependency>
-
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.gogo.runtime</artifactId>
- <scope>provided</scope>
- </dependency>
-
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
@@ -84,13 +77,7 @@
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
- <Import-Package>
- org.apache.karaf.system,
- org.apache.felix.service.command,
- org.apache.karaf.shell.commands,
- org.apache.karaf.shell.console,
- *
- </Import-Package>
+ <Karaf-Commands>*</Karaf-Commands>
</instructions>
</configuration>
</plugin>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/system/command/src/main/java/org/apache/karaf/system/commands/AbstractSystemAction.java
----------------------------------------------------------------------
diff --git a/system/command/src/main/java/org/apache/karaf/system/commands/AbstractSystemAction.java b/system/command/src/main/java/org/apache/karaf/system/commands/AbstractSystemAction.java
deleted file mode 100644
index 0ffdae9..0000000
--- a/system/command/src/main/java/org/apache/karaf/system/commands/AbstractSystemAction.java
+++ /dev/null
@@ -1,33 +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.system.commands;
-
-import org.apache.karaf.shell.console.AbstractAction;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.system.SystemService;
-
-public abstract class AbstractSystemAction extends OsgiCommandSupport {
-
- @Reference
- protected SystemService systemService;
-
- public void setSystemService(SystemService systemService) {
- this.systemService = systemService;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/system/command/src/main/java/org/apache/karaf/system/commands/FrameworkOptions.java
----------------------------------------------------------------------
diff --git a/system/command/src/main/java/org/apache/karaf/system/commands/FrameworkOptions.java b/system/command/src/main/java/org/apache/karaf/system/commands/FrameworkOptions.java
index 13f7d42..9e16a7d 100644
--- a/system/command/src/main/java/org/apache/karaf/system/commands/FrameworkOptions.java
+++ b/system/command/src/main/java/org/apache/karaf/system/commands/FrameworkOptions.java
@@ -16,18 +16,21 @@
*/
package org.apache.karaf.system.commands;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.apache.karaf.system.FrameworkType;
+import org.apache.karaf.system.SystemService;
/**
* Command for enabling/disabling debug logging on the OSGi framework
*/
@Command(scope = "system", name = "framework", description = "OSGi Framework options.")
@Service
-public class FrameworkOptions extends AbstractSystemAction {
+public class FrameworkOptions implements Action {
@Option(name = "-debug", aliases={"--enable-debug"}, description="Enable debug for the OSGi framework", required = false, multiValued = false)
boolean debug;
@@ -38,8 +41,11 @@ public class FrameworkOptions extends AbstractSystemAction {
@Argument(name = "framework", required = false, description = "Name of the OSGi framework to use")
String framework;
+ @Reference
+ SystemService systemService;
+
@Override
- protected Object doExecute() throws Exception {
+ public Object execute() throws Exception {
if (!debug^nodebug && framework == null) {
System.out.printf("Current OSGi framework is %s%n", systemService.getFramework().name());
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/system/command/src/main/java/org/apache/karaf/system/commands/Name.java
----------------------------------------------------------------------
diff --git a/system/command/src/main/java/org/apache/karaf/system/commands/Name.java b/system/command/src/main/java/org/apache/karaf/system/commands/Name.java
index 6e6eb41..a716d82 100644
--- a/system/command/src/main/java/org/apache/karaf/system/commands/Name.java
+++ b/system/command/src/main/java/org/apache/karaf/system/commands/Name.java
@@ -16,21 +16,29 @@
*/
package org.apache.karaf.system.commands;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
+
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.system.SystemService;
/**
* Command to shut down Karaf container.
*/
@Command(scope = "system", name = "name", description = "Show or change Karaf instance name.")
@Service
-public class Name extends AbstractSystemAction {
+public class Name implements Action {
@Argument(name = "name", index = 0, description = "New name for the instance", required = false, multiValued = false)
String name;
- protected Object doExecute() throws Exception {
+ @Reference
+ SystemService systemService;
+
+ @Override
+ public Object execute() throws Exception {
if (name == null) {
System.out.println(systemService.getName());
} else {
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/system/command/src/main/java/org/apache/karaf/system/commands/Shutdown.java
----------------------------------------------------------------------
diff --git a/system/command/src/main/java/org/apache/karaf/system/commands/Shutdown.java b/system/command/src/main/java/org/apache/karaf/system/commands/Shutdown.java
index a95b9d0..b8b4b41 100644
--- a/system/command/src/main/java/org/apache/karaf/system/commands/Shutdown.java
+++ b/system/command/src/main/java/org/apache/karaf/system/commands/Shutdown.java
@@ -16,11 +16,13 @@
*/
package org.apache.karaf.system.commands;
-import jline.console.ConsoleReader;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.Session;
import org.apache.karaf.system.SystemService;
/**
@@ -28,7 +30,7 @@ import org.apache.karaf.system.SystemService;
*/
@Command(scope = "system", name = "shutdown", description = "Shutdown Karaf.")
@Service
-public class Shutdown extends AbstractSystemAction {
+public class Shutdown implements Action {
@Option(name = "-f", aliases = "--force", description = "Force the shutdown without confirmation message.", required = false, multiValued = false)
boolean force = false;
@@ -52,7 +54,14 @@ public class Shutdown extends AbstractSystemAction {
" to wait. The word now is an alias for +0.", required = false, multiValued = false)
String time;
- protected Object doExecute() throws Exception {
+ @Reference
+ SystemService systemService;
+
+ @Reference
+ Session session;
+
+ @Override
+ public Object execute() throws Exception {
if (force) {
if (reboot) {
@@ -71,8 +80,7 @@ public class Shutdown extends AbstractSystemAction {
} else {
msg = String.format("Confirm: halt instance %s (yes/no): ", karafName);
}
- ConsoleReader reader = (ConsoleReader) session.get(".jline.reader");
- String str = reader.readLine(msg);
+ String str = session.readLine(msg, null);
if (str.equalsIgnoreCase("yes")) {
if (reboot) {
systemService.reboot(time, determineSwipeType());
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/system/command/src/main/java/org/apache/karaf/system/commands/StartLevel.java
----------------------------------------------------------------------
diff --git a/system/command/src/main/java/org/apache/karaf/system/commands/StartLevel.java b/system/command/src/main/java/org/apache/karaf/system/commands/StartLevel.java
index 1d7dfdf..e91c15a 100644
--- a/system/command/src/main/java/org/apache/karaf/system/commands/StartLevel.java
+++ b/system/command/src/main/java/org/apache/karaf/system/commands/StartLevel.java
@@ -16,10 +16,11 @@
*/
package org.apache.karaf.system.commands;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.apache.karaf.system.SystemService;
/**
@@ -27,12 +28,16 @@ import org.apache.karaf.system.SystemService;
*/
@Command(scope = "system", name = "start-level", description = "Gets or sets the system start level.")
@Service
-public class StartLevel extends AbstractSystemAction {
+public class StartLevel implements Action {
@Argument(index = 0, name = "level", description = "The new system start level to set", required = false, multiValued = false)
Integer level;
- protected Object doExecute() throws Exception {
+ @Reference
+ SystemService systemService;
+
+ @Override
+ public Object execute() throws Exception {
if (level == null) {
System.out.println("Level " + systemService.getStartLevel());
} else {
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/system/command/src/main/java/org/apache/karaf/system/commands/SystemProperty.java
----------------------------------------------------------------------
diff --git a/system/command/src/main/java/org/apache/karaf/system/commands/SystemProperty.java b/system/command/src/main/java/org/apache/karaf/system/commands/SystemProperty.java
index b03d40f..37c2a1e 100644
--- a/system/command/src/main/java/org/apache/karaf/system/commands/SystemProperty.java
+++ b/system/command/src/main/java/org/apache/karaf/system/commands/SystemProperty.java
@@ -16,24 +16,32 @@
*/
package org.apache.karaf.system.commands;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.inject.Service;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Constants;
-
import java.io.File;
import java.io.PrintStream;
import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.Collections;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.Properties;
+import java.util.Set;
+import java.util.Vector;
+
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.system.SystemService;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
/**
* Command that allow access to system properties easily.
*/
@Command(scope = "system", name = "property", description = "Get or set a system property.")
@Service
-public class SystemProperty extends AbstractSystemAction {
+public class SystemProperty implements Action {
@Option(name = "-p", aliases = {"--persistent"}, description = "Persist the new value to the etc/system.properties file")
boolean persistent;
@@ -50,8 +58,14 @@ public class SystemProperty extends AbstractSystemAction {
@Argument(index = 1, name = "value", required = false, description = "New value for the system property")
String value;
+ @Reference
+ BundleContext bundleContext;
+
+ @Reference
+ SystemService systemService;
+
@Override
- protected Object doExecute() throws Exception {
+ public Object execute() throws Exception {
if (key == null && value == null) {
Properties props = (Properties) System.getProperties().clone();
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/system/command/src/main/java/org/apache/karaf/system/commands/Version.java
----------------------------------------------------------------------
diff --git a/system/command/src/main/java/org/apache/karaf/system/commands/Version.java b/system/command/src/main/java/org/apache/karaf/system/commands/Version.java
index 4dd0d2c..9837aaa 100644
--- a/system/command/src/main/java/org/apache/karaf/system/commands/Version.java
+++ b/system/command/src/main/java/org/apache/karaf/system/commands/Version.java
@@ -16,14 +16,21 @@
*/
package org.apache.karaf.system.commands;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.system.SystemService;
@Command(scope = "system", name = "version", description = "Display the instance version")
@Service
-public class Version extends AbstractSystemAction {
+public class Version implements Action {
- protected Object doExecute() throws Exception {
+ @Reference
+ SystemService systemService;
+
+ @Override
+ public Object execute() throws Exception {
System.out.println(systemService.getVersion());
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/system/command/src/main/resources/OSGI-INF/blueprint/system-commands.xml
----------------------------------------------------------------------
diff --git a/system/command/src/main/resources/OSGI-INF/blueprint/system-commands.xml b/system/command/src/main/resources/OSGI-INF/blueprint/system-commands.xml
deleted file mode 100644
index 6c9f328..0000000
--- a/system/command/src/main/resources/OSGI-INF/blueprint/system-commands.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy">
-
- <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0"
- scan="org.apache.karaf.system.commands.*" />
-
-</blueprint>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/web/command/pom.xml
----------------------------------------------------------------------
diff --git a/web/command/pom.xml b/web/command/pom.xml
index 7c76a98..738cb9b 100644
--- a/web/command/pom.xml
+++ b/web/command/pom.xml
@@ -47,16 +47,9 @@
</dependency>
<dependency>
<groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.console</artifactId>
+ <artifactId>org.apache.karaf.shell.core</artifactId>
<scope>provided</scope>
</dependency>
-
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.gogo.runtime</artifactId>
- <scope>provided</scope>
- </dependency>
-
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
@@ -72,11 +65,6 @@
<artifactId>org.apache.karaf.util</artifactId>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>org.apache.karaf.shell</groupId>
- <artifactId>org.apache.karaf.shell.table</artifactId>
- <scope>provided</scope>
- </dependency>
</dependencies>
<build>
@@ -107,6 +95,7 @@
<Private-Package>
org.apache.karaf.web.commands
</Private-Package>
+ <Karaf-Commands>*</Karaf-Commands>
</instructions>
</configuration>
</plugin>
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/web/command/src/main/java/org/apache/karaf/web/commands/List.java
----------------------------------------------------------------------
diff --git a/web/command/src/main/java/org/apache/karaf/web/commands/List.java b/web/command/src/main/java/org/apache/karaf/web/commands/List.java
index c2508ad..a862a45 100644
--- a/web/command/src/main/java/org/apache/karaf/web/commands/List.java
+++ b/web/command/src/main/java/org/apache/karaf/web/commands/List.java
@@ -16,20 +16,19 @@
*/
package org.apache.karaf.web.commands;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
-import org.apache.karaf.shell.table.Col;
-import org.apache.karaf.shell.table.ShellTable;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.table.Col;
+import org.apache.karaf.shell.support.table.ShellTable;
import org.apache.karaf.web.WebBundle;
import org.apache.karaf.web.WebContainerService;
-
@Command(scope = "web", name = "list", description = "Lists details for war bundles.")
@Service
-public class List extends OsgiCommandSupport {
+public class List implements Action {
@Option(name = "--no-format", description = "Disable table rendered output", required = false, multiValued = false)
boolean noFormat;
@@ -40,8 +39,9 @@ public class List extends OsgiCommandSupport {
public void setWebContainerService(WebContainerService webContainerService) {
this.webContainerService = webContainerService;
}
-
- public Object doExecute() throws Exception {
+
+ @Override
+ public Object execute() throws Exception {
ShellTable table = new ShellTable();
table.column(new Col("ID"));
table.column(new Col("State"));
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/web/command/src/main/java/org/apache/karaf/web/commands/Start.java
----------------------------------------------------------------------
diff --git a/web/command/src/main/java/org/apache/karaf/web/commands/Start.java b/web/command/src/main/java/org/apache/karaf/web/commands/Start.java
index f87846e..41d6634 100644
--- a/web/command/src/main/java/org/apache/karaf/web/commands/Start.java
+++ b/web/command/src/main/java/org/apache/karaf/web/commands/Start.java
@@ -16,16 +16,16 @@
*/
package org.apache.karaf.web.commands;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.apache.karaf.web.WebContainerService;
@Command(scope = "web", name = "start", description = "Start the web context of given bundles.")
@Service
-public class Start extends OsgiCommandSupport {
+public class Start implements Action {
@Argument(index = 0, name = "ids", description = "The list of bundle IDs separated by whitespaces", required = true, multiValued = true)
java.util.List<Long> ids;
@@ -36,8 +36,9 @@ public class Start extends OsgiCommandSupport {
public void setWebContainerService(WebContainerService webContainerService) {
this.webContainerService = webContainerService;
}
-
- public Object doExecute() throws Exception {
+
+ @Override
+ public Object execute() throws Exception {
webContainerService.start(ids);
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/web/command/src/main/java/org/apache/karaf/web/commands/Stop.java
----------------------------------------------------------------------
diff --git a/web/command/src/main/java/org/apache/karaf/web/commands/Stop.java b/web/command/src/main/java/org/apache/karaf/web/commands/Stop.java
index bff6180..76fd141 100644
--- a/web/command/src/main/java/org/apache/karaf/web/commands/Stop.java
+++ b/web/command/src/main/java/org/apache/karaf/web/commands/Stop.java
@@ -16,20 +16,16 @@
*/
package org.apache.karaf.web.commands;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
-import org.apache.karaf.shell.inject.Reference;
-import org.apache.karaf.shell.inject.Service;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.apache.karaf.web.WebContainerService;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Constants;
-import org.osgi.framework.ServiceReference;
@Command(scope = "web", name = "stop", description = "Stop the web context of given bundles.")
@Service
-public class Stop extends OsgiCommandSupport {
+public class Stop implements Action {
@Argument(index = 0, name = "ids", description = "The list of bundle IDs separated by whitespaces", required = true, multiValued = true)
java.util.List<Long> ids;
@@ -41,7 +37,8 @@ public class Stop extends OsgiCommandSupport {
this.webContainerService = webContainerService;
}
- public Object doExecute() throws Exception {
+ @Override
+ public Object execute() throws Exception {
webContainerService.stop(ids);
return null;
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/571c6f99/web/command/src/main/resources/OSGI-INF/blueprint/web-commands.xml
----------------------------------------------------------------------
diff --git a/web/command/src/main/resources/OSGI-INF/blueprint/web-commands.xml b/web/command/src/main/resources/OSGI-INF/blueprint/web-commands.xml
deleted file mode 100644
index b00ac40..0000000
--- a/web/command/src/main/resources/OSGI-INF/blueprint/web-commands.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy">
-
- <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.2.0"
- scan="org.apache.karaf.web.commands.*" />
-
-</blueprint>
\ No newline at end of file
[6/6] git commit: [KARAF-2806] The bundle:watch commands fails when
updating o.a.k.bundle.core bundle
Posted by gn...@apache.org.
[KARAF-2806] The bundle:watch commands fails when updating o.a.k.bundle.core bundle
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/d2249e43
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/d2249e43
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/d2249e43
Branch: refs/heads/master
Commit: d2249e439e4f107d7ca7dcfdffd63a1eacb02218
Parents: 571c6f9
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Wed Mar 5 23:23:37 2014 +0100
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Wed Mar 5 23:23:37 2014 +0100
----------------------------------------------------------------------
.../org/apache/karaf/bundle/core/internal/BundleWatcherImpl.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/d2249e43/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleWatcherImpl.java
----------------------------------------------------------------------
diff --git a/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleWatcherImpl.java b/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleWatcherImpl.java
index 1a9b076..665dc1b 100644
--- a/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleWatcherImpl.java
+++ b/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleWatcherImpl.java
@@ -97,6 +97,8 @@ public class BundleWatcherImpl implements Runnable, BundleListener, BundleWatche
}
}
if (watchedBundles.size() > 0) {
+ // Get the wiring before any in case of a refresh of a dependency
+ FrameworkWiring wiring = bundleContext.getBundle(0).adapt(FrameworkWiring.class);
File localRepository = this.localRepoDetector.getLocalRepository();
List<Bundle> updated = new ArrayList<Bundle>();
for (Bundle bundle : watchedBundles) {
@@ -110,7 +112,6 @@ public class BundleWatcherImpl implements Runnable, BundleListener, BundleWatche
}
try {
final CountDownLatch latch = new CountDownLatch(1);
- FrameworkWiring wiring = bundleContext.getBundle(0).adapt(FrameworkWiring.class);
wiring.refreshBundles(updated, new FrameworkListener() {
public void frameworkEvent(FrameworkEvent event) {
latch.countDown();