WJAX 2008 - Grails Plug-ins verwenden und selbst entwickeln

Preview:

Citation preview

Grails Plugins verwenden und selber entwickeln

Marc Guillemot | Freelancer

Herzlich Willkommen!

Marc Guillemot Freiberuflicher Softwareentwickler Java / Groovy / Grails Open Source:

– Hauptentwickler von HtmlUnit & WebTest

– Groovy Committer http://www.efficient-webtesting.com Blog: http://mguillem.wordpress.com

Agenda

Grails Plugins verwenden– Plugins Quelle

– Plugins installieren und verwenden

– Kurze Plugins Vorstellung Grails Plugins selber entwickeln

– Warum?

– Was kann man machen?

– Wie: Live Beispiel

Grails

Web Framework Groovy Open Source Konvention statt Konfiguration DRY ("Don't Repeat Yourself"). ... Plugins

Grails Plugin

Grails kann nicht alles enthalten Ein Plugin fügt neue Funktionalitäten ein Idealerweise:

– nicht intrusiv

– folgt Grails Prinzipien• Konvention statt Konfiguration• DRY

Grails Plugin Befehle

grails list-plugins grails plugin-info pluginName grails install-plugin pluginName [version]

grails create-plugin [pluginName] grails package-plugin grails release-plugin

Plugins Quelle

http://www.grails.org/Plugins

http://www.grails.org/Plugins

10.10.06 18.01.07 28.04.07 06.08.07 14.11.07 22.02.08 01.06.08 09.09.08 18.12.080

20

40

60

80

100

120

140

Immer mehr Plugins

Start vonhttp://www.grails.org/Plugins

Letzte Woche: 124 Plugins

10.10.06 18.01.07 28.04.07 06.08.07 14.11.07 22.02.08 01.06.08 09.09.08 18.12.080

20

40

60

80

100

120

140

Immer mehr Plugins

Start vonhttp://www.grails.org/Plugins

Letzte Woche: 124 Plugins

Als Vergleich:über 1200 Ruby on Rails Pluginsauf http://agilewebdevelopment.com

Grosse Unterschiede in der Qualität

Veraltete Plugins– ex: Radeox plugin „requires grails 0.5.5”

Verdoppelungen– ex: FCK editor plugin <> FCKeditor plugin

“Brutkasten” für Grails– ex: Testing Plugin wird integriert in Grails 1.1

Zu viele Plugins für diese Präsentation!

Über 120 Plugins 30 Minuten

Zu viele Plugins für diese Präsentation!

Über 120 Plugins 30 Minuten

=> 15 Sek. / Plugin!!!

Eine kleine Plugins Auswahl

XFire Plugin Mail Plugin Quartz Plugin (natürlich) ClamAV Plugin FCKeditor plugin (natürlich) WebTest Plugin

Xfire Plugin

(demo)

Xfire Plugin

(demo)aber auch:● Remoting Plugin● XML-RPC Plugin● Apache Axis2 Plugin● Metro Plugin

Mail Plugin

Mail Plugin

Methode addiert beim Plugin zu allen Controllers

Quartz Plugin

Quartz Plugin

● Neue Artefakten:● Jobs in grails-app/jobs

● Neue Befehle:● grails create-job● grails install-quartz-config

ClamAV Plugin

ClamAV Plugin

Neue Constraint

FCKeditor Plugin

FCKeditor Plugin

FCKeditor Plugin

Tag vom Plugin

FCKeditor Plugin

Canoo WebTest Plugin

Persönliche Empfehlungen

Immer prüfen, ob ein Plugin für das aktuelle Vorhaben existiert

Wenn ja:– experimentieren

– Plugin erweitern wenn nötig

– oder Plugin als Basis für die eigene Entwicklung verwenden

Kontributionen sind immer Willkommen

Plugins selber entwickeln

Plugins selber entwickeln: warum?

Wiederverwendung vom Code– Beispiele:

• Anbindung an ein internes System• Einfache Verwendung von einem existierendem Tool

Trennung von Applikationsteilen=> reduziert Kompilationabhängikeiten

=> einfachere & wartbarere Code

Was kann ein Plugin tun?

Alles oder fast alles Typischerweise:

– neue Services, Views, Taglibs, ..

– neue dynamische Methoden

– eigene Artifakte

– neue Skripte

– ...

Plugin Idee

„Grails Log4J Output verbessern”

Log Level

Log Level

Klassen Namen

Log Level

Klassen Namen

die Meldungen

Log Level

Klassen Namen

die Meldungen

Ziemlich unlesbar!

Die Plugin Idee

?

(demo)

Plugin Struktur

(demo)

(erste Ergebnisse)

Persönliche Wunschliste

Support für Plugins Entwicklung innerhalb eines anderen Projekts

Besserer Testing Support Mehr Helfermethoden für die Installation

(source & lib Path erweitern, i18n Dateien kopieren, ...)

Fragen?

Recommended