Gary Russell

Gary Russell

Alumni
Recent Blog posts by Gary Russell

Spring Messaging Projects Maintenance Releases - Integration, AMQP, Kafka

Releases | January 29, 2018 | ...

We are pleased to announce the availability of the following maintenance releases; users are encouraged to upgrade at the earliest opportunity.

Spring Integration 4.3.13, Spring AMQP 1.7.6 will be used in the upcoming Spring Boot 1.5.10 release. Spring Integration 5.0.1, Spring AMQP 2.0.2 and Spring for Apache Kafka 2.1.2 will be used in the upcoming release candidate for Spring Boot 2.0.

See the respective project pages at spring.io/projects

Spring for Apache Kafka 2.1.0.RELEASE (and 1.3.2, 2.0.2) Available

Releases | December 01, 2017 | ...

I am pleased to announce the availability of Spring for Apache Kafka 2.1.0.RELEASE.

In addition, maintenance releases 1.3.2.RELEASE and 2.0.2.RELEASE are available, containing important bug fixes. See also below for information about spring-integration-kafka 3.0.0.RELEASE. It is recommended that all users upgrade.

The main purpose of the 2.1 release is to upgrade the kafka-clients library to 1.0.0, but we have included a few improvements:

  • Sometimes, when a message can’t be processed, you may wish to stop the container so the condition can be corrected and the message re-delivered. The framework now provides the ContainerStoppingErrorHandler for record listeners and ContainerStoppingBatchErrorHandler for batch listeners.

  • The KafkaAdmin now supports increasing partitions when a NewTopic bean is detected with a larger number of partitions than currently exist on the topic.

  • StringJsonMessageConverter and JsonSerializer/JsonDeserializer now pass and consume type information in Headers. This allows multiple types to be easily sent/received on the same topic:

    @SpringBootApplication public class Kafka21Application {

    public static void main(String[] args) {
        SpringApplication.run(Kafka21Application.class, args)
            .close();
    }
    
    @Bean
    public ApplicationRunner runner(KafkaTemplate<Object, Object> template) {
        return args -> {
            template.send(MessageBuilder.withPayload(42)
                    .setHeader(KafkaHeaders.TOPIC, "blog")
                    .build());
            template.send(MessageBuilder.withPayload("4…

Spring AMQP 2.0 Release Candidate 2 Available

Releases | September 27, 2017 | ...

I am pleased to announce that the 2.0.0.RC2 release candidate of Spring AMQP is now available in the Spring milestone repository.

Since the first release candidate the primary changes are:

  • update to the new 5.0 version of the amqp-client library

  • increase the default prefetch count in listener containers

A complete list of changes since RC1 can be found in the release notes.

Thanks to all the community members for their feedback and contributions!

The GA release will follow shortly after the Spring Framework 5.0 GA release.

For a complete list of changes in 2.0, see What’s New in the reference manual

Spring Cloud Stream Ditmars/1.3 Release Candidate Announcement

Releases | September 14, 2017 | ...

We are pleased to announce that the release candidate Spring Cloud Stream Ditmars.RC1 is available for use in the Spring Milestone repository. The release notes include relevant information about version compatibility with Spring Boot, Spring Cloud, Spring AMQP, and Spring for Apache Kafka.

Kafka Streams for Apache Kafka

This release targets the promotion of Kafka Streams for Apache Kafka support as a top-level project in the Apache Kafka binder implementation. With Kafka Streams for Apache Kafka positioned as a first-class citizen, developers can now build Spring Cloud Stream applications by…

Spring AMQP 2.0 Release Candidate, 1.7.4 and 1.6.11 Are Available

Releases | September 12, 2017 | ...

I am pleased to announce that the 2.0.0.RC1 release candidate of Spring AMQP is now available in the Spring milestone repository.

This release adds some minor fixes/improvements since the final milestone Milestone 5.

Thanks to all the community member for their feedback and contributions!

The GA release will follow shortly after the Spring Framework 5.0 GA release in September.

For a complete list of changes in 2.0, see What’s New in the reference manual.

Maintenance releases 1.7.4 and 1.6.11 are also available now.

Project Page | JIRA | Contributing | Help | Chat

Spring For Apache Kafka 2.0 and 1.3 Release Candidates Available

Releases | September 12, 2017 | ...

We are pleased to announce the availability of the 2.0.0.RC1 release candidate of the Spring for Apache Kafka 2.0 version.

As discussed in the 1.3.0.M2 announcement, we are concurrently releasing 1.3 with 2.0, where 1.3 contains a subset of the 2.0 features, supporting the Kafka 0.11.x.x client, while still supporting Spring Framework 4.3. As such, the 1.3.0.RC1 release candidate is also available.

They are available for download from the Milestone Repository:

repositories {
    maven { url 'http://repo.spring.io/libs-milestone' }
}
compile "org.springframework.kafka:spring-kafka:2.0.0.RC1"

Since the previous announcement, the following is a summary…

Spring AMQP 2.0.0 Milestone 4 is Available

Releases | May 08, 2017 | ...

I am pleased to announce that the fourth milestone of Spring AMQP 2.0 2.0.0.M4 is now available in the Spring milestone repository.

Features since the last milestone include…​

  • The new DirectMessageListenerContainer now supports configuring the number of messages to process between acks.

  • You can now specify container concurrency on the @RabbitListener annotation.

The release candidate is expected to be released in early June with the GA shortly after the Spring Framework 5.0 GA release.

For a complete list of changes in 2.0, see What’s New in the reference manual; also see the release notes for 2.0.0.M1, 2.0.0.M2, 2.0.0.M3, as well as 2.0.0.M4

Spring For Apache Kafka 2.0 Milestone 1 Available

Releases | April 27, 2017 | ...

We are very pleased to announce the availability of the first milestone of the Spring for Apache Kafka 2.0 release 2.0.0.M1.

Significant new features in the 2.0 line include:

  • Support for timestamps in the KafkaTemplate.

  • Seek to beginning/end of topics.

  • New threading model facilitated by KIP-62 - now that the consumer client does not rely on poll() being called frequently, the threading model is much simpler; avoiding the need for internal pause() / resume() processing. Listeners are now always invoked on the consumer thread. This, in turn, has facilitated:

  • ConsumerAwareMessageListener (and BatchConsumerAwareMessageListener) are provided so that listener implementations can access the Consumer<?, ?> object to perform operations such as pause(), resume(), metrics() etc.

Spring For Apache Kafka 1.2.0 and 1.1.4 Available

Releases | April 07, 2017 | ...

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

Spring AMQP 2.0.0 Milestone 3 is Available

Releases | April 04, 2017 | ...

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.

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all