Use LinkedHashMaps/Sets wherever exposed to users, and code tests defensively in terms of expected Map/Set ordering. Otherwise, there'll be runtime order differences between JDK 7 and JDK 8 due to internal HashMap/Set implementation differences.
Issue: SPR-9639
In particular, avoid accidental usage of ASM for core JDK types - which will fail in case of a new bytecode version in the JDK, even if the application itself has been compiled with an earlier bytecode target.
Issue: SPR-10292
There is now a WebSocketMessage type with TextMessage and BinaryMessage
sub-types. WebSocketHandler is also sub-divided into TextMessageHandler
and BinaryMessageHandler, so that applications can choose to handle
text, binary, or both.
Also in this commit, the SockJsHandler and SockJsSession interfaces
have been removed. SockJsService now accepts WebSocketHandler.
As opposed to close(), which actively closes the session, the
onClosed method is called when the underlying connection has been
closed or disconnected.
Add HandlerProvider<T> class
Modify HandshakeHandler to accept + adapt WebSocketHandler at runtime
Modify SockJsService to accept + adapt SockJsHandler at runtime
This is useful to make sure response headers are written to the
underlying response. It is also useful in conjunction with long
running, async requests and HTTP streaming, to ensure the Servlet
response buffer is sent to the client without additional delay and
also causes an IOException to be raised if the client has gone away.
- configure SockJS handler by type (as well as by instance)
- add method to obtain SockJS handler instance via SockJsConfiguration
- detect presense of jsr-356 and use it if available
Add 'jasperreports.properties' to ignore missing fonts in order that
tests pass on Linux.
The upgraded JasperReports 5.0.4 throws a JRFontNotFoundException when
a report font is not found. This caused Spring MVC tests to fail since
the example reports used the 'Arial' font which is not shipped with most
Linux distributions.
An alternative fix would have been to package fonts with the reports
using JasperReports font extension support.
Issue: SPR-10438
* 3.2.x:
Update javadoc external links
JdbcTemplate etc
Removed unnecessary default value of LifecycleGroup.lifecycleBeans
Introduced public ArgumentPreparedStatementSetter and ArgumentTypePreparedStatementSetter classes
Defensively uses JDBC 3.0 getParameterType call for Oracle driver compatibility
Preparations for 3.2.3
Fixed ReflectiveMethodResolver to avoid potential UnsupportedOperationException on sort
Fixed Jaxb2Marshaller's partial unmarshalling feature to consistently apply to all sources
Update copyright year in reference documentation
Conflicts:
build.gradle
gradle.properties
spring-context/src/main/java/org/springframework/context/support/DefaultLifecycleProcessor.java
spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentPreparedStatementSetter.java
spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentTypePreparedStatementSetter.java
HibernateJpaDialect's HibernateConnectionHandle does not call close() for Hibernate 4.x anymore, since on 4.2, the exposed Connection handle isn't a "borrowed connection" wrapper but rather the actual underlying Connection - with a close() call immediately returning the Connection to the pool and making the local handle invalid for further use within the transaction.
Also using JPA 2.0's EntityManager unwrap method now for retrieving the underlying Hibernate Session.
Issue: SPR-10395
Driven by the need for implementing Bean Validation 1.1's "releaseInstance" method in SpringConstraintValidatorFactory, as a direct counterpart to the use of AutowireCapableBeanFactory's "createBean(Class)" in "getInstance".
Issue: SPR-8199