2010-06-17 9 views
9

Ich habe in letzter Zeit OSGi und ein wenig über Groovy gelernt, bin aber für beide sehr neu. Ich weiß, dass Groovy Teil des Grails-Frameworks ist und dass Grails für eine schnelle Entwicklung gut ist. Eines der wünschenswertesten Features in OSGi ist das Klassenlader-Management und ich glaube, das ist wahrscheinlich immer noch ein Problem mit Grails (korrigiere mich, wenn es falsch ist). Also, ich bin neugierig, ist es möglich oder sogar wünschenswert, Groovy und/oder Grails in einer OSGI-Umgebung zu spielen?Groovy + OSGi oder Grails?

Antwort

6

Es ist ein Grails plugin verfügbar, der eine Grails-Anwendung in ein OSGi-Bundle verwandelt, das auf dem SpringSource dm-Server bereitgestellt werden kann. Der Plugin-Autor hat auch einige blog posts über die Integration von Grails mit OSGi gepostet. Soweit ich weiß, ist die OSGi-Unterstützung des Grails-Frameworks jedoch noch ziemlich begrenzt und wird "nativ" mit Grails 2.0 unterstützt.

3

Meiner Meinung nach hat es keinen wirklichen Vorteil, Ihre gesamte Anwendung als OSGi-Paket zu verpacken, außer dass Sie es in einem OSGi-Container ausführen können. Es macht Ihre Anwendung nicht modularer, weil es immer noch ein großes Bündel ist. Beachten Sie, dass die Verwendung von OSGi nichts vereinfacht, was das Laden von Klassen betrifft. Dies kann zu Problemen führen, wenn Sie Bibliotheken verwenden, die nicht für die Ausführung in einer OSGi-Umgebung ausgelegt sind. Benutze es nur, wenn du einen guten Grund dafür hast. Es ist eine großartige Technologie, aber es wird nichts einfacher oder besser machen, indem man es einfach hineinwirft.

0

Ich neige dazu zu denken, dass andersherum eher vorzuziehen ist: Lassen Sie Grails-Module wie GORM oder GSP in einem laufen OSGi-Container. Alle Groovy- oder Grails-Jars (die Module statt Plugins sind) sind bereits OSGi-kompatibel, daher sollte es kein Problem sein, sie in einem laufenden Container zu installieren. So können Sie die Vorteile beider Ökosysteme kombinieren.

Auf der anderen Seite macht die Bereitstellung einer App, die als riesiges monolithisches Paket in einem OSGi-Container verpackt ist, keinen großen Unterschied im Vergleich zu Tomcat.

Verwandte Themen