From a81451b23b35e43e9aaed74425dc459f2bae3a4b Mon Sep 17 00:00:00 2001 From: csviri Date: Tue, 26 Oct 2021 14:45:42 +0200 Subject: [PATCH 1/2] feat: removing Event using DefaultEvent instead, renamed DefaultEvent to Event. - EventHandler is not closeable --- .../processing/DefaultEventHandler.java | 9 ++++---- .../processing/event/DefaultEvent.java | 23 ------------------- .../operator/processing/event/Event.java | 19 +++++++++++++-- .../processing/event/EventHandler.java | 7 +----- .../event/internal/CustomResourceEvent.java | 4 ++-- .../internal/CustomResourceEventSource.java | 1 - .../event/internal/InformerEventSource.java | 4 ++-- .../event/internal/TimerEventSource.java | 4 ++-- .../processing/DefaultEventHandlerTest.java | 3 +-- 9 files changed, 29 insertions(+), 45 deletions(-) delete mode 100644 operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/DefaultEvent.java diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/DefaultEventHandler.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/DefaultEventHandler.java index 045b24b4c6..aac79938cd 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/DefaultEventHandler.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/DefaultEventHandler.java @@ -1,5 +1,6 @@ package io.javaoperatorsdk.operator.processing; +import java.io.Closeable; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -17,10 +18,7 @@ import io.javaoperatorsdk.operator.api.config.ConfigurationService; import io.javaoperatorsdk.operator.api.config.ExecutorServiceManager; import io.javaoperatorsdk.operator.api.monitoring.Metrics; -import io.javaoperatorsdk.operator.processing.event.CustomResourceID; -import io.javaoperatorsdk.operator.processing.event.DefaultEventSourceManager; -import io.javaoperatorsdk.operator.processing.event.Event; -import io.javaoperatorsdk.operator.processing.event.EventHandler; +import io.javaoperatorsdk.operator.processing.event.*; import io.javaoperatorsdk.operator.processing.event.internal.CustomResourceEvent; import io.javaoperatorsdk.operator.processing.event.internal.ResourceAction; import io.javaoperatorsdk.operator.processing.retry.GenericRetry; @@ -34,7 +32,8 @@ * Event handler that makes sure that events are processed in a "single threaded" way per resource * UID, while buffering events which are received during an execution. */ -public class DefaultEventHandler> implements EventHandler { +public class DefaultEventHandler> + implements EventHandler, Closeable { private static final Logger log = LoggerFactory.getLogger(DefaultEventHandler.class); diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/DefaultEvent.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/DefaultEvent.java deleted file mode 100644 index 7c55939da5..0000000000 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/DefaultEvent.java +++ /dev/null @@ -1,23 +0,0 @@ -package io.javaoperatorsdk.operator.processing.event; - -@SuppressWarnings("rawtypes") -public class DefaultEvent implements Event { - - private final CustomResourceID relatedCustomResource; - - public DefaultEvent(CustomResourceID targetCustomResource) { - this.relatedCustomResource = targetCustomResource; - } - - @Override - public CustomResourceID getRelatedCustomResourceID() { - return relatedCustomResource; - } - - @Override - public String toString() { - return "DefaultEvent{" + - "relatedCustomResource=" + relatedCustomResource + - '}'; - } -} diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/Event.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/Event.java index b0d51a37c0..d603cd853a 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/Event.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/Event.java @@ -1,7 +1,22 @@ package io.javaoperatorsdk.operator.processing.event; -public interface Event { +@SuppressWarnings("rawtypes") +public class Event { - CustomResourceID getRelatedCustomResourceID(); + private final CustomResourceID relatedCustomResource; + public Event(CustomResourceID targetCustomResource) { + this.relatedCustomResource = targetCustomResource; + } + + public CustomResourceID getRelatedCustomResourceID() { + return relatedCustomResource; + } + + @Override + public String toString() { + return "DefaultEvent{" + + "relatedCustomResource=" + relatedCustomResource + + '}'; + } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventHandler.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventHandler.java index e0a657e1d1..73f7867da4 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventHandler.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventHandler.java @@ -1,12 +1,7 @@ package io.javaoperatorsdk.operator.processing.event; -import java.io.Closeable; -import java.io.IOException; - -public interface EventHandler extends Closeable { +public interface EventHandler { void handleEvent(Event event); - @Override - default void close() throws IOException {} } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/internal/CustomResourceEvent.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/internal/CustomResourceEvent.java index 0c20369e0a..9752e7cf5e 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/internal/CustomResourceEvent.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/internal/CustomResourceEvent.java @@ -1,9 +1,9 @@ package io.javaoperatorsdk.operator.processing.event.internal; import io.javaoperatorsdk.operator.processing.event.CustomResourceID; -import io.javaoperatorsdk.operator.processing.event.DefaultEvent; +import io.javaoperatorsdk.operator.processing.event.Event; -public class CustomResourceEvent extends DefaultEvent { +public class CustomResourceEvent extends Event { private final ResourceAction action; diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/internal/CustomResourceEventSource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/internal/CustomResourceEventSource.java index b9c4c5b6a3..84a3ad75dc 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/internal/CustomResourceEventSource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/internal/CustomResourceEventSource.java @@ -106,7 +106,6 @@ public void start() { @Override public void close() throws IOException { - eventHandler.close(); for (SharedIndexInformer informer : sharedIndexInformers.values()) { try { log.info("Closing informer {} -> {}", controller, informer); diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/internal/InformerEventSource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/internal/InformerEventSource.java index 42b1c94084..9d32432360 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/internal/InformerEventSource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/internal/InformerEventSource.java @@ -13,7 +13,7 @@ import io.fabric8.kubernetes.client.informers.cache.Store; import io.javaoperatorsdk.operator.processing.event.AbstractEventSource; import io.javaoperatorsdk.operator.processing.event.CustomResourceID; -import io.javaoperatorsdk.operator.processing.event.DefaultEvent; +import io.javaoperatorsdk.operator.processing.event.Event; public class InformerEventSource extends AbstractEventSource { @@ -82,7 +82,7 @@ private void propagateEvent(T object) { return; } uids.forEach(uid -> { - DefaultEvent event = new DefaultEvent(CustomResourceID.fromResource(object)); + Event event = new Event(CustomResourceID.fromResource(object)); this.eventHandler.handleEvent(event); }); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/internal/TimerEventSource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/internal/TimerEventSource.java index 5015df4281..e8a1b7bc20 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/internal/TimerEventSource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/internal/TimerEventSource.java @@ -13,7 +13,7 @@ import io.fabric8.kubernetes.client.CustomResource; import io.javaoperatorsdk.operator.processing.event.AbstractEventSource; import io.javaoperatorsdk.operator.processing.event.CustomResourceID; -import io.javaoperatorsdk.operator.processing.event.DefaultEvent; +import io.javaoperatorsdk.operator.processing.event.Event; public class TimerEventSource> extends AbstractEventSource { private static final Logger log = LoggerFactory.getLogger(TimerEventSource.class); @@ -95,7 +95,7 @@ public EventProducerTimeTask(CustomResourceID customResourceUid) { public void run() { if (running.get()) { log.debug("Producing event for custom resource id: {}", customResourceUid); - eventHandler.handleEvent(new DefaultEvent(customResourceUid)); + eventHandler.handleEvent(new Event(customResourceUid)); } } } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/DefaultEventHandlerTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/DefaultEventHandlerTest.java index f231852537..93a36d5304 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/DefaultEventHandlerTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/DefaultEventHandlerTest.java @@ -13,7 +13,6 @@ import io.fabric8.kubernetes.client.CustomResource; import io.javaoperatorsdk.operator.processing.event.CustomResourceID; -import io.javaoperatorsdk.operator.processing.event.DefaultEvent; import io.javaoperatorsdk.operator.processing.event.DefaultEventSourceManager; import io.javaoperatorsdk.operator.processing.event.Event; import io.javaoperatorsdk.operator.processing.event.internal.CustomResourceEvent; @@ -315,7 +314,7 @@ private CustomResourceEvent prepareCREvent(CustomResourceID uid) { } private Event nonCREvent(CustomResourceID relatedCustomResourceUid) { - return new DefaultEvent(relatedCustomResourceUid); + return new Event(relatedCustomResourceUid); } private void overrideData(CustomResourceID id, CustomResource applyTo) { From cb3245450fb4056a04d7385be4648ef4aed894ff Mon Sep 17 00:00:00 2001 From: csviri Date: Wed, 27 Oct 2021 09:20:13 +0200 Subject: [PATCH 2/2] fix: remove raw type supression --- .../java/io/javaoperatorsdk/operator/processing/event/Event.java | 1 - 1 file changed, 1 deletion(-) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/Event.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/Event.java index d603cd853a..ff871b1534 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/Event.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/Event.java @@ -1,6 +1,5 @@ package io.javaoperatorsdk.operator.processing.event; -@SuppressWarnings("rawtypes") public class Event { private final CustomResourceID relatedCustomResource;