Avoid HandlerMapping attribute in ResourceUrlProvider

The use of the HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE
in ResourceUrlProvider (as a way of saving lookup path determination)
leads to incorrect results. For example when the request is forwarded
the current requestUri may no longer be compariable to the value of the
PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE. Also where the request is mapped
using a pattern, the value of PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE is
not the same as the lookup path.

This change removes the use of the attribute from ResourceUrlProvider
and instead always determines the lookup path when getForRequestUrl
is called.

Issue: SPR-12332
Polish ResourceUrlEncodingFilter
Cache lookup path in ResourceUrlEncodingFilter

Commit https://github.com/spring-projects/spring-framework/commit/2b97d6
introduced a change where the path within the DispatcherServlet is
determined with each call to ResourceUrlProvider.getForRequestUrl.

To avoid repeating that every time a URL is encoded through the
response, we now cache the result of the lookupPath determination in
ResourceUrlEncodingFilter.

Issue: SPR-12332
Upgrade to reactor 1.1.5.RELEASE
Fix regression with raw ResponseEntity type

This fix addresses a 4.1.1 regression where a raw ResponseEntity return
value (used to return potentially a different kind of body) caused an
exception.

The regression came from the fact we now try to render a null body in
order to give ResponseBodyAdvice a chance to substitute a different
value. That in turn means we have to try to determine the body type
from the method signature.

This change improves the logic for extracting the generic parameter
type to accommodate a raw ResponseEntity class. Also we avoid raising
HttpMediaTypeNotAcceptableException if the value to be rendered is
null.

Issue: SPR-12287
Fix SpEL compilation of constructor invocation

The argument processing for compiling constructor references
was very basic and this fix removes that and ensures the
comprehensive logic written for method argument processing
(under SPR-12328) is now used for both method and constructor
argument handling. This fixes the reported issue and ensures
varargs constructor references can be compiled.

This also includes a couple of small fixes for the secondary
testcase reported in SPR-12326. The first is to ensure the
right root context object is used when it is passed
to getValue() indirectly through the evaluation context.
The final fix is to ensure correct boxing of primitives is
done when a method is called upon a primitive.

Issue: SPR-12326
JdbcTemplate and JmsTemplate pass settings with 0 values on to the driver

Issue: SPR-12338
ExposeInvocationInterceptor declares itself as PriorityOrdered now

Issue: SPR-12351
Consistent number handling in StandardTypeComparator (BigInteger support, doubleValue fallback)

Also includes a fix for the Comparable raw type invocation.

Issue: SPR-9913
Issue: SPR-12353
Reimplemented ServerEndpointExporter to avoid BeanPostProcessor role

Issue: SPR-12340
Polishing
AnnotationUtils favors local composed annotations over interface annotations and consistently logs introspection failures via lazily initialized logger

Issue: SPR-12355
Issue: SPR-12325
Issue: SPR-12329
HttpSessionHandshakeInterceptor and related web.socket.server polishing

Issue: SPR-12352
Consistent formatting of license headers, package javadocs, and import declarations
Consistent use of logIntrospectionFailure

Issue: SPR-12325
OrderUtils.getPriority uses AnnotationUtils.findAnnotation for consistent lookup rules and diagnostics

Issue: SPR-12357
Restored compatibility with JsonPath 0.9.x

Issue: SPR-12299
Add missing text to CachingResourceTransformer Javadoc
Fix JUnit imports in SourceHttpMessageConverterTests

When org.junit.Assert.* is statically imported, the class does not
compile in Eclipse/STS since XMLAssert extends junit.framework.Assert.
Better use of key iterator

This commit uses an EntrySet instead of looping over the keys and
retrieving the value in a separate call.

Issue: SPR-12356