如何将Liferay portlet转换为OSGI包?

时间:2011-12-15 07:55:04

标签: spring osgi bundle liferay portlet

我的服务器出了些问题所以我构建了我的portlet并在liferay portlet容器上进行了本地测试。我使用portlet 2.0 API for Java和JSR 286标准。 portlet是使用Spring框架构建的,它们可以在我的本地机器上运行。

我的问题是如何将一个基于Spring的portlet转换为一个OSGI包?我在当前的portlet中需要调整什么才能满足OSGI包的需要?

我正在使用eclipse来开发portlet和ant来将它们打包到war文件中,并且不知道如何使用ant将它打包到osgi bundle jar中。

谢谢!

2 个答案:

答案 0 :(得分:3)

您应该使用bnd ant任务将插件打包为wab。请参阅http://www.aqute.biz/Bnd/Ant

这里有一些例子:https://github.com/rotty3000/liferay-plugins/tree/OSGi/portlets/osgi-admin-portlet

答案 1 :(得分:0)

您需要分解应用程序并决定如何使用OSGi模块层。例如,导出API(JRS-API)和其他导出它们的捆绑包之一。

如果您要进入该路径,最初您将遇到ClassNotFounds和ClassCastsException等问题。但是,一旦你度过这段时间,你将能够利用OSGi服务/多个版本等酷炫功能。

Eclipse为OSGi包开发提供了出色的工具支持。恕我直言,你没有必要运行蚂蚁任务。如果您使用的是maven,那么您可以使用felix-bundle插件来创建捆绑包。

另一种选择是创建一个包含所有依赖项的巨大包 - 内联。它会工作,但你再次使用OSGi的力量。 :)

HTH。