Upload
mguillem
View
1.662
Download
1
Embed Size (px)
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?