You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

On this page, we are going to create a service assembly .

Using a Maven archetype to create the service assembly

ServiceMix provides Maven archetype to help you create your service assembly.(SA)

From SMX_HOME/bin directory, we run this command to create a service unit project named :

in MS Windows:

 
smx-arch sa

in GNU\Linux:

 
./smx-arch sa

Maven executes the archetype and reports BUILD SUCCESSFUL when it's done. (For more information run smx-arch help)

c:\java\apache-servicemix-3.2.1\bin>smx-arch sa
[INFO] Scanning for projects...
...
[INFO] OldArchetype created in dir: c:\java\apache-servicemix-3.2.1\bin\my-sa
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8 seconds
[INFO] Finished at: Wed Jul 30 11:08:06 CEST 2008
[INFO] Final Memory: 8M/14M
[INFO] ------------------------------------------------------------------------

A new service assembly project is generated in the my-sa directory.

Add this SA to directory of our project

We copy directory my-sa to directory of our project.(where is parent's pom.xml)
Then we add this to parent's pom.xml to element project.

 
  <modules>
     <module>my-sa</module>
  </modules>

Finally, parent's pom.xml looks like this:

 
<?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">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.servicemix.tutorial</groupId>
  <artifactId>parent</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>ServiceMix  :: CXF WSDL Tutorial</name>
  <url>http://servicemix.org</url>
  <modules>
      <module>my-cxf-se-su</module>
      <module>my-cxf-bc-su</module>
     <module>my-sa</module>
  </modules>
</project>

Configuring pom.xml

Changing the project name

In order to make the build output a little bit more comprehensible, we first change the project name in the generated pom.xml file.

 
<project>
  ...
  <name>CXF WSDL Tutorial :: CXF SA</name>
  ...
</project>

Adding parent's element to generated pom.xml

We must specify parent of this project. So, we add this to generated pom.xml.

 
 <parent>
    <artifactId>parent</artifactId>
    <groupId>org.apache.servicemix.tutorial</groupId>
    <version>1.0-SNAPSHOT</version>
  </parent>

Adding the SU to the SA

We want to add the service unit we created before to the service assembly. The Maven tooling will do this automatically if we add the correct dependency to our SA's pom.xml. We just use the groupId, artifactId and version we find in our service unit's pom.xml here:

 
<project>
  ...
  <dependencies>
  <dependency>
      <groupId>com.mycompany</groupId>
      <artifactId>my-cxf-se-su</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>com.mycompany</groupId>
      <artifactId>my-cxf-bc-su</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
 </dependencies>
  ...
</project>

Running Maven to build everything

Now, run mvn install from the parent directory to get this output:

 

Now, we are ready to deploy our service assembly.

Things to remember

  • Add SU to your SA by adding dependencies to your pom.xml



  • No labels