blob: e3460a5efe3e2922922da01e8681ea32cad59505 [file] [log] [blame]
package org.apache.airavata.sample.bes;
import java.util.Calendar;
import org.ggf.schemas.bes.x2006.x08.besFactory.ActivityStateEnumeration;
import org.ggf.schemas.bes.x2006.x08.besFactory.CreateActivityDocument;
import org.ggf.schemas.bes.x2006.x08.besFactory.CreateActivityResponseDocument;
import org.ggf.schemas.bes.x2006.x08.besFactory.TerminateActivitiesResponseType;
import org.w3.x2005.x08.addressing.EndpointReferenceType;
import de.fzj.unicore.bes.client.FactoryClient;
import de.fzj.unicore.wsrflite.xmlbeans.WSUtilities;
import eu.unicore.security.util.client.IClientProperties;
public class CreateAndTerminateActivityTask {
private BESJob job;
private IClientProperties sec;
private String jobId;
public CreateAndTerminateActivityTask(BESJob job, IClientProperties sec) {
this.job = job;
this.sec = sec;
}
public void startJob() throws Exception {
String factoryUrl = job.getFactoryUrl();
EndpointReferenceType eprt = EndpointReferenceType.Factory
.newInstance();
eprt.addNewAddress().setStringValue(factoryUrl);
System.out.println("========================================");
System.out.println(String.format("Job Submitted to %s.\n", factoryUrl));
FactoryClient factory = new FactoryClient(eprt, sec);
CreateActivityDocument cad = CreateActivityDocument.Factory
.newInstance();
cad.addNewCreateActivity().addNewActivityDocument()
.setJobDefinition(job.getJobDoc().getJobDefinition());
CreateActivityResponseDocument response = factory.createActivity(cad);
EndpointReferenceType activityEpr = response
.getCreateActivityResponse().getActivityIdentifier();
jobId = WSUtilities.extractResourceID(activityEpr);
if (jobId == null) {
jobId = new Long(Calendar.getInstance().getTimeInMillis())
.toString();
}
String status;
status = String.format("Job %s is %s.\n", activityEpr.getAddress()
.getStringValue(), factory.getActivityStatus(activityEpr)
.toString()).toString();
System.out.println(status);
TerminateActivitiesResponseType terminateResType = factory.terminateActivity(activityEpr);
Thread.sleep(500);
System.out.println(terminateResType);
if (!(factory.getActivityStatus(activityEpr) == ActivityStateEnumeration.CANCELLED)) {
throw new Exception("Job "+activityEpr.getAddress().getStringValue()+" not CANCELLED");
}
status = String.format("Job %s is %s.\n", activityEpr.getAddress()
.getStringValue(), factory.getActivityStatus(activityEpr)
.toString()).toString();
System.out.println(status);
}
}