Skip to content

Commit

Permalink
fix (openshift-client) : Fix OSGi startup exceptions while using Kube…
Browse files Browse the repository at this point in the history
…rnetesClient/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 <rohaan@redhat.com>
  • Loading branch information
rohanKanojia committed Sep 28, 2022
1 parent 394a779 commit d688b8d
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 10 deletions.
Expand Up @@ -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;
Expand Down Expand Up @@ -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<DefaultKubernetesClient> {
Expand Down Expand Up @@ -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;
}
Expand Down
5 changes: 5 additions & 0 deletions openshift-client/pom.xml
Expand Up @@ -33,6 +33,11 @@
osgi.extender;
filter:="(osgi.extender=osgi.serviceloader.registrar)"
</osgi.require-capability>
<osgi.provide-capability>
osgi.serviceloader;
osgi.serviceloader=io.fabric8.kubernetes.client.extension.ExtensionAdapter,
io.fabric8.kubernetes.client.ServiceToURLProvider
</osgi.provide-capability>
<osgi.import>
!org.junit*,
*
Expand Down

0 comments on commit d688b8d

Please sign in to comment.