Apache Camel建立基于消息的应用
该源码展示:
基于Maven开始使用Apache Camel
使用CamelRunner提升路由。
使用camel建立的基于消息应用
基于Maven开始使用Apache Camel
这个 camel-demo可以作为你的项目模板,你只需要重命名的Java包,并重新命名POM的组和artifactID以符合您的需要。
该项目打开如下:
camel-demo
+- bin
+- config
+- data
+- src
+- pom.xml
+- README.txt
Maven的配置:
xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd'>
4.0.0
deng.cameldemo
camel-demo
1.0.0-SNAPSHOT
jar
UTF-8
1.6.6
2.10.1
maven-compiler-plugin
2.3.2
1.6
1.6
maven-assembly-plugin
2.3
project
jar-with-dependencies
make-assembly
package
single
junit
junit-dep
4.10
test
org.hamcrest
hamcrest-library
1.2.1
test
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
runtime
true
commons-lang
commons-lang
2.6
commons-io
commons-io
2.0.1
org.apache.camel
camel-core
${camel.version}
org.apache.camel
camel-spring
${camel.version}
org.apache.camel
camel-groovy
${camel.version}
org.apache.camel
camel-jackson
${camel.version}
org.apache.camel
camel-mina
${camel.version}
此的pom.xml的声明了一个基于Java的应用程序,它会产生jar包。它需要最少JDK6或更高版本。除了典型的JUnit和hamcrest的单元测试,还添加了SLF4J进行记录。加入的Apache的commons-lang/io的项目。
maven-assembly-plugin只有用于这个Demo演示目的,您可以更改或删除以便符合您自己的项目需要。
对于Camel依赖,除了camel-core,还有:
camel-spring – 将Camel的路由作为XML配置. 见案例的 camel-demo/config目录.
camel-jackson – 以JSON格式产生消息。
camel-mina – 通过TCP Socket跨网络发送数据。
camel-groovy – [可选] 增加动态脚本到路由中,适合调试和POC.
进入该项目,运行 mvn compile 检查是否有错误。
使用CamelRunner提升路由
下面使用路由来表达业务逻辑,以src/main/java/deng/cameldemo/HelloRoute.java为案例:
package deng.cameldemo;
import org.apache.camel.builder.RouteBuilder;
public class HelloRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
from('timer://helloTimer?period=3000').
to('log:' + getClass().getName());
}
}
为了检查其如何运行,需要一个CamelContext ,编制类CamelRunner :