Skip to content

Commit ffbaa26

Browse files
committed
End of first-class JDK 6 support
Issue: SPR-16185
1 parent 5869127 commit ffbaa26

File tree

1 file changed

+65
-1
lines changed

1 file changed

+65
-1
lines changed

src/asciidoc/whats-new.adoc

+65-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
[[spring-whats-new]]
22
= What's New in Spring Framework 4.x
33

4-
This chapter provides an overview of the new features and improvements that have been introduced with Spring Framework 4.3. If you are interested in more details, please see the link:https://jira.spring.io/issues/?jql=project%20%3D%20SPR%20AND%20fixVersion%20in%20(%224.3%20RC1%22%2C%20%224.3%20RC2%22%2C%20%224.3%20GA%22)%20ORDER%20BY%20issuetype%20DESC&startIndex=50[Issue Tracker tickets] that were resolved as part of the 4.3 development process.
4+
This chapter provides an overview of the new features and improvements that have been
5+
introduced with Spring Framework 4.3. If you are interested in more details, please see the link:
6+
https://jira.spring.io/issues/?jql=project%20%3D%20SPR%20AND%20fixVersion%20in%20(%224.3%20RC1%22%2C%20%224.3%20RC2%22%2C%20%224.3%20GA%22)%20ORDER%20BY%20issuetype%20DESC&startIndex=50[Issue Tracker tickets]
7+
that were resolved as part of the 4.3 development process.
8+
9+
510

611

712
[[new-in-4.0]]
813
== New Features and Enhancements in Spring Framework 4.0
14+
915
The Spring Framework was first released in 2004; since then there have been significant
1016
major revisions: Spring 2.0 provided XML namespaces and AspectJ support; Spring 2.5
1117
embraced annotation-driven configuration; Spring 3.0 introduced a strong Java 5+ foundation
@@ -22,6 +28,7 @@ is available on the {wiki-spring-framework}[Spring Framework GitHub Wiki].
2228

2329

2430
=== Improved Getting Started Experience
31+
2532
The new https://spring.io[spring.io] website provides a whole series of
2633
https://spring.io/guides["Getting Started"] guides to help you learn Spring. You
2734
can read more about the guides in the <<overview-getting-started-with-spring>> section
@@ -35,6 +42,7 @@ Framework release.
3542

3643

3744
=== Removed Deprecated Packages and Methods
45+
3846
All deprecated packages, and many deprecated classes and methods have been removed with
3947
version 4.0. If you are upgrading from a previous release of Spring, you should ensure
4048
that you have fixed any deprecated calls that you were making to outdated APIs.
@@ -53,6 +61,7 @@ retained for the time being where Spring 3.2 had it; now just in deprecated form
5361

5462

5563
=== Java 8 (as well as 6 and 7)
64+
5665
Spring Framework 4.0 provides support for several Java 8 features. You can make use of
5766
__lambda expressions__ and __method references__ with Spring's callback interfaces. There
5867
is first-class support for `java.time` (http://jcp.org/en/jsr/detail?id=310[JSR-310]),
@@ -65,9 +74,20 @@ Spring remains compatible with older versions of Java and the JDK: concretely, J
6574
and above are still fully supported. However, for newly started development projects
6675
based on Spring 4, we recommend the use of Java 7 or 8.
6776

77+
[NOTE]
78+
====
79+
As of late 2017, JDK 6 is being phased out and therefore also Spring's JDK 6 support.
80+
Oracle as well as IBM will terminate all commercial support efforts for JDK 6 in 2018.
81+
While Spring will retain its JDK 6 runtime compatibility for the entire 4.3.x line,
82+
we require an upgrade to JDK 7 or higher for any further support beyond this point:
83+
in particular for JDK 6 specific bug fixes or other issues where an upgrade to JDK 7
84+
addresses the problem.
85+
====
86+
6887

6988

7089
=== Java EE 6 and 7
90+
7191
Java EE version 6 or above is now considered the baseline for Spring Framework 4, with
7292
the JPA 2.0 and Servlet 3.0 specifications being of particular relevance. In order to
7393
remain compatible with Google App Engine and older application servers, it is possible
@@ -95,6 +115,7 @@ Spring Framework 4.0. The same applies to Hibernate Validator 5.0 as a Bean Vali
95115

96116

97117
=== Groovy Bean Definition DSL
118+
98119
Beginning with Spring Framework 4.0, it is possible to define external bean configuration
99120
using a Groovy DSL. This is similar in concept to using XML bean definitions but allows
100121
for a more concise syntax. Using Groovy also allows you to easily embed bean definitions
@@ -129,6 +150,7 @@ For more information consult the `GroovyBeanDefinitionReader`
129150

130151

131152
=== Core Container Improvements
153+
132154
There have been several general improvements to the core container:
133155

134156
* Spring now treats <<beans-generics-as-qualifiers,__generic types__ as a form of
@@ -156,6 +178,7 @@ There have been several general improvements to the core container:
156178

157179

158180
=== General Web Improvements
181+
159182
Deployment to Servlet 2.5 servers remains an option, but Spring Framework 4.0 is now
160183
focused primarily on Servlet 3.0+ environments. If you are using the
161184
<<spring-mvc-test-framework,Spring MVC Test Framework>> you
@@ -175,6 +198,7 @@ have been made to Spring's Web modules:
175198

176199

177200
=== WebSocket, SockJS, and STOMP Messaging
201+
178202
A new `spring-websocket` module provides comprehensive support for WebSocket-based,
179203
two-way communication between client and server in web applications. It is compatible with
180204
http://jcp.org/en/jsr/detail?id=356[JSR-356], the Java WebSocket API, and in addition
@@ -196,6 +220,7 @@ For further details, including a more thorough introduction, see the <<websocket
196220

197221

198222
=== Testing Improvements
223+
199224
In addition to pruning of deprecated code within the `spring-test` module, Spring
200225
Framework 4.0 introduces several new features for use in unit and integration testing.
201226

@@ -230,7 +255,10 @@ Version 4.1 included a number of improvements, as described in the following sec
230255
* <<v4_1-WebSocket-Messaging-Improvements>>
231256
* <<v4_1-Testing-Improvements>>
232257

258+
259+
233260
=== JMS Improvements [[v4_1-JMS-Improvements]]
261+
234262
Spring 4.1 introduces a much simpler infrastructure <<jms-annotated,to register JMS
235263
listener endpoints>> by annotating bean methods with
236264
{api-spring-framework}/jms/annotation/JmsListener.html[`@JmsListener`].
@@ -260,6 +288,8 @@ Finally, Spring 4.1 provides additional miscellaneous improvements:
260288
{api-spring-framework}/util/backoff/BackOff.html[`BackOff`] implementation
261289
* JMS 2.0 shared consumers are supported
262290

291+
292+
263293
=== Caching Improvements [[v4_1-Caching-Improvements]]
264294

265295
Spring 4.1 supports <<cache-jsr-107,JCache (JSR-107) annotations>> using Spring's
@@ -280,6 +310,8 @@ Spring 4.1 also improves its own caching abstraction significantly:
280310
Spring 4.1 also has a breaking change in the `Cache` interface as a new `putIfAbsent`
281311
method has been added.
282312

313+
314+
283315
=== Web Improvements [[v4_1-Web-Improvements]]
284316

285317
* The existing support for resource handling based on the `ResourceHttpRequestHandler`
@@ -337,6 +369,8 @@ method has been added.
337369
support (based on Groovy 2.3). See the `GroovyMarkupConfigurer` and respecitve
338370
`ViewResolver` and `View' implementations.
339371

372+
373+
340374
=== WebSocket Messaging Improvements [[v4_1-WebSocket-Messaging-Improvements]]
341375

342376
* SockJS (Java) client-side support. See `SockJsClient` and classes in same package.
@@ -355,6 +389,8 @@ method has been added.
355389
* Close STOMP/WebSocket connections that have no activity within 60 seconds after the
356390
WebSocket session is established. See https://jira.spring.io/browse/SPR-11884[SPR-11884].
357391

392+
393+
358394
=== Testing Improvements [[v4_1-Testing-Improvements]]
359395

360396
* Groovy scripts can now be used to configure the `ApplicationContext` loaded for
@@ -403,6 +439,8 @@ Version 4.2 included a number of improvements, as described in the following sec
403439
* <<v4_2-WebSocket-Messaging-Improvements>>
404440
* <<v4_2-Testing-Improvements>>
405441

442+
443+
406444
=== Core Container Improvements [[v4_2-Core-Container-Improvements]]
407445

408446
* Annotations such as `@Bean` get detected and processed on Java 8 default methods as well,
@@ -507,6 +545,8 @@ public @interface MyTestConfig {
507545
exposed through the `lang:std` element in XML. Supports e.g. JavaScript and JRuby.
508546
(Note: JRubyScriptFactory and `lang:jruby` are deprecated now, in favor of using JSR-223.)
509547

548+
549+
510550
=== Data Access Improvements [[v4_2-Data-Access-Improvements]]
511551

512552
* `javax.transaction.Transactional` is now supported via AspectJ.
@@ -517,6 +557,8 @@ public @interface MyTestConfig {
517557
`<jdbc:embedded-database>` supports a new `database-name` attribute.
518558
See "Testing Improvements" below for further details.
519559

560+
561+
520562
=== JMS Improvements [[v4_2-JMS-Improvements]]
521563

522564
* The `autoStartup` attribute can be controlled via `JmsListenerContainerFactory`.
@@ -526,6 +568,8 @@ public @interface MyTestConfig {
526568
* `@JmsListener` is now a repeatable annotation to declare several JMS containers on the same
527569
method (use the newly introduced `@JmsListeners` if you're not using Java8 yet).
528570

571+
572+
529573
=== Web Improvements [[v4_2-Web-Improvements]]
530574

531575
* HTTP Streaming and Server-Sent Events support, see <<mvc-ann-async-http-streaming>>.
@@ -559,6 +603,8 @@ public @interface MyTestConfig {
559603
* Introduced `ScriptTemplateView` as a JSR-223 based mechanism for scripted web views,
560604
with a focus on JavaScript view templating on Nashorn (JDK 8).
561605

606+
607+
562608
=== WebSocket Messaging Improvements [[v4_2-WebSocket-Messaging-Improvements]]
563609

564610
* Expose presence information about connected users and subscriptions:
@@ -575,6 +621,8 @@ public @interface MyTestConfig {
575621
`@MessageMapping` and `@SubscribeMapping` methods.
576622
* `MarshallingMessageConverter` for XML payloads.
577623

624+
625+
578626
=== Testing Improvements [[v4_2-Testing-Improvements]]
579627

580628
* JUnit-based integration tests can now be executed with JUnit rules instead of the
@@ -650,6 +698,8 @@ Version 4.3 included a number of improvements, as described in the following sec
650698
* <<v4_3-Testing-Improvements>>
651699
* <<v4_3-Support-for-new-library-and-server-generations>>
652700

701+
702+
653703
=== Core Container Improvements [[v4_3-Core-Container-Improvements]]
654704

655705
* Core container exceptions provide richer metadata to evaluate programmatically.
@@ -670,11 +720,15 @@ Version 4.3 included a number of improvements, as described in the following sec
670720
custom _composed annotations_ with attribute overrides.
671721
* `@Scheduled` is properly supported on beans of any scope.
672722

723+
724+
673725
=== Data Access Improvements [[v4_3-Data-Access-Improvements]]
674726

675727
* `jdbc:initialize-database` and `jdbc:embedded-database` support a configurable
676728
separator to be applied to each script.
677729

730+
731+
678732
=== Caching Improvements [[v4_3-Caching-Improvements]]
679733

680734
Spring 4.3 allows concurrent calls on a given key to be synchronized so that the
@@ -692,12 +746,16 @@ Spring 4.3 also improves the caching abstraction as follows:
692746
* `@Cacheable`, `@CacheEvict`, `@CachePut`, and `@Caching` may now be used as
693747
_meta-annotations_ to create custom _composed annotations_ with attribute overrides.
694748

749+
750+
695751
=== JMS Improvements [[v4_3-JMS-Improvements]]
696752

697753
* `@SendTo` can now be specified at the class level to share a common reply destination.
698754
* `@JmsListener` and `@JmsListeners` may now be used as _meta-annotations_ to create
699755
custom _composed annotations_ with attribute overrides.
700756

757+
758+
701759
=== Web Improvements [[v4_3-Web-Improvements]]
702760

703761
* Built-in support for <<mvc-ann-requestmapping-head-options,HTTP HEAD and HTTP OPTIONS>>.
@@ -721,10 +779,14 @@ Spring 4.3 also improves the caching abstraction as follows:
721779
* `RestTemplate` and `AsyncRestTemplate` support strict URI variable encoding via `DefaultUriTemplateHandler`.
722780
* `AsyncRestTemplate` supports request interception.
723781

782+
783+
724784
=== WebSocket Messaging Improvements [[v4_3-WebSocket-Messaging-Improvements]]
725785

726786
* `@SendTo` and `@SendToUser` can now be specified at class-level to share a common destination.
727787

788+
789+
728790
=== Testing Improvements [[v4_3-Testing-Improvements]]
729791

730792
* The JUnit support in the _Spring TestContext Framework_ now requires JUnit 4.12 or higher.
@@ -754,6 +816,8 @@ Spring 4.3 also improves the caching abstraction as follows:
754816
whether the order of declaration for expectations should be ignored (see <<spring-mvc-test-client>>).
755817
* Client-side REST Test supports expectations for form data in the request body.
756818

819+
820+
757821
=== Support for new library and server generations [[v4_3-Support-for-new-library-and-server-generations]]
758822

759823
* Hibernate ORM 5.2 (still supporting 4.2/4.3 and 5.0/5.1 as well, with 3.6 deprecated now)

0 commit comments

Comments
 (0)