From d688b8d32ebc2bde6db13620dc29fe1dfaa6cd5c Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Wed, 28 Sep 2022 17:18:55 +0530 Subject: [PATCH] fix (openshift-client) : Fix OSGi startup exceptions while using KubernetesClient/OpenShiftClient + Remove ExtensionAdapter reference from ManagedKubernetesClient, no provider is exposed for ExtensionAdapter interface in kubernetes-client module. bindExtensionAdapter and unbindExtensionAdapter are throwing NullPointerException during startup. + Add Provide-Capability field in openshift-client bundle configuration in order to resolve SPIFly related NPE (reported in #3890) Signed-off-by: Rohan Kumar --- .../client/osgi/ManagedKubernetesClient.java | 10 ---------- openshift-client/pom.xml | 5 +++++ 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/osgi/ManagedKubernetesClient.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/osgi/ManagedKubernetesClient.java index 257c3762433..deb86418146 100644 --- a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/osgi/ManagedKubernetesClient.java +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/osgi/ManagedKubernetesClient.java @@ -21,7 +21,6 @@ import io.fabric8.kubernetes.client.NamespacedKubernetesClient; import io.fabric8.kubernetes.client.OAuthTokenProvider; import io.fabric8.kubernetes.client.ResourceHandler; -import io.fabric8.kubernetes.client.extension.ExtensionAdapter; import org.apache.felix.scr.annotations.Activate; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.ConfigurationPolicy; @@ -66,7 +65,6 @@ @Service({ KubernetesClient.class, NamespacedKubernetesClient.class }) @References({ @Reference(referenceInterface = io.fabric8.kubernetes.client.ResourceHandler.class, cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, policy = ReferencePolicy.DYNAMIC, bind = "bindResourceHandler", unbind = "unbindResourceHandler"), - @Reference(referenceInterface = ExtensionAdapter.class, cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, policy = ReferencePolicy.DYNAMIC, bind = "bindExtensionAdapter", unbind = "unbindExtensionAdapter"), @Reference(referenceInterface = OAuthTokenProvider.class, cardinality = ReferenceCardinality.OPTIONAL_UNARY, policyOption = ReferencePolicyOption.GREEDY, bind = "bindOAuthTokenProvider", unbind = "unbindOAuthTokenProvider") }) public class ManagedKubernetesClient extends NamespacedKubernetesClientAdapter { @@ -191,14 +189,6 @@ public void unbindResourceHandler(ResourceHandler resourceHandler) { // not used } - public void bindExtensionAdapter(ExtensionAdapter adapter) { - getClient().getAdapters().register(adapter); - } - - public void unbindExtensionAdapter(ExtensionAdapter adapter) { - getClient().getAdapters().unregister(adapter); - } - public void bindOAuthTokenProvider(OAuthTokenProvider provider) { this.provider = provider; } diff --git a/openshift-client/pom.xml b/openshift-client/pom.xml index 5ba889e2f8c..3a846bc0ac9 100644 --- a/openshift-client/pom.xml +++ b/openshift-client/pom.xml @@ -33,6 +33,11 @@ osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)" + + osgi.serviceloader; + osgi.serviceloader=io.fabric8.kubernetes.client.extension.ExtensionAdapter, + io.fabric8.kubernetes.client.ServiceToURLProvider + !org.junit*, *