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