使用带外部bundle-path的OSGi包导出Eclipse RAP war

时间:2012-02-06 10:00:53

标签: eclipse export osgi eclipse-rap

我有一个Eclipse RAP产品,我喜欢导出为在Tomcat中使用的Web应用程序。为此我在Eclipse中使用warproduct导出器,直到现在它已经正常工作。

我在产品中编译其中一个OSGi包时遇到问题,因为它指的是一组使用变量替换的外部jar。这显示在MANIFEST.MF

的以下片段中
Bundle-Name: ...
Bundle-SymbolicName: ...
Bundle-ClassPath2: external:/A/test1/jakarta-tomcat/shared/lib/a_base.jar
Bundle-ClassPath: external:$A_HOME$/jakarta-tomcat/shared/lib/a_base.jar

如果我使用第一个类路径并且具有正确的/A/test1/jakarta-tomcat/shared/lib/a_base.jar,那么在编译期间一切都很好......我甚至可以手动将MANIFEST.MF更改为正确的版本替代。

但是,如果可能的话,我真的想避免这个额外的步骤!

我认为问题是如何在编译期间为A_HOME传递适当的值?

(为什么这样?上面,我只展示了一个jar文件,但是我们想要在旧的Tomcat应用程序和更新的基于RAP的应用程序之间共享更多的jar文件。我们知道,还有其他方法在这种情况下共享jar - 例如通过OSGi框架扩展器或extendedFrameworkExports中的web.xml初始化参数 - 但我们需要选择的方法,因为我们使用EMF,因此不能在Tomcat和Tomcat之间共享EMF元数据Eclipse ......因此不是类对象......)

1 个答案:

答案 0 :(得分:2)

此功能目前在WAR产品工具中不受支持。我建议打开针对Eclipse Libra的bug并定义它们的功能请求。无论如何,我们已经创建了一个示例,如何使用tycho构建一个RAP应用程序非常简单,也许你想看看:https://github.com/eclipsesource/rap-mobile-demos

干杯霍尔格