为了准备下周的CamelOne会议,我花了一些时间回顾一下Apache Camel项目的历史。 因此,除其他外,我了解了Apache Camel的第一个正式1.0版本 。

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

令人印象深刻的第一个Apache Camel版本相关推荐

  1. apache camel_令人印象深刻的第一个Apache Camel版本

    apache camel 在准备下周的CamelOne会议时,我花了一些时间回顾一下Apache Camel项目的历史. 因此,除其他外,我了解了Apache Camel的第一个正式1.0版本 . A ...

  2. 机器人演示demo_令人印象深刻的WebGL演示

    机器人演示demo Fresh impressing WebGL demonstrations What is WebGL? This is new modern software library t ...

  3. 从Java 8 到 Java 14,几个令人印象深刻的新特性

    1.Lambda 表达式 Lambda表达式时Java 8中的一个新特性,它允许许把函数作为一个方法的参数(函数作为参数传递进方法中). Lambda 表达式的语法格式如下: (parameters) ...

  4. 一款令人印象深刻的FCPX插件:3D Photo Animator (3D照片动画制作器)

    hello,大家好.今天小编给你带来一款FCPX插件:3D Photo Animator (3D照片动画制作器) 这是一个可以将风景人像平面图片转3D空间摄像机视觉差特效动画,它使用Z轴缓冲区深度技术 ...

  5. OpenAI教程之OpenAI 的 Dall-E2 令人印象深刻

    什么是 Dall-E2? 如果您已经知道它是什么,请跳过这一部分. 如果您只是碰巧在不知道 Dall-E2 是什么的情况下进入这个故事,这里有一个简短的解释. Dall-E2 是 OpenAI 于 2 ...

  6. 下载The7主题,为你的网站打造多功能、令人印象深刻的外观!

    想要为你的网站提供令人印象深刻的外观,并具备强大的多功能特性?现在,你可以下载The7主题,让你的网站脱颖而出,实现独一无二的在线存在! The7是一款备受推崇的WordPress主题,它融合了创意设 ...

  7. Skytte:一款令人印象深刻的 HTML5 射击游戏

    Skytte 是一款浏览器里的 2D 射击游戏.使用 Canvas 元素和大量的 JavaScript 代码实现.Skytte 是用我们的开源和现代的前端技术创造的.经典,快节奏的横向滚动射击游戏,探 ...

  8. 用CSS3制作令人印象深刻的产品展示图片切换效果

    用CSS3制作令人印象深刻的产品展示图片切换效果 产品页面是在您的网站上的任何页面展示产品.它必须描述产品的特点,给点截图展示.当然,这是你让访问者对你的产品感兴趣的地方,但它越来越难以抓住他们的注意 ...

  9. s19文件编辑_19个令人印象深刻的在线图像编辑器

    s19文件编辑 Image editors can cost you hundreds, if not thousands, of dollars, and some of them (not men ...

最新文章

  1. Java编程基础篇第二章
  2. linux 实时 网口 速率_Linux 命令行网络端口速度测试
  3. java pause_java – 更有效的暂停循环方式
  4. [ python ] 基础技巧
  5. CSS中调用JS函数和变量
  6. 原来这样做模型分数,稳定性与灵活性可以双保障!
  7. python 安装xlwt失败_安装python库xlwt的时候遇到超时的情况。
  8. Jacobi matrix——一种对向量方程的梯度描述方式
  9. Discuz! 7.1 7.2 远程代码执行漏洞
  10. jdbcdbcpc3p0
  11. 在Eclipse里面引入dtd文件
  12. Android中实现Activity的透明背景效果
  13. android开发歌词滑动效果_漂亮的Android音乐歌词控件 仿网易云音乐滑动效果
  14. 谷歌输入法/谷歌拼音输入法/WIN7好用的输入法
  15. 什么是流片?芯片流片概念介绍
  16. 上海黄山自游二日游攻略
  17. JNB, JBE, JGE, JLE 指令的转移条件
  18. InputStream 、 InputStreamReader 、 BufferedReader
  19. 自兴动脑:见证人工智能发展新高度,挑战AI智慧医疗
  20. 马士兵学习笔记-Java基础网络编程

热门文章

  1. 小程序真机测试错误代码_测试不充分:知道您的代码是否真的可以投入生产的5种方法...
  2. java程序连接kafka_Java的Kafka:构建安全,可扩展的消息传递应用程序
  3. java实现可选形参_Java:可选的可选实现
  4. fegin 参数丢失_许多参数和丢失的信息
  5. cassandra_Spring Boot Cassandra的第一步
  6. pl/postgresql_将PostgreSQL PL / Java安装为PostgreSQL扩展
  7. es 调整gc_实际中进行GC调整
  8. Apache Camel 3.1 –即将推出更多骆驼核心优化
  9. javafx_JavaFX技巧4:总结
  10. guava读取配置文件_使用Guava MapSplitters配置Hadoop