DatabaseStatsRecorder

This is an implementation of IStatsRecorder and IStatsRecorderFactory that logs stats messages to a table in the uPortal database. The username, date/time, and an action message are recorded.

To use this implementation, changes will needed in portal.properties.
First, specify which stats recorder to use:
org.jasig.portal.services.stats.StatsRecorderFactory.implementation=edu.ku.portal.services.stats.DatabaseStatsRecorderFactory

Then, select what to record

org.jasig.portal.services.stats.StatsRecorderSettings.recordLogin=on
org.jasig.portal.services.stats.StatsRecorderSettings.recordLogout=on
org.jasig.portal.services.stats.StatsRecorderSettings.recordSessionCreated=on
org.jasig.portal.services.stats.StatsRecorderSettings.recordSessionDestroyed=on
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelDefinitionPublished=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelDefinitionModified=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelDefinitionRemoved=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelAddedToLayout=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelUpdatedInLayout=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelMovedInLayout=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelRemovedFromLayout=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordFolderAddedToLayout=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordFolderUpdatedInLayout=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordFolderMovedInLayout=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordFolderRemovedFromLayout=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelInstantiated=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelRendered=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelTargeted=on

This implementation was a first attempt at using the stats recorder functionality in uPortal. However, it has functioned well under
loads and doesn't appear to cause any bottle-necks. When KU makes updates to these classes, we'll share them with the community.