The Spring Blog

Engineering
Releases
News and Events

Spring Vault 1.0 RC1 is now available

On behalf of the community, I am pleased to announce Spring Vault 1.0 RC1.

The artifacts are available in the Milestone repo.

Spring Vault includes 15 fixes, improvements and dependency upgrades.

Here’s a short-list of the most important features shipping with the release:

  • Support for renewable @VaultPropertySource with credentials rotation
  • Reshaping APIs dropping VaultClient and using RestTemplate instead
  • Added EnvironmentVaultConfiguration for simplified configuration without the need to create a derived configuration class.
Read more...

Webinar: Strategic (Domain Driven) Design with Spring Boot

Speaker: Michael Plöd, InnoQ

This talk will focus on one of the most precious parts of Domain Driven Design, the concept of Strategic Design, as well as Bounded Context, the Context Map and the patterns that are being documented in the Context Map.

An explanation of these principles as well as practical usage scenarios such as migrating a monolithic landscape to microservices is planned for discussion. And, using a hands-on approach, we will demonstrate the concepts surrounding Strategic Design with an application landscape of various Spring Boot Applications

Read more...

This Week in Spring - March 14th, 2017

Welcome to another installment of This Week in Spring! This week I’m in Chicago on business and preparing for next week, where I’ll be at the first Devoxx US event, ever!. I hope to see you there!

Read more...

Spring Cloud Camden.SR6 is available

On behalf of the team, I am pleased to announce that Service Release 6 of the Spring Cloud Camden Release Train is available today. The release can be found in our Spring Release repository and Maven Central. The documentation can be found here.

NOTE: There was an upstream fix in Spring Cloud Streams that fixes issues with Spring Cloud Bus, Hystrix, and Turbine. See this issue for more information.

The following modules were updated as part of Camden.SR6:

Read more...

Spring Integration Extension for AWS 1.1.0 M1 Available

On behalf of the Spring Integration community I’d like to announce the first Milestone of Spring Integration Extension for Amazon Web Services version 1.1. Its artifact is spring-integration-aws.1.1.0.M1, which is available in the Milestone Repository.

Of course, first of all, big thanks to you, the community, for your contributions!

Some highlights of the features included to this Milestone:

Kinesis Support

The KinesisMessageDrivenChannelAdapter and KinesisMessageHandler are provided to integrate with the Amazon Kinesis. The former is pretty simple and allow to emit data into a Kinesis stream. All the information for the target PutRecordRequest can be determined from the request Message:

@Bean
@ServiceActivator(inputChannel = "kinesisSendChannel")
public MessageHandler kinesisMessageHandler() {
    KinesisMessageHandler kinesisMessageHandler =
                new KinesisMessageHandler(amazonKinesis());
    kinesisMessageHandler.setAsyncHandler(asyncHandler());
    kinesisMessageHandler.setStream("my_stream");
    kinesisMessageHandler.
             setPartitionKeyExpressionString("headers[aws_partitionKey]");
    return kinesisMessageHandler;
}

By default it uses SerializingConverter to convert the request data to the byte[]. The com.amazonaws.handlers.AsyncHandler can be used for asynchronous putRecordAsync() result reaction.

The KinesisMessageDrivenChannelAdapter provides a comprehensive Kinesis stream data ingestion implementation, including sequenceNumber checkpointing and resharding support. The concurrency option can be used for strict order records processing in the downstream flow. The provided shards are distributed between threads in that case. If concurrency isn’t provided, internal ShardConsumer s are performed on the consumerExecutor directly:

@Bean
public KinesisMessageDrivenChannelAdapter kinesisMessageDrivenChannelAdapter() {
    KinesisMessageDrivenChannelAdapter adapter =
            new KinesisMessageDrivenChannelAdapter(amazonKinesis(), STREAM1);
    adapter.setOutputChannel(kinesisChannel());
    adapter.setCheckpointStore(checkpointStore());
    adapter.setCheckpointMode(CheckpointMode.manual);
    adapter.setListenerMode(ListenerMode.batch);
    adapter.setStartTimeout(10000);
    adapter.setDescribeStreamRetries(1);
    adapter.setConcurrency(10);
    return adapter;
}

If CheckpointMode is manual, the AwsHeaders.CHECKPOINTER message header is populated to each emitted message. It is an instance of Checkpointer and its checkpoint() can be used in the downstream flow to checkpoint a sequenceNumber for processed records in the shard.

Note
The Amazon Kinesis Channel Adapters implementation is fully based on the standard aws-java-sdk-kinesis API and doesn’t use Kinesis Client Library.
Read more...

Spring Roo 2.0 RC1 released

On behalf of Disid Corp, we’re pleased to announce the first release candidate of Spring Roo 2.0. This is the first release candidate, from now on we’re going to work in the improvements and bug fixes that the community detects until we’ll be able to publish the final release. We encourage you all to participate in this process testing the 2.0.0.RC1 version and reporting the possible bugs and improvements in our JIRA.

RC1 version includes some improvements and bugs fixes detected in the Spring Roo 2.0.0.M3 version. Also, it includes some significant new features:

Read more...

Spring IO Platform Brussels-SR1

I am pleased to announce that Spring IO Platform Brussels-SR1 is now available from both repo.spring.io and Maven Central.

This maintenance release upgrades the versions of a number of the projects in the Platform:

  • Spring AMQP 1.7.1
  • Spring Boot 1.5.2
  • Spring Data Ingalls SR1
  • Spring Framework 4.3.7
  • Spring Integration 4.3.8
  • Spring Kafka 1.1.3
  • Spring Security 4.2.2
  • Spring Security OAuth 2.0.13

The versions of a number of third-party dependencies have also been updated.

Project Page | GitHub | Issues | Documentation

Read more...