我正在使用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. Java ChatServer - 可选的前缀
- 2. ASP.NET INamingContainer - 可选前缀
- 3. Boost.Spirit解析可选前缀
- 4. 文件匹配模式R与几个可能的前缀和后缀
- 5. Data Analytics Store的Stream Analytics可能的输出路径前缀
- 6. TextInputLayout后缀/前缀
- 7. 带可选数字前缀的emacs交互功能
- 8. 最长前缀后缀
- 9. 中缀前缀计算
- 10. 前缀中缀使用Java
- 11. Cmake库前缀/后缀
- 12. 球拍后缀为前缀
- 13. 可能将字符串前缀为单行输出?
- 14. 在Django中排序:在排序时可能忽略“前缀”?
- 15. 是否有可能获得cpanel mysql数据库前缀?
- 16. 这是可能有占位符在路由前缀?
- 17. 如何有条件地更换前缀或前缀/后缀GSUB
- 18. MySqlMembershipProvider的表前缀
- 19. POI的XSSF前缀
- 20. FOSRestBundle的前缀只
- 21. WordPress-ERROR:“表格前缀”不能为空
- 22. TryUpdateModel不能使用前缀和IncludeProperties
- 23. 正则表达式前缀和后缀可选
- 24. Microsoft Word的前缀和后缀工具?
- 25. 变换后缀为前缀的列名
- 26. 具有可选路径前缀
- 27. Laravel:可选路由前缀参数
- 28. 可以Redis做前缀匹配吗?
- 29. QName值可以不带前缀吗?
- 30. Automapper由前缀
感谢您为该主题带来了一些亮点 – 2012-04-11 14:51:14