001package co.codewizards.cloudstore.rest.client.transport; 002 003import static co.codewizards.cloudstore.core.util.Util.*; 004 005import java.net.URL; 006 007import co.codewizards.cloudstore.core.repo.transport.AbstractRepoTransportFactory; 008import co.codewizards.cloudstore.core.repo.transport.RepoTransport; 009import co.codewizards.cloudstore.core.util.AssertUtil; 010import co.codewizards.cloudstore.rest.client.ssl.DynamicX509TrustManagerCallback; 011 012public class RestRepoTransportFactory extends AbstractRepoTransportFactory { 013 014 public static final String PROTOCOL_HTTPS = "https"; 015 public static final String PROTOCOL_HTTP = "http"; 016 017 private volatile Class<? extends DynamicX509TrustManagerCallback> dynamicX509TrustManagerCallbackClass; 018 019 public Class<? extends DynamicX509TrustManagerCallback> getDynamicX509TrustManagerCallbackClass() { 020 return dynamicX509TrustManagerCallbackClass; 021 } 022 public void setDynamicX509TrustManagerCallbackClass(Class<? extends DynamicX509TrustManagerCallback> dynamicX509TrustManagerCallbackClass) { 023 this.dynamicX509TrustManagerCallbackClass = dynamicX509TrustManagerCallbackClass; 024 } 025 026 @Override 027 public String getName() { 028 return "REST"; 029 } 030 031 @Override 032 public String getDescription() { 033 return "Repository on a remote server accessible via REST"; 034 } 035 036 @Override 037 public boolean isSupported(URL remoteRoot) { 038 return PROTOCOL_HTTP.equals(AssertUtil.assertNotNull(remoteRoot, "remoteRoot").getProtocol()) 039 || PROTOCOL_HTTPS.equals(remoteRoot.getProtocol()); 040 } 041 042 @Override 043 protected RepoTransport _createRepoTransport() { 044 return new RestRepoTransport(); 045 } 046}