Blogs

SpringSource Blog

Next Stop: Spring Framework 4.0

Juergen Hoeller

Dear Spring community,

I'm happy to announce that the next iteration of the core framework will be Spring Framework 4.0!

The current 3.2 generation is a natural conclusion of the 3.x line, with Java-based configuration and REST having been recent focus areas next to Java SE 7 and Servlet 3.0 support.

For Spring Framework 4.0, our focus is on emerging enterprise themes in 2013 and beyond:

  • First-class support for Java SE 8 based Spring applications:
    language features such as lambda expressions; APIs such as JSR-310 Date and Time

  • Configuring and implementing Spring-style applications using Groovy 2:
    Groovy-based bean definitions; Groovy as the language of choice for an entire app

  • Support for key Java EE 7 technologies:
    including JMS 2.0, JPA 2.1, Bean Validation 1.1, Servlet 3.1, and JCache

  • Enabling WebSocket-style application architectures:
    support for JSR-356 compliant runtimes and related technologies

  • Fine-grained eventing and messaging within the application:
    building on our existing application event and message listener mechanisms

  • Pruning and dependency upgrades:
    removing deprecated features; raising minimum dependencies to Java 6+ etc

Building on the momentum and the preparation work behind Spring Framework 3.2, we intend to have yet another one-year iteration and reach 4.0 GA by the end of 2013.

We'll be tracking OpenJDK 8's schedule closely, delivering a first Spring Framework 4.0 milestone as early as April. Details will follow in further blog posts as we get closer to M1.

Let us know whether you have any particular favorites among the above, specific architectural requirements, plans to adopt upcoming technologies for use with Spring, …

Cheers,
Juergen

P.S.: Don't miss our upcoming webinar on Thursday!
We'll be presenting recent Spring Framework 3.2 features and will conclude with an outlook for 2013, discussing the Spring Framework 4.0 plan and related work areas.

Similar Posts

Share this Post
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • DZone
  • LinkedIn
  • Slashdot
  • Technorati
  • Twitter
 

16 responses


  1. There's a intent to be a CDI implementation choice?


  2. What about conversation support for spring MVC? I would like a clear answer to that because it has been postponed every release since 3.0. Thanks.


  3. I think you could make a big release for all the projects of the Spring Portfolio. A new version 4 for all of them, with the rest of the projects depending on this new core v4.

    Besides, it would be desirable to have all the projects with the same versions for the dependencies.

    Regarding my interests, do you have any plans for JSR 352: Batch Applications for the Java Platform? (that is actually a direct copy of the Spring Batch project)


  4. Thanks for sharing this information.


  5. Groovн finally began to take its rightful place in the enterprise applications. I hope that Spring Groovy 2.1 ahead of the competition with Play! and Nodejs.


  6. Javier,

    Several related projects are planning to have major releases in their own right, building on Spring Framework 4.0 once it goes GA. They will be building on the new core but won't all use the version number 4.0; they'll rather follow their own versioning scheme.

    With respect to Spring Batch, the upcoming Spring Batch 3.0 aims to be JSR-352 compliant. Our batch guys were quite involved in the expert group and consider JSR-352 compliance as a key driver for their 3.0 generation. They'll probably blog about it soon.

    Juergen


  7. John,

    The conversation support question has been raised several times, and I'm afraid we still don't have a final answer there. I suppose you're primarily interested in window-specific sessions? Or do you have a need for actual conversations, i.e. manually demarcated begin and end times beyond what Spring MVC's SessionStatus.setComplete mechanism gives you already?

    Isolation between browser windows is certainly a problem worth providing an out-of-the-box solution for. However, the proposed solutions unfortunately require custom JavaScript for the detection of newly opened browser windows on the client side; otherwise the server side cannot differentiate between requests from those windows since there is no clue sent along.

    We remain cautious about introducing a framework-level conversation solution at this point. However, we are open to contributions that focus on practical parts of the general problem: e.g. a custom SessionAttributeStore implementation that detects a current window identifier from a corresponding JS script and adds prefixes to session attribute names accordingly.

    Juergen


  8. José,

    Look at it this way: CDI is a fully realized framework in its own right, as indicated by the fact that no existing framework implements it. Weld and Open Web Beans were newly started efforts that implemented CDI from scratch. The situation is quite like JSF (with Mojarra and MyFaces as providers) as opposed to similar but subtly different frameworks such as Tapestry and Wicket.

    As a consequence, in order to retain Spring's established framework characteristics and architecture, we won't implement CDI but rather keep selectively supporting independent standard annotations. In Spring Framework 4.0, we aim to embrace the common transaction annotations defined by JTA 1.2 as well as the standard caching annotations from the JCache specification, for example.

    Note that even at this point, Spring is fully compliant with JSR-330 ("Dependency Injection for Java") and widely supports JSR-250 ("Common Annotations for Java") which essentially serve as a common subset between the Spring and EJB/CDI worlds. We'd love to participate in a further revision of JSR-330 but unfortunately it's still unclear whether and when that will be happening.

    Juergen


  9. I always had problem with framework 3.0. lets see what the 4.0 do.


  10. Supporting java 7 features also.. that's interesting.


  11. Juergen

    When you say "Fine-grained eventing and messaging within the application", do you mean support for event-based frameworks like vert.x ?

    As you know, scalability is always a major concern and current "one thread per request" solutions are becoming irrelevant.

    Do you plan to work on that topic with Spring 4.x ?


  12. Fred,
    I may be corrected on this subject, however I believe
    the spring team is looking at cqrs-event based for java. The two frameworks that handle this framework are the axon framework and jdo.org.


  13. I meant to say jdon.org or jdon framework!!!


  14. "We'll be tracking OpenJDK 8's schedule closely, delivering a first Spring Framework 4.0 milestone as early as April."
    –It's in the middle of May now, is there any milestone version released?


  15. Good news: Spring Framework 4.0 M1 will be released this week!

    Due to the lack of a proper OpenJDK 8 Developer Preview release – which was scheduled for February but then deferred until September at the very last minute! – we have to resort to OpenJDK 8 snapshot builds. The recent OpenJDK 8 build 88 turns out to be good enough for our purposes now, so we'll be releasing 4.0 M1 against it.

    Beyond M1, there'll be an M2 in July, and we're aiming for an RC1 in early September (along with the OpenJDK 8 Developer Preview).

    Juergen


  16. JDK™ 8 Early Access Release
    May 16, 2013
    8 Build b90
    —————————
    build b90 released

10 trackbacks

Leave a Reply