PluginFramework

Supported plugin types

  • Backend plugins, ie; plugins for aditional transport layers (CalDav for example) .
  • Frontend plugins, plugins that add additional gui elements and processing functionality.
  • Locale packages; Locale packages include language files and translated Markup files

Backend plugin framework

In order to make it possible for plugins to register themselves as a transport layer some elements are needed:
  • Some sort of manifest describing the plugin and its elements. This includes a registration of the new type that can be used in the frontend
  • A Class that can identify for which types the plugin applies
  • Dao implementations for the VEVENTS and TASKS.

Hooks for the frontend plugins

To support the frontend plugins a couple off hooks must be inserted in the components/panels: <-- where should they be implemented??


The hooks themselves could be implemented by events thrown by the components/managers and listeners implemented by the plugins

In addition the frontend must support additional components on its panels.

  • Is it possible to implement this in a wicket way? A Repeater from the wicket-extensions package seems to be able to do the trick. Will it be possible to control the div class given to them?

Plugin format

Is it possible to package a jar (including some sort of manifest) and upload it to the webapp to install a plugin?
  • The classes must be registered with the classloader before the webapp starts (Context listener?)
  • The Listeners implemented by the plugins must be registered in a Session Object / Factory.
  • The frontend components must be added to the panels before they render. When created the panels could lookup the listeners and add them.
  • The managers should lookup the appropriate listeners aswell on creation so that they can be added.

Locale packages

Locale packages are seperated from normal plugin files and are describes by a seperate manifest file.
See the wicket wiki for info on wickets support.

-- IvoVanDongen - 14 Sep 2006

Topic revision: r2 - 18 Sep 2006 - 07:45:07 - IvoVanDongen
 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback