The Spring Blog

Engineering
Releases
News and Events

Spring Vault 1.0 goes GA

On behalf of the community, it’s my pleasure to announce the general availability of Spring Vault 1.0 – the very first GA release of Spring Vault after almost a year of development.

The artifacts are available from Maven Central and Bintray.

<dependency>
  <groupId>org.springframework.vault</groupId>
  <artifactId>spring-vault-core</artifactId>
  <version>1.0.0.RELEASE</version>
</dependency>

The release ships more than 50 tickets fixed in total. Here’s a very truncated list of the most important features shipping with the release:

Read more...

Spring For Apache Kafka 1.2.0 and 1.1.4 Available

We are pleased to announce that these maintenance releases of Spring for Apache Kafka are now available, 1.2.0.RELEASE and 1.1.4.RELEASE.

These versions include several bug fixes and improvements, as well as introduce support for KStreams.

They are functionally equivalent; the 1.2.0.RELEASE is based on the 0.10.2.0 kafka-clients jar and 1.1.4.RELEASE can be used with 0.10.0.x and 0.10.1.x.

While 1.1.4.RELEASE will work at runtime with a 0.10.2.x client library, some breaking changes in the embedded kafka API means that the embedded kafka Junit @Rule in spring-kafka-test will not work and 1.2.0.RELEASE is required for that.

Read more...

Spring Integration 5.0 Milestone 3 Available

The Spring Integration team is pleased to announce that the third milestone for the Spring Integration 5.0 release (5.0.0.M3) is now available.

53 JIRAs (and some GitHub issues) made into this release, including bug fixes and a number of new features. Some highlights since the previous Milestone 2:

  • Initial implementation for a Spring Integration Testing Framework - the @SpringIntegrationTest annotation for test classes and MockIntegration factory help you to write unit tests for integration flows and channel adapters. We intend to flush out this capability with more features before GA, including more mocking, verifications and some send-and-receive utilities to test components in isolation. Feedback is welcome!

  • POJO handler method invocations (@ServiceActivator, @Transformer etc., or such methods invoked from XML definitions) now use InvocableHandlerMethod by default. Together with the ConfigurableCompositeMessageConverter and @Default utilities that allows us to implement conditional method invocation scenarios based on the Content-Type and target method arguments resolution. To restore the previous SpEL-based behavior, the @UseSpelInvoker method-level annotation is provided.

  • A based on the WebFlux WebClient ReactiveHttpRequestExecutingMessageHandler implementation is provided. Together with a ReactiveChannel as an outputChannel options it provides backpressure manner for remote HTTP service consumption.

  • The (S)FTP (and AWS S3) Inbound Channel Adapters can now restore file tree locally. For that purpose a new, Files.walk() based, RecursiveDirectoryScanner is introduced. The useWatchService option is also provided.

  • Web Services Gateways now can exchange WebServiceMessage s directly as the inbound/outbound payload. This allows the support of MTOM via direct access to WebServiceMessage properties. The UnmarshallingTransformer can now process a MimeMessage as the payload to unmarshal it into an object graph with attachments.

  • The reply producing MessageHandler now has a fallback to the replyChannel header from the reply message, if there is no outputChannel or replyChannel in the request message headers. This allows the implementation of business process-like scenarios when the next step is determined by the result of current calculations.

Read more...

Spring AMQP 2.0.0 Milestone 3 is Available

We are pleased to announce that the third milestone for the Spring AMQP 2.0 release (2.0.0.M3) is now available.

36 JIRA Issues are included in this release, including bug fixes and a number of new features:

  • Initial support for broker-less integration testing - the TestRabbitTemplate discovers listener containers in the application context and invokes those containers' listeners for send() and sendAndReceive() operations. We intend to flush out this capability with more features before GA, including routing, and simulation of the various exchange types supported by RabbitMQ. Feedback is welcome.

  • Rollback with an external transaction manager is now consistent with local transactions.

  • The 4.1.x amqp-client library is now the default.

  • The RabbitTemplate now has an invoke() method which allows multiple operations to be performed sequentially on the same channel. This also enables features such as waitForConfirmsOrDie() provided by the underlying library, when sending multiple messages to the same channel.

  • null message properties are no longer included in toString() which makes debug logs easier to read.

  • @QueueBinding annotations now support multiple routing keys, and support custom exchange types.

Read more...

Spring Tool Suite 3.8.4 released

Dear Spring Community,

I am happy to announce the 3.8.4 release of the Spring Tool Suite, our Eclipse-based tooling.

Highlights from this release include:

  • updated to Eclipse Neon.3
  • completely revamped wizard for direct access to start.spring.io
  • boot dashboard: support for local Spring Cloud CLI services
  • boot dashboard: support for routes when deploying apps to CF
  • fixed font rendering on main STS dashboard
  • added support for Buildship 2.0
  • improved reliability for boot dashboard when showing status of running boot apps
  • issue tracking moved to GitHub Issues
Read more...

Reactor Kotlin Extensions 1.0.0.M1 released

I am excited to announce the release of the first milestone of Reactor Kotlin Extensions, which provides Kotlin extensions for Reactor API.

It provides support for Kotlin types like KClass, takes advantage of Kotlin reified type parameters and provide various extensions to allow more expressive code. You can see bellow a quick comparaison of Reactor with Java versus Reactor with Kotlin + extensions.

Java Kotlin with extensions
Mono.just("foo") "foo".toMono()
Flux.fromIterable(list) list.toFlux()
Mono.error(new RuntimeException()) RuntimeException().toMono()
Flux.error(new RuntimeException()) RuntimeException().toFlux()
flux.ofType(Foo.class) flux.ofType<Foo>() or flux.ofType(Foo::class)
StepVerifier.create(flux).verifyComplete() flux.test().verifyComplete()
Read more...

Spring REST Docs 1.2.0.RC1

On behalf of everyone who contributed, it’s my pleasure to announce that Spring REST Docs 1.2.0.RC1 has been released and is available from https://repo.spring.io/milestone/.

What’s new?

A complete overview of what’s new in 1.2 can be found in the release notes. The following are some of the highlights.

Improved Asciidoctor integration

REST Docs now has a new module, spring-restdocs-asciidoctor, that makes it easier to use the generated snippets in your documentation. A new macro means that you can import multiple snippets for the same operation in a single line. This update to the samples shows the benefit of adopting the macro.

Read more...

Spring Cloud Data Flow 1.2 M3 released

On behalf of the team, I am excited to announce the release of the third milestone of Spring Cloud Data Flow 1.2.

Note: A great way to start using this new release(s) is to follow the release matrix on the project page, which includes the download coordinates and the links to the reference guide.

Highlights of the 1.2 M3 release:

Companion Metadata Artifact

As part of the long awaited feature to improve access to app properties info for both shell and Dashboard, we are introducing a new optional artifact for both Stream and Task applications - we are calling it the “companion metadata artifact”. Through this functionality, the streaming and task applications and their properties are first-class citizens for both Docker and Maven based application artifacts.

Read more...

Spring Cloud Dalston RC1 Released

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

Notable Changes in the Dalston Release Train

Vault

Spring Cloud Vault Config is a new project that provides client-side support for externalized secret management in a distributed system via Hashicorp Vault.

Config Server

Config Server now has support for multiple backends via a Composite pattern. This allows for combinations of backend types that was not possible before, such as: Vault and git or multiple git backends. Authentication to git repositories hosted by AWS Codecommit is now supported. In the previous (Camden) release, Hashicorp Vault was already added as a backend to Config Server to go along with the VCS based backends.

Read more...

Spring Cloud Task 1.2.0.M2 is now available

We are pleased to announce that Spring Cloud Task 1.2.0.M2 is now available via Github and the Pivotal download repository. Many thanks to all of those who contributed to this release.

Spring Cloud Task 1.2.0.M2 offers the following features:

  • Upgrade to Spring Cloud Dalston RC1 and Spring Boot 1.5.2 - This release is compatible with the Spring Cloud Dalston RC1 release.

  • Fixed invalid data type bug in Oracle Script.

  • Fixed bug in MySQL migration scripts so that they will work on file systems that are case sensitive.

  • Updated Spring Cloud Task samples to use Spring Boot 1.5.2.

  • Updated documentation to discuss unit testing and notes on using Transaction Managers.

Read more...