Commit Graph

253 Commits

Author SHA1 Message Date
Oliver Gierke
116ae703fc DATACMNS-1090 - Prepare 2.0 RC1 (Kay). 2017-07-25 09:48:00 +02:00
Oliver Gierke
a53a331813 DATACMNS-1124 - Upgraded to Javaslang 2.0.6. 2017-07-24 14:17:44 +02:00
Oliver Gierke
af56889e72 DATACMNS-1123 - Upgraded to XmlBeam 1.4.12 and tweaked HttpMessageConverter implementation.
XmlBeam 1.4.11 accidentally removed ProjectionFactory as public interface. Adapted our HttpMessageConverter implementation to make sure we still work on those versions.

Related ticket: https://github.com/SvenEwald/xmlbeam/issues/45
2017-07-24 14:17:36 +02:00
Oliver Gierke
049970874d DATACMNS-1114 - Introduced usage of nullable annotations for API validation.
Marked all packages with Spring Frameworks @NonNullApi. Added Spring's @Nullable to methods, parameters and fields that take or produce null values. Adapted using code to make sure the IDE can evaluate the null flow properly. Fixed Javadoc in places where an invalid null handling policy was advertised. Strengthened null requirements for types that expose null-instances.

Removed null handling from converters for JodaTime and ThreeTenBP. Introduced factory methods Page.empty() and Page.empty(Pageable). Introduced default methods getRequiredGetter(), …Setter() and …Field() on PersistentProperty to allow non-nullable lookups of members. The same for TypeInformation.getrequiredActualType(), …SuperTypeInformation().

Tweaked PersistentPropertyCreator.addPropertiesForRemainingDescriptors() to filter unsuitable PropertyDescriptors before actually trying to create a Property instance from them as the new stronger nullability requirements would cause exceptions downstream.

Lazy.get() now expects a non-null return value. Clients being able to cope with null need to call ….orElse(…).

Original pull request: #232.
2017-07-24 10:47:28 +02:00
Mark Paluch
013bda0dd2 DATACMNS-1118 - Inherit Project Reactor version from dependency management.
Adapt to BOM import in Spring Data Build pom.
2017-07-20 15:53:29 +02:00
Jens Schauder
023a0b2a38 DATACMNS-1104 - Changed scope of Degraph dependency to 'test’. 2017-07-07 08:38:37 +02:00
Jens Schauder
1fc25727cf DATACMNS-1097 - Move classes to better matching packages.
Introduced new ExampleMatcherAccessor in data.support in favor of the now deprecated one in data.repository.core to avoid a dependency into the repositories subsystem to work with examples in general.

Added Degraph based test in order to avoid future cyclic package dependency violations.

Original pull request: #230.
Related ticket: DATAMONGO-1721.
2017-07-06 11:38:12 +02:00
Mark Paluch
a972f7d101 DATACMNS-1060 - After release cleanups. 2017-06-14 17:14:08 +02:00
Mark Paluch
4d8465ad33 DATACMNS-1060 - Prepare next development iteration. 2017-06-14 17:14:06 +02:00
Mark Paluch
495cc7bddf DATACMNS-1060 - Release version 2.0 M4 (Kay). 2017-06-14 17:03:48 +02:00
Mark Paluch
d9735a4367 DATACMNS-1060 - Prepare 2.0 M4 (Kay). 2017-06-14 17:03:00 +02:00
Oliver Gierke
29dadc5431 DATACMNS-1060 - Re-add artifact version to make release tools work. 2017-06-14 17:01:28 +02:00
Oliver Gierke
34ce83c657 DATACMNS-1065 - Added support for Vavr (successor of Javaslang).
Basically duplicated the Javaslang support to now work on Vavr types as well.
2017-05-11 12:36:23 +02:00
Mark Paluch
044a0c07c1 DATACMNS-1037 - After release cleanups. 2017-05-09 11:34:42 +02:00
Mark Paluch
8ef846dab4 DATACMNS-1037 - Prepare next development iteration. 2017-05-09 11:34:41 +02:00
Mark Paluch
c9031fd494 DATACMNS-1037 - Release version 2.0 M3 (Kay). 2017-05-09 11:23:00 +02:00
Mark Paluch
89d4acc2aa DATACMNS-1037 - Prepare 2.0 M3 (Kay). 2017-05-09 11:22:12 +02:00
Jens Schauder
65734739bd DATACMNS-993 - Clean up class loader hacking in tests.
ClassLoaderRule with @ClassLoaderConfiguration allows easy creation FilteringClassLoader. Changed usage pattern of ClassUtils.isPresent(…) in order to ease testing. Copied the ShadowingClassloader from SpringFramework to get a constructor that doesn't shadow anything by default.

Original pull request: #202.
2017-04-12 08:03:32 +02:00
Oliver Gierke
562b6665a3 DATACMNS-1040 - Remove exclusion of Commons Logging.
Related ticket: SPR-14512.
2017-04-11 11:38:58 +02:00
Oliver Gierke
5a1c5d7917 DATACMNS-942 - After release cleanups. 2017-04-04 22:08:17 +02:00
Oliver Gierke
559ff27939 DATACMNS-942 - Prepare next development iteration. 2017-04-04 22:08:12 +02:00
Oliver Gierke
de2d43e59f DATACMNS-942 - Release version 2.0 M2 (Kay). 2017-04-04 21:12:35 +02:00
Oliver Gierke
55429522dc DATACMNS-942 - Prepare 2.0 M2 (Kay). 2017-04-04 21:12:01 +02:00
Oliver Gierke
575e4f9c92 DATACMNS-867 - Removed temporary Mockito version property.
This is now coming from the build parent.
2017-03-24 08:00:48 +01:00
Oliver Gierke
2d282b2d7f DATACMNS-867 - Cleanups. 2017-03-24 08:00:26 +01:00
Oliver Gierke
d4811e29d9 DATACMNS-867 - Second draft. 2017-03-24 08:00:23 +01:00
Oliver Gierke
8fabba5aa3 DATACMNS-933 - After release cleanups. 2016-11-23 10:59:10 +01:00
Oliver Gierke
a5cd02c566 DATACMNS-933 - Prepare next development iteration. 2016-11-23 10:59:08 +01:00
Oliver Gierke
6ceb11fb05 DATACMNS-933 - Release version 2.0 M1 (Kay). 2016-11-23 10:35:47 +01:00
Oliver Gierke
232ab0e800 DATACMNS-933 - Prepare 2.0 M1 (Kay). 2016-11-23 10:35:08 +01:00
Oliver Gierke
3594c0c3e4 DATACMNS-993 - Move away from Spring snapshots. 2016-11-23 10:15:51 +01:00
Oliver Gierke
71fc87ad42 DATACMNS-937 - Support for JavaSlang's Option type as nullable wrapper.
Repository methods can now return JavaSlang's Option as alternative to JDK 8's Optional or Guavas Optional.
2016-11-19 12:56:19 +01:00
Mark Paluch
474c9981da DATACMNS-836 - Provide wrapper conversion, ReactiveWrappers and RxJava 2 type conversion. 2016-11-14 15:41:53 +01:00
Oliver Gierke
aa32c3d53d DATACMNS-836 - Upgraded to Reactor Core 2.5 M4. 2016-11-14 15:41:53 +01:00
Mark Paluch
2e4d63fddd DATACMNS-836 - Add reactive repository support.
We now expose reactive interfaces to facilitate reactive repository support in store-specific modules. Spring Data modules are free to implement their reactive support using either RxJava 1 or Project Reactor (Reactive Streams). We expose a set of base interfaces:

* `ReactiveCrudRepository`
* `ReactiveSortingRepository`
* `RxJava1CrudRepository`
* `RxJava1SortingRepository`

Reactive repositories provide a similar feature coverage to blocking repositories. Reactive paging support is limited to a `Mono<Page>`/`Single<Page>`. Data is fetched in a deferred way to provide a paging experience similar to blocking paging.

A store module can choose either Project Reactor or RxJava 1 to implement reactive repository support. Project Reactor and RxJava types are converted in both directions allowing repositories to be composed of Project Reactor and RxJava 1 query methods. Reactive wrapper type conversion handles wrapper type conversion at repository level. Query/implementation method selection uses multi-pass candidate selection to invoke the most appropriate method (exact arguments, convertible wrappers, assignable arguments).

We also provide ReactiveWrappers to expose metadata about reactive types and their value multiplicity.
2016-11-14 15:41:52 +01:00
Mark Paluch
25be6b7254 DATACMNS-836 - Add reactor-core dependency. 2016-11-14 15:41:52 +01:00
Oliver Gierke
8bb6418251 DATACMNS-864 - Prepare 2.0 development.
Upgraded to Spring Data Build parent 2.0 snapshots. Removed obsolete distribution key property. Removed obsolete template.mf.
2016-11-14 15:39:48 +01:00
Oliver Gierke
c6624be8a7 DATACMNS-838 - After release cleanups. 2016-07-27 14:32:37 +02:00
Oliver Gierke
eac6d7e9f2 DATACMNS-838 - Prepare next development iteration. 2016-07-27 14:32:33 +02:00
Oliver Gierke
856724f3aa DATACMNS-838 - Release version 1.13 M1 (Ingalls). 2016-07-27 13:52:12 +02:00
Oliver Gierke
c6391dc7f1 DATACMNS-838 - Prepare 1.13 M1 (Ingalls). 2016-07-27 13:51:37 +02:00
Oliver Gierke
e79c19d277 DATACMNS-885 - Added XML support for incoming projections based on XMLBeam.
Added an XML flavor of the support added in previous commits based on XML Beam [0].

[0] http://www.xmlbeam.org.
2016-07-25 18:23:53 +02:00
Oliver Gierke
eec2b43fd0 DATACMNS-885 - Support for binding JSON payloads to projection interfaces.
Projection types annotated with @ProjectedPayload can now be used as parameters for @RequestBody annotated Spring MVC controller method parameters.

Accessor methods will be translated into JSON path property expressions which can be customized by using the @JsonPath annotation. The methods are allowed to return simple types, nested projection interfaces or complex classes which will will be mapped using a Jackson ObjectMapper.
2016-07-25 17:26:32 +02:00
Oliver Gierke
16d826800f DATACMNS-833 - After release cleanups. 2016-04-06 16:37:02 +02:00
Oliver Gierke
3a23b53769 DATACMNS-833 - Prepare next development iteration. 2016-04-06 16:36:59 +02:00
Oliver Gierke
e9f7035ca4 DATACMNS-833 - Release version 1.12 GA (Hopper). 2016-04-06 16:35:58 +02:00
Oliver Gierke
f16f28f70b DATACMNS-833 - Prepare 1.12 GA (Hopper). 2016-04-06 16:34:45 +02:00
Oliver Gierke
eafc0854cc DATACMNS-823 - After release cleanups. 2016-03-18 11:16:07 +01:00
Oliver Gierke
17273d0ac0 DATACMNS-823 - Prepare next development iteration. 2016-03-18 11:15:51 +01:00
Oliver Gierke
0a3e443391 DATACMNS-823 - Release version 1.12 RC1 (Hopper). 2016-03-18 11:14:59 +01:00