diff --git a/bootstrapper-maven-plugin/pom.xml b/bootstrapper-maven-plugin/pom.xml
index cf383f0a47..9edf011170 100644
--- a/bootstrapper-maven-plugin/pom.xml
+++ b/bootstrapper-maven-plugin/pom.xml
@@ -22,7 +22,7 @@
io.javaoperatorsdk
java-operator-sdk
- 5.3.4-SNAPSHOT
+ 999-SNAPSHOT
bootstrapper
diff --git a/caffeine-bounded-cache-support/pom.xml b/caffeine-bounded-cache-support/pom.xml
index 873173cd92..be70ab9a2e 100644
--- a/caffeine-bounded-cache-support/pom.xml
+++ b/caffeine-bounded-cache-support/pom.xml
@@ -21,7 +21,7 @@
io.javaoperatorsdk
java-operator-sdk
- 5.3.4-SNAPSHOT
+ 999-SNAPSHOT
caffeine-bounded-cache-support
diff --git a/micrometer-support/pom.xml b/micrometer-support/pom.xml
index 8437197c5a..ae3c4d0be1 100644
--- a/micrometer-support/pom.xml
+++ b/micrometer-support/pom.xml
@@ -21,7 +21,7 @@
io.javaoperatorsdk
java-operator-sdk
- 5.3.4-SNAPSHOT
+ 999-SNAPSHOT
micrometer-support
diff --git a/migration/pom.xml b/migration/pom.xml
index aa4f62a5e4..47c7fe36b0 100644
--- a/migration/pom.xml
+++ b/migration/pom.xml
@@ -21,7 +21,7 @@
io.javaoperatorsdk
java-operator-sdk
- 5.3.4-SNAPSHOT
+ 999-SNAPSHOT
migration
diff --git a/operator-framework-bom/pom.xml b/operator-framework-bom/pom.xml
index 4627e79210..7068fb4987 100644
--- a/operator-framework-bom/pom.xml
+++ b/operator-framework-bom/pom.xml
@@ -21,7 +21,7 @@
io.javaoperatorsdk
operator-framework-bom
- 5.3.4-SNAPSHOT
+ 999-SNAPSHOT
pom
Operator SDK - Bill of Materials
Java SDK for implementing Kubernetes operators
diff --git a/operator-framework-core/pom.xml b/operator-framework-core/pom.xml
index 8fb28c8d73..2356433ca9 100644
--- a/operator-framework-core/pom.xml
+++ b/operator-framework-core/pom.xml
@@ -21,7 +21,7 @@
io.javaoperatorsdk
java-operator-sdk
- 5.3.4-SNAPSHOT
+ 999-SNAPSHOT
../pom.xml
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerManager.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerManager.java
index 6632ce631e..635212564a 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerManager.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerManager.java
@@ -149,7 +149,6 @@ private InformerWrapper createEventSource(
ResourceEventHandler eventHandler,
String namespaceIdentifier) {
final var informerConfig = configuration.getInformerConfig();
-
if (informerConfig.getFieldSelector() != null
&& !informerConfig.getFieldSelector().getFields().isEmpty()) {
for (var f : informerConfig.getFieldSelector().getFields()) {
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/pool/AbstractEventSourcePool.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/pool/AbstractEventSourcePool.java
new file mode 100644
index 0000000000..3c371fbc12
--- /dev/null
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/pool/AbstractEventSourcePool.java
@@ -0,0 +1,3 @@
+package io.javaoperatorsdk.operator.processing.event.source.pool;
+
+public abstract class AbstractEventSourcePool implements EventSourcePool {}
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/pool/EventSourcePool.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/pool/EventSourcePool.java
new file mode 100644
index 0000000000..7712cd2d22
--- /dev/null
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/pool/EventSourcePool.java
@@ -0,0 +1,8 @@
+package io.javaoperatorsdk.operator.processing.event.source.pool;
+
+public interface EventSourcePool {
+
+ T getEventSource(C classifier);
+
+ void removeEventSource(T informerEventSource);
+}
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/pool/InformerClassifier.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/pool/InformerClassifier.java
new file mode 100644
index 0000000000..f0135b0f5f
--- /dev/null
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/pool/InformerClassifier.java
@@ -0,0 +1,10 @@
+package io.javaoperatorsdk.operator.processing.event.source.pool;
+
+import io.fabric8.kubernetes.api.model.HasMetadata;
+import io.javaoperatorsdk.operator.api.config.informer.FieldSelector;
+
+public record InformerClassifier(
+ String labelSelector,
+ String namespaceIdentifier,
+ Class extends HasMetadata> resourceClass,
+ FieldSelector fieldSelector) {}
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/pool/InformerPool.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/pool/InformerPool.java
new file mode 100644
index 0000000000..9185bdb15a
--- /dev/null
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/pool/InformerPool.java
@@ -0,0 +1,38 @@
+package io.javaoperatorsdk.operator.processing.event.source.pool;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import io.fabric8.kubernetes.client.KubernetesClient;
+import io.fabric8.kubernetes.client.informers.SharedIndexInformer;
+
+public class InformerPool
+ extends AbstractEventSourcePool> {
+
+ private final KubernetesClient client;
+
+ private Map> informers = new ConcurrentHashMap<>();
+ private Map, AtomicInteger> counters = new ConcurrentHashMap<>();
+
+ public InformerPool(KubernetesClient client) {
+ this.client = client;
+ }
+
+ @Override
+ public SharedIndexInformer> getEventSource(InformerClassifier classifier) {
+ var actual = informers.get(classifier);
+ if (actual == null) {
+ actual = null; // create Informer
+ }
+ incrementCounter(actual);
+ return null;
+ }
+
+ private synchronized void incrementCounter(SharedIndexInformer> actual) {
+ counters.compute(actual, (k, v) -> new AtomicInteger(v == null ? 0 : v.incrementAndGet()));
+ }
+
+ @Override
+ public void removeEventSource(SharedIndexInformer> informerEventSource) {}
+}
diff --git a/operator-framework-junit/pom.xml b/operator-framework-junit/pom.xml
index e43c38e534..aa18d5c778 100644
--- a/operator-framework-junit/pom.xml
+++ b/operator-framework-junit/pom.xml
@@ -21,7 +21,7 @@
io.javaoperatorsdk
java-operator-sdk
- 5.3.4-SNAPSHOT
+ 999-SNAPSHOT
operator-framework-junit
diff --git a/operator-framework/pom.xml b/operator-framework/pom.xml
index 90fc061b0f..f94dfa757d 100644
--- a/operator-framework/pom.xml
+++ b/operator-framework/pom.xml
@@ -21,7 +21,7 @@
io.javaoperatorsdk
java-operator-sdk
- 5.3.4-SNAPSHOT
+ 999-SNAPSHOT
operator-framework
diff --git a/pom.xml b/pom.xml
index 7fa7964a9b..3059ee2a00 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
io.javaoperatorsdk
java-operator-sdk
- 5.3.4-SNAPSHOT
+ 999-SNAPSHOT
pom
Operator SDK for Java
Java SDK for implementing Kubernetes operators
diff --git a/sample-operators/controller-namespace-deletion/pom.xml b/sample-operators/controller-namespace-deletion/pom.xml
index bcda986cd3..33b0227db6 100644
--- a/sample-operators/controller-namespace-deletion/pom.xml
+++ b/sample-operators/controller-namespace-deletion/pom.xml
@@ -22,7 +22,7 @@
io.javaoperatorsdk
sample-operators
- 5.3.4-SNAPSHOT
+ 999-SNAPSHOT
sample-controller-namespace-deletion
diff --git a/sample-operators/leader-election/pom.xml b/sample-operators/leader-election/pom.xml
index e1df94fa1e..4f896485d1 100644
--- a/sample-operators/leader-election/pom.xml
+++ b/sample-operators/leader-election/pom.xml
@@ -22,7 +22,7 @@
io.javaoperatorsdk
sample-operators
- 5.3.4-SNAPSHOT
+ 999-SNAPSHOT
sample-leader-election
diff --git a/sample-operators/metrics-processing/pom.xml b/sample-operators/metrics-processing/pom.xml
index c67f623e33..0476ea927d 100644
--- a/sample-operators/metrics-processing/pom.xml
+++ b/sample-operators/metrics-processing/pom.xml
@@ -22,7 +22,7 @@
io.javaoperatorsdk
sample-operators
- 5.3.4-SNAPSHOT
+ 999-SNAPSHOT
sample-metrics-processing
@@ -101,11 +101,6 @@
metrics-processing-operator
-
-
- -Dlog4j.configurationFile=/config/log4j2.xml
-
-
diff --git a/sample-operators/mysql-schema/pom.xml b/sample-operators/mysql-schema/pom.xml
index ace10a21ad..7f0d9219f4 100644
--- a/sample-operators/mysql-schema/pom.xml
+++ b/sample-operators/mysql-schema/pom.xml
@@ -22,7 +22,7 @@
io.javaoperatorsdk
sample-operators
- 5.3.4-SNAPSHOT
+ 999-SNAPSHOT
sample-mysql-schema-operator
diff --git a/sample-operators/pom.xml b/sample-operators/pom.xml
index 25a745012c..c8a70b2701 100644
--- a/sample-operators/pom.xml
+++ b/sample-operators/pom.xml
@@ -22,7 +22,7 @@
io.javaoperatorsdk
java-operator-sdk
- 5.3.4-SNAPSHOT
+ 999-SNAPSHOT
sample-operators
diff --git a/sample-operators/tomcat-operator/pom.xml b/sample-operators/tomcat-operator/pom.xml
index 09ca43036c..0417f337f4 100644
--- a/sample-operators/tomcat-operator/pom.xml
+++ b/sample-operators/tomcat-operator/pom.xml
@@ -22,7 +22,7 @@
io.javaoperatorsdk
sample-operators
- 5.3.4-SNAPSHOT
+ 999-SNAPSHOT
sample-tomcat-operator
diff --git a/sample-operators/webpage/pom.xml b/sample-operators/webpage/pom.xml
index 67435ef617..3f23c6f8de 100644
--- a/sample-operators/webpage/pom.xml
+++ b/sample-operators/webpage/pom.xml
@@ -22,7 +22,7 @@
io.javaoperatorsdk
sample-operators
- 5.3.4-SNAPSHOT
+ 999-SNAPSHOT
sample-webpage-operator
diff --git a/test-index-processor/pom.xml b/test-index-processor/pom.xml
index 51e15247ff..2ae7c5f454 100644
--- a/test-index-processor/pom.xml
+++ b/test-index-processor/pom.xml
@@ -22,7 +22,7 @@
io.javaoperatorsdk
java-operator-sdk
- 5.3.4-SNAPSHOT
+ 999-SNAPSHOT
test-index-processor