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;
+ }
+
+}