Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Code Block
xml
xml
<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">
  ...    <pluginRepositories>
    <pluginRepository>
      <id>apache.snapshots</id>
      <name>Maven Central Plugins Development Repository</name>
      <url>http://cvs.apache.org/maven-snapshot-repository</url>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <releases>
         <enabled>false</enabled>
      </releases>
    </pluginRepository>
  </pluginRepositories>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.servicemix.tooling</groupId>
        <artifactId>jbi-maven-plugin</artifactId>
	<version>1.0-incubating-SNAPSHOT</version>
        <extensions>true</extensions>
      </plugin>
    </plugins>
  </build>
</project>

The content of <version> may have to be changed from 1.0-incubating-SNAPSHOT to your used version (e.g. 3.0-incubating).

Tip
titleServiceMix Archetypes

Instead of creating the aforementioned structures manually, you can also use Maven archetypes that create a Maven project for you. ServiceMix provides archetypes for many different purposes, such as for creation of JBI components, service assemblies or service units for particular ServiceMix components. You can take a look at the current list of available archetypes at http://people.apache.org/maven-snapshot-repository/org/apache/servicemix/tooling/ or in the archetypes directory in a ServiceMix source distribution.

You can utilize an archetype by issueing the following command:

Code Block

mvn archetype:create \
    -DarchetypeGroupId=org.apache.servicemix.tooling \
    -DarchetypeArtifactId=servicemix-archetype-name \
    -DarchetypeVersion=SM-ARCHETYPE-VERSION \
    -DgroupId=org.apache.servicemix.samples.embedded \
    -DartifactId=servicemix-embedded-example

You need to replace servicemix-archetype-name by the name of the archetype you want to utilize and SM-ARCHETYPE-VERSION by the ServiceMix version you are using. (It goes without saying that you should also replace the groupId and artifactId parameters.)

Project Types 

Once this plugin has been added to your POM you can start using the capabilities.  In order to understand all the things you can do we have broken downs its functionality by the type of artifact you wish to create.  JBI covers the creation of four different types of artifact these are:

...

If you have created you assemblies, service units, components and shared libraries as Maven projects (which all ServiceMix components are) you can use this goal. In essence the plugin will walk the dependencies starting in the current project then deploy each of the dependencies in reverse order. This can be very useful if you want to quickly get up and running with a new Service Assembly against an installed instance of Apache ServiceMix.

Info
titleUseful InformationDeploying Dependencies

If you are working with the jbi:projectDeploy you should not note that you may want to disable dependency deployment, if you are deploying to a server which has other components sharing these dependencies they you can get problems while trying to undeploy and redeploy them. If this is the case you can add the parameter deployDependencies at set it to false in either you service assembly or component pom.xml.Look for the plugin section for the jbi-maven-plugin and under configuration add a new element called deployDependencies with a value of false, this is usually in your service assembly's pom.xml or your component's. This setting will stop the plugin for undeploying and redeploying dependencies.

Starting from 3.0.1, the following options are available for customizing either from the pom.xml or from the command line:

Info
titleOptions

Name

Description

Default value

deployDependencies

Deploy all dependencies. If set to false, the plugin will only deploy the current artifact.

true

deferExceptions

This option instructs the plugin to use ServiceMix hot deployer feature, so that you can update a shared-lbrary or component without having to shutdown all dependent components or assemblies. If this property is set to false, exceptions may occur if some of the deployed artifacts are already used by other previously deployed artifacts.

true

forceUpdate

If set to true, all artifacts will be deployed, even those already deployed. Using default value will only deploy missing dependencies

false

deployChildren

When using from the command line in a reactor build, the plugin will scan all modules for jbi artifacts to deploy.

true

To override a default value from the command line, use the following syntax example:

No Format

mvn jbi:projectDeploy -DforceUpdate=true

mvn jbi:servicemix

If you quickly want to get up and running with Apache ServiceMix the best way is to use this goal.  As an extension of the deployProject goal is works in much the same way,  the difference is that this goal downloads and starts a copy of Apache ServiceMix within Maven so you don't need to have a version installed,  this can be very useful if you are working on trying out functionality and want to simply test your projects. 

...

Full Plugin Information

Include Page
SM:Full DescriptionSM:
Full Description

Maven 1.x Support

...