Polishing tests in spring-test
Refined DefaultJpaDialect's InvalidIsolationLevelException message

Issue: SPR-8325
Reference documentation covers application scope now

Issue: SPR-11944
Jms2MessageProducerInvocationHandler properly delegates to CachedMessageProducer.this

Issue: SPR-11949
Add support for extra MessageProducer method

This commit supports two additional methods of the MessageProducer
interface as from JMS 2.0

An integration test infrastructure is necessary to be able to test
those scenario: this is taken care of in a separated initiative.

Issue: SPR-11950
Revised Jms2MessageProducerInvocationHandler implementation with switch statement

Issue: SPR-11950
Introduce tests for Spring Boot issue 885

This commit introduces unit tests that attempt to reproduce the problem
described in Spring Boot issue 885; however, the tests pass and
therefore do not confirm the reported problem.

See: https://github.com/spring-projects/spring-boot/issues/885
Reduce PlatformTransactionManager lookups

Prior to this commit, cache operations mentioning a qualifier led to
a lookup for the same PlatformTransactionManager over and over again.
The same applied when a transactionManager bean name was specified on
the interceptor.

This commit adds a cache to store the reference of such transaction
managers. As a convenience, the default PlatformTransactionManager is
also initialized if it has not been through configuration.

Issue: SPR-11954
CachedSessionInvocationHandler properly caches createSharedConsumer results

Issue: SPR-11956
ConstructorResolver's exception message on null factory-bean hints at potential BeanPostProcessor involvement

Issue: SPR-11951
CachedSessionInvocationHandler includes durable flag in ConsumerCacheKey

Issue: SPR-11956
Refined CachingConnectionFactory log messages

Issue: SPR-11956
Removed outdated AspectJ comment

Issue: SPR-11957
TypedValue implements equals/hashCode based on value and TypeDescriptor

Issue: SPR-11960
Fix mutually exclusive use of CachePut and Cacheable

Commit eea230f introduced a regression by adding a support for the
"result" variable in SpEL expression for @CachePut. As such expressions
cannot be evaluated upfront anymore, any method that contains both
@Cacheable and @CachePut annotations are always executed even when
their conditions are mutually exclusive.

This is an example of such mutual exclusion

@Cacheable(condition = "#p1", key = "#p0")
@CachePut(condition = "!#p1", key = "#p0")
public Object getFooById(Object id, boolean flag) { ... }

This commit updates CacheEvaluationContext to define a set of
unavailable variables. When such variable is accessed for a given
expression, an exception is thrown. This is used to restore the
evaluation of the @CachePut condition upfront by registering "result"
as an unavailable variable.

If all @CachePut operations have been excluded by this upfront check,
the @Cacheable operation is processed as it was before. Such upfront
check restore the behavior prior to eea230f.

Issue: SPR-11955
RestTemplate accepts getMessageConverters() List on setMessageConverters again

Issue: SPR-11962
SQLStateSQLExceptionTranslator checks exception class name for timeout indication before resorting to UncategorizedSQLException

Issue: SPR-11959
Polishing
Remove Jackson dependency from TransportHandler hierarchy

Prior to this change, AbstractHttpReceivingTransportHandler had a direct
dependency on a Jacckson Exception (checking that exception in a catch
clause). This can cause issues for applications that don't have that
dependency.

This commit removes that direct dependency, still logging the
appropriate log messages using a parent exception (IOException) and
reflection.

Issue: SPR-11963
Polish SPR-11963