UP-3477 Clean up logging and logic for mutex handling
UP-3477 Significant refactoring of JPA DAOs

Create base JPA DAO classes for each persistence context. These provide
the EntityManager, TransactionOperations and Transactional meta-annotations
for concrete DAO implementations.

Create base JPA DAO test classes. These parallel the base JPA DAO classes
and provide the required context for the JPA DAO unit tests.

Add indexes to PersistentPortalEvent for better aggregation query performance

Add indexes to LoginAggregationImpl for better aggregation query performance

Add EntityManager lifecycle events

Add EntityManager lifecycle scoped cache. This is useful for some very high-
volume JPA daos that need to cache entities for the duration of the EntityManager's
life

Set the EntityManager to COMMIT FlushMode for event aggregation to prevent early
flushes from killing performance.

Add EventAggregationContext interface which IPortalEventAggregators can use to store
information for the duration of an event aggregation session. This relieves the need
to run queries more than once during an aggregation session and provides a place to
store newly created entities for later use in the same session.

Enable batching of JDBC insert/update/delete to reduce the number of database round
trips required.

Conflicts:

	uportal-war/src/main/resources/properties/contexts/schedulerContext.xml
	uportal-war/src/test/java/org/jasig/portal/test/BaseJpaDaoTest.java
	uportal-war/src/test/resources/log4j.properties
UP-3477 Refactor EventSession filtering

Move filtered session tracking into the aggregation context
UP-3451 Fix cleanup of tag tracking to remove cleaned out tag sets
UP-3477 Clean up EntityManager related caching
UP-3477 Working on event aggregation

Conflicts:

	uportal-war/.springBeans
UP-3477 Complete SQL design for query by date/time

Conflicts:

	events.sql
UP-3477 Get date+time range queries working

Also get uncompleted login aggregation query working
UP-3477 Add concurrent user aggregator

Conflicts:

	uportal-war/src/main/data/default_entities/event-aggregation/default.event-aggregation.xml
UP-3477 Reduce aggregator code duplication

Create common public/private interfaces for aggregations
Create base event aggregator which can operate on all BaseAggregationImpl objects
UP-3477 Create common base DAO for aggregations

Move common DAO logic into abstract class
UP-3477 Adding tab aggregations

Refactor base classes to support extendable primary keys for
aggregations
Add tab aggregator
UP-3477 Get extra-keyed aggregations working

Create a common base class for aggregation dao tests
Get tab render aggregation working structurally
Work on more efficient handling of statistics gathering for time based aggregations
UP-3477 Work on getting persistent stats attached to tab aggregation
UP-3477 Complete tab render aggregation
UP-3477 Add support for filtering events at aggregation time
UP-3477 Add portlet execution event aggregation
UP-3477 Cache TX Manager Lookup for @Transacational
UP-3477 Switch JpaStatisticalSummary to an embedded object

To reduce the complexity of the table structure convert
JpaStatisticalSummary into an embedded object so its columns will simply
be part of the parent object.

Add orm.xml to map the commons-math stats objects used in
JpaStatisticalSummary. This bypasses the need for serialization to JSON
and reduces the IO overhead of tracking statistics.
UP-3477 Increase aggregation window

Silence erroneous log messages from hibernate
Conflicts:

	uportal-war/src/main/webapp/WEB-INF/log4j.properties