在即将发布的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的以下屏幕截图对此进行了说明:

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

那么这是如何工作的呢?

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

这是camel-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

Apache Camel请向我解释这些端点选项的含义相关推荐

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

    apache camel 在即将发布的Apache Camel 2.15中,我们使Camel更智能. 现在,它可以充当老师,并向您说明其配置方式以及这些选项的含义. Camel可以做的第一课是告诉您如 ...

  2. apache.camel_使用Apache Camel 2.14的轻松REST端点

    apache.camel Apache Camel 最近发布了一个新版本 , 其中一些新功能由我的同事Claus Ibsen博客发布 . 您确实应该检查他的博客条目并深入研究更多细节,但是我一直希望尝 ...

  3. 使用Apache Camel 2.14的轻松REST端点

    Apache Camel 最近发布了一个新版本 , 其中一些新功能由我的同事Claus Ibsen博客发布 . 您确实应该检查他的博客条目并深入研究更多细节,但是我希望尝试的功能之一是新的REST D ...

  4. apache camel_您的Apache Camel应用程序现在包括现成的文档

    apache camel 几个月前,我在博客中发布了有关即将发布的2.15版本的功能,该功能包括获取有关在端点上配置的每个属性的详细信息的功能-Apache Camel,请向我解释这些端点选项的含义 ...

  5. 您的Apache Camel应用程序现在包括现成的文档

    几个月前,我在博客中发布了有关即将发布的2.15版本的信息,该功能包括获取有关在端点上配置的每个属性的详细信息的功能-Apache Camel,请向我解释这些端点选项的含义 . 我们沿着这条道路继续前 ...

  6. apache camel_REST端点,可使用Apache Camel进行集成

    apache camel REST是一种用于组织资源的体系结构样式,当应用于基于HTTP的服务时,REST可以构建无状态,分离的可伸缩服务. HTTP方法,HTTP标头和mime类型都允许开发人员实现 ...

  7. REST端点,可使用Apache Camel进行集成

    REST是一种用于组织资源的体系结构样式,当应用于基于HTTP的服务时,REST可以构建无状态的,解耦的,可伸缩的服务. HTTP方法,HTTP标头和mime类型都允许开发人员实现REST样式. 诸如 ...

  8. java camel,无“to”端点的Apache Camel路由

    我使用Apache Camel来帮助捕获由第三方软件包发出的消息数据.在这个特定的例子中,我只需要捕获软件生成的内容,在另一端没有接收器(实际上没有"end"可去). 所以,我试图 ...

  9. apache camel_轻量级的开源集成:Apache Camel还是Spring集成?

    apache camel 首先,为全面披露信息,在过去的1.5年中, 我一直担任 FuseSource(现为Red Hat) 的顾问,为零售,运输,银行/金融等不同行业的大型和小型公司提供SOA和集成 ...

最新文章

  1. mybaits二十六:mybatis,spring整合
  2. GDCM:gdcm::EquipmentManufacturer的测试程序
  3. matlab 从 excel读取 日期_MATLAB批量修改文件名和选择性复制/剪切文件
  4. JavaScript HTML DOM
  5. LeetCode 807. 保持城市天际线
  6. HTMLParser使用举例
  7. 在Linux上搭建VisualSVN Server(svn服务端)
  8. 在JS方法中返回多个值的三种方法
  9. Pychram - 使用介绍
  10. ue4手机ui_Epic Games工程师分享:如何在移动平台上做UE4的UI优化?
  11. 阿里云长视频上传以及返回播放地址
  12. jspSmartUpload上传的路径问题
  13. ubuntu18.04修改ip地址
  14. python从字符串中提取数字
  15. 求二维形状渐变的算法
  16. 如何使用markdown做笔记
  17. 又一款Nginx 管理可视化神器!通过界面完成配置监控,一条龙!
  18. PSP编程环境破解个人研究笔记——CYGWIN环境搭建
  19. 理解OBV能量潮指标 for quant
  20. 2012全球智能手机市场份额:华为销量第三,中兴跻身前五

热门文章

  1. java向数组中插入元素
  2. hibernate配置详情3(Dept)
  3. JS删除之前弹出一个带有确认和取消按钮的提示框confirm()
  4. 蓝桥杯JAVA省赛2013-----B------3(振兴中华)
  5. linux的for循环怎么写,Linux命令:for循环写法总结
  6. docker 打包镜像_Spring Boot2 系列教程(四十一)部署 Spring Boot 到远程 Docker 容器
  7. rabbitmq生产者基于事务实现发送确认
  8. 使用maven聚合安装多个maven工程到本地仓库报错的解决方法:child module pom.xml does not exist
  9. drools dmn_使用Drools的DMN运行时示例
  10. cloud foundry_介绍“又一个” Cloud Foundry Gradle插件