data-transfer-library/src/test/java/org/gcube/data/transfer/library/TestClientCalls.java

92 lines
3.5 KiB
Java

package org.gcube.data.transfer.library;
import java.net.MalformedURLException;
import java.net.URL;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import org.gcube.data.transfer.library.client.AuthorizationFilter;
import org.gcube.data.transfer.library.client.Client;
import org.gcube.data.transfer.library.faults.CommunicationException;
import org.gcube.data.transfer.library.faults.RemoteServiceException;
import org.gcube.data.transfer.library.faults.ServiceNotFoundException;
import org.gcube.data.transfer.model.Destination;
import org.gcube.data.transfer.model.DestinationClashPolicy;
import org.gcube.data.transfer.model.ServiceConstants;
import org.gcube.data.transfer.model.TransferCapabilities;
import org.gcube.data.transfer.model.TransferRequest;
import org.gcube.data.transfer.model.TransferTicket;
import org.gcube.data.transfer.model.TransferTicket.Status;
import org.gcube.data.transfer.model.options.HttpDownloadOptions;
import org.gcube.data.transfer.model.settings.HttpDownloadSettings;
import org.glassfish.jersey.client.ClientConfig;
import org.junit.BeforeClass;
import org.junit.Test;
public class TestClientCalls {
static String hostname="http://thredds-pre-d4s.d4science.org:80";
// static String hostname="https://geoserver1-spatial-dev.d4science.org";
// static String scope="/gcube/devNext/NextNext";
static String scope="/pred4s/preprod/preVRE";
static Client client;
@BeforeClass
public static void init() throws ServiceNotFoundException{
TokenSetter.set(scope);
client=new Client(hostname);
}
@Test
public void getCapabilties() throws CommunicationException{
System.out.println(client.getCapabilties());
}
@Test
public void doTheTransfer() throws MalformedURLException, RemoteServiceException{
Destination dest=new Destination("outputFile");
dest.setCreateSubfolders(true);
dest.setSubFolder("bla/bla/bllaaa");
dest.setOnExistingFileName(DestinationClashPolicy.ADD_SUFFIX);
dest.setOnExistingSubFolder(DestinationClashPolicy.APPEND);
TransferRequest request= new TransferRequest("", new HttpDownloadSettings(new URL("http://no.com"), HttpDownloadOptions.DEFAULT),dest);
System.out.println("Submitting "+request);
TransferTicket ticket=client.submit(request);
System.out.println("Ticket is "+ticket);
boolean continuePolling=true;
do{
ticket=client.getTransferStatus(ticket.getId());
System.out.println("Status : "+ticket);
continuePolling=ticket.getStatus().equals(Status.PENDING)||ticket.getStatus().equals(Status.TRANSFERRING)||ticket.getStatus().equals(Status.WAITING);
try{
Thread.sleep(1000);
}catch(InterruptedException e){}
}while(continuePolling);
}
@Test
public void directCall(){
javax.ws.rs.client.Client client = ClientBuilder.newClient(new ClientConfig().register(AuthorizationFilter.class));
WebTarget target=client.target(hostname+"/data-transfer-service"+ServiceConstants.APPLICATION_PATH+"Capabilities");
// WebTarget target=client.target(hostname+"/data-transfer-service/gcube/service/Capabilities");
System.out.println("Asking capabilities to target : "+target.getUri());
System.out.println("RESPONSE AS STRING ");
System.out.println(target.
request(MediaType.APPLICATION_JSON_TYPE).get(String.class));
System.out.println("RESPONSE AS OBJ ");
TransferCapabilities cap=target.
request(MediaType.APPLICATION_JSON_TYPE).get(TransferCapabilities.class);
System.out.println(cap.getAvailablePersistenceIds());
}
}