Apache Camel 2.19发布–新增功能

Apache Camel 2.19于2017年5月5日发布,大约在一段时间后,我做了一个小博客,介绍了该版本包含的值得注意的新功能和改进。

这是值得注意的新功能和改进的列表。

1. Spring Boot的改进

Camel 2.19版本已针对Spring Boot进行了许多改进。 例如,所有Camel组件现在都在其Spring Boot元数据文件中包含更多详细信息,以进行自动配置。 这意味着工具现在可以显示您可能使用的每个组件,语言和数据格式上所有选项的默认值,文档等,并在application.properties或.yml文件中进行配置。

该发行版也是最新的Spring Boot 1.5.3发行版。 某些组件已改进了自动配置,使其更易于使用,例如camel-servlet,您可以在其中轻松地从application.properties文件设置上下文路径。 我们还提供了在CamelContext上配置更多选项的功能,因此您可以调整JMX,流缓存和许多其他选项。

2.骆驼目录的改进

骆驼目录现在包含该发行版中随附的每个工件的细粒度细节,也包括其他种类的骆驼-hystrix,camel-cdi等。

该目录现在还包括所有以ascii doc和html格式提供的文档。 该目录为Spring Boot和Karaf运行时提供了专门的提供程序,使工具可以知道可以在这些运行时上使用哪些Camel工件。

Camel项目使用目录本身,因此我们现在使用它来自动生成并保留网站上所有工件以及添加每个工件的完整列表。 因此,您可以查看它是在此发行版中还是在Camel 2.17等中引入的新工件。

在骆驼核心RuntimeCamelCatalog中提供了CamelCatalog的专用运行时版本,使用它可以在运行Camel时使用目录。 离线目录是骆驼目录,完全独立。

3. Camel Maven插件现在可以验证

camel-maven-plugin上有一个新的验证目标,该目标使您可以检查源代码并验证所有Camel端点和简单表达式是否具有无效的配置或选项。 我以前有
关于此的博客 。

4.自动重新加载XML文件

如果您在XML文件中开发Camel路由,则现在可以打开自动重载,因此Camel将监视XML文件中的更改,然后动态地自动更新路由。 我以前有
博客并记录了此视频 。

5.服务呼叫EIP的改进

Luca一直在购买用于改善服务呼叫EIP的产品,因此它可以与Camel在云上(例如kubernetes或spring-boot-cloud)一起更好,更轻松地工作。

Luca 最近对此发表了博客。

6.调用REST服务更容易

如果您想使用Camel来调用RESTful服务,那么现在就可以轻松了,因为我们将生产方添加到了REST DSL。 这意味着您可以使用rest组件调用REST服务,该组件可以插入并使用Camel中的任何基于HTTP的组件,例如restlet,http4,undertow等。

有关更多信息,请参见rest-producer示例 。 我们还添加了一个新的camel-swagger-rest组件,使调用Swagger REST API更加容易,您可以在其中引用其操作ID,然后让Camel自动映射到其API。

有关更多信息,请参见rest-swagger示例和rest-swagger文档 。

7. CDI与JEE交易

camel-cdi组件现在支持JEE事务,因此您可以立即使用它,而不必再依赖Spring事务。

8.改进了示例文档

现在,我们将生成一个包含所有示例的表格,并按类别进行排序。 这使用户可以找到初学者的示例,休息的示例,云计算等。此外,还可以确保将来保留示例的更好文档,因为如果我们有没有文档的示例,则生成器工具将警告。

同样,所有示例都有一个自述文件,其中包含有关示例以及如何运行的信息。

9. Spring Cloud组件

有新的Camel组件与Spring Cloud和Spring Cloud Netflix集成。 这样一来,通常可以轻松地将ServiceCall EIP或Hystrix EIP与Spring Cloud Netflix一起使用,或者将Camel与Spring Cloud一起使用。 您可以在
例子

10.卡夫卡改进

camel-kafka组件已得到改进,可以更直观地工作。 不幸的是,这意味着uri语法以向后不兼容的方式进行了更改。 因此,如果您要升级,请确保更改您的uri。 但是,新语法类似于使用kafka:topicName?opt​​ions的其他消息传递组件的处理方式。

而且,该组件现在可以立即自动转换为kafka序列化器和解串器,因此您不必为此烦恼。 我们提供了通常使用的转换,例如byte []和字符串类型。

该组件也已升级到最新的Kafka版本,现在可以离线存储偏移状态,因此,如果停止并稍后启动应用程序,则可以从此偏移中恢复。

配置和使用可作为标头值提供的自定义键和分区键也更加容易。

并且有一个新的Kafka幂等存储库 。

11.航线合同

我们已经添加了最初的支持,以便能够为骆驼路线指定传入和传出的类型(在骆驼内部称为转换器和验证器)。 然后,这将允许Camel在运行时和Camel开发人员都知道路由期望将哪些有效负载作为输入以及返回的内容。 例如,您可以指定路由接受XML并返回JSon。 借助XML,您甚至可以指定名称空间。 同样,您可以为POJO类指定Java类型。 基于这些合同,Camel能够在运行时自动在需要时在这些类型之间自动键入消息有效负载(如果可能)。

我们将继续在这方面进行更多改进。 例如,我们希望可以向Camel组件中添加此类功能,以便它们能够提供此类信息,从而使您的Camel路由在路由过程中的消息有效负载更加类型安全。

工具也将能够利用这种形式,然后例如“标记”用户有关路线不兼容的提示等。

您可以在本示例 (以及CDI和XML)和文档中找到更多详细信息。

12.活性骆驼

有一个新的camel-reactive-streams组件,它使Camel可以在无功流API中发挥一流的作用,因此您可以轻松地在无功流中使用Camel组件,或者从Camel路由调用流。

在下一个发行版中,作品中有一个camel-rx2组件,它通过流行的RxJava 2框架改进了对Camel的支持。

对于想要与vert.x一起使用react的用户,则在两个项目中都有一个camel-vertx和vertx-camel-bridge组件。 我们计划将它们合并在一起,并在将来有空时将它们各自的最佳功能融合在一起。 但是,Claus正在与vert.x团队进行此讨论。

您可以在此示例中找到更多信息。 《 行动中的骆驼》第二版包含整章21章,涵盖了所有这些内容。

13. Java 8 DSL改进

而在我脑海中,对Java 8 DSL进行了一些改进,以允许在您的Camel路由和EIP中使用更多Java 8 lambda和功能样式。 当我们发现对于精通Java 8的用户而言,EIP变得更加出色时,我们将不时地改善这一点。 我们也在寻求这方面的反馈,因此,如果您深陷Java 8风格,那么可以帮助我们确定可以改进DSL的地方。

14.骆驼连接器

我们引入了一个名为Camel Connector的新概念。 但是,它仍处于早期阶段,我们将在接下来的几个版本中进一步改进和完善Camel连接器。

简短的故事是,骆驼连接器是经过专门配置且经过预先配置的骆驼组件
一件事一件事 。 例如,如果您需要知道何时有人在Twitter上提及您,则可以使用camel-twitter组件。 但是它可以做10件事,并且可能需要一些时间来了解如何使用该组件并使之正常工作。 因此,您可以构建一个可以做到这一点的连接器,即骆驼推子连接器。 它是预先构建的,并配置为可以执行此操作。 因此,您所需要做的就是配置您的Twitter凭据,然后就可以使用了。 在运行时,连接器是Camel组件,因此从Camel的角度来看,它们都是组件,因此在Camel中它是一流的。

我们在源代码中提供了一些连接器示例 。

15.更多组件

像往常一样,每个Camel版本中都有很多新组件,而这次我们有大约20个新组件。 您可以在
发行说明 ,或在Camel组件网站上按2.19发行版号进行搜索。

例如,有一个骆驼开放式跟踪组件,可以将Camel与分布式跟踪一起使用。 Gary Brown对此发表了博客 。

Jens Reimann发表了一些新的用于物联网的骆驼组件,例如camel-milo。

您可以在发行说明中找到许多其他较小的改进。 例如,jsonpath语言现在允许使用嵌入式简单语言,并且您可以使用更简单的语法定义谓词,而无需太多令人困惑的jsonpath标记,以防万一您只想说order.customer.id> 1000等。

翻译自: https://www.javacodegeeks.com/2017/05/apache-camel-2-19-released-whats-new.html

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

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

相关文章

Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置

两年半前写的关于Maven的介绍,现在看来都还是不错的,自己转下。写博客的一大好处就是方便自己以后查阅,自己总结的总是最靠谱的。 由浅入深,主要介绍maven的用途、核心概念(Pom、Repositories、Artifact、Build Lifecycle、Goal)、…

C#枚举(Enum)小结

枚举概念 枚举类型(也称为枚举)提供了一种有效的方式来定义可能分配给变量的一组已命名整数常量。该类型使用enum关键字声明。 示例代码1 enum Day { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }; 默认情况下枚举中每个元素的基本…

用js实现导航栏shoufang效果_【读者投稿】用Github+docsify,我花了半天就搭好了个人博客...

前言“作为一个真正的码农,不能没有自己的个人博客”,这是我说的。惭愧的是,入行两年多了都没搞起来,这让我一度怀疑自己是个假程序员。昨天终于克服了心里的“犹豫”和“恐惧”,尝试搭建了一把,半天就搞好…

ubuntu 重定向

重定向 (重新设定方向) ls > xxx.txt 将ls显示的内容写入到xxx.txt ls -lah > xxx.txt ls >> xxx.txt 将ls显示的内容以追加方式写入到xxx.txt

IDEA快捷键及xml文件中网址报错

AltShiftTab 切换窗口(从后往前) divTab    补全为 <div></div> #boxTab   补全为 <div id"box"></div> .boxTab   补全为 <div class"box"></div> …

python随机生成数字列表_详解Python利用random生成一个列表内的随机数

首先,需要导入random模块: import random 随机取1-33之间的1个随机数&#xff0c;可能重复: random.choice(range(1,34)) print得到一系列随机数,执行一次得到一个随机数: print(random.choice(range(1,34))) 随机取1-33之间的6个随机数&#xff0c;可能重复: random.choices(r…

构建Java Web开发环境

1.1 JDK&#xff08;Java Development Kit&#xff09;的安装与配置1.1.1 下载最新的JDK&#xff08;我下载的是Java SE 6 Update 25&#xff09;下载地址&#xff1a;http://www.oracle.com/technetwork/java/javase/downloads/index.html1.1.2 JDK的安装1、双击名为“jdk-6u2…

ubuntu cd 改变路径

. 表示当前路径 cd &#xff0e;&#xff0e; 后退到上一层路径 cd ../.. 调到上上层路径,相对路径 cd /home/hjd/ 绝对路径 cd ~ 回到家目录 &#xff08;/home/hjd/&#xff09;

cloud foundry_Spring 3.1,Cloud Foundry和本地开发

cloud foundry这篇文章将帮助您在Cloud Foundry上使用MongoDB构建Spring 3.1 Web应用程序。 除了推动Cloud Foundry之外&#xff0c;您还可以使用MongoDB实例在本地环境中进行开发。 目标 此博客发布的目标是在本地构建应用程序&#xff0c;然后发布到本地Cloud Foundry实例。…

python中continue用法案例_Python continue语句实例用法

Python continue语句&#xff1a; 当执行到 continue 语句时&#xff0c;将不再执行本次循环中 continue 语句接下来的部分&#xff0c;而是继续下一次循环。 lst [7,8,9,4,5,6] for i in range(len(lst)): if lst[i] 9: continue #当运行到 continue 语句时&#xff0c;不执…

eclipse中查看某个方法(函数)被谁调用

用了好久一直不知道eclipse中如何实现vs中查找所有引用的功能&#xff0c;今天终于发现了哈哈 选中要查找的方法名&#xff0c;右键->References->Workspace 可以定位到具体的调用位置&#xff0c;快捷键CtrlShiftG&#xff0c;在Search中就会出现调用方法 或者是 右键-&…

ubuntu ln软连接硬连接

软连接:相当于windows的快捷方式 硬连接&#xff1a;又创建了一个名字指向同一个内存区&#xff0c;相当于又复制了一个同样的内容 ln -s 1.txt 2.txt 将文件1.txt建立2.txt软连接 相当于快捷方式 ln 1.txt 3.txt 将文件1.txt建立3.txt硬连接,

一个简单的Map Iterator性能测试

Java Map性能有很多方面可以衡量&#xff0c;但是关键的一个是简单的单线程扫描。 这是一些针对Iterators和Java 8 Map.forEach()简单测试代码&#xff0c;以及一些图形结果。 1.性能测试困难 性能测试是一项非常困难的工作&#xff0c;精确的可重复测试需要Java微基准测试线束…

小数点后保留2位小数的正则表达式

一、前提 整数和小数&#xff0c;保留两位小数的正则表达式&#xff1a; 具体什么意思呢  ^(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){0,2})?$ 二、知识点 1、首先从写法上可以看出&#xff0c;使用了显式定义正则表达式的语法&#xff0c;因为其中存在对字符串"\"&…

python字符串是什么_python字符串表示什么

python的字符串就是表示一串字符&#xff0c;字符可以是中文&#xff0c;英文或者数字&#xff0c;或者混合的文本。 python字符串的几种表达方式 1 使用单引号扩起来字符串>>> my python lession #以单引号将字符串扩起来 my python lession >>> a my pyth…

PgSql备份pg_dump与还原手记pg_restore(转)

备份&#xff1a;pg_dump -h localhost -p 5432 -U tradesns -W -F c -b -v -f "/home/tradeworkwangbin/us2010.backup" us2010 恢复&#xff1a;pg_restore -h 192.168.0.100 -p 5432 -U postgres -W -d us2011 -v "/root/us2010.backup" 真没有想到&…

ubuntu ls命令

ls 显示当前文件夹下文件 ls -l 列表显示 ls -a 显示隐藏文件 ls -h 文件大小&#xff0c;自动找单位&#xff08;Kb、M、G&#xff09; 也可以 ls -l -a -h &#xff08;-l -a -h没有先后顺序&#xff0c;-a -h -l&#xff09; 也可以 ls -lah &…

vue 在 html 中自定义 tag

v-if,v-for,:key,:style,v-text,click,:src,:poster,:class,:href转载于:https://www.cnblogs.com/whm-blog/p/10718697.html

cmd进入python环境_python2和python3同时存在,如何CMD中进入不同的环境

当电脑上同时装了python2和python3时&#xff0c;虽然在二者的路径都写入了环境变量PATH中&#xff0c;但是在CMD中运行python命令时只能进入2或者3&#xff08;安装顺序不同进入的也不同&#xff09;&#xff0c;如何进入想要的python版本环境中&#xff1a; 1.首先将二者的的…

ubuntu grep搜索文本

grep &#xff08;Global search Regular Expression and Print out the line&#xff09; grep “ntfs” xxx.txt 显示xxx.txt包括ntfs行 grep -n “ntfs” xxx.txt 显示xxx.txt包括ntfs行&#xff0c;行数 grep -v “ntfs” xxx.txt 显示xxx.txt不包括ntfs行 grep…