2013-12-11 210 views
0

我想知道,如果駱駝提供任何標準聚集策略外的開箱。我一直在研究,但我只能在單元測試中找到一些。那些不能從實際的代碼中使用。我試圖將它與Apache Camel 2.12.1和Spring DSL一起使用。簡單AggregationStrategy Apache的駱駝

特別,我在找this one

public Exchange aggregate(Exchange oldExchange, Exchange newExchange) { 
    if (oldExchange == null) { 
     return newExchange; 
    } 

    String oldBody = oldExchange.getIn().getBody(String.class); 
    String newBody = newExchange.getIn().getBody(String.class); 
    oldExchange.getIn().setBody(oldBody + "+" + newBody); 
    return oldExchange; 
} 

如果它們不包含在包中,有沒有什麼解決辦法做春季DSL一樣,而無需在代碼中創建AggregationStrategy?

感謝您的幫助!

回答

2

的通用聚合是行不通的。比如你有作品,如果這兩個機構是字符串,假設他們不需要與任何分隔符分開。但是JSON或XML呢?簡單地連接這些將不起作用,因爲你最終會得到2個頂級元素。我相信這就是駱駝爲什麼要實現你自己的原因。

+0

是平時你有你自己的一種邏輯如何彙整這些業務需求實際上還要考慮什麼樣的數據格式,你在遊戲訊息等 –

+0

我明白了,我會盡我自己的這個版本。感謝您的回答和評論。 – hveiga

1

至少在版本2.13.1(我現在使用的那個)中,存在GroupedExchangeAggregationStrategy,其延伸。該GroupedExchangeAggregationStrategy符連接所有成員爲List<T>。在此之後,它是一個列表轉換爲另一種類型,可能通過使用POJO的問題。