在日常學(xué)習(xí)和工作中記錄
關(guān)于ClassLoader 問題的分析:
EclipeClassLoader 創(chuàng)建:
獲取ClassLoaderParent 的方法,使用了EclipseAdaptor
Adaptor 的getBundleClassLoaderParent() 如何去定 bundleClassLoaderParent?
如果使用了了boot Classloader 則 ParentClassLoader 是新建的 boot,這里分析看來應(yīng)該使用framework 或者系統(tǒng)的ClassLoader吧。根據(jù)以上的分析,對Triones的啟動環(huán)境進(jìn)行了調(diào)整:
1、直接引用 org.eclipse.osgi 中的啟動包,避免使用反射。注:可以直接調(diào)用EclipseStarter.run(null) 了。
2、將Triones Runtime 拆分成為 triones-core.jar (包括主要的服務(wù)接口 ItrionesFramework 等)和 triones-runtime.jar (Triones Runtime Eclipse插件)。
3、修改 Eclipse 的 config.ini 配置。
# osgi classloader :
osgi.parentClassloader = fwk
根據(jù)上面的分析, fwk 表示使用 FrameworkAdaptor 的ClassLoader 作為OSGi的parent classloader。
bundleClassLoaderParent = FrameworkAdaptor.class.getClassLoader();
Copyright @ 破門 Powered by: .Text and ASP.NET Theme by: .NET Monster