Start 5.2 version; upgrade dependencies; fixes

This commit is contained in:
Artem Bilan
2019-03-20 15:30:31 -04:00
parent 4f48dce420
commit 61c27bac20
9 changed files with 86 additions and 41 deletions

View File

@@ -37,8 +37,6 @@ import org.springframework.integration.samples.cafe.OrderItem;
import org.springframework.integration.scheduling.PollerMetadata;
import org.springframework.integration.stream.CharacterStreamWritingMessageHandler;
import com.google.common.util.concurrent.Uninterruptibles;
/**
* @author Artem Bilan
* @since 3.0
@@ -88,22 +86,24 @@ public class Application {
.subFlowMapping(true, sf -> sf
.channel(c -> c.queue(10))
.publishSubscribeChannel(c -> c
.subscribe(s -> s.handle(m -> Uninterruptibles.sleepUninterruptibly(1, TimeUnit.SECONDS)))
.subscribe(s -> s.handle(m -> sleepUninterruptibly(1, TimeUnit.SECONDS)))
.subscribe(sub -> sub
.<OrderItem, String>transform(p ->
Thread.currentThread().getName()
+ " prepared cold drink #" + this.coldDrinkCounter.incrementAndGet()
+ " for order #" + p.getOrderNumber() + ": " + p)
Thread.currentThread().getName() +
" prepared cold drink #" +
this.coldDrinkCounter.incrementAndGet() +
" for order #" + p.getOrderNumber() + ": " + p)
.handle(m -> System.out.println(m.getPayload())))))
.subFlowMapping(false, sf -> sf
.channel(c -> c.queue(10))
.publishSubscribeChannel(c -> c
.subscribe(s -> s.handle(m -> Uninterruptibles.sleepUninterruptibly(5, TimeUnit.SECONDS)))
.subscribe(s -> s.handle(m -> sleepUninterruptibly(5, TimeUnit.SECONDS)))
.subscribe(sub -> sub
.<OrderItem, String>transform(p ->
Thread.currentThread().getName()
+ " prepared hot drink #" + this.hotDrinkCounter.incrementAndGet()
+ " for order #" + p.getOrderNumber() + ": " + p)
Thread.currentThread().getName() +
" prepared hot drink #" +
this.hotDrinkCounter.incrementAndGet() +
" for order #" + p.getOrderNumber() + ": " + p)
.handle(m -> System.out.println(m.getPayload())))))
.defaultOutputToParentFlow())
.<OrderItem, Drink>transform(orderItem ->
@@ -121,4 +121,19 @@ public class Application {
.handle(CharacterStreamWritingMessageHandler.stdout());
}
private static void sleepUninterruptibly(long sleepFor, TimeUnit unit) {
boolean interrupted = false;
try {
unit.sleep(sleepFor);
}
catch (InterruptedException e) {
interrupted = true;
}
finally {
if (interrupted) {
Thread.currentThread().interrupt();
}
}
}
}