Switch branches/tags
Commits on May 18, 2018
  1. DATACMNS-1326 - PersistentPropertyInspectingIsNewStrategy now conside…

    olivergierke committed May 18, 2018
    …rs primitive type's defaults.
    PersistentPropertyInspectingIsNewStrategy now considers entities with primitive default identifier values new.
  2. DATACMNS-1325 - Added dedicated identifier accessor for Persistable e…

    olivergierke committed May 18, 2018
    BasicPersistentEntity now returns a dedicated IdentifierAccessor that uses Persistable.getId() in case the entity implements Persistable.
Commits on May 17, 2018
  1. DATACMNS-1324 - Introduced extensible proxy detection infrastructure.

    olivergierke committed May 17, 2018
    Introduced ProxyUtils.getUserClass(…) that by default is basically a facade for Spring's ClassUtils.getUserClass(…) but allows the registration of ProxyDetector implementations via Spring's SpringFactoriesLoader mechanism.
    Moved all existing usages of ClassUtils.getUserClass(…) to ProxyUtils.
  2. DATACMNS-1295 - After release cleanups.

    christophstrobl committed May 17, 2018
Commits on May 15, 2018
  1. DATACMNS-1258 - Polishing.

    olivergierke committed May 14, 2018
    Moved newly introduced types into the ….data.repository.query package as the parser one contains types that parses queries from method names. Simplified the API surface by hiding SpelExtractor completely and making the API on SpelQueryContext more convenient to directly create a SpelEvaluator.
  2. DATACMNS-1258 - Added infrastructure for SpEL handling in queries.

    schauder authored and olivergierke committed Feb 16, 2018
    The goal is to extract the parts of query parsing that are generic into commons in order to avoid slightly different behavior in modules. 
    Extracted the QuotationMap from Spring Data JPA as well as the part of the parser that deals with extracting SpEL expressions.
    Added the SpelEvaluator for evaluating the SpEL expressions.
    Added enough configurability to satisfy the needs of Neo4j and JPA.
    Mainly to support the different formats for bind parameter :name vs {name}.
Commits on May 14, 2018
  1. DATACMNS-1260 - Extract EvaluationContextProvider and corresponding S…

    olivergierke committed Feb 14, 2018
    …PIs into dedicated package.
    We now have a refined replica of the EvaluationContextProvider API and SPIs in the package. It has seen a bit of a Java 8 overhaul by removing the SPI support class in favor of turning most methods in EvaluationContextExtension into default ones.
    The already existing API has been renamed to QueryMethodEvaluationContextProvider to indicate it's working with additional semantics specific to query methods (i.e. the Parameters metadata). The internals have been refactored to use the new API but still detect implementations of the old EvaluationContextExtension interface. The implementations get wrapped into an adapting proxy to satisfy the new API so that the actual inspection and usage of the extension is now already done using the new APIs.
    The repository configuration has slightly change so that the creation of the EvaluationContextProvider is now taking place within RepositoryFactoryBeanSupport's implementation of BeanFactoryAware.
    AbstractMappingContext is now ApplicationContextAware and holds an ExtensionAwareEvaluationContextProvider using the configured ApplicationContext. That EvaluationContextProvider is forwarded to all MutablePersistentEntity instances. BasicPersistentEntity now exposes getEvaluationContext(…) to subclasses to easily create an EvaluationContext using the extension aware infrastructure.
    Removed DefaultEvaluationContextProvider in favor of a simple constant in QueryMethodEvaluationContextProvider.
    Related tickets: DATACMNS-1258, DATACMNS-1108.
Commits on May 11, 2018
  1. DATACMNS-1315 - Added a cover page for epub output.

    Buzzardo authored and mp911de committed May 3, 2018
    I added a cover page for the epub output, now that the Spring data reference guides will have epub output (through a commit against spring-data-build).
    Original pull request: #290.
Commits on May 8, 2018
  1. DATACMNS-1288 - Updated changelog.

    mp911de committed May 8, 2018
  2. DATACMNS-1287 - Updated changelog.

    mp911de committed May 8, 2018
  3. DATACMNS-1311 - Upgraded to XMLBeam 1.4.15.

    olivergierke committed May 8, 2018
    Related tickets: DATACMNS-1292.
  4. DATACMNS-1292 - Improved default setup of XMLBeam.

    olivergierke committed Apr 11, 2018
    We now explicitly disable entity expansion in the DocumentBuilderFactory used by XMLBeam.
    Introduced constructor in XmlBeamHttpMessageConverter to allow dedicated configuration of an XBProjector instance in case the defaults need tweaking and augmented the web configuration setup to automatically pick up a custom XmlBeamHttpMessageConverter bean instead of our own default if present.
Commits on Apr 19, 2018
  1. DATACMNS-1294 - Enforce JSR-310 type mapping to java.util.Date.

    mp911de committed Apr 19, 2018
    After considering JSR-310 types to be simple we map these types primarily to java.util.Date as the majority of stores does not natively support JSR-310 types. Converters referencing JSR-310 types are now properly annotated with Reading/WritingConverter annotations to distinguish between reading and writing intents.
    Othwerise, converters between JSR-310/java.util types and Joda/ThreeTenBackport to JSR-310 types interfere with conversion as regular java.util.Date types would convert to e.g. LocalDateTime.
Commits on Apr 18, 2018
  1. DATACMNS-1294 - Consider java.time types simple ones.

    mp911de authored and olivergierke committed Apr 13, 2018
    We now consider all types in the java.time package as simple types to prevent deep reflective access. We are already excluding java.lang types for the same reason.
    Original pull request: #286.
Commits on Apr 17, 2018
  1. DATACMNS-1299 - Polishing.

    mp911de committed Apr 17, 2018
    Consider GeoResults as native wrapper to properly unwrap its component type.
Commits on Apr 16, 2018
  1. DATACMNS-1300 - Improved collection query detection for Iterables.

    olivergierke committed Apr 16, 2018
    Previously a custom Iterable implementation would've caused QueryMethod.isCollectionQuery() to return true. We now solely rely on TypeInformation.isCollectionLike() (which checks for exact Iterable, Collection assignability and arrays) after handling potential wrapper types.
  2. DATACMNS-1299 - QueryExecutionsConverters now don't unwrap custom Ite…

    olivergierke committed Apr 16, 2018
    …rable implementations.
    Instead of a simple check for assignability from Iterable, we now properly use TypeInformation.isCollectionLike(), which checks for Iterable equality or assignability of collections or arrays as well as an explicit check for Slice as that is needed to properly unwrap Page instances and Slices themselves. That prevents custom domain types implementing Iterable from being unwrapped into their element types.
Commits on Apr 13, 2018
  1. DATACMNS-1257 - After release cleanups.

    mp911de committed Apr 13, 2018
  2. DATACMNS-1291 - Fix method signature in repository projection documen…

    ChengyuanZhao authored and mp911de committed Apr 13, 2018
    Original pull request: #285.
  3. DATACMNS-1291 - Polishing.

    mp911de committed Apr 12, 2018
    Typo fixes, align Enable…Repositories annotation wording, document reactive return types.
    Original pull request: #281.
  4. DATACMNS-1291 - Documentation full editing pass.

    Buzzardo authored and mp911de committed Apr 5, 2018
    Edited for spelling, punctuation, grammar, and corporate voice. Also added cross-references in a few places.
    Original pull request: #281.
Commits on Apr 12, 2018
  1. DATACMNS-1293 - Polishing.

    mp911de committed Apr 12, 2018
    Fix leftovers pointing to legacy Querydsl packages in Javadoc. Reformat code.
    Original pull request: #284.
  2. DATACMNS-1293 - Fixed Querydsl package reference in QuerydslPredicate…

    RobWin authored and mp911de committed Apr 11, 2018
    …ArgumentResolver Javadoc.
    Original pull request: #284.
Commits on Apr 9, 2018
  1. DATACMNS-1274 - Auditing now can set metadata in nested objects.

    olivergierke committed Mar 31, 2018
    Based on the new infrastructure created by DATACMNS-1275, MappingAuditingMetadata now keeps PersistentPropertyPaths to point to the properties reflecting individual auditing metadata items rather than just PersistentPropertyPaths. With that in place we can now find those items in embedded types of the subject entity based on the detection setup of the MappingContext managing metadata for the entity.
    As that means that multiple paths to a metadata item property can be found, we now use the first path found (the shortest one) for the lookup of the modification date.
    Related tickets: DATACMNS-1275.
  2. DATACMNS-1275 - Introduced MappingContext.findPersistentPropertyPaths…

    olivergierke committed Mar 6, 2018
    …(Class<?>, Predicate<P>).
    MappingContext now exposes a method to detect all property paths pointing to properties matching a given predicate.
    Extracted PersistentPropertyPath creation into a dedicated factory class so that it can be tested individually. DefaultPersistentPropertyPath now exposes a ….containsPropertyOfType(…) to detect whether we've already processed a particular type in the path. Also applied a bit of Java 8 and Lombok polish.
    InvalidPersistentPropertyPath now collects suggested alternatives to create a better exception message. PersistentEntities now allows to map over a MappingContext and PersistentEntity that a given type is corresponding to. Streamable now exposes an ….isEmpty(). Removed references to equivalent methods implemented in subtypes.
  3. DATACMNS-1290 - Added support for timestamp values of type long.

    schauder authored and mp911de committed Apr 6, 2018
    The type long or Long is actually required for custom revision entities by Envers.
    See also: spring-projects/spring-data-envers#122
    Original pull request: #282.
Commits on Apr 6, 2018
  1. DATACMNS-1289 - Polishing.

    olivergierke committed Apr 6, 2018
    Original pull request: #280.