DATACMNS-482 - Added serialization support for Geospatial Types.

Added Serializable marker interface to Shape to make all geospatial types serializable. Changed equals implementation in GeoResults to use equals(…) instead of reference equality.

Original pull request: #77.
DATACMNS-450 - Prepare release 1.8.0.M1.

Updated pom.xml, readme and changelog.
DATACMNS-450 - Release version 1.8.0.M1.
DATACMNS-450 - Prepare next development iteration.
DATACMNS-484 - Fix grammar in exception message of RepositoryFactorySupport.

Original pull request: #78.
DATACMNS-485 - Fixed bug in ParameterizedTypeInformation.hashCode().

Previously, ParameterizedTypeInformation.hashCode() had been inconsistent to equals in case of a fully resolved parameterized type. This is now fixed by not including the parent reference in case a parameterized type is resolved completely.

Also, TypeDiscoverer.getActualType() does not return the component type for non-collection/non-maps anymore to make sure we don't accidentally unwrap parameterized types.
DATACMNS-486 - Added ParsingUtils helper class to easily transform camel case Strings.

Refactored XmlRepositoryConfigurationSource to use the newly introduced type.
DATACMNS-485 - Fixed false negative type alias detection in MappingContextTypeInformationMapper.

MappingContextTypeInformationMapper now considers the raw type only for type alias conflict detection.
DATACMNS-485 - API improvements to in TypeInformationMapper area.

The default implementations of the TypeInformation Mapper interfaces now work with ClassTypeInformation where possible to express they only map raw types effectively.

Added TypeInformation.getRawTypeInformation() to easily turn whatever TypeInformation into the raw type representation. Changed ClassTypeInformation.from(…) to return ClassTypeInformations directly.
DATACMNS-483 - Support for wrapper types as return types for repository methods.

The repository method invocation mechanism now post-processes the result of the actual method invocation in case it's not type-compatible with the return type of the invoked method and invokes a conversion if applicable. This allows us to register custom converters for well-known wrapper types. We currently support Optional from both Google Guava and JDK 8.

Implementation notice

We use some JDK 8 type stubs from the Spring Data Build project to be able to compile using JDKs < 8. This is necessary as we need to remain compatible with Spring 3.2.x for the Dijkstra release train and our test executions still run into some issues with it a Java 8 runtime (mostly ASM related). These issues were reported in [0, 1] and we'll probably get off the hack for Dijkstra GA by upgrading to Spring 3.2.9.

[0] https://jira.spring.io/browse/SPR-11719
[1] https://jira.spring.io/browse/SPR-11718
DATACMNS-483 - Added test case for recursive object wrapper resolution.

AbstractRepositoryMetadata now correctly resolves the domain type in case it's nested in multiple levels of wrapper types.
DATACMNS-491 - Add support for configuring null handling hints in Sort.Order.

Null handling hints can now be configured on Order as being either NATIVE (we let the data store decide how to order nulls), NULLS_FIRST or NULLS_LAST.

This is the foundation for custom null-handling in other data store support modules like SD JPA and SD MongoDB.

Original pull request: #79.
DATACMNS-491 - Polishing of null handling API in Sort.Order.

Fixed @since-tags, added author tags where appropriate, fixed copyright header in SortUnitTests. Removed unnecessary formatting line comments. Renamed nullHandlingHint to nullHandling inside Order. Changed builder method signatures to be consistent with with(…) methods defining the direction.

Fixed copy & paste test in SortUnitTests.

Original pull request: #79.
DATACMNS-492 - RepositoryConfigurationDelegate now expects an Environment.

Added a constructor to RepositoryConfigurationDelegate that takes an additional Environment instance to make sure we can equip ClasspathScanningCandidateComponentProviders with Environments to make sure they only find components matching the environment.

Retain the old constructor by defaulting to the Environment the ResourceLoader potentially contains or even a StandardEnvironment in worse cases. This is primarily to not break existing clients. Those should be upgraded to use the new constructor, of course.

Needed to add an additional guard in BeanDefinitionRegistrarSupport as Spring 3.2.8 fails to invoke EnvironmentAware (filed SPR-11744 for that). This should be removed once we upgrade to Spring 3.2.9.

Related pull request: #80.
Related tickets: DATACMNS-493, DATACMNS-494, SPR-11744.
DATACMNS-496 - Version.parse(…) now drops non-numeric artifacts.

Version parsing failed when given version contained non-numeric parts (like 2.0.0-rc1). We now strip everything after the first non numeric part to create a logical version equivalent of the source String.

Original pull request: #81.
DATACMNS-489 - Support for Future<T> as return value wrapper for repository methods.

Added a converter to process a NullableWrapper into a Future by producing an AsyncResult. This is to support repository methods annotated with @Async and returning a Future<T>. With Spring's asynchronous method invocation support activated this will cause the repository method being executed asynchronously.

Note, that this currently only works on Spring 4 as Spring 3.2.8 async support is not discovering the introduction on the repository proxy and thus fails to discover the @Async annotation on the repository method. This will be resolved in Spring 3.2.9, see the related tickets.

Related tickets: DATACMNS-483, SPR-11725, DATACMNS-499.
DATACMNS-500 - Removed Jackson 1 dependency.
DATACMNS-495 - Prepare 1.8.0.RC1.

Removed compiler warnings (obsolete @SuppressWarnings and obsolete code). Upgraded to Spring HATEOAS 0.11.0.
DATACMNS-495 - Forward port changelog entries from bugfix branch.
DATACMNS-495 - Removed obsolete headline from readme.txt.