You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by gn...@apache.org on 2016/09/28 13:44:00 UTC

[1/3] cxf git commit: [CXF-7060] Drop karaf 3 support

Repository: cxf
Updated Branches:
  refs/heads/master 44e59d77c -> 3fbedf139


http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf4/pom.xml
----------------------------------------------------------------------
diff --git a/osgi/karaf4/pom.xml b/osgi/karaf4/pom.xml
deleted file mode 100644
index d753c10..0000000
--- a/osgi/karaf4/pom.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <!--
-
-        Licensed to the Apache Software Foundation (ASF) under one or more
-        contributor license agreements.  See the NOTICE file distributed with
-        this work for additional information regarding copyright ownership.
-        The ASF licenses this file to You under the Apache License, Version 2.0
-        (the "License"); you may not use this file except in compliance with
-        the License.  You may obtain a copy of the License at
-
-           http://www.apache.org/licenses/LICENSE-2.0
-
-        Unless required by applicable law or agreed to in writing, software
-        distributed under the License is distributed on an "AS IS" BASIS,
-        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-        See the License for the specific language governing permissions and
-        limitations under the License.
-    -->
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.cxf</groupId>
-        <artifactId>cxf-parent</artifactId>
-        <version>3.2.0-SNAPSHOT</version>
-        <relativePath>../../parent</relativePath>
-    </parent>
-    <groupId>org.apache.cxf.karaf4</groupId>
-    <artifactId>karaf4-parent</artifactId>
-    <packaging>pom</packaging>
-    <name>Apache CXF Karaf4 Parent</name>
-    <description>Apache CXF Karaf4 Parent</description>
-    <modules>
-        <module>commands</module>
-        <module>features</module>
-    </modules>
-</project>

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/pom.xml
----------------------------------------------------------------------
diff --git a/osgi/pom.xml b/osgi/pom.xml
index 83a0652d..5978de5 100644
--- a/osgi/pom.xml
+++ b/osgi/pom.xml
@@ -34,7 +34,6 @@
         <module>itests</module>
         <module>itests-felix</module>
         <module>karaf</module>
-        <!-- <module>karaf4</module> -->
         <module>repository</module>
     </modules>
 </project>

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/parent/pom.xml
----------------------------------------------------------------------
diff --git a/parent/pom.xml b/parent/pom.xml
index 10795a6..91967a8 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -182,8 +182,7 @@
         <cxf.aries.parser.version>1.3.1</cxf.aries.parser.version> 
         <cxf.aries.version.range>[1.0,2)</cxf.aries.version.range>
         <cxf.osgi.version>4.2.0</cxf.osgi.version>
-        <cxf.karaf.version>3.0.6</cxf.karaf.version>
-        <cxf.karaf4.version>4.0.6</cxf.karaf4.version>
+        <cxf.karaf.version>4.0.6</cxf.karaf.version>
         <cxf.pax.logging.version>1.6.0</cxf.pax.logging.version>
         <cxf.pax.exam.version>4.7.0</cxf.pax.exam.version>
         <cxf.felix.framework.version>2.0.5</cxf.felix.framework.version>


[3/3] cxf git commit: [CXF-7060] Drop karaf 3 support

Posted by gn...@apache.org.
[CXF-7060] Drop karaf 3 support

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

Branch: refs/heads/master
Commit: 3fbedf1397714824b9700cd4d49569087936fe1a
Parents: 44e59d7
Author: Guillaume Nodet <gn...@apache.org>
Authored: Fri Sep 23 11:46:28 2016 +0200
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Wed Sep 28 15:43:40 2016 +0200

----------------------------------------------------------------------
 .../cxf/osgi/itests/CXFOSGiTestSupport.java     |   2 +-
 osgi/karaf/commands/pom.xml                     |  10 +-
 .../cxf/karaf/commands/CXFController.java       |  38 --
 .../cxf/karaf/commands/ListBussesCommand.java   |  56 +-
 .../karaf/commands/ListEndpointsCommand.java    |  82 +--
 .../karaf/commands/StartEndpointCommand.java    |  31 +-
 .../cxf/karaf/commands/StopEndpointCommand.java |  31 +-
 .../karaf/commands/completers/BusCompleter.java |  28 +-
 .../completers/EndpointCompleterSupport.java    |  26 +-
 .../completers/StartedEndpointCompleter.java    |   2 +
 .../completers/StoppedEndpointCompleter.java    |   2 +
 .../karaf/commands/internal/CXFController.java  |  94 ++++
 .../commands/internal/CXFControllerImpl.java    |  97 ----
 .../OSGI-INF/blueprint/cxf-karaf-commands.xml   |  68 ---
 osgi/karaf/features/pom.xml                     | 125 ++---
 .../features/src/main/resources/features.xml    | 193 ++++---
 osgi/karaf/pom.xml                              |   2 +-
 osgi/karaf4/commands/pom.xml                    |  84 ---
 .../cxf/karaf/commands/ListBussesCommand.java   |  67 ---
 .../karaf/commands/ListEndpointsCommand.java    | 176 ------
 .../karaf/commands/StartEndpointCommand.java    |  68 ---
 .../cxf/karaf/commands/StopEndpointCommand.java |  68 ---
 .../karaf/commands/completers/BusCompleter.java |  53 --
 .../completers/EndpointCompleterSupport.java    |  68 ---
 .../completers/StartedEndpointCompleter.java    |  33 --
 .../completers/StoppedEndpointCompleter.java    |  34 --
 .../karaf/commands/internal/CXFController.java  |  94 ----
 osgi/karaf4/features/pom.xml                    | 127 -----
 .../src/main/resources/config.properties        | 334 ------------
 .../features/src/main/resources/features.xml    | 540 -------------------
 osgi/karaf4/pom.xml                             |  36 --
 osgi/pom.xml                                    |   1 -
 parent/pom.xml                                  |   3 +-
 33 files changed, 404 insertions(+), 2269 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/itests/src/test/java/org/apache/cxf/osgi/itests/CXFOSGiTestSupport.java
----------------------------------------------------------------------
diff --git a/osgi/itests/src/test/java/org/apache/cxf/osgi/itests/CXFOSGiTestSupport.java b/osgi/itests/src/test/java/org/apache/cxf/osgi/itests/CXFOSGiTestSupport.java
index 812eb18..aaf5c7c 100644
--- a/osgi/itests/src/test/java/org/apache/cxf/osgi/itests/CXFOSGiTestSupport.java
+++ b/osgi/itests/src/test/java/org/apache/cxf/osgi/itests/CXFOSGiTestSupport.java
@@ -105,7 +105,7 @@ public class CXFOSGiTestSupport {
         }
         if (karafVersion == null) {
             // setup the default version of it
-            karafVersion = "2.3.6";
+            karafVersion = "4.0.5";
         }
         return karafVersion;
     }

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf/commands/pom.xml
----------------------------------------------------------------------
diff --git a/osgi/karaf/commands/pom.xml b/osgi/karaf/commands/pom.xml
index 07d2dcd..3d700bc 100644
--- a/osgi/karaf/commands/pom.xml
+++ b/osgi/karaf/commands/pom.xml
@@ -37,7 +37,7 @@
         <!-- karaf -->
         <dependency>
             <groupId>org.apache.karaf.shell</groupId>
-            <artifactId>org.apache.karaf.shell.console</artifactId>
+            <artifactId>org.apache.karaf.shell.core</artifactId>
             <version>${cxf.karaf.version}</version>
         </dependency>
         <dependency>
@@ -57,15 +57,21 @@
     <build>
         <plugins>
             <plugin>
+                <groupId>org.apache.karaf.tooling</groupId>
+                <artifactId>karaf-services-maven-plugin</artifactId>
+                <version>${cxf.karaf.version}</version>
+            </plugin>
+            <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
                 <extensions>true</extensions>
                 <configuration>
                     <instructions>
+                        <Karaf-Commands>*</Karaf-Commands>
                         <Import-Package>
               !org.apache.cxf.karaf.commands,
               org.apache.cxf*;version="[3,4)",
-              org.apache.karaf.shell*;version="[2.3,5)",
+              org.apache.karaf.shell*;version="[4,5)",
               *
                         </Import-Package>
                         <_nouses>true</_nouses>

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/CXFController.java
----------------------------------------------------------------------
diff --git a/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/CXFController.java b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/CXFController.java
deleted file mode 100644
index b85aafd..0000000
--- a/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/CXFController.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.cxf.karaf.commands;
-
-import java.util.List;
-
-import org.apache.cxf.Bus;
-import org.osgi.service.cm.ConfigurationAdmin;
-
-/**
- * 
- */
-public interface CXFController {
-
-    List<Bus> getBusses();
-
-    Bus getBus(String name);
-    
-    ConfigurationAdmin getConfigAdmin();
-
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/ListBussesCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/ListBussesCommand.java b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/ListBussesCommand.java
index 443b9a2..5ea70a8 100644
--- a/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/ListBussesCommand.java
+++ b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/ListBussesCommand.java
@@ -22,46 +22,46 @@ package org.apache.cxf.karaf.commands;
 import java.util.List;
 
 import org.apache.cxf.Bus;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.apache.cxf.karaf.commands.internal.CXFController;
+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.api.console.Terminal;
+import org.apache.karaf.shell.support.table.ShellTable;
 
 /**
  * 
  */
 @Command(scope = "cxf", name = "list-busses", description = "Lists all CXF Busses.")
-public class ListBussesCommand extends OsgiCommandSupport {
-    protected static final int DEFAULT_BUSID_LENGTH = 38;
-    protected String headerFormat = "%-40s %-20s";
-    protected String outputFormat = "[%-38s] [%-18s]";
-   
-    private CXFController cxfController;
+@Service
+public class ListBussesCommand extends CXFController implements Action {
 
-    public void setController(CXFController controller) {
-        this.cxfController = controller;
-    }
+    @Reference(optional = true)
+    Terminal terminal;
+
+    @Option(name = "--no-format", description = "Disable table rendered output", required = false, multiValued = false)
+    boolean noFormat;
 
-    protected Object doExecute() throws Exception {
-        List<Bus> busses = cxfController.getBusses();
-        renderFormat(busses);
-        System.out.println(String.format(headerFormat, "Name", "State"));
+    @Override
+    public Object execute() throws Exception {
+        List<Bus> busses = getBusses();
+
+        ShellTable table = new ShellTable();
+        if (terminal != null && terminal.getWidth() > 0) {
+            table.size(terminal.getWidth());
+        }
+        table.column("Name");
+        table.column("State");
 
         for (Bus bus : busses) {
+            String name = bus.getId();
             String state = bus.getState().toString();
-            System.out.println(String.format(outputFormat, bus.getId(), state));
+            table.addRow().addContent(name, state);
         }
+        table.print(System.out, !noFormat);
         return null;
     }
 
-    private void renderFormat(List<Bus> busses) {
-        int longestBusId = DEFAULT_BUSID_LENGTH;
-        for (Bus bus : busses) {
-            if (bus.getId().length() > longestBusId) {
-                longestBusId = bus.getId().length();
-            }
-        }
-        if (longestBusId > DEFAULT_BUSID_LENGTH) {
-            headerFormat = "%-" + (longestBusId + 2) + "s %-20s";
-            outputFormat = "[%-" + longestBusId + "s] [%-18s]";
-        }
-    }
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/ListEndpointsCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/ListEndpointsCommand.java b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/ListEndpointsCommand.java
index ea7ae38..3fb3323 100644
--- a/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/ListEndpointsCommand.java
+++ b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/ListEndpointsCommand.java
@@ -27,10 +27,17 @@ import org.apache.cxf.Bus;
 import org.apache.cxf.common.util.StringUtils;
 import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.endpoint.ServerRegistry;
-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.cxf.karaf.commands.completers.BusCompleter;
+import org.apache.cxf.karaf.commands.internal.CXFController;
+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.api.console.Terminal;
+import org.apache.karaf.shell.support.table.ShellTable;
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceReference;
 import org.osgi.service.cm.Configuration;
@@ -39,45 +46,54 @@ import org.osgi.service.cm.ConfigurationAdmin;
 /**
  * 
  */
-@Command(scope = "cxf", name = "list-endpoints", 
+@Command(scope = "cxf", name = "list-endpoints",
     description = "Lists all CXF Endpoints on a Bus.")
-public class ListEndpointsCommand extends OsgiCommandSupport {
+@Service
+public class ListEndpointsCommand extends CXFController implements Action {
     protected static final String HEADER_FORMAT = "%-25s %-10s %-60s %-40s";
     protected static final String OUTPUT_FORMAT = "[%-23s] [%-8s] [%-58s] [%-38s]";
     
-    @Argument(index = 0, name = "bus", 
+    @Argument(index = 0, name = "bus",
         description = "The CXF bus name where to look for the Endpoints", 
         required = false, multiValued = false)
+    @Completion(BusCompleter.class)
     String name;
     
-    @Option(name = "-f", aliases = {"--fulladdress" }, 
+    @Option(name = "-f", aliases = {"--fulladdress" },
         description = "Display full address of an endpoint ", required = false, multiValued = false)
     boolean fullAddress;
-    
-    private CXFController cxfController;
 
-    public void setController(CXFController controller) {
-        this.cxfController = controller;
-    }
+    @Option(name = "--no-format", description = "Disable table rendered output", required = false, multiValued = false)
+    boolean noFormat;
+
+    @Reference(optional = true)
+    Terminal terminal;
 
-    protected Object doExecute() throws Exception {
+    @Override
+    public Object execute() throws Exception {
         List<Bus> busses;
         if (name == null) {
-            busses = cxfController.getBusses();
+            busses = getBusses();
         } else {
-            Bus b = cxfController.getBus(name);
+            Bus b = getBus(name);
             if (b != null) {
-                busses = Collections.singletonList(cxfController.getBus(name));
+                busses = Collections.singletonList(getBus(name));
             } else {
                 busses = Collections.emptyList();
             }
         }
-        System.out.println(String.format(HEADER_FORMAT, 
-                                         "Name", "State", "Address", "BusID"));
+
+        ShellTable table = new ShellTable();
+        if (terminal != null && terminal.getWidth() > 0) {
+            table.size(terminal.getWidth());
+        }
+        table.column("Name");
+        table.column("State");
+        table.column("Address");
+        table.column("BusID");
         for (Bus b : busses) {
             ServerRegistry reg = b.getExtension(ServerRegistry.class);
             List<Server> servers = reg.getServers();
-            
             for (Server serv : servers) {
                 String qname = serv.getEndpoint().getEndpointInfo().getName().getLocalPart();
                 String started = serv.isStarted() ? "Started" : "Stopped";
@@ -86,14 +102,15 @@ public class ListEndpointsCommand extends OsgiCommandSupport {
                     address = toFullAddress(address);
                 }
                 String busId = b.getId();
-                System.out.println(String.format(OUTPUT_FORMAT, qname, started, address, busId));
+                table.addRow().addContent(qname, started, address, busId);
             }
         }
+        table.print(System.out, !noFormat);
         return null;
     }
     
     private String toFullAddress(String address) throws IOException, InvalidSyntaxException {
-        ConfigurationAdmin configAdmin = getConfigurationAdmin();
+        ConfigurationAdmin configAdmin = getConfigAdmin();
         if (address.startsWith("/") && configAdmin != null) {
             String httpPort = null;
             String cxfContext = null;
@@ -126,10 +143,6 @@ public class ListEndpointsCommand extends OsgiCommandSupport {
         return ret;
     }
 
-    private ConfigurationAdmin getConfigurationAdmin() {
-        return cxfController.getConfigAdmin();
-    }
-    
     private String getCXFOSGiServletContext() throws InvalidSyntaxException {
         String ret = null;
         String filter = "(&(" + "objectclass=" + "javax.servlet.Servlet" 
@@ -144,21 +157,20 @@ public class ListEndpointsCommand extends OsgiCommandSupport {
         return ret;
         
     }
-    
+
     private String getHttpOSGiServicePort() throws InvalidSyntaxException {
         String ret = null;
-        String filter = "(&(" + "objectclass=" + "org.osgi.service.http.HttpService" 
-            + "))";
+        String filter = "(&(" + "objectclass=" + "org.osgi.service.http.HttpService"
+                + "))";
 
         ServiceReference ref = getBundleContext().getServiceReferences(null, filter)[0];
-        
+
         if (ref != null) {
-            ret = (String)ref.getProperty("org.osgi.service.http.port");
-        } 
-        
+            ret = (String) ref.getProperty("org.osgi.service.http.port");
+        }
+
         return ret;
-        
-    }
 
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/StartEndpointCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/StartEndpointCommand.java b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/StartEndpointCommand.java
index 1f64f30..d2bf6be 100644
--- a/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/StartEndpointCommand.java
+++ b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/StartEndpointCommand.java
@@ -24,35 +24,38 @@ import java.util.List;
 import org.apache.cxf.Bus;
 import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.endpoint.ServerRegistry;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.apache.cxf.karaf.commands.completers.BusCompleter;
+import org.apache.cxf.karaf.commands.completers.StoppedEndpointCompleter;
+import org.apache.cxf.karaf.commands.internal.CXFController;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 
 /**
  * 
  */
-@Command(scope = "cxf", name = "start-endpoint", 
+@Command(scope = "cxf", name = "start-endpoint",
     description = "Starts a CXF Endpoint on a Bus.")
-public class StartEndpointCommand extends OsgiCommandSupport {
+@Service
+public class StartEndpointCommand extends CXFController implements Action {
     
     @Argument(index = 0, name = "bus", 
         description = "The CXF bus name where to look for the Endpoint", 
         required = true, multiValued = false)
+    @Completion(BusCompleter.class)
     String busName;
     
-    @Argument(index = 1, name = "endpoint", 
+    @Argument(index = 1, name = "endpoint",
         description = "The Endpoint name to start", 
         required = true, multiValued = false)
+    @Completion(StoppedEndpointCompleter.class)
     String endpoint;
-    
-    private CXFController cxfController;
-
-    public void setController(CXFController controller) {
-        this.cxfController = controller;
-    }
 
-    protected Object doExecute() throws Exception {
-        Bus b = cxfController.getBus(busName);
+    @Override
+    public Object execute() throws Exception {
+        Bus b = getBus(busName);
         ServerRegistry reg = b.getExtension(ServerRegistry.class);
         List<Server> servers = reg.getServers();
         for (Server serv : servers) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/StopEndpointCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/StopEndpointCommand.java b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/StopEndpointCommand.java
index ab557b9..9ffdbf9 100644
--- a/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/StopEndpointCommand.java
+++ b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/StopEndpointCommand.java
@@ -24,35 +24,38 @@ import java.util.List;
 import org.apache.cxf.Bus;
 import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.endpoint.ServerRegistry;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.apache.cxf.karaf.commands.completers.BusCompleter;
+import org.apache.cxf.karaf.commands.completers.StartedEndpointCompleter;
+import org.apache.cxf.karaf.commands.internal.CXFController;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 
 /**
  * 
  */
-@Command(scope = "cxf", name = "stop-endpoint", 
+@Command(scope = "cxf", name = "stop-endpoint",
     description = "Stops a CXF Endpoint on a Bus.")
-public class StopEndpointCommand extends OsgiCommandSupport {
+@Service
+public class StopEndpointCommand extends CXFController implements Action {
     
-    @Argument(index = 0, name = "bus", 
+    @Argument(index = 0, name = "bus",
         description = "The CXF bus name where to look for the Endpoint", 
         required = true, multiValued = false)
+    @Completion(BusCompleter.class)
     String busName;
     
     @Argument(index = 1, name = "endpoint", 
         description = "The Endpoint name to stop", 
         required = true, multiValued = false)
+    @Completion(StartedEndpointCompleter.class)
     String endpoint;
-    
-    private CXFController cxfController;
-
-    public void setController(CXFController controller) {
-        this.cxfController = controller;
-    }
 
-    protected Object doExecute() throws Exception {
-        Bus b = cxfController.getBus(busName);
+    @Override
+    public Object execute() throws Exception {
+        Bus b = getBus(busName);
         ServerRegistry reg = b.getExtension(ServerRegistry.class);
         List<Server> servers = reg.getServers();
         for (Server serv : servers) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/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
index 51e3a34..47217e1 100644
--- 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
@@ -21,26 +21,24 @@ 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;
+import org.apache.cxf.karaf.commands.internal.CXFController;
+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;
 
-public class BusCompleter implements Completer {
+@Service
+public class BusCompleter extends CXFController 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) {
+    public int complete(Session session,
+                        CommandLine commandLine,
+                        List<String> list) {
         StringsCompleter delegate = new StringsCompleter();
         try {
-            List<Bus> busses = cxfController.getBusses();
+            List<Bus> busses = getBusses();
            
             for (Bus bus : busses) {
                 delegate.getStrings().add(bus.getId());
@@ -49,7 +47,7 @@ public class BusCompleter implements Completer {
         } catch (Exception e) {
             // Ignore
         }
-        return delegate.complete(buffer, cursor, candidates);
+        return delegate.complete(session, commandLine, list);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/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
index 65a8bb8..463a5ad 100644
--- 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
@@ -23,25 +23,21 @@ 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;
+import org.apache.cxf.karaf.commands.internal.CXFController;
+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;
 
-public abstract class EndpointCompleterSupport implements Completer {
-    
-    private CXFController cxfController;
-
-    public void setController(CXFController controller) {
-        this.cxfController = controller;
-    }
+public abstract class EndpointCompleterSupport extends CXFController implements Completer {
 
     @Override
-    public int complete(final String buffer, 
-                        final int cursor, 
-                        @SuppressWarnings("rawtypes") final List candidates) {
+    public int complete(Session session,
+                        CommandLine commandLine,
+                        List<String> list) {
         StringsCompleter delegate = new StringsCompleter();
         try {
-            List<Bus> busses = cxfController.getBusses();
+            List<Bus> busses = getBusses();
            
             for (Bus b : busses) {
                 ServerRegistry reg = b.getExtension(ServerRegistry.class);
@@ -58,7 +54,7 @@ public abstract class EndpointCompleterSupport implements Completer {
         } catch (Exception e) {
             // Ignore
         }
-        return delegate.complete(buffer, cursor, candidates);
+        return delegate.complete(session, commandLine, list);
     }
     
     /**

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/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
index 7f09dff..1e2d529 100644
--- 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
@@ -20,7 +20,9 @@ package org.apache.cxf.karaf.commands.completers;
 
 
 import org.apache.cxf.endpoint.Server;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 
+@Service
 public class StartedEndpointCompleter extends EndpointCompleterSupport {
 
     @Override

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/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
index 1ccbd00..fb53ae7 100644
--- 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
@@ -20,7 +20,9 @@ package org.apache.cxf.karaf.commands.completers;
 
 
 import org.apache.cxf.endpoint.Server;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 
+@Service
 public class StoppedEndpointCompleter extends EndpointCompleterSupport {
 
     

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/internal/CXFController.java
----------------------------------------------------------------------
diff --git a/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/internal/CXFController.java b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/internal/CXFController.java
new file mode 100644
index 0000000..0daf0e7
--- /dev/null
+++ b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/internal/CXFController.java
@@ -0,0 +1,94 @@
+/**
+ * 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.internal;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.common.logging.LogUtils;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.cm.ConfigurationAdmin;
+
+
+/**
+ */
+public class CXFController {
+    private static final Logger LOG = LogUtils.getL7dLogger(CXFController.class);
+
+    @Reference
+    private BundleContext bundleContext;
+
+    @Reference
+    private ConfigurationAdmin configAdmin;
+
+    public List<Bus> getBusses() {
+        List<Bus> busses = new ArrayList<Bus>();
+        try {
+            ServiceReference[] references = bundleContext.getServiceReferences(Bus.class.getName(), null);
+            if (references != null) {
+                for (ServiceReference reference : references) {
+                    if (reference != null) {
+                        Bus bus = (Bus) bundleContext.getService(reference);
+                        if (bus != null) {
+                            busses.add(bus);
+                        }
+                    }
+                }
+            }
+        } catch (Exception e) {
+            LOG.log(Level.INFO, "Cannot retrieve the list of CXF Busses.", e);
+        }
+        return busses;
+    }
+
+    public Bus getBus(String name) {
+        try {
+            ServiceReference[] references = bundleContext.getServiceReferences(Bus.class.getName(), null);
+            if (references != null) {
+                for (ServiceReference reference : references) {
+                    if (reference != null
+                        && name.equals(reference.getProperty("cxf.bus.id"))) {
+                        return (Bus) bundleContext.getService(reference);
+                    }
+                }
+            }
+        } catch (Exception e) {
+            LOG.log(Level.INFO, "Cannot retrieve the CXF Bus.", e);
+            return null;
+        }
+        LOG.log(Level.INFO, "Cannot retrieve the CXF Bus " + name + ".");
+        return null;
+    }
+
+    public ConfigurationAdmin getConfigAdmin() {
+        return configAdmin;
+    }
+
+    public BundleContext getBundleContext() {
+        return bundleContext;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/internal/CXFControllerImpl.java
----------------------------------------------------------------------
diff --git a/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/internal/CXFControllerImpl.java b/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/internal/CXFControllerImpl.java
deleted file mode 100644
index fad5386..0000000
--- a/osgi/karaf/commands/src/main/java/org/apache/cxf/karaf/commands/internal/CXFControllerImpl.java
+++ /dev/null
@@ -1,97 +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.cxf.karaf.commands.internal;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-
-import org.apache.cxf.Bus;
-import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.karaf.commands.CXFController;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.cm.ConfigurationAdmin;
-
-
-/**
- */
-public class CXFControllerImpl implements CXFController {
-    private static final Logger LOG = LogUtils.getL7dLogger(CXFControllerImpl.class);
-
-    private BundleContext bundleContext;
-    private ConfigurationAdmin configAdmin;
-
-    public void setBundleContext(BundleContext bundleContext) {
-        this.bundleContext = bundleContext;
-    }
-
-    public List<Bus> getBusses() {
-        List<Bus> busses = new ArrayList<Bus>();
-        try {
-            ServiceReference[] references = bundleContext.getServiceReferences(Bus.class.getName(), null);
-            if (references != null) {
-                for (ServiceReference reference : references) {
-                    if (reference != null) {
-                        Bus bus = (Bus) bundleContext.getService(reference);
-                        if (bus != null) {
-                            busses.add(bus);
-                        }
-                    }
-                }
-            }
-        } catch (Exception e) {
-            LOG.log(Level.INFO, "Cannot retrieve the list of CXF Busses.", e);
-        }
-        return busses;
-    }
-
-    public Bus getBus(String name) {
-        try {
-            ServiceReference[] references = bundleContext.getServiceReferences(Bus.class.getName(), null);
-            if (references != null) {
-                for (ServiceReference reference : references) {
-                    if (reference != null
-                        && name.equals(reference.getProperty("cxf.bus.id"))) {
-                        return (Bus) bundleContext.getService(reference);
-                    }
-                }
-            }
-        } catch (Exception e) {
-            LOG.log(Level.INFO, "Cannot retrieve the CXF Bus.", e);
-            return null;
-        }
-        LOG.log(Level.INFO, "Cannot retrieve the CXF Bus " + name + ".");
-        return null;
-    }
-
-    public ConfigurationAdmin getConfigAdmin() {
-        return configAdmin;
-    }
-
-    public void setConfigAdmin(ConfigurationAdmin configAdmin) {
-        this.configAdmin = configAdmin;
-    }
-
-
-
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/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
deleted file mode 100644
index 561c304..0000000
--- a/osgi/karaf/commands/src/main/resources/OSGI-INF/blueprint/cxf-karaf-commands.xml
+++ /dev/null
@@ -1,68 +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.0.0">
-        <command name="cxf/list-busses">
-            <action class="org.apache.cxf.karaf.commands.ListBussesCommand">
-                <property name="controller" ref="cxfController"/>
-            </action>
-        </command>
-        <command name="cxf/list-endpoints">
-            <action class="org.apache.cxf.karaf.commands.ListEndpointsCommand">
-                <property name="controller" ref="cxfController"/>
-            </action>
-        </command>
-        <command name="cxf/start-endpoint">
-            <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>
-    <reference id="configAdmin" interface="org.osgi.service.cm.ConfigurationAdmin"/>
-    <bean id="cxfController" class="org.apache.cxf.karaf.commands.internal.CXFControllerImpl">
-        <property name="bundleContext" ref="blueprintBundleContext"/>
-        <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>

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf/features/pom.xml
----------------------------------------------------------------------
diff --git a/osgi/karaf/features/pom.xml b/osgi/karaf/features/pom.xml
index 3ead8ca..36407c2 100644
--- a/osgi/karaf/features/pom.xml
+++ b/osgi/karaf/features/pom.xml
@@ -29,66 +29,21 @@
     <description>Apache CXF Karaf Features</description>
     <!-- The validate plugin will export these provided dependencies bundles' export packages first -->
     <dependencies>
+        <!-- Framework distribution -->
         <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <version>4.2.0</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.ops4j.pax.logging</groupId>
-            <artifactId>pax-logging-api</artifactId>
-            <version>${cxf.pax.logging.version}</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.ops4j.pax.logging</groupId>
-            <artifactId>pax-logging-service</artifactId>
-            <version>${cxf.pax.logging.version}</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.framework</artifactId>
-            <version>${cxf.felix.framework.version}</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.configadmin</artifactId>
-            <version>${cxf.felix.configadmin.version}</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.aries.blueprint</groupId>
-            <artifactId>org.apache.aries.blueprint</artifactId>
-            <version>${cxf.aries.version}</version>
-            <scope>provided</scope>
-        </dependency>
-        <!-- The dependency for cxf karaf command console -->
-        <dependency>
-            <groupId>org.apache.karaf.shell</groupId>
-            <artifactId>org.apache.karaf.shell.console</artifactId>
+            <groupId>org.apache.karaf.features</groupId>
+            <artifactId>framework</artifactId>
             <version>${cxf.karaf.version}</version>
+            <type>kar</type>
             <scope>provided</scope>
         </dependency>
-        
-        <dependency>
-            <groupId>org.apache.cxf</groupId>
-            <artifactId>cxf-rt-frontend-jaxws</artifactId>
-            <version>${project.version}</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cxf</groupId>
-            <artifactId>cxf-rt-ws-rm</artifactId>
-            <version>${project.version}</version>
-            <scope>provided</scope>
-        </dependency>
+
         <dependency>
-            <groupId>org.apache.cxf</groupId>
-            <artifactId>cxf-rt-ws-security</artifactId>
-            <version>${project.version}</version>
+            <groupId>org.apache.karaf.features</groupId>
+            <artifactId>standard</artifactId>
+            <version>${cxf.karaf.version}</version>
+            <classifier>features</classifier>
+            <type>xml</type>
             <scope>provided</scope>
         </dependency>
     </dependencies>
@@ -135,34 +90,38 @@
                     </execution>
                 </executions>
             </plugin>
-        </plugins>
-    </build>
-    <profiles>
-        <profile>
-            <id>validate</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.karaf.tooling</groupId>
-                        <artifactId>features-maven-plugin</artifactId>
-                        <version>${cxf.karaf.version}</version>
+            <plugin>
+                <groupId>org.apache.karaf.tooling</groupId>
+                <artifactId>karaf-maven-plugin</artifactId>
+                <version>${cxf.karaf.version}</version>
+                <executions>
+                    <execution>
+                        <id>verify</id>
+                        <phase>process-resources</phase>
+                        <goals>
+                            <goal>verify</goal>
+                        </goals>
                         <configuration>
-                            <file>${project.build.directory}/classes/features.xml</file>
-                            <karafConfig>${project.build.directory}/classes/config.properties</karafConfig>
-                            <jreVersion>jre-1.6</jreVersion>
+                            <descriptors>
+                                <descriptor>mvn:org.apache.karaf.features/framework/${cxf.karaf.version}/xml/features</descriptor>
+                                <descriptor>mvn:org.apache.karaf.features/standard/${cxf.karaf.version}/xml/features</descriptor>
+                                <descriptor>mvn:org.apache.karaf.features/spring/${cxf.karaf.version}/xml/features</descriptor>
+                                <descriptor>file:${project.build.directory}/classes/features.xml</descriptor>
+                            </descriptors>
+                            <distribution>org.apache.karaf.features:framework</distribution>
+                            <javase>1.8</javase>
+                            <framework>
+                                <feature>framework</feature>
+                            </framework>
+                            <features>
+                                <!--<feature>cxf-*</feature>-->
+                                <feature>cxf-management-web</feature>
+                                <feature>cxf-wsn</feature>
+                            </features>
                         </configuration>
-                        <executions>
-                            <execution>
-                                <id>validate</id>
-                                <phase>process-resources</phase>
-                                <goals>
-                                    <goal>validate</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
 </project>

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf/features/src/main/resources/features.xml
----------------------------------------------------------------------
diff --git a/osgi/karaf/features/src/main/resources/features.xml b/osgi/karaf/features/src/main/resources/features.xml
index 9df83bf..cb1fa09 100644
--- a/osgi/karaf/features/src/main/resources/features.xml
+++ b/osgi/karaf/features/src/main/resources/features.xml
@@ -16,8 +16,11 @@
       See the License for the specific language governing permissions and
       limitations under the License.
 -->
-<features xmlns="http://karaf.apache.org/xmlns/features/v1.0.0" name="cxf-${project.version}">
-    <feature name="cxf-specs" version="${project.version}" resolver="(obr)">
+<features xmlns="http://karaf.apache.org/xmlns/features/v1.3.0" name="cxf-${project.version}">
+
+	<repository>mvn:org.ops4j.pax.cdi/pax-cdi-features/[1.0.0.RC1,2)/xml/features</repository>
+
+    <feature name="cxf-specs" version="${project.version}">
         <bundle start-level="9">mvn:org.apache.geronimo.specs/geronimo-osgi-registry/1.1</bundle>
         <bundle start-level="10" dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/${cxf.servicemix.specs.version}</bundle>
         <bundle start-level="10">mvn:javax.annotation/javax.annotation-api/${cxf.javax.annotation-api.version}</bundle>
@@ -32,13 +35,14 @@
         <bundle start-level="20">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/${cxf.jaxb.bundle.version}</bundle>
         <bundle start-level="20">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-xjc/${cxf.jaxb.bundle.version}</bundle>
     </feature>
-    <feature name="cxf-jaxb" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-jaxb" version="${project.version}">
         <feature version="${project.version}">cxf-specs</feature>
+        <feature version="${project.version}">cxf-wsdl</feature>
         <bundle start-level="20">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/${cxf.jaxb.bundle.version}</bundle>
         <bundle start-level="20">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-xjc/${cxf.jaxb.bundle.version}</bundle>
     </feature>
     <!-- Current the abdera bundle is not working as we expect -->
-    <feature name="cxf-abdera" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-abdera" version="${project.version}">
         <feature version="${project.version}">cxf-specs</feature>
         <bundle start-level="25" dependency="true">mvn:commons-codec/commons-codec/${cxf.commons-codec.version}</bundle>
         <bundle start-level="35">mvn:org.apache.abdera/abdera-core/${cxf.abdera.version}</bundle>
@@ -51,7 +55,7 @@
         <!--bundle start-level='35'>mvn:org.apache.abdera/abdera-extensions-html/${cxf.abdera.version}</bundle>
         <bundle start-level='35'>mvn:org.apache.abdera/abdera-extensions-json/${cxf.abdera.version}</bundle>-->
     </feature>
-    <feature name="wss4j" version="${cxf.wss4j.version}" resolver="(obr)">
+    <feature name="wss4j" version="${cxf.wss4j.version}">
         <feature version="${project.version}">cxf-specs</feature>
         <bundle start-level="25" dependency="true">mvn:joda-time/joda-time/${cxf.joda.time.version}</bundle>
         <bundle start-level="25" dependency="true">mvn:commons-codec/commons-codec/${cxf.commons-codec.version}</bundle>
@@ -73,47 +77,53 @@
         <bundle start-level="30">mvn:org.apache.wss4j/wss4j-ws-security-stax/${cxf.wss4j.version}</bundle>
         <bundle start-level="30">mvn:org.apache.wss4j/wss4j-ws-security-policy-stax/${cxf.wss4j.version}</bundle>
     </feature>
-    <feature name="cxf-core" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-core" version="${project.version}">
         <feature version="${project.version}">cxf-specs</feature>
         <bundle start-level="30" dependency="true">mvn:org.apache.ws.xmlschema/xmlschema-core/${cxf.xmlschema.version}</bundle>
         <bundle start-level="25" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/${cxf.xmlresolver.bundle.version}</bundle>
         <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.fastinfoset/${cxf.fastinfoset.bundle.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-core/${project.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-management/${project.version}</bundle>
+        <conditional>
+            <condition>shell</condition>
+            <feature version="${project.version}">cxf-commands</feature>
+        </conditional>
     </feature>
-    <feature name="cxf-commands" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-commands" version="${project.version}">
+        <feature>shell</feature>
         <feature version="${project.version}">cxf-core</feature>
         <bundle start-level="40">mvn:org.apache.cxf.karaf/cxf-karaf-commands/${project.version}</bundle>
     </feature>
-    <feature name="cxf-wsdl" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-wsdl" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.wsdl4j/${cxf.wsdl4j.bundle.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-wsdl/${project.version}</bundle>
     </feature>
-    <feature name="cxf-ws-policy" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-ws-policy" version="${project.version}">
         <feature version="${project.version}">cxf-wsdl</feature>
         <bundle start-level="30" dependency="true">mvn:org.apache.neethi/neethi/${cxf.neethi.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-ws-policy/${project.version}</bundle>
     </feature>
-    <feature name="cxf-ws-addr" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-ws-addr" version="${project.version}">
         <feature version="${project.version}">cxf-ws-policy</feature>
         <feature version="${project.version}">cxf-bindings-soap</feature>
         <feature version="${project.version}">cxf-databinding-jaxb</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-ws-addr/${project.version}</bundle>
     </feature>
-    <feature name="cxf-ws-rm" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-ws-rm" version="${project.version}">
         <feature version="${project.version}">cxf-ws-policy</feature>
         <feature version="${project.version}">cxf-ws-addr</feature>
+        <feature version="${project.version}">cxf-ws-security</feature>
         <feature version="${project.version}">cxf-databinding-jaxb</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-ws-rm/${project.version}</bundle>
     </feature>
-    <feature name="cxf-ws-mex" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-ws-mex" version="${project.version}">
         <feature version="${project.version}">cxf-ws-policy</feature>
         <feature version="${project.version}">cxf-ws-addr</feature>
         <feature version="${project.version}">cxf-jaxws</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-ws-mex/${project.version}</bundle>
     </feature>
-    <feature name="cxf-ws-security" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-ws-security" version="${project.version}">
         <feature version="${cxf.wss4j.version}">wss4j</feature>
         <feature version="${project.version}">cxf-rt-security-saml</feature>
         <feature version="${project.version}">cxf-ws-policy</feature>
@@ -122,42 +132,58 @@
         <bundle start-level="40" dependency="true">mvn:net.sf.ehcache/ehcache/${cxf.ehcache.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-ws-security/${project.version}</bundle>
     </feature>
-    <feature name="cxf-rt-security" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-rt-security" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <feature version="${project.version}">cxf-wsdl</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-security/${project.version}</bundle>
     </feature>
-    <feature name="cxf-rt-security-saml" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-rt-security-saml" version="${project.version}">
         <feature version="${project.version}">cxf-rt-security</feature>
         <feature version="${cxf.wss4j.version}">wss4j</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-security-saml/${project.version}</bundle>
     </feature>
-    <feature name="cxf-http-client" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-http-client" version="${project.version}">
         <!-- Can be used instead cxf-http for a smaller footprint -->
         <feature version="${project.version}">cxf-core</feature>
         <bundle start-level="40">mvn:${cxf.servlet-api.group}/${cxf.servlet-api.artifact}/${cxf.servlet-api.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-http/${project.version}</bundle>
     </feature>
 
-    <feature name="cxf-http" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-http" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <feature>http</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-http/${project.version}</bundle>
     </feature>
-    <feature name="cxf-http-jetty" version="${project.version}" resolver="(obr)">
-        <feature version="[3,4)">cxf-http</feature>
+    <!--
+      This feature can be used to depend on the feature providing a HttpDestinationFactory extension
+      without depending on the actual provider (see cxf-wsn for example).
+      It will install cxf-http-jetty by default, unless the user explicitly installs a different
+      provider, such as cxf-http-undertow.
+      -->
+    <feature name="cxf-http-provider" version="${project.version}">
+        <feature dependency="true" version="${project.version}">cxf-http-jetty</feature>
+        <requirement>
+            cxf.http.provider
+        </requirement>
+    </feature>
+    <feature name="cxf-http-jetty" version="${project.version}">
+        <feature version="${project.version}">cxf-http</feature>
         <feature version="[7,10)">jetty</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-http-jetty/${project.version}</bundle>
+        <capability>
+            cxf.http.provider;name=jetty
+        </capability>
     </feature>
-    <feature name="cxf-http-async" version="${project.version}" resolver="(obr)">
-        <feature version="[3,4)">cxf-http</feature>
+    <feature name="cxf-http-async" version="${project.version}">
+        <feature version="${project.version}">cxf-http</feature>
         <bundle start-level="40">mvn:org.apache.httpcomponents/httpcore-osgi/${cxf.httpcomponents.core.version}</bundle>
         <bundle start-level="40">mvn:org.apache.httpcomponents/httpclient-osgi/${cxf.httpcomponents.client.version}</bundle>
         <bundle start-level="40">mvn:org.apache.httpcomponents/httpasyncclient-osgi/${cxf.httpcomponents.asyncclient.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-http-hc/${project.version}</bundle>
     </feature>
-    <feature name="cxf-http-netty-client" version="${project.version}" resolver="(obr)">
-        <feature version="[3,4)">cxf-http</feature>
+    <feature name="cxf-http-netty-client" version="${project.version}">
+        <feature version="${project.version}">cxf-http</feature>
+        <bundle dependency="true" start-level="40">mvn:${cxf.servlet-api.group}/${cxf.servlet-api.artifact}/${cxf.servlet-api.version}</bundle>
         <bundle start-level="40">mvn:io.netty/netty-common/${cxf.netty.version}</bundle>
         <bundle start-level="40">mvn:io.netty/netty-handler/${cxf.netty.version}</bundle>
         <bundle start-level="40">mvn:io.netty/netty-buffer/${cxf.netty.version}</bundle>
@@ -166,8 +192,8 @@
         <bundle start-level="40">mvn:io.netty/netty-codec-http/${cxf.netty.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-http-netty-client/${project.version}</bundle>
     </feature>
-    <feature name="cxf-http-netty-server" version="${project.version}" resolver="(obr)">
-        <feature version="[3,4)">cxf-http</feature>
+    <feature name="cxf-http-netty-server" version="${project.version}">
+        <feature version="${project.version}">cxf-http</feature>
         <bundle start-level="40">mvn:io.netty/netty-common/${cxf.netty.version}</bundle>
         <bundle start-level="40">mvn:io.netty/netty-handler/${cxf.netty.version}</bundle>
         <bundle start-level="40">mvn:io.netty/netty-buffer/${cxf.netty.version}</bundle>
@@ -175,26 +201,33 @@
         <bundle start-level="40">mvn:io.netty/netty-codec/${cxf.netty.version}</bundle>
         <bundle start-level="40">mvn:io.netty/netty-codec-http/${cxf.netty.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-http-netty-server/${project.version}</bundle>
+        <capability>
+            cxf.http.provider;name=netty
+        </capability>
     </feature>
-    <feature name="cxf-http-undertow" version="${project.version}" resolver="(obr)">
-        <feature version="[3,4)">cxf-http</feature>
+    <feature name="cxf-http-undertow" version="${project.version}">
+        <feature version="${project.version}">cxf-http</feature>
         <feature>pax-http-undertow</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-http-undertow/${project.version}</bundle>
+        <capability>
+            cxf.http.provider;name=undertow
+        </capability>
     </feature>
-    <feature name="cxf-bindings-soap" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-bindings-soap" version="${project.version}">
         <feature version="${project.version}">cxf-wsdl</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-bindings-xml/${project.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-bindings-soap/${project.version}</bundle>
     </feature>
-    <feature name="cxf-jaxws" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-jaxws" version="${project.version}">
         <feature version="${project.version}">cxf-wsdl</feature>
         <feature version="${project.version}">cxf-databinding-jaxb</feature>
         <feature version="${project.version}">cxf-bindings-soap</feature>
         <feature version="${project.version}">cxf-http</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-frontend-simple/${project.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-frontend-jaxws/${project.version}</bundle>
+        <library type="endorsed" export="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-2.2/${cxf.servicemix.specs.version}</library>
     </feature>
-    <feature name="cxf-jaxrs" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-jaxrs" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <feature version="${project.version}">cxf-http</feature>
         <bundle start-level="30" dependency="true">mvn:org.codehaus.jettison/jettison/${cxf.jettison.version}</bundle>
@@ -204,36 +237,36 @@
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-frontend-jaxrs/${project.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-client/${project.version}</bundle>
     </feature>
-    <feature name="cxf-rs-security-xml" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-rs-security-xml" version="${project.version}">
         <feature version="${project.version}">cxf-jaxrs</feature>
         <feature version="${project.version}">cxf-rt-security-saml</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-security-xml/${project.version}</bundle>
     </feature>
-    <feature name="cxf-rs-security-sso-saml" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-rs-security-sso-saml" version="${project.version}">
         <feature version="${project.version}">cxf-rs-security-xml</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-security-sso-saml/${project.version}</bundle>
     </feature>
-    <feature name="cxf-rs-security-cors" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-rs-security-cors" version="${project.version}">
         <feature version="${project.version}">cxf-jaxrs</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-security-cors/${project.version}</bundle>
     </feature>
-    <feature name="cxf-rs-security-oauth" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-rs-security-oauth" version="${project.version}">
         <feature version="${project.version}">cxf-jaxrs</feature>
         <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.oauth-provider/${cxf.oauth.bundle.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-security-oauth/${project.version}</bundle>
     </feature>
-    <feature name="cxf-rs-security-jose" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-rs-security-jose" version="${project.version}">
         <feature version="${project.version}">cxf-jaxrs</feature>
         <feature version="${project.version}">cxf-rt-security</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-json-basic/${project.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-security-jose/${project.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-security-jose-jaxrs/${project.version}</bundle>
     </feature>
-    <feature name="cxf-rs-security-oauth2" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-rs-security-oauth2" version="${project.version}">
         <feature version="${project.version}">cxf-rs-security-jose</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-security-oauth2/${project.version}</bundle>
     </feature>
-    <feature name="cxf-jackson" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-jackson" version="${project.version}">
         <bundle start-level="35">mvn:com.fasterxml.jackson.core/jackson-core/${cxf.jackson.version}</bundle>
         <bundle start-level="35">mvn:com.fasterxml.jackson.core/jackson-annotations/${cxf.jackson.version}</bundle>
         <bundle start-level="35">mvn:com.fasterxml.jackson.core/jackson-databind/${cxf.jackson.version}</bundle>
@@ -241,7 +274,7 @@
         <bundle start-level="35">mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/${cxf.jackson.version}</bundle>
         <bundle start-level="35">mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/${cxf.jackson.version}</bundle>
     </feature>
-    <feature name="cxf-rs-description-swagger2" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-rs-description-swagger2" version="${project.version}">
         <feature version="${project.version}">cxf-jaxrs</feature>
         <feature version="${project.version}">cxf-jackson</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-service-description-swagger/${project.version}</bundle>
@@ -255,12 +288,12 @@
         <bundle start-level="35" dependency="true">mvn:io.swagger/swagger-core/${cxf.swagger2.version}</bundle>
         <bundle start-level="35" dependency="true">mvn:io.swagger/swagger-jaxrs/${cxf.swagger2.version}</bundle>
     </feature>
-    <feature name="cxf-databinding-aegis" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-databinding-aegis" version="${project.version}">
         <feature version="${project.version}">cxf-wsdl</feature>
         <feature version="${project.version}">cxf-bindings-soap</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-databinding-aegis/${project.version}</bundle>
     </feature>
-    <feature name="cxf-databinding-jibx" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-databinding-jibx" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <feature version="${project.version}">cxf-tools</feature>
         <bundle start-level="25" dependency="true">mvn:joda-time/joda-time/${cxf.joda.time.version}</bundle>
@@ -271,89 +304,93 @@
         <bundle start-level="40" dependency="true">mvn:org.jibx/jibx-tools/${cxf.jibx.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-databinding-jibx/${project.version}</bundle>
     </feature>
-    <feature name="cxf-databinding-jaxb" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-databinding-jaxb" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
+        <feature version="${project.version}">cxf-wsdl</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-databinding-jaxb/${project.version}</bundle>
     </feature>
-    <feature name="cxf-databinding-xmlbeans" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-databinding-xmlbeans" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlbeans/${cxf.xmlbeans.bundle.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-databinding-xmlbeans/${project.version}</bundle>
     </feature>
-    <feature name="cxf-features-clustering" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-features-clustering" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-features-clustering/${project.version}</bundle>
     </feature>
-    <feature name="cxf-features-logging" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-features-logging" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-features-logging/${project.version}</bundle>
     </feature>
-    <feature name="cxf-features-throttling" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-features-throttling" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-features-throttling/${project.version}</bundle>
     </feature>
-    <feature name="cxf-features-metrics" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-features-metrics" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <bundle start-level="40" dependency='true'>mvn:io.dropwizard.metrics/metrics-core/${cxf.dropwizard.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-features-metrics/${project.version}</bundle>
     </feature>
-    <feature name="cxf-bindings-corba" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-bindings-corba" version="${project.version}">
         <feature version="${project.version}">cxf-wsdl</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-bindings-corba/${project.version}</bundle>
     </feature>
-    <feature name="cxf-bindings-coloc" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-bindings-coloc" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-bindings-coloc/${project.version}</bundle>
     </feature>
-    <feature name="cxf-bindings-object" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-bindings-object" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <feature version="${project.version}">cxf-transports-local</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-bindings-object/${project.version}</bundle>
     </feature>
-    <feature name="cxf-transports-local" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-transports-local" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-local/${project.version}</bundle>
     </feature>
-    <feature name="cxf-transports-jms" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-transports-jms" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <feature version="${project.version}">cxf-bindings-soap</feature>
         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${cxf.geronimo.transaction.version}</bundle>
         <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${cxf.geronimo.jms.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-jms/${project.version}</bundle>
     </feature>
-    <feature name="cxf-transports-udp" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-transports-udp" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <bundle dependency="true">mvn:org.apache.mina/mina-core/${cxf.mina.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-udp/${project.version}</bundle>
     </feature>
-    <feature name="cxf-transports-websocket-client" version="${project.version}" resolver="(obr)">
-        <feature version="[3,4)">cxf-http</feature>
+    <feature name="cxf-transports-websocket-client" version="${project.version}">
+        <feature version="${project.version}">cxf-http</feature>
         <bundle dependency='true'>mvn:com.ning/async-http-client/${cxf.ahc.version}</bundle>
         <bundle dependency='true'>mvn:io.netty/netty/${cxf.netty3.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-websocket/${project.version}</bundle>
     </feature>
-    <feature name="cxf-transports-websocket-server" version="${project.version}" resolver="(obr)">
-        <feature version="[3,4)">cxf-http</feature>
+    <feature name="cxf-transports-websocket-server" version="${project.version}">
+        <feature version="${project.version}">cxf-http</feature>
         <bundle dependency='true'>mvn:org.atmosphere/atmosphere-runtime/${cxf.atmosphere.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-websocket/${project.version}</bundle>
+        <capability>
+            cxf.http.provider;name=websocket
+        </capability>
     </feature>
-    <feature name="cxf-javascript" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-javascript" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <feature version="${project.version}">cxf-bindings-soap</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-javascript/${project.version}</bundle>
     </feature>
-    <feature name="cxf-frontend-javascript" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-frontend-javascript" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <feature version="${project.version}">cxf-jaxws</feature>
         <bundle start-level="40" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.rhino/${cxf.rhino.bundle.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-frontend-js/${project.version}</bundle>
     </feature>
-    <feature name="cxf-xjc-runtime" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-xjc-runtime" version="${project.version}">
         <feature version="${project.version}">cxf-jaxb</feature>
         <bundle start-level="35" dependency="true">mvn:commons-lang/commons-lang/${cxf.commons-lang.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf.xjc-utils/cxf-xjc-runtime/${cxf.xjc-utils.version}</bundle>
     </feature>
-    <feature name="cxf-tools" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-tools" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <feature version="${project.version}">cxf-wsdl</feature>
         <feature version="${project.version}">cxf-databinding-jaxb</feature>
@@ -377,7 +414,7 @@
         <!-- need antlr
         <bundle>mvn:org.apache.cxf/cxf-tools-corba/${project.version}</bundle-->
     </feature>
-    <feature name="cxf" version="${project.version}" resolver="(obr)">
+    <feature name="cxf" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <feature version="${project.version}">cxf-jaxws</feature>
         <feature version="${project.version}">cxf-jaxrs</feature>
@@ -387,7 +424,7 @@
         <feature version="${project.version}">cxf-bindings-corba</feature>
         <feature version="${project.version}">cxf-bindings-coloc</feature>
         <feature version="${project.version}">cxf-bindings-object</feature>
-        <feature version="${project.version}">cxf-http-jetty</feature>
+        <feature version="${project.version}">cxf-http-provider</feature>
         <feature version="${project.version}">cxf-transports-local</feature>
         <feature version="${project.version}">cxf-transports-jms</feature>
         <feature version="${project.version}">cxf-transports-udp</feature>
@@ -410,21 +447,22 @@
         <!-- need sdo deps
         <bundle>mvn:org.apache.cxf/cxf-rt-databinding-sdo/${project.version}</bundle-->
     </feature>
-    <feature name="cxf-sts" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-sts" version="${project.version}">
         <bundle start-level="40" dependency="true">mvn:com.hazelcast/hazelcast/${cxf.hazelcast.version}</bundle>
         <bundle start-level="40" dependency="true">mvn:net.sf.ehcache/ehcache/${cxf.ehcache.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-json-basic/${project.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-security-jose/${project.version}</bundle>
         <feature version="${project.version}">cxf-core</feature>
         <feature version="${project.version}">cxf-ws-security</feature>
+        <feature version="${project.version}">cxf-http</feature>
         <bundle>mvn:org.apache.cxf.services.sts/cxf-services-sts-core/${project.version}</bundle>
     </feature>
-    <feature name="cxf-wsn-api" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-wsn-api" version="${project.version}">
         <feature version="${project.version}">cxf-ws-addr</feature>
         <feature version="${project.version}">cxf-jaxws</feature>
         <bundle>mvn:org.apache.cxf.services.wsn/cxf-services-wsn-api/${project.version}</bundle>
     </feature>
-    <feature name="cxf-wsn" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-wsn" version="${project.version}">
         <config name="org.apache.cxf.wsn">
             cxf.wsn.activemq = vm:localhost
             cxf.wsn.rootUrl = http://0.0.0.0:8182
@@ -432,23 +470,29 @@
             cxf.wsn.activemq.username = karaf
             cxf.wsn.activemq.password = karaf
         </config>
-        <feature version="[5.4,6)">activemq</feature>
+        <feature>spring</feature>
+        <feature>aries-blueprint</feature>
         <feature version="${project.version}">cxf-wsn-api</feature>
-        <feature version="${project.version}">cxf-http-jetty</feature>
+        <feature version="${project.version}">cxf-http-provider</feature>
+        <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_6</bundle>
+        <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1</bundle>
+        <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-j2ee-management_1.1_spec/1.0.1</bundle>
+        <bundle dependency="true">mvn:org.apache.activemq/activemq-osgi/5.14.0</bundle>
         <bundle>mvn:org.apache.cxf.services.wsn/cxf-services-wsn-core/${project.version}</bundle>
     </feature>
-    <feature name="cxf-ws-discovery-api" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-ws-discovery-api" version="${project.version}">
         <feature version="${project.version}">cxf-transports-udp</feature>
         <feature version="${project.version}">cxf-ws-addr</feature>
         <feature version="${project.version}">cxf-jaxws</feature>
+        <feature>aries-blueprint</feature>
         <bundle>mvn:org.apache.cxf.services.ws-discovery/cxf-services-ws-discovery-api/${project.version}</bundle>
     </feature>
-    <feature name="cxf-ws-discovery" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-ws-discovery" version="${project.version}">
         <feature version="${project.version}">cxf-ws-discovery-api</feature>
         <bundle>mvn:org.apache.cxf.services.ws-discovery/cxf-services-ws-discovery-service/${project.version}</bundle>
     </feature>
 
-    <feature name="cxf-bean-validation-core" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-bean-validation-core" version="${project.version}">
         <!-- This feature has the wrong name; it's hibernate-only. Fix up in 3.2.0? Move all this to the
         hibernate-bean-validation-helper feature -->
         <bundle start-level="30" dependency="true">mvn:org.hibernate/hibernate-validator/${cxf.hibernate.validator.version}</bundle>
@@ -469,13 +513,14 @@
         <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aspectj/${cxf.servicemix.aspectj.version}</bundle>
     </feature>
 
-    <feature name="cxf-bean-validation" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-bean-validation" version="${project.version}">
         <feature version="${project.version}">cxf-bean-validation-core</feature>
         <bundle start-level="30" dependency="true">mvn:javax.el/javax.el-api/${cxf.javax.el.version}</bundle> 
         <bundle start-level="30" dependency="true">mvn:org.glassfish/javax.el/${cxf.javax.el.version}</bundle> 
     </feature>
 
-    <feature name="cxf-management-web" version="${project.version}" resolver="(obr)">
+    <!--
+    <feature name="cxf-management-web" version="${project.version}">
         <feature version="${project.version}">cxf-core</feature>
         <feature version="${project.version}">cxf-jaxrs</feature>
         <bundle start-level="35" dependency="true">mvn:commons-lang/commons-lang/${cxf.commons-lang.version}</bundle>
@@ -486,9 +531,11 @@
         <bundle start-level="35">mvn:org.apache.abdera/abdera-parser/${cxf.abdera.version}</bundle>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-management-web/${project.version}</bundle>
     </feature>
+    -->
 
-    <feature name="cxf-jaxrs-cdi" version="${project.version}" resolver="(obr)">
+    <feature name="cxf-jaxrs-cdi" version="${project.version}">
         <feature version="${project.version}">cxf-jaxrs</feature>
+        <feature>pax-cdi</feature>
         <bundle start-level="40">mvn:org.apache.cxf/cxf-integration-cdi/${project.version}</bundle>
     </feature>
 </features>

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf/pom.xml
----------------------------------------------------------------------
diff --git a/osgi/karaf/pom.xml b/osgi/karaf/pom.xml
index 41976c6..6fc62fc 100644
--- a/osgi/karaf/pom.xml
+++ b/osgi/karaf/pom.xml
@@ -30,7 +30,7 @@
     <name>Apache CXF Karaf Parent</name>
     <description>Apache CXF Karaf Parent</description>
     <modules>
-        <module>features</module>
         <module>commands</module>
+        <module>features</module>
     </modules>
 </project>

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf4/commands/pom.xml
----------------------------------------------------------------------
diff --git a/osgi/karaf4/commands/pom.xml b/osgi/karaf4/commands/pom.xml
deleted file mode 100644
index 4a6e5fc..0000000
--- a/osgi/karaf4/commands/pom.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <!--
-
-        Licensed to the Apache Software Foundation (ASF) under one or more
-        contributor license agreements.  See the NOTICE file distributed with
-        this work for additional information regarding copyright ownership.
-        The ASF licenses this file to You under the Apache License, Version 2.0
-        (the "License"); you may not use this file except in compliance with
-        the License.  You may obtain a copy of the License at
-
-           http://www.apache.org/licenses/LICENSE-2.0
-
-        Unless required by applicable law or agreed to in writing, software
-        distributed under the License is distributed on an "AS IS" BASIS,
-        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-        See the License for the specific language governing permissions and
-        limitations under the License.
-    -->
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.cxf.karaf4</groupId>
-        <artifactId>karaf4-parent</artifactId>
-        <version>3.2.0-SNAPSHOT</version>
-    </parent>
-    <artifactId>cxf-karaf4-commands</artifactId>
-    <packaging>bundle</packaging>
-    <name>Apache CXF Karaf4 Commands</name>
-    <description>Apache CXF Karaf4 Commands</description>
-    <dependencies>
-        <!-- cxf -->
-        <dependency>
-            <groupId>org.apache.cxf</groupId>
-            <artifactId>cxf-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <!-- karaf -->
-        <dependency>
-            <groupId>org.apache.karaf.shell</groupId>
-            <artifactId>org.apache.karaf.shell.core</artifactId>
-            <version>${cxf.karaf4.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.karaf</groupId>
-            <artifactId>org.apache.karaf.util</artifactId>
-            <version>${cxf.karaf4.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-        </dependency>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.karaf.tooling</groupId>
-                <artifactId>karaf-services-maven-plugin</artifactId>
-                <version>${cxf.karaf4.version}</version>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Karaf-Commands>*</Karaf-Commands>
-                        <Import-Package>
-              !org.apache.cxf.karaf.commands,
-              org.apache.cxf*;version="[3,4)",
-              org.apache.karaf.shell*;version="[4,5)",
-              *
-                        </Import-Package>
-                        <_nouses>true</_nouses>
-                        <_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>


[2/3] cxf git commit: [CXF-7060] Drop karaf 3 support

Posted by gn...@apache.org.
http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/ListBussesCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/ListBussesCommand.java b/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/ListBussesCommand.java
deleted file mode 100644
index 5ea70a8..0000000
--- a/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/ListBussesCommand.java
+++ /dev/null
@@ -1,67 +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.cxf.karaf.commands;
-
-import java.util.List;
-
-import org.apache.cxf.Bus;
-import org.apache.cxf.karaf.commands.internal.CXFController;
-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.api.console.Terminal;
-import org.apache.karaf.shell.support.table.ShellTable;
-
-/**
- * 
- */
-@Command(scope = "cxf", name = "list-busses", description = "Lists all CXF Busses.")
-@Service
-public class ListBussesCommand extends CXFController implements Action {
-
-    @Reference(optional = true)
-    Terminal terminal;
-
-    @Option(name = "--no-format", description = "Disable table rendered output", required = false, multiValued = false)
-    boolean noFormat;
-
-    @Override
-    public Object execute() throws Exception {
-        List<Bus> busses = getBusses();
-
-        ShellTable table = new ShellTable();
-        if (terminal != null && terminal.getWidth() > 0) {
-            table.size(terminal.getWidth());
-        }
-        table.column("Name");
-        table.column("State");
-
-        for (Bus bus : busses) {
-            String name = bus.getId();
-            String state = bus.getState().toString();
-            table.addRow().addContent(name, state);
-        }
-        table.print(System.out, !noFormat);
-        return null;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/ListEndpointsCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/ListEndpointsCommand.java b/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/ListEndpointsCommand.java
deleted file mode 100644
index 3fb3323..0000000
--- a/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/ListEndpointsCommand.java
+++ /dev/null
@@ -1,176 +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.cxf.karaf.commands;
-
-import java.io.IOException;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.cxf.Bus;
-import org.apache.cxf.common.util.StringUtils;
-import org.apache.cxf.endpoint.Server;
-import org.apache.cxf.endpoint.ServerRegistry;
-import org.apache.cxf.karaf.commands.completers.BusCompleter;
-import org.apache.cxf.karaf.commands.internal.CXFController;
-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.api.console.Terminal;
-import org.apache.karaf.shell.support.table.ShellTable;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.cm.Configuration;
-import org.osgi.service.cm.ConfigurationAdmin;
-
-/**
- * 
- */
-@Command(scope = "cxf", name = "list-endpoints",
-    description = "Lists all CXF Endpoints on a Bus.")
-@Service
-public class ListEndpointsCommand extends CXFController implements Action {
-    protected static final String HEADER_FORMAT = "%-25s %-10s %-60s %-40s";
-    protected static final String OUTPUT_FORMAT = "[%-23s] [%-8s] [%-58s] [%-38s]";
-    
-    @Argument(index = 0, name = "bus",
-        description = "The CXF bus name where to look for the Endpoints", 
-        required = false, multiValued = false)
-    @Completion(BusCompleter.class)
-    String name;
-    
-    @Option(name = "-f", aliases = {"--fulladdress" },
-        description = "Display full address of an endpoint ", required = false, multiValued = false)
-    boolean fullAddress;
-
-    @Option(name = "--no-format", description = "Disable table rendered output", required = false, multiValued = false)
-    boolean noFormat;
-
-    @Reference(optional = true)
-    Terminal terminal;
-
-    @Override
-    public Object execute() throws Exception {
-        List<Bus> busses;
-        if (name == null) {
-            busses = getBusses();
-        } else {
-            Bus b = getBus(name);
-            if (b != null) {
-                busses = Collections.singletonList(getBus(name));
-            } else {
-                busses = Collections.emptyList();
-            }
-        }
-
-        ShellTable table = new ShellTable();
-        if (terminal != null && terminal.getWidth() > 0) {
-            table.size(terminal.getWidth());
-        }
-        table.column("Name");
-        table.column("State");
-        table.column("Address");
-        table.column("BusID");
-        for (Bus b : busses) {
-            ServerRegistry reg = b.getExtension(ServerRegistry.class);
-            List<Server> servers = reg.getServers();
-            for (Server serv : servers) {
-                String qname = serv.getEndpoint().getEndpointInfo().getName().getLocalPart();
-                String started = serv.isStarted() ? "Started" : "Stopped";
-                String address = serv.getEndpoint().getEndpointInfo().getAddress();
-                if (fullAddress) {
-                    address = toFullAddress(address);
-                }
-                String busId = b.getId();
-                table.addRow().addContent(qname, started, address, busId);
-            }
-        }
-        table.print(System.out, !noFormat);
-        return null;
-    }
-    
-    private String toFullAddress(String address) throws IOException, InvalidSyntaxException {
-        ConfigurationAdmin configAdmin = getConfigAdmin();
-        if (address.startsWith("/") && configAdmin != null) {
-            String httpPort = null;
-            String cxfContext = null;
-            httpPort = extractConfigProperty(configAdmin, "org.ops4j.pax.web", "org.osgi.service.http.port");
-            cxfContext = extractConfigProperty(configAdmin, "org.apache.cxf.osgi", "org.apache.cxf.servlet.context");
-            if (StringUtils.isEmpty(cxfContext)) {
-                cxfContext = getCXFOSGiServletContext();
-            }
-            if (StringUtils.isEmpty(httpPort)) {
-                httpPort = getHttpOSGiServicePort();
-            }
-            if (!StringUtils.isEmpty(httpPort) && !StringUtils.isEmpty(cxfContext)) {
-                address = "http://localhost:" + httpPort + cxfContext + address;
-            }
-        }
-        return address;
-    }
-
-    private String extractConfigProperty(ConfigurationAdmin configAdmin, 
-                                         String pid, String propertyName) throws IOException,
-        InvalidSyntaxException {
-        String ret = null;
-        Configuration[] configs = configAdmin.listConfigurations("(service.pid=" + pid + ")");
-        if (configs != null && configs.length > 0) {
-            Configuration configuration = configs[0];
-            if (configuration != null) {
-                ret = (String)configuration.getProperties().get(propertyName);
-            }
-        }
-        return ret;
-    }
-
-    private String getCXFOSGiServletContext() throws InvalidSyntaxException {
-        String ret = null;
-        String filter = "(&(" + "objectclass=" + "javax.servlet.Servlet" 
-            + ")(servlet-name=cxf-osgi-transport-servlet))";
-
-        ServiceReference ref = getBundleContext().getServiceReferences(null, filter)[0];
-        
-        if (ref != null) {
-            ret = (String)ref.getProperty("alias");
-        } 
-        
-        return ret;
-        
-    }
-
-    private String getHttpOSGiServicePort() throws InvalidSyntaxException {
-        String ret = null;
-        String filter = "(&(" + "objectclass=" + "org.osgi.service.http.HttpService"
-                + "))";
-
-        ServiceReference ref = getBundleContext().getServiceReferences(null, filter)[0];
-
-        if (ref != null) {
-            ret = (String) ref.getProperty("org.osgi.service.http.port");
-        }
-
-        return ret;
-
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/StartEndpointCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/StartEndpointCommand.java b/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/StartEndpointCommand.java
deleted file mode 100644
index d2bf6be..0000000
--- a/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/StartEndpointCommand.java
+++ /dev/null
@@ -1,68 +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.cxf.karaf.commands;
-
-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.completers.BusCompleter;
-import org.apache.cxf.karaf.commands.completers.StoppedEndpointCompleter;
-import org.apache.cxf.karaf.commands.internal.CXFController;
-import org.apache.karaf.shell.api.action.Action;
-import org.apache.karaf.shell.api.action.Argument;
-import org.apache.karaf.shell.api.action.Command;
-import org.apache.karaf.shell.api.action.Completion;
-import org.apache.karaf.shell.api.action.lifecycle.Service;
-
-/**
- * 
- */
-@Command(scope = "cxf", name = "start-endpoint",
-    description = "Starts a CXF Endpoint on a Bus.")
-@Service
-public class StartEndpointCommand extends CXFController implements Action {
-    
-    @Argument(index = 0, name = "bus", 
-        description = "The CXF bus name where to look for the Endpoint", 
-        required = true, multiValued = false)
-    @Completion(BusCompleter.class)
-    String busName;
-    
-    @Argument(index = 1, name = "endpoint",
-        description = "The Endpoint name to start", 
-        required = true, multiValued = false)
-    @Completion(StoppedEndpointCompleter.class)
-    String endpoint;
-
-    @Override
-    public Object execute() throws Exception {
-        Bus b = getBus(busName);
-        ServerRegistry reg = b.getExtension(ServerRegistry.class);
-        List<Server> servers = reg.getServers();
-        for (Server serv : servers) {
-            if (endpoint.equals(serv.getEndpoint().getEndpointInfo().getName().getLocalPart())) {
-                serv.start();
-            }
-        }
-        return null;
-    } 
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/StopEndpointCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/StopEndpointCommand.java b/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/StopEndpointCommand.java
deleted file mode 100644
index 9ffdbf9..0000000
--- a/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/StopEndpointCommand.java
+++ /dev/null
@@ -1,68 +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.cxf.karaf.commands;
-
-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.completers.BusCompleter;
-import org.apache.cxf.karaf.commands.completers.StartedEndpointCompleter;
-import org.apache.cxf.karaf.commands.internal.CXFController;
-import org.apache.karaf.shell.api.action.Action;
-import org.apache.karaf.shell.api.action.Argument;
-import org.apache.karaf.shell.api.action.Command;
-import org.apache.karaf.shell.api.action.Completion;
-import org.apache.karaf.shell.api.action.lifecycle.Service;
-
-/**
- * 
- */
-@Command(scope = "cxf", name = "stop-endpoint",
-    description = "Stops a CXF Endpoint on a Bus.")
-@Service
-public class StopEndpointCommand extends CXFController implements Action {
-    
-    @Argument(index = 0, name = "bus",
-        description = "The CXF bus name where to look for the Endpoint", 
-        required = true, multiValued = false)
-    @Completion(BusCompleter.class)
-    String busName;
-    
-    @Argument(index = 1, name = "endpoint", 
-        description = "The Endpoint name to stop", 
-        required = true, multiValued = false)
-    @Completion(StartedEndpointCompleter.class)
-    String endpoint;
-
-    @Override
-    public Object execute() throws Exception {
-        Bus b = getBus(busName);
-        ServerRegistry reg = b.getExtension(ServerRegistry.class);
-        List<Server> servers = reg.getServers();
-        for (Server serv : servers) {
-            if (endpoint.equals(serv.getEndpoint().getEndpointInfo().getName().getLocalPart())) {
-                serv.stop();
-            }
-        }
-        return null;
-    } 
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/completers/BusCompleter.java
----------------------------------------------------------------------
diff --git a/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/completers/BusCompleter.java b/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/completers/BusCompleter.java
deleted file mode 100644
index 47217e1..0000000
--- a/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/completers/BusCompleter.java
+++ /dev/null
@@ -1,53 +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.cxf.karaf.commands.completers;
-
-import java.util.List;
-
-import org.apache.cxf.Bus;
-
-import org.apache.cxf.karaf.commands.internal.CXFController;
-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 BusCompleter extends CXFController implements Completer {
-    
-    @Override
-    public int complete(Session session,
-                        CommandLine commandLine,
-                        List<String> list) {
-        StringsCompleter delegate = new StringsCompleter();
-        try {
-            List<Bus> busses = getBusses();
-           
-            for (Bus bus : busses) {
-                delegate.getStrings().add(bus.getId());
-            }
-            
-        } catch (Exception e) {
-            // Ignore
-        }
-        return delegate.complete(session, commandLine, list);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/completers/EndpointCompleterSupport.java
----------------------------------------------------------------------
diff --git a/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/completers/EndpointCompleterSupport.java b/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/completers/EndpointCompleterSupport.java
deleted file mode 100644
index 463a5ad..0000000
--- a/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/completers/EndpointCompleterSupport.java
+++ /dev/null
@@ -1,68 +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.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.internal.CXFController;
-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;
-
-public abstract class EndpointCompleterSupport extends CXFController implements Completer {
-
-    @Override
-    public int complete(Session session,
-                        CommandLine commandLine,
-                        List<String> list) {
-        StringsCompleter delegate = new StringsCompleter();
-        try {
-            List<Bus> busses = 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(session, commandLine, list);
-    }
-    
-    /**
-     * 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/3fbedf13/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/completers/StartedEndpointCompleter.java
----------------------------------------------------------------------
diff --git a/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/completers/StartedEndpointCompleter.java b/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/completers/StartedEndpointCompleter.java
deleted file mode 100644
index 1e2d529..0000000
--- a/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/completers/StartedEndpointCompleter.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.cxf.karaf.commands.completers;
-
-
-import org.apache.cxf.endpoint.Server;
-import org.apache.karaf.shell.api.action.lifecycle.Service;
-
-@Service
-public class StartedEndpointCompleter extends EndpointCompleterSupport {
-
-    @Override
-    protected boolean acceptsFeature(Server server) {
-        return server.isStarted();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/completers/StoppedEndpointCompleter.java
----------------------------------------------------------------------
diff --git a/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/completers/StoppedEndpointCompleter.java b/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/completers/StoppedEndpointCompleter.java
deleted file mode 100644
index fb53ae7..0000000
--- a/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/completers/StoppedEndpointCompleter.java
+++ /dev/null
@@ -1,34 +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.cxf.karaf.commands.completers;
-
-
-import org.apache.cxf.endpoint.Server;
-import org.apache.karaf.shell.api.action.lifecycle.Service;
-
-@Service
-public class StoppedEndpointCompleter extends EndpointCompleterSupport {
-
-    
-    @Override
-    protected boolean acceptsFeature(Server server) {
-        return !server.isStarted();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/internal/CXFController.java
----------------------------------------------------------------------
diff --git a/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/internal/CXFController.java b/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/internal/CXFController.java
deleted file mode 100644
index 0daf0e7..0000000
--- a/osgi/karaf4/commands/src/main/java/org/apache/cxf/karaf/commands/internal/CXFController.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.cxf.karaf.commands.internal;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-
-import org.apache.cxf.Bus;
-import org.apache.cxf.common.logging.LogUtils;
-import org.apache.karaf.shell.api.action.lifecycle.Reference;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.cm.ConfigurationAdmin;
-
-
-/**
- */
-public class CXFController {
-    private static final Logger LOG = LogUtils.getL7dLogger(CXFController.class);
-
-    @Reference
-    private BundleContext bundleContext;
-
-    @Reference
-    private ConfigurationAdmin configAdmin;
-
-    public List<Bus> getBusses() {
-        List<Bus> busses = new ArrayList<Bus>();
-        try {
-            ServiceReference[] references = bundleContext.getServiceReferences(Bus.class.getName(), null);
-            if (references != null) {
-                for (ServiceReference reference : references) {
-                    if (reference != null) {
-                        Bus bus = (Bus) bundleContext.getService(reference);
-                        if (bus != null) {
-                            busses.add(bus);
-                        }
-                    }
-                }
-            }
-        } catch (Exception e) {
-            LOG.log(Level.INFO, "Cannot retrieve the list of CXF Busses.", e);
-        }
-        return busses;
-    }
-
-    public Bus getBus(String name) {
-        try {
-            ServiceReference[] references = bundleContext.getServiceReferences(Bus.class.getName(), null);
-            if (references != null) {
-                for (ServiceReference reference : references) {
-                    if (reference != null
-                        && name.equals(reference.getProperty("cxf.bus.id"))) {
-                        return (Bus) bundleContext.getService(reference);
-                    }
-                }
-            }
-        } catch (Exception e) {
-            LOG.log(Level.INFO, "Cannot retrieve the CXF Bus.", e);
-            return null;
-        }
-        LOG.log(Level.INFO, "Cannot retrieve the CXF Bus " + name + ".");
-        return null;
-    }
-
-    public ConfigurationAdmin getConfigAdmin() {
-        return configAdmin;
-    }
-
-    public BundleContext getBundleContext() {
-        return bundleContext;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf4/features/pom.xml
----------------------------------------------------------------------
diff --git a/osgi/karaf4/features/pom.xml b/osgi/karaf4/features/pom.xml
deleted file mode 100644
index eaa2fce..0000000
--- a/osgi/karaf4/features/pom.xml
+++ /dev/null
@@ -1,127 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <!--
-
-        Licensed to the Apache Software Foundation (ASF) under one or more
-        contributor license agreements.  See the NOTICE file distributed with
-        this work for additional information regarding copyright ownership.
-        The ASF licenses this file to You under the Apache License, Version 2.0
-        (the "License"); you may not use this file except in compliance with
-        the License.  You may obtain a copy of the License at
-
-           http://www.apache.org/licenses/LICENSE-2.0
-
-        Unless required by applicable law or agreed to in writing, software
-        distributed under the License is distributed on an "AS IS" BASIS,
-        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-        See the License for the specific language governing permissions and
-        limitations under the License.
-    -->
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.cxf.karaf4</groupId>
-        <artifactId>karaf4-parent</artifactId>
-        <version>3.2.0-SNAPSHOT</version>
-    </parent>
-    <artifactId>apache-cxf</artifactId>
-    <packaging>pom</packaging>
-    <name>Apache CXF Karaf4 Features</name>
-    <description>Apache CXF Karaf4 Features</description>
-    <!-- The validate plugin will export these provided dependencies bundles' export packages first -->
-    <dependencies>
-        <!-- Framework distribution -->
-        <dependency>
-            <groupId>org.apache.karaf.features</groupId>
-            <artifactId>framework</artifactId>
-            <version>${cxf.karaf4.version}</version>
-            <type>kar</type>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.karaf.features</groupId>
-            <artifactId>standard</artifactId>
-            <version>${cxf.karaf4.version}</version>
-            <classifier>features</classifier>
-            <type>xml</type>
-            <scope>provided</scope>
-        </dependency>
-    </dependencies>
-    <build>
-        <resources>
-            <resource>
-                <directory>src/main/resources</directory>
-                <filtering>true</filtering>
-            </resource>
-        </resources>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-resources-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>filter</id>
-                        <phase>generate-resources</phase>
-                        <goals>
-                            <goal>resources</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>attach-artifacts</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>attach-artifact</goal>
-                        </goals>
-                        <configuration>
-                            <artifacts>
-                                <artifact>
-                                    <file>target/classes/features.xml</file>
-                                    <type>xml</type>
-                                    <classifier>features</classifier>
-                                </artifact>
-                            </artifacts>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.karaf.tooling</groupId>
-                <artifactId>karaf-maven-plugin</artifactId>
-                <version>${cxf.karaf4.version}</version>
-                <executions>
-                    <execution>
-                        <id>verify</id>
-                        <phase>process-resources</phase>
-                        <goals>
-                            <goal>verify</goal>
-                        </goals>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>mvn:org.apache.karaf.features/framework/${cxf.karaf4.version}/xml/features</descriptor>
-                                <descriptor>mvn:org.apache.karaf.features/standard/${cxf.karaf4.version}/xml/features</descriptor>
-                                <descriptor>mvn:org.apache.karaf.features/spring/${cxf.karaf4.version}/xml/features</descriptor>
-                                <descriptor>file:${project.build.directory}/classes/features.xml</descriptor>
-                            </descriptors>
-                            <distribution>org.apache.karaf.features:framework</distribution>
-                            <javase>1.8</javase>
-                            <framework>
-                                <feature>framework</feature>
-                            </framework>
-                            <features>
-                                <!--<feature>cxf-*</feature>-->
-                                <feature>cxf-management-web</feature>
-                                <feature>cxf-wsn</feature>
-                            </features>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-</project>

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf4/features/src/main/resources/config.properties
----------------------------------------------------------------------
diff --git a/osgi/karaf4/features/src/main/resources/config.properties b/osgi/karaf4/features/src/main/resources/config.properties
deleted file mode 100755
index cb66f0a..0000000
--- a/osgi/karaf4/features/src/main/resources/config.properties
+++ /dev/null
@@ -1,334 +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.
-#
-################################################################################
-
-#
-# Framework config properties.
-#
-org.osgi.framework.system.packages=org.osgi.framework; version=1.5.0, \
- org.osgi.framework.launch; version=1.0.0, \
- org.osgi.framework.hooks.service; version=1.0.0, \
- org.osgi.service.packageadmin; version=1.2.0, \
- org.osgi.service.startlevel; version=1.1.0, \
- org.osgi.service.url; version=1.0.0, \
- org.osgi.util.tracker; version=1.3.0 \
- ${jre-${java.specification.version}} 
-
-org.osgi.framework.bootdelegation=sun.*,com.sun*,javax.transaction,javax.transaction.*
-
-# Standard package set.  Note that:
-#   - some com.sun.org.apache.* are exported
-#   - com.sun.jndi.ldap package is exported
-#   - javax.transaction* is exported with a mandatory attribute 
-jre-1.5=, \
- com.sun.org.apache.xalan.internal.xsltc.trax, \
- com.sun.org.apache.xerces.internal.dom, \
- com.sun.org.apache.xerces.internal.jaxp, \
- com.sun.org.apache.xerces.internal.xni, \
- com.sun.jndi.ldap, \
- javax.accessibility, \
- javax.activity, \
- javax.crypto, \
- javax.crypto.interfaces, \
- javax.crypto.spec, \
- javax.imageio, \
- javax.imageio.event, \
- javax.imageio.metadata, \
- javax.imageio.plugins.bmp, \
- javax.imageio.plugins.jpeg, \
- javax.imageio.spi, \
- javax.imageio.stream, \
- javax.management, \
- javax.management.loading, \
- javax.management.modelmbean, \
- javax.management.monitor, \
- javax.management.openmbean, \
- javax.management.relation, \
- javax.management.remote, \
- javax.management.remote.rmi, \
- javax.management.timer, \
- javax.naming, \
- javax.naming.directory, \
- javax.naming.event, \
- javax.naming.ldap, \
- javax.naming.spi, \
- javax.net, \
- javax.net.ssl, \
- javax.print, \
- javax.print.attribute, \
- javax.print.attribute.standard, \
- javax.print.event, \
- javax.rmi, \
- javax.rmi.CORBA, \
- javax.rmi.ssl, \
- javax.security.auth, \
- javax.security.auth.callback, \
- javax.security.auth.kerberos, \
- javax.security.auth.login, \
- javax.security.auth.spi, \
- javax.security.auth.x500, \
- javax.security.cert, \
- javax.security.sasl, \
- javax.sound.midi, \
- javax.sound.midi.spi, \
- javax.sound.sampled, \
- javax.sound.sampled.spi, \
- javax.sql, \
- javax.sql.rowset, \
- javax.sql.rowset.serial, \
- javax.sql.rowset.spi, \
- javax.swing, \
- javax.swing.border, \
- javax.swing.colorchooser, \
- javax.swing.event, \
- javax.swing.filechooser, \
- javax.swing.plaf, \
- javax.swing.plaf.basic, \
- javax.swing.plaf.metal, \
- javax.swing.plaf.multi, \
- javax.swing.plaf.synth, \
- javax.swing.table, \
- javax.swing.text, \
- javax.swing.text.html, \
- javax.swing.text.html.parser, \
- javax.swing.text.rtf, \
- javax.swing.tree, \
- javax.swing.undo, \
- javax.transaction; javax.transaction.xa; partial=true; mandatory:=partial, \
- javax.xml, \
- javax.xml.datatype, \
- javax.xml.namespace, \
- javax.xml.parsers, \
- javax.xml.transform, \
- javax.xml.transform.dom, \
- javax.xml.transform.sax, \
- javax.xml.transform.stream, \
- javax.xml.validation, \
- javax.xml.xpath, \
- org.ietf.jgss, \
- org.omg.CORBA, \
- org.omg.CORBA_2_3, \
- org.omg.CORBA_2_3.portable, \
- org.omg.CORBA.DynAnyPackage, \
- org.omg.CORBA.ORBPackage, \
- org.omg.CORBA.portable, \
- org.omg.CORBA.TypeCodePackage, \
- org.omg.CosNaming, \
- org.omg.CosNaming.NamingContextExtPackage, \
- org.omg.CosNaming.NamingContextPackage, \
- org.omg.Dynamic, \
- org.omg.DynamicAny, \
- org.omg.DynamicAny.DynAnyFactoryPackage, \
- org.omg.DynamicAny.DynAnyPackage, \
- org.omg.IOP, \
- org.omg.IOP.CodecFactoryPackage, \
- org.omg.IOP.CodecPackage, \
- org.omg.Messaging, \
- org.omg.PortableInterceptor, \
- org.omg.PortableInterceptor.ORBInitInfoPackage, \
- org.omg.PortableServer, \
- org.omg.PortableServer.CurrentPackage, \
- org.omg.PortableServer.POAManagerPackage, \
- org.omg.PortableServer.POAPackage, \
- org.omg.PortableServer.portable, \
- org.omg.PortableServer.ServantLocatorPackage, \
- org.omg.SendingContext, \
- org.omg.stub.java.rmi, \
- org.omg.stub.javax.management.remote.rmi, \
- org.w3c.dom, \
- org.w3c.dom.bootstrap, \
- org.w3c.dom.css, \
- org.w3c.dom.events, \
- org.w3c.dom.html, \
- org.w3c.dom.ls, \
- org.w3c.dom.ranges, \
- org.w3c.dom.stylesheets, \
- org.w3c.dom.traversal, \
- org.w3c.dom.views, \
- org.xml.sax, \
- org.xml.sax.ext, \
- org.xml.sax.helpers
-
-# Standard package set.  Note that:
-#   - some com.sun.org.apache.* are exported
-#   - com.sun.jndi.ldap package is exported
-#   - javax.transaction* is exported with a mandatory attribute 
-#   - javax.activation, javax.annotation*, javax.jws*, javax.script*, javax.xml.bind*, javax.xml.soap, javax.xml.ws* packages are not exported
-jre-1.6=, \
- com.sun.org.apache.xalan.internal.xsltc.trax, \
- com.sun.org.apache.xerces.internal.dom, \
- com.sun.org.apache.xerces.internal.jaxp, \
- com.sun.org.apache.xerces.internal.xni, \
- com.sun.jndi.ldap, \
- javax.accessibility, \
-# javax.activation, \
- javax.activity, \
-# javax.annotation, \
-# javax.annotation.processing, \
- javax.crypto, \
- javax.crypto.interfaces, \
- javax.crypto.spec, \
- javax.imageio, \
- javax.imageio.event, \
- javax.imageio.metadata, \
- javax.imageio.plugins.bmp, \
- javax.imageio.plugins.jpeg, \
- javax.imageio.spi, \
- javax.imageio.stream, \
-# javax.jws, \
-# javax.jws.soap, \
- javax.lang.model, \
- javax.lang.model.element, \
- javax.lang.model.type, \
- javax.lang.model.util, \
- javax.management, \
- javax.management.loading, \
- javax.management.modelmbean, \
- javax.management.monitor, \
- javax.management.openmbean, \
- javax.management.relation, \
- javax.management.remote, \
- javax.management.remote.rmi, \
- javax.management.timer, \
- javax.naming, \
- javax.naming.directory, \
- javax.naming.event, \
- javax.naming.ldap, \
- javax.naming.spi, \
- javax.net, \
- javax.net.ssl, \
- javax.print, \
- javax.print.attribute, \
- javax.print.attribute.standard, \
- javax.print.event, \
- javax.rmi, \
- javax.rmi.CORBA, \
- javax.rmi.ssl, \
- javax.script, \
- javax.security.auth, \
- javax.security.auth.callback, \
- javax.security.auth.kerberos, \
- javax.security.auth.login, \
- javax.security.auth.spi, \
- javax.security.auth.x500, \
- javax.security.cert, \
- javax.security.sasl, \
- javax.sound.midi, \
- javax.sound.midi.spi, \
- javax.sound.sampled, \
- javax.sound.sampled.spi, \
- javax.sql, \
- javax.sql.rowset, \
- javax.sql.rowset.serial, \
- javax.sql.rowset.spi, \
- javax.swing, \
- javax.swing.border, \
- javax.swing.colorchooser, \
- javax.swing.event, \
- javax.swing.filechooser, \
- javax.swing.plaf, \
- javax.swing.plaf.basic, \
- javax.swing.plaf.metal, \
- javax.swing.plaf.multi, \
- javax.swing.plaf.synth, \
- javax.swing.table, \
- javax.swing.text, \
- javax.swing.text.html, \
- javax.swing.text.html.parser, \
- javax.swing.text.rtf, \
- javax.swing.tree, \
- javax.swing.undo, \
- javax.tools, \
- javax.transaction; javax.transaction.xa; partial=true; mandatory:=partial, \
- javax.xml, \
-# javax.xml.bind, \
-# javax.xml.bind.annotation, \
-# javax.xml.bind.annotation.adapters, \
-# javax.xml.bind.attachment, \
-# javax.xml.bind.helpers, \
-# javax.xml.bind.util, \
- javax.xml.crypto, \
- javax.xml.crypto.dom, \
- javax.xml.crypto.dsig, \
- javax.xml.crypto.dsig.dom, \
- javax.xml.crypto.dsig.keyinfo, \
- javax.xml.crypto.dsig.spec, \
- javax.xml.datatype, \
- javax.xml.namespace, \
- javax.xml.parsers, \
-# javax.xml.soap, \
-# javax.xml.stream, \
-# javax.xml.stream.events, \
-# javax.xml.stream.util, \
- javax.xml.transform, \
- javax.xml.transform.dom, \
- javax.xml.transform.sax, \
- javax.xml.transform.stax, \
- javax.xml.transform.stream, \
- javax.xml.validation, \
-# javax.xml.ws, \
-# javax.xml.ws.handler, \
-# javax.xml.ws.handler.soap, \
-# javax.xml.ws.http, \
-# javax.xml.ws.soap, \
-# javax.xml.ws.spi, \
- javax.xml.xpath, \
- org.ietf.jgss, \
- org.omg.CORBA, \
- org.omg.CORBA_2_3, \
- org.omg.CORBA_2_3.portable, \
- org.omg.CORBA.DynAnyPackage, \
- org.omg.CORBA.ORBPackage, \
- org.omg.CORBA.portable, \
- org.omg.CORBA.TypeCodePackage, \
- org.omg.CosNaming, \
- org.omg.CosNaming.NamingContextExtPackage, \
- org.omg.CosNaming.NamingContextPackage, \
- org.omg.Dynamic, \
- org.omg.DynamicAny, \
- org.omg.DynamicAny.DynAnyFactoryPackage, \
- org.omg.DynamicAny.DynAnyPackage, \
- org.omg.IOP, \
- org.omg.IOP.CodecFactoryPackage, \
- org.omg.IOP.CodecPackage, \
- org.omg.Messaging, \
- org.omg.PortableInterceptor, \
- org.omg.PortableInterceptor.ORBInitInfoPackage, \
- org.omg.PortableServer, \
- org.omg.PortableServer.CurrentPackage, \
- org.omg.PortableServer.POAManagerPackage, \
- org.omg.PortableServer.POAPackage, \
- org.omg.PortableServer.portable, \
- org.omg.PortableServer.ServantLocatorPackage, \
- org.omg.SendingContext, \
- org.omg.stub.java.rmi, \
- org.omg.stub.javax.management.remote.rmi, \
- org.w3c.dom, \
- org.w3c.dom.bootstrap, \
- org.w3c.dom.css, \
- org.w3c.dom.events, \
- org.w3c.dom.html, \
- org.w3c.dom.ls, \
- org.w3c.dom.ranges, \
- org.w3c.dom.stylesheets, \
- org.w3c.dom.traversal, \
- org.w3c.dom.views, \
- org.w3c.dom.xpath, \
- org.xml.sax, \
- org.xml.sax.ext, \
- org.xml.sax.helpers

http://git-wip-us.apache.org/repos/asf/cxf/blob/3fbedf13/osgi/karaf4/features/src/main/resources/features.xml
----------------------------------------------------------------------
diff --git a/osgi/karaf4/features/src/main/resources/features.xml b/osgi/karaf4/features/src/main/resources/features.xml
deleted file mode 100644
index 0f9504e..0000000
--- a/osgi/karaf4/features/src/main/resources/features.xml
+++ /dev/null
@@ -1,540 +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.
--->
-<features xmlns="http://karaf.apache.org/xmlns/features/v1.3.0" name="cxf-${project.version}">
-
-	<repository>mvn:org.ops4j.pax.cdi/pax-cdi-features/[1.0.0.RC1,2)/xml/features</repository>
-
-    <feature name="cxf-specs" version="${project.version}">
-        <bundle start-level="9">mvn:org.apache.geronimo.specs/geronimo-osgi-registry/1.1</bundle>
-        <bundle start-level="10" dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/${cxf.servicemix.specs.version}</bundle>
-        <bundle start-level="10">mvn:javax.annotation/javax.annotation-api/${cxf.javax.annotation-api.version}</bundle>
-        <bundle start-level="10" dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${cxf.servicemix.specs.version}</bundle>
-        <bundle start-level="10" dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxb-api-2.2/${cxf.servicemix.specs.version}</bundle>
-        <bundle start-level="10" dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-2.2/${cxf.servicemix.specs.version}</bundle>
-        <bundle start-level="10" dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.saaj-api-1.3/${cxf.servicemix.specs.version}</bundle>
-        <bundle start-level="10">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jsr339-api-2.0.1/${cxf.servicemix.specs.version.jaxrs}</bundle>
-        <bundle start-level="10" dependency="true">mvn:javax.mail/mail/${cxf.javax.mail.version}</bundle>
-        <bundle start-level="20">mvn:org.codehaus.woodstox/stax2-api/${cxf.woodstox.stax2-api.version}</bundle>
-        <bundle start-level="20">mvn:org.codehaus.woodstox/woodstox-core-asl/${cxf.woodstox.core.version}</bundle>
-        <bundle start-level="20">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/${cxf.jaxb.bundle.version}</bundle>
-        <bundle start-level="20">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-xjc/${cxf.jaxb.bundle.version}</bundle>
-    </feature>
-    <feature name="cxf-jaxb" version="${project.version}">
-        <feature version="${project.version}">cxf-specs</feature>
-        <feature version="${project.version}">cxf-wsdl</feature>
-        <bundle start-level="20">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/${cxf.jaxb.bundle.version}</bundle>
-        <bundle start-level="20">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-xjc/${cxf.jaxb.bundle.version}</bundle>
-    </feature>
-    <!-- Current the abdera bundle is not working as we expect -->
-    <feature name="cxf-abdera" version="${project.version}">
-        <feature version="${project.version}">cxf-specs</feature>
-        <bundle start-level="25" dependency="true">mvn:commons-codec/commons-codec/${cxf.commons-codec.version}</bundle>
-        <bundle start-level="35">mvn:org.apache.abdera/abdera-core/${cxf.abdera.version}</bundle>
-        <bundle start-level="35">mvn:org.apache.abdera/abdera-extensions-main/${cxf.abdera.version}</bundle>
-        <bundle start-level="35">mvn:org.apache.abdera/abdera-i18n/${cxf.abdera.version}</bundle>
-        <bundle start-level="35">mvn:org.apache.james/apache-mime4j-core/${cxf.james.mim4j.version}</bundle>
-        <bundle start-level="35">mvn:org.apache.abdera/abdera-parser/${cxf.abdera.version}</bundle>
-        <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jdom/${cxf.jdom.bundle.version}</bundle>
-        <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.dom4j/${cxf.dom4j.bundle.version}</bundle>
-        <!--bundle start-level='35'>mvn:org.apache.abdera/abdera-extensions-html/${cxf.abdera.version}</bundle>
-        <bundle start-level='35'>mvn:org.apache.abdera/abdera-extensions-json/${cxf.abdera.version}</bundle>-->
-    </feature>
-    <feature name="wss4j" version="${cxf.wss4j.version}">
-        <feature version="${project.version}">cxf-specs</feature>
-        <bundle start-level="25" dependency="true">mvn:joda-time/joda-time/${cxf.joda.time.version}</bundle>
-        <bundle start-level="25" dependency="true">mvn:commons-codec/commons-codec/${cxf.commons-codec.version}</bundle>
-        <bundle start-level="25" dependency="true">mvn:org.apache.santuario/xmlsec/${cxf.xmlsec.bundle.version}</bundle>
-        <bundle start-level="25" dependency="true">mvn:com.google.guava/guava/${cxf.guava.version}</bundle>
-        <bundle start-level="25" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.opensaml/${cxf.opensaml.osgi.version}</bundle>
-        <bundle start-level="25">mvn:org.jvnet.staxex/stax-ex/${cxf.stax-ex.version}</bundle>
-        <bundle start-level="25">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.saaj-impl/${cxf.saaj-impl.bundle.version}</bundle>
-        <bundle start-level="25">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/${cxf.xmlresolver.bundle.version}</bundle>
-        <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xerces/${cxf.xerces.bundle.version}</bundle>
-        <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.bcel/${cxf.bcel.bundle.version}</bundle>
-        <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xalan/${cxf.xalan.bundle.version}</bundle>
-        <bundle start-level="30" dependency="true">mvn:org.apache.neethi/neethi/${cxf.neethi.version}</bundle>
-        <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jasypt/${cxf.jasypt.bundle.version}</bundle>
-        <bundle start-level="30">mvn:org.apache.wss4j/wss4j-bindings/${cxf.wss4j.version}</bundle>
-        <bundle start-level="30">mvn:org.apache.wss4j/wss4j-ws-security-common/${cxf.wss4j.version}</bundle>
-        <bundle start-level="30">mvn:org.apache.wss4j/wss4j-ws-security-dom/${cxf.wss4j.version}</bundle>
-        <bundle start-level="30">mvn:org.apache.wss4j/wss4j-policy/${cxf.wss4j.version}</bundle>
-        <bundle start-level="30">mvn:org.apache.wss4j/wss4j-ws-security-stax/${cxf.wss4j.version}</bundle>
-        <bundle start-level="30">mvn:org.apache.wss4j/wss4j-ws-security-policy-stax/${cxf.wss4j.version}</bundle>
-    </feature>
-    <feature name="cxf-core" version="${project.version}">
-        <feature version="${project.version}">cxf-specs</feature>
-        <bundle start-level="30" dependency="true">mvn:org.apache.ws.xmlschema/xmlschema-core/${cxf.xmlschema.version}</bundle>
-        <bundle start-level="25" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/${cxf.xmlresolver.bundle.version}</bundle>
-        <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.fastinfoset/${cxf.fastinfoset.bundle.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-core/${project.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-management/${project.version}</bundle>
-        <conditional>
-            <condition>shell</condition>
-            <feature version="${project.version}">cxf-commands</feature>
-        </conditional>
-    </feature>
-    <feature name="cxf-commands" version="${project.version}">
-        <feature>shell</feature>
-        <feature version="${project.version}">cxf-core</feature>
-        <bundle start-level="40">mvn:org.apache.cxf.karaf4/cxf-karaf4-commands/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-wsdl" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.wsdl4j/${cxf.wsdl4j.bundle.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-wsdl/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-ws-policy" version="${project.version}">
-        <feature version="${project.version}">cxf-wsdl</feature>
-        <bundle start-level="30" dependency="true">mvn:org.apache.neethi/neethi/${cxf.neethi.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-ws-policy/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-ws-addr" version="${project.version}">
-        <feature version="${project.version}">cxf-ws-policy</feature>
-        <feature version="${project.version}">cxf-bindings-soap</feature>
-        <feature version="${project.version}">cxf-databinding-jaxb</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-ws-addr/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-ws-rm" version="${project.version}">
-        <feature version="${project.version}">cxf-ws-policy</feature>
-        <feature version="${project.version}">cxf-ws-addr</feature>
-        <feature version="${project.version}">cxf-ws-security</feature>
-        <feature version="${project.version}">cxf-databinding-jaxb</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-ws-rm/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-ws-mex" version="${project.version}">
-        <feature version="${project.version}">cxf-ws-policy</feature>
-        <feature version="${project.version}">cxf-ws-addr</feature>
-        <feature version="${project.version}">cxf-jaxws</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-ws-mex/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-ws-security" version="${project.version}">
-        <feature version="${cxf.wss4j.version}">wss4j</feature>
-        <feature version="${project.version}">cxf-rt-security-saml</feature>
-        <feature version="${project.version}">cxf-ws-policy</feature>
-        <feature version="${project.version}">cxf-ws-addr</feature>
-        <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${cxf.geronimo.transaction.version}</bundle>
-        <bundle start-level="40" dependency="true">mvn:net.sf.ehcache/ehcache/${cxf.ehcache.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-ws-security/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-rt-security" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <feature version="${project.version}">cxf-wsdl</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-security/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-rt-security-saml" version="${project.version}">
-        <feature version="${project.version}">cxf-rt-security</feature>
-        <feature version="${cxf.wss4j.version}">wss4j</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-security-saml/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-http-client" version="${project.version}">
-        <!-- Can be used instead cxf-http for a smaller footprint -->
-        <feature version="${project.version}">cxf-core</feature>
-        <bundle start-level="40">mvn:${cxf.servlet-api.group}/${cxf.servlet-api.artifact}/${cxf.servlet-api.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-http/${project.version}</bundle>
-    </feature>
-
-    <feature name="cxf-http" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <feature>http</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-http/${project.version}</bundle>
-    </feature>
-    <!--
-      This feature can be used to depend on the feature providing a HttpDestinationFactory extension
-      without depending on the actual provider (see cxf-wsn for example).
-      It will install cxf-http-jetty by default, unless the user explicitly installs a different
-      provider, such as cxf-http-undertow.
-      -->
-    <feature name="cxf-http-provider" version="${project.version}">
-        <feature dependency="true" version="${project.version}">cxf-http-jetty</feature>
-        <requirement>
-            cxf.http.provider
-        </requirement>
-    </feature>
-    <feature name="cxf-http-jetty" version="${project.version}">
-        <feature version="${project.version}">cxf-http</feature>
-        <feature version="[7,10)">jetty</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-http-jetty/${project.version}</bundle>
-        <capability>
-            cxf.http.provider;name=jetty
-        </capability>
-    </feature>
-    <feature name="cxf-http-async" version="${project.version}">
-        <feature version="${project.version}">cxf-http</feature>
-        <bundle start-level="40">mvn:org.apache.httpcomponents/httpcore-osgi/${cxf.httpcomponents.core.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.httpcomponents/httpclient-osgi/${cxf.httpcomponents.client.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.httpcomponents/httpasyncclient-osgi/${cxf.httpcomponents.asyncclient.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-http-hc/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-http-netty-client" version="${project.version}">
-        <feature version="${project.version}">cxf-http</feature>
-        <bundle dependency="true" start-level="40">mvn:${cxf.servlet-api.group}/${cxf.servlet-api.artifact}/${cxf.servlet-api.version}</bundle>
-        <bundle start-level="40">mvn:io.netty/netty-common/${cxf.netty.version}</bundle>
-        <bundle start-level="40">mvn:io.netty/netty-handler/${cxf.netty.version}</bundle>
-        <bundle start-level="40">mvn:io.netty/netty-buffer/${cxf.netty.version}</bundle>
-        <bundle start-level="40">mvn:io.netty/netty-transport/${cxf.netty.version}</bundle>
-        <bundle start-level="40">mvn:io.netty/netty-codec/${cxf.netty.version}</bundle>
-        <bundle start-level="40">mvn:io.netty/netty-codec-http/${cxf.netty.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-http-netty-client/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-http-netty-server" version="${project.version}">
-        <feature version="${project.version}">cxf-http</feature>
-        <bundle start-level="40">mvn:io.netty/netty-common/${cxf.netty.version}</bundle>
-        <bundle start-level="40">mvn:io.netty/netty-handler/${cxf.netty.version}</bundle>
-        <bundle start-level="40">mvn:io.netty/netty-buffer/${cxf.netty.version}</bundle>
-        <bundle start-level="40">mvn:io.netty/netty-transport/${cxf.netty.version}</bundle>
-        <bundle start-level="40">mvn:io.netty/netty-codec/${cxf.netty.version}</bundle>
-        <bundle start-level="40">mvn:io.netty/netty-codec-http/${cxf.netty.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-http-netty-server/${project.version}</bundle>
-        <capability>
-            cxf.http.provider;name=netty
-        </capability>
-    </feature>
-    <feature name="cxf-http-undertow" version="${project.version}">
-        <feature version="${project.version}">cxf-http</feature>
-        <feature>pax-http-undertow</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-http-undertow/${project.version}</bundle>
-        <capability>
-            cxf.http.provider;name=undertow
-        </capability>
-    </feature>
-    <feature name="cxf-bindings-soap" version="${project.version}">
-        <feature version="${project.version}">cxf-wsdl</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-bindings-xml/${project.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-bindings-soap/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-jaxws" version="${project.version}">
-        <feature version="${project.version}">cxf-wsdl</feature>
-        <feature version="${project.version}">cxf-databinding-jaxb</feature>
-        <feature version="${project.version}">cxf-bindings-soap</feature>
-        <feature version="${project.version}">cxf-http</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-frontend-simple/${project.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-frontend-jaxws/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-jaxrs" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <feature version="${project.version}">cxf-http</feature>
-        <bundle start-level="30" dependency="true">mvn:org.codehaus.jettison/jettison/${cxf.jettison.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-extension-providers/${project.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-extension-search/${project.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-service-description/${project.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-frontend-jaxrs/${project.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-client/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-rs-security-xml" version="${project.version}">
-        <feature version="${project.version}">cxf-jaxrs</feature>
-        <feature version="${project.version}">cxf-rt-security-saml</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-security-xml/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-rs-security-sso-saml" version="${project.version}">
-        <feature version="${project.version}">cxf-rs-security-xml</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-security-sso-saml/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-rs-security-cors" version="${project.version}">
-        <feature version="${project.version}">cxf-jaxrs</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-security-cors/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-rs-security-oauth" version="${project.version}">
-        <feature version="${project.version}">cxf-jaxrs</feature>
-        <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.oauth-provider/${cxf.oauth.bundle.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-security-oauth/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-rs-security-jose" version="${project.version}">
-        <feature version="${project.version}">cxf-jaxrs</feature>
-        <feature version="${project.version}">cxf-rt-security</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-json-basic/${project.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-security-jose/${project.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-security-jose-jaxrs/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-rs-security-oauth2" version="${project.version}">
-        <feature version="${project.version}">cxf-rs-security-jose</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-security-oauth2/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-jackson" version="${project.version}">
-        <bundle start-level="35">mvn:com.fasterxml.jackson.core/jackson-core/${cxf.jackson.version}</bundle>
-        <bundle start-level="35">mvn:com.fasterxml.jackson.core/jackson-annotations/${cxf.jackson.version}</bundle>
-        <bundle start-level="35">mvn:com.fasterxml.jackson.core/jackson-databind/${cxf.jackson.version}</bundle>
-        <bundle start-level="35">mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/${cxf.jackson.version}</bundle>
-        <bundle start-level="35">mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/${cxf.jackson.version}</bundle>
-        <bundle start-level="35">mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/${cxf.jackson.version}</bundle>
-    </feature>
-    <feature name="cxf-rs-description-swagger2" version="${project.version}">
-        <feature version="${project.version}">cxf-jaxrs</feature>
-        <feature version="${project.version}">cxf-jackson</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-service-description-swagger/${project.version}</bundle>
-        <bundle start-level="10" dependency="true">mvn:javax.validation/validation-api/${cxf.validation.api.version}</bundle>
-        <bundle start-level="35" dependency="true">mvn:org.apache.commons/commons-lang3/${cxf.commons-lang3.version}</bundle>
-        <bundle start-level="30" dependency="true">mvn:org.javassist/javassist/${cxf.javassist.version}</bundle>
-        <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.reflections/${cxf.reflections.bundle.version}</bundle>
-        <bundle start-level="25" dependency="true">mvn:com.google.guava/guava/${cxf.guava.version}</bundle>
-        <bundle start-level="35" dependency="true">mvn:io.swagger/swagger-annotations/${cxf.swagger2.version}</bundle>
-        <bundle start-level="35" dependency="true">mvn:io.swagger/swagger-models/${cxf.swagger2.version}</bundle>
-        <bundle start-level="35" dependency="true">mvn:io.swagger/swagger-core/${cxf.swagger2.version}</bundle>
-        <bundle start-level="35" dependency="true">mvn:io.swagger/swagger-jaxrs/${cxf.swagger2.version}</bundle>
-    </feature>
-    <feature name="cxf-databinding-aegis" version="${project.version}">
-        <feature version="${project.version}">cxf-wsdl</feature>
-        <feature version="${project.version}">cxf-bindings-soap</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-databinding-aegis/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-databinding-jibx" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <feature version="${project.version}">cxf-tools</feature>
-        <bundle start-level="25" dependency="true">mvn:joda-time/joda-time/${cxf.joda.time.version}</bundle>
-        <bundle start-level="40" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xpp3/${cxf.xpp3.bundle.version}</bundle>
-        <bundle start-level="40" dependency="true">mvn:org.jibx/jibx-run/${cxf.jibx.version}</bundle>
-        <bundle start-level="40" dependency="true">mvn:org.jibx/jibx-bind/${cxf.jibx.version}</bundle>
-        <bundle start-level="40" dependency="true">mvn:org.jibx/jibx-schema/${cxf.jibx.version}</bundle>
-        <bundle start-level="40" dependency="true">mvn:org.jibx/jibx-tools/${cxf.jibx.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-databinding-jibx/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-databinding-jaxb" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <feature version="${project.version}">cxf-wsdl</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-databinding-jaxb/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-databinding-xmlbeans" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlbeans/${cxf.xmlbeans.bundle.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-databinding-xmlbeans/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-features-clustering" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-features-clustering/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-features-logging" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-features-logging/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-features-throttling" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-features-throttling/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-features-metrics" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <bundle start-level="40" dependency='true'>mvn:io.dropwizard.metrics/metrics-core/${cxf.dropwizard.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-features-metrics/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-bindings-corba" version="${project.version}">
-        <feature version="${project.version}">cxf-wsdl</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-bindings-corba/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-bindings-coloc" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-bindings-coloc/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-bindings-object" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <feature version="${project.version}">cxf-transports-local</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-bindings-object/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-transports-local" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-local/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-transports-jms" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <feature version="${project.version}">cxf-bindings-soap</feature>
-        <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${cxf.geronimo.transaction.version}</bundle>
-        <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${cxf.geronimo.jms.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-jms/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-transports-udp" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <bundle dependency="true">mvn:org.apache.mina/mina-core/${cxf.mina.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-udp/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-transports-websocket-client" version="${project.version}">
-        <feature version="${project.version}">cxf-http</feature>
-        <bundle dependency='true'>mvn:com.ning/async-http-client/${cxf.ahc.version}</bundle>
-        <bundle dependency='true'>mvn:io.netty/netty/${cxf.netty3.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-websocket/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-transports-websocket-server" version="${project.version}">
-        <feature version="${project.version}">cxf-http</feature>
-        <bundle dependency='true'>mvn:org.atmosphere/atmosphere-runtime/${cxf.atmosphere.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-websocket/${project.version}</bundle>
-        <capability>
-            cxf.http.provider;name=websocket
-        </capability>
-    </feature>
-    <feature name="cxf-javascript" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <feature version="${project.version}">cxf-bindings-soap</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-javascript/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-frontend-javascript" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <feature version="${project.version}">cxf-jaxws</feature>
-        <bundle start-level="40" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.rhino/${cxf.rhino.bundle.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-frontend-js/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-xjc-runtime" version="${project.version}">
-        <feature version="${project.version}">cxf-jaxb</feature>
-        <bundle start-level="35" dependency="true">mvn:commons-lang/commons-lang/${cxf.commons-lang.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf.xjc-utils/cxf-xjc-runtime/${cxf.xjc-utils.version}</bundle>
-    </feature>
-    <feature name="cxf-tools" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <feature version="${project.version}">cxf-wsdl</feature>
-        <feature version="${project.version}">cxf-databinding-jaxb</feature>
-        <feature version="${project.version}">cxf-databinding-aegis</feature>
-        <feature version="${project.version}">cxf-bindings-soap</feature>
-        <feature version="${project.version}">cxf-jaxrs</feature>
-        <feature version="${project.version}">cxf-jaxws</feature>
-        <feature version="${project.version}">cxf-javascript</feature>
-        <bundle start-level="35">mvn:commons-lang/commons-lang/${cxf.commons-lang.version}</bundle>
-        <bundle>mvn:org.apache.velocity/velocity/${cxf.velocity.version}</bundle>
-        <bundle>mvn:commons-collections/commons-collections/${cxf.commons-collections.version}</bundle>
-        <bundle>mvn:org.apache.cxf/cxf-tools-common/${project.version}</bundle>
-        <bundle>mvn:org.apache.cxf/cxf-tools-java2ws/${project.version}</bundle>
-        <bundle>mvn:org.apache.cxf/cxf-tools-misctools/${project.version}</bundle>
-        <bundle>mvn:org.apache.cxf/cxf-tools-validator/${project.version}</bundle>
-        <bundle>mvn:org.apache.cxf/cxf-tools-wadlto-jaxrs/${project.version}</bundle>
-        <bundle>mvn:org.apache.cxf/cxf-tools-wsdlto-core/${project.version}</bundle>
-        <bundle>mvn:org.apache.cxf/cxf-tools-wsdlto-databinding-jaxb/${project.version}</bundle>
-        <bundle>mvn:org.apache.cxf/cxf-tools-wsdlto-frontend-javascript/${project.version}</bundle>
-        <bundle>mvn:org.apache.cxf/cxf-tools-wsdlto-frontend-jaxws/${project.version}</bundle>
-        <!-- need antlr
-        <bundle>mvn:org.apache.cxf/cxf-tools-corba/${project.version}</bundle-->
-    </feature>
-    <feature name="cxf" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <feature version="${project.version}">cxf-jaxws</feature>
-        <feature version="${project.version}">cxf-jaxrs</feature>
-        <feature version="${project.version}">cxf-databinding-jaxb</feature>
-        <feature version="${project.version}">cxf-databinding-aegis</feature>
-        <feature version="${project.version}">cxf-databinding-xmlbeans</feature>
-        <feature version="${project.version}">cxf-bindings-corba</feature>
-        <feature version="${project.version}">cxf-bindings-coloc</feature>
-        <feature version="${project.version}">cxf-bindings-object</feature>
-        <feature version="${project.version}">cxf-http-provider</feature>
-        <feature version="${project.version}">cxf-transports-local</feature>
-        <feature version="${project.version}">cxf-transports-jms</feature>
-        <feature version="${project.version}">cxf-transports-udp</feature>
-        <feature version="${project.version}">cxf-xjc-runtime</feature>
-        <feature version="${project.version}">cxf-ws-security</feature>
-        <feature version="${project.version}">cxf-ws-rm</feature>
-        <feature version="${project.version}">cxf-ws-mex</feature>
-        <feature version="${project.version}">cxf-javascript</feature>
-        <feature version="${project.version}">cxf-frontend-javascript</feature>
-        <feature version="${project.version}">cxf-features-clustering</feature>
-        <feature version="${project.version}">cxf-features-metrics</feature>
-        <feature version="${project.version}">cxf-features-throttling</feature>
-        <feature version="${project.version}">cxf-features-logging</feature>
-
-        <!-- tools really aren't needed in OSGi by default
-        <feature version="${project.version}">cxf-tools</feature>
-        -->
-        <!-- need msv
-        <bundle>mvn:org.apache.cxf/cxf-wstx-msv-validation/${project.version}</bundle-->
-        <!-- need sdo deps
-        <bundle>mvn:org.apache.cxf/cxf-rt-databinding-sdo/${project.version}</bundle-->
-    </feature>
-    <feature name="cxf-sts" version="${project.version}">
-        <bundle start-level="40" dependency="true">mvn:com.hazelcast/hazelcast/${cxf.hazelcast.version}</bundle>
-        <bundle start-level="40" dependency="true">mvn:net.sf.ehcache/ehcache/${cxf.ehcache.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-json-basic/${project.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-security-jose/${project.version}</bundle>
-        <feature version="${project.version}">cxf-core</feature>
-        <feature version="${project.version}">cxf-ws-security</feature>
-        <feature version="${project.version}">cxf-http</feature>
-        <bundle>mvn:org.apache.cxf.services.sts/cxf-services-sts-core/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-wsn-api" version="${project.version}">
-        <feature version="${project.version}">cxf-ws-addr</feature>
-        <feature version="${project.version}">cxf-jaxws</feature>
-        <bundle>mvn:org.apache.cxf.services.wsn/cxf-services-wsn-api/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-wsn" version="${project.version}">
-        <config name="org.apache.cxf.wsn">
-            cxf.wsn.activemq = vm:localhost
-            cxf.wsn.rootUrl = http://0.0.0.0:8182
-            cxf.wsn.context = /wsn
-            cxf.wsn.activemq.username = karaf
-            cxf.wsn.activemq.password = karaf
-        </config>
-        <feature>spring</feature>
-        <feature>aries-blueprint</feature>
-        <feature version="${project.version}">cxf-wsn-api</feature>
-        <feature version="${project.version}">cxf-http-provider</feature>
-        <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_6</bundle>
-        <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1</bundle>
-        <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-j2ee-management_1.1_spec/1.0.1</bundle>
-        <bundle dependency="true">mvn:org.apache.activemq/activemq-osgi/5.14.0</bundle>
-        <bundle>mvn:org.apache.cxf.services.wsn/cxf-services-wsn-core/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-ws-discovery-api" version="${project.version}">
-        <feature version="${project.version}">cxf-transports-udp</feature>
-        <feature version="${project.version}">cxf-ws-addr</feature>
-        <feature version="${project.version}">cxf-jaxws</feature>
-        <feature>aries-blueprint</feature>
-        <bundle>mvn:org.apache.cxf.services.ws-discovery/cxf-services-ws-discovery-api/${project.version}</bundle>
-    </feature>
-    <feature name="cxf-ws-discovery" version="${project.version}">
-        <feature version="${project.version}">cxf-ws-discovery-api</feature>
-        <bundle>mvn:org.apache.cxf.services.ws-discovery/cxf-services-ws-discovery-service/${project.version}</bundle>
-    </feature>
-
-    <feature name="cxf-bean-validation-core" version="${project.version}">
-        <!-- This feature has the wrong name; it's hibernate-only. Fix up in 3.2.0? Move all this to the
-        hibernate-bean-validation-helper feature -->
-        <bundle start-level="30" dependency="true">mvn:org.hibernate/hibernate-validator/${cxf.hibernate.validator.version}</bundle>
-        <bundle start-level="30" dependency="true">mvn:javax.validation/validation-api/${cxf.validation.api.version}</bundle>
-        <!-- The servicemix bundle for hibernate demands joda-time -->
-        <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.joda-time/${cxf.servicemix.jodatime.version}</bundle>
-        <!-- The servicemix bundle for hibernate demands jsoup -->
-        <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsoup/${cxf.servicemix.jsoup.version}</bundle>
-        <!-- hibernate requires jboss-logging -->
-        <bundle start-level="30" dependency="true">mvn:org.jboss.logging/jboss-logging/${cxf.jboss.logging.version}</bundle>
-        <!-- ditto for classmate -->
-        <bundle start-level="30" dependency="true">mvn:com.fasterxml/classmate/${cxf.classmate.version}</bundle>
-        <!-- stax -->
-        <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.2/${cxf.servicemix.specs.version}</bundle>
-        <bundle start-level="30" dependency="true">mvn:org.codehaus.woodstox/stax2-api/${cxf.woodstox.stax2-api.version}</bundle>
-        <bundle start-level="30" dependency="true">mvn:org.codehaus.woodstox/woodstox-core-asl/${cxf.woodstox.core.version}</bundle>
-        <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.cglib/${cxf.servicemix.cglib.version}</bundle>
-        <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aspectj/${cxf.servicemix.aspectj.version}</bundle>
-    </feature>
-
-    <feature name="cxf-bean-validation" version="${project.version}">
-        <feature version="${project.version}">cxf-bean-validation-core</feature>
-        <bundle start-level="30" dependency="true">mvn:javax.el/javax.el-api/${cxf.javax.el.version}</bundle> 
-        <bundle start-level="30" dependency="true">mvn:org.glassfish/javax.el/${cxf.javax.el.version}</bundle> 
-    </feature>
-
-    <!--
-    <feature name="cxf-management-web" version="${project.version}">
-        <feature version="${project.version}">cxf-core</feature>
-        <feature version="${project.version}">cxf-jaxrs</feature>
-        <bundle start-level="35" dependency="true">mvn:commons-lang/commons-lang/${cxf.commons-lang.version}</bundle>
-        <bundle start-level="25" dependency="true">mvn:commons-codec/commons-codec/${cxf.commons-codec.version}</bundle>
-        <bundle start-level="35">mvn:org.apache.abdera/abdera-core/${cxf.abdera.version}</bundle>
-        <bundle start-level="35">mvn:org.apache.abdera/abdera-i18n/${cxf.abdera.version}</bundle>
-        <bundle start-level="35">mvn:org.apache.james/apache-mime4j-core/${cxf.james.mim4j.version}</bundle>
-        <bundle start-level="35">mvn:org.apache.abdera/abdera-parser/${cxf.abdera.version}</bundle>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-management-web/${project.version}</bundle>
-    </feature>
-    -->
-
-    <feature name="cxf-jaxrs-cdi" version="${project.version}">
-        <feature version="${project.version}">cxf-jaxrs</feature>
-        <feature>pax-cdi</feature>
-        <bundle start-level="40">mvn:org.apache.cxf/cxf-integration-cdi/${project.version}</bundle>
-    </feature>
-</features>