2010-10-13 49 views
1

我們開始使用Apache Felix Karaf作爲項目,並使用Blueprint Services。如何讓Spring Dynamic Modules 2.x在Apache Felix Karaf上工作?

現在,我想使用Spring Dynamic Modules來訪問高級DI功能和測試功能。問題是我一直無法弄清楚如何在Felix上運行Spring DM 2.x。

的春春-DM功能安裝:(根據彈簧網站

[email protected]> features:list 
State   Version  Name  Repository 
[installed ] [2.5.6.SEC01] spring  karaf-1.6.0 
[installed ] [1.2.0  ] spring-dm karaf-1.6.0 
[uninstalled] [1.6.0  ] wrapper karaf-1.6.0 
[uninstalled] [1.6.0  ] obr  karaf-1.6.0 
[installed ] [1.6.0  ] http  karaf-1.6.0 
[uninstalled] [1.6.0  ] war  karaf-1.6.0 
[uninstalled] [1.6.0  ] webconsole karaf-1.6.0 
[installed ] [1.6.0  ] ssh  karaf-1.6.0 
[installed ] [1.6.0  ] management karaf-1.6.0 

但爲了使用藍圖服務,我需要春天DM 2.X至少,「對於藍圖服務RI ,使用2.x +版本。')。

我看到有可能add features to Apache Felix,但從我的理解,這需要在某些存儲庫上聲明features.xml文件。

我的問題是,是否有一個更簡單的路要走,這也將是更加一體化(例如經由Maven的)

回答

1

好了,經過一番調查我設法得到束與Spring DM 2.0工作.0.M1在Karaf上。

我解決它是通過定義一個特徵XML描述符這樣添加額外的功能集(見http://karaf.apache.org/manual/2.2.5/users-guide/provisioning.html)方式:

<?xml version="1.0" encoding="UTF-8"?> 
    <features name="spring-features"> 
    <feature name="spring-dm-2" version="2.0.0.M1"> 
     <feature version="3.0.3.RELEASE">spring</feature> 
     <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.cglib/2.1_3_6</bundle> 
     <bundle>mvn:org.springframework.osgi/spring-osgi-io/2.0.0.M1</bundle> 
     <bundle>mvn:org.springframework.osgi/spring-osgi-core/2.0.0.M1</bundle> 
     <bundle>mvn:org.springframework.osgi/spring-osgi-extender/2.0.0.M1</bundle> 
     <bundle>mvn:org.springframework.osgi/spring-osgi-annotation/2.0.0.M1</bundle> 
     <bundle>mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.spring/2.1.0</bundle> 
    </feature> 
    </features> 

,並且然後經由Karaf加載它這樣殼

features:addurl /path/to/spring-dm-feature.xml 
features:install spring-dm-2 

請注意,這種方法很有效,但隨附了一些醜陋的堆棧跟蹤 - 我希望在Karaf用戶列表/ Spring人員的幫助下,我們將能夠擺脫這些問題。

+2

答案中的鏈接已損壞。請刪除它或更換一個工作。 – ThiefMaster 2012-08-13 10:55:59