There was a flurry of activity in the Spring ecosystem during the week of October 21st, 2024, highlighting first release candidates of: Spring Boot, Spring Security, Spring Authorization Server, Spring Integration, Spring Modulith, Spring Batch, Spring AMQP, Spring for Apache Kafka and Spring for Apache Pulsar.
Spring Boot
The first release candidate of Spring Boot 3.4.0 delivers bug fixes, improvements in documentation, dependency upgrades and many new features such as: improved support for the Spring Framework ClientHttpRequestFactory
interface with new builders and additional customization; and support for ARM and x86 architectures in the Paketo Buildpack for Spring Boot. More details on this release may be found in the release notes.
Similarly, the release of Spring Boot 3.3.5 and 3.2.11 provide improvements in documentation, dependency upgrades and resolutions to notable bug fixes such as: removal of the printing the stack trace to the error stream from the driverClassIsLoadable()
method, defined in the DataSourceProperties
class, upon exception as it was determined to be unnecessary; and an instance of the ArtemisConnectionFactoryFactory
class failing when building a native image. More details on this release may be found in the release notes for version 3.3.5 and version 3.2.11.
Spring Framework
In conjunction with the release of Spring Boot 3.4.0-RC1, the third release candidate of Spring Framework 6.2.0 ships with bug fixes, improvements in documentation and new features such as: removal of the proxyTargetAware
attribute in the new @MockitoSpyBean
annotation as it was deemed unnecessary; and a refactor of the retrieve()
method, defined in the RestClient
interface, to execute a request and extract the response as necessary, eliminating the need for two method calls in this workflow. More details on this release may be found in the release notes.
Spring Security
The first release candidate of Spring Security 6.4.0 delivers bug fixes, dependency upgrades and new features such as: support for Passkeys; a new authorize()
method that replaces the now-deprecated check()
method, defined in the AuthorizationManager
interface, that returns an instance of the AuthorizationResult
interface; and a refactored publishAuthorizationEvent(Supplier<Authentication>, T, AuthorizationDecision)
method, defined in the AuthorizationEventPublisher
interface, that now accepts an instance of the AuthorizationResult
interface, replacing the AuthorizationDecision
class in the parameter list. More details on this release may be found in the release notes and what's new page.
Similarly, versions 6.3.4, 6.2.7 and 5.8.15 of Spring Security have been released featuring build updates, dependency upgrades and resolutions to notable bug fixes such as: erasures of credentials on custom instances of the AuthenticationManager
interface despite the eraseCredentialsAfterAuthentication
field being set to false
; and methods annotated with @PostFilter
are processed twice by the PostFilterAuthorizationMethodInterceptor
class. More details on these releases may be found in the release notes for version 6.3.4, version 6.2.7 and version 5.8.15.
Spring Authorization Server
The first release candidate of Spring Authorization Server 1.4.0 provides dependency upgrades and new features such as: a replacement of the DelegatingAuthenticationConverter
class with the similar DelegatingAuthenticationConverter
class defined in Spring Security; and a simplification of configuring a dedicated authorization server using the with()
method, defined in the Spring Security HttpSecurity
class. More details on this release may be found in the release notes.
Similarly, versions 1.3.3 and 1.2.7 of Spring Authorization Server have been released featuring dependency upgrades and a fix for more efficiently registering AOT contributions with subclasses defined from the JdbcOAuth2AuthorizationService
class. More details on these releases may be found in the release notes for version 1.3.3 and version 1.2.7.
Spring for GraphQL
Versions 1.3.3 and 1.2.9 of Spring for GraphQL have been released ship with bug fixes, improvements in documentation, dependency upgrades and new features such as: the ability to set a timeout value for server-side events; and methods annotated with @BatchMapping
should pass the localContext
field, defined in the GraphQL for Java DataFetcherResult
class, from an instance of the BatchLoaderEnvironment
class.More details on these releases may be found in the release notes for version 1.3.3 and version 1.2.9.
Spring Integration
The first release candidate of Spring Integration 6.4.0 delivers bug fixes, improvements in documentation, dependency upgrades and new features such as: an instance of the RedisLockRegistry
class may now be configured via an instance of the Spring Framework TaskScheduler
interface for renewal of automatic locks in the store; and a migration of Python scripts to support Python 3 and GraalPy. More details on this release may be found in the release notes and what's new page.
Similarly, versions 6.3.5 and 6.2.10 of Spring Integration have been released with bug fixes, dependency upgrades and new features: the addition of a new property, idleBetweenTries
, to the aforementioned RedisLockRegistry
class to specify a duration to sleep in between lock attempts; and improved support for the JUnit @Nested
annotation when using the @SpringIntegrationTest
annotation. More details on this release may be found in the release notes for version 6.3.5 and version 6.2.10.
Spring Modulith
The first release candidate of Spring Modulith 1.3.0 provides bug fixes, improvements in documentation, dependency upgrades and new features such as: support for the Oracle database type in the JDBC event publication registry; and support for the MariaDB database driver. More details on this release may be found in the release notes.
Similarly, versions 1.2.5 and 1.1.10 of Spring Modulith have been released featuring bug fixes, dependency upgrades and various improvements in the reference documentation. More details on this release may be found in the release notes for version 1.2.5 and version 1.1.10.
Spring Batch
The first release candidate of Spring Batch 5.2.0 ships with bug fixes, improvements in documentation, dependency upgrades and a new feature that allows the CompositeItemReader
class to be subclassed to allow generics to be less strict. More details on this release may be found in the release notes.
Spring AMQP
The first release candidate of Spring AMQP 3.2.0 provides improvements in documentation, dependency upgrades and new features such as: additional Open Telemetry semantic tags that are exposed via an instance of the RabbitTemplate
class and @RabbitListener
annotation; and a new method, getBeforePublishPostProcessors()
, in the RabbitTemplate
class that complements the existing addBeforePublishPostProcessors()
method that allows developers to dynamically access and modify these processors. More details on this release may be found in the release notes.
Spring for Apache Kafka
The first release candidate of Spring for Apache Kafka 3.3.0 delivers bug fixes, improvements in documentation, dependency upgrades and new features such as: a new KafkaMetricsSupport
class for improved metrics support; and the ability to use the Java @Override
annotation on the createAdmin()
method, defined in the KafkaAdmin
class, to use another type of class implementing the Apache Kafka Admin
interface. This release also provides full integration with Spring Boot 3.4.0-RC1. More details on this release may be found in the release notes.
Spring for Apache Pulsar
The first release candidate for Spring for Apache Pulsar 1.2.0 provides dependency upgrades and improvements such as: ensure that all uses of the toLowerCase()
and toUpperCase()
methods, defined in the Java String
class, specify an instance of a Java Locale
class with a default of Locale.ROOT
; and a new log to warn developers when lambda producer customizers are used for increased awareness. More details on this release may be found in the release notes.
Similarly, versions 1.1.5 and 1.0.11 of Spring for Apache Pulsar have been released featuring dependency upgrades and the aforementioned use of the toLowerCase()
and toUpperCase()
methods. More details on this release may be found in the release notes for version 1.1.5 and version 1.0.11.