The Spring Blog

Engineering
Releases
News and Events

This Week in Spring - April 18th, 2017

Hi Spring fans! Welcome to another installment of This Week in Spring! This week I’m in Atlanta, GA, at DevOps Days Atlanta, and Boston for the Agile Tech Alliance conference. If you’re around for either I’d love to see you - say hi!

Don’t miss me, Spring Team members, and community speakers at the upcoming Spring Days Chicago, New York and Atlanta events!

As usual, we’ve got a lot to cover so let’s get to it!

Read more...

Spring Cloud Task 1.2.0.RC1 is now available

We are pleased to announce that Spring Cloud Task 1.2.0.RC1 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.RC1 offers the following features:

  • Upgrade to Spring Cloud Stream Chelsea GA.
  • Renamed closecontext.enable to closecontext.enabled as to match the Spring Boot style for enabled properties.
  • Task name can be set when creating a TaskExecution externally, allowing the launcher to set the name in a persistent manor.
  • Added Ordered Interface to Task Events and Batch Job Events so the user can establish when task or batch events are emitted from their Spring Cloud Task application.
  • Cleaned up Spring Cloud Task dependencies.
  • Update default task name creation to prevent conflicts with JMX.
Read more...

Spring Cloud Stream Chelsea goes GA!

On behalf of the community, I am happy to announce the general availability of the Spring Cloud Stream Chelsea release train. For this release train, the first general availability release is Chelsea.SR1, which fixes a number of issues over Chelsea.RELEASE (all within the scope of the metrics export feature). Chelsea.SR1 is also included as part of Spring Cloud Dalston.RELEASE.

The new release is available in Maven Central, and a detailed description of its features can be found in the reference documentation. For information about artifacts and most recent changes, please consult the release notes, as follows:

Read more...

Spring Data Kay M2 released

On behalf of the Spring Data team, I’d like to announce the availability of the second milestone of the release train Kay. The release is an important step towards a second generation of Spring Data.

We’ve upgraded the majority of the codebase to Java 8, now also embracing e.g. Optional in method signatures. This mostly affects internal SPIs but also leaks into user code, especially in CrudRepository. The support for reactive Spring Data repositories has been extended to Couchbase (Thanks, Subhashni!), the Redis module has a reactive template API now. The release also ships support for IsEmpty and IsNotEmpty for derived queries and implementaitons of those for MongoDB and JPA. The aggregation framework in MongoDB now also supports streaming results.

Read more...

Spring Tips: Season 2 Recap

Hi Spring fans! We’ve now finished two seasons - 11 episodes and a recap post each - of Spring Tips. I’m going to take a little while to dream up some more content and, before you know it, we’ll be back at it again! I’m always interested in hearing proposed topics so if you have some, please, by all means, shout it out loud to me on Twitter (@starbuxman) or by email ([email protected]).

The motivations for me in doing these Spring Tips are:

  • revisit traditional topics in light of Spring Boot and
  • highlight parts of the amazing Spring ecosystem that, for one reason or another, don’t get enough attention.
Read more...

Spring Cloud Dalston Released

On behalf of the community, I am pleased to announce that the General Availability (RELEASE) of the Spring Cloud Dalston Release Train is available today. The release can be found in Maven Central. 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 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...

This Week in Spring - April 11th, 2017

Welcome to another installation of This Week in Spring!

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...