All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.netflix.discovery.AbstractDiscoveryClientOptionalArgs Maven / Gradle / Ivy

The newest version!
package com.netflix.discovery;

import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Optional;
import java.util.Set;

import com.netflix.discovery.shared.transport.jersey.TransportClientFactories;
import jakarta.inject.Provider;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLContext;

import jakarta.inject.Inject;
import com.netflix.appinfo.HealthCheckCallback;
import com.netflix.appinfo.HealthCheckHandler;
import com.netflix.discovery.shared.transport.TransportClientFactory;
import com.netflix.eventbus.spi.EventBus;

/**
 *  The type for client supplied filters (supports jersey3)
 */
public abstract class AbstractDiscoveryClientOptionalArgs {
    Provider healthCheckCallbackProvider;

    Provider healthCheckHandlerProvider;

    PreRegistrationHandler preRegistrationHandler;

    Collection additionalFilters;

    TransportClientFactory transportClientFactory;

    private Set eventListeners;

    private Optional sslContext = Optional.empty();

    private Optional hostnameVerifier = Optional.empty();

    // @Inject
    public void setEventListeners(Set listeners) {
        if (eventListeners == null) {
            eventListeners = new HashSet<>();
        }
        eventListeners.addAll(listeners);
    }
    
    // @Inject
    public void setEventBus(final EventBus eventBus) {
        if (eventListeners == null) {
            eventListeners = new HashSet<>();
        }
        
        eventListeners.add(new EurekaEventListener() {
            @Override
            public void onEvent(EurekaEvent event) {
                eventBus.publish(event);
            }
        });
    }

    // @Inject
    public void setHealthCheckCallbackProvider(Provider healthCheckCallbackProvider) {
        this.healthCheckCallbackProvider = healthCheckCallbackProvider;
    }

    // @Inject
    public void setHealthCheckHandlerProvider(Provider healthCheckHandlerProvider) {
        this.healthCheckHandlerProvider = healthCheckHandlerProvider;
    }

    // @Inject
    public void setPreRegistrationHandler(PreRegistrationHandler preRegistrationHandler) {
        this.preRegistrationHandler = preRegistrationHandler;
    }


    // @Inject
    public void setAdditionalFilters(Collection additionalFilters) {
        this.additionalFilters = additionalFilters;
    }

    public TransportClientFactory getTransportClientFactory() {
        return transportClientFactory;
    }

    public void setTransportClientFactory(TransportClientFactory transportClientFactory) {
        this.transportClientFactory = transportClientFactory;
    }

    Set getEventListeners() {
        return eventListeners == null ? Collections.emptySet() : eventListeners;
    }

    public Optional getSSLContext() {
        return sslContext;
    }

    // @Inject
    public void setSSLContext(SSLContext sslContext) {
        this.sslContext = Optional.of(sslContext);
    }
    
    public Optional getHostnameVerifier() {
        return hostnameVerifier;
    }

    // @Inject
    public void setHostnameVerifier(HostnameVerifier hostnameVerifier) {
        this.hostnameVerifier = Optional.of(hostnameVerifier);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy