From 126b694bcc4b697cb017b1639f233365baf1e355 Mon Sep 17 00:00:00 2001 From: Steve Hawkins Date: Tue, 11 Oct 2022 08:20:38 -0400 Subject: [PATCH] fix #4408: deprecating addSharedInformerEventListener --- CHANGELOG.md | 1 + .../kubernetes/client/informers/SharedIndexInformer.java | 2 +- .../kubernetes/client/informers/SharedInformerFactory.java | 4 ++++ .../kubernetes/examples/CustomResourceInformerExample.java | 7 +++++-- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 528b06a4162..ef1f27917de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,7 @@ * Module `io.fabric8:tekton-model-triggers` which contained Tekton triggers v1alpha1 model has been removed. We have introduced separate modules `io.fabric8:tekton-model-v1alpha1` and `io.fabric8:tekton-model-v1beta1` for Tekton triggers v1alpha1 and v1beta1 apigroups respectively. Users who are using `io.fabric8:tekton-client` dependency directly should be unaffected by this change. * Fix #4384: javax.validation.* annotations are no longer added by the Java generator. * Fix #3864: Now it's compulsory to provide `etc/io.fabric8.openshift.client.cfg` file in order to load ManagedOpenShiftClient in OSGi environment. +* Fix #4408: deprecated SharedInformerFactory.addSharedInformerEventListener, instead use the SharedIndexInformer.stopped method. Also the signature of SharedIndexInformer.start was changed to a CompletionStage rather than a CompletableFuture. ### 5.12.4 (2022-09-30) diff --git a/kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/informers/SharedIndexInformer.java b/kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/informers/SharedIndexInformer.java index 9b5a071fba5..0d769651953 100644 --- a/kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/informers/SharedIndexInformer.java +++ b/kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/informers/SharedIndexInformer.java @@ -175,7 +175,7 @@ default boolean hasSynced() { /** * Sets the {@link ExceptionHandler} for this informer. For example, exceptionHandler((b, t) -> true)), will - * keep retying no matter what the exception is. + * keep retrying no matter what the exception is. *

* May only be called prior to the informer starting * diff --git a/kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/informers/SharedInformerFactory.java b/kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/informers/SharedInformerFactory.java index 6399ab79b74..59379c335d3 100644 --- a/kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/informers/SharedInformerFactory.java +++ b/kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/informers/SharedInformerFactory.java @@ -81,6 +81,10 @@ SharedIndexInformer sharedIndexInformerFor(Class a */ void stopAllRegisteredInformers(); + /** + * @deprecated use {@link SharedIndexInformer#stopped()} method to get notified when an informer stops. + */ + @Deprecated void addSharedInformerEventListener(SharedInformerEventListener event); } diff --git a/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/CustomResourceInformerExample.java b/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/CustomResourceInformerExample.java index d6df9b1dce2..44543d482cd 100644 --- a/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/CustomResourceInformerExample.java +++ b/kubernetes-examples/src/main/java/io/fabric8/kubernetes/examples/CustomResourceInformerExample.java @@ -56,8 +56,11 @@ public void onDelete(Dummy pod, boolean deletedFinalStateUnknown) { } }); - sharedInformerFactory - .addSharedInformerEventListener(ex -> logger.error("Exception occurred, but caught: {}", ex.getMessage())); + podInformer.stopped().whenComplete((v, t) -> { + if (t != null) { + logger.error("Exception occurred, caught: {}", t.getMessage()); + } + }); logger.info("Starting all registered informers"); sharedInformerFactory.startAllRegisteredInformers();