Commit Graph

810 Commits

Author SHA1 Message Date
Oliver Gierke
ccd9cb09e4 DATACMNS-632 - Updated changelog. 2015-01-27 14:35:07 +01:00
Oliver Gierke
77f17b8c22 DATACMNS-637 - Performance improvements.
MappingContextTypeInformationMapper now caches detected type aliases.

PreferredConstructor.isEnclosingClassParameter(…) now eagerly returns if the parameter itself is not an enclosing one and thus avoids a collection lookup and equals check. Moved equals check for the type to the very end of the equals check to increase the chances that other inequality guards kick in earlier.

AbstractMappingContext now leaves the non-null-check for getPersistentEntity(…) to the factory method of ClassTypeInformation.

We now pre-calculate the hash codes for TypeInformation implementations as far as possible as the instances are used as cache keys quite a lot. The same applies to AbstractPersistentProperty.

BasicPersistentEntity now uses an ArrayList we sort during the verify() phase to mimic the previous behavior wich was implemented using a TreeSet as ArrayLists are way more performant when iterating over all elements which doWithProperties(…) is doing which is used quite a lot.

BeanWrapper now avoids the getter lookup if field access is used.

SimpleTypeHolder now uses a CopyOnWriteArrySet to leniently add types detected to be simple to the set of simple types to avoid ongoing checks against the inheritance hierarchy.
2015-01-25 17:46:00 +01:00
Oliver Gierke
3c0157dc1a DATACMNS-563 - Added unit tests to verify enabling one-indexed parameters are considered correctly when resolving Pageables. 2015-01-20 20:20:03 +01:00
Oliver Gierke
f359e936d7 DATACMNS-634 - Polishing.
Simplified type traversal in Repositories.getRepositoryFactoryInfoFor(…) and unit tests.

Original pull request: #110.
2015-01-20 17:55:25 +01:00
Thomas Eizinger
297688c9a9 DATACMNS-634 - Repositories now als returns repositories for super types of a domain class.
In case the repository lookup for a given domain type fails we traverse the given types super-types and try to detect a repository for those.

Original pull request: #110.
2015-01-20 17:55:16 +01:00
Oliver Gierke
dacf34e796 DATACMNS-621 - Polishing.
Simplified implementation of Path conversion. Inlined helper domain types to not to pollute the packages with types that are only used within that very one test class.

Original pull request: #111.
2015-01-20 16:36:22 +01:00
Christoph Strobl
0ce87189ce DATACMNS-621 - QSort now treats nested paths correctly.
We now inspect intermediate path elements to build sort order accordingly.

Original pull request: #111.
2015-01-20 16:27:12 +01:00
Oliver Gierke
332790009b DATACMNS-608 - Updated changelog. 2015-01-20 07:12:28 +01:00
Oliver Gierke
62d3bc168f DATACMNS-585 - Updated changelog. 2015-01-20 07:11:51 +01:00
Oliver Gierke
68a20ebc6e DATACMNS-572 - Updated changelog. 2015-01-20 07:11:13 +01:00
Oliver Gierke
28f92cfa07 DATACMNS-624 - Re-activated Travis builds for spring4, spring41, spring41-next and querydsl-next.
Also activated building on the new container infrastructure to use artifact caching.

Removed JDK 6 and 7 builds as the build on these VMs will fail due to the Optional stub causing NoClassDefFoundErrors.
2015-01-05 18:54:29 +01:00
Oliver Gierke
b9916ab8b7 DATACMNS-616 - Fixed field value lookup for private fields in AnnotationDetectionFieldCallback.
We now make the field detected by the callback accessible so that the value lookup doesn't fail for private fields. Added a few more unit tests to verify behavior.
2014-12-17 17:25:28 +01:00
Oliver Gierke
49a00cb5ec DATACMNS-615 - PageImpl now rejects a total less than the amount of items given.
PageImpl now makes sure that the total given to the constructor is never less than then number of items given to make sure we do not mask broken count calculation by creating an actually invalid instance.

Related ticket: DATAMONGO-1120.
2014-12-16 12:41:58 +01:00
Oliver Gierke
6f4b26bf56 DATACMNS-611 - Improved cache lookups in RepositoryInterfaceAwareBeanPostProcessor.
Refactored predictBeanType(…) to only look up the predicted cached type once.

Related pull request: #108.
2014-12-08 17:55:19 +01:00
Oliver Gierke
71f1592200 DATACMNS-601 - Fixes for most of the SonarQube warnings. 2014-11-26 09:15:34 +01:00
Oliver Gierke
0f448d509c DATACMNS-594 - Fixed creation of type variable map to extend into detected bounds.
The initial setup of the type variable map now unfolds the detected types in the map to make sure we detect all type variables present in the current scope.

Added caching of component and map value TypeInformation instances to avoid repeated creation.
2014-11-14 16:35:23 +01:00
Oliver Gierke
ca377dc075 DATACMNS-590 - Fixed calculation of nested generics in ParentTypeAwareTypeInformation.
So far, the lookup of the type variable map was preferring the type variable maps detected on parent types in nested structures. This caused the concrete type variables in nested types not being considered correctly which caused the type resolution to fall back to the generic bounds.

We now accumulate the type variable maps to avoid having to lookup a certain map in the nesting hierarchy. The core fix is in ParentTypeAwareTypeInformation's constructor and mergeMaps(…) respectively. Simplified the handling of type variable maps and made proper use of generics throughout the class hierarchy.
2014-11-12 14:31:30 +01:00
Thomas Darimont
e02cecd6d0 DATACMNS-583 - DomainClassConverter returns input if given types are the same.
DomainClassConverter now returns input when the source type is identical to the target type. Previously we erroneously tried to convert the sourceType to the idType of the targetType's backing repository. As a side effect we also avoid performing some unnecessary converter hops.

Original pull request: #101.
2014-10-29 09:41:28 +01:00
Thomas Darimont
47e2c84bbc DATACMNS-577 - Improved JavaDoc on QueryDslPredicateExecutor.
Clarified return values if predicates don't match or return multiple results (for the findOne(…) method). Copied summary to the @return tag.

Original pull request: #96.
2014-10-08 06:49:16 +02:00
Thomas Darimont
494221064e DATACMNS-530 - Improve JavaDoc for RepositoryConfigurationSourceSupport.
Removed misleading JavaDoc.

Original pull request: #97.
2014-10-07 15:02:16 +02:00
Oliver Gierke
61dce8af0d DATACMNS-568 - After release cleanups. 2014-08-27 12:37:01 +02:00
Spring Buildmaster
55b7338c54 DATACMNS-568 - Prepare next development iteration. 2014-08-27 02:51:47 -07:00
Spring Buildmaster
783c3ef85c DATACMNS-568 - Release version 1.8.4.RELEASE (Dijkstra SR4). 2014-08-27 02:51:44 -07:00
Oliver Gierke
c3ad453eef DATACMNS-568 - Prepare 1.8.4.RELEASE (Dijkstra SR4). 2014-08-27 11:35:54 +02:00
Oliver Gierke
f1c668c5ca DATACMNS-568 - Updated changelog. 2014-08-27 11:28:04 +02:00
Oliver Gierke
0cd215e9b1 DATACMNS-561 - Updated changelog. 2014-08-27 07:11:22 +02:00
Thomas Darimont
8650b6943c DATACMNS-566 - Allow sorting by QueryDsl operator expressions.
Previously we only allowed to sort by QueryDsl path expressions. With this change we now also support ordering by operator expressions, e.g. yearMonth() on a date property.

Original pull request: #94.
2014-08-26 13:56:55 +02:00
Oliver Gierke
6daf7e2752 DATACMNS-562 - AbstractPersistentProperty doesn't consider maps and collections entities anymore.
The type detection for entity candidates of PersistentProperty instances now consistently handles collection types even if they're used als collection or map values.
2014-08-19 17:54:09 +02:00
Oliver Gierke
33698a7649 DATACMNS-556 - Make annotation validation in AnnotationBasedPersistentProperty more lenient.
Annotations used on both fields and accessors are now only rejected if they're Spring Data annotations (i.e. from the org.springframework.data namespace) and the configurations of these annotations differ.
2014-08-10 13:30:38 +02:00
Oliver Gierke
e62391f825 DATACMNS-558 - Some code cleanups according to the Sonar report. 2014-08-10 12:53:24 +02:00
Oliver Gierke
f98698c5b1 DATACMNS-549 - After release cleanups. 2014-07-28 12:24:56 +02:00
Spring Buildmaster
ff6ddc57a2 DATACMNS-549 - Prepare next development iteration. 2014-07-28 01:35:08 -07:00
Spring Buildmaster
11bd4c090f DATACMNS-549 - Release version 1.8.2.RELEASE (Dijkstra SR2). 2014-07-28 01:35:06 -07:00
Oliver Gierke
e27984e84c DATACMNS-549 - Prepare 1.8.2.RELEASE (Dijkstra SR2). 2014-07-28 10:21:56 +02:00
Oliver Gierke
98943833f8 DATACMNS-549 - Updated changelog. 2014-07-28 10:19:38 +02:00
Oliver Gierke
c65cbccbb4 DATACMNS-549 - Prepare version 1.8.2.RELEASE.
Upgraded to Spring HATEOAS 0.16.0.RELEASE.
2014-07-28 09:54:00 +02:00
Oliver Gierke
91e80f420a DATACMNS-536 - Updated changelog. 2014-07-25 06:12:25 +02:00
Oliver Gierke
f003461256 DATACMNS-547 - @TypeAlias is now @Persistent.
For @TypeAlias annotated types being picked up using entity scanning, the annotation is now @Persistent.

Related tickets: DATAMONGO-992.
2014-07-24 14:14:36 +02:00
Oliver Gierke
81751aa0f0 DATACMNS-546 - PropertyPath has better exception messages now.
PropertyPath now exposes the complete property named the resolution failed for in case it can't resolve a source String. It will expose the part of the Path from the deepest successful resolution result.

Changed the resolution algorithm to use a List instead of a Stack and a fresh instance of the former so that the nested recursion steps keep track of the correct resolution depths.
2014-07-21 18:11:00 +02:00
Oliver Gierke
31d36781f6 DATACMNS-544 - Indicate repository configuration has been active.
RepositoryConfigurationDelegate now registers the store-specific RepositoryConfigurationExtension as lazy-init BeanDefinition so that other parties can detect that definition.
2014-07-18 20:03:31 +02:00
Oliver Gierke
af32b38a2a DATACMNS-543 - Avoid duplicate repository bean registration in XML namespace.
We're now firing the component registration event manually in RepositoryBeanDefinitionParser as ParserContext.registerBeanComponent(…) registers the given BeanComponentDefinition with the registry. As we do that manually before this previously resulted in the BeanDefinition overriding the very same one and container warnings in turn.
2014-07-18 12:22:24 +02:00
Thomas Darimont
196d8ae883 DATACMNS-538 - Updated section on pagination in reference documentation.
Reworked section that contained outdated parameter names and examples.

Original pull request: #91.
2014-07-17 21:49:53 +02:00
Christoph Strobl
aa83c03542 DATACMNS-527 - Remove links to forum.spring.io.
Linked to spring-data tag on StackOverflow.

Original pull request: #90.
2014-07-09 20:45:12 +02:00
Oliver Gierke
57cf6482f3 DATACMNS-527 - After release cleanups. 2014-06-30 16:54:15 +02:00
Spring Buildmaster
c4f61bb9fc DATACMNS-527 - Prepare next development iteration. 2014-06-30 05:44:19 -07:00
Spring Buildmaster
a7c500bf60 DATACMNS-527 - Release version 1.8.1.RELEASE (Dijkstra SR1). 2014-06-30 05:44:17 -07:00
Oliver Gierke
bee15dd5b2 DATACMNS-527 - Prepare 1.8.1.RELEASE (Dijkstra SR1). 2014-06-30 14:37:45 +02:00
Oliver Gierke
e21b6d46ac DATACMNS-527 - Updated changelog. 2014-06-30 14:37:45 +02:00
Oliver Gierke
0b392758d8 DATACMNS-527 - Upgraded to Java 8 stub in correct version. 2014-06-30 14:36:15 +02:00
Oliver Gierke
b2f9529c2a DATACMNS-528 - Upgraded to Spring HATEOAS 0.14.0.RELEASE. 2014-06-30 14:05:40 +02:00