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