https://build.spring.io/browse/INT-MASTER-478 The `EmitterProcessor` proves to be unstable in between subscribers which come and go away from time to time. Looks like buffered events are dropped when we don't have subscriber just after the previous one has been unsubscribed * Change the logic in the `IntegrationFlowDefinition.toReactivePublisher()` to call `ReactiveConsumer.adaptToPublisher(MessageChannel)` directly to return provided `Publisher<?>` to the caller for his own responsibility. This way we don't have any buffering or prefetching in the Framework because we don't do any `Subscription.request(n)` explicitly * Prove the fix with polishing to the `ReactiveStreamsTests.testPollableReactiveFlow()` Right now we don't poll `QueueChannel` if there is no demand, therefore we don't need extra `CountDownLatch` to wait for second subscriber. Plus the logic now remains as a `queue` manner: consumers are concurrent for the data in the `QueueChannel` Extra `@Repeat(10)` for confirmation. Previously it failed sporadically, what is confirmed with that one more CI failure
Spring Integration

Checking out and Building
To check out the project and build from source, do the following:
git clone git://github.com/spring-projects/spring-integration.git
cd spring-integration
./gradlew build
NOTE: While Spring Integration runs with Java SE 6 or higher, a Java 8 compiler is required to build the project.
If you encounter out of memory errors during the build, increase available heap and permgen for Gradle:
GRADLE_OPTS='-XX:MaxPermSize=1024m -Xmx1024m'
To build and install jars into your local Maven cache:
./gradlew install
To build api Javadoc (results will be in build/api):
./gradlew api
To build reference documentation (results will be in build/reference):
./gradlew reference
To build complete distribution including -dist, -docs, and -schema zip files (results will be in build/distributions)
./gradlew dist
Using Eclipse
To generate Eclipse metadata (.classpath and .project files), do the following:
./gradlew eclipse
Once complete, you may then import the projects into Eclipse as usual:
File -> Import -> Existing projects into workspace
Browse to the 'spring-integration' root directory. All projects should import free of errors.
Using IntelliJ IDEA
To generate IDEA metadata (.iml and .ipr files), do the following:
./gradlew idea
Resources
For more information, please visit the Spring Integration website at: http://projects.spring.io/spring-integration