2010-06-17 61 views
9

我一直在学OSGi,最近也有一些关于Groovy的内容,但对于两者来说都很新颖。我知道Groovy是Grails框架的一部分,Grails对于快速开发很有好处。 OSGi最令人满意的特性之一是类加载器管理,我相信这可能仍然是Grails的一个问题(纠正我是否错误)。所以,我很好奇是否有可能在OSGI环境中运行Groovy和/或Grails?Groovy + OSGi或Grails?

回答

6

有一个Grails plugin可用,它将Grails应用程序转换为可部署在SpringSource的dm服务器上的OSGi包。该插件作者还发布了一些有关将Grails与OSGi集成的blog posts。然而,据我所知,OSGi对Grails框架的支持仍然相当有限,并且将由Grails 2.0“本地”支持。

3

在我看来,将整个应用程序打包为OSGi包并没有真正的好处,只是可以在OSGi容器中运行。它不会让你的应用程序更加模块化,因为它仍然是一大捆。请注意,使用OSGi不会简化关于类加载的任何操作。当你使用那些没有被设计成在OSGi环境中运行的库时,它会引入问题。除非你有充分理由这么做,否则不要使用它。这是一个很棒的技术,但它不会让任何事情变得更简单或更好,只需将它放入即可。

0

我倾向于认为,反过来更好:让Grails模块像GORM或GSP一样运行OSGi容器。 所有的Groovy或Grails jar(现在是模块而不是插件)已经与OSGi兼容,所以将它们安装到正在运行的容器中应该不成问题。因此,您可以结合两个生态系统的优势。另一方面,与tomcat相比,将一个打包成一个巨大的整体包的应用程序部署到一个OSGi容器中并没有太大的区别。