MODE-1763 Changed from using deprecated methods (compatible with 5.1.x) to the newer 5.2.x style configuration builders.
MODE-1834 Corrected federation logic when pessimistic locking is enabled

When Infinispan's PESSIMISTIC locking mode is enabled, ModeShape failed
to properly create and remove federation projections.
This is because PESSIMISTIC mode apparently requires explicit transactions.

Recent changes to upgrade to Infinispan 5.2 and change over to the newer
configuration builder API causes some of these problems to be exposed.
These tests run fine again after the projection management logic was fixed.
MODE-1771 Removed the ISPN 5.1-specific cache settings

Now that we've moved to Infinispan 5.2, this commit removes the
5.1-specific settings and logic that was recently added to the
Schematic framework.

Also adjusted several clustering tests so that the repositories are
cleaned up with a slight delay so that repositories are not shutdown
when they are processing the JGroups view changes from another
repository shutting down.
MODE-1777 - Implemented a JUnit Rule & annotation which allows long running tests to be skipped in certain build profiles
Created a separate integration test & configuration for a repository which stores all its information: data, indexes & binary data in Infinispan.
Corrected compiler warnings
MODE-1822 Changed how transactional workspace caching is done

I identified a number of issues when working on this problem. The
previous change to use a separate workspace cache for each transaction
was not working correctly, because changes persisted (but not committed)
in one SessionCache (e.g., the normal cache used within a JCR Session)
would not be visible to other SessionCache instances (e.g., the one
used by the JCR Session's version manager). Plus, because the workspace
caches are specific to a single named workspace (including the hidden
"system" workspace), changes in one workspace within one transaction
were not visible to the other components participating in that transaction.

A TransactionalWorkspaceCaches class was created to manage the
TransactionalWorkspaceCache instances used by the various session
(and SessionCache instances) participating in a transaction. It keeps
track of a single TransactionalWorkspaceCache for each named workspace
used within each transaction. Additionally, all TransactionalWorkspaceCache
instances within a transaction are thus notified when changes are persisted
but not yet committed. As soon as the transaction is committed, the
TransactionalWorkspaceCache for each workspace used in the transaction
are all cleared, and the AbstractSessionCache instances are notified
and changed. There also was additional wiring so that the
AbstractSessionCache used by a JCR Session are all notified of any
changes to other (temporary) SessionCaches.

Hopefully all of this infrastructure has very little effect on JCR Sessions
that are not used within user transactions. About the only effect is that
the JCR Session will check for a currently-running user transaction (which
should be fast) upon save() and some workspace-write operations;
otherwise, there should be no effect. Any time a JCR Session is created
within a user transaction or used to save within a user transaction, that
session knows about the transaction and uses the transactional workspace
cache infrastructure; only when a session exists prior to the start of a
user transaction does the checking for a current user transaction need
to be done.

Several of the tests in TransactionalTests were modified, and several
were added. Several other tests that started failing were examined, found
to be incorrect, and then corrected.
Minor fixes of compiler warnings
MODE-1822 Improvements to previous commit as recommended by code review
MODE-1823 - Fixed additional problems in WebDAV servlet encoding.
MODE-1848 - Fixed the list of mime-types that is registered by the ImageMetadataSequencer
MODE-1822 Improved how the transactional caches handle persisted-but-not-committed events

This commit includes some minor changes to ensure that all events resulting from a save within
the context of a transaction are properly handled by all transactional workspace caches associated
with that transaction. This will hopefully improve performance by clearing the workspace cache
less frequently.
MODE-1844 - Improved error handling & recovery during startup, so that an exception does not leave the repository in inconsistent state
MODE-1680 The xpath query is not well-formed
MODE-1680: 
Remove unused commented lines
Add more checks at the parsing stage
MODE-1680: Extend query processor to allow use aliased joinings
MODE-1680 Improved support for ORDER BY columns not in SELECT

Improved the behavior of JCR-SQL2 and JCR-QOM queries that use
columns not in the SELECT clause. Such columns are necessary
within the query processing to evaluate the ordering, but are not
to be exposed in the query results. One particular case needed
by the recent XPath improvements (to handle order-by clauses that
involve a property on the child node) resulted in the ORDER BY
column coming from a selector that was not even included in the
SELECT.

A test case recently added in other MODE-1680 commits was modified
to verify the XPath and JCR-SQL2 behavior is as expected. Also added
another query test that uses only JCR-SQL2.
MODE-1853 Add checks to ensure DocumentEditor & ArrayEditor instances are stored

Added a few bits of logic to ensure that any DocumentEditor or ArrayEditor
(which wrap Document and Array objects) are not stored. There were a few
methods that might have been storing them.
Corrected compiler warning
MODE-1855 Added the 'Namespaced' interface to our public API

ModeShape's implementations of 'javax.jcr.Item' all implement this
new interface. So applications can check and cast a Node or Property
(or Version or VersionHistory) to 'Namespaced' so that these methods
can be called.

Added several unit tests to verify the behavior.