Mark Paluch
293bbd9a63
DATACMNS-1556 - General performance improvements in repository execution.
...
We now avoid the allocation of an Optional instance in the lookup of a dynamic projection in ParameterAccessor. Also, Lazy now exposes a ….getNullable() to be favored over ….getOptional() for hot code paths.
Replaced Stream and Optional usage with for-loops and nullable return values. Reuse parameter names to avoid repeated annotation lookups. Reuse result from Parameters.getBindable(). Introduce ParametersParameterAccessor.getValues() to consistently reuse a single accessor instance allowing access to the unwrapped values. Introduce type cache to QueryExecutionConverters to quickly reject types that do not require wrapping. Avoid recalculation of QueryMethod.isCollectionQuery().
2019-07-25 14:12:11 +02:00
Oliver Drotbohm
e0f2d65d73
DATACMNS-1555 - Support for extracting properties during a PersistentPropertyPath traversal.
...
PersistentPropertyAccessor now has an overloaded method to pass in a TraversalContext that can be prepared to property handlers for PersistentProperties. During the traversal, the handler is called with the value for the property so that it can e.g. extract list elements, map values etc.
2019-07-22 10:56:07 +02:00
Mark Paluch
704913c866
DATACMNS-1554 - Polishing.
...
Replace AtTest(expected = …) and ExpectedException with the corresponding AssertJ assertThatExceptionOfType(…) and assertThatIllegalArgumentException().isThrownBy(…).
2019-07-10 11:47:46 +02:00
Mark Paluch
660006b8c9
DATACMNS-1554 - Migrate tests to AssertJ.
2019-07-10 10:32:25 +02:00
Oliver Drotbohm
fa9e5b799a
DATACMNS-1552 - Test case to verify Option values are returned as is.
...
Make sure that the fix for DATACMNS-1524 fixes this ticket as well. A bit of whitespace in QueryExecutionResultHandler.
2019-07-04 12:23:14 +02:00
Oliver Drotbohm
d29fefca5b
DATACMNS-1524 - Fix performance regression in QueryExecutionResultHandler.
...
A side effect of the fix for DATACMNS-1482 trigged source objects that already perfectly match the desired return type would still be subject to detailed inspection of potential conversions, which – by definition – will not kick in.
The code has now been changed to only trigger detailed inspection for collection values.
Related tickets: DATACMNS-1482.
2019-07-02 14:25:08 +02:00
Oliver Drotbohm
736d147446
DATACMNS-1550 - Polishing.
...
Javadoc wording and formatting.
2019-07-01 15:34:19 +02:00
Jens Schauder
f29756e5f8
DATACMNS-1550 - Added RevisionType to RevisionMetadata.
2019-07-01 15:34:19 +02:00
Mark Paluch
1e98932278
DATACMNS-1545 - Polishing.
...
Fix dangling callout.
Original pull request: #398 .
2019-07-01 15:05:45 +02:00
Christoph Strobl
62f05057ec
DATACMNS-1545 - Fix documentation anchors for entity callback API.
...
Original pull request: #398 .
2019-07-01 15:05:40 +02:00
Oliver Drotbohm
ed0d30b4d6
DATACMNS-1551 - Polishing.
...
Method order in SortHandlerMethodArgumentResolver.
2019-07-01 14:30:48 +02:00
Oliver Drotbohm
4c1aed27d6
DATACMNS-1551 - SortHandlerMethodArgumentResolver now drops dot-only property segments.
...
If plain dots were submitted as elements in a Sort expression to be parsed by SortHandlerMethodArgumentResolver, those dots would be considered a property of the sort expression, which is of course wrong. We now drop property candidates solely consisting of dots and whitespace.
2019-07-01 14:16:09 +02:00
Michael Simons
38b08f4e27
DATACMNS-1548 - Fix JavaDoc on AuditingHandler#setModifyOnCreation.
...
Original pull request: #397 .
2019-06-24 10:54:39 +02:00
Christoph Strobl
defee9437a
DATACMNS-1514 - Prepare 2.2 RC1 (Moore).
2019-06-14 14:43:17 +02:00
Christoph Strobl
d729791238
DATACMNS-1514 - Updated changelog.
2019-06-14 14:43:07 +02:00
Christoph Strobl
b16db35660
DATACMNS-1532 - Updated changelog.
2019-06-14 13:27:14 +02:00
Christoph Strobl
84049e9f8e
DATACMNS-1467 - Apply suggested documentation changes.
...
Original Pull Request: #332
2019-06-07 14:30:48 +02:00
Mark Paluch
687222d1fa
DATACMNS-1467 - Polishing.
...
Tweak docs.
Original Pull Request: #332
2019-06-07 14:30:00 +02:00
Christoph Strobl
dde9a651ba
DATACMNS-1467 - Decouple sync and reactive bits.
...
Add dedicated interfaces for sync and reactive usage.
Hide default implementation and use reflective callback method lookup.
Update documentation and add initial reference documentation snippet for store specific modules.
Original Pull Request: #332
2019-06-07 14:29:00 +02:00
Mark Paluch
52724cd5dd
DATACMNS-1467 - Entity Callback API draft.
...
This is a draft for a possible Entity Callback API heavily inspired by Spring Framework's Application Event listeners. Entity callbacks are callbacks for entities that allow for entity modification at certain check points such as before saving an entity or after loading it.
Entity callbacks consist of a marker-interface for all entity callback types and the EntityCallbacks API to dispatch callbacks.
Entity callbacks are picked up from the ApplicationContext and invoked sequentially according to their ordering.
Usage example:
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(MyConfig.class);
SimpleEntityCallbacks callbacks = new SimpleEntityCallbacks(ctx);
PersonDocument personDocument = new PersonDocument(null, "Walter", null);
PersonDocument afterCallback = callbacks.callback(personDocument, BeforeSaveCallback.class,
BeforeSaveCallback::onBeforeSave);
Mono<PersonDocument> afterCallback = callbacks.callbackLater(personDocument, ReactiveBeforeSaveCallback.class,
ReactiveBeforeSaveCallback::onBeforeSave);
@Configuration
static class MyConfig {
@Bean
BeforeSaveCallback<Person> personCallback() {
return object -> {
object.setSsn(object.getFirstName().length());
return object;
};
}
@Bean
MyReactiveBeforeSaveCallback callback() {
return new MyReactiveBeforeSaveCallback();
}
}
class MyReactiveBeforeSaveCallback implements ReactiveBeforeSaveCallback<Person> {
@Override
public Mono<Person> onBeforeSave(Person object) {
PersonDocument result = new PersonDocument(object.getFirstName().length(), object.getFirstName(),
object.getLastName());
return Mono.just(result);
}
}
Original Pull Request: #332
2019-06-07 14:26:38 +02:00
Mark Paluch
83611de861
DATACMNS-1500 - URL Cleanup.
2019-06-05 11:16:03 +02:00
Jens Schauder
467f60ffdc
DATACMNS-1538 - Polishing.
...
Removed Hamcrest and the `ExpectedException` rule and replaced it with AssertJ.
Removed now obsolete assertions checking against old Spring Framework versions.
Formatting.
Original pull request: #396 .
2019-06-05 11:00:28 +02:00
arielcarrera
098842765d
DATACMNS-1538 - Repository proxy post processors in CDI.
...
Add support for custom repository proxy post processors in CDI.
Original pull request: #396 .
2019-06-05 10:54:57 +02:00
Mark Paluch
efa529a7a6
DATACMNS-1540 - Use thread-safe path cache in QuerydslPredicateBuilder.
...
We now use ConcurrentHashMap instead of HashMap to cache Path instances by PathInformation.
2019-05-27 08:41:51 +02:00
Christoph Strobl
d6bb21d24f
DATACMNS-1534 - Cache BeanFactory lookup for EvaluationContextExtension.
...
We now cache the BeanFactory lookup for EvaluationContextExtension within the ExtensionAwareEvalutationContextProvider to avoid (expensive) repeated context scans when creating the actual EvaluationContext.
Original pull request: #395 .
2019-05-14 12:25:01 +02:00
Mark Paluch
15969ee01f
DATACMNS-1531 - Updated changelog.
2019-05-13 18:19:07 +02:00
Mark Paluch
46a4e2ffe0
DATACMNS-1530 - Updated changelog.
2019-05-13 14:59:23 +02:00
Mark Paluch
9934695343
DATACMNS-1515 - Prepare 2.2 M4 (Moore).
2019-05-13 11:59:04 +02:00
Mark Paluch
fe691b41a4
DATACMNS-1515 - Updated changelog.
2019-05-13 11:58:51 +02:00
Oliver Drotbohm
58119b29d8
DATACMNS-1505 - Updated changelog.
2019-05-10 14:18:08 +02:00
Oliver Drotbohm
426036f2a7
DATACMNS-1507 - Updated changelog.
2019-05-10 12:57:19 +02:00
Oliver Drotbohm
a45a0ded9c
DATACMNS-1518 - Fixed detection of varargs overloads for SpEL expressions.
...
Before this commit we haven't properly resolved methods on a root object provided by an EvaluationContextExtension that was using varargs. With a vararg method, the number of parameters handed into the method is not necessary equal to the number of parameters. We previously simply skipped methods with a different number of arguments. We now try direct matches first but calculate valid varargs alternatives in case that initial lookup fails and try to match those alternatives.
This lookup is implemented in ….util.ParameterTypes now and used by ….spel.spi.Function. The latter now also handles the actual invocation of those methods properly by collecting the trailing arguments into an array.
2019-05-09 13:05:11 +02:00
Oliver Drotbohm
e31c7aed51
DATACMNS-1526 - Adapt to API changes in Spring HATEOAS.
2019-05-08 19:10:04 +02:00
David Schneider
a8e90b1932
DATACMNS-1510 - Fix phrasing in Javadoc of @Param.
...
Original pull request: #389 .
2019-04-23 17:14:31 +02:00
Jerzy Kwiatkowski
2b6682d3b1
DATACMNS-1520 - Fix typo in Javadoc.
...
Original pull request: #393 .
2019-04-23 17:11:18 +02:00
Christoph Strobl
314b5c5842
DATACMNS-1493 - Prepare 2.2 M3 (Moore).
2019-04-11 11:23:56 +02:00
Christoph Strobl
6ac4922616
DATACMNS-1493 - Updated changelog.
2019-04-11 11:23:48 +02:00
Oliver Drotbohm
a5681f637c
DATACMNS-1497 - Polishing.
...
RepositoryBeanDefinitionRegistrarSupport now also overrides registerBeanDefinitions(AnnotationMetadata, BeanDefinitionRegistry) so that unit test in downstream modules still work.
Added defaulting of BeanNameGenerator in XmlRepositoryConfigurationSource so that we use an AnnotationBeanNameGenerator if a DefaultBeanNameGenerator is handed in.
Related tickets: spring-projects/spring-framework#22591
2019-04-03 11:53:58 +02:00
Oliver Drotbohm
1150e409ca
DATACMNS-1497 - Polishing.
2019-04-03 10:21:28 +02:00
Oliver Drotbohm
753d8bbb33
DATACMNS-1497 - Configuration infrastructure now considers scanning BeanNameGenerator.
...
We now implement the newly introduced ImportBeanDefinitionRegistrar overload additional provided with a BeanNameGenerator configured for the import scanning. We forward this into our bean name generation infrastructure as fallback.
Related tickets: spring-projects/spring-framework#22591
2019-04-03 10:20:47 +02:00
Oliver Drotbohm
c4a51f1c24
DATACMNS-1480 - Updated changelog.
2019-04-01 20:56:25 +02:00
Oliver Drotbohm
eb79408556
DATACMNS-1464 - Updated changelog.
2019-04-01 19:36:56 +02:00
Oliver Drotbohm
b40ce01e54
DATACMNS-1504 - Updated changelog.
2019-04-01 18:52:16 +02:00
Oliver Drotbohm
66702a6c47
DATACMNS-1463 - Updated changelog.
2019-04-01 18:49:22 +02:00
Spring Operator
48c9297118
DATACMNS-1500 - URL Cleanup.
...
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).
# Fixed URLs
## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.
* [ ] http://www.apache.org/licenses/ with 1 occurrences migrated to:
https://www.apache.org/licenses/ ([https](https://www.apache.org/licenses/ ) result 200).
* [ ] http://www.apache.org/licenses/LICENSE-2.0 with 701 occurrences migrated to:
https://www.apache.org/licenses/LICENSE-2.0 ([https](https://www.apache.org/licenses/LICENSE-2.0 ) result 200).
Original Pull Request: #387
2019-03-22 11:00:44 +01:00
Spring Operator
38c2ec0ae3
DATACMNS-1500 - URL Cleanup.
...
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).
# HTTP URLs that Could Not Be Fixed
These URLs were unable to be fixed. Please review them to see if they can be manually resolved.
* [ ] http://help.eclipse.org/oxygen/index.jsp?topic=/org.eclipse.jdt.doc.user/tasks/task-using_external_null_annotations.htm (200) with 1 occurrences could not be migrated:
([https](https://help.eclipse.org/oxygen/index.jsp?topic=/org.eclipse.jdt.doc.user/tasks/task-using_external_null_annotations.htm ) result SSLException).
* [ ] http://www.querydsl.com (200) with 2 occurrences could not be migrated:
([https](https://www.querydsl.com ) result AnnotatedConnectException).
* [ ] http://www.querydsl.com/ (200) with 2 occurrences could not be migrated:
([https](https://www.querydsl.com/ ) result AnnotatedConnectException).
* [ ] http://xml.org/sax/features/external-general-entities (301) with 1 occurrences could not be migrated:
([https](https://xml.org/sax/features/external-general-entities ) result SSLHandshakeException).
# Fixed URLs
## Fixed But Review Recommended
These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended.
* [ ] http://www.w3.org/2001/03/xml.xsd (ReadTimeoutException) with 1 occurrences migrated to:
https://www.w3.org/2001/03/xml.xsd ([https](https://www.w3.org/2001/03/xml.xsd ) result SSLException).
* [ ] http://www.w3.org/XML/1998/namespace (ReadTimeoutException) with 1 occurrences migrated to:
https://www.w3.org/XML/1998/namespace ([https](https://www.w3.org/XML/1998/namespace ) result SSLException).
* [ ] http://foo:9090 (UnknownHostException) with 2 occurrences migrated to:
https://foo:9090 ([https](https://foo:9090 ) result UnknownHostException).
* [ ] http://http://www.querydsl.com (UnknownHostException) with 1 occurrences migrated to:
https://http://www.querydsl.com ([https](https://https://www.querydsl.com ) result UnknownHostException).
* [ ] http://apache.org/xml/features/disallow-doctype-decl (404) with 1 occurrences migrated to:
https://apache.org/xml/features/disallow-doctype-decl ([https](https://apache.org/xml/features/disallow-doctype-decl ) result 404).
## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.
* [ ] http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html with 1 occurrences migrated to:
https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html ([https](https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html ) result 200).
* [ ] http://docs.spring.io/spring/docs/ with 1 occurrences migrated to:
https://docs.spring.io/spring/docs/ ([https](https://docs.spring.io/spring/docs/ ) result 200).
* [ ] http://github.com/spring-projects/spring-data-commons with 1 occurrences migrated to:
https://github.com/spring-projects/spring-data-commons ([https](https://github.com/spring-projects/spring-data-commons ) result 200).
* [ ] http://goessner.net/articles/JsonPath/ with 1 occurrences migrated to:
https://goessner.net/articles/JsonPath/ ([https](https://goessner.net/articles/JsonPath/ ) result 200).
* [ ] http://projects.spring.io/spring-data/ with 2 occurrences migrated to:
https://projects.spring.io/spring-data/ ([https](https://projects.spring.io/spring-data/ ) result 200).
* [ ] http://stackoverflow.com/questions/tagged/spring-data with 2 occurrences migrated to:
https://stackoverflow.com/questions/tagged/spring-data ([https](https://stackoverflow.com/questions/tagged/spring-data ) result 200).
* [ ] http://www.regular-expressions.info/unicode.html with 2 occurrences migrated to:
https://www.regular-expressions.info/unicode.html ([https](https://www.regular-expressions.info/unicode.html ) result 200).
* [ ] http://www.springframework.org/schema/beans/spring-beans.xsd with 4 occurrences migrated to:
https://www.springframework.org/schema/beans/spring-beans.xsd ([https](https://www.springframework.org/schema/beans/spring-beans.xsd ) result 200).
* [ ] http://www.springframework.org/schema/context/spring-context.xsd with 8 occurrences migrated to:
https://www.springframework.org/schema/context/spring-context.xsd ([https](https://www.springframework.org/schema/context/spring-context.xsd ) result 200).
* [ ] http://www.springframework.org/schema/data/repository/spring-repository.xsd with 2 occurrences migrated to:
https://www.springframework.org/schema/data/repository/spring-repository.xsd ([https](https://www.springframework.org/schema/data/repository/spring-repository.xsd ) result 200).
* [ ] http://www.vavr.io/ with 2 occurrences migrated to:
https://www.vavr.io/ ([https](https://www.vavr.io/ ) result 200).
* [ ] http://contributor-covenant.org with 1 occurrences migrated to:
https://contributor-covenant.org ([https](https://contributor-covenant.org ) result 301).
* [ ] http://contributor-covenant.org/version/1/3/0/ with 1 occurrences migrated to:
https://contributor-covenant.org/version/1/3/0/ ([https](https://contributor-covenant.org/version/1/3/0/ ) result 301).
* [ ] http://docs.spring.io/spring-data/data-commons/docs/current/reference/html/ with 1 occurrences migrated to:
https://docs.spring.io/spring-data/data-commons/docs/current/reference/html/ ([https](https://docs.spring.io/spring-data/data-commons/docs/current/reference/html/ ) result 301).
* [ ] http://help.github.com/forking/ with 1 occurrences migrated to:
https://help.github.com/forking/ ([https](https://help.github.com/forking/ ) result 301).
* [ ] http://projects.spring.io/spring-data with 1 occurrences migrated to:
https://projects.spring.io/spring-data ([https](https://projects.spring.io/spring-data ) result 301).
* [ ] http://www.atomenabled.org/developers/syndication/atom-format-spec.php with 1 occurrences migrated to:
https://www.atomenabled.org/developers/syndication/atom-format-spec.php ([https](https://www.atomenabled.org/developers/syndication/atom-format-spec.php ) result 301).
* [ ] http://www.springframework.org/schema/data/jpa/spring-jpa.xsd with 2 occurrences migrated to:
https://www.springframework.org/schema/data/jpa/spring-jpa.xsd ([https](https://www.springframework.org/schema/data/jpa/spring-jpa.xsd ) result 301).
* [ ] http://www.springframework.org/schema/oxm/spring-oxm.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/oxm/spring-oxm.xsd ([https](https://www.springframework.org/schema/oxm/spring-oxm.xsd ) result 301).
* [ ] http://www.threeten.org/threetenbp with 2 occurrences migrated to:
https://www.threeten.org/threetenbp ([https](https://www.threeten.org/threetenbp ) result 301).
* [ ] http://www.xmlbeam.org with 2 occurrences migrated to:
https://www.xmlbeam.org ([https](https://www.xmlbeam.org ) result 301).
* [ ] http://www.springsource.org/download with 1 occurrences migrated to:
https://www.springsource.org/download ([https](https://www.springsource.org/download ) result 302).
# Ignored
These URLs were intentionally ignored.
* http://localhost:8080/persons with 1 occurrences
* http://localhost:8080/persons?page=1&size=20 with 1 occurrences
* http://localhost:8080?page=0&size=10 with 1 occurrences
* http://www.springframework.org/schema/beans with 8 occurrences
* http://www.springframework.org/schema/context with 16 occurrences
* http://www.springframework.org/schema/data/jaxb with 3 occurrences
* http://www.springframework.org/schema/data/jpa with 4 occurrences
* http://www.springframework.org/schema/data/repository with 20 occurrences
* http://www.springframework.org/schema/oxm with 2 occurrences
* http://www.springframework.org/schema/tool with 16 occurrences
* http://www.w3.org/1999/xhtml with 1 occurrences
* http://www.w3.org/2001/XMLSchema with 10 occurrences
* http://www.w3.org/2001/XMLSchema-instance with 4 occurrences
* http://www.w3.org/2005/Atom with 4 occurrences
Original Pull Request: #367
2019-03-21 08:26:30 +01:00
Spring Operator
f341973210
DATACMNS-1500 - URL Cleanup.
...
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).
# Fixed URLs
## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.
* http://maven.apache.org/xsd/maven-4.0.0.xsd with 1 occurrences migrated to:
https://maven.apache.org/xsd/maven-4.0.0.xsd ([https](https://maven.apache.org/xsd/maven-4.0.0.xsd ) result 200).
* http://www.springframework.org/schema/beans/spring-beans.xsd with 3 occurrences migrated to:
https://www.springframework.org/schema/beans/spring-beans.xsd ([https](https://www.springframework.org/schema/beans/spring-beans.xsd ) result 200).
* http://www.springframework.org/schema/context/spring-context.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/context/spring-context.xsd ([https](https://www.springframework.org/schema/context/spring-context.xsd ) result 200).
* http://www.springframework.org/schema/data/repository/spring-repository.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/data/repository/spring-repository.xsd ([https](https://www.springframework.org/schema/data/repository/spring-repository.xsd ) result 200).
* http://www.springframework.org/schema/oxm/spring-oxm.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/oxm/spring-oxm.xsd ([https](https://www.springframework.org/schema/oxm/spring-oxm.xsd ) result 200).
# Ignored
These URLs were intentionally ignored.
* http://maven.apache.org/POM/4.0.0 with 2 occurrences
* http://www.springframework.org/schema/beans with 6 occurrences
* http://www.springframework.org/schema/context with 2 occurrences
* http://www.springframework.org/schema/data/jaxb with 1 occurrences
* http://www.springframework.org/schema/data/repository with 2 occurrences
* http://www.springframework.org/schema/oxm with 2 occurrences
* http://www.w3.org/2001/XMLSchema-instance with 4 occurrences
* http://www.w3.org/2005/Atom with 1 occurrences
Original Pull Request: #366
2019-03-20 12:40:50 +01:00
Oliver Drotbohm
e9f77d6046
DATACMNS-1499 - Added new convenience factory methods on Range.
2019-03-14 13:25:49 +01:00
Oliver Drotbohm
4e6b12fc8a
DATACMNS-1498 - Improved attribute lookup on RepositoryConfigurationSource.
2019-03-14 12:48:35 +01:00
Oliver Drotbohm
0bf160eb97
DATACMNS-1496 - Removed deprecations at least introduced in Lovelace.
2019-03-13 18:29:08 +01:00