package org.ourgrid.broker.controlws.gatewayws;
import java.net.URL;
import javax.jws.WebMethod;
import javax.jws.WebService;
import org.ourgrid.broker.controlws.WSJobSpec;
import org.ourgrid.broker.controlws.gatewayws.transferserver.Broker3GTransferServer;
import br.edu.ufcg.lsd.commune.context.ModuleContext;
import br.edu.ufcg.lsd.commune.context.PropertiesFileParser;
@WebService()
public class Broker3GControlWS {
private static final String PROPERTIES_FILENAME = "/resources/webservice/broker3g.properties";
private Broker3GControlWSFacade facade;
private ModuleContext context;
public Broker3GControlWS() {
URL resource = Broker3GContextFactory.class.getResource(PROPERTIES_FILENAME);
this.context = new Broker3GContextFactory(
new PropertiesFileParser(resource.getPath())).createContext();
new Thread(new Broker3GTransferServer(context)).start();
}
private Broker3GControlWSFacade getFacade() {
if (facade == null) {
try {
facade = new Broker3GControlWSFacade(context);
} catch (Throwable e) {
facade = null;
throw new IllegalArgumentException(e);
}
}
return facade;
}
@WebMethod
public int submitJob(WSJobSpec job) {
return getFacade().submitJob(job);
}
@WebMethod
public String getStatus(int jobId) {
return getFacade().getJobStatus(jobId);
}
@WebMethod
public boolean cancelJob(int jobId) {
return getFacade().cancelJob(jobId);
}
@WebMethod
public boolean cleanJob(int jobID) {
return getFacade().cleanJob(jobID);
}
}