The Spring Blog

Engineering
Releases
News and Events

Happy second birthday, Java EE 7! How is it going in production?

Note that there’s a follow-up blog post about Spring 5 system requirements. You might want to start there if you’re primarily interested in the Spring 5 planning process.

In our quest for Java EE integration, we’re trying to actively embrace the latest generation of specifications such as JPA, Bean Validation and of course the Servlet and JMS APIs. As of Spring 4, we’re supporting the Java EE 6 and 7 level of specifications side by side. We would like to raise it to the EE 7+ level (JPA 2.1, Bean Validation 1.1, and in particular Servlet 3.1 and JMS 2.0) soon but are facing a fundamental problem: the lack of EE 7 platform adoption.

Read more...

Spring 4 and Java 8 adoption

As Josh mentioned in “This Week in Spring” already, Eugen Paraschiv recently did a noteworthy survey on the adoption of Spring 4 and Java 8 as well as Spring Boot:
http://www.baeldung.com/java-8-spring-4-and-spring-boot-adoption

Those are interesting numbers for us. Within the Spring universe, Java 8 adoption seems to be approaching 40%! And in terms of Spring Framework versions, Spring 4 is at 65% already, which I’m really happy to see. Even taking into account that a large part of the corporate use of Spring might not be represented in those numbers, that’s a great trend. And Pivotal’s early production support for Spring 4 on JDK 8 certainly helped in the corporate world as well.

Read more...

Webinar Replay: Improving your (legacy) Application with Spring

Speaker: Marten Deinum

Slides: https://speakerdeck.com/mdeinum/improving-legacy-applications-with-spring

Source Code: https://github.com/mdeinum/legacy-app

Spring has been around since the release of “J2EE Design and Development” in 2002. Spring and Java have evolved quite a bit since that time. In those years a lot of applications have been developed. All those "legacy" applications that are around have proven their value and that is why they lasted. In this session we will explore how we can improve our legacy applications by doing some refactoring or redesign (component based development) but also by introducing (newer) Spring IO technologies.

Read more...

Webinar: JSTL to Thymeleaf: Transitioning Your Template

Speaker: Phil Dutson, ICON Heath and Fitness

Thymeleaf is a fantastic template engine that can help you create sites faster and get code shipped. There exists however a problem, using th e template engine requires a mind-shift in how to get "normal" tasks accomplished. This leaves many developers in the lurch and frustrated. In this talk I will cover the common pitfalls that developers can avoid and give examples on how to solve the common problems encountered when switching from the venerable JSTL to Thymeleaf.

Read more...

Webinar: CI on the Cloud with Jenkins, Spring and Cloud Foundry

CI on the Cloud with Jenkins, Spring and Cloud Foundry

Speaker: Jamie O’Meara, Pivotal

This presentation will highlight an integrated development process that involves Spring code built with CloudBees Jenkins Enterprise and deployed to CloudFoundry. A software lifecycle of continuous delivery from source code control (Git) to Jenkins build (Maven and Gradle) to live deployment on a Cloud Foundry instance will be shown. We will demo using Jenkins to do a blue/green application deployment. With a Cloud Foundry blue/green Jenkins deployment, you can push a new version of the application and have a software router add that to an existing version of the application's route. The two versions are then load-balanced, allowing for testing of the new version and easy replacement or fall-back to the existing version. Developers can run builds on private and public clouds with deploy to either/both Jenkins running on a PaaS and integrated into the PaaS. We will run a hands-on demo and show the beauty and simplicity of an integrated build pipeline with Spring, Jenkins and Cloud Foundry.

Read more...

Webinar Replay: Reactive data-pipelines with Spring XD and Kafka

Speakers: Marius Bogoevici & Mark Pollack

Slides: https://speakerdeck.com/mbogoevici/reactive-data-pipelines-with-spring-xd-and-kafka

In the recent years, drastic increases in data volume as well as a greater demand for low latency have led to a radical shift in business requirements and application development methods. In response to these demands, frameworks such as RxJava and high throughput messaging systems such as Kafka have emerged as key building blocks. However, integrating technologies is never easy and Spring XD provides a solution. Through its development model and runtime, Spring XD makes it easy to develop highly scalable data pipelines, and lets you focus on writing and testing business logic vs. integrating and scaling a big data stack. Come and see how easy this can be in this webinar, where we will demonstrate how to build highly scalable data pipelines with RxJava and Kafka, using Spring XD as a platform. In the recent years, drastic increases in data volume as well as a greater demand for low latency have led to a radical shift in business requirements and application development methods. In response to these demands, frameworks such as RxJava and high throughput messaging systems such as Kafka have emerged as key building blocks. However, integrating technologies is never easy and Spring XD provides a solution. Through its development model and runtime, Spring XD makes it easy to develop highly scalable data pipelines, and lets you focus on writing and testing business logic vs. integrating and scaling a big data stack. Come and see how easy this can be in this webinar, where we will demonstrate how to build highly scalable data pipelines with RxJava and Kafka, using Spring XD as a platform.

Read more...

SpringOne2GX 2014 Replay: Philosophical Architecture in Grails

Recorded at SpringOne2GX 2014.

Speaker: David Dawson, Simplicity Itself

G&G Special Topics

Slides: http://www.slideshare.net/SpringCentral/s2gx-philosophicalarchitecture

Software development is hard. Life is hard. We try to keep up with a changing world, and it's hard. Where though, does the problem lie? In this talk, David, CEO at Simplicity Itself, will describe a different way of approaching the problem of software development, a different way of trying to keep up with a changing world. This is not a soft talk, all opinions are backed up by cold hard code in a running Grails application, showing how a change in the way you think can radically change your software.

Read more...

SpringOne2GX 2014 Replay: Groovy Vampires: Combining Groovy, REST, NoSQL, and more

Recorded at SpringOne2GX 2014.

Speaker: Kenneth Kousen

G&G Special Topics

Slides: http://www.slideshare.net/SpringCentral/groovy-vampires

If a book as horrible as Twilight can sell millions of copies and be made into an even worse movie, how many copies can a book with Groovy vampires sell? (Spoiler: Not as many.) Yes, this topic may be silly, but the technologies used (Groovy, Ratpack, MongoDB, Grails, REST) are (un)deadly serious.

 

Read more...

SpringOne2GX 2014 Replay: Grails Plugin Testing Strategies

Recorded at SpringOne2GX 2014.

Speaker: Baruch Sadogursky, JFrog

Slides: No slides, Baruch is 100% demo, baby

G&G Special Topics

Maintaining Grails plugins can be a real challenge given the high expectations and demands. Apart from supporting many users, you're tasked with making sure that the plugin is compatible with a range of Grails versions - both old and new. Your plugin must also be compatible with multiple development environments (OSs, SDKs, etc,) and play nice with the wealth of other plugins that exist in the ecosystem. How can we make sure that all these high standards are met? Testing, and lot's of it!

Read more...

SpringOne2GX 2014 Replay: API Abstraction and API Chaining in Grails

Recorded at SpringOne2GX 2014.

Speaker: Owen Rubel

Essential Grails Track

Slides: http://www.slideshare.net/SpringCentral/api-abstraction

API abstraction is the separation of cross cutting concerns related to the api to better enable externalization to architectural concerns. Not only does this enable easier externalization, synchronization and sharing of the environment with external architecture but this also enables us to reload the api configuration on the fly, have DRY'r code, easier batching, api chaining, reduced code, synchronized configuration/security, reduced throughput and much more.

Read more...