Commit Graph

697 Commits

Author SHA1 Message Date
Oliver Gierke
bcb9a6061f DATACMNS-1044 - Prepare 1.13.3 (Ingalls SR3). 2017-04-19 19:32:00 +02:00
Oliver Gierke
0656d54590 DATACMNS-1044 - Updated changelog. 2017-04-19 19:31:48 +02:00
Oliver Gierke
679852d3ad DATACMNS-1004 - Updated changelog. 2017-04-19 13:04:01 +02:00
Oliver Gierke
07bdde868b DATACMNS-1003 - Prepare 1.13.2 (Ingalls SR2). 2017-04-19 10:10:47 +02:00
Oliver Gierke
5b481eda52 DATACMNS-1003 - Updated changelog. 2017-04-19 10:10:32 +02:00
Oliver Gierke
a8ff4ea142 DATACMNS-1042 - PagedResourcesAssembler now keeps coordinates of supplied Page for self link.
We now use the Pageable information contained in the given Page to make sure the self link rendered by the assembler adds proper coordinates. If a base link is provided, that is used as is.
2017-04-18 13:25:39 +02:00
Oliver Gierke
af05a086b6 DATACMNS-993 - Polishing.
Removed custom JUnit integration as we can just create HidingClassLoader instances in the test and the integration actually causes more code being needed (additional JUnit rule, method level annotations etc.).

Tweaked ShadowingClassLoader to make obvious what has been changed over the Spring Framework variant. Created upstream ticket [0] to ask for the tweaks that would allow us to remove the class again.

Original pull request: #202.
Related ticket: SPR-15439
[0] https://jira.spring.io/browse/SPR-15439
2017-04-12 08:14:00 +02:00
Jens Schauder
c029f1b916 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:13:56 +02:00
Oliver Gierke
f5ae2f99ba DATACMNS-942 - Updated changelog. 2017-04-10 13:30:56 +02:00
Oliver Gierke
5ac45f3d1a DATACMNS-1008 - Polishing.
Formatting and copyright years in DefaultRepositoryInformation.
2017-03-14 07:48:17 +01:00
Oliver Gierke
c98bc48ad0 DATACMNS-1008 - Reintroduced lost support for non-generic redeclarations of generic CRUD methods.
The changes for DATACMNS-854 and DATACMNS-912 dropped the support for the simpler redeclaration of generic methods like CrudRepository.save(…) which as of the changes requires to be redeclared like <T extends Foo> T save(T entity). Previously a simple redeclaration like Foo save(Foo entity) was sufficient.

This commit reintroduces the check for a direct match of the parameter types and shortcuts the more detailed check that's necessary in case of type variables being involved.

Related tickets: DATACMNS-854, DATACMNS-912.
2017-03-14 07:48:15 +01:00
Oliver Gierke
68f9aac4e0 DATACMNS-1005 - Polishing.
Simplified type check by using Set as method signature to avoid unnecessary manual array wrapping. Simplification in the test assertions. A bit of Javadoc, corrected imports and author tags.

Original pull request: #200.
2017-03-09 11:01:42 +01:00
Maciek Opala
0d9c909e69 DATACMNS-1005 - Paginated query methods now support Javaslang collection types.
To eagerly catch invalid declarations, query methods using pagination had a check applied that the method either returns a Page or List. We've introduced support for alternative collection libraries (Javaslang in particular) and thus the check needs to take these newly supported types into account.

This is now fixed by externalizing the valid types into QueryExecutionConverters and using the ones returned by that to check against.

Original pull request: #200.
2017-03-09 11:01:42 +01:00
Oliver Gierke
6ef41f6a76 DATACMNS-1006 - SimpleTypeHolder now considers java.lang types simple ones.
This prevents AbstractMappingContext from adding them as entities.

Related tickets: DATAREST-1018.
2017-03-07 13:45:38 +01:00
Oliver Gierke
b46b84d4bf DATACMNS-979 - Updated changelog. 2017-03-02 16:57:41 +01:00
Oliver Gierke
0fc81ad8f3 DATACMNS-980 - Prepare 1.13.1 (Ingalls SR1). 2017-03-02 09:33:24 +01:00
Oliver Gierke
33bf149d55 DATACMNS-980 - Updated changelog. 2017-03-02 09:32:21 +01:00
Oliver Gierke
c2828f4537 DATACMNS-989 - Polishing.
Introduced overload for CustomRepositoryImplementationDetector.detectCustomImplementation(…) to take a RepositoryConfiguration to simplify the invocation from the Spring container related client. Further simplification to unify invocations also from the CDI implementation to be done in 2.0.

Expose getExcludeFilter() on RepositoryConfiguration to not have to inspect the configuration source on clients.

Formatting and Javadoc. Missing license headers in newly created types.

Original pull request: #195.
2017-03-01 16:25:58 +01:00
Peter Rietzler
04aa75c5e3 DATACMNS-989 - Use exclude filters when scanning for custom repository implementations.
The detection algorithm for custom repository implementations now considers the exclude filters declared in the overall repository setup (XML and annotations).

Original pull request: #195.
2017-03-01 16:25:58 +01:00
Oliver Gierke
9dbe75aa4e DATACMNS-1000 - Fixed typo in code docs about domain events. 2017-03-01 11:13:43 +01:00
Christoph Strobl
9afe5766c6 DATACMNS-999 - Improve resource extensive error message concatenation.
Use simple if manually throwing the IllegalArgumentException instead of an Assert. Should be replaced with an Assert accepting Supplier when moving to Spring 5 and Java 8.

Original pull request: #198.
2017-02-28 18:54:26 +01:00
Oliver Gierke
876de8494b DATACMNS-987 - Polishing.
Removed a bit of reflection from ApplicationContext interaction. Some generics tweaks to avoid unnecessary casts and compiler warnings. Static methods where possible. JavaDoc polish in ProjectingJackson2HttpMessageConverter.
2017-02-13 13:32:28 +01:00
Mark Paluch
444597105c DATACMNS-987 - Polishing.
Remove unused Querydsl tests. Add author. Reformat code. Extend Javadoc.
2017-02-13 13:32:23 +01:00
Jens Schauder
fd3c9783e2 DATACMNS-987 - Jackson converter gets only loaded if Jackson and Jayway dependencies are present.
Added a test for loading of QuerydslPredicateArgumentResolver, but it fails presumably because EnableSpringDataWebSupport is not in effect.

Renamed SpringDataWebConfigurationUnitTests to SpringDataWebConfigurationIntegrationTests since it is actually an integration test.

Related ticket: DATACMNS-993.
2017-02-13 13:32:18 +01:00
Christoph Strobl
b898ad78e6 DATACMNS-985 - Remove references to single-argument assertion methods. 2017-01-31 18:09:58 +01:00
Oliver Gierke
8bbf9029fc DATACMNS-964 - Updated changelog. 2017-01-26 12:08:44 +01:00
Oliver Gierke
83f8799cb5 DATACMNS-965 - Prepare 1.13 GA (Ingalls). 2017-01-26 10:26:34 +01:00
Oliver Gierke
a85c253cd8 DATACMNS-965 - Updated changelog. 2017-01-26 10:26:31 +01:00
Oliver Gierke
bf04e3232b DATACMNS-776 - Made ProxyingHandlerMethodArgumentResolver to only support user types or annotated ones.
ProxyingHandlerMethodArgumentResolver is now more lenient when it comes to which types to support for proxying. As indicated in the ticket, we've been to aggressive opting in for all interfaces which - depending on the order of converter registrations - caused us interfering with other interface based resolutions (e.g. in Spring Mobile, Security etc.).

We now only aggressively kick in if either the type or parameter is annotated with @ProjectedPayload or the type itself is not a Spring Framework or native Java one. This should leave user defined types still be accepted whereas the types we previously erroneously interfered with should now be ignored.
2017-01-23 11:41:39 +01:00
Oliver Gierke
e68be19054 DATACMNS-972 - Fixed ProjectingJackson2HttpMessageConverter.canRead(…) for generic type variables.
ProjectingJackson2HttpMessageConverter.canRead(…) now resolves the given type correctly, even in context of their owning class.
2017-01-19 12:23:14 +01:00
Oliver Gierke
60d40b51b3 DATACMNS-957 - AuditingHandler now works with entities without an identifier.
Entities without an identifier previously an exception because the IsNewStrategyFactory wasn't able to determine a strategy even if there was no auditing to be applied in the first place.

We now eagerly check for auditability and skip the lookup for an IsNewStrategy completely in case that check returns false.

Related pull request: #189.
2017-01-19 09:49:35 +01:00
Oliver Gierke
9ada55b050 DATACMNS-975 - Make sure repository method is invoked before event publication.
To make sure that event handlers can read the state of the aggregate persisted, we now invoke the call to the repository before publishing the events. That shouldn't make too much of a difference to most listeners as the event usually contains a reference to the aggregate. However, the new model generally aligns with the approach of reporting what *already has happened* better that our previous approach of first publishing the events and then invoking the repository method.

Related tickets: DATACMNS-928.
2017-01-13 12:18:25 +01:00
Mark Paluch
250900efdf DATACMNS-973 - Polishing.
Convert @see http://… links to valid format using @see <a href=…>…</a>.
2017-01-13 08:48:52 +01:00
Mark Paluch
80b33645c9 DATACMNS-973 - Migrate ticket references in test code to Spring Framework style. 2017-01-13 08:45:25 +01:00
Oliver Gierke
c31714c922 DATACMNS-967 - Getters that are default methods are not considered projection input properties anymore.
We now exclude getter methods that are default methods from the consideration which properties of a projection interface are considered input properties in the first place.

Unfortunately no tests for this one as we can't declare default methods in our codebase requiring JDK 6 compatibility.
2016-12-23 12:54:45 +01:00
Oliver Gierke
07430b9171 DATACMNS-932 - Updated changelog. 2016-12-21 19:35:18 +01:00
Oliver Gierke
cba32b3939 DATACMNS-889 - Prepare 1.13 RC1 (Ingalls). 2016-12-21 16:15:47 +01:00
Oliver Gierke
b923331e9f DATACMNS-889 - Updated changelog. 2016-12-21 16:15:32 +01:00
Oliver Gierke
c8fb117e6b DATACMNS-963 - Returned type returns distinct input properties now.
We now manually filter already gathered property names in ReturnedInterface.getInputProperties() as we have to deal with duplications for properties with the same name at different levels of the inheritance hierarchy.
2016-12-21 14:13:21 +01:00
Oliver Gierke
f4e9c2c30c DATACMNS-962 - Fixed typo in reference documentation. 2016-12-19 10:17:17 +01:00
Oliver Gierke
aa993bb366 DATACMNS-960 - RevisionRepository now extends Repository. 2016-12-15 15:37:56 +01:00
Oliver Gierke
259a1e0958 DATACMNS-891 - Moved to constructor injection for RepositoryFactoryBeanSupport.
RepositoryFactoryBeanSupport now takes the repository interface as a constructor argument instead of as a setter. This makes sure that the container induced type prediction for factory beans actually wires the interface *before* it calls getObjectType() on the instance. This allows us to remove the extra infrastructure we had in place to predict the bean types and autowiring will just work out of the box.

Adapted infrastructure code accordingly, removed obsolete infrastructure code and adapted test cases accordingly.
2016-12-15 14:49:50 +01:00
Oliver Gierke
3a24beecf3 DATACMNS-959 - RepositoryFactorySupport now registers interceptor to detect transactions.
The interceptor discovers whether a transaction was running before the call entered the repository proxy and exposes that fact via ….isSurroundingTransactionActive() for donwstream usage.

Related ticket: DATAJPA-1023.
2016-12-14 15:34:02 +01:00
Oliver Gierke
a76aa4d2a2 DATACMNS-958 - Use ExposeInvocationInterceptor.ADVISOR in RepositoryFactorySupport.
Its usage is recommended over using the instance as advice.
2016-12-14 13:58:47 +01:00
Oliver Gierke
902cb44e86 DATACMNS-940 - Fix query method query result type detection for custom collections.
The nullable wrapper types now expose whether they're a single value type or a multi value type. This is necessary as Javaslang's Option implements Iterable (something we previously checked for to detect a collection query) and the custom collections potentially being usable within other wrapper types (e.g. Future<Seq<User>>).
2016-12-13 15:31:54 +01:00
Oliver Gierke
33b65fbe63 DATACMNS-940 - Support for Javaslang collections as repository return types.
Javaslang's collection and map types can now be used on repository query methods and get adapted similarly to nullable wrapper types (like JDK's Optional). Also made TypeInformation infrastructure aware of the map type so that a value type lookup gets handle correctly.
2016-12-12 20:07:37 +01:00
Oliver Gierke
8f748d6dcf DATACMNS-956 - Ensure consistent use of ClassTypeInformation.from(…). 2016-12-12 17:09:00 +01:00
Oliver Gierke
8af061f389 DATACMNS-941 - Support for downcasts in Querydsl web bindings.
We now support downcasts (e.g. user.as(QSpecialUser.class).…) expressions in Querydsl web binding. We do so by skipping the introduced intermediate step in the path when calculating the dot path.

Refactored the internals of the binding to now work based on a PathInformation implementation for which either a Querydsl Path or a Spring Data PropertyPath can be used. This allows us to reuse the paths of predefined bindings.

A bit of Lombok cleanup in internal implementations.
2016-12-12 16:22:56 +01:00
Oliver Gierke
e1d1a68f49 DATACMNS-953 - Fixed application of GenericPropertyMatchers.exact().
We now really use exact matching for a match setup requesting exact matching. Previously, we erroneously set up the matching with a startsWith().
2016-12-06 10:54:14 +01:00
Oliver Gierke
2377cbac85 DATACMNS-934 - BasicPersistentEntity.addAssociation(…) drops null values now.
Previously a null value was added to the list of associations if it was handed to BasicaPersistentEntity.addAssociation(…). We now drop those null values and log a warning as it usually indicates a MappingContext implementation identifying a property as association but subsequently failing to look it up.
2016-12-05 16:39:05 +01:00