我需要实现这样的事情:
<from uri="direct:pewpew" />
<doMegaWork status="Busy" message="Don't push on me!">
<to uri="direct:next"/>
我仍然没有在 Google 上找到同样的问题(更不用说解决方案了)。也许有人知道该怎么做?
我需要实现这样的事情:
<from uri="direct:pewpew" />
<doMegaWork status="Busy" message="Don't push on me!">
<to uri="direct:next"/>
我仍然没有在 Google 上找到同样的问题(更不用说解决方案了)。也许有人知道该怎么做?
Camel (还)不支持自定义标签和/或命名空间(也许永远不会?)。
我看到以下不同的解决方案来封装可重用的处理步骤:
使用Camel 上下文组件将完整的上下文包含到您的路线中。首先,将 Camel 上下文添加到注册表:
registry.bind("accounts", myAccountContext);
然后在路线中使用上下文:
<from uri="accounts:invoice"/>
按照这里的描述编写一个组件。
Camel 是一种特定领域的语言——“简洁的应用程序消息交换语言”。
这个想法不是用自定义语言元素来扩展它,而是在核心中集中处理。这个想法是通过处理器、组件、bean 等来扩展它。
原因与您不使用关键字扩展 Java 的原因非常相似,例如megawork{ ... }
. 关键字或 XML 标记是核心语言的一部分。
除此之外,引入自定义元素在技术上可能相当复杂,因为 XML DSL 是模式的一部分,必须使用扩展等进行更新。
也就是说——你总是可以 fork Camel 并构建你自己的一套 DSL 方法,但你必须自己维护那个副本。除非 DSL 条目不适合一般情况并且回馈给 Camel 社区(并由其批准)。