DATAJPA-427 - Generate left joins for referenced associations in sort expressions.

Previously sorting by property of an associated object generated an inner join instead of a left join with QueryDsl and Hibernate. That excluded records that had null values on their join columns. We now generate appropriate left joins if we detect associations in the sort property expression.

Ignored test cases for EclipseLink since eclipse link generates an inner-join instead of an outer-join to fetch  associations in order by. Filed: https://bugs.eclipse.org/bugs/show_bug.cgi?id=422450

Original pull request: #53.
DATAJPA-12 - Added Sort implementations for JPA meta-model API and Querydsl.

Introduced JpaSort for sorting by JPA meta-model attribute paths. Introduced JpaMetaModelPathBuilder that can be used to ease the construction of Jpa meta-model attribute paths by the provided static factory method. Added new testing scenario (MailMessage and MailSender) to avoid to mess up the existing sample classes. Enabled static JPA meta-model generation in pom.xml.

Enhanced Querydsl to generate appropriate left joins when sorting by nested (singular) association properties. Converted XML configuration for QueryDslRepositorySupportIntegrationTests into JavaConfig.

Original pull request: #54.
DATAJPA-12 - Design changes in JpaSort.

Decided to go with a simpler way of building up attribute paths on JpaSort to avoid the need to work with JPA Path instances (and thus the EntityManager) entirely. Added shortcut constructors to JpaSort that take a vararg of Attribute or PluralAttribute respectively.

Interestingly, the test cases still have to be integration tests as the  fields in the statically generated meta-model are null until the EntityManagerFactory bootstrap process enhances them to contain actual values. So no real unit tests unfortunately.

Consolidated tests cases for MailMessageRepository into one class, especially to avoid the configuration QueryDslRepositorySupportIntegrationTests to interfere with the newly added tests. Also rather use SampleConfig configuration class to allow the test framework's caching mechanism to kick in.

Original pull request: #54.
DATAJPA-12 - Simplified build setup for meta-model creation.

Consolidated the generation of the static meta-model for test classes into the Querydsl APT plugin.
DATAJPA-430 - Tweaks to be compatible with Hibernate 4.3.

Latest Hibernate 4.3 releases have changes some behavior and internals slightly. Adapted the test cases accordingly and added another guard in JpaMetamodelEntityInformation to adhere to the new behavior.

Added build profile to be able to build against Hibernate 4.3.
DATAJPA-420 - Fixed count projection for manual queries with projections.

Original pull request: #52.
DATAJPA-410 - Improved documentation on jpa:repository namespace.

We now mention that we require a bean with name transactionManager to be present if no transaction-manager-ref is defined.

Original pull request: #47.
DATAJPA-435 - Let Sonar reuse existing test reports.
DATAJPA-444 - Improve detection of PersistenceProvider implementations.

Since the location of the Hibernate EntityManager implementation changed in Hibernate 4.3 to org.hibernate.jpa.HibernateEntityManager, we now support org.hibernate.jpa.HibernateEntityManager as well as  org.hibernate.ejb.HibernateEntityManager as a Hibernate PersistenceProvider.

Original pull request: #55.
DATAJPA-428 - Upgraded to snapshot of Spring Data build parent.
DATAJPA-443 - Upgraded to Hibernate 4.2.8 and 4.3.0.
DATAJPA-446 - Removed generic types from AuditingEntityListener.
DATAJPA-442 - Enable CDI repositories to be instantiated eagerly.

From the CDI extension we now use the callback newly introduced in Spring Data Commons to enable it to trigger eager initialization.

See also: DATACMNS-416.
DATAJPA-448 - Added contribution guidelines.

Linked to the actual contribution guidelines maintained in the Spring Data Build project.
DATAJPA-417 - Upgraded to EclipseLink 2.5.1.

Was able to upgrade to EclipseLink 2.5.1 and re-enable a previously ignored integration tests. However, some of the disabled test cases still fail despite the relevant bug being reported as fixed in 2.5.1.

Turned the workaround in QueryUtils into a TODO for removal as we don't want to strongly force EclipseLink users to upgrade to 2.5.x yet.
DATACMNS-420 - Adapted test cases due to latest changes in Spring Data Commons.
DATAJPA-450 - Removed Spring dependency versions.

Added plugin repository and changed to libs-snapshot to correctly lookup Bundlor and other project dependencies.
DATAJPA-444 - Prefer Hibernate 4.3 provider interface over legacy one.

Accessing the legacy persistence provider class in Hibernate 4.3 causes a warning being logged. As we generally want to detect the presence of Hibernate in general only, we now check for the Hibernate 4.3 persistence provider interface first to immediately find the new interface and thus avoid the warning.

Upgraded to Hibernate 4.3.1.
DATAJPA-445 - Enable constructor injection for EntityManagers.

Enabling repositories now registers a BeanFactoryPostProcessor that will register a SharedEntityManagerCreator BeanDefinition for all EntityManagerFactory definitions available in the ApplicationContext.

We register the bean name of the EMF as qualifier for the BeanDefinition for the EntityManager to allow an explicit reference in multi-EMF scenarios.

Renamed default persistence unit to spring-data-jpa.
DATAJPA-453, DATAJPA-435 - Fixed BeanFactoryPostProcessor handling of BeanFactory hierarchies.

The AuditingBeanFactoryPostProcessor and EntityManagerBeanDefinitionPostProcessor now correctly lookup BeanDefinitions within BeanFactory hierarchies. Also, the EMBDPP registers the EntityManager bean definition in the BeanFactory, the source BeanDefinition for the EntityManagerFactory is found.