2010-06-17 58 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容器中並沒有太大的區別。