只要驻留在plugins /目录中并且其内容有效,Eclipse插件的名称是否无关紧要?

时间:2013-07-05 07:37:41

标签: java eclipse osgi

我一直在做一些实验,似乎至少在某些情况下似乎不是这样的,也就是说 - 似乎有关于插件罐命名的规则。

如果我的项目同时具有BundleActivator.start()IStartup.earlyStartup(),则无论jar的名称如何,后者似乎总是会运行,而第一种只会在某些情况下运行。这是为什么?

我已经快速了解了OSGi 4规范,但我找不到任何关于捆绑命名的内容。

附录:我实际上并不是针对Eclipse进行开发,而是针对使用大量Eclipse插件的OSGi应用程序(如果这与问题有任何关联,则包含p2)。

由于

1 个答案:

答案 0 :(得分:2)

关于BundleActivator.start()IStartup.earlyStartup(),我已在您的previous question中回答了此问题,您接受了答案。你需要进一步澄清吗?最好是要求澄清原始问题而不是重复它。

关于bundle JAR文件命名,OSGi不关心JAR文件的名称,这就是为什么你在规范中找不到任何关于它的原因。实际上,捆绑包甚至不必存在于文件中,您可以通过网络或从任何可以获得java.io.InputStream的任何地方读取它。

但是,Eclipse构建于OSGi之上,Eclipse的各个部分执行期望捆绑JAR文件的名称与捆绑包的Bundle-SymbolicName匹配。

由于您说您正在开发OSGi应用程序而不是Eclipse应用程序,因此最好坚持使用纯OSGi机制,例如激活器,DS组件和服务。避开Eclipse-isms,如IStartup和整个Extension Registry。