用camel创建camel工程
在eclipse中创建camel工程
创建自定义组件
创建自定义过滤器
在其他语言中使用camel
现在你应该知道了一点关于如何开发camel路由以及如何利用camel的许多特点。但你知道如何从头开发一个camel工程吗?你可以拿一个已存在的camel例子并且修改它去适应你的需求,但往往这不是最好的方法,假如你需要和一个不支持camel开箱的系统的整合?
在这一章,我们将向您显示如何构建你自己的camel应用,我们将使用Maven原型工具,它将允许你跳过无聊的样板项目设置,只用一个命令简单的创建新的camel项目,我们同时演示了如何从Eclipse项目启动一个camel,当你需要使用ide提供的其他功能。
之后,我们将向你展示如何通过创建自定义组件和自定义拦截器扩展camel。最后,我们会将向你展示如何在Java语言以外的语言,如Scala中使用camel项目。
11.1使用maven管理工程
Camel一开始就是用apache maven构建的,所以使用maven去创建一个新的camel工程师最容易的,本节中,我们将向你演示camel的maven原型,这是创建各种类型camel项目预设的模板。之后,我们将讨论如何使用Maven依赖去加载camel模块和他们的第三方依赖到你的项目中。在1章1.2节中有Apache Maven的概述。如果你需要复习Maven,你可以在继续学习之前重温那段。
11.1.1使用camel 的Maven原型
创建一个基于Maven的项目是一件相当简单的事,你主要需要关心的就是创建一个POM文件和你在项目中使用的各种标准的目录。但如果你要创建很多的项目,这会变得相当繁复因为对于新的工程有很多样板文件设置。
Maven原型提供一种方法来定义项目模板和生成基于这些模板的新项目。他们使创建一个新的基于Maven项目变得容易,因为他们创造了所有的样板POM的元素,以及用于特殊情况的关键代码和配置文件。
注意:要了解更多 Maven archetypes的信息,参考Maven:官方网站指南http://maven.apache.org/guides/introduction/introduction-to-archetypes.html.sonatype 也提供了一章关于arche-types的内容,在免费使用maven一书中:完整的参考书: http://www.sonatype.com/books/mvnref-book/reference/archetypes.html.
如图11.1所示,这些都是由Maven原型插件协调的。这个插件可以接受用户输入并取代部分原型形成一个新的项目。为了说明它是如何工作的,我们使用Maven快速使用原型,它将生成一个简单的Java应用程序(没有camel依赖)。这是运行此命令时的默认选项:mvn archetype:generate
原型插件会向你询问各种问题,如新建工程的groupId和artifactId,完成的时候会生成一个类似这样的目录结构:
在这个结构中,myApp是artifactId,camelinaction是groupId,原型插件创建了一个pom文件,一个java源文件,和一个测试单元,所有文件都在适当的位置。
注意:maven根据配置规则转换,所以位置很重要。
无需额外的配置,maven知道应该编译src/main/java下的java源码,运行位于src/test/java目录下的所有单元测试,要执行这个操作,你只需运行下面的mavn命令:mvntest