Skip to content

Commit 23bede1

Browse files
committed
fix: add more methods
1 parent a99d6bb commit 23bede1

File tree

3 files changed

+25
-34
lines changed

3 files changed

+25
-34
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/ResourceCache.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,8 @@ default Stream<T> list() {
1616
}
1717

1818
Stream<T> list(Predicate<T> predicate);
19+
20+
Stream<T> list(String namespace);
21+
22+
Stream<T> list(String namespace, Predicate<T> predicate);
1923
}

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

Lines changed: 19 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@
77
import java.util.concurrent.ConcurrentHashMap;
88
import java.util.function.Predicate;
99
import java.util.stream.Stream;
10-
import java.util.function.Predicate;
11-
import java.util.stream.Collectors;
12-
import java.util.stream.Stream;
1310

1411
import org.slf4j.Logger;
1512
import org.slf4j.LoggerFactory;
@@ -188,41 +185,31 @@ public Stream<T> list(Predicate<T> predicate) {
188185
return sharedIndexInformers.values().stream()
189186
.flatMap(i -> i.getStore().list().stream().filter(predicate));
190187
}
191-
public Stream<T> getCachedCustomResources() {
192-
return getCachedCustomResources(a -> true);
193-
}
194188

195-
public Stream<T> getCachedCustomResources(Predicate<T> predicate) {
196-
var streamList = sharedIndexInformers.values().stream()
197-
.map(i -> i.getStore().list().stream().filter(predicate)).collect(Collectors.toList());
198-
if (streamList.size() == 1) {
199-
return streamList.get(0);
200-
}
201-
var resStream = streamList.get(0);
202-
for (int i = 1; i < streamList.size(); i++) {
203-
resStream = Stream.concat(resStream, streamList.get(i));
189+
@Override
190+
public Stream<T> list(String namespace) {
191+
if (isWatchingAllNamespaces()) {
192+
return sharedIndexInformers.get(ANY_NAMESPACE_MAP_KEY).getStore().list().stream()
193+
.filter(r -> r.getMetadata()
194+
.getNamespace().equals(namespace));
195+
} else {
196+
return sharedIndexInformers.get(namespace).getStore().list().stream();
204197
}
205-
return resStream;
206198
}
207199

208-
/**
209-
* Use only if the operator is watching specific namespace(s).
210-
*
211-
* @param namespace - namespace to filter on
212-
* @return stream of cached resources from the specified namespace
213-
*/
214-
public Stream<T> getCachedResources(String namespace) {
215-
return sharedIndexInformers.get(namespace).getStore().list().stream();
200+
@Override
201+
public Stream<T> list(String namespace, Predicate<T> predicate) {
202+
if (isWatchingAllNamespaces()) {
203+
return sharedIndexInformers.get(ANY_NAMESPACE_MAP_KEY).getStore().list().stream()
204+
.filter(r -> r.getMetadata()
205+
.getNamespace().equals(namespace) && predicate.test(r));
206+
} else {
207+
return sharedIndexInformers.get(namespace).getStore().list().stream().filter(predicate);
208+
}
216209
}
217210

218-
/**
219-
* Use only if the operator is watching specific namespace(s).
220-
*
221-
* @param namespace - namespace to filter on
222-
* @return stream of cached resources from the specified namespace
223-
*/
224-
public Stream<T> getCachedResources(String namespace, Predicate<T> predicate) {
225-
return sharedIndexInformers.get(namespace).getStore().list().stream().filter(predicate);
211+
private boolean isWatchingAllNamespaces() {
212+
return sharedIndexInformers.containsKey(ANY_NAMESPACE_MAP_KEY);
226213
}
227214

228215
/**

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
2525
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
2626
import io.javaoperatorsdk.operator.processing.event.ResourceID;
27-
import io.javaoperatorsdk.operator.processing.event.internal.ControllerResourceEventSource;
28-
import io.javaoperatorsdk.operator.processing.event.internal.InformerEventSource;
27+
import io.javaoperatorsdk.operator.processing.event.source.EventSourceRegistry;
28+
import io.javaoperatorsdk.operator.processing.event.source.InformerEventSource;
2929

3030
import okhttp3.Response;
3131

0 commit comments

Comments
 (0)