You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ff...@apache.org on 2014/06/18 12:13:02 UTC
git commit: [CXF-5813]add completers for cxf karaf shell commands
Repository: cxf
Updated Branches:
refs/heads/2.7.x-fixes e5014f1be -> a2cfbf0cb
[CXF-5813]add completers for cxf karaf shell commands
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/a2cfbf0c
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/a2cfbf0c
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/a2cfbf0c
Branch: refs/heads/2.7.x-fixes
Commit: a2cfbf0cb1d5e9f7a71204a504db847d1b2b1def
Parents: e5014f1
Author: Freeman Fang <fr...@gmail.com>
Authored: Wed Jun 18 18:12:49 2014 +0800
Committer: Freeman Fang <fr...@gmail.com>
Committed: Wed Jun 18 18:12:49 2014 +0800
----------------------------------------------------------------------
.../karaf/commands/completers/BusCompleter.java | 55 +++++++++++++++
.../completers/EndpointCompleterSupport.java | 72 ++++++++++++++++++++
.../completers/StartedEndpointCompleter.java | 31 +++++++++
.../completers/StoppedEndpointCompleter.java | 32 +++++++++
.../OSGI-INF/blueprint/cxf-karaf-commands.xml | 23 +++++++
5 files changed, 213 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/a2cfbf0c/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/completers/BusCompleter.java
----------------------------------------------------------------------
diff --git a/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/completers/BusCompleter.java b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/completers/BusCompleter.java
new file mode 100644
index 0000000..51e3a34
--- /dev/null
+++ b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/completers/BusCompleter.java
@@ -0,0 +1,55 @@
+/**
+ * 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.cxf.karaf.commands.completers;
+
+import java.util.List;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.karaf.commands.CXFController;
+
+import org.apache.karaf.shell.console.Completer;
+import org.apache.karaf.shell.console.completer.StringsCompleter;
+
+public class BusCompleter implements Completer {
+
+ private CXFController cxfController;
+
+ public void setController(CXFController controller) {
+ this.cxfController = controller;
+ }
+
+ @Override
+ public int complete(final String buffer,
+ final int cursor,
+ @SuppressWarnings("rawtypes") final List candidates) {
+ StringsCompleter delegate = new StringsCompleter();
+ try {
+ List<Bus> busses = cxfController.getBusses();
+
+ for (Bus bus : busses) {
+ delegate.getStrings().add(bus.getId());
+ }
+
+ } catch (Exception e) {
+ // Ignore
+ }
+ return delegate.complete(buffer, cursor, candidates);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/a2cfbf0c/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/completers/EndpointCompleterSupport.java
----------------------------------------------------------------------
diff --git a/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/completers/EndpointCompleterSupport.java b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/completers/EndpointCompleterSupport.java
new file mode 100644
index 0000000..65a8bb8
--- /dev/null
+++ b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/completers/EndpointCompleterSupport.java
@@ -0,0 +1,72 @@
+/**
+ * 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.cxf.karaf.commands.completers;
+
+import java.util.List;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.endpoint.Server;
+import org.apache.cxf.endpoint.ServerRegistry;
+import org.apache.cxf.karaf.commands.CXFController;
+import org.apache.karaf.shell.console.Completer;
+import org.apache.karaf.shell.console.completer.StringsCompleter;
+
+public abstract class EndpointCompleterSupport implements Completer {
+
+ private CXFController cxfController;
+
+ public void setController(CXFController controller) {
+ this.cxfController = controller;
+ }
+
+ @Override
+ public int complete(final String buffer,
+ final int cursor,
+ @SuppressWarnings("rawtypes") final List candidates) {
+ StringsCompleter delegate = new StringsCompleter();
+ try {
+ List<Bus> busses = cxfController.getBusses();
+
+ for (Bus b : busses) {
+ ServerRegistry reg = b.getExtension(ServerRegistry.class);
+ List<Server> servers = reg.getServers();
+
+ for (Server serv : servers) {
+ if (acceptsFeature(serv)) {
+ String qname = serv.getEndpoint().getEndpointInfo().getName().getLocalPart();
+ delegate.getStrings().add(qname);
+ }
+ }
+ }
+
+ } catch (Exception e) {
+ // Ignore
+ }
+ return delegate.complete(buffer, cursor, candidates);
+ }
+
+ /**
+ * Method for filtering endpoint.
+ *
+ * @param server The endpoint Server.
+ * @return True if endpoint Server should be available in completer.
+ */
+ protected abstract boolean acceptsFeature(Server server);
+
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/a2cfbf0c/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/completers/StartedEndpointCompleter.java
----------------------------------------------------------------------
diff --git a/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/completers/StartedEndpointCompleter.java b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/completers/StartedEndpointCompleter.java
new file mode 100644
index 0000000..7f09dff
--- /dev/null
+++ b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/completers/StartedEndpointCompleter.java
@@ -0,0 +1,31 @@
+/**
+ * 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.cxf.karaf.commands.completers;
+
+
+import org.apache.cxf.endpoint.Server;
+
+public class StartedEndpointCompleter extends EndpointCompleterSupport {
+
+ @Override
+ protected boolean acceptsFeature(Server server) {
+ return server.isStarted();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/a2cfbf0c/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/completers/StoppedEndpointCompleter.java
----------------------------------------------------------------------
diff --git a/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/completers/StoppedEndpointCompleter.java b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/completers/StoppedEndpointCompleter.java
new file mode 100644
index 0000000..1ccbd00
--- /dev/null
+++ b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/completers/StoppedEndpointCompleter.java
@@ -0,0 +1,32 @@
+/**
+ * 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.cxf.karaf.commands.completers;
+
+
+import org.apache.cxf.endpoint.Server;
+
+public class StoppedEndpointCompleter extends EndpointCompleterSupport {
+
+
+ @Override
+ protected boolean acceptsFeature(Server server) {
+ return !server.isStarted();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/a2cfbf0c/osgi/karaf/commands/src/main/resources/OSGI-INF/blueprint/cxf-karaf-commands.xml
----------------------------------------------------------------------
diff --git a/osgi/karaf/commands/src/main/resources/OSGI-INF/blueprint/cxf-karaf-commands.xml b/osgi/karaf/commands/src/main/resources/OSGI-INF/blueprint/cxf-karaf-commands.xml
index b4efdf7..910ae1a 100644
--- a/osgi/karaf/commands/src/main/resources/OSGI-INF/blueprint/cxf-karaf-commands.xml
+++ b/osgi/karaf/commands/src/main/resources/OSGI-INF/blueprint/cxf-karaf-commands.xml
@@ -32,11 +32,21 @@
<action class="org.apache.cxf.karaf.commands.StartEndpointCommand">
<property name="controller" ref="cxfController"/>
</action>
+ <completers>
+ <ref component-id="busCompleter" />
+ <ref component-id="stoppedEndpointCompleter" />
+ <null/>
+ </completers>
</command>
<command name="cxf/stop-endpoint">
<action class="org.apache.cxf.karaf.commands.StopEndpointCommand">
<property name="controller" ref="cxfController"/>
</action>
+ <completers>
+ <ref component-id="busCompleter" />
+ <ref component-id="startedEndpointCompleter" />
+ <null/>
+ </completers>
</command>
</command-bundle>
@@ -46,4 +56,17 @@
<property name="configAdmin" ref="configAdmin"/>
</bean>
+ <bean id="busCompleter" class="org.apache.cxf.karaf.commands.completers.BusCompleter">
+ <property name="controller" ref="cxfController" />
+ </bean>
+
+ <bean id="stoppedEndpointCompleter" class="org.apache.cxf.karaf.commands.completers.StoppedEndpointCompleter">
+ <property name="controller" ref="cxfController" />
+ </bean>
+
+ <bean id="startedEndpointCompleter" class="org.apache.cxf.karaf.commands.completers.StartedEndpointCompleter">
+ <property name="controller" ref="cxfController" />
+ </bean>
+
+
</blueprint>