Skip to content

Commit 1ea7b72

Browse files
committed
introduce event source utils
Signed-off-by: Attila Mészáros <[email protected]>
1 parent d3a0b95 commit 1ea7b72

File tree

31 files changed

+106
-105
lines changed

31 files changed

+106
-105
lines changed

caffeine-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/sample/AbstractTestReconciler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public Map<String, EventSource> prepareEventSources(
8282
Mappers.fromOwnerReference(this instanceof BoundedCacheClusterScopeTestReconciler))
8383
.build(), context);
8484

85-
return Reconciler.nameEventSources(es);
85+
return EventSourceUtils.nameEventSources(es);
8686
}
8787

8888
private void ensureStatus(P resource) {
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package io.javaoperatorsdk.operator.api.reconciler;
2+
3+
import java.util.*;
4+
5+
import io.fabric8.kubernetes.api.model.HasMetadata;
6+
import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource;
7+
import io.javaoperatorsdk.operator.processing.dependent.workflow.Workflow;
8+
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
9+
import io.javaoperatorsdk.operator.processing.event.source.ResourceEventSource;
10+
11+
public class EventSourceUtils {
12+
/**
13+
* Utility method to easily create map with generated name for event sources. This is for the use
14+
* case when the event sources are not access explicitly by name in the reconciler.
15+
*
16+
* @param eventSources to name
17+
* @return even source with default names
18+
*/
19+
public static Map<String, EventSource> nameEventSources(EventSource... eventSources) {
20+
Map<String, EventSource> eventSourceMap = new HashMap<>(eventSources.length);
21+
for (EventSource eventSource : eventSources) {
22+
eventSourceMap.put(generateNameFor(eventSource), eventSource);
23+
}
24+
return eventSourceMap;
25+
}
26+
27+
@SuppressWarnings("unchecked")
28+
public static <K extends HasMetadata> Map<String, EventSource> eventSourcesFromWorkflow(
29+
EventSourceContext<K> context,
30+
Workflow<K> workflow) {
31+
Map<String, EventSource> result = new HashMap<>();
32+
for (var e : workflow.getDependentResourcesByNameWithoutActivationCondition().entrySet()) {
33+
var eventSource = e.getValue().eventSource(context);
34+
eventSource.ifPresent(es -> result.put(e.getKey(), (EventSource) es));
35+
}
36+
return result;
37+
}
38+
39+
@SuppressWarnings("rawtypes")
40+
public static <K extends HasMetadata> Map<String, EventSource> nameEventSourcesFromDependentResource(
41+
EventSourceContext<K> context, DependentResource... dependentResources) {
42+
return nameEventSourcesFromDependentResource(context, Arrays.asList(dependentResources));
43+
}
44+
45+
@SuppressWarnings("unchecked,rawtypes")
46+
public static <K extends HasMetadata> Map<String, EventSource> nameEventSourcesFromDependentResource(
47+
EventSourceContext<K> context, Collection<DependentResource> dependentResources) {
48+
49+
if (dependentResources != null) {
50+
Map<String, EventSource> eventSourceMap = new HashMap<>(dependentResources.size());
51+
for (DependentResource dependentResource : dependentResources) {
52+
Optional<ResourceEventSource> es = dependentResource.eventSource(context);
53+
es.ifPresent(e -> eventSourceMap.put(generateNameFor(e), e));
54+
}
55+
return eventSourceMap;
56+
} else {
57+
return Collections.emptyMap();
58+
}
59+
}
60+
61+
/**
62+
* Used when event sources are not explicitly named when created/registered.
63+
*
64+
* @param eventSource EventSource
65+
* @return generated name
66+
*/
67+
public static String generateNameFor(EventSource eventSource) {
68+
// we can have multiple event sources for the same class
69+
return eventSource.getClass().getName() + "#" + eventSource.hashCode();
70+
}
71+
}

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/Reconciler.java

Lines changed: 0 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
import java.util.*;
44

55
import io.fabric8.kubernetes.api.model.HasMetadata;
6-
import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource;
7-
import io.javaoperatorsdk.operator.processing.dependent.workflow.Workflow;
86
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
9-
import io.javaoperatorsdk.operator.processing.event.source.ResourceEventSource;
107

118
public interface Reconciler<P extends HasMetadata> {
129

@@ -35,63 +32,4 @@ default Map<String, EventSource> prepareEventSources(EventSourceContext<P> conte
3532
return Map.of();
3633
}
3734

38-
/**
39-
* Utility method to easily create map with generated name for event sources. This is for the use
40-
* case when the event sources are not access explicitly by name in the reconciler.
41-
*
42-
* @param eventSources to name
43-
* @return even source with default names
44-
*/
45-
static Map<String, EventSource> nameEventSources(EventSource... eventSources) {
46-
Map<String, EventSource> eventSourceMap = new HashMap<>(eventSources.length);
47-
for (EventSource eventSource : eventSources) {
48-
eventSourceMap.put(generateNameFor(eventSource), eventSource);
49-
}
50-
return eventSourceMap;
51-
}
52-
53-
@SuppressWarnings("unchecked")
54-
static <K extends HasMetadata> Map<String, EventSource> eventSourcesFromWorkflow(
55-
EventSourceContext<K> context,
56-
Workflow<K> workflow) {
57-
Map<String, EventSource> result = new HashMap<>();
58-
for (var e : workflow.getDependentResourcesByNameWithoutActivationCondition().entrySet()) {
59-
var eventSource = e.getValue().eventSource(context);
60-
eventSource.ifPresent(es -> result.put(e.getKey(), (EventSource) es));
61-
}
62-
return result;
63-
}
64-
65-
@SuppressWarnings("rawtypes")
66-
static <K extends HasMetadata> Map<String, EventSource> nameEventSourcesFromDependentResource(
67-
EventSourceContext<K> context, DependentResource... dependentResources) {
68-
return nameEventSourcesFromDependentResource(context, Arrays.asList(dependentResources));
69-
}
70-
71-
@SuppressWarnings("unchecked,rawtypes")
72-
static <K extends HasMetadata> Map<String, EventSource> nameEventSourcesFromDependentResource(
73-
EventSourceContext<K> context, Collection<DependentResource> dependentResources) {
74-
75-
if (dependentResources != null) {
76-
Map<String, EventSource> eventSourceMap = new HashMap<>(dependentResources.size());
77-
for (DependentResource dependentResource : dependentResources) {
78-
Optional<ResourceEventSource> es = dependentResource.eventSource(context);
79-
es.ifPresent(e -> eventSourceMap.put(generateNameFor(e), e));
80-
}
81-
return eventSourceMap;
82-
} else {
83-
return Collections.emptyMap();
84-
}
85-
}
86-
87-
/**
88-
* Used when event sources are not explicitly named when created/registered.
89-
*
90-
* @param eventSource EventSource
91-
* @return generated name
92-
*/
93-
static String generateNameFor(EventSource eventSource) {
94-
// we can have multiple event sources for the same class
95-
return eventSource.getClass().getName() + "#" + eventSource.hashCode();
96-
}
9735
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import io.javaoperatorsdk.operator.api.config.ExecutorServiceManager;
1515
import io.javaoperatorsdk.operator.api.config.NamespaceChangeable;
1616
import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext;
17-
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
17+
import io.javaoperatorsdk.operator.api.reconciler.EventSourceUtils;
1818
import io.javaoperatorsdk.operator.processing.Controller;
1919
import io.javaoperatorsdk.operator.processing.LifecycleAware;
2020
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
@@ -150,7 +150,7 @@ public final synchronized void registerEventSource(String name, EventSource even
150150
Objects.requireNonNull(eventSource, "EventSource must not be null");
151151
try {
152152
if (name == null || name.isBlank()) {
153-
name = Reconciler.generateNameFor(eventSource);
153+
name = EventSourceUtils.generateNameFor(eventSource);
154154
}
155155
if (eventSource instanceof ManagedInformerEventSource) {
156156
var managedInformerEventSource = ((ManagedInformerEventSource) eventSource);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import java.util.Optional;
55

66
import io.javaoperatorsdk.operator.OperatorException;
7-
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
7+
import io.javaoperatorsdk.operator.api.reconciler.EventSourceUtils;
88
import io.javaoperatorsdk.operator.processing.event.source.Configurable;
99
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
1010
import io.javaoperatorsdk.operator.processing.event.source.EventSourceStartPriority;
@@ -19,7 +19,7 @@ class NamedEventSource implements EventSource, EventSourceMetadata {
1919
NamedEventSource(EventSource original, String name) {
2020
this.original = original;
2121
this.name = name;
22-
nameSet = !name.equals(Reconciler.generateNameFor(original));
22+
nameSet = !name.equals(EventSourceUtils.generateNameFor(original));
2323
}
2424

2525
@Override

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/reconciler/EventSourceInitializerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ class EventSourceInitializerTest {
1515
void defaultNameDifferentForOtherInstance() {
1616
var eventSource1 = new PollingEventSource(HashMap::new, 1000, String.class);
1717
var eventSource2 = new PollingEventSource(HashMap::new, 1000, String.class);
18-
var eventSourceName1 = Reconciler.generateNameFor(eventSource1);
19-
var eventSourceName2 = Reconciler.generateNameFor(eventSource2);
18+
var eventSourceName1 = EventSourceUtils.generateNameFor(eventSource1);
19+
var eventSourceName2 = EventSourceUtils.generateNameFor(eventSource2);
2020

2121
assertThat(eventSourceName1).isNotEqualTo(eventSourceName2);
2222
}

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/bulkdependent/StandaloneBulkDependentReconciler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public int getNumberOfExecutions() {
3737
@Override
3838
public Map<String, EventSource> prepareEventSources(
3939
EventSourceContext<BulkDependentTestCustomResource> context) {
40-
return Reconciler
40+
return EventSourceUtils
4141
.nameEventSources(dependent.initEventSource(context));
4242
}
4343
}

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/changenamespace/ChangeNamespaceTestReconciler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public Map<String, EventSource> prepareEventSources(
2626
new InformerEventSource<>(InformerConfiguration.from(ConfigMap.class, context)
2727
.build(), context);
2828

29-
return Reconciler.nameEventSources(configMapES);
29+
return EventSourceUtils.nameEventSources(configMapES);
3030
}
3131

3232
@Override

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/clusterscopedresource/ClusterScopedCustomResourceReconciler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,6 @@ public Map<String, EventSource> prepareEventSources(
5858
.withSecondaryToPrimaryMapper(Mappers.fromOwnerReference(true))
5959
.withLabelSelector(TEST_LABEL_KEY + "=" + TEST_LABEL_VALUE)
6060
.build(), context);
61-
return Reconciler.nameEventSources(ies);
61+
return EventSourceUtils.nameEventSources(ies);
6262
}
6363
}

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/createupdateeventfilter/CreateUpdateEventFilterTestReconciler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public Map<String, EventSource> prepareEventSources(
9696
informerEventSource = new InformerEventSource<>(informerConfiguration, context.getClient());
9797
this.configMapDR.setEventSource(informerEventSource);
9898

99-
return Reconciler.nameEventSources(informerEventSource);
99+
return EventSourceUtils.nameEventSources(informerEventSource);
100100
}
101101

102102
public int getNumberOfExecutions() {

0 commit comments

Comments
 (0)