Equinox:配置Parent classloader
来源:互联网 发布:梧桐叶落天下知秋 编辑:程序博客网 时间:2024/05/21 10:45
可选的其他值有app、ext、fwk。
app对应的SystemClassLoader。即系统类加载器
ext对应的是SystemClassLoader的parent,即扩展类加载器
fwk对应的为启动equinox的classloader。
可在org.eclipse.osgi.baseadaptor.BaseAdaptor看到如下代码
// System property used to set the parent classloader type (boot is the default)
private static final String PROP_PARENT_CLASSLOADER = "osgi.parentClassloader"; //$NON-NLS-1$
// A parent classloader type that specifies the application classloader
private static final String PARENT_CLASSLOADER_APP = "app"; //$NON-NLS-1$
// A parent classloader type that specifies the extension classlaoder
private static final String PARENT_CLASSLOADER_EXT = "ext"; //$NON-NLS-1$
// A parent classloader type that specifies the boot classlaoder
private static final String PARENT_CLASSLOADER_BOOT = "boot"; //$NON-NLS-1$
// A parent classloader type that specifies the framework classlaoder
private static final String PARENT_CLASSLOADER_FWK = "fwk"; //$NON-NLS-1$
// The BundleClassLoader parent to use when creating BundleClassLoaders.
private static ClassLoader bundleClassLoaderParent;
static {
// check property for specified parent
String type = FrameworkProperties.getProperty(BaseAdaptor.PROP_PARENT_CLASSLOADER, BaseAdaptor.PARENT_CLASSLOADER_BOOT);
if (BaseAdaptor.PARENT_CLASSLOADER_FWK.equalsIgnoreCase(type))
bundleClassLoaderParent = FrameworkAdaptor.class.getClassLoader();
else if (BaseAdaptor.PARENT_CLASSLOADER_APP.equalsIgnoreCase(type))
bundleClassLoaderParent = ClassLoader.getSystemClassLoader();
else if (BaseAdaptor.PARENT_CLASSLOADER_EXT.equalsIgnoreCase(type)) {
ClassLoader appCL = ClassLoader.getSystemClassLoader();
if (appCL != null)
bundleClassLoaderParent = appCL.getParent();
}
// default to boot classloader
if (bundleClassLoaderParent == null)
bundleClassLoaderParent = new ParentClassLoader();
}
// Empty parent classloader. This is used by default as the BundleClassLoader parent.
private static class ParentClassLoader extends ClassLoader {
protected ParentClassLoader() {
super(null);
}
}
修改配置。可在eclipse中做小实验调试一番。
run configurations--->arguments000>VM arguments
比如添加:
-Dosgi.ParentClassLoader=ext
- Equinox:配置Parent classloader
- 理解equinox的parent classloader及如何配置
- OSGi#3:ClassLoader中嵌入Equinox
- OSGI EQUINOX 参数配置
- equinox
- Equinox OSGi系列之三 Equinox配置参数详解
- Equinox OSGi系列之三 Equinox配置参数详解
- Equinox OSGi服务器应用程序的配置步骤
- parent pom文件配置
- Equinox OSGi服务器应用程序的配置步骤 (支持JSP页面)
- eclipse 下equinox web 运行环境的包配置列表
- 使用parent属性减少配置
- OSGi——运行工具箱的配置(org.eclipse.equinox.http org.eclipse.equinox.servlet.api)问题
- parent
- parent
- classLoader
- classloader
- ClassLoader
- 创建基于.NET的通用数据库访问层
- CGAL-vc90-mt-sgd.lib
- poj-3264 线段数
- android 之 binder
- 用三个多小时才搞明白的错误:用SqlDataAdapter更新数据
- Equinox:配置Parent classloader
- java线程并发库
- Cache优化的魔力
- “当前上下文中不存在名称”解决
- joj1313
- asp.net调试之-无法在Web服务器上启动调试。未能启动ASP.NET或ATL Server调试
- 创业公司的痛点及药方-法则
- android layout属性
- MVC模式