Since we're on a major migration process of this website, some component documents here are out of sync right now. In the meantime you may want to look at the early version of the new website
https://camel.apache.org/staging/
We would very much like to receive any feedback on the new site, please join the discussion on the Camel user mailing list.

Guice Maven Plugin

The Guice Maven Plugin allows you to run your Enterprise Integration Patterns using Guice for Dependency Injection inside Maven along with being able to support Visualisation along with integration of the Visualisation diagrams into the standard maven reports for your project.

Goals Supported

Documentation

Reference

Description

guice:run

guice:run

Boots up Camel in the context of a separately initiated Java thread using the Guice configuration in the jndi.properties file on the classpath and runs your routing rules

guice:embedded

guice:embedded

Boots up Camel using the Guice configuration at jndi.properties on the classpath and runs your routing rules

guice:dot

guice:dot

Generates DOT files and then HTML, PNG, SVG files for your EIP routing rules with integration into Maven Reports

Adding the plugin to your pom.xml

Add the following in your <build><plugins> section

<plugin>
  <groupId>org.apache.camel</groupId>
  <artifactId>guice-maven-plugin</artifactId>
</plugin>

You can also specify what Main class to use when running the plugin. By default this is org.apache.camel.guice.Main.

<plugin>
  <groupId>org.apache.camel</groupId>
  <artifactId>guice-maven-plugin</artifactId>
  <!-- optional, default value: org.apache.camel.guice.Main -->
  <configuration>
    <mainClass>mypackage.boot.camel.CamelStartup</mainClass>
  </configuration>
</plugin>

Making use of an optional JNDI properties file

Available as of Camel 2.13.0

Optionally if the name of your JNDI properties file is something else other than the default jndi.properties or if it's not on the default classpath, then you can make use of the jndiProperties option as shown below:

<plugin>
  <groupId>org.apache.camel</groupId>
  <artifactId>guice-maven-plugin</artifactId>
  <configuration>
    <jndiProperties>/path/to/my/jndi/properties/my-guice-jndi.properties</jndiProperties>
  </configuration>
</plugin>

Classpath

The plugin will construct a classpath of any Maven dependency with scope "compile". The classpath is output as an INFO log statement upon startup.

Route Information

Information about the generated routes is available through the GraphViz report, and also through the log statements generated by the run goal. If you would like to see this information then add a log4j (or other commons-logging implementation) config file with the following levels.

src/main/resources/log4.properties
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

log4j.logger.org.apache.camel.impl.DefaultCamelContext=DEBUG, stdout
log4j.additivity.org.apache.camel.impl.DefaultCamelContext=false

This should produce a log statement similar to:

670  [org.apache.camel.guice.Main.main()] DEBUG org.apache.camel.impl.DefaultCamelContext  
  - Adding routes from: Routes: [Route[ [From[jms:queue:queueA]] -> [To[jms:queue:queueB], To[jms:queue:queueC]]]] routes: []

Integration into Maven Reports

If you add the guice-maven-plugin to your <reporting> section of your pom you will automatically get the Visualisation reporting generated for your project as part of the regular maven site generation.

For example add the following into your pom

<project>
  ...
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.camel</groupId>
        <artifactId>guice-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </reporting>  
</project>

Then when you run

mvn site

Your context will be booted up via the jndi.properties files, the DOT file generated and a nice HTML report created.

GraphViz DOT required

Note to get the nice HTML, PNG and SVG outputs from the DOT files you will need to install the GraphViz DOT executable and add it to your PATH so that the plugin can invoke DOT to generate the PNG/SVG files.

For more details see the guice:dot.

© 2004-2015 The Apache Software Foundation.
Apache Camel, Camel, Apache, the Apache feather logo, and the Apache Camel project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
Graphic Design By Hiram