2012-01-24 49 views
1

我需要能夠將下面的CSV轉換爲對象。 Bindy可能嗎?如何處理Apache Camel Bindy中的CSV文件中的不同記錄?

H,header1,01/01/2012 
D,test11,1.00,10.00 
D,test12,2.00,20.00 
D,test13,3.00,30.00 
H,header2,01/02/2012 
D,test21,1.00,10.00 
D,test22,2.00,20.00 
D,test23,3.00,30.00 

我已經創建了兩個模型頁眉和詳細信息,並在結束時,我希望有一個列表: 頭,細節,細節,細節,頭,細節,細節,細節的對象。

當我把這些模型在同一封裝和運行我的測試,好像Bindy不能夠識別哪個模型是與失敗說:

java.lang.AssertionError: mock://queue.csv Received message count. Expected: <1> but was: <0> 

這甚至可能與Bindy?

回答

0

我其實不認爲這是可能的框?因爲您需要一種方式(鑑別器)來確定一行是標題還是細節。這不是我們現在得到的功能。

雖然你可以拆分數據,所以只有一個頭+數量的細節。但是這需要在駱駝中有多條消息。

但是看起來你的結構相當簡單。所以只需使用一些好的老式Java代碼就可以了。

然而,Apache Camel項目愛的貢獻,所以隨意打開這個用例的JIRA票證,然後添加歧視功能將是一個很好的補充。然後,處理不同類型的CSV記錄也更容易一些。 http://camel.apache.org/contributing.html

+1

其實這個問題的答案是使用BeanIO.org框架,而不是Bindy。它支持這種開箱即用的方案。 – goe

+0

不錯,鮑比歐看起來像一個很好的圖書館。對於簡單映射的@ annotation配置會更好,而不是XML映射文件。 –

相關問題