diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java
index d908f52ebe..9bb0456828 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java
@@ -25,8 +25,6 @@
import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource;
import io.javaoperatorsdk.operator.processing.dependent.workflow.Condition;
import io.javaoperatorsdk.operator.processing.event.rate.RateLimiter;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilters;
import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnUpdateFilter;
@@ -163,40 +161,12 @@ protected
ControllerConfiguration
configFor(Reconcile
Utils.instantiate(annotation.itemStore(), ItemStore.class, context), dependentFieldManager,
this, informerListLimit);
- ResourceEventFilter
answer = deprecatedEventFilter(annotation);
- config.setEventFilter(answer != null ? answer : ResourceEventFilters.passthrough());
-
List specs = dependentResources(annotation, config);
config.setDependentResources(specs);
return config;
}
- @SuppressWarnings("unchecked")
- private static ResourceEventFilter
deprecatedEventFilter(
- io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration annotation) {
- ResourceEventFilter
answer = null;
-
- Class>[] filterTypes =
- (Class>[]) valueOrDefault(annotation,
- io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration::eventFilters,
- new Object[] {});
- for (var filterType : filterTypes) {
- try {
- ResourceEventFilter filter = filterType.getConstructor().newInstance();
-
- if (answer == null) {
- answer = filter;
- } else {
- answer = answer.and(filter);
- }
- } catch (Exception e) {
- throw new IllegalArgumentException(e);
- }
- }
- return answer;
- }
-
@SuppressWarnings({"unchecked", "rawtypes"})
private static List dependentResources(
io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration annotation,
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfiguration.java
index 13ddd995ad..1dca3a6bc7 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfiguration.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfiguration.java
@@ -12,8 +12,6 @@
import io.javaoperatorsdk.operator.api.reconciler.MaxReconciliationInterval;
import io.javaoperatorsdk.operator.processing.event.rate.LinearRateLimiter;
import io.javaoperatorsdk.operator.processing.event.rate.RateLimiter;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilters;
import io.javaoperatorsdk.operator.processing.retry.GenericRetry;
import io.javaoperatorsdk.operator.processing.retry.GradualRetry;
import io.javaoperatorsdk.operator.processing.retry.Retry;
@@ -83,25 +81,6 @@ default RateLimiter getRateLimiter() {
return DEFAULT_RATE_LIMITER;
}
- /**
- * Allow controllers to filter events before they are passed to the
- * {@link io.javaoperatorsdk.operator.processing.event.EventHandler}.
- *
- *
- * Resource event filters only applies on events of the main custom resource. Not on events from
- * other event sources nor the periodic events.
- *
- *
- * @return filter
- * @deprecated use {@link ResourceConfiguration#onAddFilter()},
- * {@link ResourceConfiguration#onUpdateFilter()} or
- * {@link ResourceConfiguration#genericFilter()} instead
- */
- @Deprecated(forRemoval = true)
- default ResourceEventFilter getEventFilter() {
- return ResourceEventFilters.passthrough();
- }
-
@SuppressWarnings("rawtypes")
default List getDependentResources() {
return Collections.emptyList();
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java
index 328d912109..ba270baadd 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java
@@ -11,11 +11,9 @@
import io.fabric8.kubernetes.client.informers.cache.ItemStore;
import io.javaoperatorsdk.operator.api.config.dependent.DependentResourceSpec;
import io.javaoperatorsdk.operator.processing.event.rate.RateLimiter;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnUpdateFilter;
-import io.javaoperatorsdk.operator.processing.retry.GenericRetry;
import io.javaoperatorsdk.operator.processing.retry.Retry;
import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES_SET;
@@ -29,7 +27,6 @@ public class ControllerConfigurationOverrider {
private Set namespaces;
private Retry retry;
private String labelSelector;
- private ResourceEventFilter customResourcePredicate;
private final ControllerConfiguration original;
private Duration reconciliationMaxInterval;
private OnAddFilter super R> onAddFilter;
@@ -48,7 +45,6 @@ private ControllerConfigurationOverrider(ControllerConfiguration original) {
this.namespaces = new HashSet<>(original.getNamespaces());
this.retry = original.getRetry();
this.labelSelector = original.getLabelSelector();
- this.customResourcePredicate = original.getEventFilter();
this.reconciliationMaxInterval = original.maxReconciliationInterval().orElse(null);
this.onAddFilter = original.onAddFilter().orElse(null);
this.onUpdateFilter = original.onUpdateFilter().orElse(null);
@@ -110,17 +106,6 @@ public ControllerConfigurationOverrider watchingAllNamespaces() {
return this;
}
- /**
- * @param retry configuration
- * @return current instance of overrider
- * @deprecated Use {@link #withRetry(Retry)} instead
- */
- @Deprecated(forRemoval = true)
- public ControllerConfigurationOverrider withRetry(RetryConfiguration retry) {
- this.retry = GenericRetry.fromConfiguration(retry);
- return this;
- }
-
public ControllerConfigurationOverrider withRetry(Retry retry) {
this.retry = retry;
return this;
@@ -136,12 +121,6 @@ public ControllerConfigurationOverrider withLabelSelector(String labelSelecto
return this;
}
- public ControllerConfigurationOverrider withCustomResourcePredicate(
- ResourceEventFilter customResourcePredicate) {
- this.customResourcePredicate = customResourcePredicate;
- return this;
- }
-
public ControllerConfigurationOverrider withReconciliationMaxInterval(
Duration reconciliationMaxInterval) {
this.reconciliationMaxInterval = reconciliationMaxInterval;
@@ -210,15 +189,13 @@ public ControllerConfigurationOverrider replacingNamedDependentResourceConfig
}
public ControllerConfiguration build() {
- final var overridden = new ResolvedControllerConfiguration<>(original.getResourceClass(),
+ return new ResolvedControllerConfiguration<>(original.getResourceClass(),
name,
generationAware, original.getAssociatedReconcilerClassName(), retry, rateLimiter,
reconciliationMaxInterval, onAddFilter, onUpdateFilter, genericFilter,
original.getDependentResources(),
namespaces, finalizer, labelSelector, configurations, itemStore, fieldManager,
original.getConfigurationService(), informerListLimit);
- overridden.setEventFilter(customResourcePredicate);
- return overridden;
}
public static ControllerConfigurationOverrider override(
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResolvedControllerConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResolvedControllerConfiguration.java
index 307e75080f..c36daa8f62 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResolvedControllerConfiguration.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResolvedControllerConfiguration.java
@@ -10,7 +10,6 @@
import io.javaoperatorsdk.operator.api.config.dependent.DependentResourceSpec;
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
import io.javaoperatorsdk.operator.processing.event.rate.RateLimiter;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnUpdateFilter;
@@ -34,7 +33,6 @@ public class ResolvedControllerConfiguration
private final ConfigurationService configurationService;
private final String fieldManager;
- private ResourceEventFilter
eventFilter;
private List dependentResources;
public ResolvedControllerConfiguration(Class resourceClass, ControllerConfiguration
other) {
@@ -166,21 +164,6 @@ public ConfigurationService getConfigurationService() {
return configurationService;
}
- @Override
- public ResourceEventFilter
getEventFilter() {
- return eventFilter;
- }
-
- /**
- * @deprecated Use {@link OnAddFilter}, {@link OnUpdateFilter} and {@link GenericFilter} instead
- *
- * @param eventFilter generic event filter
- */
- @Deprecated(forRemoval = true)
- protected void setEventFilter(ResourceEventFilter
eventFilter) {
- this.eventFilter = eventFilter;
- }
-
@Override
public Object getConfigurationFor(DependentResourceSpec spec) {
return configurations.get(spec);
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java
index c064e669e0..783b4a9a45 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java
@@ -11,7 +11,6 @@
import io.javaoperatorsdk.operator.processing.event.rate.LinearRateLimiter;
import io.javaoperatorsdk.operator.processing.event.rate.RateLimiter;
import io.javaoperatorsdk.operator.processing.event.source.cache.BoundedItemStore;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnUpdateFilter;
@@ -64,19 +63,6 @@
*/
String labelSelector() default Constants.NO_VALUE_SET;
- /**
- * @deprecated Use onAddFilter, onUpdateFilter instead.
- *
- *
- * Resource event filters only applies on events of the main custom resource. Not on
- * events from other event sources nor the periodic events.
- *
- *
- * @return the list of event filters.
- */
- @Deprecated(forRemoval = true)
- Class extends ResourceEventFilter>[] eventFilters() default {};
-
/**
* Filter of onAdd events of resources.
*
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerResourceEventSource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerResourceEventSource.java
index 5aa05f146c..198d9eb0c1 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerResourceEventSource.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerResourceEventSource.java
@@ -28,7 +28,6 @@ public class ControllerResourceEventSource
private static final Logger log = LoggerFactory.getLogger(ControllerResourceEventSource.class);
private final Controller controller;
- private final ResourceEventFilter legacyFilters;
@SuppressWarnings({"unchecked", "rawtypes"})
public ControllerResourceEventSource(Controller controller) {
@@ -42,8 +41,6 @@ public ControllerResourceEventSource(Controller controller) {
.or(onUpdateGenerationAware(config.isGenerationAware()))
.or(onUpdateMarkedForDeletion());
- legacyFilters = config.getEventFilter();
-
// by default the on add should be processed in all cases regarding internal filters
config.onAddFilter().ifPresent(this::setOnAddFilter);
config.onUpdateFilter()
@@ -69,9 +66,7 @@ public void eventReceived(ResourceAction action, T resource, T oldResource) {
log.debug("Event received for resource: {}", getName(resource));
MDCUtils.addResourceInfo(resource);
controller.getEventSourceManager().broadcastOnResourceEvent(action, resource, oldResource);
- if ((legacyFilters == null ||
- legacyFilters.acceptChange(controller, oldResource, resource))
- && isAcceptedByFilters(action, resource, oldResource)) {
+ if (isAcceptedByFilters(action, resource, oldResource)) {
getEventHandler().handleEvent(
new ResourceEvent(action, ResourceID.fromResource(resource), resource));
} else {
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ResourceEventFilter.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ResourceEventFilter.java
deleted file mode 100644
index 08a86c92ae..0000000000
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ResourceEventFilter.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package io.javaoperatorsdk.operator.processing.event.source.controller;
-
-import io.fabric8.kubernetes.api.model.HasMetadata;
-import io.javaoperatorsdk.operator.processing.Controller;
-
-/**
- * A functional interface to determine whether resource events should be processed by the SDK. This
- * allows users to more finely tuned which events trigger a reconciliation than was previously
- * possible (where the logic was limited to generation-based checking).
- *
- * @param the type of custom resources handled by this filter
- */
-@Deprecated(forRemoval = true)
-@FunctionalInterface
-public interface ResourceEventFilter
{
-
- /**
- * Determines whether the change between the old version of the resource and the new one needs to
- * be propagated to the controller or not.
- *
- * @param controller the target controller
- * @param oldResource the old version of the resource, null if no old resource available
- * @param newResource the new version of the resource
- * @return {@code true} if the change needs to be propagated to the controller, {@code false}
- * otherwise
- */
- boolean acceptChange(Controller
controller, P oldResource, P newResource);
-
- /**
- * Combines this filter with the provided one with an AND logic, i.e. the resulting filter will
- * only accept the change if both this and the other filter accept it, reject it otherwise.
- *
- * @param other the possibly {@code null} other filter to combine this one with
- * @return a composite filter implementing the AND logic between this and the provided filter
- */
- default ResourceEventFilter
and(ResourceEventFilter
other) {
- return other == null ? this
- : (Controller
controller, P oldResource, P newResource) -> {
- boolean result = acceptChange(controller, oldResource, newResource);
- return result && other.acceptChange(controller, oldResource, newResource);
- };
- }
-
- /**
- * Combines this filter with the provided one with an OR logic, i.e. the resulting filter will
- * accept the change if any of this or the other filter accept it, rejecting it only if both
- * reject it.
- *
- * @param other the possibly {@code null} other filter to combine this one with
- * @return a composite filter implementing the OR logic between this and the provided filter
- */
- default ResourceEventFilter
or(ResourceEventFilter
other) {
- return other == null ? this
- : (Controller
controller, P oldResource, P newResource) -> {
- boolean result = acceptChange(controller, oldResource, newResource);
- return result || other.acceptChange(controller, oldResource, newResource);
- };
- }
-}
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ResourceEventFilters.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ResourceEventFilters.java
deleted file mode 100644
index 7024388b8b..0000000000
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ResourceEventFilters.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package io.javaoperatorsdk.operator.processing.event.source.controller;
-
-import io.fabric8.kubernetes.api.model.HasMetadata;
-
-/**
- * Convenience implementations of, and utility methods for, {@link ResourceEventFilter}.
- */
-@Deprecated
-public final class ResourceEventFilters {
-
- private static final ResourceEventFilter PASSTHROUGH =
- (configuration, oldResource, newResource) -> true;
-
- private ResourceEventFilters() {}
-
- /**
- * Retrieves a filter that accepts all events.
- *
- * @param the type of custom resource the filter should handle
- * @return a filter that accepts all events
- */
- @SuppressWarnings("unchecked")
- public static ResourceEventFilter passthrough() {
- return (ResourceEventFilter) PASSTHROUGH;
- }
-
-}
diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/ResourceEventFilterTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/ResourceEventFilterTest.java
deleted file mode 100644
index c8ec839b59..0000000000
--- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/ResourceEventFilterTest.java
+++ /dev/null
@@ -1,166 +0,0 @@
-package io.javaoperatorsdk.operator.processing.event.source;
-
-import java.util.List;
-import java.util.Objects;
-
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import io.fabric8.kubernetes.api.model.HasMetadata;
-import io.javaoperatorsdk.operator.MockKubernetesClient;
-import io.javaoperatorsdk.operator.ReconcilerUtils;
-import io.javaoperatorsdk.operator.TestUtils;
-import io.javaoperatorsdk.operator.api.config.BaseConfigurationService;
-import io.javaoperatorsdk.operator.api.config.ControllerConfiguration;
-import io.javaoperatorsdk.operator.api.config.ResolvedControllerConfiguration;
-import io.javaoperatorsdk.operator.processing.Controller;
-import io.javaoperatorsdk.operator.processing.event.EventHandler;
-import io.javaoperatorsdk.operator.processing.event.EventSourceManager;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ControllerResourceEventSource;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceAction;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
-import io.javaoperatorsdk.operator.sample.simple.TestCustomResource;
-
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-class ResourceEventFilterTest {
- public static final String FINALIZER =
- ReconcilerUtils.getDefaultFinalizerName(TestCustomResource.class);
-
- private EventHandler eventHandler;
-
- @BeforeEach
- public void before() {
- this.eventHandler = mock(EventHandler.class);
- }
-
- private ControllerResourceEventSource init(Controller controller) {
- var eventSource = new ControllerResourceEventSource<>(controller);
- eventSource.setEventHandler(eventHandler);
- return eventSource;
- }
-
- @Test
- public void eventFilteredByCustomPredicate() {
- var config = new TestControllerConfig(
- FINALIZER,
- false,
- (configuration, oldResource, newResource) -> oldResource == null || !Objects.equals(
- oldResource.getStatus().getConfigMapStatus(),
- newResource.getStatus().getConfigMapStatus()));
-
- final var eventSource = init(new TestController(config));
-
- TestCustomResource cr = TestUtils.testCustomResource();
- cr.getMetadata().setFinalizers(List.of(FINALIZER));
- cr.getMetadata().setGeneration(1L);
- cr.getStatus().setConfigMapStatus("1");
-
- TestCustomResource cr2 = TestUtils.testCustomResource();
- cr.getMetadata().setFinalizers(List.of(FINALIZER));
- cr.getMetadata().setGeneration(1L);
- cr.getStatus().setConfigMapStatus("2");
-
- eventSource.eventReceived(ResourceAction.UPDATED, cr, cr2);
- verify(eventHandler, times(1)).handleEvent(any());
-
- cr.getMetadata().setGeneration(1L);
- cr.getStatus().setConfigMapStatus("1");
-
- eventSource.eventReceived(ResourceAction.UPDATED, cr, cr);
- verify(eventHandler, times(1)).handleEvent(any());
- }
-
- @Test
- public void eventFilteredByCustomPredicateAndGenerationAware() {
- var config = new TestControllerConfig(
- FINALIZER,
- true,
- (configuration, oldResource, newResource) -> oldResource == null || !Objects.equals(
- oldResource.getStatus().getConfigMapStatus(),
- newResource.getStatus().getConfigMapStatus()));
-
- final var eventSource = init(new TestController(config));
-
- TestCustomResource cr = TestUtils.testCustomResource();
- cr.getMetadata().setFinalizers(List.of(FINALIZER));
- cr.getMetadata().setGeneration(1L);
- cr.getStatus().setConfigMapStatus("1");
-
- TestCustomResource cr2 = TestUtils.testCustomResource();
- cr.getMetadata().setFinalizers(List.of(FINALIZER));
- cr.getMetadata().setGeneration(2L);
- cr.getStatus().setConfigMapStatus("1");
-
- eventSource.eventReceived(ResourceAction.UPDATED, cr, cr2);
- verify(eventHandler, times(1)).handleEvent(any());
-
- cr.getMetadata().setGeneration(1L);
- cr.getStatus().setConfigMapStatus("2");
-
- eventSource.eventReceived(ResourceAction.UPDATED, cr, cr);
- verify(eventHandler, times(1)).handleEvent(any());
- }
-
- @Test
- public void eventAlwaysFilteredByCustomPredicate() {
- var config = new TestControllerConfig(
- FINALIZER,
- false,
- (configuration, oldResource, newResource) -> !Objects.equals(
- oldResource.getStatus().getConfigMapStatus(),
- newResource.getStatus().getConfigMapStatus()));
-
- final var eventSource = init(new TestController(config));
-
- TestCustomResource cr = TestUtils.testCustomResource();
- cr.getMetadata().setGeneration(1L);
- cr.getStatus().setConfigMapStatus("1");
-
- eventSource.eventReceived(ResourceAction.UPDATED, cr, cr);
- verify(eventHandler, times(0)).handleEvent(any());
- }
-
- private static class TestControllerConfig extends ControllerConfig {
- public TestControllerConfig(String finalizer, boolean generationAware,
- ResourceEventFilter eventFilter) {
- super(finalizer, generationAware, eventFilter, TestCustomResource.class);
- }
- }
-
- private static class ControllerConfig extends
- ResolvedControllerConfiguration {
-
- public ControllerConfig(String finalizer, boolean generationAware,
- ResourceEventFilter eventFilter, Class customResourceClass) {
- super(customResourceClass,
- "test",
- generationAware,
- null,
- null,
- null,
- null,
- null,
- null,
- null, null, null, finalizer, null, null, null, new BaseConfigurationService(), null);
- setEventFilter(eventFilter);
- }
- }
-
- private static class TestController extends Controller {
-
- public TestController(ControllerConfiguration configuration) {
- super(null, configuration, MockKubernetesClient.client(TestCustomResource.class));
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public EventSourceManager getEventSourceManager() {
- return mock(EventSourceManager.class);
- }
- }
-
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/CustomResourceFilterIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/CustomResourceFilterIT.java
deleted file mode 100644
index 6733abaa47..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/CustomResourceFilterIT.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package io.javaoperatorsdk.operator;
-
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.RegisterExtension;
-
-import io.fabric8.kubernetes.api.model.ObjectMeta;
-import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension;
-import io.javaoperatorsdk.operator.sample.customfilter.CustomFilteringTestReconciler;
-import io.javaoperatorsdk.operator.sample.customfilter.CustomFilteringTestResource;
-import io.javaoperatorsdk.operator.sample.customfilter.CustomFilteringTestResourceSpec;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-class CustomResourceFilterIT {
-
- @RegisterExtension
- LocallyRunOperatorExtension operator =
- LocallyRunOperatorExtension.builder().withReconciler(new CustomFilteringTestReconciler())
- .build();
-
- @Test
- void doesCustomFiltering() throws InterruptedException {
- var filtered1 = createTestResource("filtered1", true, false);
- var filtered2 = createTestResource("filtered2", false, true);
- var notFiltered = createTestResource("notfiltered", true, true);
- operator.create(filtered1);
- operator.create(filtered2);
- operator.create(notFiltered);
-
- Thread.sleep(300);
-
- assertThat(
- ((CustomFilteringTestReconciler) operator.getReconcilers().get(0)).getNumberOfExecutions())
- .isEqualTo(1);
- }
-
-
- CustomFilteringTestResource createTestResource(String name, boolean filter1, boolean filter2) {
- CustomFilteringTestResource resource = new CustomFilteringTestResource();
- resource.setMetadata(new ObjectMeta());
- resource.getMetadata().setName(name);
- resource.setSpec(new CustomFilteringTestResourceSpec());
- resource.getSpec().setFilter1(filter1);
- resource.getSpec().setFilter2(filter2);
- return resource;
- }
-
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFilteringTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFilteringTestReconciler.java
deleted file mode 100644
index 1e42e8e6e1..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFilteringTestReconciler.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package io.javaoperatorsdk.operator.sample.customfilter;
-
-import java.util.concurrent.atomic.AtomicInteger;
-
-import io.javaoperatorsdk.operator.api.reconciler.Context;
-import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration;
-import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
-import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
-
-@ControllerConfiguration(eventFilters = {CustomFlagFilter.class, CustomFlagFilter2.class})
-public class CustomFilteringTestReconciler implements Reconciler {
-
- private final AtomicInteger numberOfExecutions = new AtomicInteger(0);
-
- @Override
- public UpdateControl reconcile(CustomFilteringTestResource resource,
- Context context) {
- numberOfExecutions.incrementAndGet();
- return UpdateControl.noUpdate();
- }
-
- public int getNumberOfExecutions() {
- return numberOfExecutions.get();
- }
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFilteringTestResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFilteringTestResource.java
deleted file mode 100644
index dec7b6c40a..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFilteringTestResource.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package io.javaoperatorsdk.operator.sample.customfilter;
-
-import io.fabric8.kubernetes.api.model.Namespaced;
-import io.fabric8.kubernetes.client.CustomResource;
-import io.fabric8.kubernetes.model.annotation.Group;
-import io.fabric8.kubernetes.model.annotation.ShortNames;
-import io.fabric8.kubernetes.model.annotation.Version;
-
-@Group("sample.javaoperatorsdk")
-@Version("v1")
-@ShortNames("cft")
-public class CustomFilteringTestResource
- extends CustomResource
- implements Namespaced {
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFilteringTestResourceSpec.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFilteringTestResourceSpec.java
deleted file mode 100644
index 8bb1f48054..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFilteringTestResourceSpec.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package io.javaoperatorsdk.operator.sample.customfilter;
-
-public class CustomFilteringTestResourceSpec {
-
- private boolean filter1;
-
- private boolean filter2;
-
- public boolean isFilter1() {
- return filter1;
- }
-
- public CustomFilteringTestResourceSpec setFilter1(boolean filter1) {
- this.filter1 = filter1;
- return this;
- }
-
- public boolean isFilter2() {
- return filter2;
- }
-
- public CustomFilteringTestResourceSpec setFilter2(boolean filter2) {
- this.filter2 = filter2;
- return this;
- }
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFlagFilter.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFlagFilter.java
deleted file mode 100644
index bba45a44ac..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFlagFilter.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package io.javaoperatorsdk.operator.sample.customfilter;
-
-import io.javaoperatorsdk.operator.processing.Controller;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
-
-public class CustomFlagFilter implements ResourceEventFilter {
-
- @Override
- public boolean acceptChange(Controller configuration,
- CustomFilteringTestResource oldResource, CustomFilteringTestResource newResource) {
- return newResource.getSpec().isFilter1();
- }
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFlagFilter2.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFlagFilter2.java
deleted file mode 100644
index ae6b5d684f..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/customfilter/CustomFlagFilter2.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package io.javaoperatorsdk.operator.sample.customfilter;
-
-import io.javaoperatorsdk.operator.processing.Controller;
-import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
-
-public class CustomFlagFilter2 implements ResourceEventFilter {
-
- @Override
- public boolean acceptChange(Controller configuration,
- CustomFilteringTestResource oldResource, CustomFilteringTestResource newResource) {
- return newResource.getSpec().isFilter2();
- }
-}