Commit Graph

10119 Commits

Author SHA1 Message Date
Sebastien Deleuze 5b0a0f4db5 Support CompletableFuture as alternative to DeferredResult in MVC
Issue: SPR-12597
2015-04-20 14:19:31 +02:00
Juergen Hoeller 72894b26c2 Fix conversion of Message<?> payload for replies
If a custom MessageConverter is set, it is not used for replies defined
via the Message abstraction. This commit harmonizes the behaviour of the
`MessagingMessageConverter` so that the conversion of the payload can
be converted for both incoming and outgoing messages.

Issue: SPR-12912
2015-04-20 13:29:32 +02:00
Stephane Nicoll 444b9032be Apply DestinationResolver to listener container
Previously, a custom `DestinationResolver` was not made available
to the underlying `MessageListener`: if a reply needs to be sent, the
default `DestinationResolver` was used.

This commit ensures that if a custom `DestinationResolver` has been set,
it is also configured accordingly for replies.

Issue: SPR-12927
2015-04-20 09:51:33 +02:00
Sebastien Deleuze 9a65eec36f Avoid registering CorsConfiguration for methods without @CrossOrigin
Issue: SPR-12931
2015-04-20 09:04:38 +02:00
Sam Brannen e829b2aa1d Polish Javadoc for ContextCache 2015-04-20 00:53:45 +02:00
Sam Brannen 93f403cbf6 Ensure that contexts loaded by the TCF are active
This commit adds an assertion to DefaultTestContext's
getApplicationContext() method to ensure that a context loaded by the
Spring TestContext Framework (TCF) or retrieved from the ContextCache
is still active. This extra check helps to avoid situations where
developers manually close a cached context instead of relying on the
@DirtiesContext support.

Issue: SPR-12932
2015-04-20 00:37:16 +02:00
Sam Brannen d66d160543 Use ConcurrentHashMaps in DefaultContextCache
The changes made in 0cb22fc8f3 would
result in contexts not being properly closed if evicted from the
ConcurrentReferenceHashMap by the Garbage Collector.

This commit reverts those changes and returns to using standard
ConcurrentHashMaps for the time being.

Issue: SPR-7687
2015-04-19 21:06:41 +02:00
Sam Brannen c52a0ccdfd Introduce TestContextManager(TestContextBootstrapper) constructor
Issue: SPR-12683
2015-04-19 20:09:03 +02:00
Sam Brannen 9e6a5ae4a7 Merge pull request #780 from sbrannen/SPR-12683
Improve extensibility of TestContext bootstrapping & context caching

These commits include numerous refactorings and enhancements to the
bootstrapping and context caching mechanisms in the Spring TestContext
Framework.

Issue: SPR-12683
2015-04-19 19:44:15 +02:00
Sam Brannen 129488cb4f Improve extensibility of TestContext bootstrapping & context caching
- DefaultBootstrapContext and DefaultCacheAwareContextLoaderDelegate
   are now public classes in the 'support' subpackage.

 - Introduced getCacheAwareContextLoaderDelegate() in
   AbstractTestContextBootstrapper as an extension point for configuring
   custom ContextCache support.

 - Introduced reflection-based createBootstrapContext() utility method
   in BootstrapUtils; TestContextManager now delegates to BootstrapUtils
   in order to avoid package cycles.

 - Introduced logStatistics() method in the ContextCache API and defined
   statistics logging category as a constant.

 - DefaultCacheAwareContextLoaderDelegate now delegates to
   ContextCache.logStatistics().

Issue: SPR-12683
2015-04-19 19:23:56 +02:00
Sam Brannen e6c24f7167 Convert ContextCache to interface with default implementation
- ContextCache is now a public interface.

 - Introduced public DefaultContextCache implementation in the 'support'
   subpackage.

Issue: SPR-12683
2015-04-19 19:23:42 +02:00
Sam Brannen c9d597f519 Introduce createBootstrapContext() extension in TestContextManager
Issue: SPR-12683
2015-04-18 23:47:11 +02:00
Sam Brannen 0b054f9fbd Improve Javadoc for TestContextBootstrapper 2015-04-18 23:45:34 +02:00
Sam Brannen 186abcb054 Introduce buildTestContext() in TestContextBootstrapper
This commit moves the responsibility of building a TestContext from the
TestContextManager to a TestContextBootstrapper.

In addition, DefaultTestContext is now a public class residing in the
"support" subpackage.

Issue: SPR-12683
2015-04-18 23:15:30 +02:00
Sam Brannen 0392a88c69 Move static ContextCache to DefaultCacheAwareContextLoaderDelegate
Issue: SPR-12683
2015-04-18 20:23:24 +02:00
Sam Brannen 0e287c1a90 Introduce resetContextCache() in ContextCacheTestUtils 2015-04-18 19:16:59 +02:00
Sam Brannen dc345dcb3d Polish TestContextManager 2015-04-18 18:50:37 +02:00
Sam Brannen 0cb22fc8f3 Use SoftReferences for context caching in the TCF
Prior to this commit, the ContextCache in the Spring TestContext
Framework (TCF) cached ApplicationContexts in a ConcurrentHashMap using
strong references. This practice can occasionally lead to
OutOfMemoryErrors when running a large number of tests in a test suite
with varying context configuration since the context cache becomes
overpopulated over time.

This commit addresses this issue by using Spring's
ConcurrentReferenceHashMap which uses SoftReferences for both the keys
(i.e., MergedContextConfiguration instances) and values (i.e.,
ApplicationContexts) stored in the map that backs the ContextCache.

Issue: SPR-7687
2015-04-18 17:36:39 +02:00
Sam Brannen 2a4f4cd258 Introduce reset() method in ContextCache 2015-04-17 22:51:04 +02:00
Rossen Stoyanchev c29eae3307 Support user destinations with multiple app servers
This change adds support for broadcasting messages with unresolved
user destinations so that other servers can try to resolve it.
That enables sending messages to users who may be connected to a
different server.

Issue: SPR-11620
2015-04-17 11:55:44 -04:00
Rossen Stoyanchev c384945a17 Polish "user" destination support package
Issue: SPR-11620
2015-04-17 11:55:44 -04:00
Sam Brannen 3c5a9b4e1d Introduce class-level @DirtiesContext tests for TestNG
Prior to this commit, ClassLevelDirtiesContextTests existed for
verifying the expected behavior of @DirtiesContext declared at the
class level in conjunction with JUnit and SpringJUnit4ClassRunner.

This commit introduces analogous tests for TestNG in the new
ClassLevelDirtiesContextTestNGTests class.

Furthermore, ContextCacheTestUtils and TrackingTestNGTestListener have
been introduced to reduce code duplication across the test suite.

Issue: SPR-12918
2015-04-17 17:26:38 +02:00
Sam Brannen d31f3ee0b2 Suppress warning in ServletAnnotationControllerHandlerMethodTests 2015-04-17 02:11:12 +02:00
Juergen Hoeller afe42cd2a2 Upgrade to JavaMail 1.5.3 (and Hibernate 4.3.9) 2015-04-16 23:19:53 +02:00
Juergen Hoeller d398bb7c51 DefaultMessageListenerContainer uses receiveTimeout for wait call on shutdown
Issue: SPR-11841
2015-04-16 22:49:45 +02:00
Juergen Hoeller cddcf3637d Polishing 2015-04-16 21:54:03 +02:00
Juergen Hoeller 050e581c10 StatementCreatorUtils.setValue only uses setString etc for Types.OTHER in case of Oracle
Issue: SPR-12890
2015-04-16 21:53:51 +02:00
Juergen Hoeller 10a51a4f19 InvocableHandlerMethod logs argument resolution exceptions at debug level
Issue: SPR-12925
2015-04-16 20:26:11 +02:00
Stephane Nicoll fac639971a Merge remote-tracking branch 'origin/master' 2015-04-16 18:18:46 +02:00
Stephane Nicoll f98a6c6b6a Support expression in @SendTo
The attributes of @JmsListener allows to specify the reference to a key
in the Environment but @SendTo did not.

This commit fixes this inconsistency so that response destinations are
now also externally configurable.

Issue: SPR-12899
2015-04-16 18:18:29 +02:00
Juergen Hoeller 9ed0a56d84 AbstractApplicationContext collects early ApplicationEvents and publishes them once the multicaster is available
Issue: SPR-12902
2015-04-16 18:16:15 +02:00
Juergen Hoeller 65ba72f1fc FactoryBean type check logs currently-in-creation exception at debug level
Issue: SPR-12900
2015-04-16 18:16:03 +02:00
Juergen Hoeller aa49949d7a Bean type mismatch check accepts assignable values according to ClassUtils
Issue: SPR-12905
2015-04-16 18:15:33 +02:00
Stephane Nicoll 2c7d2d38a9 Support custom resolution of response destination
Previously, the "pubSubDomain" drove the resolution of both the
destination of the listener and the default response destination.

A new "replyPubSubDomain" attribute has been added on the base listener
and  can be used to listen on a topic and reply to a queue (or vice
versa). The attribute is exposed via the "response-destination-type" XML
attribute on the listener container element. It is also available on the
JmsListenerContainerFactory for use with the @JmsListener infrastructure.

Issue: SPR-12911
2015-04-16 17:29:48 +02:00
Juergen Hoeller e403aefe86 Proper exception in case of an @Bean method call encountering a bean type mismatch
Issue: SPR-12905
2015-04-15 23:37:51 +02:00
Juergen Hoeller 1da98b0542 @Bean-returned FactoryBean proxy delegates to actual target instance now
Issue: SPR-12915
2015-04-15 22:49:53 +02:00
Sam Brannen 96e6406b4b Clarify semantics for multiple profiles in @Profile 2015-04-15 21:56:31 +02:00
Juergen Hoeller fafb823e8d Polishing 2015-04-15 15:13:42 +02:00
Juergen Hoeller af272c2124 HttpEntity and its subclasses insist on same target type for equality
Issue: SPR-12910
2015-04-15 14:58:16 +02:00
Juergen Hoeller 8b2d9951e0 AnnotationAsyncExecutionAspect properly accepts ListenableFuture return type
Issue: SPR-12895
2015-04-15 14:57:43 +02:00
Sam Brannen c006b74e91 Make AbsTstCtxBootstrapper.resolveContextLoader protected
This commit increases the extensibility of
AbstractTestContextBootstrapper by making the resolveContextLoader()
and resolveExplicitContextLoaderClass() methods protected instead of
private.

Furthermore, resolveContextLoader() now throws an IllegalStateException
if getDefaultContextLoaderClass() returns null.

Issue: SPR-12682
2015-04-15 00:37:43 +02:00
Sam Brannen 1226596b8b Document connection handling in ScriptUtils
This commit improves the documentation for ScriptUtils by explicitly
mentioning that a JDBC Connection supplied to the one of the
executeSqlScript() methods will not be released automatically.

Issue: SPR-12908
2015-04-14 23:00:43 +02:00
Sam Brannen e581244370 Delete legacy JdbcTestUtils in spring-orm 2015-04-14 22:15:31 +02:00
Sam Brannen dba48a1ff5 Isolate thrown exception in AssertTests 2015-04-14 20:42:23 +02:00
Sam Brannen fefbd8f85b Polish Javadoc for StringUtils and Assert 2015-04-14 20:05:56 +02:00
Sam Brannen 47f8d435e6 Introduce isNotEmpty() aliases in StringUtils
This commit introduces isNotEmpty() aliases for the existing hasLength()
methods in StringUtils.

Issue: SPR-12909
2015-04-14 20:02:18 +02:00
Rossen Stoyanchev a3df66931f Add path-helper attribute for websocket namespace
Issue: SPR-11771
2015-04-13 22:39:50 -04:00
Rossen Stoyanchev e4acbae270 Polish 2015-04-13 18:16:38 -04:00
Rossen Stoyanchev 26cfe5795f Find @ResponseStatus recursively on getCause()
Issue: SPR-12903
2015-04-13 18:10:55 -04:00
Rossen Stoyanchev c172d9d745 Add trailing slash support to AbstractUrlHandlerMapping
Issue: SPR-12818
2015-04-13 15:33:25 -04:00