Karaf OSGi && JavaEE 通俗易懂版 實戰教程入門(二)

本節內容主要爲介紹karaf3.0.x操作基本,讓讀者有個概念,然後會根據假定的項目技術需要對karaf進行模塊添加使其具備JavaEE運行環境的特性,最後給出完整的指令直接型列表。閱讀本文需要具備osgi、maven(karaf是基於maven管理bundle、feature的)、linux(karaf是類unix環境)的基本知識。

1、Apache Karaf 入門

1.1、必須要明白的幾個名詞及概念

bundle:osgi中的模塊

feature:一組bundle,其具備特定的功能,比如hibernate就算是一個feature,其由多個bundle組成

feature-repo:feature資源庫,由一組feature組合而成,apache已經提供了一部分,可以進如etc配置文件中查看

1.2、必須要做的閱讀的資料

仔細閱讀Apache Karaf官方手冊,瞭解其默認提供的特性(feature),後續都以feature稱呼。

2、Karaf的Feature

karaf的feature組成結構爲:

feature-repo包含feature,所有的feature都由feature-repo打包提供。

karaf/etc目錄下的org.apache.karaf.features.repos.cfg文件摘要如下:

enterprise=mvn:org.apache.karaf.features/enterprise/LATEST/xml/features
spring=mvn:org.apache.karaf.features/spring/LATEST/xml/features
cellar=mvn:org.apache.karaf.cellar/apache-karaf-cellar/LATEST/xml/features
cave=mvn:org.apache.karaf.cave/apache-karaf-cave/LATEST/xml/features
camel=mvn:org.apache.camel.karaf/apache-camel/LATEST/xml/features
camel-extras=mvn:org.apache-extras.camel-extra.karaf/camel-extra/LATEST/xml/features
cxf=mvn:org.apache.cxf.karaf/apache-cxf/LATEST/xml/features
cxf-dosgi=mvn:org.apache.cxf.dosgi/cxf-dosgi/LATEST/xml/features
activemq=mvn:org.apache.activemq/activemq-karaf/LATEST/xml/features
jclouds=mvn:org.apache.jclouds.karaf/jclouds-karaf/LATEST/xml/features
openejb=mvn:org.apache.openejb/openejb-feature/LATEST/xml/features
wicket=mvn:org.ops4j.pax.wicket/features/LATEST/xml/features
hawtio=mvn:io.hawt/hawtio-karaf/LATEST/xml/features
pax-cdi=mvn:org.ops4j.pax.cdi/pax-cdi-features/LATEST/xml/features
pax-jdbc=mvn:org.ops4j.pax.jdbc/pax-jdbc-features/LATEST/xml/features
pax-jpa=mvn:org.ops4j.pax.jpa/pax-jpa-features/LATEST/xml/features
pax-web=mvn:org.ops4j.pax.web/pax-web-features/LATEST/xml/features
pax-wicket=mvn:org.ops4j.pax.wicket/pax-wicket-features/LATEST/xml/features
ecf=http://download.eclipse.org/rt/ecf/latest/site.p2/karaf-features.xml
decanter=mvn:org.apache.karaf.decanter/apache-karaf-decanter/LATEST/xml/features

有些keyname是不是很熟悉?spring、camel、cxf、openejb,這些都是常規JavaEE中常見的組件模塊,karaf也提供了,區別僅僅是對其進行了osgi化。

可以查看每個feature-repo中包含的feature,這需要通過feature:list指令,結果如下圖(Repository列就是指向的feature-repo,並加上了feature-repo的版本號):


3、常用操作指令

bundle安裝:將指定bundle安裝到osgi環境中,-s  代表安裝完後立即啓動該bundle

bundle:install -s mvn:commons-io/commons-io/2.2

從bundle的安裝指令中就可以看出karaf使用maven對依賴進行管理,如果你對maven不熟悉,則需要去熟悉下。

feature repository安裝:將指定repository的內容添加到feature list中

feature:repo-add pax-jdbc 0.6.0

feature查詢:查詢當前存在的feature,可以配合grep進行過濾

feature:list

feature安裝

feature:install spring-web
指定的feature必須是當前已經存在,可以用feature:list查詢到

4、項目技術需求

  • 支持mysql數據庫
  • 支持Spring
  • 支持WebService
  • 支持WebSocket
  • 支持JMS
  • 支持。。。

5、給karaf添加Feature

根據項目技術需求逐項給karaf添加feature,並編寫Demo進行測試。

6、結尾

本節講述了karaf的基本知識和操作,下文開始從添加需求開始一步一步給karaf添加特性。

瞭解karaf中的名詞以及如何給karaf添加feature是非常重要的基本功,當你需要給karaf添加到常規JavaEE功能時,基本都會用到本節描述的內容。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章