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/06/22 23:12:00 UTC

svn commit: r1353029 - in /incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client: airavata/AiravataClient.java api/ExecutionManager.java impl/ExecutionManagerImpl.java impl/UserManagerImpl.java

Author: samindaw
Date: Fri Jun 22 21:11:59 2012
New Revision: 1353029

URL: http://svn.apache.org/viewvc?rev=1353029&view=rev
Log:
API impl contd.

Added:
    incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerImpl.java
    incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/UserManagerImpl.java
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

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=1353029&r1=1353028&r2=1353029&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 Jun 22 21:11:59 2012
@@ -54,6 +54,12 @@ import org.apache.airavata.client.api.Ex
 import org.apache.airavata.client.api.ProvenanceManager;
 import org.apache.airavata.client.api.UserManager;
 import org.apache.airavata.client.api.WorkflowManager;
+import org.apache.airavata.client.impl.AiravataManagerImpl;
+import org.apache.airavata.client.impl.ApplicationManagerImpl;
+import org.apache.airavata.client.impl.ExecutionManagerImpl;
+import org.apache.airavata.client.impl.ProvenanceManagerImpl;
+import org.apache.airavata.client.impl.UserManagerImpl;
+import org.apache.airavata.client.impl.WorkflowManagerImpl;
 import org.apache.airavata.common.registry.api.exception.RegistryException;
 import org.apache.airavata.common.utils.XMLUtil;
 import org.apache.airavata.common.workflow.execution.context.WorkflowContextHeaderBuilder;
@@ -102,10 +108,17 @@ public class AiravataClient implements A
     private MonitorConfiguration monitorConfiguration;
 	private static String workflow = "";
     private static WorkflowContextHeaderBuilder builder;
-
+    private String currentUser;
+    
 	private AiravataRegistry registry;
 
     private Map<String, String> configuration = new HashMap<String, String>();
+	private AiravataManagerImpl airavataManagerImpl;
+	private ApplicationManagerImpl applicationManagerImpl;
+	private WorkflowManagerImpl workflowManagerImpl;
+	private ProvenanceManagerImpl provenanceManagerImpl;
+	private UserManagerImpl userManagerImpl;
+	private ExecutionManagerImpl executionManagerImpl;
 
 	// private NameValue[] configurations = new NameValue[7];
 
@@ -171,6 +184,10 @@ public class AiravataClient implements A
 		builder = new WorkflowContextHeaderBuilder(configuration.get(BROKER),
         		configuration.get(GFAC),configuration.get(JCR),null,null,
         		configuration.get(MSGBOX));
+		
+		//TODO: At some point this should contain the current user the airavata client is 
+		//logged in to the Airavata system
+		currentUser=getClientConfiguration().getJcrUsername();
 	}
 
 	private void updateClientConfiguration(Map<String,String> configuration)
@@ -617,8 +634,22 @@ public class AiravataClient implements A
 	 */
 	@Override
 	public String runWorkflow(String workflowTemplateId,List<WorkflowInput> inputs, String user, String metadata) throws Exception{
+		Workflow workflowObj = getWorkflow(workflowTemplateId);
+		return runWorkflow(workflowObj, inputs, user, metadata);
+	}
+
+	public String runWorkflow(Workflow workflow,
+			List<WorkflowInput> inputs)
+			throws GraphException, ComponentException, Exception {
+		return runWorkflow(workflow, inputs, null, null);
+	}
+	
+	public String runWorkflow(Workflow workflowObj,
+			List<WorkflowInput> inputs, String user, String metadata)
+			throws GraphException, ComponentException, Exception {
 		try {
-			List<WSComponentPort> ports = getWSComponentPortInputs(workflowTemplateId);
+			String workflowString=XMLUtil.xmlElementToString(workflowObj.toXML());
+			List<WSComponentPort> ports = getWSComponentPortInputs(workflowObj);
 			for (WorkflowInput input : inputs) {
 				WSComponentPort port = getWSComponentPort(input.getName(), ports);
 				if (port!=null){
@@ -636,8 +667,8 @@ public class AiravataClient implements A
 				}
 				inputValues.add(nameValue);
 			}
-			workflow=getWorkflowAsString(workflowTemplateId).getString();
-			String topic=workflowTemplateId+"_"+UUID.randomUUID();
+			workflow=workflowString;
+			String topic=workflowObj.getName()+"_"+UUID.randomUUID();
 			return runWorkflow(topic, inputValues.toArray(new NameValue[]{}), user, metadata);
 		} catch (PathNotFoundException e) {
 			e.printStackTrace();
@@ -745,43 +776,55 @@ public class AiravataClient implements A
 
 	@Override
 	public AiravataManager getAiravataManager() {
-		// TODO Auto-generated method stub
-		return null;
+		if (airavataManagerImpl==null) {
+			airavataManagerImpl = new AiravataManagerImpl(this);
+		}
+		return airavataManagerImpl;
 	}
 
 	@Override
 	public ApplicationManager getApplicationManager() {
-		// TODO Auto-generated method stub
-		return null;
+		if (applicationManagerImpl==null) {
+			applicationManagerImpl = new ApplicationManagerImpl(this);
+		}
+		return applicationManagerImpl;
 	}
 
 	@Override
 	public WorkflowManager getWorkflowManager() {
-		// TODO Auto-generated method stub
-		return null;
+		if (workflowManagerImpl==null) {
+			workflowManagerImpl = new WorkflowManagerImpl(this);
+		}
+		return workflowManagerImpl;
 	}
 
 	@Override
 	public ProvenanceManager getProvenanceManager() {
-		// TODO Auto-generated method stub
-		return null;
+		if (provenanceManagerImpl==null) {
+			provenanceManagerImpl = new ProvenanceManagerImpl(this);
+		}
+		return provenanceManagerImpl;
 	}
 
 	@Override
 	public UserManager getUserManager() {
-		// TODO Auto-generated method stub
-		return null;
+		if (userManagerImpl==null) {
+			userManagerImpl = new UserManagerImpl(this);
+		}
+		return userManagerImpl;
 	}
 
 	@Override
 	public ExecutionManager getExecutionManager() {
-		// TODO Auto-generated method stub
-		return null;
+		if (executionManagerImpl==null) {
+			executionManagerImpl = new ExecutionManagerImpl(this);
+		}
+		return executionManagerImpl;
 	}
 
 	@Override
 	public String getCurrentUser() {
-		return getUserManager().getAiravataUser();
+		return currentUser;
 	}
 
 }

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=1353029&r1=1353028&r2=1353029&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 Jun 22 21:11:59 2012
@@ -38,8 +38,8 @@ public interface ExecutionManager {
 	
 	public abstract String runWorkflow(Workflow workflow,List<WorkflowInput> inputs, String user, String metadata)throws AiravataAPIInvocationException;
 	
-	public Monitor getWorkflowExecutionMonitor(String topic)throws AiravataAPIInvocationException;
+	public Monitor getWorkflowIntanceMonitor(String topic)throws AiravataAPIInvocationException;
 
-	public Monitor getWorkflowExecutionMonitor(String topic, MonitorEventListener listener) throws AiravataAPIInvocationException;
+	public Monitor getWorkflowInstanceMonitor(String topic, MonitorEventListener listener) throws AiravataAPIInvocationException;
 
 }

Added: 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=1353029&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerImpl.java (added)
+++ incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerImpl.java Fri Jun 22 21:11:59 2012
@@ -0,0 +1,95 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.client.impl;
+
+import java.util.List;
+
+import org.apache.airavata.client.airavata.AiravataClient;
+import org.apache.airavata.client.api.AiravataAPIInvocationException;
+import org.apache.airavata.client.api.ExecutionManager;
+import org.apache.airavata.workflow.model.wf.Workflow;
+import org.apache.airavata.workflow.model.wf.WorkflowInput;
+import org.apache.airavata.xbaya.monitor.Monitor;
+import org.apache.airavata.xbaya.monitor.MonitorEventListener;
+
+public class ExecutionManagerImpl implements ExecutionManager {
+	private AiravataClient client;
+	
+	public ExecutionManagerImpl(AiravataClient client) {
+		setClient(client);
+	}
+	
+	@Override
+	public String runWorkflow(String workflowTemplateId,
+			List<WorkflowInput> inputs) throws AiravataAPIInvocationException {
+		return runWorkflow(workflowTemplateId, inputs ,getClient().getCurrentUser(),null);
+	}
+
+	@Override
+	public String runWorkflow(Workflow workflow, List<WorkflowInput> inputs)
+			throws AiravataAPIInvocationException {
+		return runWorkflow(workflow,inputs, getClient().getCurrentUser(),null);
+	}
+
+	@Override
+	public String runWorkflow(String workflowTemplateId,
+			List<WorkflowInput> inputs, String user, String metadata)
+			throws AiravataAPIInvocationException {
+		try {
+			return getClient().runWorkflow(workflowTemplateId, inputs, user, metadata);
+		} catch (Exception e) {
+			throw new AiravataAPIInvocationException(e);
+		}
+
+	}
+
+	@Override
+	public String runWorkflow(Workflow workflow, List<WorkflowInput> inputs,
+			String user, String metadata) throws AiravataAPIInvocationException {
+		try {
+			return getClient().runWorkflow(workflow, inputs, user, metadata);
+		} catch (Exception e) {
+			throw new AiravataAPIInvocationException(e);
+		}
+	}
+
+	@Override
+	public Monitor getWorkflowIntanceMonitor(String topic)
+			throws AiravataAPIInvocationException {
+		return getClient().getWorkflowExecutionMonitor(topic);
+	}
+
+	@Override
+	public Monitor getWorkflowInstanceMonitor(String topic,
+			MonitorEventListener listener)
+			throws AiravataAPIInvocationException {
+		return getClient().getWorkflowExecutionMonitor(topic,listener);
+	}
+	
+	public AiravataClient getClient() {
+		return client;
+	}
+	public void setClient(AiravataClient client) {
+		this.client = client;
+	}
+
+}

Added: incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/UserManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/UserManagerImpl.java?rev=1353029&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/UserManagerImpl.java (added)
+++ incubator/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/UserManagerImpl.java Fri Jun 22 21:11:59 2012
@@ -0,0 +1,45 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.client.impl;
+
+import org.apache.airavata.client.airavata.AiravataClient;
+import org.apache.airavata.client.api.UserManager;
+
+public class UserManagerImpl implements UserManager {
+	private AiravataClient client;
+	
+	public UserManagerImpl(AiravataClient client) {
+		setClient(client);
+	}
+	
+	@Override
+	public String getAiravataUser() {
+		return getClient().getCurrentUser();
+	}
+	public AiravataClient getClient() {
+		return client;
+	}
+	public void setClient(AiravataClient client) {
+		this.client = client;
+	}
+
+}