{"id":7694,"date":"2025-06-23T09:58:23","date_gmt":"2025-06-23T09:58:23","guid":{"rendered":"https:\/\/www.europesays.com\/us\/7694\/"},"modified":"2025-06-23T09:58:23","modified_gmt":"2025-06-23T09:58:23","slug":"spring-news-roundup-spring-vault-milestone-point-releases-and-end-of-oss-support","status":"publish","type":"post","link":"https:\/\/www.europesays.com\/us\/7694\/","title":{"rendered":"Spring News Roundup: Spring Vault Milestone, Point Releases and End of OSS Support"},"content":{"rendered":"<p>There was a flurry of activity in the Spring ecosystem during the week of June 16th, 2025, highlighting: the first milestone release of <a href=\"https:\/\/spring.io\/projects\/spring-vault\" target=\"_blank\" rel=\"noopener\">Spring Vault<\/a> 4.0; and point releases of of <a href=\"https:\/\/spring.io\/projects\/spring-boot\" target=\"_blank\" rel=\"noopener\">Spring Boot<\/a>, <a href=\"https:\/\/spring.io\/projects\/spring-security\" target=\"_blank\" rel=\"noopener\">Spring Security<\/a>, <a href=\"https:\/\/spring.io\/projects\/spring-authorization-server\" target=\"_blank\" rel=\"noopener\">Spring Authorization Server<\/a>, <a href=\"https:\/\/spring.io\/projects\/spring-session\" target=\"_blank\" rel=\"noopener\">Spring Session<\/a>, <a href=\"https:\/\/spring.io\/projects\/spring-integration\" target=\"_blank\" rel=\"noopener\">Spring Integration<\/a>, <a href=\"https:\/\/spring.io\/projects\/spring-modulith\" target=\"_blank\" rel=\"noopener\">Spring Modulith<\/a>, <a href=\"https:\/\/spring.io\/projects\/spring-restdocs\" target=\"_blank\" rel=\"noopener\">Spring REST Docs<\/a>, <a href=\"https:\/\/spring.io\/projects\/spring-amqp\" target=\"_blank\" rel=\"noopener\">Spring AMQP<\/a>, <a href=\"https:\/\/spring.io\/projects\/spring-kafka\" target=\"_blank\" rel=\"noopener\">Spring for Apache Kafka<\/a>, <a href=\"https:\/\/spring.io\/projects\/spring-pulsar\" target=\"_blank\" rel=\"noopener\">Spring for Apache Pulsar<\/a> and <a href=\"https:\/\/spring.io\/projects\/spring-ws\" target=\"_blank\" rel=\"noopener\">Spring Web Services<\/a>.<\/p>\n<p>Release trains for numerous Spring projects will also reach the end of OSS support on June 30, 2025.<\/p>\n<p>Spring Boot<\/p>\n<p>Versions 3.5.1, 3.4.7 and 3.3.13 of <a href=\"https:\/\/spring.io\/projects\/spring-boot\" target=\"_blank\" rel=\"noopener\">Spring Boot<\/a> (announced <a href=\"https:\/\/spring.io\/blog\/2025\/06\/19\/spring-boot-3-5-1-available-now\" target=\"_blank\" rel=\"noopener\">here<\/a>, <a href=\"https:\/\/spring.io\/blog\/2025\/06\/19\/spring-boot-3-4-7-available-now\" target=\"_blank\" rel=\"noopener\">here<\/a> and <a href=\"https:\/\/spring.io\/blog\/2025\/06\/19\/spring-boot-3-3-13-available-now\" target=\"_blank\" rel=\"noopener\">here<\/a>, respectively) all deliver bug fixes, improvements in documentation and dependency upgrades. New features include: the ability to customize instances of the <strong><a href=\"https:\/\/docs.spring.io\/spring-boot\/api\/java\/org\/springframework\/boot\/context\/config\/ConfigData.Options.html\" target=\"_blank\" rel=\"noopener\">ConfigData.Options<\/a><\/strong> class that are set on the <strong><a href=\"https:\/\/github.com\/spring-projects\/spring-boot\/blob\/main\/spring-boot-project\/spring-boot\/src\/main\/java\/org\/springframework\/boot\/context\/config\/ConfigDataEnvironmentContributors.java\" target=\"_blank\" rel=\"noopener\">ConfigDataEnvironmentContributors<\/a><\/strong> class; and an upgrade to Apache Tomcat 10.1.42 which has introduced limits for part count and header size in <strong>multipart\/form-data<\/strong> requests. These limits can be customized using the <strong>server.tomcat.max-part-count<\/strong> and <strong>server.tomcat.max-part-header-size<\/strong> properties, respectively.<\/p>\n<p>Versions 3.5.3 and 3.5.2 (announced <a href=\"https:\/\/spring.io\/blog\/2025\/06\/19\/spring-boot-3-5-3-available-now\" target=\"_blank\" rel=\"noopener\">here<\/a> and <a href=\"https:\/\/spring.io\/blog\/2025\/06\/19\/spring-boot-3-5-2-available-now\" target=\"_blank\" rel=\"noopener\">here<\/a>) were unscheduled releases to address a difficult regression that was inadvertently introduced in version 3.5.1.<\/p>\n<p>More details on these releases may be found in the release notes for <a href=\"https:\/\/github.com\/spring-projects\/spring-boot\/releases\/tag\/v3.5.3\" target=\"_blank\" rel=\"noopener\">version 3.5.3<\/a>, <a href=\"https:\/\/github.com\/spring-projects\/spring-boot\/releases\/tag\/v3.5.2\" target=\"_blank\" rel=\"noopener\">version 3.5.2<\/a>, <a href=\"https:\/\/github.com\/spring-projects\/spring-boot\/releases\/tag\/v3.5.1\" target=\"_blank\" rel=\"noopener\">version 3.5.1<\/a>, <a href=\"https:\/\/github.com\/spring-projects\/spring-boot\/releases\/tag\/v3.4.7\" target=\"_blank\" rel=\"noopener\">version 3.4.7<\/a> and <a href=\"https:\/\/github.com\/spring-projects\/spring-boot\/releases\/tag\/v3.3.13\" target=\"_blank\" rel=\"noopener\">version 3.3.13<\/a>.<\/p>\n<p>Spring Security<\/p>\n<p><a href=\"https:\/\/spring.io\/projects\/spring-security\" target=\"_blank\" rel=\"noopener\">Spring Security<\/a> 6.5.1, 6.4.7 and 6.3.10 all deliver bug fixes, dependency upgrades and new features such as: a new <a href=\"https:\/\/docs.spring.io\/spring-security\/reference\/6.5-SNAPSHOT\/servlet\/saml2\/saml-extension-migration.html\" target=\"_blank\" rel=\"noopener\">migration guide<\/a> that describes the transition from the now defunct Spring Security <a href=\"https:\/\/github.com\/spring-attic\/spring-security-saml\/blob\/main\/README.adoc\" target=\"_blank\" rel=\"noopener\">SAML Extension<\/a> to built-in support for <a href=\"https:\/\/auth0.com\/intro-to-iam\/what-is-saml\" target=\"_blank\" rel=\"noopener\">SAML 2.0<\/a>; and support for the AsciiDoc <a href=\"https:\/\/github.com\/spring-io\/asciidoctor-extensions?tab=readme-ov-file#include-code\" target=\"_blank\" rel=\"noopener\">include-code<\/a> extension. Further details on these releases may be found in the release notes for <a href=\"https:\/\/github.com\/spring-projects\/spring-security\/releases\/tag\/6.5.1\" target=\"_blank\" rel=\"noopener\">version 6.5.1<\/a>, <a href=\"https:\/\/github.com\/spring-projects\/spring-security\/releases\/tag\/6.4.7\" target=\"_blank\" rel=\"noopener\">version 6.4.7<\/a> and <a href=\"https:\/\/github.com\/spring-projects\/spring-security\/releases\/tag\/6.3.10\" target=\"_blank\" rel=\"noopener\">version 6.3.10<\/a>.<\/p>\n<p>Spring Authorization Server<\/p>\n<p>The <a href=\"https:\/\/spring.io\/blog\/2025\/06\/17\/spring-authorization-server-1-5-1-1-4-4-and-1-3-7-available-now\" target=\"_blank\" rel=\"noopener\">release<\/a> of <a href=\"https:\/\/spring.io\/projects\/spring-authorization-server\" target=\"_blank\" rel=\"noopener\">Spring Authorization Server<\/a> 1.5.1, 1.4.4 and 1.3.7 all ship with bug fixes, dependency upgrades and a new feature that improves logging from the <strong>doFilterInternal()<\/strong> method, defined in the <strong><a href=\"https:\/\/docs.spring.io\/spring-authorization-server\/docs\/current\/api\/org\/springframework\/security\/oauth2\/server\/authorization\/web\/OAuth2ClientAuthenticationFilter.html\" target=\"_blank\" rel=\"noopener\">OAuth2ClientAuthenticationFilter<\/a><\/strong> class, to report on issues with client credentials. More details on these releases may be found in the release notes for <a href=\"https:\/\/github.com\/spring-projects\/spring-authorization-server\/releases\/tag\/1.5.1\" target=\"_blank\" rel=\"noopener\">version 1.5.1<\/a>, <a href=\"https:\/\/github.com\/spring-projects\/spring-authorization-server\/releases\/tag\/1.4.4\" target=\"_blank\" rel=\"noopener\">version 1.4.4<\/a> and <a href=\"https:\/\/github.com\/spring-projects\/spring-authorization-server\/releases\/tag\/1.3.7\" target=\"_blank\" rel=\"noopener\">version 1.3.7<\/a>.<\/p>\n<p>Spring Session<\/p>\n<p><a href=\"https:\/\/spring.io\/projects\/spring-session\" target=\"_blank\" rel=\"noopener\">Spring Session<\/a> 3.5.1 and 3.4.4 provide dependency upgrades and a resolution to a <strong>ClassCastException<\/strong> due to a race condition from integration tests that use the Redis <strong><a href=\"https:\/\/github.com\/spring-projects\/spring-session\/blob\/main\/spring-session-data-redis\/src\/integration-test\/java\/org\/springframework\/session\/data\/SessionEventRegistry.java\" target=\"_blank\" rel=\"noopener\">SessionEventRegistry<\/a><\/strong> class as it assumes there is only one event type for each session ID. Further details on these releases may be found in the release notes for <a href=\"https:\/\/github.com\/spring-projects\/spring-session\/releases\/tag\/3.5.1\" target=\"_blank\" rel=\"noopener\">version 3.5.1<\/a> and <a href=\"https:\/\/github.com\/spring-projects\/spring-session\/releases\/tag\/3.4.4\" target=\"_blank\" rel=\"noopener\">version 3.4.4<\/a>.<\/p>\n<p>Spring Integration<\/p>\n<p><a href=\"https:\/\/spring.io\/projects\/spring-integration\" target=\"_blank\" rel=\"noopener\">Spring Integration<\/a> 6.3.11 ships with dependency upgrades and a resolution to a <strong>NullPointerException<\/strong> from the private <strong>obtainFolderInstance()<\/strong> method, defined in the <strong><a href=\"https:\/\/docs.spring.io\/spring-integration\/docs\/6.5.0\/api\/org\/springframework\/integration\/mail\/AbstractMailReceiver.html\" target=\"_blank\" rel=\"noopener\">AbstractMailReceiver<\/a><\/strong> class, to use the <strong>getDefaultFolder()<\/strong> method from the Jakarta Mail <strong><a href=\"https:\/\/jakarta.ee\/specifications\/mail\/2.1\/apidocs\/jakarta.mail\/jakarta\/mail\/store\" target=\"_blank\" rel=\"noopener\">Store<\/a><\/strong> class if the URL is not provided or <strong>null<\/strong>. More details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-integration\/releases\/tag\/v6.3.11\" target=\"_blank\" rel=\"noopener\">release notes<\/a>.<\/p>\n<p>Spring Modulith<\/p>\n<p><a href=\"https:\/\/spring.io\/projects\/spring-modulith\" target=\"_blank\" rel=\"noopener\">Spring Modulith<\/a> 1.4.1 and 1.3.7 provide bug fixes, dependency upgrades and improvements: the addition of missing reflection metadata in the <a href=\"https:\/\/jsonpath.com\/\" target=\"_blank\" rel=\"noopener\">JSONPath<\/a> lookup for application module identifiers when converting to native image with GraalVM; and a resolution to prevent application module misconfiguration from the <strong>getModuleForPackage()<\/strong> method, defined in the <strong><a href=\"https:\/\/docs.spring.io\/spring-modulith\/docs\/current\/api\/org\/springframework\/modulith\/core\/ApplicationModules.html\" target=\"_blank\" rel=\"noopener\">ApplicationModules<\/a><\/strong> class, depending on the order of values stored in an instance of the Java <strong><a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/24\/docs\/api\/java.base\/java\/util\/Map.html\" target=\"_blank\" rel=\"noopener\">Map<\/a><\/strong> interface that may return invalid additional packages. Further details on these releases may be found in the release notes for <a href=\"https:\/\/github.com\/spring-projects\/spring-modulith\/releases\/tag\/1.4.1\" target=\"_blank\" rel=\"noopener\">version 1.4.1<\/a> and <a href=\"https:\/\/github.com\/spring-projects\/spring-modulith\/releases\/tag\/1.3.7\" target=\"_blank\" rel=\"noopener\">version 1.3.7<\/a>.<\/p>\n<p>Spring REST Docs<\/p>\n<p><a href=\"https:\/\/spring.io\/projects\/spring-restdocs\" target=\"_blank\" rel=\"noopener\">Spring REST Docs<\/a> 3.0.4 ships with improvements in documentation and notable changes: support for the Spring Framework 6.2 release train as default version due to the Spring Framework 6.1 release train reaching end of OSS support on June 30, 2025; and a workaround to resolve a breaking change with <strong>asciidoctor-maven-plugin<\/strong> 3.1.0 that no longer uses relative paths to build documentation. More details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-restdocs\/releases\/tag\/v3.0.4\" target=\"_blank\" rel=\"noopener\">release notes<\/a>.<\/p>\n<p>Spring AMQP<\/p>\n<p><a href=\"https:\/\/spring.io\/projects\/spring-amqp\" target=\"_blank\" rel=\"noopener\">Spring AMQP<\/a> 3.1.12 provides dependency upgrades and resolutions to issue such as: removal of the <strong>cancelled()<\/strong> method from the logic within the <strong>commitIfNecessary()<\/strong> method, defined in the <strong><a href=\"https:\/\/github.com\/spring-projects\/spring-amqp\/blob\/main\/spring-rabbit\/src\/main\/java\/org\/springframework\/amqp\/rabbit\/listener\/BlockingQueueConsumer.java\" target=\"_blank\" rel=\"noopener\">BlockingQueueConsumer<\/a><\/strong> class that had been causing anomalies in the shutdown process; and an instance of the default Spring Framework <strong><a href=\"https:\/\/docs.spring.io\/spring-framework\/docs\/current\/javadoc-api\/org\/springframework\/scheduling\/concurrent\/ThreadPoolTaskScheduler.html\" target=\"_blank\" rel=\"noopener\">ThreadPoolTaskScheduler<\/a><\/strong> class created in the <strong>doInitialize()<\/strong> method, defined in the <strong><a href=\"https:\/\/docs.spring.io\/spring-amqp\/docs\/3.2.5\/api\/org\/springframework\/amqp\/rabbit\/listener\/DirectMessageListenerContainer.html\" target=\"_blank\" rel=\"noopener\">DirectMessageListenerContainer<\/a><\/strong> class, does not properly shut down when the container is destroyed. Further details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-amqp\/releases\/tag\/v3.1.12\" target=\"_blank\" rel=\"noopener\">release notes<\/a>.<\/p>\n<p>Spring for Apache Kafka<\/p>\n<p>The <a href=\"https:\/\/spring.io\/blog\/2025\/06\/18\/spring-kafka-3-3-7-and-3-2-10-available-now\" target=\"_blank\" rel=\"noopener\">release<\/a> of <a href=\"https:\/\/spring.io\/projects\/spring-kafka\" target=\"_blank\" rel=\"noopener\">Spring for Apache Kafka<\/a> 3.3.7 and 3.2.10 delivers bug fixes, dependency upgrades and one new feature that now propagates the trace context when asynchronously handling Kafka message failures. More details on these releases may be found in the release notes for <a href=\"https:\/\/github.com\/spring-projects\/spring-kafka\/releases\/tag\/v3.3.7\" target=\"_blank\" rel=\"noopener\">version 3.3.7<\/a> and <a href=\"https:\/\/github.com\/spring-projects\/spring-kafka\/releases\/tag\/v3.2.10\" target=\"_blank\" rel=\"noopener\">version 3.2.10<\/a>.<\/p>\n<p>Spring for Apache Pulsar<\/p>\n<p><a href=\"https:\/\/spring.io\/projects\/spring-pulsar\" target=\"_blank\" rel=\"noopener\">Spring for Apache Pulsar<\/a> 1.2.7 and 1.1.13 ship with improvements in documentation and notable respective dependency upgrades such as: Spring Framework 6.2.8 and 6.1.21; Project Reactor 2024.0.7 and 2023.0.19; and Micrometer 1.14.8 and 1.13.15. Further details on these releases may be found in the release notes for <a href=\"https:\/\/github.com\/spring-projects\/spring-pulsar\/releases\/tag\/v1.2.7\" target=\"_blank\" rel=\"noopener\">verizon 1.2.7<\/a> and <a href=\"https:\/\/github.com\/spring-projects\/spring-pulsar\/releases\/tag\/v1.1.13\" target=\"_blank\" rel=\"noopener\">version 1.1.3<\/a>.<\/p>\n<p>Spring Web Services<\/p>\n<p>The <a href=\"https:\/\/spring.io\/blog\/2025\/06\/17\/spring-ws-4-0-15-available-now\" target=\"_blank\" rel=\"noopener\">release<\/a> of <a href=\"https:\/\/spring.io\/projects\/spring-ws\" target=\"_blank\" rel=\"noopener\">Spring Web Services<\/a> 4.0.15 features dependency upgrades and a resolution to the <strong><a href=\"https:\/\/docs.spring.io\/spring-ws\/docs\/current\/api\/org\/springframework\/xml\/xsd\/SimpleXsdSchema.html\" target=\"_blank\" rel=\"noopener\">SimpleXsdSchema<\/a><\/strong> class that references an instance of the Java <strong><a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/24\/docs\/api\/java.xml\/org\/w3c\/dom\/Element.html\" target=\"_blank\" rel=\"noopener\">Element<\/a><\/strong> interface, which is not thread safe, that has caused issues when multiple clients have simultaneously requested the schema file. More details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-ws\/releases\/tag\/v4.0.15\" target=\"_blank\" rel=\"noopener\">release notes<\/a>.<\/p>\n<p>Spring Vault<\/p>\n<p>The <a href=\"https:\/\/spring.io\/blog\/2025\/06\/16\/spring-vault-4-0-0-m1-available\" target=\"_blank\" rel=\"noopener\">first milestone release<\/a> of <a href=\"https:\/\/spring.io\/projects\/spring-vault\" target=\"_blank\" rel=\"noopener\">Spring Vault<\/a> 4.0.0 features: an alignment with Spring Framework 7.0; support for <a href=\"https:\/\/jspecify.dev\/\" target=\"_blank\" rel=\"noopener\">JSpecify<\/a> for improved null safety; and a new <strong><a href=\"https:\/\/github.com\/spring-projects\/spring-vault\/blob\/main\/spring-vault-core\/src\/main\/java\/org\/springframework\/vault\/client\/ClientConfiguration.java\" target=\"_blank\" rel=\"noopener\">ClientConfiguration<\/a><\/strong> class that adds support for Reactor, Jetty and JDK HTTP implementations of the SpringFramework <strong><a href=\"https:\/\/docs.spring.io\/spring-framework\/docs\/current\/javadoc-api\/org\/springframework\/http\/client\/ClientHttpRequestFactory.html\" target=\"_blank\" rel=\"noopener\">ClientHttpRequestFactory<\/a><\/strong> interface. Further details on this release may be found in the <a href=\"https:\/\/github.com\/spring-projects\/spring-vault\/releases\/tag\/4.0.0-M1\" target=\"_blank\" rel=\"noopener\">release notes<\/a>.<\/p>\n<p>End of OSS Support<\/p>\n<p>Release trains for all of these Spring projects (plus Spring Framework), with links to their respective timelines, will reach end of OSS support on June 30, 2025:<\/p>\n<p>End of enterprise support for all of these projects will reach end of life on June 30, 2026.<\/p>\n","protected":false},"excerpt":{"rendered":"There was a flurry of activity in the Spring ecosystem during the week of June 16th, 2025, highlighting:&hellip;\n","protected":false},"author":3,"featured_media":7695,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32],"tags":[9019,9020,9018,9017,648,1032,9022,1033,2556,171,9024,2719,9021,9025,9026,9016,9023,67,132,68],"class_list":{"0":"post-7694","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-arts-and-design","8":"tag-amqp","9":"tag-apache-kafka","10":"tag-apache-pulsar","11":"tag-architecture-design","12":"tag-arts","13":"tag-arts-and-design","14":"tag-authorization","15":"tag-design","16":"tag-development","17":"tag-entertainment","18":"tag-java","19":"tag-open-source","20":"tag-spring-boot","21":"tag-spring-integration","22":"tag-spring-modulith","23":"tag-spring-news-roundup-jun16-2025","24":"tag-spring-security","25":"tag-united-states","26":"tag-unitedstates","27":"tag-us"},"share_on_mastodon":{"url":"https:\/\/pubeurope.com\/@us\/114732092784911490","error":""},"_links":{"self":[{"href":"https:\/\/www.europesays.com\/us\/wp-json\/wp\/v2\/posts\/7694","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.europesays.com\/us\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.europesays.com\/us\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/us\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/us\/wp-json\/wp\/v2\/comments?post=7694"}],"version-history":[{"count":0,"href":"https:\/\/www.europesays.com\/us\/wp-json\/wp\/v2\/posts\/7694\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/us\/wp-json\/wp\/v2\/media\/7695"}],"wp:attachment":[{"href":"https:\/\/www.europesays.com\/us\/wp-json\/wp\/v2\/media?parent=7694"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.europesays.com\/us\/wp-json\/wp\/v2\/categories?post=7694"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.europesays.com\/us\/wp-json\/wp\/v2\/tags?post=7694"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}