BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Spring Ecosystem Delivers Numerous Milestone Releases

Spring Ecosystem Delivers Numerous Milestone Releases

There was a flurry of activity in the Spring ecosystem during the week of July 15th, 2024, highlighting milestone releases of: Spring Boot 3.4.0-M1; Spring Framework 6.2.0-M6; Spring Security 6.4.0-M1; Spring Session 3.4.0-M1; Spring Integration 6.4.0-M1; and Spring Modulith 1.3.0-M1; Spring AMQP 3.2.0-M1; and Spring for Apache Kafka 3.3.0-M1.

Spring Boot

The first milestone release of Spring Boot 3.4.0 delivers bug fixes, improvements in documentation, dependency upgrades and new features such as: support for structured logging as alternative to pattern layout logging; AssertJ support for the Spring Framework MockMvc class with auto-configuration of the MockMvcTester class; and improved support for Testcontainers and Docker Compose. More details on this release may be found in the release notes.

Similarly, versions 3.3.2 and 3.2.8 of Spring Boot provide improvements in documentation, dependency upgrades and resolutions to notable issues such as: a NullPointerException during auto-configuration from the resolveOutcomesThreaded() method, defined in the OnClassCondition class, due to an instance of a ConditionOutcome array being full; and an instance of the TestcontainersLifecycleBeanPostProcessor class does not work correctly with scoped beans. Further details on these releases may be found in the release notes for version 3.3.2 and version 3.2.8.

Spring Framework

A week after the release of Spring Framework 6.2.0-M5, the sixth milestone release of Spring Framework 6.2.0 addresses a binary backward compatibility with previous 6.x generations, but also delivers new features such as: the ability to initialize the RequestPath interface on demand in the AbstractServerHttpRequest class; support for making the MapAccessor class as read-only to align with the ReflectivePropertyAccessor class; and the DefaultPartHttpMessageReader should not eagerly instantiate the reactor scheduler. More details on this release may be found in the release notes.

Spring Security

The first milestone release of Spring Security 6.4.0 provides bug fixes, dependency upgrades and new features such as: a new CachingRelyingPartyRegistrationRepository class as an implementation of the RelyingPartyRegistrationRepository interface that defers the loading of the underlying registrations; and Kotlin support for the DefaultMethodSecurityExpressionHandler class that eliminates this class attempting to mutate the state of immutable Kotlin Collections and Maps. There is also breaking change by adapting to form data not adding charset if it is UTF-8. Further details on this release may be found in the release notes.

Spring for GraphQL

Versions 1.3.2 and 1.2.8 of Spring for GraphQL have been released providing bug fixes and a notable improvement to resolve an issue where a schema field mapped to a Kotlin function was reported as unmapped by the SchemaMappingInspector class. More details on these releases may be found in the release notes for version 1.3.2 and version 1.2.8.

Spring Session

The first milestone release of Spring Session 3.4.0 ships with bug fixes, dependency upgrades and new features such as: a resolution to an issue in which a default implementation of the UserDetails interface, User, is returned instead of a user-defined custom implementation; and a return to the MongoSession class established as public as it prevented developers from implementing the methods in the AbstractMongoSessionConverter class. Further details on this release may be found in the release notes.

Spring Integration

The first milestone release of Spring Integration 6.4.0 delivers bug fixes, improvements in documentation, dependency upgrades and new features such as: implementations of the distributed LockRegistry interface now throw a ConcurrentModificationException from the unlock() operation if ownership of the lock is lost in the database; and an improved subscription identifier for the channel adapters defined in the MQTT 5.0 specification. More details on this release may be found in the release notes and what’s new page.

Similarly, versions 6.3.2 and 6.2.7 of Spring Integration feature dependency upgrades and resolutions to notable issues such as: the spring-integration actuator endpoint not working when multiple beans of the Micrometer MeterRegistry class are registered; and a fix to the obtainObservationPatterns() method, defined in the IntegrationManagementConfiguration class, for a Java HashSet sort to retain order of the provided patterns. Further details on these releases may be found in the release notes for version 6.3.2 and version 6.2.7.

Spring Modulith

Versions 1.3.0-M1, 1.2.2 and 1.1.7 of Spring Modulith have been released with bug fixes, dependency upgrades and new features such as: the addition of an option to allow the Documenter class to clear the target folder before rendering documentation; and allow the use of the @ApplicationModuleTest annotation outside of a module package. These releases also upgrade to Spring Boot 3.4.0-M1 and Spring Framework 6.2.0-M6. More details on these releases may be found in the release notes for version 1.3.0-M1, version 1.2.2 and version 1.1.7.

Spring AMQP

The first milestone release of Spring AMQP 3.2.0 provides bug fixes, dependency upgrades and new features such as: support for the RabbitMQ Consistent Hash Exchange Type (x-consistent-hash); and a removal of methods deprecated in the RabbitListenerErrorHandler interface. Further details on this release may be found in the release notes.

Spring for Apache Kafka

The first milestone release of Spring for Apache Kafka 3.3.0 ships with bug fixes, dependency upgrades and new features such as: a new ConcurrentContainerStoppedEvent class to ensure all concurrent messages are processed before the application receives an instance of the ContainerStoppedEvent class; and the ability for the RecordFilterStrategy interface to receive an empty list when using batch messages. More details on this release may be found in the release notes.

Similarly, versions 3.2.2 and 3.1.7 of Spring for Apache Kafka provide dependency upgrades and a resolution to an issue where the getUnregisteredListenerContainer() method, defined in the KafkaListenerEndpointRegistry class, returns null upon manually registering custom containers instead of using the @KafkaListener annotation. Further details on these releases may be found in the release notes for version 3.2.2 and version 3.1.7.

Spring for Apache Pulsar

Versions 1.1.2 and 1.0.8 of Spring for Apache Pulsar have been released featuring numerous dependency upgrades such as: Spring Framework 6.1.10; Micrometer Metrics 1.13.2 and 1.12.8, respectively; and JUnit 5.10.3. These versions will be included in Spring Boot 3.3.2 and 3.2.8. More details on these releases may be found in the release notes for version 1.1.2 and version 1.0.8.

About the Author

Rate this Article

Adoption
Style

BT