jwma Development - PreferencesPersistencePlugin
 
Main | Deployment | Configuration | Architecture | Development | Screenshots | SF Project Site
Index | Overview | Building | API Docs | Credits & Contributors

Introduction


This document is a collection of information and documentation about the PreferencePersistencePlugin.
jwma allows the user to adapt various application related aspects through preferences for available settings. This data has to be made persistent to for availability in subsequent sessions. To allow scaleability and adaptation to a specific site's need, a "plugin" structure taking care for persistence of user settings has been created, allowing to choose the actual storage backend.
The main tasks of the plugin are: The following subsections provide you with more information about architecture, related API and implementation.

Architecture

The basic class diagram for the PreferencePersistencePlugin is shown in Figure 1.

Figure 1: Plugin Classdiagram

The actual preferences are encapsulated in a model, which basically consists of three levels (see Figure 2).

Figure 2: Preferences Model Overview

To understand the various settings and their meaning (i.e. the data that will have to be stored, and it's use or effect), be sure to review the preferences documentation.

Related API Documentation
Implementation Guidelines

If you wish to implement your own PreferencePersistencePlugin, you have to:
  1. Create an implementation for the plugin interface
  2. Create implementations for the preferences and mail identity interfaces (if applicable, they might be already available)
  3. Add all necessary helper and utility classes as well as libraries

To get started, we suggest that you take a look at the available standard implementations, which are contained in the distribution. These are based on Castor (http://castor.exolab.org), and are able to persist as XML files, respectively into various SQL databases (PostgreSQL and MySQL scripts and configuration are provided): Both plugin implementations are using the following preferences and mail identity implementations: Be sure to review these classes (see source code), probably before you start to create your own implementation.

© 2000-2003 jwma team