如何将自定义XML标记添加到Apache Camel配置中

如何将自定义XML标记添加到Apache Camel配置中,xml,apache-camel,custom-tags,Xml,Apache Camel,Custom Tags,我需要实现如下内容: <from uri="direct:pewpew" /> <doMegaWork status="Busy" message="Don't push on me!"> <to uri="direct:next"/> 我仍然没有在谷歌上发现同样的问题(更不用说解决方案了)。也许有人知道如何做到这一点?定制标记和/或名称空间(尚未)得到Camel的支持(也许永远也不会) 我看到了以下不同的解决方案来封装可重用的处理步骤: 编写一个单独

我需要实现如下内容:

<from uri="direct:pewpew" />
<doMegaWork status="Busy" message="Don't push on me!">
<to uri="direct:next"/>


我仍然没有在谷歌上发现同样的问题(更不用说解决方案了)。也许有人知道如何做到这一点?

定制标记和/或名称空间(尚未)得到Camel的支持(也许永远也不会)

我看到了以下不同的解决方案来封装可重用的处理步骤:

  • 编写一个单独的可重用路由。我想这是最简单的解决方案,也是标准的方法
  • 编写一个处理器/bean/服务来封装整个处理过程
  • 使用组件将完整上下文包含到路由中。首先,将骆驼上下文添加到注册表:

    registry.bind("accounts", myAccountContext);
    
    然后在路线中使用上下文:

    <from uri="accounts:invoice"/>
    
    
    
  • 如前所述编写一个组件


Camel是一种特定于领域的语言——“简明应用程序消息交换语言”

我们的想法不是用自定义语言元素对其进行扩展,这些元素在核心中集中处理。这个想法是通过处理器、组件、bean等来扩展它

原因非常类似于为什么不使用关键字扩展Java,比如说
megawork{…}
。关键字或XML标记是核心语言的一部分

除此之外,引入自定义元素在技术上可能相当复杂,因为XMLDSL是模式的一部分,必须使用扩展等进行更新


也就是说,您可以随时构建自己的DSL方法集,但您必须自己维护该副本。除非DSL条目不适用于一般情况,并被提交回驼峰社区(并由驼峰社区批准)。

出于好奇:扩展驼峰XML语言背后的要求是什么?我无法回答您的问题,因为我在Camel.apache.org上也没有找到有关这方面的信息。实际上,我需要一些类似jsp自定义标记的东西。您找不到任何东西,因为这是一件奇怪的事情。这就是为什么我要问你的要求是什么。也许我们可以指出如何在不扩展Camel XML语言的情况下满足您的需求。也许也有帮助?老实说,这是我的任务。如果这个问题没有好的解决办法,我将设法避开它。谢谢你的帮助!如果你想添加一个新的定义呢?类似于“选择”组件的东西。。。