Commit Graph

11886 Commits

Author SHA1 Message Date
Sam Brannen
a9aa85c6c0 Document DirtiesContextBeforeModesTEL in the reference manual 2016-04-06 13:55:19 +02:00
Juergen Hoeller
4024b2fd4b DefaultListableBeanFactory leniently deserializes into dummy factory if serialization id not resolvable
Issue: SPR-14117
2016-04-05 15:49:30 +02:00
Juergen Hoeller
6db6f23a04 Quartz ResourceLoaderClassLoadHelper explicitly falls back to classpath lookup
Issue: SPR-13706
2016-04-05 12:18:48 +02:00
Juergen Hoeller
6573e9142c Polishing 2016-04-05 12:17:21 +02:00
Juergen Hoeller
797f5dbba6 StatementCreatorUtils handles Types.BOOLEAN through PreparedStatement.setBoolean
Issue: SPR-14116
2016-04-05 11:12:36 +02:00
Juergen Hoeller
7c450fad3b Latest dependency updates (Caffeine 2.2.6, EhCache 3.0 RC2, Joda-Time 2.9.3, Netty 4.0.36, Rome 1.6, SLF4J 1.7.21, Tomcat 8.0.33, Undertow 1.3.20, Woodstox 5.0.2, JOpt-Simple 5.0) 2016-04-05 10:13:10 +02:00
Juergen Hoeller
d2d528dc05 Polishing 2016-04-05 09:42:41 +02:00
Rossen Stoyanchev
cfdb683449 Call resetRequest after writeFrame for polling sessions
Previous refactoring (fcf6ae and also 43d937) in the SockJsSession
hierarchy consolidated access to the request and response in the
base class AbstractHttpSockJsSession in order to keep synchronization
concerns there. However that also unintentionally removed the call to
resetRequest() after sending a heartbeat for any of the
PollingSockJsSession classes. In general a polling session should call
resetRequest after every frame written.

This commit brings back the writeFrame override in PollingSockJsSession
with an extra call to resetRequest().

Issue: SPR-14107
2016-04-04 19:30:05 -04:00
Sam Brannen
6c0cae87b4 Clean up warnings in spring-test 2016-04-04 21:30:01 +02:00
Sam Brannen
e18d5b591a Limit size of context cache in the TestContext framework
Prior to this commit, the size of the ApplicationContext cache in the
Spring TestContext Framework could grow without bound, leading to
issues with memory and performance in large test suites.

This commit addresses this issue by introducing support for setting the
maximum cache size via a JVM system property or Spring property called
"spring.test.context.cache.maxSize". If no such property is set, a
default value of 32 will be used.

Furthermore, the DefaultContextCache has been refactored to use a
synchronized LRU cache internally instead of a ConcurrentHashMap. The
LRU cache is a simple bounded cache with a "least recently used" (LRU)
eviction policy.

Issue: SPR-8055
2016-04-04 20:56:04 +02:00
Juergen Hoeller
26378cd604 Polishing 2016-04-04 20:51:30 +02:00
Rossen Stoyanchev
d554229981 Fix incomplete log message
Commit 48236b from 2014 introduced a logging improvement to avoid
logging each removed session per line and instead log one line at
the end with all removed sessions ids. However that list of removed
session ids wasn't populated. This commit fixes that.

Issue: SPR-14111
2016-04-04 14:01:27 -04:00
Stephane Nicoll
996c1cc0a6 Fix Auto-Startup for @JmsListener
Ignore container's auto-startup once the context is refreshed.

Issue: SPR-14015
2016-04-04 18:21:10 +02:00
Stephane Nicoll
ad7285df0b Merge pull request #1027 from Youmoo/patch-2
* pr/1027:
  Fix typo
2016-04-04 17:36:36 +02:00
youmoo
1bccc8f1cd Fix typo
Closes gh-1027
2016-04-04 17:36:17 +02:00
Sebastien Deleuze
1f9a9cf404 Auto-detect Kotlin Jackson module
Issue: SPR-14108
2016-04-04 16:49:40 +02:00
Juergen Hoeller
edea66a967 Further tests for getBeanNamesForType(ResolvableType)
Issue: SPR-14097
2016-04-04 14:58:30 +02:00
Juergen Hoeller
8bfba6a07a EhCacheManagerFactoryBean logs cache manager name
Issue: SPR-14110
2016-04-04 14:56:08 +02:00
Juergen Hoeller
13f889e914 SimpleApplicationEventMulticaster leniently handles ClassCastException
Issue: SPR-14109
2016-04-04 14:54:38 +02:00
Juergen Hoeller
696dcb72a5 SpringValidatorAdapter allows for custom field name resolution
Issue: SPR-14104
2016-04-01 10:29:56 +02:00
Juergen Hoeller
739ae8c045 LocalValidatorFactoryBean supports custom ValidationProviderResolver
Issue: SPR-14100
2016-03-31 16:52:26 +02:00
Sam Brannen
6826bdd111 Document disabled test for hybrid annotation attribute overrides
This commit documents the @Ignore'd test to explain that Spring does not
support a hybrid approach for annotation attribute overrides with
transitive implicit aliases.

Issue: SPR-13554
2016-03-31 14:38:15 +02:00
Juergen Hoeller
f6cb30b165 @ExceptionHandler is able to process Error thrown from handler method
Issue: SPR-11106
2016-03-31 11:52:36 +02:00
Juergen Hoeller
14bf6509ec Consistent cache key implementation across transaction and cache attribute sources
Includes consistent applicability of class-level metadata to user-level methods only.

Issue: SPR-14017
Issue: SPR-14095
2016-03-30 14:13:04 +02:00
Juergen Hoeller
5619b005f0 Polishing 2016-03-30 10:22:30 +02:00
Juergen Hoeller
b7819e6ec8 AnnotationTransactionAttributeSource applies class-level metadata to user-level methods only
Issue: SPR-14095
2016-03-30 10:21:22 +02:00
Sam Brannen
ea09e578b9 Document support for @Cache* as merged composed annotations
Issue: SPR-13475
2016-03-29 20:04:43 +02:00
Sam Brannen
2ed3382a60 Document composed support for @Scheduled, @JmsListener, & @Sql
Issue: SPR-13973
2016-03-29 19:53:58 +02:00
Roy Clarkson
f35ec5353a Add support for OkHttp3
OkHttp3 introduces a new package and API that is incompatible with
previous versions. This commit adds a new
OkHttp3ClientHttpRequestFactory and supporting classes.
2016-03-29 18:15:04 +02:00
Sam Brannen
d40d2ffe5e Polishing 2016-03-29 18:04:26 +02:00
Sam Brannen
3597879608 Revert merged support for @ManagedNotification & @ManagedOperationParameter
This commit reverts the recently added merged annotation support for
Spring's JMX annotations by once again using the simpler searches for
repeatable annotations in AnnotationUtils.

Issue: SPR-13973
2016-03-29 17:51:47 +02:00
Brian Clozel
eec22f5072 Avoid duplicate flush when closing outputstream
Prior to this commit, the `HttpInvokerServiceExporter` would close
its `ObjectOutputStream`, which itself issues duplicate flushes on the
underlying `OutputStream`. Duplicate flushes can lead to multiple,
separate TCP packets where those should be gathered writes.

This commit wraps the underying stream with a decorator that guards
against flush calls that are duplicated with the one done in `close`.

Issue: SPR-14040
2016-03-29 17:31:42 +02:00
Brian Clozel
b947bfe8e9 Support of HTTP persistent connections for JDK client
Prior to this commit, HTTP clients relying on the JDK HTTP client would
not properly reuse existing TCP connections (i.e. HTTP 1.1 persisten
connection). The SimpleClientHttpResponse would close the actual connection once the
response is handled.

As explained in the JDK documentation
(http://docs.oracle.com/javase/8/docs/technotes/guides/net/http-keepalive.html)
HTTP clients should do the following to allow resource reuse:

* consume the whole HTTP response content
* close the response inputstream once done

This commit makes sure that the response content is
totally drained and then the stream closed (and not the connection).

Issue: SPR-14040
2016-03-29 17:31:42 +02:00
Juergen Hoeller
3910350b0a ASM ClassReader leniently handles label offset mismatch
Issue: SPR-14089
2016-03-29 15:38:23 +02:00
Juergen Hoeller
6298292523 AsyncRestTemplate triggers no-output HTTP requests immediately as well
Issue: SPR-14093
2016-03-29 15:22:32 +02:00
Juergen Hoeller
2dae4d8134 Deprecated FormTag's "commandName" in favor of "modelAttribute"
Issue: SPR-14094
2016-03-29 12:09:16 +02:00
Sam Brannen
26bbb6e767 Polishing 2016-03-28 16:17:47 +02:00
Juergen Hoeller
b2a17ba537 RequestHeaderMapMethodArgumentResolver defensively checks for non-existing header values
Issue: SPR-14091
2016-03-27 14:07:25 +02:00
Sam Brannen
4fa11e334f Test @ManagedNotification as a merged, composed annotation
Issue: SPR-13973
2016-03-26 20:10:20 +01:00
Juergen Hoeller
54aeb7a5d6 Cache key classes implement Comparable and consistently provide a toString representation
Issue: SPR-14017
2016-03-26 14:32:10 +01:00
Sam Brannen
a8b5ea1c51 Polishing 2016-03-26 01:27:37 +01:00
Sam Brannen
4742aa0bfe Test @JmsListener as a merged composed annotation
Issue: SPR-13973
2016-03-26 01:09:35 +01:00
Sam Brannen
2353f39ee4 Clean up warnings 2016-03-26 01:08:58 +01:00
Sam Brannen
4836d06704 Test @Scheduled as a merged composable annotation
Issue: SPR-13973
2016-03-26 00:47:02 +01:00
Juergen Hoeller
c6ff0951fc Polishing 2016-03-25 23:46:18 +01:00
Juergen Hoeller
94cb7786c8 Polishing 2016-03-25 23:28:45 +01:00
Brian Clozel
862d10c128 Support new default values in WebDataBinder
Prior to this commit, binding a `@ModelAttribute` object as a Controller
handler paramater would instantiate the object and set all its
properties, fetching data from the request. When no data is available,
the WebDataBinder tries to bind default "empty" values:
* Boolean.FALSE for boolean types
* empty arrays for array types
* null by default

This commit adds the new default empty values:
* empty Collections for Collection types
* empty Maps for Map types

Rather than using empty implementations provided by `Collections.empty`
(which are not mutable), we're using the closest possible target type
and real implementations, provided by the `CollectionFactory`.

Issue: SPR-13502
2016-03-25 21:37:08 +01:00
Sam Brannen
b0c6357540 Test @Sql as a merged composed annotation
Issue: SPR-13973
2016-03-25 20:47:16 +01:00
Phillip Webb
fc839331a7 Refine TestPropertySourceUtils for direct use
Update methods in TestPropertySourceUtils to accept var-args and allow
addInlinedProperties to be called more than once.

Issue: SPR-14088
2016-03-25 11:12:27 -07:00
Sam Brannen
fee056a1b1 Simplify search algorithms in AnnotatedElementUtils
This commit introduces a boolean alwaysProcesses() method in the
Processor API which allows for simplification across all search
algorithms within AnnotatedElementUtils.

Specifically, it is no longer necessary for process() methods to verify
that the supplied annotation is actually the sought target annotation.

In addition, duplicated code has been extracted into common methods
(e.g., hasMetaAnnotationTypes()) and common Processor implementations
(e.g., AlwaysTrueBooleanAnnotationProcessor).
2016-03-25 15:59:54 +01:00