Skip to content
This repository was archived by the owner on Mar 13, 2021. It is now read-only.

Commit 22eb064

Browse files
Dave Syertrisberg
authored andcommitted
Update to Spring Cloud Stream Edgware.SR1
There are some bug fixes it would help to pick up (log hygiene if nothing else).
1 parent a530566 commit 22eb064

File tree

2 files changed

+42
-1
lines changed

2 files changed

+42
-1
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
2020
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
2121
<java.version>1.8</java.version>
22-
<spring-cloud.version>Edgware.RELEASE</spring-cloud.version>
22+
<spring-cloud.version>Edgware.SR1</spring-cloud.version>
2323
<spring-cloud-function.version>1.0.0.BUILD-SNAPSHOT</spring-cloud-function.version>
2424
<spring-cloud-stream-file.version>1.0.0.BUILD-SNAPSHOT</spring-cloud-stream-file.version>
2525
<spring-cloud-deployer.version>1.2.0.RELEASE</spring-cloud-deployer.version>
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*
2+
* Copyright 2016-2017 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package io.projectriff.functions;
17+
18+
import java.time.Duration;
19+
import java.util.HashMap;
20+
import java.util.Map;
21+
import java.util.function.Function;
22+
23+
import reactor.core.publisher.Flux;
24+
25+
/**
26+
* @author Dave Syer
27+
*
28+
*/
29+
public class WordCounter implements Function<Flux<String>, Flux<Map<String, Integer>>> {
30+
31+
@Override
32+
public Flux<Map<String, Integer>> apply(Flux<String> words) {
33+
return words.window(Duration.ofSeconds(10))
34+
.flatMap(f -> f.flatMap(word -> Flux.fromArray(word.split("\\W")))
35+
.reduce(new HashMap<String, Integer>(), (map, word) -> {
36+
map.merge(word, 1, Integer::sum);
37+
return map;
38+
}));
39+
}
40+
41+
}

0 commit comments

Comments
 (0)