
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