Commit Graph

1632 Commits

Author SHA1 Message Date
Mark Paluch
0e772a560b DATACMNS-1267 - After release cleanups. 2018-04-04 16:42:33 +02:00
Mark Paluch
c9db62c5c0 DATACMNS-1267 - Prepare next development iteration. 2018-04-04 16:42:30 +02:00
Mark Paluch
6716d15681 DATACMNS-1267 - Release version 2.0.6 (Kay SR6). 2018-04-04 15:53:22 +02:00
Mark Paluch
e058845610 DATACMNS-1267 - Prepare 2.0.6 (Kay SR6). 2018-04-04 15:52:31 +02:00
Mark Paluch
fbd7a42f33 DATACMNS-1267 - Updated changelog. 2018-04-04 15:52:19 +02:00
Mark Paluch
d7661f9d70 DATACMNS-1248 - Updated changelog. 2018-04-04 15:16:19 +02:00
Oliver Gierke
7efaa1b18a DATACMNS-1263 - Polishing.
Fixed nullability constraints on method RepositoryConfigurationExtensionSupport.loadRepositoryInterface(…). Tweaked method declaration order to have public methods first, protected methods after that. Fixed a tiny typo.

Original pull request: #276.
2018-04-04 09:23:39 +02:00
Mark Paluch
8507a1265e DATACMNS-1263 - Allow configuration inspection-classloader customization.
We now allow customizing the configuration inspection-classloader with RepositoryConfigurationExtensionSupport.getConfigurationInspectionClassLoader(…). Subclasses may override this method if a customized/isolated classloader is required.

Original pull request: #276.
2018-04-04 09:22:19 +02:00
Oliver Gierke
3d8576fe4e DATACMNS-1285 - PropertyPath now limits the depth of its parsing to 1000 segments. 2018-04-03 19:44:44 +02:00
Mark Paluch
7ddd0ecac5 DATACMNS-1206 - Polishing.
Convert type array to string to construct the exception message. Slight Javadoc tweaks. Reduce method visibility. Simplify hasDefaultGetter check. Remove superfluous throws declaration. Strip trailing whitespaces. Ignore property descriptors without getter (e.g. indexed properties).

Original pull request: #263.
2018-04-03 09:31:18 +02:00
Oliver Gierke
55f9f04c8f DATACMNS-1206 - Polishing.
Moved PropertyDescriptor lookup into dedicated subclass to group functionality around the type and MethodsMetadata instances. Extracted individual stream handling steps into dedicated methods for better understandability.

Moved MethodsMetadataReader into classreading package for symmetry with Spring Framework's metadata arrangement. Removed manually declared getters in DefaultMethodsMetadataReader in favor of Lombok getters. Inlined MethodsMetadataReadingVisitor into DefaultMethodsMetadataReader as it's only used there.

Original pull request: #263.
2018-04-03 09:31:10 +02:00
Mark Paluch
0883eb9b9c DATACMNS-1206 - Add API to read methods in declaration order.
We now provide MethodsMetadataReader to read method metadata from a class file. MethodMetadata is read for all user-declared methods except for constructors (which are technically methods, too).

MethodsMetadataReaderFactory factory = new MethodsMetadataReaderFactory();
MethodsMetadataReader metadataReader = factory.getMetadataReader("com.acme.Foo");
MethodsMetadata metadata = metadataReader.getMethodsMetadata();

This new API is now used by DefaultProjectionInformation to make sure the order of input properties is based on the declaration order in the projection interfaces. Previously that order could not be guaranteed to be stable.

Original pull request: #263.
2018-04-03 09:30:58 +02:00
Oliver Gierke
fc18199572 DATACMNS-1283 - Removed explicit Jackson version declaration. 2018-03-27 19:20:18 +02:00
Oliver Gierke
ae1dd2741c DATACMNS-1282 - Switched to SimpleEvaluationContext in MapDataBinder. 2018-03-27 16:22:06 +02:00
Oliver Gierke
b0dc8be7f0 DATACMNS-1281 - Fixed potential concurrency issue in MappingAuditableBeanWrapperFactory.
We now use a ConcurrentReferenceHashMap to cache the metadata calculated to prevent ConcurrentModificationExceptions getBeanWrapperFor(…).
2018-03-27 15:59:21 +02:00
Gemini Kim
2e28afb4c7 DATACMNS-1280 - Fixed letter-casing in documentation of Querydsl Extension.
Original pull request: #279.
2018-03-19 11:56:11 +01:00
Oliver Gierke
e21db26bd9 DATACMNS-1278 - Make sure that SimpleTypeHolder always treats enums as simple.
We now explicitly check for an enum type in SimpleTypeHolder.isSimpleType(…) and resort to true immediately. Before that an enum implementing an interface could have seen a false for the actual enum type in case the interface type had been checked first and (correctly) produced a false. In the check for the actual enum type, depending on the iteration order through the cached values we could've hit the cached false for the interface or the cached true value for Enum.
2018-03-12 10:47:38 +01:00
Oliver Gierke
553eefa480 DATACMNS-1277 - Fix invocation of redeclared delete(…) method in ReflectionRepositoryInvoker.
As a consequence of our renaming efforts in CRUD methods, we lost some generics lookup information to distinguish deleteById(ID) from delete(T) solely based on the method parameter type in case of an intermediate generic repository redeclaring the method as the bound is now expanded to Object and not Serializable, as it did in 1.x.

We now rather check for the method name ending in …ById which is much simpler anyway.
2018-03-08 11:41:15 +01:00
Mark Paluch
7e7d4baa31 DATACMNS-1271 - Polishing.
Use ConcurrentHashMap in AnnotationBasedPersistentProperty for thread-safe annotation caching. Reintroduce eager cache check to prevent lambda instances on positive cache hits.
2018-03-01 16:27:43 +01:00
Oliver Gierke
78d21327bb DATACMNS-1271 - Streamlined implementation of AnnotationBasedPersistentProperty to avoid NullPointerExceptions.
We now use the annotation cache's ….computeIfAbsent(…) to avoid inconsistencies between ….contains(…) and ….get(…) in multi-threaded scenarios.
2018-03-01 16:27:42 +01:00
Mark Paluch
b18df23747 DATACMNS-1262 - After release cleanups. 2018-02-28 10:43:35 +01:00
Mark Paluch
6a9ed153f7 DATACMNS-1262 - Prepare next development iteration. 2018-02-28 10:43:34 +01:00
Mark Paluch
70ac316b40 DATACMNS-1262 - Release version 2.0.5 (Kay SR5). 2018-02-28 10:14:58 +01:00
Mark Paluch
4b7bb922a8 DATACMNS-1262 - Prepare 2.0.5 (Kay SR5). 2018-02-28 10:14:05 +01:00
Mark Paluch
a46032ee32 DATACMNS-1262 - Updated changelog. 2018-02-28 10:13:56 +01:00
Oliver Gierke
e9c375be44 DATACMNS-1264 - MapDataBinder now rejects improper property expressions.
We now make sure that type expressions cannot be used in SpEL expressions handled by MapDataBinder. They're gonna be rejected by considering the property not writable. SpEL expression evaluation errors are now forwarded as NotWritablePropertyException to make sure the failure gets handled as if the property referred to doesn't exist.
2018-02-26 21:31:14 +01:00
Mark Paluch
1667311c93 DATACMNS-1250 - After release cleanups. 2018-02-19 20:29:07 +01:00
Mark Paluch
099bcad013 DATACMNS-1250 - Prepare next development iteration. 2018-02-19 20:29:06 +01:00
Mark Paluch
e4fb1e44ec DATACMNS-1250 - Release version 2.0.4 (Kay SR4). 2018-02-19 19:46:53 +01:00
Mark Paluch
08764e1f71 DATACMNS-1250 - Prepare 2.0.4 (Kay SR4). 2018-02-19 19:46:04 +01:00
Mark Paluch
d4eda31bde DATACMNS-1250 - Updated changelog. 2018-02-19 19:45:53 +01:00
Oliver Gierke
0dae46fb6f DATACMNS-1259 - Polishing.
Removed unnecessary imports. Tiny refactoring to pull exception creation into static helper method. Made methods static in test cases where possible.

Original pull request: #273.
2018-02-15 14:37:05 +01:00
Jens Schauder
dc24d2cedd DATACMNS-1259 - Polishing.
Refactored lambdas to method references. Simplified type parameter. Added comment to test to indicate related issue.

Original pull request: #273.
2018-02-15 14:37:02 +01:00
Jens Schauder
c6e50d3c8f DATACMNS-1259 - Fixed support for Long values in Auditables.
Using Instant as internal data type since it's a point in time without time zone which LocalDateTime isn't. Added necessary converters. Fixed one JodaTime converter that used UTC to use SystemDefault like other similar converters.

In case of a conversion failure the error message now contains the source type.

Original pull request: #273.
2018-02-15 14:36:59 +01:00
Christoph Strobl
0b524e1f53 DATACMNS-1186 - Updated changelog. 2018-02-06 11:13:57 +01:00
Oliver Gierke
30033b22bc DATACMNS-1252 - Improved Vavr collection handling to convert between collection types.
If a query method now uses e.g. a Vavr Set as return type, we now also use a potential source List as input for the LinkedHashSet, even if that changes the characteristics (duplicate policy etc.) of the result. This is consistent with our general handling of collections as we're using a Spring ConversionService for collection mapping anyway.

In general the new conversion algorithm is driven by the expected target type first:

- i.v.c.Seq -> i.v.c.List
- i.v.c.Set -> i.v.c.LinkedHashSet
- i.v.c.Map -> i.v.c.LinkedHashMap

If none of the declared types is assignable we fall back to the previous algorithm choosing an implementation as close as possible to the original source value:

- j.u.List -> i.v.c.List
- j.u.Set  -> i.v.c.LinkedHashSet
- j.u.Map  -> i.v.c.LinkedHashMap

Removed some obsolete full qualifications of types.
2018-02-03 21:43:47 +01:00
Oliver Gierke
66224b3cb1 DATACMNS-1243 - Polishing.
Imports and author tags.

Original pull request: #268.
2018-02-01 10:55:43 +01:00
Jens Schauder
0e9f150fa8 DATACMNS-1243 - Add converters from LocalDateTime to Instant and back.
This allows usage of Instant for AuditAware.

Original pull request: #268.
2018-02-01 10:55:43 +01:00
Mark Paluch
8d732bca19 DATACMNS-1220 - After release cleanups. 2018-01-24 13:46:10 +01:00
Mark Paluch
9a858d547a DATACMNS-1220 - Prepare next development iteration. 2018-01-24 13:46:08 +01:00
Mark Paluch
5662c8e731 DATACMNS-1220 - Release version 2.0.3 (Kay SR3). 2018-01-24 13:21:24 +01:00
Mark Paluch
5909b76026 DATACMNS-1220 - Prepare 2.0.3 (Kay SR3). 2018-01-24 13:20:39 +01:00
Mark Paluch
76d8725353 DATACMNS-1220 - Updated changelog. 2018-01-24 13:20:30 +01:00
Mark Paluch
a387355b70 DATACMNS-1249 - Fix line endings to LF. 2018-01-24 12:30:32 +01:00
Mark Paluch
0f76b837e2 DATACMNS-1219 - Updated changelog. 2018-01-24 12:22:05 +01:00
Mark Paluch
d14133bfdc DATACMNS-1245 - Consider Kotlin metadata annotation for Kotlin class kind retrieval.
We now inspect Kotlin's Metadata annotation to determine the kind of a Kotlin class.

Previously we used Kotlins internal API to introspect classes. Because this API is not public and can be changed at any time we rely on Kotlins annotations as they are supposed to not change in near future.

Original pull request: #269.
2018-01-19 13:39:17 +01:00
Oliver Gierke
b7e7615c75 DATACMNS-1246 - Minor optimization in QueryExecutorMethodInterceptor.
We now prevent the superfluous creation of a MethodParameter and TypeDescriptor instance in repository method execution in case the value to be returned already is an instance of the expected method return type.
2018-01-18 17:22:51 +01:00
Oliver Gierke
b5e79798e8 DATACMNS-1242 - Reduced log output for test execution. 2018-01-10 12:09:16 +01:00
Mark Paluch
6bb7e2b061 DATACMNS-1236 - Fix inconsistent Pageable nullability Javadoc.
Fix Javadoc to reflect Pageable's non-nullability. Also, remove pageable field in favor of using Chunk's Pageable getter.
2018-01-09 12:46:56 +01:00
Oliver Gierke
c93e647eeb DATACMNS-563 - Polishing.
Removed obsolete generics. Rearranged some code for better readability.

Original pull request: #267.
2017-12-30 12:14:01 +01:00