Apache ServiceMix provides a set of Maven archetypes for many different purposes, such as for creation of JBI components, service assemblies or service units for particular ServiceMix components.

Usage

Standard Maven syntax

You can utilize an archetype by issueing the following command:

mvn archetype:create \
    -DarchetypeGroupId=org.apache.servicemix.tooling \
    -DarchetypeArtifactId=servicemix-archetype-name \
    -DarchetypeVersion=archetype-version \
    -DgroupId=org.apache.servicemix.samples.embedded \
    -DartifactId=servicemix-embedded-example \
    -Dversion=1.0-SNAPSHOT

You need to replace servicemix-archetype-name by the name of the archetype you want to utilize.

This will use the latest released version of the archetype available in the repository. Optionally, you can also specify a specific version to use with the -DarchetypeVersion=VERSION parameter.

If you are using an *-incubating version of ServiceMix (e.g. 3.1.1-incubating), you have to either:

smx-arch

ServiceMix also ships with smx-arch (or smx-arch.bat for Windows), available in the bin directory of the distribution. It provides a more convenient way for using the archetypes:

Usage: smx-arch command [su-type] [args]
  commands:
    sl                Creates a new Shared Library"  
    se                Creates a new Service Engine"
    bc                Creates a new Binding Component"
    sa                Creates a new Service Assembly"
    su                Creates a generic Service Unit"
    su [type]         Creates a SU of the specified type"
  SU types:
                      http-consumer, http-provider,"
                      jms-consumer, jms-provider,"
                      ftp-poller, ftp-sender,"
                      jsr181-annotated, jsr181-wsdl-first,"
                      saxon-xquery, saxon-xslt,"
                      eip, lwcontainer, bean, ode"
  Optional arguments:
    -DarchetypeVersion=x.y.z-classifier (if not specified, the latest released version will be used
    -DgroupId=xxxx"
    -DartifactId=xxxx"

List of archetypes

Here is a list of the ServiceMix archetypes that are available. You can also take a look at the current list of available archetypes at https://repository.apache.org/content/groups/public/ or in the archetypes directory in a ServiceMix source distribution.

Basic JBI artifact archetypes

There is a specific archetype available for generating every type of JBI artifact. They are named servicemix-binding-component, servicemix-service-assembly, servicemix-service-engine, servicemix-service-unit and servicemix-shared-library.

Service units

Most of the ServiceMix archetypes can be used to create service unit projects. The list above already mentions servicemix-service-unit, which creates a generic SU project. You still have to add a <dependency/> to the pom.xml yourself for the JBI component you want to target.

These other archetypes already generate a SU targeted at a specific component. They also provide an xbean.xml file and sometimes some additional sample files.

archetype

JBI component

contents of xbean.xml

remarks

servicemix-bean-service-unit

servicemix-bean

a bean endpoint definition

also generates a sample class named MyBean

servicemix-camel-service-unit

servicemix-camel

 

deploys a set of Camel EIP routes
(version 3.2 or above only)

servicemix-cxf-bc-consumer-service-unit

servicemix-cxf-bc

<cxfbc:consumer/> endpoint

 

servicemix-cxf-bc-provider-service-unit

servicemix-cxf-bc

<cxfbc:provider/> endpoint

 

servicemix-cxf-se-service-unit

[ servicemix-cxf-se]

<cxfse:endpoint/>

 

servicemix-drools-service-unit

servicemix-drools

a drools endpoint

also generates a sample Drools rule file named router.drl
(version 3.2 or above only)

servicemix-eip-service-unit

servicemix-eip

an example for every EIP supported

 

servicemix-exec-service-unit

servicemix-exec

<exec:endpoint/>

Provides a service unit for an exec endpoint executing a command.

servicemix-file-poller-service-unit

servicemix-file

<

file:poller/

> endpoint

 

servicemix-file-sender-service-unit

servicemix-file

<

file:sender/

> endpoint

 

servicemix-ftp-poller-service-unit

servicemix-ftp

<ftp:poller/> endpoint

 

servicemix-ftp-sender-service-unit

servicemix-ftp

<ftp:sender/> endpoint

 

servicemix-http-consumer-service-unit

servicemix-http

<http:consumer/> endpoint

 

servicemix-http-soap-consumer-service-unit

servicemix-http

<http:soap-consumer/> endpoint

 

servicemix-http-provider-service-unit

servicemix-http

<http:provider/> endpoint

 

servicemix-http-soap-provider-service-unit

servicemix-http

<http:soap-provider/> endpoint

 

servicemix-jms-consumer-service-unit

servicemix-jms

<jms:consumer/> endpoint

 

servicemix-jms-soap-consumer-service-unit

servicemix-jms

<jms:soap-consumer/> endpoint

 

servicemix-jms-jca-consumer-service-unit

servicemix-jms

<jms:jca-consumer/> endpoint

 

servicemix-jms-provider-service-unit

servicemix-jms

<jms:provider/> endpoint

 

servicemix-jms-soap-provider-service-unit

servicemix-jms

<jms:soap-provider/> endpoint

 

servicemix-jsr181-annotated-service-unit

servicemix-jsr181

a JSR-181 annotated POJO endpoint

also generates a sample class named ExampleService

servicemix-jsr181-wsdl-first-service-unit

servicemix-jsr181

a JSR-181 WSDL based endpoint

also generates a sample WSDL file

servicemix-lwcontainer-service-unit

servicemix-lwcontainer

/

the servicemix.xml provided defines a sample lightweight component

servicemix-mail-poller-service-unit

servicemix-mail

<mail:poller/> endpoint

 

servicemix-mail-sender-service-unit

servicemix-mail

<mail:sender/> endpoint

 

servicemix-ode-service-unit

Apache ODE BPEL engine

/

creates a sample BPEL, WSDL and deploy.xml

servicemix-osworkflow-service-unit

servicemix-osworkflow

 

creates a sample workflow

servicemix-quartz-cron-trigger-service-unit

servicemix-quartz

<quartz:endpoint/> endpoint with cron trigger definition

 

servicemix-quartz-simple-trigger-service-unit

servicemix-quartz

<quartz:endpoint/> endpoint with simple trigger definition

 

servicemix-quartz-custom-marshaler-service-unit

servicemix-quartz

<quartz:endpoint/> with a custom marshaler

 

servicemix-saxon-xquery-service-unit

servicemix-saxon

examples of all supported (resource, inline and dynamic) ways to XQuery

also generates an example of an XQuery file

servicemix-saxon-xslt-service-unit

servicemix-saxon

examples of static and dynamic XSL-T usage

provides an example of an XSL-T file

servicemix-script-service-unit

servicemix-script

<script:exchangeProcessor/> with groovy script

 

servicemix-scripting-service-unit

servicemix-scripting

<scripting:endpoint/> with groovy, jruby and javascript scripts

 

servicemix-smpp-consumer-service-unit

servicemix-smpp

<smpp:consumer/> endpoint

 

servicemix-smpp-provider-service-unit

servicemix-smpp

<smpp:provider/> endpoint

 

servicemix-snmp-poller-service-unit

servicemix-snmp

<snmp:poller/> endpoint

 

servicemix-snmp-trap-consumer-service-unit

servicemix-snmp

<snmp:poller/> endpoint

 

servicemix-validation-service-unit

servicemix-validation

<validation:endpoint/> endpoint

 

servicemix-vfs-poller-service-unit

servicemix-vfs

<vfs:poller/> endpoint

 

servicemix-vfs-sender-service-unit

servicemix-vfs

<vfs:sender/> endpoint

 

  • No labels