SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Downloaden Sie, um offline zu lesen
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 (quot;Don't Repeat Yourselfquot;).
   ... 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
Immer mehr Plugins
140


120                                            Letzte Woche: 124 Plugins

100


 80

           Start von
 60        http://www.grails.org/Plugins

 40


 20


 0
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.08
Immer mehr Plugins
140


120                                            Letzte Woche: 124 Plugins

100


 80

           Start von
 60        http://www.grails.org/Plugins

 40                                                          Als Vergleich:
                                                             über 1200 Ruby on Rails Plugins
 20                                                          auf http://agilewebdevelopment.com

 0
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.08
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


WJAX 2008 - Grails Plug-ins verwenden und selbst entwickeln
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
Klassen Namen





    Log Level
Klassen Namen





                        die Meldungen
    Log Level
Klassen Namen





Ziemlich unlesbar!
                        die Meldungen
    Log Level
WJAX 2008 - Grails Plug-ins verwenden und selbst entwickeln
WJAX 2008 - Grails Plug-ins verwenden und selbst entwickeln
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?

Más contenido relacionado

Andere mochten auch

Maquette site web bibliothèques de l'ups(v10-)
Maquette site web bibliothèques de l'ups(v10-)Maquette site web bibliothèques de l'ups(v10-)
Maquette site web bibliothèques de l'ups(v10-)Pierre Naegelen
 
Powerpoint irlande 1
Powerpoint irlande 1Powerpoint irlande 1
Powerpoint irlande 1mandarine47
 
Job positions
Job positionsJob positions
Job positionsvwadycki
 
Réunion du 12 décembre 2010
Réunion du 12 décembre 2010Réunion du 12 décembre 2010
Réunion du 12 décembre 2010idejol
 
Desarrollo De Proyectos Con Visual Basic
Desarrollo De Proyectos Con Visual BasicDesarrollo De Proyectos Con Visual Basic
Desarrollo De Proyectos Con Visual Basicguest01eddce
 
Wie finde ich meinen „google drive
Wie finde ich meinen „google driveWie finde ich meinen „google drive
Wie finde ich meinen „google driveweb20virtuelleph
 
Et le français dans tout ça #47
Et le français dans tout ça #47Et le français dans tout ça #47
Et le français dans tout ça #47Florence Augustine
 
Introduction BRMS Paris JUG 20101109
Introduction BRMS Paris JUG 20101109Introduction BRMS Paris JUG 20101109
Introduction BRMS Paris JUG 20101109Emmanuel Bonnet
 
Aspectos psicosociales de la dictadura en chile
Aspectos psicosociales de la dictadura en chileAspectos psicosociales de la dictadura en chile
Aspectos psicosociales de la dictadura en chileMarco Yañez Olivares
 
Présentation1
Présentation1Présentation1
Présentation1timoter3
 
Versión textual del contenido i
Versión textual del contenido iVersión textual del contenido i
Versión textual del contenido iUSMP Virtual
 
Messe départ pologne
Messe départ pologneMesse départ pologne
Messe départ pologneOutremeuse
 
Rúbrica de curso en linea tics
Rúbrica de curso en linea ticsRúbrica de curso en linea tics
Rúbrica de curso en linea ticsangiesalgado
 
Reasons + Weil + Denn
Reasons + Weil + DennReasons + Weil + Denn
Reasons + Weil + DennPGCEMaster
 
Irene cimas 6 c
Irene cimas 6 cIrene cimas 6 c
Irene cimas 6 cpacitina
 
Ignite-Präsentation Twick.it
Ignite-Präsentation Twick.itIgnite-Präsentation Twick.it
Ignite-Präsentation Twick.itTwick.it
 

Andere mochten auch (20)

Propuesta lorena medina md
Propuesta lorena medina mdPropuesta lorena medina md
Propuesta lorena medina md
 
Maquette site web bibliothèques de l'ups(v10-)
Maquette site web bibliothèques de l'ups(v10-)Maquette site web bibliothèques de l'ups(v10-)
Maquette site web bibliothèques de l'ups(v10-)
 
Powerpoint irlande 1
Powerpoint irlande 1Powerpoint irlande 1
Powerpoint irlande 1
 
iBeacon : une technologie mobile au secours des ventes en magasins
iBeacon : une technologie mobile au secours des ventes en magasinsiBeacon : une technologie mobile au secours des ventes en magasins
iBeacon : une technologie mobile au secours des ventes en magasins
 
Job positions
Job positionsJob positions
Job positions
 
Réunion du 12 décembre 2010
Réunion du 12 décembre 2010Réunion du 12 décembre 2010
Réunion du 12 décembre 2010
 
Receuil madness
Receuil madnessReceuil madness
Receuil madness
 
Desarrollo De Proyectos Con Visual Basic
Desarrollo De Proyectos Con Visual BasicDesarrollo De Proyectos Con Visual Basic
Desarrollo De Proyectos Con Visual Basic
 
Wie finde ich meinen „google drive
Wie finde ich meinen „google driveWie finde ich meinen „google drive
Wie finde ich meinen „google drive
 
Et le français dans tout ça #47
Et le français dans tout ça #47Et le français dans tout ça #47
Et le français dans tout ça #47
 
Introduction BRMS Paris JUG 20101109
Introduction BRMS Paris JUG 20101109Introduction BRMS Paris JUG 20101109
Introduction BRMS Paris JUG 20101109
 
Aspectos psicosociales de la dictadura en chile
Aspectos psicosociales de la dictadura en chileAspectos psicosociales de la dictadura en chile
Aspectos psicosociales de la dictadura en chile
 
Présentation1
Présentation1Présentation1
Présentation1
 
Versión textual del contenido i
Versión textual del contenido iVersión textual del contenido i
Versión textual del contenido i
 
Messe départ pologne
Messe départ pologneMesse départ pologne
Messe départ pologne
 
Rúbrica de curso en linea tics
Rúbrica de curso en linea ticsRúbrica de curso en linea tics
Rúbrica de curso en linea tics
 
Dr. Crispim
Dr. CrispimDr. Crispim
Dr. Crispim
 
Reasons + Weil + Denn
Reasons + Weil + DennReasons + Weil + Denn
Reasons + Weil + Denn
 
Irene cimas 6 c
Irene cimas 6 cIrene cimas 6 c
Irene cimas 6 c
 
Ignite-Präsentation Twick.it
Ignite-Präsentation Twick.itIgnite-Präsentation Twick.it
Ignite-Präsentation Twick.it
 

Ähnlich wie WJAX 2008 - Grails Plug-ins verwenden und selbst entwickeln

Site Speed EXTREME - SEOkomm 2014
Site Speed EXTREME - SEOkomm 2014Site Speed EXTREME - SEOkomm 2014
Site Speed EXTREME - SEOkomm 2014Bastian Grimm
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreGregor Biswanger
 
SNoUG 2015 - Vaadin - XPages 2.0?
SNoUG 2015 - Vaadin - XPages 2.0?SNoUG 2015 - Vaadin - XPages 2.0?
SNoUG 2015 - Vaadin - XPages 2.0?René Winkelmeyer
 
DevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigenDevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigenFotiosKaramitsos
 
Logstash: Open Source Log-Management (Webinar vom 20.02.2014)
Logstash: Open Source Log-Management (Webinar vom 20.02.2014)Logstash: Open Source Log-Management (Webinar vom 20.02.2014)
Logstash: Open Source Log-Management (Webinar vom 20.02.2014)NETWAYS
 
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)Christian Janz
 
Build Automation for Mobile
Build Automation for MobileBuild Automation for Mobile
Build Automation for Mobileinovex GmbH
 
Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007jan_mindmatters
 
OSMC 2014: Icinga Web 2 kann mehr | Thomas Gelf
OSMC 2014: Icinga Web 2 kann mehr | Thomas GelfOSMC 2014: Icinga Web 2 kann mehr | Thomas Gelf
OSMC 2014: Icinga Web 2 kann mehr | Thomas GelfNETWAYS
 
Webinar - ABAP Development Tools
Webinar - ABAP Development ToolsWebinar - ABAP Development Tools
Webinar - ABAP Development ToolsCadaxo GmbH
 
Von Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 MinutenVon Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 MinutenQAware GmbH
 
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!adesso AG
 
EntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedEntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedRené Winkelmeyer
 
Herstellerunabhängige RZ Automatisierung mit orcharhino
Herstellerunabhängige RZ Automatisierung mit orcharhinoHerstellerunabhängige RZ Automatisierung mit orcharhino
Herstellerunabhängige RZ Automatisierung mit orcharhinoATIX AG
 
Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der PraxisTobias Kraft
 
magnolia mit thymeleaf - ein agiler prozess-beschleuniger
magnolia mit thymeleaf - ein agiler prozess-beschleunigermagnolia mit thymeleaf - ein agiler prozess-beschleuniger
magnolia mit thymeleaf - ein agiler prozess-beschleunigerThomas Kratz
 
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)André Krämer
 
Qualitätssicherung in Webprojekten
Qualitätssicherung in WebprojektenQualitätssicherung in Webprojekten
Qualitätssicherung in WebprojektenSebastian Springer
 
Technologievergleich für RIA
Technologievergleich für RIATechnologievergleich für RIA
Technologievergleich für RIAOliver Belikan
 

Ähnlich wie WJAX 2008 - Grails Plug-ins verwenden und selbst entwickeln (20)

Site Speed EXTREME - SEOkomm 2014
Site Speed EXTREME - SEOkomm 2014Site Speed EXTREME - SEOkomm 2014
Site Speed EXTREME - SEOkomm 2014
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
 
SNoUG 2015 - Vaadin - XPages 2.0?
SNoUG 2015 - Vaadin - XPages 2.0?SNoUG 2015 - Vaadin - XPages 2.0?
SNoUG 2015 - Vaadin - XPages 2.0?
 
DevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigenDevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigen
 
Logstash: Open Source Log-Management (Webinar vom 20.02.2014)
Logstash: Open Source Log-Management (Webinar vom 20.02.2014)Logstash: Open Source Log-Management (Webinar vom 20.02.2014)
Logstash: Open Source Log-Management (Webinar vom 20.02.2014)
 
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
Building Enterprise Applications with AngularJS (GDG DevFest Karlsruhe 2014)
 
Build Automation for Mobile
Build Automation for MobileBuild Automation for Mobile
Build Automation for Mobile
 
Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007
 
Ruby on Rails SS09 06
Ruby on Rails SS09 06Ruby on Rails SS09 06
Ruby on Rails SS09 06
 
OSMC 2014: Icinga Web 2 kann mehr | Thomas Gelf
OSMC 2014: Icinga Web 2 kann mehr | Thomas GelfOSMC 2014: Icinga Web 2 kann mehr | Thomas Gelf
OSMC 2014: Icinga Web 2 kann mehr | Thomas Gelf
 
Webinar - ABAP Development Tools
Webinar - ABAP Development ToolsWebinar - ABAP Development Tools
Webinar - ABAP Development Tools
 
Von Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 MinutenVon Maven zu Gradle in 45 Minuten
Von Maven zu Gradle in 45 Minuten
 
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
 
EntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedEntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloaded
 
Herstellerunabhängige RZ Automatisierung mit orcharhino
Herstellerunabhängige RZ Automatisierung mit orcharhinoHerstellerunabhängige RZ Automatisierung mit orcharhino
Herstellerunabhängige RZ Automatisierung mit orcharhino
 
Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der Praxis
 
magnolia mit thymeleaf - ein agiler prozess-beschleuniger
magnolia mit thymeleaf - ein agiler prozess-beschleunigermagnolia mit thymeleaf - ein agiler prozess-beschleuniger
magnolia mit thymeleaf - ein agiler prozess-beschleuniger
 
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
 
Qualitätssicherung in Webprojekten
Qualitätssicherung in WebprojektenQualitätssicherung in Webprojekten
Qualitätssicherung in Webprojekten
 
Technologievergleich für RIA
Technologievergleich für RIATechnologievergleich für RIA
Technologievergleich für RIA
 

WJAX 2008 - Grails Plug-ins verwenden und selbst entwickeln