![]() |
Apache Camel 1.0 – 5年前 |
我看的越多,這個版本的事實給我留下了深刻的印象。 現在您必須考慮這是5年前完成的,在此版本中,駱駝創始人已經在項目的DNA中
- Java DSL
- XML DSL(使用Spring)
- 路線圖上的OSGi
- 660kb的駱駝核心JAR
- 18個外部組件(+駱駝核心組件)
- 2個工作實例
- 完整的網站,包括文檔,包括常見問題解答
- 項目徽標和包裝盒
- Camel Maven插件可輕松運行Camel及其示例
- 測試套件
以下是此版本的tar球分布的屏幕截圖:
![]() |
Camel 1.0發行版(在pom.xml中提示OSGi野心) |
當您聽到詹姆斯談論過去以及他如何創造駱駝時,他的野心就是駱駝不應該束縛您。 如果要使用Java而不是XML,則可以。 如果您使用的是Spring XML旅行車,那就很好。 如果您對Groovy感興趣,那么很好,如果您想使用Ruby,那就去吧(在Camel 1.3中添加了受支持的Ruby)。
讓我們看一下DSL的通道。 Apache Camel最有可能是第一個在其第一版中即開即用地提供多種語言DSL的集成項目。 它只是項目的DNA,而正是IMHO Apache Camel在其他項目中脫穎而出的原因–多元而充滿活力的社區以及Camel項目的DNA都“不適合所有人”。
因此,讓我們看一下使用Java DSL的示例。 如今,使用最新的Camel版本(例如2.9.2)的人們應該立即熟悉DSL –某些東西從一開始就起作用!
![]() |
Camel 1.0中的Java DSL |
還有XML DSL的樣本,您也可以在源代碼中看到該樣本。
![]() |
Camel 1.0中的XML DSL |
在此第一個版本中,我們還具有出色的測試工具包,例如,在下面的屏幕截圖中注意到模擬的用法和設置期望。 從第一天開始測試駱駝就變得容易了。 是的,這是駱駝項目的DNA。
![]() |
駱駝1.0中已包含駱駝測試套件 |
并注意上述單元測試中對Apache Camel創始人的引用。
- 詹姆斯·斯特拉坎
- 羅伯·戴維斯
- 希拉姆·奇里諾
- 紀堯姆·諾德(Guillaume Nodet)
謝謝你們創造了這個很棒的項目。 令人印象深刻的第一版,你們5年前就做了。
我將通過運行Apache Camel 1.0發行版中的camel-example-spring來結束本博客。
$ cd的例子
$ cd駱駝示例春天 $ mvn編譯 $ mvn駱駝:運行
現在,您應該有耐心了,因為Maven正在下載5年之久的古老JAR。 所以需要一段時間:)
![]() |
駱駝1.0示例運行 |
上面的屏幕截圖顯示了運行的Camel 1.0示例。 此示例通過使用來自JMS隊列的消息并將其寫入文件開始。 因此,我們需要與jconsole連接,以發送消息。 我已經突出顯示了在jconsole中使用的服務URL。
![]() |
jconsole發送消息– Camel 1.0搖滾 |
在jconsole中,我們展開樹并找到測試隊列,并使用文本“ Camel 1.0 rocks”調用sendTextMessage操作。
在上面的第二張屏幕截圖中,您可能會在控制臺的最后一行中看到“ Received Exchange”。 這是Camel記錄的日志,因為示例使用了此博客頂部的屏幕快照中顯示的以下路線。
然后,我們還可以看到文件也已寫入測試目錄,在這里我們可以看到文件名是消息ID,文件內容是從jconsole發送的內容:

這是5年前,所以讓我們快進到今天。
Apache Camel的最新版本是2.9.2,因此讓我們遷移舊示例以使用此版本。 為此,您需要:
- 調整pom.xml以使用Camel 2.9.2,并且camel-activemq組件已從Camel移到ActiveMQ,因此您需要包括它。 對于日志記錄,我們現在使用slf4j。 修改后的pom.xml如下所示
![]() |
將示例從Camel 1.0升級到2.9.2,調整pom.xml文件 |
- 在Spring XML文件中,您需要更改Camel的名稱空間,因為當Camel畢業成為Apache頂級項目時,該名稱空間已從activemq遷移到camel。 我們也升級到在XSD中使用Spring 3.0。 現在,activemq組件來自ActiveMQ,而不是Camel。 現在,packages屬性是一個xml標記,因此您需要在<camelContext>中使用<packlage>。 更新后的文件如下所示:
![]() |
將Spring XML從Camel 1.0升級到Camel 2.9.2 |
好的,我們現在可以開始了。
無需更改Java源代碼!!!!
![]() |
該示例從Camel 1.0遷移到2.9.2,而無需更改Java代碼!!!! |
就像在我們使用JConsole發送文本消息之前一樣。
我必須說James及其創始人在Camel 1.0版本中實現了這一目標,示例中的DSL與今天的Camel版本完全兼容。
確實是一個非常令人印象深刻的第一版。 駱駝開了一個很好的開端,從那時起,這個項目就變得越來越強大。
參考: 在我們的JCG合作伙伴 Claus Ibsen在Apache Camel博客的Claus Ibsen 上看到令人印象深刻的第一個Apache Camel版本 。
翻譯自: https://www.javacodegeeks.com/2012/06/impressive-first-apache-camel-release.html