Commit Graph

11972 Commits

Author SHA1 Message Date
Juergen Hoeller 55f1c98c39 Consistent alphabetical sorting of directory content
Issue: SPR-14085
2016-03-24 15:00:17 +01:00
Sam Brannen 1ec35e9c62 Support searches for multiple merged annotations with "get" semantics
This commit picks up where a5139f3c66 left off with added support for
"get" search semantics for multiple merged annotations.

Specifically, this commit introduces a new getAllMergedAnnotations()
method in AnnotatedElementUtils.

Issue: SPR-13486
2016-03-24 14:46:56 +01:00
Juergen Hoeller 3eff478c45 RequestMethodsRequestCondition uses common HttpMethod resolution
Issue: SPR-13776
2016-03-24 13:54:00 +01:00
Juergen Hoeller 86d5c5c0f7 Avoid putIfAbsent call in HttpEntityMethodProcessor
Issue: SPR-14086
2016-03-24 13:51:48 +01:00
Juergen Hoeller 7e4563a825 Upgrade to XStream 1.4.9
Issue: SPR-14084
2016-03-24 13:51:03 +01:00
Sam Brannen 2453edbb10 Reorganize methods in AnnotatedElementUtils 2016-03-24 13:18:54 +01:00
Brian Clozel 38714b35e7 Update Javadoc external links 2016-03-24 11:40:27 +01:00
Brian Clozel 20bb25647f Polish 2016-03-24 10:56:46 +01:00
Sam Brannen 2535469099 Support repeatable annotations as composed annotations
Prior to this commit, AnnotationUtils supported searching for
repeatable annotations even if the repeatable annotation was declared
on a custom stereotype annotation. However, there was no support for
merging of attributes in composed repeatable annotations. In other
words, it was not possible for a custom annotation to override
attributes in a repeatable annotation.

This commit addresses this by introducing
findMergedRepeatableAnnotations() methods in AnnotatedElementUtils.
These new methods provide full support for explicit annotation
attribute overrides configured via @AliasFor (as well as
convention-based overrides) with "find semantics".

Issue: SPR-13973
2016-03-23 21:58:34 +01:00
Juergen Hoeller 63115ed6eb Do not use annotation detection shortcuts on Class
Issue: SPR-13440
2016-03-23 19:27:30 +01:00
Juergen Hoeller c5b318a4cc Revised 4.3 signatures for MethodParameter/DependencyDescriptor
Issue: SPR-13440
2016-03-23 18:52:27 +01:00
Juergen Hoeller 9af12d290e Polishing 2016-03-23 18:39:29 +01:00
Juergen Hoeller 5025c615b1 Consistent use of AnnotatedElementUtils.findMergedAnnotation/hasAnnotation
Issue: SPR-13440
2016-03-23 18:39:20 +01:00
Juergen Hoeller 311d4c95a3 Revised newline handling tests pass on Windows now
Issue: SPR-13503
2016-03-23 18:35:26 +01:00
Juergen Hoeller 3c18a4533a Ignored test removed (not intended to work)
Issue: SPR-14058
2016-03-23 18:15:29 +01:00
Brian Clozel e079a726f8 Polish 2016-03-23 16:40:12 +01:00
Brian Clozel c7bd3b8440 Support HTTP range requests in Controllers
Prior to this commit, HTTP Range requests were only supported by the
ResourceHttpRequestHandler when serving static resources.

This commit improves the ResourceHttpMessageConverter that
now supports partial writes of Resources.
For this, the `HttpEntityMethodProcessor` and
`RequestResponseBodyMethodProcessor` now wrap resources with HTTP
range information in a `HttpRangeResource`, if necessary. The
message converter handle those types and knows how to handle partial
writes.

Controller methods can now handle Range requests for
return types that extend Resource or HttpEntity:

    @RequestMapping("/example/video.mp4")
    public Resource handler() { }

    @RequestMapping("/example/video.mp4")
    public HttpEntity<Resource> handler() { }

Issue: SPR-13834
2016-03-23 16:40:12 +01:00
Brian Clozel 15fe8279e6 Reset Expires HTTP header when caching configured
Just like SPR-13252 addressed this issue for the "Pragma" header, this
issue resets the HTTP 1.0 "Expires" header.
When such a header has been set (by a filter, for example) and HTTP
caching has been configured at the WebContentGenerator, this header
value is reset to "". In this case, "Cache-Control" and "Expires" might
have inconsistent values and we consider that the HTTP caching
configuration should take precedence.

Depending on the servlet container chosen to deploy the application,
this might result in empty "" header values or no header set at all.

Issue: SPR-14053
2016-03-23 16:35:13 +01:00
Kazuki Shimizu 9b2023111d Add newline at the beginning of textarea macro for FreeMarker and Velocity
Issue: SPR-13503
2016-03-23 11:31:16 +01:00
Rossen Stoyanchev 7a5e93ff16 Add support for setting the "Vary" response header
Issue: SPR-14070
2016-03-22 21:47:55 -04:00
Rossen Stoyanchev 6bfe0c050d Polish 2016-03-22 20:59:16 -04:00
Sam Brannen 59c88eb3c0 Support @Cache* as merged composed annotations
Prior to this commit, @Cacheable, @CacheEvict, @CachePut, and @Caching
could be used to create custom stereotype annotations with hardcoded
values for their attributes; however, it was not possible to create
composed annotations with attribute overrides.

This commit addresses this issue by refactoring
SpringCacheAnnotationParser to use the newly introduced
findAllMergedAnnotations() method in AnnotatedElementUtils. As a
result, @Cacheable, @CacheEvict, @CachePut, and @Caching can now be
used to create custom composed annotations with attribute overrides
configured via @AliasFor.

Issue: SPR-13475
2016-03-21 12:54:09 +01:00
Stephane Nicoll 2a715e9c61 Fix escaping of #
This commit disables the "quotes" substitutions on specific XML
examples that require to use the reserved `#` character.

Issue: SPR-14074
2016-03-21 12:51:14 +01:00
Sam Brannen 532ed0a4cf Clean up warnings in the spring-test module 2016-03-20 19:37:54 +01:00
Sam Brannen a5139f3c66 Support searches for multiple merged composed annotations
Prior to this commit it was possible to search for the 1st merged
annotation above an annotated element. It was also possible to search
for annotation attributes aggregated from all annotations above an
annotated element; however, it was impossible to search for all
composed annotations above an annotated element and have the results as
synthesized merged annotations instead of a multi-map of attributes.

This commit introduces a new findAllMergedAnnotations() method in
AnnotatedElementUtils that finds all annotations of the specified type
within the annotation hierarchy above the supplied element. For each
such annotation found, it merges that annotation's attributes with
matching attributes from annotations in lower levels of the annotation
hierarchy and synthesizes the results back into an annotation of the
specified type. All such merged annotations are collected and returned
as a set.

Issue: SPR-13486
2016-03-20 19:18:11 +01:00
Sam Brannen 799736c571 Fix typos in Javadoc for AutowireCapableBeanFactory 2016-03-20 15:26:37 +01:00
Sam Brannen f1378aa376 Test status quo for finding multiple composed annotations
This commit introduces tests that verify the status quo for finding
multiple merged composed annotations on a single annotated element.

Issue: SPR-13486
2016-03-19 20:22:04 +01:00
Sam Brannen 744350a262 Polishing 2016-03-19 18:28:05 +01:00
Sam Brannen d22480b0eb Ensure all aliased attributes in target annotation are overridden
Prior to this commit, it was possible that implicit aliases and
transitive implicit aliases (configured via @AliasFor) might not be
honored in certain circumstances, in particular if implicit aliases
were declared to override different attributes within an alias pair in
the target meta-annotation.

This commit addresses this issue by ensuring that all aliased
attributes in the target meta-annotation are overridden during the
merge process in AnnotatedElementUtils.

In addition, concrete default values for attributes in a
meta-annotation declaration can now be effectively shadowed by
transitive implicit aliases in composed annotations.

Issue: SPR-14069
2016-03-19 16:42:56 +01:00
Sam Brannen 4cd7ba12bb Polishing 2016-03-19 14:39:01 +01:00
Juergen Hoeller 5f6406430f LocalSessionFactoryBuilder/Bean supports setMultiTenantConnectionProvider
Issue: SPR-14072
2016-03-19 13:48:54 +01:00
Juergen Hoeller a1a06cd665 @EnableScheduling tests do not expect exception in case of scheduler ambiguity anymore
Issue: SPR-14030
2016-03-19 13:18:24 +01:00
Sam Brannen 5045579028 Revise EnableSchedulingTests
- Fast tests now always run (i.e., are no longer limited to the
  performance build
- Failing tests have been @Ignore'd

Issue: SPR-14030
2016-03-19 12:38:47 +01:00
Juergen Hoeller a905412514 Allow @Autowired to be declared on parameters
Issue: SPR-14057
2016-03-18 22:12:22 +01:00
Juergen Hoeller 6e3fac85f3 AnnotationAwareOrderComparator uses DecoratingProxy interface for target class introspection
Issue: SPR-13884
2016-03-18 22:12:10 +01:00
Rossen Stoyanchev 9ac9135c24 Update reference on StompClient
Issue: SPR-13664
2016-03-18 16:59:24 -04:00
Sam Brannen c5200978b0 Polishing 2016-03-18 19:44:20 +01:00
Sam Brannen 11221f5ccb Fix Javadoc errors in AnnotatedElementUtils 2016-03-18 19:31:05 +01:00
Rob Winch 411ff8450f Refine tests for SPR-14066
Explicitly define the response type as text/plain to avoid content type
confusion.

Issue SPR-14066
2016-03-18 13:24:10 -05:00
Sam Brannen e2ba477405 Upgrade Gradle Wrapper version to Gradle 2.12
Issue: SPR-14048
2016-03-18 19:06:10 +01:00
Juergen Hoeller 1ca4340271 NumberUtils consistently raises overflow exception for BigInteger/BigDecimal input
Issue: SPR-14041
2016-03-18 18:51:41 +01:00
Juergen Hoeller 431ca9314a Leniently allow constructor argument matches if required name is not resolvable
Issue: SPR-13987
2016-03-18 18:51:33 +01:00
Sam Brannen 455bf45fa4 Fix test that failed due to upgrade to HtmlUnit 2.20 2016-03-18 18:43:46 +01:00
Markus Malkusch 160410c148 Be explicit about the time unit in WebRequest
This commit adds the timeunit to the interface documentation
of WebRequest.checkNotModified().
2016-03-18 18:23:15 +01:00
Brian Clozel 7ae44c2565 Allow skipping JSON prefix in MockMvc result matchers
JSON payloads are sometimes prepended with a static string prefix
to prevent Cross Site Scripting Inclusion attacks (XSSI).
Prior to this commit, doing so would fail the MockMvc
`JsonPathResultMatchers` since they're considering the whole response as
the JSON payload.

This commit adds a new `JsonPathResultMatchers.prefix` method that
configures the matchers to check for the presence of that string (i.e.
fail if it's not there) and only consider the rest of the response body
as the JSON payload for other assertions.

Issue: SPR-13577
2016-03-18 18:13:42 +01:00
Rossen Stoyanchev 4a6c2dbb15 Merge pull request #1009 from rwinch/SPR-14066 2016-03-18 12:01:55 -04:00
Rossen Stoyanchev d3822c8d19 Polish 2016-03-18 12:01:09 -04:00
Rob Winch 7d96ad1f6e MockMvc HtmlUnit support shares CookieManager
Previously MockMvc builders failed to share the WebConnection used for
managing cookies in the MockMvcWebConnection. This meant that the various
CookieManagers would have different states.

This commit ensures that the WebConnection is set on the
MockMvcWebConnection.

Fixes SPR-14066
2016-03-18 12:01:09 -04:00
Juergen Hoeller 8246fe4534 Latest dependency updates: EhCache 3.0 RC1, HtmlUnit 2.20, Apache HttpClient 4.5.2, Jackson 2.7.3, JasperReports 6.2.1, Jetty 9.3.8, JRuby 1.7.24, JsonAssert 1.3, JsonPath 2.2, POI 3.14, Selenium 2.52, SLF4J 1.7.19, Animal Sniffer 1.15, Undertow 1.3.19, H2 1.4.191 2016-03-18 16:16:54 +01:00
Juergen Hoeller ec7c3aa349 Correct RFC 4648 references in method-level javadoc
Issue: SPR-14067
2016-03-18 15:30:33 +01:00