Preferences

This page is intended to capture discussion related to appropriate strategies to store preferences in a portal environment.

PortletPreferences

PROS

  • Easy setup, no configuration, convenient
  • Standardized, (JSR-168)
  • Great for saving a small number of values
  • Low footprint (no extra libraries, jars)

CONS

  • Can be difficult to manage with a large number of preferences
  • Only stores and retrieves String values
  • Implementation may be different on different containers
  • Hard to maintain relationships between values if they exist

Custom Preferences (Database, webservice, etc.)

PROS

  • Can manage limitless preferences, large or small
  • Can store and retrieve any object type
  • Can easily maintain relationships (e.g. inheritance between groups, users, multiple instances)

CONS

  • Generally requires custom persistance design & development
  • Requires configuration and setup on the users and developers part
  • Larger footprint (may require extra libraries, jars)
  • Depending on the technology used, may not work on all databases (unsupported operations)

PortletConfig

PortletConfig is probably also worth a mention here – though actual patterns between when to use it versus PortletPreferences has been hazy. JSR-286 has somewhat clarified the distinction, noting that PortletConfig settings are generally those settings made by an administrator that are not intended to be end-user over-rideable, or maybe even end-user visible.

The recommendation seems to also suggest implementing the CONFIG mode if you want to provide an interface to these kind of settings.

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.