Skip to content

Commit ae08281

Browse files
csvirimetacosm
authored andcommitted
fix: improved cache stream handling?
1 parent 5089ebf commit ae08281

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/ControllerResourceEventSource.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package io.javaoperatorsdk.operator.processing.event.source;
22

33
import java.util.Collections;
4-
import java.util.ArrayList;
5-
import java.util.List;
64
import java.util.Map;
75
import java.util.Objects;
86
import java.util.Optional;
@@ -11,6 +9,9 @@
119
import java.util.stream.Collectors;
1210
import java.util.stream.Stream;
1311

12+
import org.slf4j.Logger;
13+
import org.slf4j.LoggerFactory;
14+
1415
import io.fabric8.kubernetes.api.model.HasMetadata;
1516
import io.fabric8.kubernetes.api.model.KubernetesResourceList;
1617
import io.fabric8.kubernetes.client.KubernetesClientException;
@@ -26,9 +27,6 @@
2627
import io.javaoperatorsdk.operator.processing.ResourceCache;
2728
import io.javaoperatorsdk.operator.processing.event.ResourceID;
2829

29-
import org.slf4j.Logger;
30-
import org.slf4j.LoggerFactory;
31-
3230
import static io.javaoperatorsdk.operator.processing.KubernetesResourceUtils.getName;
3331
import static io.javaoperatorsdk.operator.processing.KubernetesResourceUtils.getUID;
3432
import static io.javaoperatorsdk.operator.processing.KubernetesResourceUtils.getVersion;
@@ -188,13 +186,16 @@ public Stream<T> getCachedCustomResources() {
188186
}
189187

190188
public Stream<T> getCachedCustomResources(Predicate<T> predicate) {
191-
var streams = sharedIndexInformers.values().stream()
192-
.map(i -> i.getStore().list().stream().filter(predicate));
193-
var lists = streams.map(s -> s.collect(Collectors.toList())).collect(Collectors.toList());
194-
var size = lists.stream().mapToInt(List::size).sum();
195-
List<T> list = new ArrayList<>(size);
196-
lists.forEach(list::addAll);
197-
return list.stream();
189+
var streamList = sharedIndexInformers.values().stream()
190+
.map(i -> i.getStore().list().stream().filter(predicate)).collect(Collectors.toList());
191+
if (streamList.size() == 1) {
192+
return streamList.get(0);
193+
}
194+
var resStream = streamList.get(0);
195+
for (int i = 1; i < streamList.size(); i++) {
196+
resStream = Stream.concat(resStream, streamList.get(i));
197+
}
198+
return resStream;
198199
}
199200

200201
/**

sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/WebappReconciler.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import io.fabric8.kubernetes.client.dsl.ExecWatch;
2020
import io.javaoperatorsdk.operator.api.reconciler.*;
2121
import io.javaoperatorsdk.operator.processing.event.ResourceID;
22-
import io.javaoperatorsdk.operator.processing.event.source.ControllerResourceEventSource;
2322
import io.javaoperatorsdk.operator.processing.event.source.EventSourceRegistry;
2423
import io.javaoperatorsdk.operator.processing.event.source.InformerEventSource;
2524

0 commit comments

Comments
 (0)