Commit Graph

17140 Commits

Author SHA1 Message Date
Juergen Hoeller 2ac23badee SimpleAliasRegistry.hasAlias properly resolves multiple chained aliases
Issue: SPR-17191
2018-08-17 09:54:14 +02:00
Rossen Stoyanchev ad88c02bc3 Restore formatting change following revert 2018-08-17 09:53:47 +03:00
Rossen Stoyanchev 498984324d Revert "Add handleFailure property to FrameworkServlet"
This reverts commit 29ce6685ca.
2018-08-17 09:47:00 +03:00
Sebastien Deleuze 0dd9e8ce02 Polish JettyResourceFactory
Issue: SPR-17179
2018-08-16 21:47:02 +02:00
Juergen Hoeller 6bcb454a0d Polishing 2018-08-16 19:31:10 +02:00
Juergen Hoeller 84300b796c Fix recent javadoc errors
Issue: SPR-17174
2018-08-16 18:51:31 +02:00
Sebastien Deleuze 1eb06fcd90 Introduce JettyResourceFactory
JettyResourceFactory, similar to ReactorResourceFactory, allows
to share resources (Executor, ByteBufferPool, Scheduler) between
Jetty clients and servers.

Issue: SPR-17179
2018-08-16 18:17:07 +02:00
Juergen Hoeller 50b6f9da1d Reference documentation covers async Hibernate/JPA bootstrap options
Issue: SPR-17189
2018-08-16 17:30:44 +02:00
Rossen Stoyanchev 31c7807ac9 Fix doc issue with Reactor HttpClient config 2018-08-16 18:21:00 +03:00
Juergen Hoeller 04d2d1da0d Consistently use double quotes (even if no interpolation needed)
Includes upgrade to Hibernate ORM 5.3.5, EclipseLink 2.7.3, Selenium HtmlUnit Driver 2.32.1, Jetty 9.4.12 RC2.
2018-08-16 15:32:44 +02:00
Juergen Hoeller dc55da0988 Polishing 2018-08-16 13:02:27 +02:00
Juergen Hoeller 5d7fb1a1c2 Polishing 2018-08-16 12:08:26 +02:00
Juergen Hoeller 2ec8fa9cac SmartLifecycle default methods for auto-startup in default phase
Issue: SPR-17188
2018-08-16 12:08:02 +02:00
Stephane Nicoll 446a604ad0 Upgrade to Reactor Californium-M2 2018-08-16 09:30:20 +02:00
Brian Clozel cd403f4180 Polish 2018-08-15 20:56:27 +02:00
Brian Clozel 23fc6f6b1d Drain JDK HTTP client response body in all cases
Prior to this commit, when using the `SimpleClientHttpRequestFactory`
as a driver for `RestTemplate`, the HTTP response body would only be
drained if there was an attempt to read it in the first place.

This commit ensures that, even if there's no attempt at reading the
response body, it is properly drained when the response is closed to
make sure that the connection is released in a proper state and can be
put back in the connection pool for reuse.

Issue: SPR-17181
2018-08-15 20:52:40 +02:00
Brian Clozel 432cdd7802 Add ResponseEntity.of(Optional) variant
When dealing with `Optional` values in a Controller handler (for
example, values coming from a Spring Data repository), developers might
reuse this code snippet quite often:

```
@GetMapping("/user")
public ResponseEntity<Optional<User>> fetchUser() {
  Optional<User> user = //...
  return user.map(ResponseEntity::ok).orElse(notFound().build());
}
```

This commit adds a new static method on `ResponseEntity` for that,
simplifying the previous snippet with `return ResponseEntity.of(user);`

Note that in case more specific HTTP response headers are required by
the application, developers should use other static methods to
explicitly tell  which headers should be used in each case.

Issue: SPR-17187
2018-08-15 20:24:14 +02:00
Sam Brannen d3be1cc6cb Use single quotes in Gradle build where appropriate 2018-08-15 17:57:56 +02:00
Sam Brannen 69e4f21f90 Use JUnit 5 Maven BOM in Gradle build
Issue: SPR-17129
2018-08-15 17:43:23 +02:00
Juergen Hoeller 109a2b49e5 Consistently skip unnecessary search on superclasses and empty elements
Includes caching of declared annotation arrays and combined searching for several annotation types (used in SpringCacheAnnotationParser).

Issue: SPR-16933
2018-08-15 17:30:14 +02:00
Sam Brannen 50dc8c2358 Update JavaDoc for @BootstrapWith regarding local override
Issue: SPR-17006
2018-08-15 17:17:24 +02:00
Sam Brannen d20d95b7ac Allow directly present @BootstrapWith to override meta annotations
Prior to this commit, if a test class was meta-annotated with multiple
@BootstrapWith declarations that registered different
TestContextBootstrapper implementations, such a configuration would
result in an IllegalStateException, and there was no way to override
this behavior.

This commit addresses this shortcoming by relaxing the explicit
TestContextBootstrapper resolution in BootstrapUtils so that a directly
present @BootstrapWith annotation will now override declarations of
@BootstrapWith that are meta-present. In other words, if @BootstrapWith
is used as a meta-annotation, it can be overridden directly on the test
class via an explicit, local declaration of @BootstrapWith.

Issue: SPR-17006
2018-08-15 16:17:05 +02:00
Sam Brannen 4d7b265258 Fix merge conflict in reference manual 2018-08-15 15:37:49 +02:00
Brian Clozel f2506ca7a1 Revert "Infer HTTP 404 from empty Optional/Publisher types"
This reverts commit 7e91733502.
2018-08-15 15:15:35 +02:00
Sam Brannen 1b54d2119d Polishing 2018-08-15 12:27:45 +02:00
Sam Brannen a87b319a6f Polishing 2018-08-15 12:16:47 +02:00
Brian Clozel 7e91733502 Infer HTTP 404 from empty Optional/Publisher types
This commit handles "empty" cases for `ResponseEntity` controller
handler return types when wrapped with a `java.util.Optional` in Spring
MVC or a single `Publisher` like `Mono`.

Given the following example for Spring MVC:

```
@GetMapping("/user")
public Optional<ResponseEntity<User>> fetchUser() {
	Optional<User> user = //...
	return user.map(ResponseEntity::ok);
}
```

If the resulting `Optional` is empty, Spring MVC will infer a
`ResponseEntity` with an empty body and a 404 HTTP response status.

The same reasoning is applied to Spring WebFlux with Publisher types:

```
@GetMapping("/user")
public Mono<ResponseEntity<User>> fetchUser() {
	Mono<User> user = //...
	return user.map(ResponseEntity::ok);
}
```

This feature is only valid for `HttpEntity` return types and does not
apply to `@ResponseBody` controller handlers.

Issue: SPR-13281
2018-08-15 11:59:16 +02:00
Rossen Stoyanchev 04141dee65 Consistent logging of resolved exceptions
Issue: SPR-17178
2018-08-15 10:57:51 +03:00
Juergen Hoeller 6027cf2255 Polishing 2018-08-14 20:42:40 +02:00
Juergen Hoeller c0c9e08bf9 Revised documentation for PDF, Excel and JSON views
Issue: SPR-17180
Issue: SPR-17182
2018-08-14 20:36:29 +02:00
Juergen Hoeller de38af6843 Upgrade to JUnit Jupiter 5.3 RC1 (and Jetty 9.4.12 RC1)
Includes Groovy 2.5.2, Undertow 2.0.12, Hibernate Validator 6.0.12.

Issue: SPR-17129
2018-08-14 20:33:30 +02:00
Rossen Stoyanchev 3e4d305291 Polish ReactorResourceFactory 2018-08-14 17:34:17 +03:00
Rossen Stoyanchev 7a0c03e05e Update section in reference on WebClient
Rename "Builder" sub-section to "Configuration" and move it in the
beginning before all others since it explains how to create a client
in the first place.

Update content on Reactor Netty connector based on the API in 0.8 and
specifically address Reactor Netty resources and lifecycle.

Issue: SPR-16963
2018-08-14 15:48:46 +03:00
Rossen Stoyanchev 2f732a8dea Fix checkstyle errors 2018-08-14 13:01:09 +03:00
Rossen Stoyanchev 1bc08c61e1 Add ReactorResourceFactory
Issue: SPR-16963
2018-08-14 12:29:31 +03:00
Sam Brannen bdac39150f Polish contribution
Issue: SPR-17120
2018-08-13 14:40:04 +02:00
Chris Harding 24ed6de6aa Add backslash escape support to containsSqlScriptDelimiters
Prior to this commit, ScriptUtils supported MySQL-style escapes ('\\')
when splitting a script into statements; however, MySQL-style escapes
were not supported when determining if a given script contained a
specified statement delimiter. This caused executeSqlScript() to
erroneously fallback to a newline as the statement separator in such
cases.

This commit fixes this issue by implementing the same check for
MySQL-style escapes in containsSqlScriptDelimiters() that was already
present in splitSqlScript().

Issue: SPR-17120
2018-08-13 14:40:04 +02:00
Juergen Hoeller ac544924c8 Polishing 2018-08-13 14:36:37 +02:00
Juergen Hoeller 04a7f0884b SpringCacheAnnotationParser.parseCacheAnnotations cannot be protected
Its parameter DefaultCacheConfig is just package-visible...
2018-08-13 12:43:59 +02:00
Juergen Hoeller 999c7809a7 Refined warn/info logging in AutowiredAnnotationBeanPostProcessor
Issue: SPR-16946
2018-08-13 12:43:52 +02:00
Juergen Hoeller 347852e86a Avoid argument resolution overhead for no-arg factory methods
Includes revised InstantiationStrategy nullability for args array.

Issue: SPR-17171
2018-08-13 12:43:41 +02:00
Sam Brannen 777bd0d022 Fix Checkstyle violation in JCacheCache 2018-08-13 12:40:34 +02:00
Sam Brannen aebbd949a8 Suppress deprecation warnings in AnnotationProcessorPerformanceTests 2018-08-13 12:35:19 +02:00
Sam Brannen 8126ffbc8c Fix broken links in JavaDoc
Issue: SPR-17174
2018-08-13 12:22:52 +02:00
Sam Brannen 13c090b41d Generate “Use” links in aggregated Spring API JavaDoc
This commit enables the `-use` javadoc flag so that class usage pages
are included in the aggregated JavaDoc that is published to
https://docs.spring.io/spring-framework/docs/.

Issue: SPR-17173
2018-08-13 11:56:18 +02:00
Sam Brannen 1dcb6236a6 Fix broken links in JavaDoc
First step (as proof of concept) toward addressing SPR-17174.

Issue: SPR-17174
2018-08-13 11:54:05 +02:00
Rossen Stoyanchev 99f0129711 Fix URI var encoding issue with '$'
When expanding and strictly encoding URI variables, there is no need to
quote `/` and `$` which will be encoded anyway.

Issue: SPR-17168
2018-08-13 11:56:34 +03:00
Rossen Stoyanchev 430065c31d Order property for SimpUserRegistry
Issue:SPR-17142
2018-08-13 11:56:34 +03:00
Marten Deinum 5322fa0fb7 Use an import instead of FQCN
javax.xml.stream.Location is already there as an import there is no need
to use the FQCN in the handleDtd method.
2018-08-13 10:38:23 +02:00
Marten Deinum 20d0221d4f Use an import instead of FQCN
No that JCacheCache extends AbstractValueAdaptingCache instead of
directly implementing Cache an import statement can be used in favor
of using the FQCN for the field and constructor arguments.
2018-08-13 10:23:00 +02:00