| = Camel Maven Plugin |
| |
| The |
| https://github.com/apache/camel/tree/master/tooling/maven/camel-maven-plugin[Camel |
| Maven Plugin] allows you to run your |
| xref:{eip-vc}:eips:enterprise-integration-patterns.adoc[Enterprise Integration |
| Patterns] using xref:spring.adoc[Spring] for |
| xref:dependency-injection.adoc[Dependency Injection] inside Maven. |
| |
| == Goals Supported |
| |
| [width="100%",cols="34%,33%,33%",options="header",] |
| |======================================================================= |
| |Documentation |Goal |Description |
| |xref:camel-run-maven-goal.adoc[camel:run] |camel:run |Boots up Camel in |
| the context of a separately initiated Java thread using the |
| xref:spring.adoc[Spring] configuration at *META-INF/spring/*.xml* and |
| runs your routing rules. From Camel 2.10 onwards also OSGi blueprint is |
| supported to load from *OSGI-INF/blueprint/*.xml* (requires to configure |
| the plugin to use blueprint). |
| |
| |======================================================================= |
| |
| == Adding the plugin to your pom.xml |
| |
| Add the following in your <build><plugins> section |
| |
| [NOTE] |
| ==== |
| |
| |
| You may override the default Spring application context file uri |
| *META-INF/spring/*.xml* by using the applicationContextUri property in |
| the camel-maven-plugin configuration. Paths may be split using a |
| semi-colon (;). |
| |
| ==== |
| |
| [source,xml] |
| ---- |
| <plugin> |
| <groupId>org.apache.camel</groupId> |
| <artifactId>camel-maven-plugin</artifactId> |
| <configuration> |
| <applicationContextUri>META-INF/spring/*.xml;YOUR_FILE_NAME_IN_THE_CLASS_PATH.xml</applicationContextUri> |
| </configuration> |
| </plugin> |
| ---- |
| |
| You can also specify what Main class to use when running the plugin. By |
| default this is `org.apache.camel.spring.Main`. |
| |
| [source,xml] |
| ---- |
| <plugin> |
| <groupId>org.apache.camel</groupId> |
| <artifactId>camel-maven-plugin</artifactId> |
| <!-- optional, default value: org.apache.camel.spring.Main --> |
| <configuration> |
| <mainClass>mypackage.boot.camel.CamelStartup</mainClass> |
| </configuration> |
| </plugin> |
| ---- |
| |
| == File based spring configuration files |
| |
| From Camel 1.4 onwards loading Spring context files via a file location |
| is also supported. You configure this with the |
| *fileApplicationContextUri* option. Paths may be split using a |
| semi-colon (;). This sort of file location is useful for web application |
| projects that store spring configuration files in WEB-INF. It can also |
| be used to replace configuration that requires an OSGi container with an |
| equivalent non-OSGi configuration. |
| |
| [source,xml] |
| ---- |
| <plugin> |
| <groupId>org.apache.camel</groupId> |
| <artifactId>camel-maven-plugin</artifactId> |
| <configuration> |
| <fileApplicationContextUri> |
| src/main/webapp/WEB-INF/camel*.xml; |
| src/test/spring/test-context.xml |
| </fileApplicationContextUri> |
| </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* |
| |
| [source,syntaxhighlighter-pre] |
| ---- |
| 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: |
| |
| [source,syntaxhighlighter-pre] |
| ---- |
| 670 [org.apache.camel.spring.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: [] |
| ---- |
| |