2013-11-25 21 views
1

我想了解OSGi如何處理Java認可的目錄機制?如何在OSGi中處理Java認可的目錄機制?

  • resolver.jar
  • 的xml-apis.jar
  • xercesImpl.jar

我已經嵌入:我從使用以下認可罐子非OSGi的項目建設包這些瓶子在我的包中,但我怎麼告訴OSGi對待它們與其餘的不同(認可)?

回答

0

您不能將這些JAR嵌入到您的包中;如果你這樣做,那麼他們不再被JVM認可。

位於JRE的代碼目錄中的庫由Java擴展類加載器(它是主應用程序類加載器的父代)加載,但是是啓動類加載器的子代。因此,將這些庫公開到捆綁包的方法是從系統捆綁包中導出它們。這可以通過將屬性org.osgi.framework.system.packages.extra設置爲要導出的其他包的列表來完成。

+0

您還需要確保配置框架,以便擴展類加載器是包類加載器的父代。見http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/Constants.html#FRAMEWORK_BUNDLE_PARENT_EXT –

+0

@BJHargrave爲什麼?我不是在這裏談論家長代表團。系統包的類加載器是已經具有擴展CL作爲其父項的應用程序CL。 –

+0

是的。 123456789 –

2

OSGi對背書目錄沒有做任何特殊的處理。然而,OSGi確實需要所有不以「java」開頭的軟件包。明確出口和進口。這意味着系統包可以導出一個可以背書的包以及一個包。因此,導入包的另一個捆綁包可以連接到任一個導出器(取決於版本限制等)。

所以你可以把這個罐子放在你認可的位置,需要確保系統軟件包正在導出這些軟件包。請參閱http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/Constants.html#FRAMEWORK_SYSTEMPACKAGES_EXTRAhttp://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/Constants.html#FRAMEWORK_SYSTEMPACKAGES。或者,您可以製作這些導出包並安裝這些包的jar包。

相關問題