Commit Graph

108 Commits

Author SHA1 Message Date
Oliver Gierke
0cf875b358 DATACMNS-320 - Be less restrictive in finding mapping ambiguities.
So far we threw exceptions in case we find the same exception on getters *and* setters. We now allow this scenario in case the annotations are semantically equivalent.
2013-04-25 15:13:42 +02:00
Oliver Gierke
454defc637 DATACMNS-319 - Made Repositories less greedy in looking up beans.
We now don't try to eagerly lookup the beans Repositories shall capture in the constructor anymore but leniently look them up on the first request. Update tests for classes using Repositories alongside.
2013-04-25 11:20:43 +02:00
Oliver Gierke
4303fdf399 DATACMNS-318 - Refined persistence exception translation infrastructure.
Extracted the activation of persistence exception translation into a separate RepositoryProxyPostProcessor. Adapted TransactionalRepositoryFactoryBeanSupport to also register the newly introduced PersistenceExceptionTranslationRepositoryProxyPostProcessor.
2013-04-19 15:18:11 +02:00
Oliver Gierke
8a67259aef DATACMNS-236 - Fixed potential NPEs in SortHandlerMethodArgumentResolver. 2013-04-18 12:15:36 +02:00
Oliver Gierke
8d69459f74 DATACMNS-311 - TypeDiscoverer now also finds properties in type hierarchy.
We now also inspect the entire type hierarchy to lookup a property descriptor to inspect for read methods in case no field is found for a property.
2013-04-12 16:41:39 +02:00
Oliver Gierke
59af5770dd DATAJPA-324 - Test case to show property lookup on interface methods work. 2013-04-05 20:44:40 +02:00
Oliver Gierke
a7820c8cc6 DATACMNS-309 - Fixed lookup of nested properties on TypeDiscoverer.
So far the property lookup of a nested property path (e.g. "foo.bar") failed in cases the head property was not cached already. We now recursively resolve the type information even for an unpopulated cache.
2013-04-05 20:44:27 +02:00
Oliver Gierke
64dada5896 DATACMNS-306 - RepositoryBeanDefinitionBuilder not correctly sets source.
Previously, the RepositoryBeanDefinitionBuilder did not forward the repository configuration's source instance into the built BeanDefinitions. This is now fixed to enable STS track the origin of the BeanDefinition back to the configuration source (an @Enable-annotation or an XML namespace element).
2013-03-28 18:53:17 +01:00
Oliver Gierke
e8b2db8463 DATACMNS-305 - Added toString() methods to PersistentProperty implementations. 2013-03-28 15:50:17 +01:00
Oliver Gierke
fd91313f75 DATACMNS-303 - Added support for count projects in query parsing.
PartTree now supports query methods starting with "count…By" and exposes that fact through an isCountProjection() method to be used by query creators upstream
2013-03-26 14:40:23 +01:00
Oliver Gierke
31618f9198 DATACMNS-299 - Default scope of CDI repository beans to application scope.
Polished JavaDoc along the way.
2013-03-25 17:41:12 +01:00
Johannes Mockenhaupt
596908946d DATACMNS-300 - Fixed exception handling in ReflectionEntityInstantiator.
ReflectionEntityInstantiator now actually throws the wrapped exception created in the catch block handling BeanInstantiationExceptions.

Pull request: #25.
2013-03-25 13:35:09 +01:00
Oliver Gierke
9781f603ea DATACMNS-295 - Expose modify-on-creation flag in XML namespace.
Introduced additional attribute in schema in version 1.6. Added parsing of the attribute.
2013-03-21 15:44:03 +01:00
Oliver Gierke
645a605f58 DATACMNS-304 - Fixed compile error on JDK6.
Changed variable declaration in PageableHandlerMethodArgumentResolver from int to Integer to satisfy JDK6 generics resolution.
2013-03-03 15:28:09 +01:00
Kevin Raymond
a588f43857 DATACMNS-281 - Added support to Order for case insensitive sorts.
Modified the Order class to allow an ignore case flag to be set so that case insensitive sorts could be supported.
2013-02-27 15:17:21 +01:00
Oliver Gierke
b26f09f3b4 DATACMNS-291 - Fixed typo in JavaDoc of CrudRepository. 2013-02-27 14:46:17 +01:00
Oliver Gierke
e11efede4d DATACMNS-236, DATACMNS-117 - Added (Pageable|Sort)HanderMethodArgumentResolvers.
Added HandlerMethodArgumentResolver implementations for Pageable and Sort exposing a new default set of properties (page, size, sort) to resolve pagination and sorting information from the request. To mimic the legacy behavior we expose a (deprecated) LEGACY constant in PageableHandlerMethodArgumentResolver. Clients should move to the new properties structure ASAP. Added unit tests to verify old and new defaulting behavior.

Introduced new annotations @SortDefault (with @SortDefaults wrapper annotation) and @PageableDefault (superseding the legacy @PageableDefaults). The new annotations have more speaking attribute names and the HMAR implementations transparently alias the generic value attribute into a more semantic one (size).

The HMAR implementations implement Spring HATEOAS' UriComponentsContributor to be able to turn Pageable / Sort instances back into URIs created through the MethodLinkBuilderFactory API in Spring HATEOAS.

Extracted common API between legacy PageableArgumentResolver and PageableHandlerMethodArgumentResolver into common helper class.
Upgraded to Spring Hateoas 0.5.0.BUILD-SNAPSHOT.
2013-02-19 13:09:40 +01:00
Oliver Gierke
ed32d83ab3 DATACMNS-287 - Added missing package-info.java files. 2013-02-19 12:47:01 +01:00
Oliver Gierke
9fae10750e DATACMNS-286 - Extended Page/Pageable APIs.
Pageable and Page interfaces now expose API to easily access Pageables pointing to the previous and next Page instance if available.
2013-02-19 12:45:11 +01:00
Oliver Gierke
0aef8c60b7 DATACMNS-283 - MappingInstantiationException captures more context now.
If an exception occurs in ReflectionEntityInstantiator we now capture more context about the failed instantiation.
2013-02-15 18:34:56 +01:00
Oliver Gierke
e093aead13 DATACMNS-117 - Added PageableHandlerArgumentResolver.
Added PageableHandlerArgumentResolver to supersede the now deprecated PageableArgumentResolver. The latter still stays available for Spring 3.0.x based deployments. Updated reference documentation to mention the newly introduced type as well as possible configuration options.
2013-02-12 17:35:15 +01:00
Oliver Gierke
0bbf0aec99 DATACMNS-282 - Improved caching in AnnotationBasedPersistentProperty.
AnnotationBasedPersistentProperty now caches direct annotations on construction but still tries to lookup an annotation as meta-annotation if not found in cache on later requests. Extended try/catch block in AbstractMappingContext.addPersistentEntity(…) to invalidate cache on exceptions during property creation as well.
2013-02-11 15:56:14 +01:00
Oliver Gierke
1564704f0c DATACMNS-279 - Prepare release of version 1.5.0. 2013-02-07 13:53:47 +01:00
Oliver Gierke
80b6dd2217 DATACMNS-278 - Added Converter implementations for JodaTime types.
Upgraded to JodaTime 2.1 based on super pom property definition.
2013-02-06 17:49:24 +01:00
Oliver Gierke
e79035cb42 DATACMNS-277 - Added general documentation on auditing. 2013-01-30 13:51:57 +01:00
Oliver Gierke
3e40413ffe DATACMNS-275 - Introduced getObfuscatedPassword in UserCredentials. 2013-01-29 13:10:36 +01:00
Oliver Gierke
6b49eb4ca5 DATACMNS-276 - Added hashCode() to ParameterizedTypeInformation.
Implemented hashCode() to be as close as possible to the equals(…) implementation.
2013-01-29 13:07:44 +01:00
Oliver Gierke
f18055a4c9 DATACMNS-274 - Fixed package cycle in mapping subsystem.
Updated Sonargraph architecture description along the way.
2013-01-29 10:50:50 +01:00
Oliver Gierke
33a31a25e0 DATACMNS-271 - AnnotationBasedPersistentProperty now caches annotation lookups. 2013-01-28 14:28:12 +01:00
Beverley Talbott
8e3b0cb1e6 DATACMNS-258 - Copyediting of reference documentation. 2013-01-28 12:53:44 +01:00
Biju Kunjummen
979c0f70fb DATAJPA-266 - Polish documentation on pagination.
Fixed information in documentation, 0 indexed Pageable and page.page instead of page for page parameter. Fixes pull request #21.
2013-01-18 09:44:54 +01:00
Oliver Gierke
3a72d56ee8 DATACMNS-266 - Fixed JavaDoc of Page and PageImpl.
Includes pull request #16.
2013-01-18 09:42:12 +01:00
Oliver Gierke
e9e8d4015d DATACMNS-265 - Fixed JavaDoc.
Essentially fixes pull request #22.
2013-01-18 09:33:21 +01:00
Oliver Gierke
afb5ec2ef9 DATACMNS-269 - Add support for mapping annotations on accessor methods.
Mapping annotations are now looked up in the following order: getter, setter, field. Made mapping annotations usable on methods as well.
2013-01-16 17:29:51 +01:00
Oliver Gierke
ac256f9921 DATACMNS-266 - Use new common Maven build infrastructure.
Simplified project setup to be a single module build again. Using Spring Data Build parent POM to simplify project setup. See https://github.com/SpringSource/spring-data-build#spring-data-build-infrastructure
2013-01-16 15:15:24 +01:00
Oliver Gierke
14815dca3a DATACMNS-192 - Updated changelog for 1.4.0.RELEASE. 2012-10-09 14:24:11 +02:00
Oliver Gierke
8344387738 DATAJPA-251 - Updated reference documentation.
Improved code samples for PageableArgumentResolver. Corrected registration info for DomainClassConverter and added JavaConfig example. Replace all obsolete readAll(…) method samples with findAll(…). Added hint to @PageableDefaults now being aware of sort properties and direction.
2012-09-17 16:26:25 +02:00
Oliver Gierke
c8c26baf7c DATACMNS-230 - Clarify packages of Page and Sort in reference docs.
Fully qualified first mentions of Pageable and Sort to avoid ambiguities with types of potentially available types of the same name in a store specific implementation.
2012-09-17 11:24:46 +02:00
Oliver Gierke
e922845407 DATACMNS-220, DATAJPA-174 - Updated reference docs on query parsing.
Updated the repositories reference documentation section on query parsing to reflect the correct usage of method prefixes, how to use the Distinct, IgnoreCase and OrderBy clauses.
2012-09-04 11:05:55 +02:00
Oliver Gierke
7cb77eb1db DATACMNS-217 - Updated changelog for 1.4.0.RC1. 2012-08-23 19:18:28 +02:00
Oliver Gierke
8d156fb591 DATACMNS-210 - Removed references to removed single <repository /> declarations from reference documentation. 2012-08-10 19:46:24 +02:00
Oliver Gierke
628ddc6a35 DATACMNS-205 - Fix broken reference documentation.
The section on the repository exporters contained a code sample using language="javascript". As the highlighting in the docbkx plugin doesn't support javascript as language it will break the build of other reference documents including this one. Removed the language attribute for this sample entirely.
2012-07-24 12:59:56 +02:00
Oliver Gierke
dc18fe2a12 DATACMNS-191 - Prepare changelog for 1.4.0.M1. 2012-07-23 18:36:02 +02:00
Oliver Gierke
5b1fe225b1 DATACMNS-204 - Prepare changelog for 1.3.2. 2012-07-23 17:46:18 +02:00
Oliver Gierke
96795f2980 DATACMNS-47 - Add support for JavaConfig based repository configuration.
Completely rewrote namespace bean definition parsing to be extendable more easily. Separated XML concerns from annotation based configuration. The central point to extend the namespace parsing for a certain module is now hidden behind the RepositoryConfigurationExtension interface (have a look at the RepositoryConfigurationExtensionSupport base class as well).
2012-07-16 19:49:56 +02:00
Oliver Gierke
4a51ce2b84 DATACMNS-189 - Fixed typo in reference documentation. 2012-07-11 12:46:53 +02:00
Oliver Gierke
d441d95197 DATACMNS-58 - Added support for repository populators.
Added RepositoryPopulator abstraction and implementations based on Spring OXM Unmarshallers as well as Jackson. This allows arbitrary repositories being populated with data pulled from XML / JSON, no matter what store they are actually backed. The populator will eventually populate the repositories held in a Repositories instance. It can be used like this:

Repositories repositories = new Repositories(applicationContext);
ResourceReader reader = new JacksonResourceReader();

ResourceReaderRepositoryPopulator populator = new ResourceReaderRepositoryPopulator(reader);
populator.setResourceLocation("classpath*:data.json");
populator.populate(repositories);

The ResourceReader defines what technology shall be used to read the data from the file into objects. The ResourceReaderRepositoryPopulator uses the reader and can either get a set of Resource instances configured or is able to lookup resources using a location string. The actual Repositories instance captures all CrudRepository instances contained inside an ApplicationContext.

The populators can also be used from within XML configuration though the repository namespace elements shown below:

<repository:jackson-populator location="classpath:org/springframework/data/repository/init/data.json" />
		
<repository:unmarshaller-populator location="classpath:org/springframework/data/repository/init/data.xml" unmarshaller-ref="unmarshaller" />

Updated reference documentation accordingly.
2012-06-21 20:03:55 +02:00
Oliver Gierke
ec87165c30 DATACMNS-149 - Updated changelog and pom.xml.
Fixed pom.xml to match requirements of Maven central.
2012-05-16 19:05:05 +02:00
Oliver Gierke
cee108d6e9 DATACMNS-149 - Polished repositories reference documentation. 2012-05-16 16:24:31 +02:00
Oliver Gierke
100d5b3953 DATACMNS-165 - Updated changelog for 1.3.0.RC2 release. 2012-05-02 20:57:14 +02:00