|
1 | 1 | package io.javaoperatorsdk.operator.processing.dependent.external;
|
2 | 2 |
|
3 |
| -import java.util.Map; |
4 |
| -import java.util.function.Supplier; |
5 |
| - |
6 | 3 | import io.fabric8.kubernetes.api.model.HasMetadata;
|
7 | 4 | import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext;
|
8 |
| -import io.javaoperatorsdk.operator.processing.event.ExternalResourceCachingEventSource; |
9 |
| -import io.javaoperatorsdk.operator.processing.event.ResourceID; |
| 5 | +import io.javaoperatorsdk.operator.processing.event.source.CacheKeyMapper; |
| 6 | +import io.javaoperatorsdk.operator.processing.event.source.ExternalResourceCachingEventSource; |
10 | 7 | import io.javaoperatorsdk.operator.processing.event.source.polling.PollingEventSource;
|
11 | 8 |
|
12 | 9 | public abstract class PollingDependentResource<R, P extends HasMetadata>
|
13 |
| - extends AbstractPollingDependentResource<R, P> implements Supplier<Map<ResourceID, R>> { |
| 10 | + extends AbstractPollingDependentResource<R, P> |
| 11 | + implements PollingEventSource.GenericResourceFetcher<R> { |
| 12 | + |
| 13 | + private final CacheKeyMapper<R> cacheKeyMapper; |
14 | 14 |
|
15 |
| - public PollingDependentResource(Class<R> resourceType) { |
| 15 | + public PollingDependentResource(Class<R> resourceType, CacheKeyMapper<R> cacheKeyMapper) { |
16 | 16 | super(resourceType);
|
| 17 | + this.cacheKeyMapper = cacheKeyMapper; |
17 | 18 | }
|
18 | 19 |
|
19 |
| - public PollingDependentResource(Class<R> resourceType, long pollingPeriod) { |
| 20 | + public PollingDependentResource(Class<R> resourceType, long pollingPeriod, |
| 21 | + CacheKeyMapper<R> cacheKeyMapper) { |
20 | 22 | super(resourceType, pollingPeriod);
|
| 23 | + this.cacheKeyMapper = cacheKeyMapper; |
21 | 24 | }
|
22 | 25 |
|
23 | 26 | @Override
|
24 | 27 | protected ExternalResourceCachingEventSource<R, P> createEventSource(
|
25 | 28 | EventSourceContext<P> context) {
|
26 |
| - return new PollingEventSource<>(this, getPollingPeriod(), resourceType()); |
| 29 | + return new PollingEventSource<>(this, getPollingPeriod(), resourceType(), cacheKeyMapper); |
27 | 30 | }
|
| 31 | + |
28 | 32 | }
|
0 commit comments