SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
A Simple Plugin
        Architecture for
            Wicket
      Niels van Kampenhout   n.vankampenhout@hippo.nl
      Wander Grevink         w.grevink@hippo.nl




                                                        Wicket Meetup Amsterdam Nov 2007
A Simple Plugin Architecture for Wicket
The Intro

    • Wicket newbies
    • Easy to do cool things with Wicket
    • We like feedback!




                                          http://flickr.com/photos/openthreads/234957983/

A Simple Plugin Architecture for Wicket                Wicket Meetup Amsterdam Nov 2007
The Dream

    • A pluggable GUI




       http://flickr.com/photos/gilest/123760608/




A Simple Plugin Architecture for Wicket             Wicket Meetup Amsterdam Nov 2007
The Use Case

    • Hippo CMS




A Simple Plugin Architecture for Wicket   Wicket Meetup Amsterdam Nov 2007
The Use Case

    • Open architecture
    • Easily customizable, extendible
    • But people want more...!




A Simple Plugin Architecture for Wicket   Wicket Meetup Amsterdam Nov 2007
The Problem

    • Poor customizability on GUI level
    • Changing and recompiling core code necessary




       http://flickr.com/photos/antware/1749436733/



A Simple Plugin Architecture for Wicket               Wicket Meetup Amsterdam Nov 2007
The Problem

    • Many similar but slightly
      different applications
    • Copy paste
    • Forks




                                          http://flickr.com/photos/eqqman/454920412/


A Simple Plugin Architecture for Wicket   Wicket Meetup Amsterdam Nov 2007
The Problem

    • Maintenance hell
    • Support hell




                                          http://flickr.com/photos/eqqman/54508927/


A Simple Plugin Architecture for Wicket          Wicket Meetup Amsterdam Nov 2007
The Solution

    • Generic platform
    • Building blocks




       http://flickr.com/photos/chris-fritz/2011872018/




A Simple Plugin Architecture for Wicket                   Wicket Meetup Amsterdam Nov 2007
The Solution

    • Hippo CMS is just one possible configuration of plugins




       http://flickr.com/photos/17271969@N00/16402704/




A Simple Plugin Architecture for Wicket                  Wicket Meetup Amsterdam Nov 2007
The Solution

    • You can adapt the configuration to your needs




       http://flickr.com/photos/cryptic/294614661/




A Simple Plugin Architecture for Wicket              Wicket Meetup Amsterdam Nov 2007
The Solution

    • Any other configuration of plugins is also possible




       http://flickr.com/photos/liquidx/594302659/




A Simple Plugin Architecture for Wicket              Wicket Meetup Amsterdam Nov 2007
The Tool

    • Wicket




       http://flickr.com/photos/lifeasart/361147812/


A Simple Plugin Architecture for Wicket                Wicket Meetup Amsterdam Nov 2007
The Implementation

    • Prototype




       http://flickr.com/photos/bootload/439400044/




A Simple Plugin Architecture for Wicket               Wicket Meetup Amsterdam Nov 2007
A Wicket page




                                          public RootPanel() {
                                             add(“list”, new ListPanel());
                                             add(“tree”, new TreePanel());
                                             add(“custom”, new SimplePanel());
                                          }




A Simple Plugin Architecture for Wicket          Wicket Meetup Amsterdam Nov 2007
A Wicket page using plugins

                                          public RootPlugin() {
                                          }

                                          Configuration

                                          root:
                                            class = org.example.RootPlugin
                                            children = {list, tree, custom}
                                          list:
                                            class = org.example.listPlugin
                                            children = {}
                                          custom:
                                            class = org.example.simplePlugin
                                            children = {}
                                          tree:
                                            [...]




A Simple Plugin Architecture for Wicket     Wicket Meetup Amsterdam Nov 2007
Plugin configuration

     • Data driven
              Any data store, implement simple interface.
          •

              JCR repository (Jackrabbit)
          •
     • Static
              Initial page setup
          •

              An application is an assembly of plugins
          •
     • Dynamic
              Change plugin configuration at runtime
          •

              Can be triggered by any runtime condition
          •




A Simple Plugin Architecture for Wicket             Wicket Meetup Amsterdam Nov 2007
Global picture

    • A library of Plugins
             Plugins are specialized Panels
         •

             Plugins are packaged in separate jars
         •
    • Tiny core
             Reads plugin configuration
         •

             Loads and assembles plugins
         •

             Manages inter-plugin communication (event based)
         •

             Core model classes
         •

             Abstract base classes for common GUI elements
         •




A Simple Plugin Architecture for Wicket              Wicket Meetup Amsterdam Nov 2007
What's next




    • Load plugins from configuration data store
             Jackrabbit repository classloader
         •

             Wicket upload plugin plugin
         •

             Add or change plugins at runtime
         •




A Simple Plugin Architecture for Wicket          Wicket Meetup Amsterdam Nov 2007
Demo




    • Change plugin configuration at runtime
             Manually by filling in a form
         •

             Triggered by a runtime condition (user credentials)
         •




A Simple Plugin Architecture for Wicket             Wicket Meetup Amsterdam Nov 2007

Más contenido relacionado

La actualidad más candente

Extra aem development tools by Justin Edelson
Extra aem development tools by Justin EdelsonExtra aem development tools by Justin Edelson
Extra aem development tools by Justin Edelson
AEM HUB
 
JPQL/ JPA Activity 1
JPQL/ JPA Activity 1JPQL/ JPA Activity 1
JPQL/ JPA Activity 1
SFI
 

La actualidad más candente (20)

An easy guide to Plugin Development
An easy guide to Plugin DevelopmentAn easy guide to Plugin Development
An easy guide to Plugin Development
 
Extra aem development tools by Justin Edelson
Extra aem development tools by Justin EdelsonExtra aem development tools by Justin Edelson
Extra aem development tools by Justin Edelson
 
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
 
The Future Of WordPress Presentation
The Future Of WordPress PresentationThe Future Of WordPress Presentation
The Future Of WordPress Presentation
 
Stencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrivedStencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrived
 
Writing a Jenkins / Hudson plugin
Writing a Jenkins / Hudson pluginWriting a Jenkins / Hudson plugin
Writing a Jenkins / Hudson plugin
 
Jenkins Plugin Development With Gradle And Groovy
Jenkins Plugin Development With Gradle And GroovyJenkins Plugin Development With Gradle And Groovy
Jenkins Plugin Development With Gradle And Groovy
 
Writing your Third Plugin
Writing your Third PluginWriting your Third Plugin
Writing your Third Plugin
 
Building Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience ManagerBuilding Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience Manager
 
Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM
 
Crash Course in AngularJS + Ionic (Deep dive)
Crash Course in AngularJS + Ionic (Deep dive)Crash Course in AngularJS + Ionic (Deep dive)
Crash Course in AngularJS + Ionic (Deep dive)
 
React Native
React NativeReact Native
React Native
 
Migrating to Git: Rethinking the Commit
Migrating to Git:  Rethinking the CommitMigrating to Git:  Rethinking the Commit
Migrating to Git: Rethinking the Commit
 
Q4E and Eclipse IAM, Maven integration for Eclipse
Q4E and Eclipse IAM, Maven integration for EclipseQ4E and Eclipse IAM, Maven integration for Eclipse
Q4E and Eclipse IAM, Maven integration for Eclipse
 
Building mobile applications with DrupalGap
Building mobile applications with DrupalGapBuilding mobile applications with DrupalGap
Building mobile applications with DrupalGap
 
Eclipse IAM, Maven Integration For Eclipse
Eclipse IAM, Maven Integration For EclipseEclipse IAM, Maven Integration For Eclipse
Eclipse IAM, Maven Integration For Eclipse
 
JPQL/ JPA Activity 1
JPQL/ JPA Activity 1JPQL/ JPA Activity 1
JPQL/ JPA Activity 1
 
Maven, Eclipse And OSGi Working Together
Maven, Eclipse And OSGi Working TogetherMaven, Eclipse And OSGi Working Together
Maven, Eclipse And OSGi Working Together
 
Thoughts on Component Resuse
Thoughts on Component ResuseThoughts on Component Resuse
Thoughts on Component Resuse
 
SharePoint PowerShell for the Admin and Developer - A Venn Diagram Experience
SharePoint PowerShell for the Admin and Developer - A Venn Diagram ExperienceSharePoint PowerShell for the Admin and Developer - A Venn Diagram Experience
SharePoint PowerShell for the Admin and Developer - A Venn Diagram Experience
 

Similar a A Simple Plugin Architecture for Wicket

Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
Ted Won
 
WebKit for Wayland (Web Engines Hackfest 2014)
WebKit for Wayland (Web Engines Hackfest 2014)WebKit for Wayland (Web Engines Hackfest 2014)
WebKit for Wayland (Web Engines Hackfest 2014)
Igalia
 
blueMarine Or Why You Should Really Ship Swing Applications
blueMarine  Or Why You Should Really Ship Swing  Applications blueMarine  Or Why You Should Really Ship Swing  Applications
blueMarine Or Why You Should Really Ship Swing Applications
Fabrizio Giudici
 
Open stack summit surviving your first checkin
Open stack summit surviving your first checkinOpen stack summit surviving your first checkin
Open stack summit surviving your first checkin
Colin McNamara
 
OpenStack-Summit-Surviving-Your-First-Checkin.pptx
OpenStack-Summit-Surviving-Your-First-Checkin.pptxOpenStack-Summit-Surviving-Your-First-Checkin.pptx
OpenStack-Summit-Surviving-Your-First-Checkin.pptx
OpenStack Foundation
 

Similar a A Simple Plugin Architecture for Wicket (20)

Jenkins X - automated CI/CD solution for cloud native applications on Kubernetes
Jenkins X - automated CI/CD solution for cloud native applications on KubernetesJenkins X - automated CI/CD solution for cloud native applications on Kubernetes
Jenkins X - automated CI/CD solution for cloud native applications on Kubernetes
 
Conf 2018 Track 2 - Custom Web Elements with Stencil
Conf 2018 Track 2 - Custom Web Elements with StencilConf 2018 Track 2 - Custom Web Elements with Stencil
Conf 2018 Track 2 - Custom Web Elements with Stencil
 
Wicket Portlet Primer
Wicket Portlet PrimerWicket Portlet Primer
Wicket Portlet Primer
 
Building Blueprint With Gwt
Building Blueprint With GwtBuilding Blueprint With Gwt
Building Blueprint With Gwt
 
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
 
MySQL creative programming
MySQL creative programmingMySQL creative programming
MySQL creative programming
 
DockerCon EU 2015: Trading Bitcoin with Docker
DockerCon EU 2015: Trading Bitcoin with DockerDockerCon EU 2015: Trading Bitcoin with Docker
DockerCon EU 2015: Trading Bitcoin with Docker
 
High Performance Php My Sql Scaling Techniques
High Performance Php My Sql Scaling TechniquesHigh Performance Php My Sql Scaling Techniques
High Performance Php My Sql Scaling Techniques
 
Embedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceEmbedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to Maintenance
 
WebKit for Wayland (Web Engines Hackfest 2014)
WebKit for Wayland (Web Engines Hackfest 2014)WebKit for Wayland (Web Engines Hackfest 2014)
WebKit for Wayland (Web Engines Hackfest 2014)
 
blueMarine Or Why You Should Really Ship Swing Applications
blueMarine  Or Why You Should Really Ship Swing  Applications blueMarine  Or Why You Should Really Ship Swing  Applications
blueMarine Or Why You Should Really Ship Swing Applications
 
2015 DockerCon Using Docker in production at bity.com
2015 DockerCon Using Docker in production at bity.com2015 DockerCon Using Docker in production at bity.com
2015 DockerCon Using Docker in production at bity.com
 
Developing for Plone using ArchGenXML / ArgoUML
Developing for Plone using ArchGenXML / ArgoUMLDeveloping for Plone using ArchGenXML / ArgoUML
Developing for Plone using ArchGenXML / ArgoUML
 
Eclipse Plug-in Develompent Tips And Tricks
Eclipse Plug-in Develompent Tips And TricksEclipse Plug-in Develompent Tips And Tricks
Eclipse Plug-in Develompent Tips And Tricks
 
Writing native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScriptWriting native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScript
 
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
Wicket Presentation @ AlphaCSP Java Web Frameworks Playoff 2008
 
Arquitecturas de microservicios - Medianet Software
Arquitecturas de microservicios   -  Medianet SoftwareArquitecturas de microservicios   -  Medianet Software
Arquitecturas de microservicios - Medianet Software
 
Webpack presentation
Webpack presentationWebpack presentation
Webpack presentation
 
Open stack summit surviving your first checkin
Open stack summit surviving your first checkinOpen stack summit surviving your first checkin
Open stack summit surviving your first checkin
 
OpenStack-Summit-Surviving-Your-First-Checkin.pptx
OpenStack-Summit-Surviving-Your-First-Checkin.pptxOpenStack-Summit-Surviving-Your-First-Checkin.pptx
OpenStack-Summit-Surviving-Your-First-Checkin.pptx
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

A Simple Plugin Architecture for Wicket

  • 1. A Simple Plugin Architecture for Wicket Niels van Kampenhout n.vankampenhout@hippo.nl Wander Grevink w.grevink@hippo.nl Wicket Meetup Amsterdam Nov 2007 A Simple Plugin Architecture for Wicket
  • 2. The Intro • Wicket newbies • Easy to do cool things with Wicket • We like feedback! http://flickr.com/photos/openthreads/234957983/ A Simple Plugin Architecture for Wicket Wicket Meetup Amsterdam Nov 2007
  • 3. The Dream • A pluggable GUI http://flickr.com/photos/gilest/123760608/ A Simple Plugin Architecture for Wicket Wicket Meetup Amsterdam Nov 2007
  • 4. The Use Case • Hippo CMS A Simple Plugin Architecture for Wicket Wicket Meetup Amsterdam Nov 2007
  • 5. The Use Case • Open architecture • Easily customizable, extendible • But people want more...! A Simple Plugin Architecture for Wicket Wicket Meetup Amsterdam Nov 2007
  • 6. The Problem • Poor customizability on GUI level • Changing and recompiling core code necessary http://flickr.com/photos/antware/1749436733/ A Simple Plugin Architecture for Wicket Wicket Meetup Amsterdam Nov 2007
  • 7. The Problem • Many similar but slightly different applications • Copy paste • Forks http://flickr.com/photos/eqqman/454920412/ A Simple Plugin Architecture for Wicket Wicket Meetup Amsterdam Nov 2007
  • 8. The Problem • Maintenance hell • Support hell http://flickr.com/photos/eqqman/54508927/ A Simple Plugin Architecture for Wicket Wicket Meetup Amsterdam Nov 2007
  • 9. The Solution • Generic platform • Building blocks http://flickr.com/photos/chris-fritz/2011872018/ A Simple Plugin Architecture for Wicket Wicket Meetup Amsterdam Nov 2007
  • 10. The Solution • Hippo CMS is just one possible configuration of plugins http://flickr.com/photos/17271969@N00/16402704/ A Simple Plugin Architecture for Wicket Wicket Meetup Amsterdam Nov 2007
  • 11. The Solution • You can adapt the configuration to your needs http://flickr.com/photos/cryptic/294614661/ A Simple Plugin Architecture for Wicket Wicket Meetup Amsterdam Nov 2007
  • 12. The Solution • Any other configuration of plugins is also possible http://flickr.com/photos/liquidx/594302659/ A Simple Plugin Architecture for Wicket Wicket Meetup Amsterdam Nov 2007
  • 13. The Tool • Wicket http://flickr.com/photos/lifeasart/361147812/ A Simple Plugin Architecture for Wicket Wicket Meetup Amsterdam Nov 2007
  • 14. The Implementation • Prototype http://flickr.com/photos/bootload/439400044/ A Simple Plugin Architecture for Wicket Wicket Meetup Amsterdam Nov 2007
  • 15. A Wicket page public RootPanel() { add(“list”, new ListPanel()); add(“tree”, new TreePanel()); add(“custom”, new SimplePanel()); } A Simple Plugin Architecture for Wicket Wicket Meetup Amsterdam Nov 2007
  • 16. A Wicket page using plugins public RootPlugin() { } Configuration root: class = org.example.RootPlugin children = {list, tree, custom} list: class = org.example.listPlugin children = {} custom: class = org.example.simplePlugin children = {} tree: [...] A Simple Plugin Architecture for Wicket Wicket Meetup Amsterdam Nov 2007
  • 17. Plugin configuration • Data driven Any data store, implement simple interface. • JCR repository (Jackrabbit) • • Static Initial page setup • An application is an assembly of plugins • • Dynamic Change plugin configuration at runtime • Can be triggered by any runtime condition • A Simple Plugin Architecture for Wicket Wicket Meetup Amsterdam Nov 2007
  • 18. Global picture • A library of Plugins Plugins are specialized Panels • Plugins are packaged in separate jars • • Tiny core Reads plugin configuration • Loads and assembles plugins • Manages inter-plugin communication (event based) • Core model classes • Abstract base classes for common GUI elements • A Simple Plugin Architecture for Wicket Wicket Meetup Amsterdam Nov 2007
  • 19. What's next • Load plugins from configuration data store Jackrabbit repository classloader • Wicket upload plugin plugin • Add or change plugins at runtime • A Simple Plugin Architecture for Wicket Wicket Meetup Amsterdam Nov 2007
  • 20. Demo • Change plugin configuration at runtime Manually by filling in a form • Triggered by a runtime condition (user credentials) • A Simple Plugin Architecture for Wicket Wicket Meetup Amsterdam Nov 2007