Commit Graph

18352 Commits

Author SHA1 Message Date
Sam Brannen 14d539017c Make Profiles created via Profiles.of() comparable
Prior to this commit, a Profiles instance created via Profiles.of() was
not considered equivalent to another Profiles instance created via
Profiles.of() with the exact same expressions. This makes it difficult
to mock invocations of Environment#acceptsProfiles(Profiles) -- for
example, when using a mocking library such as Mockito.

This commit makes Profiles instances created via Profiles.of()
"comparable" by implementing equals() and hashCode() in ParsedProfiles.

Note, however, that equivalence is only guaranteed if the exact same
profile expression strings are supplied to Profiles.of(). In other
words, Profiles.of("A & B", "C | D") is equivalent to
Profiles.of("A & B", "C | D") and Profiles.of("C | D", "A & B"), but
Profiles.of("X & Y") is not equivalent to Profiles.of("X&Y") or
Profiles.of("Y & X").

Closes gh-25340
2020-07-07 14:41:08 +02:00
Arjen Poutsma f4ae18fa89 Support for ASCII in Jackson codec & converter
This commit introduces support for writing JSON with an US-ASCII
character encoding in the Jackson encoder and message converter,
treating it like UTF-8.

See gh-25322

(cherry picked from commit 79c339b03e)
2020-06-30 16:04:11 +02:00
Juergen Hoeller fc5a6db84b Polishing 2020-06-23 11:47:47 +02:00
Arjen Poutsma 9a847dc5a0 Map from charset name rather than Charset
With this commit it is no longer assumed that all charset names in the
JsonEncoding can be resolved by Charset.forName. Instead, we store the
charset name itself, rather than the Charset object.
2020-06-22 09:50:56 +02:00
Brian Clozel a82cf2fb7d Fix missing sslInfo with Reactor Netty and http/2
Prior to this commit, the `SslInfo` would be missing for WebFlux apps
when deployed on Reactor Netty with http/2.

This commit ensures that the request adapter checks the current channel
and the parent channel for the presence of the `SslHander`.
In the case of http/2, the `SslHander` is tied to the parent channel.

Fixes gh-25286
See gh-25278
2020-06-19 16:46:09 +02:00
Juergen Hoeller a6258b8b4f Upgrade to Jetty 9.4.30 2020-06-17 16:09:19 +02:00
Juergen Hoeller 0400fc8443 Avoid misleading log message for commit-triggering exception
Closes gh-25253
2020-06-17 16:08:52 +02:00
Arjen Poutsma df9d09389f Convert non-unicode input when reading w/ Jackson
This commit makes sure that Jackson-based message converters and
decoders can deal with non-unicode input. It does so by reading
non-unicode input messages with a InputStreamReader.

This commit also adds additional tests forthe canRead/canWrite methods
on both codecs and message converters.

Closes: gh-25247
2020-06-16 14:29:02 +02:00
Juergen Hoeller 3d14970c03 Polishing 2020-06-12 00:13:19 +02:00
Juergen Hoeller 236eea8de9 Consistent abstract declaration of "Abstract" base classes
Closes gh-25240
2020-06-11 23:59:16 +02:00
Juergen Hoeller 1b6afd52cb Document exception handling limitations in TaskDecorator implementations
Closes gh-25231
2020-06-10 22:57:21 +02:00
Spring Buildmaster 837d3e0ccf Next Development Version 2020-06-09 08:04:51 +00:00
Juergen Hoeller 4173ceefa5 Upgrade to Reactor Californium-SR19
Closes gh-25211
2020-06-08 23:35:40 +02:00
Juergen Hoeller 586235e9e4 Upgrade to Tomcat 9.0.36 2020-06-08 20:09:33 +02:00
Juergen Hoeller 4f81ab7e14 Polishing 2020-06-08 20:09:12 +02:00
Juergen Hoeller 7281d44178 Polishing 2020-06-06 19:14:34 +02:00
Juergen Hoeller f965c2f5af Avoid unnecessary creation of not-found entity in ResponseEntity#of
Closes gh-25183
2020-06-06 19:14:26 +02:00
Juergen Hoeller cf5bbce3f8 Avoid unnecessary copy of cookies map in DefaultWebClientBuilder
See gh-25034
2020-06-06 19:14:19 +02:00
Juergen Hoeller a80e36fd9f Upgrade to Checkstyle 8.33 2020-06-06 16:57:41 +02:00
Juergen Hoeller 840ae05942 Polishing 2020-06-06 16:57:28 +02:00
Juergen Hoeller b5928977d1 Extend readOnlyWebSocketHttpHeaders deprecation to 5.1.16 2020-06-06 16:57:17 +02:00
Juergen Hoeller 5cb950db3b Support for shared GroovyClassLoader in GroovyScriptFactory
Closes gh-25177
2020-06-06 16:56:47 +02:00
Juergen Hoeller 4b7890315f Restore original readOnlyHttpHeaders signature for binary compatibility
Closes gh-25034
2020-06-06 16:56:29 +02:00
Arjen Poutsma f81b1de2c0 Respect MimeType charset in Jackson codecs
Before this commit, Jackson2CodecSupport and subclasses
did not check media type encoding in the supportsMimeType
method (called from canEncode/canDecode).
As a result, the encoder reported that it can write
(for instance) "application/json;charset=ISO-8859-1", but in practice
wrote the default charset (UTF-8).

This commit fixes that bug.

Closes: gh-25076
2020-06-05 11:54:18 +02:00
Arjen Poutsma d9c98801bc Respect MediaType charset in Jackson converters
Before this commit, AbstractJackson2HttpMessageConverter and subclasses
did not check media type encoding in the canRead and canWrite
methods. As a result, the converter reported that it can write
(for instance) "application/json;charset=ISO-8859-1", but in practice
wrote the default charset (UTF-8).

This commit fixes that bug.

See: gh-25076
2020-06-05 11:14:43 +02:00
Sam Brannen 70a2219fac Configure Gradle wrapper validation action
This commit configures the Gradle Wrapper Validation Action
for GitHub actions.

See: https://github.com/gradle/wrapper-validation-action

Closes gh-25175
2020-06-02 14:45:04 +02:00
Juergen Hoeller 083dd0e19d Polishing 2020-05-29 16:31:11 +02:00
Juergen Hoeller e6553939b2 Consistent MultiValueMap behavior for empty list values
This commit extracts MultiValueMapAdapter from CollectionUtils and reuses its implementation as base class of LinkedMultiValueMap.

Closes gh-25140
2020-05-29 16:30:51 +02:00
Sam Brannen 008d011d37 Make use of custom types configurable in YamlProcessor
Prior to this commit, there was no easy way to restrict what types could
be loaded from a YAML document in subclasses of YamlProcessor such as
YamlPropertiesFactoryBean and YamlMapFactoryBean.

This commit introduces a setSupportedTypes(Class<?>...) method in
YamlProcessor in order to address this. If no supported types are
configured, all types encountered in YAML documents will be supported.
If an unsupported type is encountered, an IllegalStateException will be
thrown when the corresponding YAML node is processed.

Closes gh-25152
2020-05-29 14:03:51 +02:00
Sam Brannen 16ab43d957 Polish contribution
See gh-25149
2020-05-28 15:26:50 +02:00
dlsrb6342 6c5129b829 Fix BaseCodecConfigurer clone bug
Prior to this commit, ExchangeStrategies custom codec's reader and
writer were not registered due to a bug in BaseCodecConfigurer.

This commit fixes this by correcting the implementation of the
DefaultCustomCodecs constructor used within BaseCodecConfigurer.

Closes gh-25149
2020-05-28 15:06:34 +02:00
Rossen Stoyanchev e25e6a68cf Fix race condition in WriteResultPublisher
between subscription and error from the Publish

Closes gh-25096
2020-05-28 06:53:30 +01:00
Juergen Hoeller bb96bd4f48 Polishing 2020-05-26 23:55:56 +02:00
Juergen Hoeller 370bf184af WebSphereUowTransactionManager sets timeout for actual transaction only
Closes gh-25132
2020-05-26 23:55:29 +02:00
Juergen Hoeller cbcd8fdeba Upgrade to Jetty 9.4.29 2020-05-22 17:35:15 +02:00
Juergen Hoeller 9bb534e74c Polishing 2020-05-22 17:34:55 +02:00
Juergen Hoeller ec915bfd5d Avoid ClassCastException on IllegalArgumentException from sync invocation
Closes gh-25110
2020-05-22 17:18:56 +02:00
Sam Brannen 5c04c96d0e Honor attributes configured in ServerRequest.from() builder
Prior to this commit, if attributes were configured in the builder
returned by `ServerRequest.from(...)`, those attributes were not
available in the `ServerRequest` built by the builder. In addition, any
attributes in the original `ServerRequest` supplied to
`ServerRequest.from(...)` were also ignored.

This commit addresses this issue by ensuring that the attributes
configured via DefaultServerRequestBuilder are used as the attributes
in the resulting `ServerRequest`.

This commit also polishes the Javadoc in `ServerRequest` and
`ClientResponse` and avoids the use of lambda expressions in the
constructors for `DefaultServerRequestBuilder` and
`DefaultClientResponseBuilder`.

Closes gh-25106
2020-05-21 10:09:16 +02:00
Juergen Hoeller 7d39fbea16 Upgrade to Checkstyle 8.32, Tomcat 9.0.35, Netty 4.1.50, Hibernate ORM 5.3.17, Hibernate Validator 6.0.20 2020-05-18 15:16:11 +02:00
Juergen Hoeller 4ad7deda4c Polishing 2020-05-18 15:15:46 +02:00
Juergen Hoeller 4ec02a7e53 Consistent not-null assertions for configured interceptors
Closes gh-25089
2020-05-18 14:54:01 +02:00
Juergen Hoeller 2785ef0887 Avoid full synchronization in refreshable getBeanFactory() implementation
Closes gh-25081
2020-05-18 14:37:12 +02:00
Rossen Stoyanchev b22e670668 HttpHeaders#equals handles wrapping correctly
Closes gh-25034
2020-05-08 09:47:10 +01:00
Sam Brannen 436e9d8cdc Use SingletonSupplier for XStream instance in XStreamMarshaller
Closes gh-25017
2020-05-07 12:51:29 +02:00
Sam Brannen f474595dee Fix concurrency issues in XStreamMarshaller
Prior to this commit, if an instance of XStreamMarshaller was used
concurrently from multiple threads without having first invoked the
afterPropertiesSet() method, the private `xstream` field could be
initialized multiple times resulting in a ConcurrentModificationException
in XStream's internal DefaultConverterLookup.

This commit fixes these concurrency issues by making the `xstream` field
volatile and by implementing a double-checked locking algorithm in
getXStream() to avoid concurrent instance creation.

Closes gh-25017
2020-05-07 12:50:44 +02:00
Rossen Stoyanchev 42f60fe490 Fix race condition in WriteResultPublisher
Backport of c35b3e5c82

Closes gh-24989
2020-05-04 11:13:06 +01:00
Rossen Stoyanchev ce76a9b5de Error handling improvement in AbstractSockJsSession
Backport of e17736dd0a.

Closes gh-24986
2020-05-04 11:12:08 +01:00
Spring Buildmaster 6d26b962a9 Next Development Version 2020-04-28 07:29:39 +00:00
Juergen Hoeller a4cc16051c Polishing 2020-04-27 14:29:56 +02:00
Juergen Hoeller c8b49346b1 Store source in index-derived ScannedGenericBeanDefinition as well
Includes consistent constructor-level storage of derived resource in ScannedGenericBeanDefinition and ConfigurationClassBeanDefinition.

See gh-24978
2020-04-27 14:29:41 +02:00