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

eu.clarussecure.proxy.protocol.ProtocolLoader Maven / Gradle / Ivy

The newest version!
package eu.clarussecure.proxy.protocol;

import java.util.Iterator;
import java.util.ServiceLoader;

import eu.clarussecure.proxy.spi.protocol.Configuration;
import eu.clarussecure.proxy.spi.protocol.Protocol;

public class ProtocolLoader {
    private static ProtocolLoader INSTANCE;
    private ServiceLoader loader;

    public static synchronized ProtocolLoader getInstance() {
        if (INSTANCE == null) {
            INSTANCE = new ProtocolLoader();
        }
        return INSTANCE;
    }

    private ProtocolLoader() {
        loader = ServiceLoader.load(Protocol.class);
    }

    public Protocol getProtocol(String protocolName) {
        loader.reload();
        Iterator protocolProviders = loader.iterator();
        while (protocolProviders.hasNext()) {
            Protocol protocol = protocolProviders.next();
            Configuration configuration = protocol.getConfiguration();
            if (protocolName.equalsIgnoreCase(configuration.getProtocolName())) {
                return protocol;
            }
        }
        return null;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy