簡體   English   中英

如何將自定義XML標記添加到Apache Camel配置

[英]How to add custom XML tag to Apache Camel configuration

我需要實現這樣的事情:

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

我仍然沒有在Google上找到相同的問題(更不用說解決方案了)。 也許有人知道該怎么做?

Camel不支持自定義標簽和/或名稱空間(也許永遠不會?)。

我看到以下用於封裝可重用處理步驟的不同解決方案:

  • 編寫一條單獨的可重用路由。 我猜這是最簡單的解決方案,也是實現此目的的標准方法。
  • 編寫一個封裝整個處理過程的處理器/ bean /服務。
  • 使用駱駝上下文組件將完整的上下文包括在您的路線中。 首先,將駱駝上下文添加到注冊表中:

     registry.bind("accounts", myAccountContext); 

    然后在路由中使用上下文:

     <from uri="accounts:invoice"/> 
  • 描述編寫一個組件在這里

駱駝是特定領域的語言-“簡潔的應用程序消息交換語言”。

這個想法不是用自定義語言元素擴展它,而是在核心集中處理。 這個想法是通過處理器,組件,bean等擴展它。

原因與您不使用關鍵字megawork{ ... }擴展Java的原因非常相似。 關鍵字或XML標簽是核心語言的一部分。

除此之外,引入自定義元素在技術上可能相當復雜,因為XML DSL是架構的一部分,必須使用擴展名等進行更新。

就是說-您始終可以派生Camel並構建自己的DSL方法集,但是您必須自己維護該副本。 除非DSL條目不適合一般情況,而是由Camel社區提供(並得到其批准)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM