close

Spring Tips: RSocket and Spring Security

Hi, Spring fans! In this first installment of Spring Tips season 7, we look at how to lock down RSocket services with Spring Security.

By Josh Long (@starbuxman)

Hi, Spring fans! In this installment, we look at using Spring Security and RSocket together. RSocket is a payload and platform agonostic wire protocol developed by engineers at Netflix and Facebook that supports the Reactive Streams concepts on the wire. The protocol is a stateful-connection centric protocol: a requester node connects and stays connected to another responder node. Once connected, either side can transmit information at any time. Connections are multiplexed, meaning one connection can handle multiple requests. RSocket is designed from the ground up to support propagating out-of-band information like headers and service health information, in addition to the payloads themselves. So, one user may use the connection with one service, or multiple users may use the same connection.

Read more

Announcing Spring Cloud Stream Horsham.SR2 (3.0.2.RELEASE) and Spring Cloud Hoxton.SR2

We are pleased to announce the release of the Spring Cloud Stream Horsham.SR2 (3.0.2.RELEASE) release train which is available as part of Spring Cloud Hoxton.SR2 (just released) and builds on Spring Boot 2.2.4 and Spring Cloud Function 3.0.2.RELEASE which was also just released.

Spring Cloud Stream Horsham.SR2 modules are available for use in the Maven Central repository.

This release contains several fixes and enhancements primarily driven by user’s feedback, so thank you.
For more details please follow these links:
- Spring Cloud Stream Core
- Spring Cloud Stream Core Rabbit Binder
- Spring Cloud Stream Core Kafka Binder
- Spring Cloud Function

Read more

This Week in Spring - February 18th, 2020

Hi, Spring fans! Welcome to another installment of This Week in Spring! This week I’m off to sunny Atlanta, Georgia, for the epic Devnexus show there. If you’re there, don’t hesitate to reach out and say hi! I’m also busy recording new episodes of a Bootiful Podcast and new Spring Tips videos videos. We have some amazing guests on the show coming up and we have some really fascinating topics to introduce in our Spring Tips videos, too!

Read more

Announcing: The NEW Spring Website!

Spring is constantly evolving and always innovating while being consistent where it matters: delivering a reliable framework to help you build maintainable software, faster. In the last few years, the Spring contributors have worked hard to bring the predictable Spring experience to microservices, serverless, streams, reactive, batch, data, and new languages like Kotlin. Over the coming year, you’ll see many more examples of this, including some cool new features that we’re just dying to share with you.

Read more

Spring Boot 2.3.0.M2 available now

On behalf of the team and everyone that contributed, I am pleased to announce that the second milestone of Spring Boot 2.3 has been released and is available from our milestone repository.

This release closes 120 issues and pull requests. Thanks to all those who have contributed with issue reports and pull requests.

Highlights of this milestone include:

  • Improvement of our Docker image support
  • Upgrade to MongoDB 4 (still in beta)
  • Support of wildcard locations for configuration files
  • Numerous dependency upgrades
Read more

Spring Integration 5.3 Milestone 2 Available

On behalf of the Spring Integration team, I’m pleased to announce the second milestone for Spring Integration 5.3.

This release ships several bug fixes, a bunch of new features and improvements and will be picked up by Spring Boot 2.3 M2 in the near future.

It can be downloaded from our milestone repository:

compile "org.springframework.integration:spring-integration-core:5.3.0.M2"

The most important new features are:

  • With the IntegrationFlowExtension implementation we now can right our own Java DSL for Spring Integration. It allows to introduce custom or composed EIP-operators. The existing IntegrationComponentSpec implementations can now be extended for additional (missed?) options. So, now any custom and reusable solutions in Java DSL can be implemented in the target project:

public class CustomIntegrationFlowDefinition
        extends IntegrationFlowExtension<CustomIntegrationFlowDefinition> {

    public CustomIntegrationFlowDefinition upperCaseAfterSplit() {
        return split()
                .transform("payload.toUpperCase()");
    }

    public CustomIntegrationFlowDefinition customAggregate(
                    Consumer<CustomAggregatorSpec> aggregator) {
        return register(new CustomAggregatorSpec(), aggregator);
    }

}

public class CustomAggregatorSpec extends AggregatorSpec {

    CustomAggregatorSpec() {
        outputProcessor(group ->
                group.getMessages()
                        .stream()
                        .map(Message::getPayload)
                        .map(String.class::cast)
                        .collect(Collectors.joining(", ")));
    }

}

@Bean
public IntegrationFlow customFlowDefinition() {
    return
            new CustomIntegrationFlowDefinition()
                    .log()
                    .upperCaseAfterSplit()
                    .channel("innerChannel")
                    .customAggregate(customAggregatorSpec ->
                            customAggregatorSpec.expireGroupsUponCompletion(true))
                    .logAndReply();
}
  • HTTP and WebFlux outbound channel adapters now support an UriBuilderFactory.EncodingMode option instead of previous`encodeUri` boolean flag.

  • The AMQP outbound channel adapter has a new property multiSend allowing multiple messages to be sent within the scope of one RabbitTemplate invocation.

  • The AMQP inbound channel adapter now supports a listener container with the consumerBatchEnabled property set to true.

See What’s New? in the Reference Manual for more information.

The next and last M3 milestone is scheduled for March before entering the RC phase in April. Expect an upgrade to the latest milestone releases: Spring Data Neumann, Spring Security 5.3 etc.

We’re looking forward to your feedback!

Read more

Spring Data Neumann M3 released

On behalf of the Spring Data team, I’m pleased to announce the third milestone of the Neumann release train. This release ships exactly 75 tickets fixed and will be picked up by Spring Boot 2.3 M2 in the near future.

The most important new features are:

  • Upgrade to MongoDB driver 4 (beta).
  • Joda-Time and ThreeTenBackport support is now deprecated in favor of JSR-310.
  • Geo Distance sort support in Elasticsearch.
  • Quoting of table and column names in Spring Data JDBC enabled by default.

You can find a curated changelog in our release train wiki or skim through a full list of changes in JIRA.

Read more

This Week in Spring - February 11th, 2020

Hi, Spring fans! Welcome to yet another installment of This Week in Spring! It’s been a very nice week indeed. I’ve been knee-deep in finishing my book, writing more code to support the A Bootiful Podcast production pipeline, and meeting amazing people in the new VMWare organization, and beyond. I’ve also been working on some new Spring Tips videos - what would you like to see covered, my friends?

We’ve got a lot of good stuff this week, so let’s get to it!

Read more