我正在使用Equinox OSGi實現。當我檢索一個包並詢問它的位置(getLocation()方法)時,返回的字符串前綴爲「initial @ reference」。 OSGi 4.3規範沒有提到這個前綴。是否有另一個文件中指定了這個前綴和其他可能的前綴?bundle.getLocation()的可能前綴
3
A
回答
2
這些是Equinox特定的URL前綴(儘管引用:前綴也受到其他OSGi框架的支持)。他們不是OSGi規範的一部分。在Eclipse運行選項:
osgi.bundles 被自動安裝和可選啓動一次系統啓動和運行包的逗號分隔的列表。每個條目的形式爲:
<URL | simple bundle location>[@ [<start-level>] [":start"]]
的啓動電平表示將在哪個束應該運行在OSGi啓動級別。如果省略了開始級別(> 0整數),則框架將使用該包的默認開始級別。如果添加了「開始」標籤,那麼該軟件包在安裝後將被標記爲啓動。簡單的包位置是相對於框架的父目錄而言的。如果該位置不是完全合格的路徑或URL,則會執行搜索以查找可用的最高版本。請注意,reference:協議只能用於引用由文件:URL指定的內容(例如,reference:file:/path/to/mybundle_1.0.0.jar)。如果該捆綁包是一個目錄捆綁包,則不支持使用文件:URL而不使用引用:(例如file:/path/to/myDirectoryBundle_1.0.0/必須使用引用:file:/path/to/myDirectoryBundle_1.0.0/ )
here是一個描述「初始」和「引用」前綴的線程。
6
該位置可以幾乎任何東西。如果我安裝一個軟件包如下...
InputStream data = ...; // open a stream from wherever
context.installBundle("crazy location huh?", data);
...隨後此包的getLocation()
方法將返回「瘋狂的位置吧?」。
如果我試圖調用Bundle.update()
的無參數變體,那麼這隻會對我造成問題,因爲框架無法解釋位置字符串以便從該位置更新包。但我總是可以調用Bundle.update(InputStream)
方法從我直接指定的數據更新包。
相關問題
- 1. Sass可變前綴
- 2. Java ChatServer - 可選的前綴
- 3. Boost.Spirit解析可選前綴
- 4. ASP.NET INamingContainer - 可選前綴
- 5. CSS中的前綴無前綴腳本和前綴
- 6. 文件匹配模式R與幾個可能的前綴和後綴
- 7. Data Analytics Store的Stream Analytics可能的輸出路徑前綴
- 8. TextInputLayout後綴/前綴
- 9. Identyfying前綴後綴
- 10. setNames後綴前綴
- 11. 帶可選數字前綴的emacs交互功能
- 12. 適當的功能前綴符號
- 13. 前綴
- 14. Rails的路由前綴(可選)
- 15. 刪除可變長度的前綴
- 16. Guava Joiner不具備前綴和後綴的能力
- 17. 配置JSON前綴問題前綴
- 18. Bukkit前綴和後綴
- 19. 前綴中綴使用Java
- 20. 中綴前綴計算
- 21. 球拍後綴爲前綴
- 22. 最長前綴後綴
- 23. Cmake庫前綴/後綴
- 24. 使URL後綴前綴
- 25. 這是可能有佔位符在路由前綴?
- 26. 可能將字符串前綴爲單行輸出?
- 27. 是否有可能獲得cpanel mysql數據庫前綴?
- 28. 在Django中排序:在排序時可能忽略「前綴」?
- 29. 變量後綴前綴到後綴
- 30. MySqlMembershipProvider的表前綴
感謝您爲該主題帶來了一些亮點 – 2012-04-11 14:51:14