|
1 | 1 | package io.javaoperatorsdk.operator.processing.event.source.informer;
|
2 | 2 |
|
3 |
| -import java.util.List; |
4 |
| -import java.util.Map; |
5 |
| -import java.util.Optional; |
6 |
| -import java.util.Set; |
| 3 | +import java.util.*; |
7 | 4 | import java.util.function.Function;
|
8 | 5 | import java.util.function.Predicate;
|
9 | 6 | import java.util.stream.Stream;
|
@@ -36,17 +33,21 @@ public abstract class ManagedInformerEventSource<R extends HasMetadata, P extend
|
36 | 33 | InformerWrappingEventSourceHealthIndicator<R>, Configurable<C> {
|
37 | 34 |
|
38 | 35 | private static final Logger log = LoggerFactory.getLogger(ManagedInformerEventSource.class);
|
39 |
| - private final InformerManager<R, C> cache; |
| 36 | + private InformerManager<R, C> cache; |
| 37 | + private boolean parseResourceVersions; |
| 38 | + private ConfigurationService configurationService; |
| 39 | + private C configuration; |
| 40 | + private Map<String, Function<R, List<String>>> indexers = new HashMap<>(); |
40 | 41 | protected TemporaryResourceCache<R> temporaryResourceCache;
|
41 | 42 | protected MixedOperation<R, KubernetesResourceList<R>, Resource<R>> client;
|
42 | 43 |
|
43 | 44 | protected ManagedInformerEventSource(
|
44 | 45 | MixedOperation<R, KubernetesResourceList<R>, Resource<R>> client, C configuration,
|
45 | 46 | boolean parseResourceVersions) {
|
46 | 47 | super(configuration.getResourceClass());
|
| 48 | + this.parseResourceVersions = parseResourceVersions; |
47 | 49 | this.client = client;
|
48 |
| - temporaryResourceCache = new TemporaryResourceCache<>(this, parseResourceVersions); |
49 |
| - this.cache = new InformerManager<>(client, configuration, this); |
| 50 | + this.configuration = configuration; |
50 | 51 | }
|
51 | 52 |
|
52 | 53 | @Override
|
@@ -77,6 +78,10 @@ public void changeNamespaces(Set<String> namespaces) {
|
77 | 78 |
|
78 | 79 | @Override
|
79 | 80 | public void start() {
|
| 81 | + temporaryResourceCache = new TemporaryResourceCache<>(this, parseResourceVersions); |
| 82 | + this.cache = new InformerManager<>(client, configuration, this); |
| 83 | + cache.setConfigurationService(configurationService); |
| 84 | + cache.addIndexers(indexers); |
80 | 85 | manager().start();
|
81 | 86 | super.start();
|
82 | 87 | }
|
@@ -129,7 +134,7 @@ void setTemporalResourceCache(TemporaryResourceCache<R> temporaryResourceCache)
|
129 | 134 |
|
130 | 135 | @Override
|
131 | 136 | public void addIndexers(Map<String, Function<R, List<String>>> indexers) {
|
132 |
| - cache.addIndexers(indexers); |
| 137 | + this.indexers.putAll(indexers); |
133 | 138 | }
|
134 | 139 |
|
135 | 140 | @Override
|
@@ -175,6 +180,6 @@ public String toString() {
|
175 | 180 | }
|
176 | 181 |
|
177 | 182 | public void setConfigurationService(ConfigurationService configurationService) {
|
178 |
| - cache.setConfigurationService(configurationService); |
| 183 | + this.configurationService = configurationService; |
179 | 184 | }
|
180 | 185 | }
|
0 commit comments