class ManagedOpenShiftClient extends NamespacedOpenShiftClientAdapter {

  @Activate
  public void activate(Map<String, Object> properties) {<FILL_FUNCTION_BODY>}

  @Deactivate
  public void deactivate() {
    getClient().close();
  }

}

    final OpenShiftConfigBuilder builder = new OpenShiftConfigBuilder();

    if (properties.containsKey(KUBERNETES_MASTER_SYSTEM_PROPERTY)) {
      builder.withMasterUrl((String) properties.get(KUBERNETES_MASTER_SYSTEM_PROPERTY));
    }
    if (properties.containsKey(KUBERNETES_API_VERSION_SYSTEM_PROPERTY)) {
      builder.withApiVersion((String) properties.get(KUBERNETES_API_VERSION_SYSTEM_PROPERTY));
    }
    if (properties.containsKey(KUBERNETES_NAMESPACE_SYSTEM_PROPERTY)) {
      builder.withNamespace((String) properties.get(KUBERNETES_NAMESPACE_SYSTEM_PROPERTY));
    }
    if (properties.containsKey(KUBERNETES_CA_CERTIFICATE_FILE_SYSTEM_PROPERTY)) {
      builder.withCaCertFile((String) properties.get(KUBERNETES_CA_CERTIFICATE_FILE_SYSTEM_PROPERTY));
    }
    if (properties.containsKey(KUBERNETES_CA_CERTIFICATE_DATA_SYSTEM_PROPERTY)) {
      builder.withCaCertData((String) properties.get(KUBERNETES_CA_CERTIFICATE_DATA_SYSTEM_PROPERTY));
    }
    if (properties.containsKey(KUBERNETES_CLIENT_CERTIFICATE_FILE_SYSTEM_PROPERTY)) {
      builder.withClientCertFile((String) properties.get(KUBERNETES_CLIENT_CERTIFICATE_FILE_SYSTEM_PROPERTY));
    }
    if (properties.containsKey(KUBERNETES_CLIENT_CERTIFICATE_DATA_SYSTEM_PROPERTY)) {
      builder.withClientCertData((String) properties.get(KUBERNETES_CLIENT_CERTIFICATE_DATA_SYSTEM_PROPERTY));
    }
    if (properties.containsKey(KUBERNETES_CLIENT_KEY_FILE_SYSTEM_PROPERTY)) {
      builder.withClientKeyFile((String) properties.get(KUBERNETES_CLIENT_KEY_FILE_SYSTEM_PROPERTY));
    }
    if (properties.containsKey(KUBERNETES_CLIENT_KEY_DATA_SYSTEM_PROPERTY)) {
      builder.withClientKeyData((String) properties.get(KUBERNETES_CLIENT_KEY_DATA_SYSTEM_PROPERTY));
    }
    if (properties.containsKey(KUBERNETES_CLIENT_KEY_ALGO_SYSTEM_PROPERTY)) {
      builder.withClientKeyAlgo((String) properties.get(KUBERNETES_CLIENT_KEY_ALGO_SYSTEM_PROPERTY));
    }
    if (properties.containsKey(KUBERNETES_CLIENT_KEY_PASSPHRASE_SYSTEM_PROPERTY)) {
      builder.withClientKeyPassphrase((String) properties.get(KUBERNETES_CLIENT_KEY_PASSPHRASE_SYSTEM_PROPERTY));
    }
    if (properties.containsKey(KUBERNETES_AUTH_BASIC_USERNAME_SYSTEM_PROPERTY)) {
      builder.withUsername((String) properties.get(KUBERNETES_AUTH_BASIC_USERNAME_SYSTEM_PROPERTY));
    }
    if (properties.containsKey(KUBERNETES_AUTH_BASIC_PASSWORD_SYSTEM_PROPERTY)) {
      builder.withPassword((String) properties.get(KUBERNETES_AUTH_BASIC_PASSWORD_SYSTEM_PROPERTY));
    }
    if (properties.containsKey(KUBERNETES_OAUTH_TOKEN_SYSTEM_PROPERTY)) {
      builder.withOauthToken((String) properties.get(KUBERNETES_OAUTH_TOKEN_SYSTEM_PROPERTY));
    }
    if (properties.containsKey(KUBERNETES_WATCH_RECONNECT_INTERVAL_SYSTEM_PROPERTY)) {
      builder.withWatchReconnectInterval(
          Integer.parseInt((String) properties.get(KUBERNETES_WATCH_RECONNECT_INTERVAL_SYSTEM_PROPERTY)));
    }
    if (properties.containsKey(KUBERNETES_WATCH_RECONNECT_LIMIT_SYSTEM_PROPERTY)) {
      builder
          .withWatchReconnectLimit(Integer.parseInt((String) properties.get(KUBERNETES_WATCH_RECONNECT_LIMIT_SYSTEM_PROPERTY)));
    }
    if (properties.containsKey(KUBERNETES_REQUEST_TIMEOUT_SYSTEM_PROPERTY)) {
      builder.withRequestTimeout(Integer.parseInt((String) properties.get(KUBERNETES_REQUEST_TIMEOUT_SYSTEM_PROPERTY)));
    }
    if (properties.containsKey(KUBERNETES_HTTP_PROXY)) {
      builder.withHttpProxy((String) properties.get(KUBERNETES_HTTP_PROXY));
    }
    if (properties.containsKey(KUBERNETES_HTTPS_PROXY)) {
      builder.withHttpsProxy((String) properties.get(KUBERNETES_HTTPS_PROXY));
    }
    if (properties.containsKey(KUBERNETES_NO_PROXY)) {
      String noProxyProperty = (String) properties.get(KUBERNETES_NO_PROXY);
      builder.withNoProxy(noProxyProperty.split(","));
    }
    if (properties.containsKey(OPENSHIFT_URL_SYSTEM_PROPERTY)) {
      builder.withOpenShiftUrl((String) properties.get(OPENSHIFT_URL_SYSTEM_PROPERTY));
    } else {
      builder.withOpenShiftUrl(URLUtils.join(builder.getMasterUrl(), "oapi", builder.getOapiVersion()));
    }
    if (properties.containsKey(OPENSHIFT_BUILD_TIMEOUT_SYSTEM_PROPERTY)) {
      builder.withBuildTimeout(Integer.parseInt((String) properties.get(OPENSHIFT_BUILD_TIMEOUT_SYSTEM_PROPERTY)));
    } else {
      builder.withBuildTimeout(DEFAULT_BUILD_TIMEOUT);
    }
    if (properties.containsKey(KUBERNETES_WEBSOCKET_PING_INTERVAL_SYSTEM_PROPERTY)) {
      builder.withWebsocketPingInterval(
          Long.parseLong((String) properties.get(KUBERNETES_WEBSOCKET_PING_INTERVAL_SYSTEM_PROPERTY)));
    }

    NamespacedOpenShiftClient delegate = new KubernetesClientBuilder().withConfig(builder.build()).build()
        .adapt(NamespacedOpenShiftClient.class);
    this.init(delegate);
  
<methods>public void <init>() ,public NonNamespaceOperation<APIRequestCount,APIRequestCountList,Resource<APIRequestCount>> apiRequestCounts() ,public MixedOperation<BareMetalHost,BareMetalHostList,Resource<BareMetalHost>> bareMetalHosts() ,public NonNamespaceOperation<BrokerTemplateInstance,BrokerTemplateInstanceList,Resource<BrokerTemplateInstance>> brokerTemplateInstances() ,public MixedOperation<BuildConfig,BuildConfigList,BuildConfigResource<BuildConfig,java.lang.Void,Build>> buildConfigs() ,public MixedOperation<Build,BuildList,io.fabric8.openshift.client.dsl.BuildResource> builds() ,public io.fabric8.openshift.client.dsl.OpenShiftClusterAutoscalingAPIGroupDSL clusterAutoscaling() ,public NonNamespaceOperation<ClusterNetwork,ClusterNetworkList,Resource<ClusterNetwork>> clusterNetworks() ,public MixedOperation<ClusterRoleBinding,ClusterRoleBindingList,Resource<ClusterRoleBinding>> clusterRoleBindings() ,public NonNamespaceOperation<ClusterRole,ClusterRoleList,Resource<ClusterRole>> clusterRoles() ,public NonNamespaceOperation<ComponentStatus,ComponentStatusList,Resource<ComponentStatus>> componentstatuses() ,public io.fabric8.openshift.client.dsl.OpenShiftConfigAPIGroupDSL config() ,public io.fabric8.openshift.client.dsl.OpenShiftConsoleAPIGroupDSL console() ,public MixedOperation<CredentialsRequest,CredentialsRequestList,Resource<CredentialsRequest>> credentialsRequests() ,public User currentUser() ,public MixedOperation<DeploymentConfig,DeploymentConfigList,DeployableScalableResource<DeploymentConfig>> deploymentConfigs() ,public MixedOperation<EgressNetworkPolicy,EgressNetworkPolicyList,Resource<EgressNetworkPolicy>> egressNetworkPolicies() ,public MixedOperation<EgressRouter,EgressRouterList,Resource<EgressRouter>> egressRouters() ,public io.fabric8.kubernetes.client.VersionInfo getOpenShiftV3Version() ,public java.lang.String getOpenShiftV4Version() ,public java.net.URL getOpenshiftUrl() ,public NonNamespaceOperation<Group,GroupList,Resource<Group>> groups() ,public NonNamespaceOperation<HelmChartRepository,HelmChartRepositoryList,Resource<HelmChartRepository>> helmChartRepositories() ,public io.fabric8.openshift.client.dsl.OpenShiftHiveAPIGroupDSL hive() ,public NonNamespaceOperation<HostSubnet,HostSubnetList,Resource<HostSubnet>> hostSubnets() ,public NonNamespaceOperation<Identity,IdentityList,Resource<Identity>> identities() ,public NonNamespaceOperation<io.fabric8.openshift.api.model.miscellaneous.imageregistry.operator.v1.Config,ConfigList,Resource<io.fabric8.openshift.api.model.miscellaneous.imageregistry.operator.v1.Config>> imageRegistryOperatorConfigs() ,public io.fabric8.openshift.client.dsl.NameableCreateOrDeleteable imageSignatures() ,public Namespaceable<Nameable<? extends Gettable<ImageStreamImage>>> imageStreamImages() ,public NamespacedInOutCreateable<ImageStreamImport,ImageStreamImport> imageStreamImports() ,public NamespacedInOutCreateable<ImageStreamMapping,ImageStreamMapping> imageStreamMappings() ,public MixedOperation<ImageStreamTag,ImageStreamTagList,Resource<ImageStreamTag>> imageStreamTags() ,public MixedOperation<ImageStream,ImageStreamList,Resource<ImageStream>> imageStreams() ,public MixedOperation<ImageTag,ImageTagList,Resource<ImageTag>> imageTags() ,public NonNamespaceOperation<Image,ImageList,Resource<Image>> images() ,public io.fabric8.openshift.client.NamespacedOpenShiftClientAdapter inAnyNamespace() ,public io.fabric8.openshift.client.NamespacedOpenShiftClientAdapter inNamespace(java.lang.String) ,public boolean isSupported() ,public io.fabric8.openshift.client.dsl.OpenShiftStorageVersionMigratorApiGroupDSL kubeStorageVersionMigrator() ,public NamespacedInOutCreateable<LocalResourceAccessReview,ResourceAccessReviewResponse> localResourceAccessReviews() ,public NamespacedInOutCreateable<LocalSubjectAccessReview,SubjectAccessReviewResponse> localSubjectAccessReviews() ,public io.fabric8.openshift.client.dsl.OpenShiftMachineAPIGroupDSL machine() ,public io.fabric8.openshift.client.dsl.MachineConfigurationAPIGroupDSL machineConfigurations() ,public MixedOperation<Metal3RemediationTemplate,Metal3RemediationTemplateList,Resource<Metal3RemediationTemplate>> metal3RemediationTemplates() ,public MixedOperation<Metal3Remediation,Metal3RemediationList,Resource<Metal3Remediation>> metal3Remediations() ,public io.fabric8.openshift.client.dsl.OpenShiftMonitoringAPIGroupDSL monitoring() ,public NonNamespaceOperation<NetNamespace,NetNamespaceList,Resource<NetNamespace>> netNamespaces() ,public MixedOperation<NetworkAttachmentDefinition,NetworkAttachmentDefinitionList,Resource<NetworkAttachmentDefinition>> networkAttachmentDefinitions() ,public io.fabric8.openshift.client.NamespacedOpenShiftClientAdapter newInstance() ,public NonNamespaceOperation<OAuthAccessToken,OAuthAccessTokenList,Resource<OAuthAccessToken>> oAuthAccessTokens() ,public NonNamespaceOperation<OAuthAuthorizeToken,OAuthAuthorizeTokenList,Resource<OAuthAuthorizeToken>> oAuthAuthorizeTokens() ,public NonNamespaceOperation<OAuthClientAuthorization,OAuthClientAuthorizationList,Resource<OAuthClientAuthorization>> oAuthClientAuthorizations() ,public NonNamespaceOperation<OAuthClient,OAuthClientList,Resource<OAuthClient>> oAuthClients() ,public io.fabric8.openshift.client.dsl.OpenShiftOperatorAPIGroupDSL operator() ,public io.fabric8.openshift.client.dsl.OpenShiftOperatorHubAPIGroupDSL operatorHub() ,public MixedOperation<OperatorPKI,OperatorPKIList,Resource<OperatorPKI>> operatorPKIs() ,public NamespacedInOutCreateable<PodSecurityPolicyReview,PodSecurityPolicyReview> podSecurityPolicyReviews() ,public NamespacedInOutCreateable<PodSecurityPolicySelfSubjectReview,PodSecurityPolicySelfSubjectReview> podSecurityPolicySelfSubjectReviews() ,public NamespacedInOutCreateable<PodSecurityPolicySubjectReview,PodSecurityPolicySubjectReview> podSecurityPolicySubjectReviews() ,public MixedOperation<ProjectHelmChartRepository,ProjectHelmChartRepositoryList,Resource<ProjectHelmChartRepository>> projectHelmChartRepositories() ,public io.fabric8.openshift.client.dsl.ProjectRequestOperation projectrequests() ,public io.fabric8.openshift.client.dsl.ProjectOperation projects() ,public io.fabric8.openshift.client.dsl.OpenShiftQuotaAPIGroupDSL quotas() ,public NonNamespaceOperation<RangeAllocation,RangeAllocationList,Resource<RangeAllocation>> rangeAllocations() ,public InOutCreateable<ResourceAccessReview,ResourceAccessReviewResponse> resourceAccessReviews() ,public MixedOperation<RoleBindingRestriction,RoleBindingRestrictionList,Resource<RoleBindingRestriction>> roleBindingRestrictions() ,public MixedOperation<RoleBinding,RoleBindingList,Resource<RoleBinding>> roleBindings() ,public MixedOperation<Role,RoleList,Resource<Role>> roles() ,public MixedOperation<Route,RouteList,Resource<Route>> routes() ,public NonNamespaceOperation<SecurityContextConstraints,SecurityContextConstraintsList,Resource<SecurityContextConstraints>> securityContextConstraints() ,public NamespacedInOutCreateable<SelfSubjectRulesReview,SelfSubjectRulesReview> selfSubjectRulesReviews() ,public InOutCreateable<SubjectAccessReview,SubjectAccessReviewResponse> subjectAccessReviews() ,public NamespacedInOutCreateable<SubjectRulesReview,SubjectRulesReview> subjectRulesReviews() ,public boolean supportsOpenShiftAPIGroup(java.lang.String) ,public MixedOperation<TemplateInstance,TemplateInstanceList,Resource<TemplateInstance>> templateInstances() ,public ParameterMixedOperation<Template,TemplateList,io.fabric8.openshift.client.dsl.TemplateResource> templates() ,public io.fabric8.openshift.client.dsl.OpenShiftTunedAPIGroupDSL tuned() ,public InOutCreateable<UserIdentityMapping,UserIdentityMapping> userIdentityMappings() ,public NonNamespaceOperation<UserOAuthAccessToken,UserOAuthAccessTokenList,Resource<UserOAuthAccessToken>> userOAuthAccessTokens() ,public NonNamespaceOperation<User,UserList,Resource<User>> users() ,public io.fabric8.openshift.client.dsl.OpenShiftWhereaboutsAPIGroupDSL whereabouts() ,public FunctionCallable<io.fabric8.openshift.client.NamespacedOpenShiftClient> withRequestConfig(io.fabric8.kubernetes.client.RequestConfig) <variables>