2011-01-27 65 views
0

我知道如何設置一個初始束的水平,只是要部署包:更改felix的捆綁級別?

bundlelevel -i 5 

但是我怎麼更改現有束的水平?針對捆綁級別說:

bundlelevel - set bundle start level or initial bundle start level 
    scope: felix 
    flags: 
     -i, --setinitial set the initial bundle start level 
     -s, --setlevel set the bundle's start level 
    parameters: 
     int target level 
     Bundle[] target identifiers 

bundlelevel - query bundle start level 
    scope: felix 
    parameters: 
     Bundle bundle to query 

我不知道什麼「Bundle []」參數是。我嘗試了bundle_id和[bundle_id],甚至包名。

讓我來舉個例子。比方說,我想改變管束5(書架API)從1級2

g! lb 
START LEVEL 5 
    ID|State  |Level|Name 
    0|Active  | 0|System Bundle (3.0.7) 
    1|Active  | 1|Apache Felix Bundle Repository (1.6.2) 
    2|Active  | 1|Apache Felix Gogo Command (0.6.1) 
    3|Active  | 1|Apache Felix Gogo Runtime (0.6.1) 
    4|Active  | 1|Apache Felix Gogo Shell (0.6.1) 
    5|Active  | 1|Bookshelf Inventory API (1.5.0) 

我試過如下:

g! bundlelevel -s 2 [5] 
gogo: IllegalArgumentException: Cannot coerce 
    bundlelevel(String, String, ArrayList) to any of 
    [(boolean, boolean, int, Bundle[]), (Bundle)] 

g! bundlelevel -s 2 5 
Must specify target bundles. 

任何幫助表示讚賞。

回答

0

在FUSE ESB中取得了一些經驗,但從未使用felix。 剛剛下載菲利克斯3.0.8和嘗試:

g! lb 
START LEVEL 1 
    ID|State  |Level|Name 
    0|Active  | 0|System Bundle (3.0.8) 
    1|Active  | 1|Apache Felix Bundle Repository (1.6.2) 
    2|Active  | 1|Apache Felix Gogo Command (0.8.0) 
    3|Active  | 1|Apache Felix Gogo Runtime (0.8.0) 
    4|Active  | 1|Apache Felix Gogo Shell (0.8.0) 

g! bundlelevel -s 10 4 

g! lb 
START LEVEL 1 
    ID|State  |Level|Name 
    0|Active  | 0|System Bundle (3.0.8) 
    1|Active  | 1|Apache Felix Bundle Repository (1.6.2) 
    2|Active  | 1|Apache Felix Gogo Command (0.8.0) 
    3|Active  | 1|Apache Felix Gogo Runtime (0.8.0) 
    4|Resolved | 10|Apache Felix Gogo Shell (0.8.0) 
g! 

我努力重現你的問題,但不能。它接縫按照規定工作。你有沒有嘗試過新的安裝或更新的felix版本(不知道你在用什麼)?

+0

謝謝,我使用的是GOGO shell和運行時的舊版本(0.6 ???)! – drozzy 2011-02-24 21:10:12

1

不是我猜的最清晰的語法消息:) Bundle []是指包ID。做磅,得到你想要的包中的ID,然後運行

bundlelevel -s NEW_LEVEL bundle_ID的

例如:4級和捆綁10,做

bundlelevel -s 4 10

也許你因爲錯過了-s而接到投訴?

+0

不,還是不行。如果我有一個id = 5和level = 1的包,並且我想將其更改爲級別2,並執行:「bundlelevel -s 2 5」,則felix會說「必須指定目標包」。 – drozzy 2011-02-24 14:11:25