camel_Apache Camel请向我解释这些端点选项的含义

camel

camel

在即将发布的Apache Camel 2.15中,我们使Camel更智能。 现在,它可以充当老师,并向您解释其配置方式以及这些选项的含义。

Camel可以做的第一课是告诉您如何配置所有端点以及这些选项的含义。

接下来我们要学习的课程是让Camel解释EIP的选项。

好了,一幅图片值得一千个单词,所以让我展示Apache Karaf的屏幕截图,您可以在其中使用新的endpoint-explain命令来解释如何配置端点。

解释卡拉夫

Apache的屏幕截图来自我在Karaf中安装的SQL示例。 此示例使用多个端点,其中一个端点每5秒触发一次。 从上面可以看到,该命令列出了端点uri:timer:// foo?period = 5s,然后在下面解释了该选项。 由于uri仅具有1个选项,因此仅列出了一个。 我们可以看到该选项被命名为period。 它的java类型很长。 json模式类型为整数。 我们可以看到该值为5s,在说明该值的说明的下方。

那么为什么列出两种类型呢? 想法是存在一种适合工具等的类型,因为它具有对应于JSonSchema规范的更简单的类型类别。 还列出了Java中的实际类型。

计时器端点还有更多选项,因此我们可以使用–verbose选项列出所有选项,如下所示:

解释卡拉夫冗长

说明端点功能还可以作为JMX或CamelContext上的Java API使用。 对于JMX,每个端点mbean都有一个说明操作,该操作返回具有上述数据的表格数据。 下面的jconsole屏幕快照对此进行了说明:

说明-jmx

另外,在CamelContext MBean上有一个通用的explainEndpointJson操作,它允许解释所提供的任何任意uri。 因此,您可以解释Camel不使用的端点。

那么这是如何工作的呢?

在构建Apache Camel版本的过程中,我们为每个组件生成一个HTML和JSon模式,其中每个端点选项都以其名称,类型和描述进行记录。 对于枚举,我们列出了可能的值。

这是camel-sql组件的此类json模式的示例:

sql-json

现在要使此工作正常,组件必须支持uri选项,这需要使用@UriEndpoint注释端点。 尽管Camel团队尚未迁移Camel版本中的所有160多个组件。 但是我们计划随着时间的推移迁移组件。

当然,现在有了这个新功能,它鼓励我们迁移所有组件。

那么我们从哪里获得文档? 好吧,它只是Java代码,所以您要做的就是为端点选项设置getter / setter。 添加@UriParam批注,然后为setter添加Javadoc。 是的,我们将javadoc作为文档。 因此,它只是作为标准的javadoc记录在一个地方,并且在源代码中已有记录。

我希望我们将来能自动为这些组件生成Camel网站文档,因此我们不必在其Wiki系统中单独进行维护。 但这将需要艰苦的工作才能实现。 但是最终我们应该到达那里,因此每个组件都记录在源代码中。 例如,对于每个具有所有组件文档的组件,我们可能都有一个readme.md,然后将端点选项从Camel内置系统自动注入到该readme.md文件中。 拥有readme.md文件还允许github用户使用github样式很好地浏览Camel组件文档!

那么下一步是什么?

hawtio Web控制台也将集成此功能,因此从Camel 2.15开始的用户可以立即在Web控制台中获取该信息。

然后开始在Spring / Blueprint用户的XML模式中包含有关EIP的文档。 并改进EIP的javadoc,因为这也成为文档的唯一来源。 然后,当人们在XML编辑器中开发其骆驼路线时,这将允许诸如Eclipse / IDEA / Netbeans之类的工具以及诸如此类的工具来显示文档,因为该文档在XSD中以xsd:documentation标记提供。

我们已经捕捉到一些想法,在CAMEL-7999票证中还有其他事情。 如果您有任何其他需要改进的想法,那么我们欢迎社区提供反馈。

翻译自: https://www.javacodegeeks.com/2014/11/apache-camel-please-explain-me-what-these-endpoint-options-mean.html

camel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值