Apache Camel 1.0 – 5年前 |
我看的越多,这个版本的事实给我留下了深刻的印象。 现在您必须考虑这是5年前完成的,在此版本中,骆驼创始人已经在项目的DNA中
- Java DSL
- XML DSL(使用Spring)
- 路线图上的OSGi
- 660kb的骆驼核心JAR
- 18个外部组件(+骆驼核心组件)
- 2个工作实例
- 完整的网站,包括文档,包括常见问题解答
- 项目徽标和包装盒
- Camel Maven插件可轻松运行Camel及其示例
- 测试套件
以下是此版本的tar球分布的屏幕截图:
Camel 1.0发行版(在pom.xml中提示OSGi野心) |
当您听到詹姆斯谈论过去以及他如何创造骆驼时,他的野心就是骆驼不应该束缚您。 如果要使用Java而不是XML,则可以。 如果您使用的是Spring XML旅行车,那就很好。 如果您对Groovy感兴趣,那么很好,如果您想使用Ruby,那就去吧(在Camel 1.3中添加了受支持的Ruby)。
让我们看一下DSL的通道。 Apache Camel最有可能是第一个在其第一版中即开即用地提供多种语言DSL的集成项目。 它只是项目的DNA,而正是IMHO Apache Camel在其他项目中脱颖而出的原因–多元而充满活力的社区以及Camel项目的DNA都“不适合所有人”。
因此,让我们看一下使用Java DSL的示例。 如今,使用最新的Camel版本(例如2.9.2)的人们应该立即熟悉DSL –某些东西从一开始就起作用!
Camel 1.0中的Java DSL |
还有XML DSL的样本,您也可以在源代码中看到该样本。
Camel 1.0中的XML DSL |
在此第一个版本中,我们还具有出色的测试工具包,例如,在下面的屏幕截图中注意到模拟的用法和设置期望。 从第一天开始测试骆驼就变得容易了。 是的,这是骆驼项目的DNA。
骆驼1.0中已包含骆驼测试套件 |
并注意上述单元测试中对Apache Camel创始人的引用。
- 詹姆斯·斯特拉坎
- 罗伯·戴维斯
- 希拉姆·奇里诺
- 纪尧姆·诺德(Guillaume Nodet)
谢谢你们创造了这个很棒的项目。 令人印象深刻的第一版,你们5年前就做了。
我将通过运行Apache Camel 1.0发行版中的camel-example-spring来结束本博客。
$ cd的例子
$ cd骆驼示例春天 $ mvn编译 $ mvn骆驼:运行
现在,您应该有耐心了,因为Maven正在下载5年之久的古老JAR。 所以需要一段时间:)
骆驼1.0示例运行 |
上面的屏幕截图显示了运行的Camel 1.0示例。 此示例通过使用来自JMS队列的消息并将其写入文件开始。 因此,我们需要与jconsole连接,以发送消息。 我已经突出显示了在jconsole中使用的服务URL。
jconsole发送消息– Camel 1.0摇滚 |
在jconsole中,我们展开树并找到测试队列,并使用文本“ Camel 1.0 rocks”调用sendTextMessage操作。
在上面的第二张屏幕截图中,您可能会在控制台的最后一行中看到“ Received Exchange”。 这是Camel记录的日志,因为示例使用了此博客顶部的屏幕快照中显示的以下路线。
然后,我们还可以看到文件也已写入测试目录,在这里我们可以看到文件名是消息ID,文件内容是从jconsole发送的内容:
这是5年前,所以让我们快进到今天。
Apache Camel的最新版本是2.9.2,因此让我们迁移旧示例以使用此版本。 为此,您需要:
- 调整pom.xml以使用Camel 2.9.2,并且camel-activemq组件已从Camel移到ActiveMQ,因此您需要包括它。 对于日志记录,我们现在使用slf4j。 修改后的pom.xml如下所示
将示例从Camel 1.0升级到2.9.2,调整pom.xml文件 |
- 在Spring XML文件中,您需要更改Camel的名称空间,因为当Camel毕业成为Apache顶级项目时,该名称空间已从activemq迁移到camel。 我们也升级到在XSD中使用Spring 3.0。 现在,activemq组件来自ActiveMQ,而不是Camel。 现在,packages属性是一个xml标记,因此您需要在<camelContext>中使用<packlage>。 更新后的文件如下所示:
将Spring XML从Camel 1.0升级到Camel 2.9.2 |
好的,我们现在可以开始了。
无需更改Java源代码!!!!
该示例从Camel 1.0迁移到2.9.2,而无需更改Java代码!!!! |
就像在我们使用JConsole发送文本消息之前一样。
我必须说James及其创始人在Camel 1.0版本中实现了这一目标,示例中的DSL与今天的Camel版本完全兼容。
确实是一个非常令人印象深刻的第一版。 骆驼开了一个很好的开端,从那时起,这个项目就变得越来越强大。
参考: 在我们的JCG合作伙伴 Claus Ibsen在Apache Camel博客的Claus Ibsen 上看到令人印象深刻的第一个Apache Camel版本 。
翻译自: https://www.javacodegeeks.com/2012/06/impressive-first-apache-camel-release.html