apache.camel
本周发布了Apache Camel 2.18.0 。 此版本是重要版本,我将在此博客文章中重点介绍。
Java 8
Camel 2.18是第一个需要Java 1.8的版本(例如,容易记住的Camel 2.18 = Java1.8。Camel2.17 = Java 1.7)。 我们采取了谨慎的方法,并保持了Camel API的向后兼容性,因为最终用户可以将现有的Camel应用程序源代码并用Java 1.8和Camel 2.18重新编译,因此您应该一切都很好。
在Camel源代码内部,我们已经开始使用Java 8 API来实现新功能。 现有功能仍在使用Java 7 API,因此我们可以轻松地将错误修复移植回旧版本。
我们还将Java 8 lambda / functional API轻轻地引入了Java RouteBuilder,您可以在谓词和消息转换中使用它们。 您可以在github上查看一个小例子。
Spring启动启动器
自Camel 2.15以来,我们就一直支持Spring Boot,但在此发行版中,我们精选了所有Camel组件以使其对齐并使其充当一流的Spring Boot启动器组件 。 这意味着您应该使用-starter作为依赖项,例如camel-kafka-starter。
Spring Boot自动配置
现在所有的Camel组件都会生成Spring Boot自动配置源代码,这意味着您可以使用Spring Boot配置来配置组件,数据格式,语言等。 例如,在application.properties文件中。 而且,在编辑application.properties文件时,具有Spring Boot支持的IDEA,Eclipse等工具将具有代码完成功能。
帮助实施的Nicola Ferraro发布了博客条目,其中包含更多详细信息。
Spring Boot运行状况检查
如果您使用执行器,则Apache Camel会与Spring Boot集成在一起进行运行状况检查。 健康检查会进行粗粒度检查,以确保骆驼正确启动。 我们计划在Camel中实现更深的Health Check API,以允许各个组件参与检查。 例如,检查组件是否可以连接到远程系统等等。
野生飞群骆驼
WildFly Swarm项目还为Apache Camel提供了强大的支持。 然而,这种发展发生在野蝇骆驼项目上。 WildFly-Camel发布了支持骆驼2.18.0的版本4.3.0。
自动文档
我以前在博客中写道,我们正在努力从源代码中保存和生成Camel文档。 这意味着每个Camel组件,eip,语言,数据格式等都在源代码中记录了它们的选项,然后我们在构建过程中将其提取并保持随附的文档为最新。 我们已经将几乎所有文档从旧Wiki系统迁移到了源代码中的.adoc文件。 我们将继续进行此工作以完成下一个版本的发布,并将致力于建立一个新网站。
作为骆驼开发者,您可能认为这没什么大不了的,但实际上确实如此。 这样可确保文档中所有选项始终都是100%最新。 它还允许工具在设计和运行时访问此信息。 hawtio可以在运行时显示有关所有端点的深层信息,并包括每个选项的文档,如下所示:
我们还有一个Maven插件 ,可以扫描您的所有源代码并报告无效的配置骆驼端点。 该插件目前托管在fabric8上 ,在这里我们可以更快地促进创新。 但是,当插件成熟时,我们计划将源代码捐赠给Apache Camel项目,以使其开箱即用。
XML XSD完整记录
用于Spring和Blueprint的XML XSD现在还包括有关您可以在外部路由上进行的配置的文档,例如on和其他全局配置。
FluentProducerTemplate
FluentProducerTemplate是较小但非常可爱的新功能之一,它使用流利的样式API作为客户端API来向Camel端点发送消息。 现在,您可以用
template().withBody("Hello World).withHeader("foo", 123").withHeader("bar", 456).to("jms:queue:beer").send();
休息生产者
Rest组件允许现在(作为客户端)调用REST服务,您可以在其中选择以下Camel组件之一进行HTTP传输:http,http4,netty4-http,jetty,restlet,undertow。 您还可以参考现有的swagger api文档,并在类路径中包含camel-swagger-java,以便将其余端点的自动验证配置为使用有效的rest操作/参数。
使用Hystrix进行断路
我们增加了对使用Netflixx Hystrix作为您的骆驼路线中的电路中断的原生支持。 有一个例子 。
下面是Spring Boot调用在WildFly Swarm上运行的服务的另一个示例 ,该服务在Kubernetes集群(或本地)上运行,我最近一直在谈论它。
public void configure() throws Exception {from("timer:foo?period=2000").hystrix().to("netty4-http:http://{{service:helloswarm}}/say").onFallback().setBody().constant("Nobody want to talk to me").end().log("${body}");}
Zipkin邮件跟踪
该版本还包括camel-zipkin,它允许使用zipkin进行分布式消息跟踪。 您可以通过提供的示例找到更多详细信息。
服务电话
服务呼叫EIP允许通过可插入服务注册表中的服务发现来呼叫远程服务。 例如,您可以使用etdc,consul,ribbon,kubernetes等产品。
新组件
与往常一样,每个发行版都包含许多新组件:
- camel-asterisk –用于与Asterisk PBX服务器进行交互
- camel-cm-sms –用于使用SM SMS网关发送SMS消息。
- camel-consul –用于将您的应用程序与Consul集成。
- camel-ehcache –用于与Ehcache 3缓存进行交互。
- camel-flink –将Camel连接器与Apache Flink任务桥接。
- camel-lumberjack –用于通过伐木工人协议接收日志(例如Filebeat使用)
- camel-ribbon –将Netflixx Ribbon与Service Call EIP一起使用。
- camel-servicenow –使用ServiceNow进行云管理。
- camel-telegram –用于通过Telegram进行消息传递。
- camel-zipkin –使用zipkin跟踪骆驼消息流/定时。
- camel-chronicle –用于与OpenHFT的Chronicle-Engine进行交互。
新数据格式
我们还有一个新的数据格式:
- camel-johnzon – Apache Johnzon是JSR-353(用于JSON处理的JavaTM API)的实现。
升级时的重要信息
Spring的旧版本(例如3.x和4.0.x)已删除。 ServiceMix / Karaf上的OSGi用户也应该使用Karaf4.x。 但是,它可以在某些较旧的Karaf版本上运行,但未得到官方支持。 下一版本肯定会删除对较早版本的支持。
使用Spring-DM的OSGi用户应安装camel-spring-dm模块,因为已经从camel-spring中删除了Spring DM。 现在需要Spring Boot1.4.x。
您可以在Camel发行说明中找到更多详细信息。
下一步是什么
我们将在Camel 2.19发行版上进行工作,在此方面我们可以进一步改进Camel 2.18发行版为我们带来Java 8的新途径。我们也希望完成文档的迁移并在新的网站上工作。 希望我们也能得到一个不错的徽标。
接下来是骆驼2.19,我们将开始使用骆驼3.x。 但这将首先在骆驼社区中讨论。 但是,在今年余下的时间里,我们将专注于计划于2017年第一季度开始的Camel 2.19。
翻译自: https://www.javacodegeeks.com/2016/10/apache-camel-2-18-released-whats-included.html
apache.camel