servicemix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ksobkow...@apache.org
Subject git commit: SM-2270: Add archetypes to code base (closes #8) Thanks to Wim Verreydt for the pull request
Date Sun, 25 May 2014 21:40:08 GMT
Repository: servicemix
Updated Branches:
  refs/heads/servicemix-5.0.x 7b16c9f31 -> 451da3739


SM-2270: Add archetypes to code base (closes #8)
Thanks to  Wim Verreydt for the pull request


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

Branch: refs/heads/servicemix-5.0.x
Commit: 451da373971f7ae91f04f133c9d6c9a44e69ef91
Parents: 7b16c9f
Author: Wim Verreydt <wim@anova.be>
Authored: Fri May 9 12:44:58 2014 +0200
Committer: Krzysztof Sobkowiak <krzys.sobkowiak@gmail.com>
Committed: Sun May 25 23:39:37 2014 +0200

----------------------------------------------------------------------
 parent/pom.xml                                  |   2 +
 pom.xml                                         |   1 +
 tooling/archetypes/pom.xml                      |  96 +++++++++++++
 .../pom.xml                                     |  45 ++++++
 .../main/resources/META-INF/maven/archetype.xml |  35 +++++
 .../main/resources/archetype-resources/pom.xml  | 132 ++++++++++++++++++
 .../src/main/java/Person.java                   |  26 ++++
 .../src/main/java/PersonImpl.java               |  24 ++++
 .../src/main/java/UnknownPersonFault.java       |  36 +++++
 .../src/main/java/client/Client.java            |  39 ++++++
 .../src/main/java/types/GetPerson.java          |  64 +++++++++
 .../src/main/java/types/GetPersonResponse.java  | 120 ++++++++++++++++
 .../src/main/java/types/ObjectFactory.java      |  56 ++++++++
 .../src/main/java/types/UnknownPersonFault.java |  64 +++++++++
 .../src/main/java/types/package-info.java       |   1 +
 .../main/resources/META-INF/spring/beans.xml    |  17 +++
 .../pom.xml                                     |  45 ++++++
 .../main/resources/META-INF/maven/archetype.xml |  28 ++++
 .../main/resources/archetype-resources/pom.xml  | 138 +++++++++++++++++++
 .../src/main/java/PersonImpl.java               |  42 ++++++
 .../main/resources/META-INF/spring/beans.xml    |  54 ++++++++
 .../src/main/resources/wsdl/person.wsdl         |  98 +++++++++++++
 .../archetypes/servicemix-osgi-bundle/pom.xml   |  45 ++++++
 .../main/resources/META-INF/maven/archetype.xml |  20 +++
 .../main/resources/archetype-resources/pom.xml  | 117 ++++++++++++++++
 tooling/pom.xml                                 |  40 ++++++
 26 files changed, 1385 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/parent/pom.xml
----------------------------------------------------------------------
diff --git a/parent/pom.xml b/parent/pom.xml
index f58498c..5396689 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -61,6 +61,8 @@
     <jpa.version>1.0.1</jpa.version>
 
     <servicemix.specs.version>2.4.0</servicemix.specs.version>
+
+      <maven-archetype-packaging-version>2.0</maven-archetype-packaging-version>
   </properties>
 
   <!-- Managed dependencies -->

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 325651c..dcefbea 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,6 +45,7 @@
         <module>examples</module>
         <module>itests</module>
         <module>assembly</module>
+        <module>tooling</module>
     </modules>
 
     <scm>

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/pom.xml
----------------------------------------------------------------------
diff --git a/tooling/archetypes/pom.xml b/tooling/archetypes/pom.xml
new file mode 100644
index 0000000..4b1c5ff
--- /dev/null
+++ b/tooling/archetypes/pom.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <!--
+
+        Licensed to the Apache Software Foundation (ASF) under one or more
+        contributor license agreements.  See the NOTICE file distributed with
+        this work for additional information regarding copyright ownership.
+        The ASF licenses this file to You under the Apache License, Version 2.0
+        (the "License"); you may not use this file except in compliance with
+        the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+        Unless required by applicable law or agreed to in writing, software
+        distributed under the License is distributed on an "AS IS" BASIS,
+        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+        See the License for the specific language governing permissions and
+        limitations under the License.
+    -->
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <artifactId>tooling</artifactId>
+        <groupId>org.apache.servicemix.tooling</groupId>
+        <version>5.0.2-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.servicemix.tooling</groupId>
+    <artifactId>archetypes</artifactId>
+    <packaging>pom</packaging>
+    <name>Apache ServiceMix :: Tooling :: Archetypes</name>
+
+
+    <modules>
+        <module>servicemix-cxf-code-first-osgi-bundle</module>
+        <module>servicemix-cxf-wsdl-first-osgi-bundle</module>
+        <module>servicemix-osgi-bundle</module>
+    </modules>
+
+    <properties>
+        <maven-compiler-plugin.version>3.1</maven-compiler-plugin.version>
+        <maven-resources-plugin.version>2.6</maven-resources-plugin.version>
+        <maven-shade-plugin.version>1.7.1</maven-shade-plugin.version>
+    </properties>
+
+    <build>
+        <pluginManagement>
+            <plugins>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-archetype-plugin</artifactId>
+                    <version>${maven-archetype-packaging-version}</version>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+
+        <plugins>
+            <plugin>
+                <inherited>true</inherited>
+                <groupId>org.apache.servicemix.tooling</groupId>
+                <artifactId>res-maven-plugin</artifactId>
+                <version>3.2.1</version>
+                <configuration>
+                    <inputDirectory>${basedir}/src/main/resources</inputDirectory>
+                    <outputDirectory>${basedir}/target/classes</outputDirectory>
+                    <filters>
+                        <!--
+                            Don't like these bits.. archetypes should not be tied to specific
+                            versions if possible
+                        -->
+                        <geronimo.wsmetadata.version>${geronimo-ws-metadata.version}</geronimo.wsmetadata.version>
+                        <jaxb.version>${jaxb.api.version}</jaxb.version>
+                        <cxf.version>${cxf.version}</cxf.version>
+                        <maven-compiler-plugin.version>${maven-compiler-plugin.version}</maven-compiler-plugin.version>
+                        <maven-resources-plugin.version>${maven-resources-plugin.version}</maven-resources-plugin.version>
+                        <maven-bundle-plugin.version>${maven-bundle-plugin.version}</maven-bundle-plugin.version>
+                        <maven-shade-plugin.version>${maven-shade-plugin.version}</maven-shade-plugin.version>
+                        <maven-dependency-plugin.version>2.8</maven-dependency-plugin.version>
+
+                    </filters>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>resources</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/pom.xml
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/pom.xml b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/pom.xml
new file mode 100644
index 0000000..fead2fd
--- /dev/null
+++ b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/pom.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <!--
+
+        Licensed to the Apache Software Foundation (ASF) under one or more
+        contributor license agreements.  See the NOTICE file distributed with
+        this work for additional information regarding copyright ownership.
+        The ASF licenses this file to You under the Apache License, Version 2.0
+        (the "License"); you may not use this file except in compliance with
+        the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+        Unless required by applicable law or agreed to in writing, software
+        distributed under the License is distributed on an "AS IS" BASIS,
+        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+        See the License for the specific language governing permissions and
+        limitations under the License.
+    -->
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <artifactId>archetypes</artifactId>
+        <groupId>org.apache.servicemix.tooling</groupId>
+        <version>5.0.2-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.servicemix.tooling.archetypes</groupId>
+    <artifactId>servicemix-cxf-code-first-osgi-bundle</artifactId>
+    <packaging>maven-archetype</packaging>
+    <name>Apache ServiceMix :: Tooling :: Archetypes :: CXF Code First OSGi Bundle</name>
+
+    <build>
+        <extensions>
+            <extension>
+                <groupId>org.apache.maven.archetype</groupId>
+                <artifactId>archetype-packaging</artifactId>
+                <version>${maven-archetype-packaging-version}</version>
+            </extension>
+        </extensions>
+    </build>
+
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/META-INF/maven/archetype.xml
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/META-INF/maven/archetype.xml b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/META-INF/maven/archetype.xml
new file mode 100644
index 0000000..430179a
--- /dev/null
+++ b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/META-INF/maven/archetype.xml
@@ -0,0 +1,35 @@
+<?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.
+    -->
+<archetype>
+    <id>servicemix-cxf-code-first-osgi-bundle</id>
+    <sources>
+        <source>src/main/java/Person.java</source>
+        <source>src/main/java/PersonImpl.java</source>
+        <source>src/main/java/UnknownPersonFault.java</source>
+        <source>src/main/java/types/GetPerson.java</source>
+        <source>src/main/java/types/GetPersonResponse.java</source>
+        <source>src/main/java/types/ObjectFactory.java</source>
+        <source>src/main/java/types/package-info.java</source>
+        <source>src/main/java/types/UnknownPersonFault.java</source>
+        <source>src/main/java/client/Client.java</source>
+    </sources>
+
+    <resources>
+        <resource>src/main/resources/META-INF/spring/beans.xml</resource>
+    </resources>
+</archetype>

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/pom.xml
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/pom.xml b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/pom.xml
new file mode 100644
index 0000000..3c38df7
--- /dev/null
+++ b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/pom.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <!-- Generated by Apache ServiceMix Archetype -->
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>${groupId}</groupId>
+    <artifactId>${artifactId}</artifactId>
+    <packaging>bundle</packaging>
+    <version>${version}</version>
+    <name>Apache ServiceMix :: CXF Code First OSGi Bundle</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
+            <version>@{geronimo.wsmetadata.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.xml.bind</groupId>
+            <artifactId>jaxb-api</artifactId>
+            <version>@{jaxb.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-jaxws_2.2_spec</artifactId>
+            <version>1.0</version>
+        </dependency>
+
+        <!-- Needed for Client -->
+        <dependency>
+            <groupId>org.apache.cxf</groupId>
+            <artifactId>cxf-rt-frontend-jaxws</artifactId>
+            <version>@{cxf.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.cxf</groupId>
+            <artifactId>cxf-rt-transports-http</artifactId>
+            <version>@{cxf.version}</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <defaultGoal>install</defaultGoal>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>@{maven-compiler-plugin.version}</version>
+                <configuration>
+                    <source>1.5</source>
+                    <target>1.5</target>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <version>@{maven-resources-plugin.version}</version>
+                <configuration>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <version>@{maven-bundle-plugin.version}</version>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+                        <Import-Package>
+                            javax.jws,
+                            javax.wsdl,
+                            javax.xml.bind,
+                            javax.xml.bind.annotation,
+                            javax.xml.namespace,
+                            javax.xml.ws,
+                            META-INF.cxf,
+                            META-INF.cxf.osgi,
+                            org.apache.cxf.bus,
+                            org.apache.cxf.bus.spring,
+                            org.apache.cxf.bus.resource,
+                            org.apache.cxf.configuration.spring,
+                            org.apache.cxf.resource,
+                            org.apache.cxf.jaxws,
+                            org.apache.cxf.transport.http,
+                            org.springframework.beans.factory.config
+                        </Import-Package>
+                        <Export-Package>!${packageName}.*</Export-Package>
+                        <Private-Package>
+                            ${packageName},
+                            ${packageName}.types
+                        </Private-Package>
+                        <Require-Bundle>org.apache.cxf.bundle</Require-Bundle>
+                        <!--
+                            <DynamicImport-Package>*</DynamicImport-Package>
+                        -->
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <profiles>
+        <profile>
+            <id>client</id>
+            <build>
+                <defaultGoal>test</defaultGoal>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>exec-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <phase>test</phase>
+                                <goals>
+                                    <goal>java</goal>
+                                </goals>
+                                <configuration>
+                                    <mainClass>${packageName}.client.Client</mainClass>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+</project>

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/Person.java
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/Person.java b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/Person.java
new file mode 100644
index 0000000..60cce94
--- /dev/null
+++ b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/Person.java
@@ -0,0 +1,26 @@
+package ${packageName};
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebParam.Mode;
+import javax.jws.WebService;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
+
+@WebService
+@XmlSeeAlso({${packageName}.types.ObjectFactory.class})
+public interface Person {
+
+    @RequestWrapper(localName = "GetPerson", className = "${packageName}.types.GetPerson")
+    @ResponseWrapper(localName = "GetPersonResponse", className = "${packageName}.types.GetPersonResponse")
+    @WebMethod(operationName = "GetPerson")
+    public void getPerson(
+        @WebParam(mode = WebParam.Mode.INOUT, name = "personId")
+        javax.xml.ws.Holder<java.lang.String> personId,
+        @WebParam(mode = WebParam.Mode.OUT, name = "ssn")
+        javax.xml.ws.Holder<java.lang.String> ssn,
+        @WebParam(mode = WebParam.Mode.OUT, name = "name")
+        javax.xml.ws.Holder<java.lang.String> name
+    ) throws UnknownPersonFault;
+}

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/PersonImpl.java
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/PersonImpl.java b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/PersonImpl.java
new file mode 100644
index 0000000..c50dbef
--- /dev/null
+++ b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/PersonImpl.java
@@ -0,0 +1,24 @@
+package ${packageName};
+
+import javax.jws.WebService;
+import javax.xml.ws.Holder;
+
+import ${packageName}.types.GetPerson;
+import ${packageName}.types.GetPersonResponse;
+
+@WebService(serviceName = "PersonService", endpointInterface = "${packageName}.Person")
+public class PersonImpl implements Person {
+
+    public void getPerson(Holder<String> personId, Holder<String> ssn, Holder<String> name)
+        throws UnknownPersonFault
+    {
+        if (personId.value == null || personId.value.length() == 0) {
+            ${packageName}.types.UnknownPersonFault fault = new ${packageName}.types.UnknownPersonFault();
+            fault.setPersonId(personId.value);
+            throw new UnknownPersonFault(null,fault);
+        }
+        name.value = "Guillaume";
+        ssn.value = "000-000-0000";
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/UnknownPersonFault.java
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/UnknownPersonFault.java b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/UnknownPersonFault.java
new file mode 100644
index 0000000..b7794b2
--- /dev/null
+++ b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/UnknownPersonFault.java
@@ -0,0 +1,36 @@
+package ${packageName};
+
+import javax.xml.ws.WebFault;
+
+@WebFault(name = "UnknownPersonFault")
+public class UnknownPersonFault extends Exception {
+    public static final long serialVersionUID = 20081110144906L;
+
+    private ${packageName}.types.UnknownPersonFault unknownPersonFault;
+
+    public UnknownPersonFault() {
+        super();
+    }
+
+    public UnknownPersonFault(String message) {
+        super(message);
+    }
+
+    public UnknownPersonFault(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public UnknownPersonFault(String message, ${packageName}.types.UnknownPersonFault unknownPersonFault) {
+        super(message);
+        this.unknownPersonFault = unknownPersonFault;
+    }
+
+    public UnknownPersonFault(String message, ${packageName}.types.UnknownPersonFault unknownPersonFault, Throwable cause) {
+        super(message, cause);
+        this.unknownPersonFault = unknownPersonFault;
+    }
+
+    public ${packageName}.types.UnknownPersonFault getFaultInfo() {
+        return this.unknownPersonFault;
+    }
+}

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/client/Client.java
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/client/Client.java b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/client/Client.java
new file mode 100644
index 0000000..49d73c5
--- /dev/null
+++ b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/client/Client.java
@@ -0,0 +1,39 @@
+package ${packageName}.client;
+
+import ${packageName}.*;
+import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
+
+public final class Client {
+
+    private Client() {
+    }
+
+    public static void main(String args[]) throws Exception {
+        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
+        factory.setServiceClass(Person.class);
+        if (args != null && args.length > 0 && !"".equals(args[0])) {
+            factory.setAddress(args[0]);
+        } else {
+            factory.setAddress("http://localhost:8181/cxf/PersonServiceCF");
+        }
+       
+        Person client = (Person)factory.create();
+        System.out.println("Invoking getPerson...");
+        java.lang.String _getPerson_personIdVal = "Guillaume";
+        javax.xml.ws.Holder<java.lang.String> _getPerson_personId = new javax.xml.ws.Holder<java.lang.String>(_getPerson_personIdVal);
+        javax.xml.ws.Holder<java.lang.String> _getPerson_ssn = new javax.xml.ws.Holder<java.lang.String>();
+        javax.xml.ws.Holder<java.lang.String> _getPerson_name = new javax.xml.ws.Holder<java.lang.String>();
+        try {
+            client.getPerson(_getPerson_personId, _getPerson_ssn, _getPerson_name);
+
+            System.out.println("getPerson._getPerson_personId=" + _getPerson_personId.value);
+            System.out.println("getPerson._getPerson_ssn=" + _getPerson_ssn.value);
+            System.out.println("getPerson._getPerson_name=" + _getPerson_name.value);
+        } catch (${packageName}.UnknownPersonFault upf) {
+            System.out.println("Expected exception: UnknownPersonFault has occurred.");
+            System.out.println(upf.toString());
+        }
+    }
+}
+
+

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/GetPerson.java
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/GetPerson.java b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/GetPerson.java
new file mode 100644
index 0000000..1430c39
--- /dev/null
+++ b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/GetPerson.java
@@ -0,0 +1,64 @@
+
+package ${packageName}.types;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="personId" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "personId"
+})
+@XmlRootElement(name = "GetPerson")
+public class GetPerson {
+
+    @XmlElement(required = true)
+    protected String personId;
+
+    /**
+     * Gets the value of the personId property.
+     *
+     * @return
+     *     possible object is
+     *     {@link String }
+     *
+     */
+    public String getPersonId() {
+        return personId;
+    }
+
+    /**
+     * Sets the value of the personId property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *
+     */
+    public void setPersonId(String value) {
+        this.personId = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/GetPersonResponse.java
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/GetPersonResponse.java b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/GetPersonResponse.java
new file mode 100644
index 0000000..1ba775d
--- /dev/null
+++ b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/GetPersonResponse.java
@@ -0,0 +1,120 @@
+
+package ${packageName}.types;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="personId" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;element name="ssn" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "personId",
+    "ssn",
+    "name"
+})
+@XmlRootElement(name = "GetPersonResponse")
+public class GetPersonResponse {
+
+    @XmlElement(required = true)
+    protected String personId;
+    @XmlElement(required = true)
+    protected String ssn;
+    @XmlElement(required = true)
+    protected String name;
+
+    /**
+     * Gets the value of the personId property.
+     *
+     * @return
+     *     possible object is
+     *     {@link String }
+     *
+     */
+    public String getPersonId() {
+        return personId;
+    }
+
+    /**
+     * Sets the value of the personId property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *
+     */
+    public void setPersonId(String value) {
+        this.personId = value;
+    }
+
+    /**
+     * Gets the value of the ssn property.
+     *
+     * @return
+     *     possible object is
+     *     {@link String }
+     *
+     */
+    public String getSsn() {
+        return ssn;
+    }
+
+    /**
+     * Sets the value of the ssn property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *
+     */
+    public void setSsn(String value) {
+        this.ssn = value;
+    }
+
+    /**
+     * Gets the value of the name property.
+     *
+     * @return
+     *     possible object is
+     *     {@link String }
+     *
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/ObjectFactory.java
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/ObjectFactory.java b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/ObjectFactory.java
new file mode 100644
index 0000000..3e902e8
--- /dev/null
+++ b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/ObjectFactory.java
@@ -0,0 +1,56 @@
+
+package ${packageName}.types;
+
+import javax.xml.bind.annotation.XmlRegistry;
+
+
+/**
+ * This object contains factory methods for each
+ * Java content interface and Java element interface
+ * generated in the org.apache.servicemix.samples.wsdl_first.types package.
+ * <p>An ObjectFactory allows you to programatically
+ * construct new instances of the Java representation
+ * for XML content. The Java representation of XML
+ * content can consist of schema derived interfaces
+ * and classes representing the binding of schema
+ * type definitions, element declarations and model
+ * groups.  Factory methods for each of these are
+ * provided in this class.
+ *
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.apache.servicemix.samples.wsdl_first.types
+     *
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link GetPersonResponse }
+     *
+     */
+    public GetPersonResponse createGetPersonResponse() {
+        return new GetPersonResponse();
+    }
+
+    /**
+     * Create an instance of {@link GetPerson }
+     *
+     */
+    public GetPerson createGetPerson() {
+        return new GetPerson();
+    }
+
+    /**
+     * Create an instance of {@link UnknownPersonFault }
+     *
+     */
+    public UnknownPersonFault createUnknownPersonFault() {
+        return new UnknownPersonFault();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/UnknownPersonFault.java
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/UnknownPersonFault.java b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/UnknownPersonFault.java
new file mode 100644
index 0000000..ac098b7
--- /dev/null
+++ b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/UnknownPersonFault.java
@@ -0,0 +1,64 @@
+
+package ${packageName}.types;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="personId" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "personId"
+})
+@XmlRootElement(name = "UnknownPersonFault")
+public class UnknownPersonFault {
+
+    @XmlElement(required = true)
+    protected String personId;
+
+    /**
+     * Gets the value of the personId property.
+     *
+     * @return
+     *     possible object is
+     *     {@link String }
+     *
+     */
+    public String getPersonId() {
+        return personId;
+    }
+
+    /**
+     * Sets the value of the personId property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *
+     */
+    public void setPersonId(String value) {
+        this.personId = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/package-info.java
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/package-info.java b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/package-info.java
new file mode 100644
index 0000000..0bbcf5a
--- /dev/null
+++ b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/types/package-info.java
@@ -0,0 +1 @@
+package ${packageName}.types;

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/resources/META-INF/spring/beans.xml
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/resources/META-INF/spring/beans.xml b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/resources/META-INF/spring/beans.xml
new file mode 100644
index 0000000..bfda770
--- /dev/null
+++ b/tooling/archetypes/servicemix-cxf-code-first-osgi-bundle/src/main/resources/archetype-resources/src/main/resources/META-INF/spring/beans.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated by Apache ServiceMix Archetype -->
+<beans xmlns="http://www.springframework.org/schema/beans"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:jaxws="http://cxf.apache.org/jaxws"
+    xsi:schemaLocation="
+        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+        http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
+        http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd">
+
+
+    <jaxws:endpoint id="HTTPEndpoint"
+        implementor="${packageName}.PersonImpl"
+        address="/PersonServiceCF"/>
+
+</beans>
+

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/pom.xml
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/pom.xml b/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/pom.xml
new file mode 100644
index 0000000..87556ba
--- /dev/null
+++ b/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/pom.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <!--
+
+        Licensed to the Apache Software Foundation (ASF) under one or more
+        contributor license agreements.  See the NOTICE file distributed with
+        this work for additional information regarding copyright ownership.
+        The ASF licenses this file to You under the Apache License, Version 2.0
+        (the "License"); you may not use this file except in compliance with
+        the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+        Unless required by applicable law or agreed to in writing, software
+        distributed under the License is distributed on an "AS IS" BASIS,
+        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+        See the License for the specific language governing permissions and
+        limitations under the License.
+    -->
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <artifactId>archetypes</artifactId>
+        <groupId>org.apache.servicemix.tooling</groupId>
+        <version>5.0.2-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.servicemix.tooling.archetypes</groupId>
+    <artifactId>servicemix-cxf-wsdl-first-osgi-bundle</artifactId>
+    <packaging>maven-archetype</packaging>
+    <name>Apache ServiceMix :: Tooling :: Archetypes :: CXF WSDL First OSGi Bundle</name>
+
+    <build>
+        <extensions>
+            <extension>
+                <groupId>org.apache.maven.archetype</groupId>
+                <artifactId>archetype-packaging</artifactId>
+                <version>${maven-archetype-packaging-version}</version>
+            </extension>
+        </extensions>
+    </build>
+
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/META-INF/maven/archetype.xml
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/META-INF/maven/archetype.xml b/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/META-INF/maven/archetype.xml
new file mode 100644
index 0000000..d9bd121
--- /dev/null
+++ b/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/META-INF/maven/archetype.xml
@@ -0,0 +1,28 @@
+<?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.
+    -->
+<archetype>
+    <id>servicemix-cxf-wsdl-first-osgi-bundle</id>
+
+    <sources>
+        <source>src/main/java/PersonImpl.java</source>
+    </sources>
+    <resources>
+        <resource>src/main/resources/META-INF/spring/beans.xml</resource>
+        <resource>src/main/resources/wsdl/person.wsdl</resource>
+    </resources>
+</archetype>

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/archetype-resources/pom.xml
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/archetype-resources/pom.xml b/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/archetype-resources/pom.xml
new file mode 100644
index 0000000..d9c6174
--- /dev/null
+++ b/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/archetype-resources/pom.xml
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <!--
+
+        Licensed to the Apache Software Foundation (ASF) under one or more
+        contributor license agreements. See the NOTICE file distributed with
+        this work for additional information regarding copyright ownership.
+        The ASF licenses this file to You under the Apache License, Version
+        2.0 (the "License"); you may not use this file except in compliance
+        with the License. You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0 Unless required by
+        applicable law or agreed to in writing, software distributed under the
+        License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+        CONDITIONS OF ANY KIND, either express or implied. See the License for
+        the specific language governing permissions and limitations under the
+        License.
+    -->
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>${groupId}</groupId>
+    <artifactId>${artifactId}</artifactId>
+    <packaging>bundle</packaging>
+    <version>${version}</version>
+    <name>Apache ServiceMix :: CXF WSDL First OSGi Bundle</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
+            <version>@{geronimo.wsmetadata.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.xml.bind</groupId>
+            <artifactId>jaxb-api</artifactId>
+            <version>@{jaxb.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-jaxws_2.1_spec</artifactId>
+            <version>1.0</version>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <defaultGoal>install</defaultGoal>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>@{maven-compiler-plugin.version}</version>
+                <configuration>
+                    <source>1.5</source>
+                    <target>1.5</target>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <version>@{maven-resources-plugin.version}</version>
+                <configuration>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.cxf</groupId>
+                <artifactId>cxf-codegen-plugin</artifactId>
+                <version>@{cxf.version}</version>
+                <executions>
+                    <execution>
+                        <phase>generate-sources</phase>
+                        <configuration>
+                            <!--
+                                Update source root to specify where generated source code should
+                                be placed
+                            -->
+                            <sourceRoot>\${basedir}/src/main/java</sourceRoot>
+                            <wsdlOptions>
+                                <wsdlOption>
+                                    <!-- Update wsdl tag with appropriate wsdl file -->
+                                    <wsdl>\${basedir}/src/main/resources/wsdl/person.wsdl</wsdl>
+                                    <extraargs>
+                                        <extraarg>-verbose</extraarg>
+                                    </extraargs>
+                                </wsdlOption>
+                            </wsdlOptions>
+                        </configuration>
+                        <goals>
+                            <goal>wsdl2java</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <version>@{maven-bundle-plugin.version}</version>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+                        <Import-Package>
+                            javax.jws,
+                            javax.wsdl,
+                            javax.xml.bind,
+                            javax.xml.bind.annotation,
+                            javax.xml.namespace,
+                            javax.xml.ws,
+                            META-INF.cxf,
+                            META-INF.cxf.osgi,
+                            org.apache.cxf.bus,
+                            org.apache.cxf.bus.spring,
+                            org.apache.cxf.bus.resource,
+                            org.apache.cxf.configuration.spring,
+                            org.apache.cxf.resource,
+                            org.apache.cxf.jaxws,
+                            org.apache.cxf.transport.http,
+                            org.springframework.beans.factory.config
+                        </Import-Package>
+                        <!-- Update Private Package tag with appropriate package name -->
+                        <Private-Package>
+                            org.apache.servicemix.samples.wsdl_first,
+                            org.apache.servicemix.samples.wsdl_first.types
+                        </Private-Package>
+                        <Require-Bundle>org.apache.cxf.bundle</Require-Bundle>
+                        <!--
+                            <DynamicImport-Package>*</DynamicImport-Package>
+                        -->
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/PersonImpl.java
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/PersonImpl.java b/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/PersonImpl.java
new file mode 100755
index 0000000..94abfe2
--- /dev/null
+++ b/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/archetype-resources/src/main/java/PersonImpl.java
@@ -0,0 +1,42 @@
+/*
+ * 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 ${packageName};
+
+import javax.jws.WebService;
+import javax.xml.ws.Holder;
+import org.apache.servicemix.samples.wsdl_first.Person;
+import org.apache.servicemix.samples.wsdl_first.UnknownPersonFault;
+import org.apache.servicemix.samples.wsdl_first.types.GetPerson;
+import org.apache.servicemix.samples.wsdl_first.types.GetPersonResponse;
+
+@WebService(serviceName = "PersonService", targetNamespace = "http://servicemix.apache.org/samples/wsdl-first", endpointInterface = "org.apache.servicemix.samples.wsdl_first.Person")
+
+public class PersonImpl implements Person {
+
+    public void getPerson(Holder<String> personId, Holder<String> ssn, Holder<String> name)
+        throws UnknownPersonFault
+    {
+        if (personId.value == null || personId.value.length() == 0) {
+            org.apache.servicemix.samples.wsdl_first.types.UnknownPersonFault fault = new org.apache.servicemix.samples.wsdl_first.types.UnknownPersonFault();
+            fault.setPersonId(personId.value);
+            throw new UnknownPersonFault(null,fault);
+        }
+        name.value = "Guillaume";
+        ssn.value = "000-000-0000";
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/archetype-resources/src/main/resources/META-INF/spring/beans.xml
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/archetype-resources/src/main/resources/META-INF/spring/beans.xml b/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/archetype-resources/src/main/resources/META-INF/spring/beans.xml
new file mode 100644
index 0000000..5f0b23b
--- /dev/null
+++ b/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/archetype-resources/src/main/resources/META-INF/spring/beans.xml
@@ -0,0 +1,54 @@
+<?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.
+-->
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:jaxws="http://cxf.apache.org/jaxws"
+    xsi:schemaLocation="
+        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+        http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
+        http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd">
+
+
+    <jaxws:endpoint id="HTTPEndpoint"
+        implementor="${packageName}.PersonImpl"
+        address="/PersonService"
+        wsdlLocation="wsdl/person.wsdl"
+        endpointName="e:soap"
+        serviceName="s:PersonService"
+        xmlns:e="http://servicemix.apache.org/samples/wsdl-first"
+        xmlns:s="http://servicemix.apache.org/samples/wsdl-first"/>
+
+<!--
+    <jaxws:client id="client"
+         serviceClass="org.apache.servicemix.samples.wsdl_first.Person"
+        endpointName="e:soap"
+        serviceName="s:PersonService"
+        xmlns:e="http://cxf.examples.servicemix.apache.org/"
+        xmlns:s="http://cxf.examples.servicemix.apache.org/"
+         wsdlLocation="wsdl/person.wsdl"
+         address="/PersonService"/>
+
+    <osgi:service id="testHelloWorld" ref="client"
+        interface="org.apache.servicemix.samples.wsdl_first.Person"/>
+-->
+
+</beans>
+

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/archetype-resources/src/main/resources/wsdl/person.wsdl
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/archetype-resources/src/main/resources/wsdl/person.wsdl b/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/archetype-resources/src/main/resources/wsdl/person.wsdl
new file mode 100644
index 0000000..707861b
--- /dev/null
+++ b/tooling/archetypes/servicemix-cxf-wsdl-first-osgi-bundle/src/main/resources/archetype-resources/src/main/resources/wsdl/person.wsdl
@@ -0,0 +1,98 @@
+<?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.
+
+-->
+
+<wsdl:definitions name="wsdl-first"
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:tns="http://servicemix.apache.org/samples/wsdl-first"
+    xmlns:typens="http://servicemix.apache.org/samples/wsdl-first/types"
+    targetNamespace="http://servicemix.apache.org/samples/wsdl-first">
+
+    <wsdl:types>
+        <xsd:schema targetNamespace="http://servicemix.apache.org/samples/wsdl-first/types"
+                    elementFormDefault="qualified">
+            <xsd:element name="GetPerson">
+              <xsd:complexType>
+                    <xsd:sequence>
+                        <xsd:element name="personId" type="xsd:string"/>
+                    </xsd:sequence>
+                </xsd:complexType>
+            </xsd:element>
+            <xsd:element name="GetPersonResponse">
+              <xsd:complexType>
+                    <xsd:sequence>
+                        <xsd:element name="personId" type="xsd:string"/>
+                        <xsd:element name="ssn" type="xsd:string"/>
+                        <xsd:element name="name" type="xsd:string"/>
+                    </xsd:sequence>
+                </xsd:complexType>
+            </xsd:element>
+            <xsd:element name="UnknownPersonFault">
+              <xsd:complexType>
+                    <xsd:sequence>
+                        <xsd:element name="personId" type="xsd:string"/>
+                    </xsd:sequence>
+                </xsd:complexType>
+            </xsd:element>
+        </xsd:schema>
+  </wsdl:types>
+
+    <wsdl:message name="GetPersonRequest">
+        <wsdl:part name="payload" element="typens:GetPerson"/>
+    </wsdl:message>
+    <wsdl:message name="GetPersonResponse">
+        <wsdl:part name="payload" element="typens:GetPersonResponse"/>
+    </wsdl:message>
+    <wsdl:message name="UnknownPersonFault">
+        <wsdl:part name="payload" element="typens:UnknownPersonFault"/>
+    </wsdl:message>
+
+    <wsdl:portType name="Person">
+        <wsdl:operation name="GetPerson">
+            <wsdl:input message="tns:GetPersonRequest"/>
+            <wsdl:output message="tns:GetPersonResponse"/>
+            <wsdl:fault name="UnknownPerson" message="tns:UnknownPersonFault"/>
+        </wsdl:operation>
+    </wsdl:portType>
+
+    <wsdl:binding name="PersonSOAPBinding" type="tns:Person">
+        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+        <wsdl:operation name="GetPerson">
+            <wsdl:input>
+                <soap:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal" />
+            </wsdl:output>
+            <wsdl:fault name="UnknownPerson">
+                <soap:fault use="literal" name="UnknownPerson" />
+            </wsdl:fault>
+       </wsdl:operation>
+   </wsdl:binding>
+
+    <wsdl:service name="PersonService">
+        <wsdl:port binding="tns:PersonSOAPBinding" name="soap">
+           <soap:address location="http://localhost:8080/cxf/PersonService" />
+       </wsdl:port>
+   </wsdl:service>
+
+</wsdl:definitions>

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-osgi-bundle/pom.xml
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-osgi-bundle/pom.xml b/tooling/archetypes/servicemix-osgi-bundle/pom.xml
new file mode 100644
index 0000000..1544494
--- /dev/null
+++ b/tooling/archetypes/servicemix-osgi-bundle/pom.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <!--
+
+        Licensed to the Apache Software Foundation (ASF) under one or more
+        contributor license agreements.  See the NOTICE file distributed with
+        this work for additional information regarding copyright ownership.
+        The ASF licenses this file to You under the Apache License, Version 2.0
+        (the "License"); you may not use this file except in compliance with
+        the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+        Unless required by applicable law or agreed to in writing, software
+        distributed under the License is distributed on an "AS IS" BASIS,
+        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+        See the License for the specific language governing permissions and
+        limitations under the License.
+    -->
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <artifactId>archetypes</artifactId>
+        <groupId>org.apache.servicemix.tooling</groupId>
+        <version>5.0.2-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.servicemix.tooling.archetypes</groupId>
+    <artifactId>servicemix-osgi-bundle</artifactId>
+    <packaging>maven-archetype</packaging>
+    <name>Apache ServiceMix :: Tooling :: Archetypes :: OSGi Bundle</name>
+
+    <build>
+        <extensions>
+            <extension>
+                <groupId>org.apache.maven.archetype</groupId>
+                <artifactId>archetype-packaging</artifactId>
+                <version>${maven-archetype-packaging-version}</version>
+            </extension>
+        </extensions>
+    </build>
+
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-osgi-bundle/src/main/resources/META-INF/maven/archetype.xml
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-osgi-bundle/src/main/resources/META-INF/maven/archetype.xml b/tooling/archetypes/servicemix-osgi-bundle/src/main/resources/META-INF/maven/archetype.xml
new file mode 100644
index 0000000..43dec19
--- /dev/null
+++ b/tooling/archetypes/servicemix-osgi-bundle/src/main/resources/META-INF/maven/archetype.xml
@@ -0,0 +1,20 @@
+<?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.
+    -->
+<archetype>
+    <id>servicemix-osgi-bundle</id>
+</archetype>    

http://git-wip-us.apache.org/repos/asf/servicemix/blob/451da373/tooling/archetypes/servicemix-osgi-bundle/src/main/resources/archetype-resources/pom.xml
----------------------------------------------------------------------
diff --git a/tooling/archetypes/servicemix-osgi-bundle/src/main/resources/archetype-resources/pom.xml b/tooling/archetypes/servicemix-osgi-bundle/src/main/resources/archetype-resources/pom.xml
new file mode 100644
index 0000000..b5711bc
--- /dev/null
+++ b/tooling/archetypes/servicemix-osgi-bundle/src/main/resources/archetype-resources/pom.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <!-- Generated by Apache ServiceMix Archetype -->
+    
+    <modelVersion>4.0.0</modelVersion>
+    
+    <groupId>${groupId}</groupId>
+    <artifactId>${artifactId}</artifactId>
+    <packaging>bundle</packaging>
+    <version>${version}</version>
+    <name>Apache ServiceMix :: Wrapper OSGi Bundle</name>
+    
+    <properties>
+        <pkgGroupId>put your wrapped artifact groupId here</pkgGroupId>
+        <pkgArtifactId>put your wrapped artifact artifactId here</pkgArtifactId>
+        <pkgVersion>put your wrapped artifact version here</pkgVersion>
+        <servicemix.osgi.export.pkg>
+            put the wrapped artifact export package here
+        </servicemix.osgi.export.pkg>
+        <servicemix.osgi.import.pkg>
+            put the wrapped artifact import packages here,
+            *
+        </servicemix.osgi.import.pkg>
+        <servicemix.osgi.private.pkg />
+        <servicemix.osgi.dynamicimport.pkg />
+        <servicemix.osgi.embed.dependency />
+        <servicemix.osgi.fragment.host />
+        <servicemix.osgi.native />
+        <servicemix.osgi.provide.capability />
+        <servicemix.osgi.require.capability />
+        <servicemix.spi.provider />
+        <servicemix.spi.consumer />
+        <servicemix.osgi.failok>false</servicemix.osgi.failok>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>${pkgGroupId}</groupId>
+            <artifactId>${pkgArtifactId}</artifactId>
+            <version>${pkgVersion}</version>
+            <optional>true</optional>
+        </dependency>
+    </dependencies>
+    
+    <build>
+        <defaultGoal>install</defaultGoal>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>@{maven-compiler-plugin.version}</version>
+                <configuration>
+                    <source>1.5</source>
+                    <target>1.5</target>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <version>@{maven-bundle-plugin.version}</version>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+                        <Export-Package>${servicemix.osgi.export.pkg}*;version=${pkgVersion};-split-package:=merge-first</Export-Package>
+                        <Import-Package>${servicemix.osgi.import.pkg}*</Import-Package>
+                        <Private-Package>${servicemix.osgi.private.pkg}</Private-Package>
+                        <DynamicImport-Package>${servicemix.osgi.dynamicimport.pkg}</DynamicImport-Package>
+                        <Embed-Dependency>${servicemix.osgi.embed.dependency}</Embed-Dependency>
+                        <Bundle-NativeCode>${servicemix.osgi.native}</Bundle-NativeCode>
+                        <Fragment-Host>${servicemix.osgi.fragment.host}</Fragment-Host>
+                        <Provide-Capability>${servicemix.osgi.provide.capability}</Provide-Capability>
+                        <Require-Capability>${servicemix.osgi.require.capability}</Require-Capability>
+                        <SPI-Provider>${servicemix.spi.provider}</SPI-Provider>
+                        <SPI-Consumer>${servicemix.spi.consumer}</SPI-Consumer>
+                        <_failok>${servicemix.osgi.failok}</_failok>
+                        <_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy>
+                        <_removeheaders>Ignore-Package,Include-Resource,Private-Package,Embed-Dependency</_removeheaders>
+                    </instructions>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-shade-plugin</artifactId>
+                <version>@{maven-shade-plugin.version}</version>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>shade</goal>
+                        </goals>
+                        <configuration>
+                            <artifactSet>
+                                <includes>
+                                    <include>${pkgGroupId}:${pkgArtifactId}</include>
+                                </includes>
+                            </artifactSet>
+                            <filters>
+                                <filter>
+                                    <artifact>${pkgGroupId}:${pkgArtifactId}</artifact>
+                                    <excludes>
+                                        <exclude>**</exclude>
+                                    </excludes>
+                                </filter>
+                            </filters>
+                            <promoteTransitiveDependencies>true</promoteTransitiveDependencies>
+                            <createDependencyReducedPom>true</createDependencyReducedPom>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>

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


Mime
View raw message