我必须在 rcp 应用程序中将 p2 与Equinox 转换合并。我的 config.ini 中有这个配置:
osgi.bundles=org.eclipse.equinox.ds@2:\start,org.eclipse.osgi@-1:\start,org.eclipse.core.runtime@start,org.eclipse.equinox.common@2:\开始,org.eclipse.equinox.transforms.xslt@1:\start,org.eclipse.equinox.transforms.xslt.plugin@1:\start osgi.framework.extensions=org.eclipse.equinox.transforms.hook
我的 transform.csv 中有这个
org.eclipse.equinox.p2.ui.sdk,transforms.product,/actionSetUpdate.xslt
在我的激活器中:
public void start(BundleContext context) throws Exception {
super.start(context);
plugin = this;
Dictionary properties = new Hashtable();
properties.put("equinox.transformerType", "xslt");
registration = context.registerService(URL.class.getName(), context.getBundle().getEntry("/transform.csv"), properties);
}
public void stop(BundleContext context) throws Exception {
plugin = null;
super.stop(context);
if (registration != null)
registration.unregister();
}
但它不起作用。
!ENTRY org.eclipse.equinox.transforms.xslt.plugin 4 0 2012-01-23 13:23:07.043 !MESSAGE FrameworkEvent ERROR!STACK 0 org.osgi.framework.BundleException: 激活器 org.eclipse.equinox.internal。用于包 org.eclipse.equinox.transforms.xslt.plugin 的 transforms.xslt.plugin.Activator 在 org.eclipse 的 org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:171) 处无效。 osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:679) 在 org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381) 在 org.eclipse.osgi.framework。 internal.core.AbstractBundle.resume(AbstractBundle.java:389) 在 org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1130) 在 org.eclipse.osgi.framework.internal.core。StartLevelManager.resumeBundles(StartLevelManager.java:559) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL( StartLevelManager.java:457) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java: 438) 在 org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) 在 org.eclipse. .osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) 引起:java.lang.ClassNotFoundException:org.eclipse。org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513) 的 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java) 上的 equinox.internal.transforms.xslt.plugin.Activator :429) 在 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) 在 org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) 在 java.lang。 ClassLoader.loadClass(Unknown Source) at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345) at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229) ) 在 org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:164) ... 12 更多根异常:java.lang.ClassNotFoundException:org.eclipse.equinox。internal.transforms.xslt.plugin.Activator at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429 ) 在 org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) 在 java.lang.ClassLoader 的 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)。 loadClass(Unknown Source) at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345) at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229) at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:164) 在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:第679章.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1130) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559) 在 org.eclipse.osgi .framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457) 在 org.eclipse.osgi.framework.internal .core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243) 在 org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438) 在 org.eclipse。osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1) 在 org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) 在 org.eclipse.osgi.framework.eventmgr。 EventManager$EventThread.run(EventManager.java:340)
!ENTRY org.eclipse.osgi 4 0 2012-01-23 13:23:07.824 !MESSAGE Bundle org.eclipse.equinox.transforms.xslt.plugin_1.0.0.qualifier [59] 未激活。
!ENTRY org.eclipse.osgi 2 0 2012-01-23 13:23:07.996 !MESSAGE 一个或多个捆绑包未解决,因为以下根约束未解决:!SUBENTRY 1 org.eclipse.osgi 2 0 2012-01 -23 13:23:07.996 !MESSAGE 包参考:文件:/C:/Users/CSP/Desktop/eclipse-jee-indigo-SR1-win32-x86_64/eclipse/plugins/org.eclipse.equinox.p2.operations_2。 1.0.v20110511-1821.jar 未解决。!SUBENTRY 2 org.eclipse.equinox.p2.operations 2 0 2012-01-23 13:23:07.996 !MESSAGE 缺少导入的包 org.eclipse.equinox.internal.provisional.configurator_0.0.0。!SUBENTRY 1 org.eclipse.osgi 2 0 2012-01-23 13:23:07.996 !MESSAGE 捆绑参考:文件:/C:/Users/CSP/Desktop/eclipse-jee-indigo-SR1-win32-x86_64/eclipse /plugins/org.eclipse.equinox.p2.ui_2.1.0.v20110601.jar 未解决。!SUBENTRY 2 org.eclipse.equinox.p2。ui 2 0 2012-01-23 13:23:07.996 !MESSAGE 缺少导入的包 org.eclipse.equinox.internal.provisional.configurator_0.0.0。!SUBENTRY 1 org.eclipse.osgi 2 0 2012-01-23 13:23:07.996 !MESSAGE 捆绑参考:文件:/C:/Users/CSP/Desktop/eclipse-jee-indigo-SR1-win32-x86_64/eclipse /plugins/org.eclipse.equinox.p2.director_2.1.0.v20110504-1715.jar 未解决。!SUBENTRY 2 org.eclipse.equinox.p2.director 2 0 2012-01-23 13:23:07.996 !MESSAGE 缺少导入的包 org.eclipse.equinox.internal.provisional.configurator_0.0.0。0.v20110504-1715.jar 未解决。!SUBENTRY 2 org.eclipse.equinox.p2.director 2 0 2012-01-23 13:23:07.996 !MESSAGE 缺少导入的包 org.eclipse.equinox.internal.provisional.configurator_0.0.0。0.v20110504-1715.jar 未解决。!SUBENTRY 2 org.eclipse.equinox.p2.director 2 0 2012-01-23 13:23:07.996 !MESSAGE 缺少导入的包 org.eclipse.equinox.internal.provisional.configurator_0.0.0。
!ENTRY org.eclipse.osgi 2 0 2012-01-23 13:23:08.027 !MESSAGE 以下是未解决的捆绑包的完整列表,如果存在根本原因,请参阅先前的日志条目:!SUBENTRY 1 org.eclipse.osgi 2 0 2012-01-23 13:23:08.027 !MESSAGE Bundle org.eclipse.equinox.p2.director_2.1.0.v20110504-1715 [23] 未解决。!SUBENTRY 2 org.eclipse.equinox.p2.director 2 0 2012-01-23 13:23:08.027 !MESSAGE 缺少导入的包 org.eclipse.equinox.internal.provisional.configurator_0.0.0。!SUBENTRY 1 org.eclipse.osgi 2 0 2012-01-23 13:23:08.027 !MESSAGE Bundle org.eclipse.equinox.p2.operations_2.1.0.v20110511-1821 [28] 未解决。!SUBENTRY 2 org.eclipse.equinox.p2.operations 2 0 2012-01-23 13:23:08.027 !MESSAGE 缺少导入的包 org.eclipse.equinox.internal.p2.director_0.0.0。!SUBENTRY 2 org.eclipse。equinox.p2.operations 2 0 2012-01-23 13:23:08.027 !MESSAGE 缺少导入的包 org.eclipse.equinox.internal.provisional.configurator_0.0.0。!SUBENTRY 2 org.eclipse.equinox.p2.operations 2 0 2012-01-23 13:23:08.027 !MESSAGE 缺少导入的包 org.eclipse.equinox.internal.provisional.p2.director_0.0.0。!SUBENTRY 2 org.eclipse.equinox.p2.operations 2 0 2012-01-23 13:23:08.027 !MESSAGE 缺少导入的包 org.eclipse.equinox.p2.planner_[2.0.0,3.0.0)。!SUBENTRY 1 org.eclipse.osgi 2 0 2012-01-23 13:23:08.027 !MESSAGE Bundle org.eclipse.equinox.p2.ui_2.1.0.v20110601 [30] 未解决。!SUBENTRY 2 org.eclipse.equinox.p2.ui 2 0 2012-01-23 13:23:08.027 !MESSAGE 缺少导入的包 org.eclipse.equinox.internal.p2.director_0.0.0。!子条目 2 org.eclipse.equinox.p2.ui 2 0 2012-01-23 13:23:08.027 !MESSAGE 缺少导入的包 org.eclipse.equinox.internal.provisional.configurator_0.0.0。!SUBENTRY 2 org.eclipse.equinox.p2.ui 2 0 2012-01-23 13:23:08.027 !MESSAGE 缺少导入的包 org.eclipse.equinox.p2.operations_[2.0.0,3.0.0)。!SUBENTRY 2 org.eclipse.equinox.p2.ui 2 0 2012-01-23 13:23:08.027 !MESSAGE 缺少导入的包 org.eclipse.equinox.p2.planner_[2.0.0,3.0.0)。!SUBENTRY 1 org.eclipse.osgi 2 0 2012-01-23 13:23:08.027 !MESSAGE Bundle org.eclipse.equinox.p2.ui.sdk_1.0.200.v20110502-1955 [31] 未解决。!SUBENTRY 2 org.eclipse.equinox.p2.ui.sdk 2 0 2012-01-23 13:23:08.027 !MESSAGE 缺少必需的捆绑包 org.eclipse.equinox.p2.ui_0.0.0。!SUBENTRY 2 org.eclipse.equinox.p2.ui.sdk 2 0 2012-01-23 13:23:08.027 !MESSAGE 缺少可选必需的捆绑包 org.eclipse.compare_0.0.0。!子条目 2 org.eclipse.equinox.p2.ui.sdk 2 0 2012-01-23 13:23:08.027 !MESSAGE 缺少导入的包 org.eclipse.equinox.p2.operations_[2.0.0,3.0.0)。!SUBENTRY 1 org.eclipse.osgi 2 0 2012-01-23 13:23:08.027 !MESSAGE Bundle org.eclipse.equinox.p2.ui.sdk.scheduler_1.0.100.v20110502-1955 [32] 未解决。!SUBENTRY 2 org.eclipse.equinox.p2.ui.sdk.scheduler 2 0 2012-01-23 13:23:08.027 !MESSAGE 缺少必需的捆绑包 org.eclipse.equinox.p2.updatechecker_0.0.0。!SUBENTRY 2 org.eclipse.equinox.p2.ui.sdk.scheduler 2 0 2012-01-23 13:23:08.027 !MESSAGE 缺少必需的捆绑包 org.eclipse.equinox.p2.ui_0.0.0。!SUBENTRY 2 org.eclipse.equinox.p2.ui.sdk.scheduler 2 0 2012-01-23 13:23:08.027 !MESSAGE 缺少导入的包 org.eclipse.equinox.internal.p2.ui.actions_0.0.0。!SUBENTRY 2 org.eclipse.equinox.p2.ui.sdk。调度程序 2 0 2012-01-23 13:23:08.027 !MESSAGE 缺少导入的包 org.eclipse.equinox.internal.p2.ui.query_0.0.0。!SUBENTRY 2 org.eclipse.equinox.p2.ui.sdk.scheduler 2 0 2012-01-23 13:23:08.027 !MESSAGE 缺少导入的包 org.eclipse.equinox.internal.provisional.p2.updatechecker_0.0.0。!SUBENTRY 2 org.eclipse.equinox.p2.ui.sdk.scheduler 2 0 2012-01-23 13:23:08.027 !MESSAGE 缺少导入的包 org.eclipse.equinox.p2.operations_[2.0.0,3.0.0 )。!SUBENTRY 2 org.eclipse.equinox.p2.ui.sdk.scheduler 2 0 2012-01-23 13:23:08.027 !MESSAGE 缺少导入的包 org.eclipse.equinox.p2.ui_[2.0.0,3.0.0 )。!SUBENTRY 1 org.eclipse.osgi 2 0 2012-01-23 13:23:08.027 !MESSAGE Bundle org.eclipse.equinox.p2.updatechecker_1.1.200.v20110502-1955 [33] 未解决。!SUBENTRY 2 org.eclipse.equinox.p2。