You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sa...@apache.org on 2012/07/06 14:13:31 UTC
svn commit: r1358153 - in
/incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client:
airavata/AiravataClient.java api/ExecutionManager.java
impl/ExecutionManagerImpl.java
Author: samindaw
Date: Fri Jul 6 12:13:31 2012
New Revision: 1358153
URL: http://svn.apache.org/viewvc?rev=1358153&view=rev
Log:
adding context header builder passing to the API run workflow
Modified:
incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/airavata/AiravataClient.java
incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/ExecutionManager.java
incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerImpl.java
Modified: incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/airavata/AiravataClient.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/airavata/AiravataClient.java?rev=1358153&r1=1358152&r2=1358153&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/airavata/AiravataClient.java (original)
+++ incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/airavata/AiravataClient.java Fri Jul 6 12:13:31 2012
@@ -363,25 +363,28 @@ public class AiravataClient implements A
*/
@Override
public String runWorkflow(String topic, String user, String metadata, String workflowInstanceName) {
+ return runWorkflow(topic, user, metadata, workflowInstanceName, builder);
+ }
+
+ public String runWorkflow(String topic, String user, String metadata, String workflowInstanceName, WorkflowContextHeaderBuilder builder) {
String worflowoutput = null;
- try {
- WorkflowInterpretorStub stub = new WorkflowInterpretorStub(
- getClientConfiguration().getXbayaServiceURL().toString());
- OMElement omElement = AXIOMUtil.stringToOM(XMLUtil.xmlElementToString(builder.getXml()));
- stub._getServiceClient().addHeader(omElement);
- worflowoutput = stub.launchWorkflow(workflow, topic,null);
- runPreWorkflowExecutionTasks(worflowoutput, user, metadata, workflowInstanceName);
+ try {
+ WorkflowInterpretorStub stub = new WorkflowInterpretorStub(
+ getClientConfiguration().getXbayaServiceURL().toString());
+ OMElement omElement = AXIOMUtil.stringToOM(XMLUtil.xmlElementToString(builder.getXml()));
+ stub._getServiceClient().addHeader(omElement);
+ worflowoutput = stub.launchWorkflow(workflow, topic,null);
+ runPreWorkflowExecutionTasks(worflowoutput, user, metadata, workflowInstanceName);
- } catch (AxisFault e) {
+ } catch (AxisFault e) {
} catch (RemoteException e) {
// log.fine(e.getMessage(), e);
} catch (RegistryException e) {
// log.fine(e.getMessage(), e);
} catch (XMLStreamException e) {
- e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
- }
+ e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ }
// log.info("Workflow output : " + worflowoutput);
-
return worflowoutput;
}
@@ -431,9 +434,10 @@ public class AiravataClient implements A
if (metadata != null) {
getRegistry().saveWorkflowExecutionMetadata(topic, metadata);
}
- if (workflowInstanceName!=null) {
- getRegistry().saveWorkflowExecutionName(topic, workflowInstanceName);
+ if (workflowInstanceName==null) {
+ workflowInstanceName=topic;
}
+ getRegistry().saveWorkflowExecutionName(topic, workflowInstanceName);
}
/* (non-Javadoc)
@@ -458,6 +462,11 @@ public class AiravataClient implements A
@Override
public String runWorkflow(final String topic, final NameValue[] inputs, final String user,
final String metadata, final String workflowInstanceName) throws Exception{
+ return runWorkflow(topic, inputs, user, metadata, workflowInstanceName, builder);
+ }
+
+ public String runWorkflow(final String topic, final NameValue[] inputs, final String user,
+ final String metadata, final String workflowInstanceName, final WorkflowContextHeaderBuilder builder) throws Exception{
new Thread(new Runnable() {
public void run() {
try {
@@ -643,18 +652,29 @@ public class AiravataClient implements A
@Override
public String runWorkflow(String workflowTemplateId,List<WorkflowInput> inputs, String user, String metadata, String workflowInstanceName) throws Exception{
Workflow workflowObj = getWorkflow(workflowTemplateId);
- return runWorkflow(workflowObj, inputs, user, metadata,workflowInstanceName);
+ return runWorkflow(workflowObj, inputs, user, metadata,workflowInstanceName,builder);
}
+ public String runWorkflow(String workflowTemplateId,List<WorkflowInput> inputs, String user, String metadata, String workflowInstanceName, WorkflowContextHeaderBuilder builder) throws Exception{
+ Workflow workflowObj = getWorkflow(workflowTemplateId);
+ return runWorkflow(workflowObj, inputs, user, metadata,workflowInstanceName,builder);
+ }
+
public String runWorkflow(Workflow workflow,
List<WorkflowInput> inputs, String workflowInstanceName)
throws GraphException, ComponentException, Exception {
- return runWorkflow(workflow, inputs, null, null, workflowInstanceName);
+ return runWorkflow(workflow, inputs, null, null, workflowInstanceName,builder);
}
-
+
public String runWorkflow(Workflow workflowObj,
List<WorkflowInput> inputs, String user, String metadata, String workflowInstanceName)
throws GraphException, ComponentException, Exception {
+ return runWorkflow(workflowObj, inputs, user, metadata, workflowInstanceName,builder);
+ }
+
+ public String runWorkflow(Workflow workflowObj,
+ List<WorkflowInput> inputs, String user, String metadata, String workflowInstanceName, WorkflowContextHeaderBuilder builder)
+ throws GraphException, ComponentException, Exception {
try {
String workflowString=XMLUtil.xmlElementToString(workflowObj.toXML());
List<WSComponentPort> ports = getWSComponentPortInputs(workflowObj);
@@ -677,7 +697,7 @@ public class AiravataClient implements A
}
workflow=workflowString;
String topic=workflowObj.getName()+"_"+UUID.randomUUID();
- return runWorkflow(topic, inputValues.toArray(new NameValue[]{}), user, metadata, workflowInstanceName);
+ return runWorkflow(topic, inputValues.toArray(new NameValue[]{}), user, metadata, workflowInstanceName,builder);
} catch (PathNotFoundException e) {
e.printStackTrace();
} catch (RegistryException e) {
Modified: incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/ExecutionManager.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/ExecutionManager.java?rev=1358153&r1=1358152&r2=1358153&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/ExecutionManager.java (original)
+++ incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/ExecutionManager.java Fri Jul 6 12:13:31 2012
@@ -23,6 +23,7 @@ package org.apache.airavata.client.api;
import java.util.List;
+import org.apache.airavata.common.workflow.execution.context.WorkflowContextHeaderBuilder;
import org.apache.airavata.workflow.model.wf.Workflow;
import org.apache.airavata.workflow.model.wf.WorkflowInput;
import org.apache.airavata.xbaya.monitor.Monitor;
@@ -59,6 +60,19 @@ public interface ExecutionManager {
*/
public abstract String runWorkflow(String workflowTemplateId,List<WorkflowInput> inputs, String user, String metadata, String workflowInstanceName)throws AiravataAPIInvocationException;
+ /**
+ *
+ * @param workflowTemplateId
+ * @param inputs
+ * @param user
+ * @param metadata
+ * @param workflowInstanceName
+ * @param builder
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public abstract String runWorkflow(String workflowTemplateId,List<WorkflowInput> inputs, String user, String metadata, String workflowInstanceName, WorkflowContextHeaderBuilder builder)throws AiravataAPIInvocationException;
+
/**
*
* @param workflow
@@ -86,5 +100,14 @@ public interface ExecutionManager {
* @throws AiravataAPIInvocationException
*/
public Monitor getWorkflowInstanceMonitor(String topic, MonitorEventListener listener) throws AiravataAPIInvocationException;
+
+ /**
+ * Creates a WorkflowContextHeaderBuilder object that can be used to customize the scheduling of a workflow execution.
+ * Once configured this object run the workflow using
+ * <code>runWorkflow(String workflowTemplateId,List<WorkflowInput> inputs, String user, String metadata, String workflowInstanceName, WorkflowContextHeaderBuilder builder)</code>
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public WorkflowContextHeaderBuilder createWorkflowContextHeader() throws AiravataAPIInvocationException;
}
Modified: incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerImpl.java?rev=1358153&r1=1358152&r2=1358153&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerImpl.java (original)
+++ incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerImpl.java Fri Jul 6 12:13:31 2012
@@ -25,8 +25,10 @@ import java.util.Calendar;
import java.util.List;
import org.apache.airavata.client.airavata.AiravataClient;
+import org.apache.airavata.client.airavata.AiravataClientConfiguration;
import org.apache.airavata.client.api.AiravataAPIInvocationException;
import org.apache.airavata.client.api.ExecutionManager;
+import org.apache.airavata.common.workflow.execution.context.WorkflowContextHeaderBuilder;
import org.apache.airavata.workflow.model.wf.Workflow;
import org.apache.airavata.workflow.model.wf.WorkflowInput;
import org.apache.airavata.xbaya.monitor.Monitor;
@@ -93,4 +95,29 @@ public class ExecutionManagerImpl implem
this.client = client;
}
+ @Override
+ public String runWorkflow(String workflowTemplateId,
+ List<WorkflowInput> inputs, String user, String metadata,
+ String workflowInstanceName, WorkflowContextHeaderBuilder builder)
+ throws AiravataAPIInvocationException {
+ try {
+ return getClient().runWorkflow(workflowTemplateId, inputs, user, metadata, workflowInstanceName,builder);
+ } catch (Exception e) {
+ throw new AiravataAPIInvocationException(e);
+ }
+ }
+
+ @Override
+ public WorkflowContextHeaderBuilder createWorkflowContextHeader()
+ throws AiravataAPIInvocationException {
+ AiravataClientConfiguration config = getClient().getClientConfiguration();
+ try {
+ return new WorkflowContextHeaderBuilder(config.getMessagebrokerURL().toString(),
+ config.getGfacURL().toString(),config.getJcrURL().toString(),null,null,
+ config.getMessageboxURL().toString());
+ } catch (Exception e) {
+ throw new AiravataAPIInvocationException(e);
+ }
+ }
+
}