Now, we are going to create our first SU module in our project.

Using a Maven archetype to create the service unit project

ServiceMix provides several Maven archetypes to help you create your projects more rapidly and reliably. We start off by using the servicemix-service-unit archetype, which is used for creating a service unit project. The groupId for this archetype is org.apache.servicemix.tooling.

From our tutorial project directory, where we already have the parent pom.xml, we run this command to create a service unit project named tutorial-file-su:

mvn archetype:create -DarchetypeArtifactId=servicemix-service-unit -DarchetypeGroupId=org.apache.servicemix.tooling -DartifactId=tutorial-file-su

Maven executes the archetype and reports BUILD SUCCESSFUL when it's done.

[INFO] Scanning for projects...
...
[INFO] ----------------------------------------------------------------------------
[INFO] Building Tutorial
[INFO]    task-segment: [archetype:create] (aggregator-style)
[INFO] ----------------------------------------------------------------------------
...
[INFO] Archetype created in dir: /home/gert/projects/tutorial/tutorial-file-su
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6 seconds
[INFO] Finished at: Sun Jul 29 14:24:31 CEST 2007
[INFO] Final Memory: 6M/16M
[INFO] ------------------------------------------------------------------------

What is being generated?

First of all, the archetype creates the project directory, containing:

  • a pom.xml file for building the service unit project
  • a directory src/main/resources, in which we will create our xbean.xml file for configuring the service unit

Because we started Maven's archetype:create from the directory containing our parent pom.xml, Maven has also:

  • used the groupId from the parent pom.xml for our new service unit
  • added a module to the parent pom.xml
    <modules>
      <module>tutorial-file-su</module>
    </modules>
    

Now, we will have to configure the service unit to provide the services we want.

Further reading

  • Maven archetypes contains a list of Maven archetypes available with ServiceMix