Skip to content

Commit 8eab7fe

Browse files
committed
supplier for registering event sources
1 parent f0481be commit 8eab7fe

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.util.*;
1111
import java.util.concurrent.ConcurrentHashMap;
1212
import java.util.concurrent.locks.ReentrantLock;
13+
import java.util.function.Supplier;
1314

1415
public class DefaultEventSourceManager implements EventSourceManager {
1516

@@ -51,13 +52,14 @@ public <T extends EventSource> void registerEventSource(CustomResource customRes
5152
}
5253

5354
@Override
54-
public <T extends EventSource> T registerEventSourceIfNotRegistered(CustomResource customResource, String name, T eventSource) {
55+
public <T extends EventSource> T registerEventSourceIfNotRegistered(CustomResource customResource, String name, Supplier<T> eventSourceSupplier) {
5556
try {
5657
lock.lock();
5758
if (eventSources.get(ProcessingUtils.getUID(customResource)) == null ||
5859
eventSources.get(ProcessingUtils.getUID(customResource)).get(name) == null) {
60+
EventSource eventSource = eventSourceSupplier.get();
5961
registerEventSource(customResource, name, eventSource);
60-
return eventSource;
62+
return (T) eventSource;
6163
}
6264
return (T) eventSources.get(ProcessingUtils.getUID(customResource)).get(name);
6365
} finally {

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55
import java.util.List;
66
import java.util.Map;
77
import java.util.Optional;
8+
import java.util.function.Supplier;
89

910
public interface EventSourceManager {
1011

1112
<T extends EventSource> void registerEventSource(CustomResource customResource, String name, T eventSource);
1213

13-
<T extends EventSource> T registerEventSourceIfNotRegistered(CustomResource customResource, String name, T eventSource);
14+
<T extends EventSource> T registerEventSourceIfNotRegistered(CustomResource customResource, String name, Supplier<T> eventSource);
1415

1516
Optional<EventSource> deRegisterEventSource(String customResourceUid, String name);
1617

operator-framework/src/test/java/io/javaoperatorsdk/operator/processing/event/DefaultEventSourceManagerTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ public void registersEventSourceOnlyIfNotRegistered() {
5353
EventSource eventSource = mock(EventSource.class);
5454
EventSource eventSource2 = mock(EventSource.class);
5555

56-
defaultEventSourceManager.registerEventSourceIfNotRegistered(customResource, CUSTOM_EVENT_SOURCE_NAME, eventSource);
57-
defaultEventSourceManager.registerEventSourceIfNotRegistered(customResource, CUSTOM_EVENT_SOURCE_NAME, eventSource2);
56+
defaultEventSourceManager.registerEventSourceIfNotRegistered(customResource, CUSTOM_EVENT_SOURCE_NAME, () -> eventSource);
57+
defaultEventSourceManager.registerEventSourceIfNotRegistered(customResource, CUSTOM_EVENT_SOURCE_NAME, () -> eventSource2);
5858

5959
Map<String, EventSource> registeredEventSources = defaultEventSourceManager
6060
.getRegisteredEventSources(getUID(customResource));
@@ -65,7 +65,7 @@ public void registersEventSourceOnlyIfNotRegistered() {
6565
public void deRegistersEventSources() {
6666
CustomResource customResource = TestUtils.testCustomResource();
6767
EventSource eventSource = mock(EventSource.class);
68-
defaultEventSourceManager.registerEventSourceIfNotRegistered(customResource, CUSTOM_EVENT_SOURCE_NAME, eventSource);
68+
defaultEventSourceManager.registerEventSourceIfNotRegistered(customResource, CUSTOM_EVENT_SOURCE_NAME, () -> eventSource);
6969

7070
defaultEventSourceManager.deRegisterEventSource(getUID(customResource), CUSTOM_EVENT_SOURCE_NAME);
7171

0 commit comments

Comments
 (0)