LibraryLink ToToggle FramesPrintFeedback

A service assembly project

Fuse ESB requires that all service units are bundled into a service assembly before they can be deployed to a container. The Fuse ESB Maven plug-in collects all of the service units to be bundled and the metadata necessary for packaging. It will then build a service assembly containing the service units.

Fuse ESB provides a Maven artifact for seeding a service assembly project. You can seed a project with the smx-arch command. As shown in Example 8.8, the smx-arch command takes two arguments: the groupId value and the artifactId values, which correspond to the project's group ID and artifact ID.


The double quotes(") are required when using the -DgroupId argument and the -DartifactId argument.

A service assembly project typically only contains the POM file used by Maven.

T configure the Maven plug-in to package the results of the project build as a service assembly, change the value of the project's packaging element to jbi-service-assembly, as shown in Example 8.9.

The Maven plug-in must know what service units are being bundled into the service assembly. This is done by specifying the service units as dependencies, using the standard Maven dependencies element. Add a dependency child element for each service unit. Example 8.10 shows the configuration for a service assembly that bundles two service units.

Example 8.11 shows a POM file for a project that is building a service assembly.

Example 8.11. POM for a service assembly project

<project xmlns=""


    <parent> 1

  <name>CXF WSDL Fisrt Demo ::  Service Assemby</name>
  <packaging>jbi-service-assembly</packaging> 2

  <dependencies> 3

      <plugin> 4

The POM in Example 8.11 does the following:


Specifies that it is a part of the top-level project shown in Example 8.2


Specifies that this project builds a service assembly


Specifies the service units being bundled by the service assembly


Specifies to use the Fuse ESB Maven plug-in