package co.codewizards.cloudstore.rest.client.transport; import static co.codewizards.cloudstore.core.util.Util.*; import java.net.URL; import co.codewizards.cloudstore.core.repo.transport.AbstractRepoTransportFactory; import co.codewizards.cloudstore.core.repo.transport.RepoTransport; import co.codewizards.cloudstore.core.util.AssertUtil; import co.codewizards.cloudstore.rest.client.ssl.DynamicX509TrustManagerCallback; public class RestRepoTransportFactory extends AbstractRepoTransportFactory { public static final String PROTOCOL_HTTPS = "https"; public static final String PROTOCOL_HTTP = "http"; private volatile Class<? extends DynamicX509TrustManagerCallback> dynamicX509TrustManagerCallbackClass; public Class<? extends DynamicX509TrustManagerCallback> getDynamicX509TrustManagerCallbackClass() { return dynamicX509TrustManagerCallbackClass; } public void setDynamicX509TrustManagerCallbackClass(Class<? extends DynamicX509TrustManagerCallback> dynamicX509TrustManagerCallbackClass) { this.dynamicX509TrustManagerCallbackClass = dynamicX509TrustManagerCallbackClass; } @Override public String getName() { return "REST"; } @Override public String getDescription() { return "Repository on a remote server accessible via REST"; } @Override public boolean isSupported(URL remoteRoot) { return PROTOCOL_HTTP.equals(AssertUtil.assertNotNull(remoteRoot, "remoteRoot").getProtocol()) || PROTOCOL_HTTPS.equals(remoteRoot.getProtocol()); } @Override protected RepoTransport _createRepoTransport() { return new RestRepoTransport(); } }