Skip to content

Commit 5a9cdbd

Browse files
authored
improve: api for dynamic registration of event sources (#2162)
fixes also a typo Signed-off-by: Attila Mészáros <[email protected]>
1 parent c761ffa commit 5a9cdbd

File tree

3 files changed

+17
-14
lines changed

3 files changed

+17
-14
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowReconcileExecutor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ private <R> void registerOrDeregisterEventSourceBasedOnActivation(boolean activa
8484
if (activationConditionMet) {
8585
var eventSource =
8686
dependentResourceNode.getDependentResource().eventSource(context.eventSourceRetriever()
87-
.eventSourceContexForDynamicRegistration());
87+
.eventSourceContextForDynamicRegistration());
8888
var es = eventSource.orElseThrow();
8989
context.eventSourceRetriever()
9090
.dynamicallyRegisterEventSource(dependentResourceNode.getName(), es);

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

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
package io.javaoperatorsdk.operator.processing.event;
22

3-
import java.util.LinkedHashSet;
4-
import java.util.List;
5-
import java.util.Map;
6-
import java.util.Objects;
7-
import java.util.Set;
3+
import java.util.*;
84
import java.util.function.Function;
95
import java.util.stream.Collectors;
106
import java.util.stream.Stream;
@@ -233,24 +229,28 @@ public <R> List<ResourceEventSource<R, P>> getResourceEventSourcesFor(Class<R> d
233229
}
234230

235231
@Override
236-
public synchronized void dynamicallyRegisterEventSource(String name, EventSource eventSource) {
237-
if (eventSources.existing(name, eventSource) != null) {
238-
return;
232+
public synchronized EventSource dynamicallyRegisterEventSource(String name,
233+
EventSource eventSource) {
234+
var es = eventSources.existing(name, eventSource);
235+
if (es != null) {
236+
return es;
239237
}
240238
registerEventSource(name, eventSource);
241239
eventSource.start();
240+
return eventSource;
242241
}
243242

244243
@Override
245-
public synchronized void dynamicallyDeRegisterEventSource(String name) {
244+
public synchronized Optional<EventSource> dynamicallyDeRegisterEventSource(String name) {
246245
EventSource es = eventSources.remove(name);
247246
if (es != null) {
248247
es.stop();
249248
}
249+
return Optional.ofNullable(es);
250250
}
251251

252252
@Override
253-
public EventSourceContext<P> eventSourceContexForDynamicRegistration() {
253+
public EventSourceContext<P> eventSourceContextForDynamicRegistration() {
254254
return controller.eventSourceContext();
255255
}
256256

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

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.javaoperatorsdk.operator.processing.event;
22

33
import java.util.List;
4+
import java.util.Optional;
45

56
import io.fabric8.kubernetes.api.model.HasMetadata;
67
import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext;
@@ -40,8 +41,9 @@ default <R> ResourceEventSource<R, P> getResourceEventSourceFor(Class<R> depende
4041
*
4142
* @param name of the event source
4243
* @param eventSource to register
44+
* @return the actual event source registered. Might not be the same as the parameter.
4345
*/
44-
void dynamicallyRegisterEventSource(String name, EventSource eventSource);
46+
EventSource dynamicallyRegisterEventSource(String name, EventSource eventSource);
4547

4648
/**
4749
* De-registers (and stops) the {@link EventSource} associated with the specified name. If no such
@@ -57,9 +59,10 @@ default <R> ResourceEventSource<R, P> getResourceEventSourceFor(Class<R> depende
5759
* </p>
5860
*
5961
* @param name of the event source
62+
* @return the actual event source deregistered if there is one.
6063
*/
61-
void dynamicallyDeRegisterEventSource(String name);
64+
Optional<EventSource> dynamicallyDeRegisterEventSource(String name);
6265

63-
EventSourceContext<P> eventSourceContexForDynamicRegistration();
66+
EventSourceContext<P> eventSourceContextForDynamicRegistration();
6467

6568
}

0 commit comments

Comments
 (0)