You should refer to the up to date User's Guide.
The new page is available here

XML Configuration

ServiceMix uses XML configuration files. From 2.0 of ServiceMix onwards we use the XBean library to do the XML configuration; which allows you to use regular Spring configuration or our custom XSD based XML configuration.

For a reference guide and to see the XSD see the Xml schemas

Key Attributes

ServiceMix has a number of parameters that you can set to change it's runtime behaviour on either the JBIContainer or the derived SpringJBIContainer .
These are as follows:

Key Attributes
Name type Description
name String name of the container - needs to be unique if running in a cluster The default is defaultJBI
rootDir String the path to the directory structure used by ServiceMix - the default is <current directory>/wdir
flowName String one of seda, st, jms or jca - see NMR Flows. The jms and jca flows can also take an optional jmsURL parameter to explicitly reference an activemq transport e.g. flowName=jms?jmsURL=tcp://localhost:61616
useMBeanServer boolean if true, ServiceMix will try and find an MBeanServer from the MBeanServerFactory if one is not supplied
createMBeanServer boolean if true, ServiceMix will create it's own MBeanServer if one is not supplied to the container or found from an MBeanServerFactory
installationDirPath String the path to the installation directory that ServiceMix can optionally monitor for new component archives
monitorInstallationDirectory boolean if true, ServiceMix will monitor the installation directory for new component archives to install
deploymentDirPath String the path to the deployment directory that ServiceMix can optionally monitor for new service assembilies
monitorDeploymentDirectory boolean if true, ServiceMix will monitor the deployment directory for new service assembilies to deploy
dumpStats boolean if true, ServiceMix will dump message throughput statistics to file for individual components
statsInterval int interval (in seconds) between collection of statistics for message throughput
rmiPort int the port used for the rmi registry (and thus, the JMX connector), defaults to (1099)


Root Directory

ServiceMix uses a directory structure on local disk for unpacking archives, storing running state and statistics etc. However, if you are running only POJO based Components, then typically the directory structure will not be needed or created.

Under the root directory, there are specific sub-directories, named after the JBIContainer name. Hence, if you are running multiple instances of ServiceMix on the same machine it is advisable to give each instance a unique name.

If the installation directory is present, and monitorInstallationDirectory is enabled, then the directory will be polled for new archives of Components or Service Assembilies to install. The installation directory can be configured to be in a different location by setting the attribute installationDirPath on the JBIContainer.
The default directory layout is shown below:

ServiceMix Directory Layout

Components

Working with components

Another simple way to get started with ServiceMix is to try out the Spring support. Then you can use ServiceMix inside your application right way, using Spring to wire the components together.

To interact with JBI components, you should try out the Client API.

Alternatively you might want to try using our Groovy support to script ServiceMix really easily - or use Scripting to use any other scripting engine to script JBI messages and services.

Developing components

To developing components you might want to check out our Component helper classes to take away some of the plumbing required to write JBI components - plus do take a look at the POJO support for how to drop simple POJOs into ServiceMix.

Deploying new JBI deployment units

JBI defines a collection of different JBI deployment units (components, service units etc). ServiceMix supports these and allows hot deployment of these at runtime. You can use the Ant Tasks for these along with the Management features.

Another option is to drop component archives into the $SERVICEMIX_HOME/install directory and service assembilies into the $SERVICEMIX_HOME/deploy directory for them to be auto-deployed.

For example configurations - see Examples where the BPEL example uses auto-deployment.