令人印象深刻的第一个Apache Camel版本

为了准备下周的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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么在2012/2013年我将在新的Enterprise Java项目中继续使用Spring *和* Java EE

自从我担任技术决策职务以来已经过去了一年多&#xff0c;很高兴看到我仍然与之保持着完美的和谐。 几个月前&#xff0c;我在KaiWhner的一个不错的博客中写了一个有关JEE与Spring的答案。 如果观点没有不同&#xff0c;那么讨论的附加值在哪里&#xff1f; 我确实同意Kai的许多…

linux ubuntu 五笔输入法,ubuntu下安装fcitx五笔输入法

安装fcitx输入法sudo add-apt-repository ppa:fcitx-team/stable #添加安装源&#xff0c;apt-get 添加&#xff0c;nightly源也可以sudo apt-get update #更新源&#xff0c;否则无法安装fcit…

浅谈Windows下SVN在Android Studio中的配置、基本使用及解除关联

看到网上很多关于svn环境配置和关联Android-Studio的很多博文&#xff0c;发现很零散&#xff0c;想集大家所长整理一下&#xff1a; 在AndroidStudio中开发版本控制中&#xff0c;除了Git就是SVN&#xff0c;和Eclipse不同Android Studio没有提供单独的插件&#xff0c;只能和…

四. 基于环视Camera的BEV感知算法-BEVDepth

目录 前言0. 简述1. 算法动机&开创性思路2. 主体结构3. 损失函数4. 性能对比总结下载链接参考 前言 自动驾驶之心推出的《国内首个BVE感知全栈系列学习教程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习下课程第四章——基于环视Cam…

【腾讯Bugly干货分享】Android Patch 方案与持续交付

本文来自于腾讯bugly开发者社区&#xff0c;非经作者同意&#xff0c;请勿转载&#xff0c;原文地址&#xff1a;http://dev.qq.com/topic/57a31921ac3a1fb613dd40f3 Android 不仅系统版本众多&#xff0c;机型众多&#xff0c;而且各个市场都各有各的政策和审核速度&#xff0…

App Engine中的Google Services身份验证,第1部分

这篇文章将说明如何构建一个简单的Google App Engine&#xff08;GAE&#xff09;Java应用程序&#xff0c;该应用程序可针对Google进行身份验证&#xff0c;并利用Google的OAuth授权访问Google的API服务&#xff08;例如Google Docs&#xff09;。 此外&#xff0c;在Google已…

山东自考c语言程序设计停考了吗,2018山东自考停考专业有哪些

自考每年都会停考一批的专业以适应社会的发展&#xff0c;今年山东自考的停考专业有哪些&#xff1f;本文由学梯网小编整理发布&#xff0c;仅供参考。2018年山东自考停考专业有什么根据山东省教育考试院发布的《关于山东自学考试停考国际贸易(专科)等19个专业的通知》知悉&…

公开调用私有Java方法?

我们是Java开发人员&#xff0c;在Java中已知4种访问修饰符&#xff1a;私有&#xff0c;受保护&#xff0c;公共和包。 好吧&#xff0c;除了私有外&#xff0c;最后三个可以通过继承&#xff0c;相同的包或实例从类外部调用。 现在&#xff0c;常见的问题是&#xff0c;可以公…

C语言字符像素,返回字符串宽度 (以像素为单位)

[c]代码库#include #include #include #include int main(void){/* request auto detection */int gdriver DETECT, gmode, errorcode;int x 0, y 0;int i;char msg[80];/* initialize graphics and local variables */initgraph(&gdriver, &gmode, "");/…

Spring动态物业管理

静态和动态属性对于运营管理以及在生产级别更改系统行为都非常重要。 特别地&#xff0c;动态参数减少了服务中断。 本文展示了如何使用Quartz在Spring Applications中管理动态属性。 有关使用 Spring和Quartz集成提供“ 使用Spring和Quartz的多作业计划服务”的文章。 让我们看…

ADF任务流:页面片段的托管bean范围

介绍 当我们使用ADF任务流并需要实现一些特定于流的业务逻辑或存储一些与该流相关的信息时&#xff0c;我们通常使用pageFlowScope托管bean。 而且&#xff0c;当我们需要为流的活动&#xff08;页面或页面片段&#xff09;提供服务时&#xff0c;我们将较短的作用域用于此类托…

数据库事物操作

事务 什么是事务?转账&#xff1a;1. 给wc账户减1000元2. 给wcxf账户加1000元 当给wc账户减1000元后&#xff0c;抛出了异常&#xff01;这会怎么样呢&#xff1f;我相信从此之后&#xff0c;wc再也不敢转账了。 使用事务就可以处理这一问题&#xff1a;把多个对数据库的操作绑…

android+4.4+稳定性,新系统新UI!台电A10h四核安卓4.4.2性能测试

国内著名商标&#xff0c;数码用户首选品牌的台电科技在12月20日全国首发了安卓4.4.2系统&#xff0c;并且运行台电全新tUI同时&#xff0c;支持从安卓4.2系统OTA一键升级至安卓4.4.2系统&#xff01;作为国内首款升级到目前全球最新的Android4.4.2系统之后&#xff0c;整体性能…

网络知识点小结

VMware虚拟机三种联网方法及原理一、Brigde——桥接&#xff1a;默认使用VMnet0 1、原理&#xff1a; Bridge 桥"就是一个主机&#xff0c;这个机器拥有两块网卡&#xff0c;分别处于两个局域网中&#xff0c;同时在"桥"上&#xff0c;运行着程序&#xff0c;让…

在JUnit中超越核心Hamcrest

在通过JUnit和Hamcrest改进对assertEquals的文章中&#xff0c;我介绍了将Hamcrest与JUnit一起使用 。 然后&#xff0c;我查看了JUnit的内置Hamcrest Core Matcher支持 。 在本文中&#xff0c;我将介绍如何将Hamcrest的非核心匹配器与JUnit一起应用。 这些非核心匹配器默认情…

4pics1word android,4 Pics 1 Word

4 Pics 1 Word是一款非常有意思的看图猜词游戏&#xff0c;这款游戏中会给我们四张图片&#xff0c;玩家需要通过图片给出的信息来猜出是哪个词&#xff0c;看西西的介绍你可能以为这是一款千篇一律的看图猜词游戏&#xff0c;不过这里猜的不是中文而是英语单词。4 Pics 1 Word…

JAVA学习绘图颜色及其笔画属性设置字体显示文字

package com.graphics;import java.awt.*; import java.awt.geom.Rectangle2D; import java.util.Date;import javax.swing.*;/*** * author biexiansheng**/ public class DrawString extends JFrame{private Shape rect;//矩形对象private Font font;//字体对象private Date …

android原生系统开发板,安卓学习必备开发板-Rayeager PX2

由谷歌主导并推动的移动终端操作系统Android&#xff0c;由于其开源开放的特性&#xff0c;自发布之日起便受到全球各大IT厂商的欢迎。在各厂商的热情推动下&#xff0c;基于Android系统的手机、平板、智能手表等各类产品层出不穷&#xff0c;迅速普及到人们的日常生活&#xf…

热点中的即时编译器(JIT)

即时编译器&#xff08;JIT&#xff09;的概念以及更广泛的自适应优化是除Java&#xff08;.Net&#xff0c;Lua&#xff0c;JRuby&#xff09;之外的许多语言中众所周知的概念。 为了解释什么是JIT编译器&#xff0c;我想先定义一个编译器概念。 根据维基百科&#xff0c;编译…

jq查找字段忽略html标签,jQuery过滤HTML标签并高亮显示关键字的方法

本文实例讲述了jQuery过滤HTML标签并高亮显示关键字的方法。分享给大家供大家参考。具体如下&#xff1a;jQuery实现网页关键字过滤效果&#xff0c;将需要过滤的文字定义在JavaScript中&#xff0c;可定义多个&#xff0c;不过要修改JS代码为数组&#xff0c;这样可过滤出多个…