Commit Graph

861 Commits

Author SHA1 Message Date
Oliver Gierke
fdbea4c130 DATACMNS-633 - After release cleanups. 2015-01-28 17:35:15 +01:00
Spring Buildmaster
1877047d09 DATACMNS-633 - Prepare next development iteration. 2015-01-28 02:50:25 -08:00
Spring Buildmaster
020b7fcd21 DATACMNS-633 - Release version 1.9.2.RELEASE (Evans SR2). 2015-01-28 02:50:22 -08:00
Oliver Gierke
348ca036be DATACMNS-633 - Prepare 1.9.2.RELEASE (Evans SR2). 2015-01-28 11:43:27 +01:00
Oliver Gierke
dc8276a265 DATACMNS-633 - Updated changelog. 2015-01-28 11:23:19 +01:00
Oliver Gierke
e0b985f536 DATACMNS-632 - Updated changelog. 2015-01-28 09:55:14 +01:00
Oliver Gierke
8febeb5335 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:44:48 +01:00
Oliver Gierke
f9a0ce5258 DATACMNS-563 - Added unit tests to verify enabling one-indexed parameters are considered correctly when resolving Pageables. 2015-01-20 20:20:11 +01:00
Oliver Gierke
229d5648df DATACMNS-634 - Polishing.
Simplified type traversal in Repositories.getRepositoryFactoryInfoFor(…) and unit tests.

Original pull request: #110.
2015-01-20 17:54:54 +01:00
Thomas Eizinger
39556590c3 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:54:42 +01:00
Oliver Gierke
65f784b869 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:33:11 +01:00
Christoph Strobl
3a4c1b026a 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:21 +01:00
Oliver Gierke
dfdae94f89 DATACMNS-608 - Updated changelog. 2015-01-20 07:07:11 +01:00
Oliver Gierke
5528a3bdd6 DAATCMNS-629 - Fixed sample in documentation section for limiting query results. 2015-01-08 09:04:58 +01:00
Oliver Gierke
37fbbd4361 DATACMNS-624 - Reactivated Spring 4.1 build profile for Travis. 2015-01-05 18:23:27 +01:00
Oliver Gierke
a4a6eb1384 DATACMNS-625 - Re-enabled querydsl-next profile for Travis.
Enabled the container based build infrastructure, too, to benefit from resource caching.
2014-12-30 19:46:44 +01:00
Oliver Gierke
f02babd3f8 DATACMNS-620 - Repositories now creates reflective RepositoryInvokers for repositories with redeclared CRUD methods.
If repository interfaces redeclare CRUD methods we need to use a ReflectionRepositoryInvoker rather than the CRUD one to make sure we pick up the customizations applied to the method declaration (e.g. caching or transaction annotations).

This is already fixed in master due to the move to the Spring Data REST RepositoryInvoker API.
2014-12-18 18:57:17 +01:00
Oliver Gierke
a179e4e7df DATACMNS-619 - DefaultCrudMethods now exposes accessible methods.
We now make sure that all methods detected are made accessible so that clients using them can reflectively invoke them without additional checks.
2014-12-18 18:53:10 +01:00
Oliver Gierke
846ab10b01 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:37:01 +01:00
Oliver Gierke
3324b187dd 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:44 +01:00
Oliver Gierke
1151ec88cd 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:14 +01:00
Oliver Gierke
13698073e2 DATACMNS-610 - Extracted QueryExecutionResultHandler from RepositoryFactorySupport.
To be able to verify the conversion of List based query execution results into Sets I extracted a QueryExecutionResultHandler that applies the already implemented handling for Optional types and eventually general prost processing in case the return type declared at the repository query method doesn't match the returned value.

Added additional unit tests for Optional handling.
2014-12-04 20:35:49 +01:00
Oliver Gierke
0cb1cca588 DATACMNS-609 - Improved bean definition registration for repository configuration.
The bean definitions that were registered for a repository configuration setup we registered once for every usage of the repository configuration element (annotation or XML). This caused multiple registrations of the very same bean definition which - as in case of the RepositoryInterfaceAwareBeanPostProcessor - apparently leads to performance problems in the container startup. Feedback for the latter claim is already asked for but we improved the registration setup nonetheless.

Introduced a registerIfNotAlreadyRegistered(…) method on RepositoryConfigurationExtensionSupport to allow easy registration of to-b-registered-once-and-only-once beans. We now hint towards the newly introduced method in registerWithSourceAndGeneratedBeanName(…).
2014-12-01 10:16:08 +01:00
Oliver Gierke
447aca6e9c DATACMNS-601 - Fixes for most of the SonarQube warnings. 2014-11-26 09:15:10 +01:00
Oliver Gierke
806214e332 DATACMNS-591 - RepositoryConfigurationDelegate now uses Environment and ResourceLoader everywhere.
We now also use the Environment and ResourceLoader for the component scan to detect whether multiple Spring Data modules are on the classpath.
2014-11-24 22:39:03 +01:00
Oliver Gierke
e14ba802a7 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:17 +01:00
Oliver Gierke
e943fdeae4 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:26 +01:00
Oliver Gierke
fa44b9f807 DATACMNS-585 - After release cleanups. 2014-10-31 21:34:45 +01:00
Spring Buildmaster
3471a64f79 DATACMNS-585 - Prepare next development iteration. 2014-10-30 04:18:53 -07:00
Spring Buildmaster
b728ea297e DATACMNS-585 - Release version 1.9.1.RELEASE (Evans SR1). 2014-10-30 04:18:49 -07:00
Oliver Gierke
bae378de68 DATACMNS-585 - Prepare 1.9.1.RELEASE (Evans SR1). 2014-10-30 12:14:04 +01:00
Oliver Gierke
9b210d2c3e DATACMNS-585 - Updated changelog. 2014-10-30 12:13:47 +01:00
Thomas Darimont
386644190a 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:22 +01:00
Thomas Darimont
43793f9b3e DATACMNS-580 - Add section on limiting the query results to reference documentation.
Added section explaining the use of first / top keywords to the reference doc.

Original pull request: #99.
2014-10-21 12:31:44 +02:00
Thomas Darimont
36a6c451fa 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:47:58 +02:00
Thomas Darimont
77fe2b1197 DATACMNS-530 - Improve JavaDoc for RepositoryConfigurationSourceSupport.
Removed misleading JavaDoc.

Original pull request: #97.
2014-10-07 15:01:49 +02:00
Oliver Gierke
4e7ad22263 DATACMNS-572 - After release cleanups. 2014-09-05 13:27:09 +02:00
Spring Buildmaster
4dcda97017 DATACMNS-572 - Prepare next development iteration. 2014-09-05 13:26:43 +02:00
Spring Buildmaster
dedfd9010f DATACMNS-572 - Release version 1.9.0.RELEASE (Evans GA). 2014-09-05 01:57:17 -07:00
Oliver Gierke
17c41522a7 DATACMNS-572 - Prepare 1.9.0.RELEASE (Evans GA).
Upgraded to Spring HATEOAS 0.16.0.RELEASE.
2014-09-05 10:48:48 +02:00
Oliver Gierke
880405c391 DATACMNS-572 - Updated changelog. 2014-09-05 09:23:25 +02:00
Oliver Gierke
ca0a3de685 DATACMNS-568 - Updated changelog. 2014-09-05 07:29:01 +02:00
Oliver Gierke
f3d8256a80 DATACMNS-570, DATACMNS-571 - Removed JDK 7 profile for Travis build. 2014-09-01 13:57:51 +02:00
Oliver Gierke
2c7f7e8e04 DATACMNS-571 - Remove custom build infrastructure for Optional.
We now require a JDK to build Spring Data Commons as using the custom Optional type from the Spring Data Build project as it causes the tests to break as Spring 4.1 snapshots load the Optional type to check for it's ability on the classpath which the JVM rejects.
2014-09-01 13:43:11 +02:00
Mark Paluch
6cc9e33359 DATACMNS-565 - Improved detection of custom implementations for CDI repositories.
The detection of the custom implementation has now been moved into the Bean base class to avoid calls to BeanManager.getBeans(…) (which are necessary to pick up the configuration class defining postfixes and the like) happen to early in the CDI container lifecycle.

Related ticket: DATACMNS-557.
2014-09-01 12:46:12 +02:00
Oliver Gierke
8bfa0bd9e0 DATACMNS-570 - Updated build profiles for Travis.
We now use the profiles existing in Spring Data Build for Spring 4.0.x and 4.1.x.
2014-09-01 12:23:18 +02:00
Thomas Darimont
9fc57ea3bf 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:17 +02:00
Oliver Gierke
edfd341d64 DATACMNS-567 - Fixed some glitches in the Asciidoctor files.
Added missing closing backtick in auditing.adoc. Added copyright line to index.adoc and switched to relative level offsets. Use two blank lines at the end of each file consistently. Extracted preface document and added project metadata.
2014-08-22 15:21:05 +02:00
Oliver Gierke
c9dd679cd1 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:53:51 +02:00
Oliver Gierke
77a67021e5 DATACMNS-561 - After release cleanups. 2014-08-13 16:29:31 +02:00