Spring Team
Oleg Zhurakousky

Oleg Zhurakousky

Software Engineer

Saint-Saturnin-les-Apt, France

Open source practitioner with over 17 years of experience in software engineering across multiple disciplines including software architecture and design, consulting, business analysis and application development. Speaker who presented seminars at dozens of conferences worldwide (i.e. SpringOne, JavaZone, Hadoop Summit,, JavaOne, Scala Days, Oredev etc.)
Blog Posts by Oleg Zhurakousky

Spring Cloud Stream Germantown.M1 /2.2.0.M1 Release Announcement

We are pleased to announce the first Milestone of the Spring Cloud Stream Germantown release train - Germantown.M1/2.2.0.M1.

Spring Cloud Stream Germantown 2.2.0.M1 is available for use in the Spring Milestone repository.

Some of the highlights:

Improved Home page and User Documentation

Please check out our new home page and user guide

Further functional programming enhancements

We’ve added additional functional programming enhancements and simplifications where you no longer required to provide @EnableBinding annotation and in some cases you may not need spring.cloud.stream.definition` property. Consider the following:

Read more...

Announcing the first milestone of Spring Cloud Function - 2.1.0.M1

We are pleased to announce first milestone of the Spring Cloud Function - 2.1.0.M1.

Individual modules of Spring Cloud Function 2.1.0.M1 are available for use in the Spring Milestone repository.
This release encompasses the following:

  • Some of the features that has always been available in bean factory based function catalog are now part of the functional form (see Dave Syer’s blog for more details on functional form) :
    • Multiple endpoint support - ability to map multiple HTTP endpoints the same way one would expect in conventional context configuration.
    • Function composition - ability to compose function (e.g., foo|bar or foo,bar).
  • Ability to communicate and retain meta-information via Message headers for cases where Message function is composed with non-Message (e.g., Function<Message<?>>, Message<?>> is composed with Function<?, ?>).
  • Support for implicit function composition where catalog.lookup(""), catalog.lookup("|"), catalog.lookup("foo|") or catalog.lookup("|bar") are all valid lookups providing container with enough information to determine your intentions. For example, empty string simply implies there is only one Function in catalog and no explicit name should be provided.
  • Creating Supplier from remote HTTP endpoint where one can define the sink url (destination) and the source url (source) and use the app as a pipeline for events from/to HTTP.
  • AWS Custom Runtime feature.
  • Other minor enhancements and bug-fixes.
Read more...

Announcing General Availability of Spring Cloud Stream - Fishtown.RELEASE (2.1.0.RELEASE)

After an exciting journey, we are pleased to announce the General Availability release of the Spring Cloud Stream Fishtown release train - Fishtown.RELEASE/2.1.0.RELEASE.

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-stream-dependencies</artifactId>
            <version>Fishtown.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
Read more...

Announcing General Availability of Spring Cloud Function - 2.0.0.RELEASE

We are pleased to announce general availability of the Spring Cloud Function - 2.0.0.RELEASE.

Individual modules of Spring Cloud Function 2.0.0.RELEASE are available for use in the Spring Release repository as well as Maven Central repository.

This release encompasses the following:

Read more...

Spring Cloud Stream Fishtown.RC2 /2.1.0.RC2 Release Announcement

We are pleased to announce the second Release Candidate of the Spring Cloud Stream Fishtown release train - Fishtown.RC2/2.1.0.RC2.

Spring Cloud Stream Fishtown 2.1.0.RC2 is available for use in the Spring Milestone repository.

As a follow up to 2.0.0.RC2, this release primarily encompasses minor enhancements and bug fixes.
As it stands now this should be the final Release Candidate before General Availability release 2.0.0.RELEASE in several weeks.

NOTE:
If the applications are created from Spring Initializr, they need to add this BOM snippet in maven dependency management before the spring-cloud BOM declaration, otherwise you’ll end up with the latest snapshot:

<dependency>
           <groupId>org.springframework.cloud</groupId>
           <artifactId>spring-cloud-stream-dependencies</artifactId>
           <version>Fishtown.RC2</version>
           <type>pom</type>
           <scope>import</scope>
</dependency>
Read more...

Announcing Spring Cloud Function - 2.0.0.RC2

We are pleased to announce the second Release Candidate of the Spring Cloud Function - 2.0.0.RC2.

Individual modules of Spring Cloud Function 2.0.0.RC2 are available for use in the Spring Milestone repository.

As a follow up to 2.0.0.RC1, this release primarily encompasses minor enhancements and bug fixes.
As it stands now this should be the final Release Candidate before General Availability release 2.0.0.RELEASE in several weeks.

How can you help?

If you’re interested in helping out, check out the “ideal for contribution” tag in the issue repository. If you have general questions, please ask on stackoverflow.com using the spring-cloud-function tag.

Read more...

Spring Cloud Stream Fishtown.RC1 /2.1.0.RC1 Release Announcement

We are pleased to announce the first Release Candidate of the Spring Cloud Stream Fishtown release train - Fishtown.RC1/2.1.0.RC1.

Spring Cloud Stream Fishtown 2.1.0.RC1 is available for use in the Spring Milestone repository.

The following section provides a brief summary of features and improvements included in this release.

Notable Dependency Upgrades

  • Spring Boot 2.1.0.RC1
  • Reactor Californium.RELEASE
  • Spring Cloud Function 2.1.0.RC1

Spring Cloud Function support

The main theme for this release is the introduction of a new programming model which uses Spring Cloud Function as an alternative for defining stream handlers and sources which can now be expressed as beans of
type java.util.function.[Supplier/Function/Consumer]

Read more...

Announcing Spring Cloud Function - 2.0.0.RC1

We are pleased to announce the first Release Candidate of the Spring Cloud Function - 2.0.0.RC1.

Individual modules of Spring Cloud Function 2.0.0.RC1 are available for use in the Spring Milestone repository.

Aside form general enhancements and bug fixes, This release encompasses the following:

Read more...

Announcing Spring Cloud Function - 2.0.0.M2

We are pleased to announce the second Milestone of the Spring Cloud Function - 2.0.0.M2.

Individual modules of Spring Cloud Function 2.0.0.M2 are available for use in the Spring Milestone repository.

Aside form general enhancements and bug fixes, the primary themes for this release are

  • Kotlin support
  • new programming model for Azure Functions (blog to follow)
  • automatic (optional) export of Supplier on startup in web adapter

How can you help?

If you’re interested in helping out, check out the “ideal for contribution” tag in the issue repository. If you have general questions, please ask on stackoverflow.com using the spring-cloud-function tag.

Read more...

Kotlin Support in Spring Cloud Function

Rarely we blog about a single feature, but given that this one was one of the most requested ones in Spring Cloud Function (relatively young project), we thought it may be appropriate, so here it is.

Initial support for Kotlin lambdas has been added to Spring Cloud Function. What it means is that Spring Cloud Function can now recognize Kotlin lambdas that effectively match to one of Java’s Supplier, Function or Consumer and treat them as such.

That is:

@Bean
open fun kotlinFunction(): (String) -> String {
    return  { it.toUpperCase() }
}

@Bean
open fun kotlinConsumer(): (String) -> Unit {
    return  { println(it) }
}

@Bean
open fun kotlinSupplier(): () -> String {
    return  { "Hello Kotlin" }
}

Read more...