Hear from the Spring team this January at SpringOne. >
close
Newest Post

A Bootiful Podcast: Vaadin's Marcus Hellberg on rich UIs, Spring Boot 3, GraalVM native images, and more

Read more

Do more with Azure Spring Apps – scale to zero and enhance productivity

In 2020, Spotify coined the term "Golden Path” to refer to a supported approach and set of components to build and deploy software. Having these paths simplifies the development process, lets developers focus on their applications instead of infrastructure and speeds time to production. Microsoft and VMware have partnered to make Azure Spring Apps a golden path for deploying and scaling Spring applications in the cloud. And with new capabilities like the scale to zero and developer productivity enhancements, Azure Spring Apps now offers an even more economical and optimized route to get your Spring applications into production.

Read more

Spring Tools 4.17.0 released

Dear Spring Community,

I am happy to announce the 4.17.0 release of the Spring Tools 4 for Eclipse, Visual Studio Code, and Theia.

major changes to the Spring Tools 4 for Eclipse distribution

early access to new experimental features

Among a number of bug fixes and minor improvements, this release introduces experimental support for:

  • Spring Boot version validations: The IDE will tell you when there is a newer major, minor, or patch version available for your Spring Boot project
  • Spring Boot upgrade support: The tooling will help you upgrading your existing projects to newer Spring Boot versions, including upgrades to newer patch and minor versions, as well as newer major versions (e.g. upgrading to Spring Boot 3)
  • Spring specific validations and refactorings: The tooling will indicate whether something can or should be changed in your source code to keep your Spring project up-to-date with the latest recommendations or advancements in Spring
Read more

This Week in Spring - December 6th, 2022

Hi, Spring fans! Welcome to another installment of This Week in Spring! How are you? You know what I’ve wanted to do? See my friends on the Spring team in person since the pandemic descended. And, I’m overjoyed to relate, I’ve just had the privilege of a nice meeting with several of them last night. And I’m going to see more of them today! Seriously. I feel like I won the lottery. I’ve missed my friends. Hug your friends and family, friends. You never know when the next pandemic (or life in general) will put distance between you and them. So, in order to close that distance, I’m going to go back to meetings with them, and I’ll leave you with yet another week’s curated list of content. (Can you believe we’re like four weeks away from 2023?)

Read more

Spring Shell 2.1.4 and 3.0.0-M3 are now available

On behalf of the team and everyone who has contributed, I’m happy to announce that Spring Shell 2.1.4 and 3.0.0-M3 has been released and is now available from https://repo.spring.io/release, Maven Central and https://repo.spring.io/milestone respectively.

3.0.0-M3 is first milestone which builds on Spring Boot 3.0.0 GA version.

Please see the release notes 2.1.4 and release notes 3.0.0-M3 for more details.

Thanks to all those who have contributed with issue reports and pull requests.

How can you help?

Read more

Spring WS Samples upgraded for Spring Boot 3.0!

With the recent announcement of Spring Boot 3.0 going GA, some of you may be interested in upgrading your Spring Web Services-based applications to take full advantage of this. The Spring WS team has upgraded our set of sample apps to help you carry that out.

The main branch now tracks the version of samples with all these updates. (The prior version of samples built on Spring Boot 2.7 are now on that repository’s 1.0.x branch.)

Some of the highlights are covered below.

A LOT of our tools have moved!

Back in the olden days, much of our XML processing tools were inside the JDK. But ever since Java 9 and the migrations of Java EE-based packages to the Eclipse Foundation, those tools have since been pulled out of the JDK. On top of that, SOAP-based libraries, heavily leveraging the now Jakarta EE specs, have seen some upgrades.

This means you’ll be needing to either upgrade your plugins or switch to alternatives. For example, some SOAP apps use Jakarta XML Binding (JAXB). To comply with Jakarta EE 9+, you need JAXB 3.0. One way to access xjc, a popular tool to generate Java POJO classes from XSD files is shown below:

Example 1. Using JAXB’s xjc compiler on XSD files (airline/server/pom.xml)
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxb2-maven-plugin</artifactId>
    <version>3.1.0</version>
    <executions>
        <execution>
            <id>xjc</id>
            <goals>
                <goal>xjc</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <sources>${project.basedir}/src/main/resources/messages.xsd</sources>
        <packageName>org.springframework.ws.samples.airline.schema</packageName>
        <target>3.0</target>
    </configuration>
</plugin>
Note
This isn’t meant to be an extensive listing of all the settings, but instead one example of how to use it. Please visit the plugin’s ref docs for more details.

There are several tools that will compile a WSDL into Java classes, one being Jakarta XML Web Services (JAX-WS).

Example 2. Using JAX-WS’s wsimport tool to compile a WSDL (airline/client/jax-ws/pom.xml)
<plugin>
    <groupId>com.sun.xml.ws</groupId>
    <artifactId>jaxws-maven-plugin</artifactId>
    <version>3.0.0</version>
    <executions>
        <execution>
            <goals>
                <goal>wsimport</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <!-- The name of your generated source package -->
        <wsdlFiles>${project.basedir}/../airline.wsdl</wsdlFiles>
        <packageName>org.springframework.ws.samples.airline.client.jaxws</packageName>
        <sourceDestDir>${sourcesDir}</sourceDestDir>
        <destDir>${classesDir}</destDir>
        <extension>true</extension>
    </configuration>
</plugin>

There are actually multiple ways to do this, and if you look at each sample, they each do things a little differently. Pick the one that meets your needs the best.

Read more

Spring Cloud 2022.0.0 Release Candidate 3 (codename Kilburn) Has Been Released

On behalf of the community, I am pleased to announce that the Release Candidate 3 (RC3) of the Spring Cloud 2022.0 Release Train is available today. The release can be found in Spring Milestone repository. You can check out the 2022.0 release notes for more information.

Notable Changes in the 2022.0.0 RC3 release

Click here to see all issues in this release.

Spring Cloud 2022.0.0-RC3 requires Spring Boot 3.0.0.

Spring Cloud Contract

  • Removes Gradle’s support for src/test/resources/contracts checking (#1848)
Read more

This Week in Spring - November 29th, 2022 (Spring Boot 3 has arrived)

Hi, Spring fans! It’s here! It’s finally here, at long last! Spring Boot 3!! And of course with Spring Boot 3.0 comes a whole portfolio of integrated projects that have also been updated! Remember, a huge theme in this release is support for GraalVM native images, and that’s now supported across the board. You know what to do: start.spring.io.

I put together a Spring Tipds video introducing some of the major themes of Spring Framework 6 / Spring Boot 3.

I also did an in-depth look at the new GraalVM support powered by Spring’s ahead-of-time (AOT) engine.

Read more

Spring Integration 6.0 goes GA

Dear Spring community,

On behalf of the team, it is my very great pleasure to announce that Spring Integration 6.0.0 is now generally available and can be found in Maven Central.

This release is the culmination of more than a year of work. A massive thank you to everyone that has contributed, and to all the early adopters that have been providing vital feedback on the milestones.

This version is fully based on Spring Framework 6.0, Spring Data 2022.0, Spring for GraphQL 1.1, Spring WebServices 4.0 and many other major releases of Spring portfolio projects which contribute to their respective integration modules. On the other hand Spring Integration 6.0 is a part of recently released Spring Boot 3.0.

Read more