3
我有一個運行的春分osgi框架與一堆已啓動的包。現在我通過'update'更新一個使用osgi控制檯的軟件包。 (或使用提供的方法:bundle.update(url));Equinox:框架重新啓動後丟失的包的更新
一切工作完美...但如果我完全重新啓動osgi框架之前更新的捆綁包再次處於原始狀態(因爲它是在更新之前)。
我使用eclipse的update.configurator來搜索插件目錄中的所有包並安裝它們,但我認爲它可以識別包是否已更新。
有人可以給我一個提示,我失蹤了嗎?
感謝, 邁克爾滿庚
嗨!不,我不開始用 - 清潔。目前我使用的是equinox 3.2,因爲我從未換到更高版本。 也許問題是,我認爲bundle.update(...)將捆綁包的上傳版本存儲在配置區域中(這是爲一系列捆綁包完成的......當jar包不知道規則時存儲在那裏,當不存在時)。 如果是這種情況..我會更改我的代碼,以便上傳文件首先將文件存儲到文件系統,然後刪除舊版本。 如果這是對應的方法。 傷心,我不能在這種情況下使用bundle.update(InputStream in)。 你覺得怎麼樣? – 2009-09-20 08:35:35
OSGi規範沒有說明重啓後應該發生什麼事情。只是它應該把它帶回來。我不認爲更新本身會更新持久包 - 特別是對於基於文件的包。我不確定如果從遠程URL安裝捆綁軟件並執行更新會發生什麼情況。 無論如何,在這種情況下,該規範的這個區域是未定義的:-) 請注意,如果需要,仍然可以使用bundle.update(InputStream)。但是,您必須安排將位更新到正確的位置,然後(之後)調用update()。 – AlBlue 2009-09-20 09:30:31
我會改變我的impl,使其取代原來的基於文件的捆綁。 感謝您的幫助! – 2009-09-21 09:02:29