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

org.apache.commons.httpclient.contrib.ssl.HostConfigurationWithHostFactory Maven / Gradle / Ivy

The newest version!
package org.apache.commons.httpclient.contrib.ssl;

import org.apache.commons.httpclient.HostConfiguration;
import org.apache.commons.httpclient.HttpURL;
import org.apache.commons.httpclient.protocol.Protocol;

/**
 * A kind of HostConfiguration that gets its Host from a factory. This is useful
 * for integrating a specialized Protocol or SocketFactory; for example, a
 * SecureSocketFactory that authenticates via SSL. Use
 * HttpClient.setHostConfiguration to install a HostConfigurationWithHostFactory
 * that contains the specialized HostFactory, Protocol or SocketFactory.
 * 

* An alternative is to use Protocol.registerProtocol to register a specialized * Protocol. But that has drawbacks: it makes it hard to integrate modules (e.g. * web applications in a servlet container) with different strategies, because * they share the specialized Protocol (Protocol.PROTOCOLS is static). And it * can't support different Protocols for different hosts or ports (since the * host and port aren't parameters to Protocol.getProtocol). * * @author John Kristian */ class HostConfigurationWithHostFactory extends HostConfiguration { public HostConfigurationWithHostFactory(HttpHostFactory factory) { this.factory = factory; } private HostConfigurationWithHostFactory(HostConfigurationWithHostFactory that) { super(that); this.factory = that.factory; } private final HttpHostFactory factory; public Object clone() { return new HostConfigurationWithHostFactory(this); } private static final String DEFAULT_SCHEME = new String(HttpURL.DEFAULT_SCHEME); public void setHost(String host) { setHost(host, Protocol.getProtocol(DEFAULT_SCHEME).getDefaultPort()); } public void setHost(final String host, int port) { setHost(host, port, DEFAULT_SCHEME); } public synchronized void setHost(String host, int port, String scheme) { setHost(factory.getHost(this, scheme, host, port)); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy