Defines usage event instrumentation points and provides implementations for testing.

This package makes usage instrumentation (for statistics, or whatever else you may fancy) pluggable, while avoiding any unnecessary assumptions about how usage events may be transmitted, persisted, or processed.

At appropriate points in the processing of user actions, events may be assembled and "fired". What happens when an event is fired is configurable via the PluginManager. One must configure a plugin for the AbstractUsageEvent class, defined in this package, to select an event processing implementation.

Three "stock" implementations are provided.

{@link org.dspace.usage.PassiveUsageEventListener PassiveUsageEventListener}
absorbs events without taking action, resulting in behavior identical to that of DSpace before this package was added. This is the default if no plugin is configured.
{@link org.dspace.usage.TabFileUsageEventListener TabFileUsageEventListener}
writes event records to a file in Tab Separated Values format.
{@link org.dspace.app.statistics.UsageEventXMLLogger UsageEventXMLLogger}
writes event records to a file in an XML format. Suitable mainly for testing.