Spring Cloud Stream Brooklyn.SR2 and Chelsea.M1 released

On behalf of the community, I am happy to announce the release of Spring Cloud Stream Brooklyn.SR2 and Chelsea.M1 release trains. As part of the next installment to Brooklyn release train, Brooklyn.SR2 adds a number of new features and fixes. The next release train Chelsea.M1 builds on top of Spring Boot 1.5 and a contains a core improvement listed below.

What is new?

A few highlights of the improved areas:

  • Schema Registry Support: fixed issues related to using the Schema Registry server, in particular support for MySQL and Postgresql;
  • Aggregate Applications: improved support for property propagation via namespaces;
  • Reactive support: Aligns declarative (e.g. reactive) handler support with imperative mode, which makes it easier to seamlessly adopt a functional programming model. In particular, this adds support for the following idiom:
Read more

Spring AMQP 1.7.0.RELEASE (and 1.6.7) Available

On behalf of the Spring Integration team I’d like to announce that Spring AMQP 1.7.0.RELEASE is now available.

This release is mainly an intermediate version between 1.6.x and 2.0 for Spring Boot 1.5 and IO Platform Brussels dependencies compatibility.

However, there are several improvements and new features to explain here:

  • Upgrade to Amqp Client 4.0 with appropriate RabbitConnectionFactoryBean changes

  • Upgrade to Log4j 2.7 and required breaking change fix for the log4j2.AmqpAppender

  • Upgrade to Spring Retry 1.2 with important StatefulRetryOperationsInterceptor.setUseRawKey(true) for backward compatibility

  • a new spring-rabbit-junit artifact is provided with several utilities (like BrokerRunning @Rule) which can be useful for testing Spring AMQP applications

  • The SimpleMessageListenerContainer can now be started without queues to listen to at all. They can be provided later at runtime via addQueues()

  • a ConnectionNameStrategy is provided for the ConnectionFactory to allow to identify application connections in the Broker or other monitoring and tracing tools

Read more

Spring Cloud Data Flow for Cloud Foundry 1.1 GA released

We are pleased to announce the general availability of Spring Cloud Data Flow for Cloud Foundry version 1.1.0.RELEASE.

In addition to all the bells and whistles of Spring Cloud Data Flow 1.1.2 that this release builds upon, the Cloud Foundry specifics include:

  • Memory Optimizations: After much troubleshooting, we are pleased to deliver a memory efficient SCDF server in this release. With the changes now, regardless of how many stream/task deployments and concurrency, we have observed the memory usage of the server stay within the 200MB range as opposed to 1G or over to an eventual crash in previous 1.0.0.RELEASE. If you experienced spurious crashes previously, we highly recommend upgrading to 1.1.0.RELEASE right away.

  • Maven Cache and Disk Optimizations: We have improved the way Maven caching is applied and used. There is a new LRU (Least Recently Used) design on top of the maven cache to allow us to be more proactive about the cache size as opposed to letting it grow indefinitely, which if not governed, leads to out of disk space errors for the application container where the server is running.

  • Tasks Support: In the latest PCF 1.9 release, the Task component graduated from being experimental to production-ready feature capability. Spring Cloud Data Flow’s Task support for Cloud Foundry closely followed this development and with this release, we have removed the “experimental” clause from our side, too. Spring Cloud Data Flow’s Task support is production-ready when used on PCF 1.9. One can still try this functionality on older PCF releases, PCF 1.8 for example, but the feature capabilities neither guaranteed nor supported on older PCF releases since is it classified as ”experimental”.

    The Task database schema changed slightly with this release. For folks upgrading from 1.0.0.RELEASE to 1.1.0.RELEASE, please review the migration steps included in the reference guide.

  • Improved Error Handling: Building on the latest version of the Spring Cloud Deployer for Cloud Foundry project, interaction with the Cloud Controller REST API has been made more resilient, being more pro-active in dealing with the occasional server-side error.

Read more

Spring Integration Extension for SMB 0.5.0 is Available

On behalf of the Spring Integration team I’d like to announce release of one more Spring Integration Extension. This time it is Spring Integration for Server Message Block and its artifact is spring-integration-smb.0.5.0.RELEASE, which is available in the Release Repository and Maven Central.

The project has been around for some time but only recently gained enough community traction to warrant a release. So, first of all, big thanks to you, the community, for your contributions!

The Java CIFS Client Library has been chosen as a Java implementation for the CIFS/SMB networking protocol. Its SmbFile abstraction is simply wrapped to the Spring Integration "Remote File" foundations like SmbSession, SmbRemoteFileTemplate etc.

Read more

This Week in Spring - January 17th, 2017

Welcome to another installment of This Week in Spring! We’ve got a lot to get into this week - even more so than usual! So, let’s get into it!

This week there are a lot of great SpringOne Platform 2016 replays available online thanks to our very own Pieter Humphrey!

Read more

SpringOne Platform 2016 Replay: Reactor 3.0, a JVM foundation for Java 8 and Reactive Streams

Recorded at SpringOne Platform 2016.
Speaker: Stéphane Maldini

The apparent simplicity of the publisher/subscriber model as exposed in Reactive-Streams can be deceiving. The relatively fast release cycle for libraries in that space is not a myth, concurrency is hard. To keep out undesired side-effects, most Reactive projects have adopted a vertical approach potentially excluding developers from decision-making around execution model or sometimes language.

Read more

SpringOne Platform 2016 Replay: A lite Rx API for the JVM

Recorded at SpringOne Platform 2016.
Speakers: Sebastien Deleuze, Stephane Maldini

RxJava is a fully fledged and widely used solution to develop Reactive applications, but some interesting alternatives exist. After an overview of the main Reactive APIs available and of Spring Boot Reactive support, this workshop introduces how to develop Reactive applications using Reactor Core 2.5-a powerful and fast alternative. We will learn how to use Flux (N values) and Mono (single value) types with various exercises. This new API (which is the core of Reactor 2.5) is a game changer in the world of Reactive API on the JVM thanks to its Reactive eXtensions-based API (natively based on Reactive Streams and Java 8) and its unmatched performance.

Read more

SpringOne Platform 2016 Replay: Operating a High Velocity Large Organization with Spring Cloud Microservices

Recorded at SpringOne Platform 2016.
Speakers: Noriaki Tatsumi, Capital One

Releases are hard for many large organizations with complex systems. Challenges like manual processes, change approvals, compliances, legacy systems, varying deployment targets, and scheduled downtimes prevent companies from releasing fast and frequently. Many of us know that when Continuous Delivery is embraced and microservices architecture is done right, those challenges can become things of the past. Some high performing companies like Netflix have successfully demonstrated the concept. Now it’s your turn. This presentation prepares you to build a microservices architecture that’s not only reliable, resilient, and scalable but also addresses the challenges large organizations typically face.

Read more

SpringOne Platform 2016 Replay: gRPC 101 for Spring developers

Recorded at SpringOne Platform 2016
Speakers: Ray Tsang, Bret McGowen, Google
gRPC is a high performance, open source, general RPC framework that puts mobile and HTTP/2 first. gRPC is based on many years of Google’s experience in building distributed systems - it is designed to be low latency, bandwidth and CPU efficient, to create massively distributed systems that span data centers, as well as power mobile apps, real-time communications, IoT devices and APIs. It’s also interoperable between multiple languages.

Read more

SpringOne Platform 2016 Replay: Designing, Implementing, and Using Reactive APIs

Recorded at SpringOne Platform 2016.
Speakers: - Ben Hale, Paul Harris, Stephane Maldini

The Java community is on the cusp of a major change in programming model. As the industry moves towards high-performance micro-service architectures, the need for a reactive programming model becomes clear. In this session, the lead developers of the Cloud Foundry Java Client will talk about what led them to choose a reactive API. Using that project as a lens, they’ll explore how they designed and implemented this API using Project Reactor and what users will expect when using a reactive API. If you are a developer looking to provide reactive APIs, this is your chance to gain the experience of team building a large, production-ready reactive library.

Read more