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 2015/01/22 15:52:19 UTC
[6/9] airavata git commit: Revert "removing previous airavata client
API - AIRAVATA-1371"
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/CredentialStoreSecuritySettingsImpl.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/CredentialStoreSecuritySettingsImpl.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/CredentialStoreSecuritySettingsImpl.java
new file mode 100644
index 0000000..9f2c8a8
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/CredentialStoreSecuritySettingsImpl.java
@@ -0,0 +1,70 @@
+/*
+ *
+ * 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.api.CredentialStoreSecuritySettings;
+
+/**
+ * Implementation of credential store security settings class.
+ */
+public class CredentialStoreSecuritySettingsImpl implements CredentialStoreSecuritySettings {
+
+ private String tokenId;
+ private String portalUserId;
+ private String gatewayId;
+
+ public CredentialStoreSecuritySettingsImpl(String tokenId) {
+ this.tokenId = tokenId;
+ }
+
+ public CredentialStoreSecuritySettingsImpl() {
+ }
+
+ public void setTokenId(String tokenId) {
+ this.tokenId = tokenId;
+ }
+
+ @Override
+ public void setPortalUser(String portalUserName) {
+ this.portalUserId = portalUserName;
+ }
+
+ @Override
+ public String getPortalUser() {
+ return this.portalUserId;
+ }
+
+ @Override
+ public void setGatewayId(String gatewayId) {
+ this.gatewayId = gatewayId;
+ }
+
+ @Override
+ public String getGatewayId() {
+ return this.gatewayId;
+ }
+
+ public String getTokenId() {
+ return tokenId;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerImpl.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerImpl.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerImpl.java
new file mode 100644
index 0000000..e220027
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerImpl.java
@@ -0,0 +1,419 @@
+/*
+ *
+ * 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.AiravataAPIUtils;
+import org.apache.airavata.client.AiravataClient;
+import org.apache.airavata.client.api.ExecutionManager;
+import org.apache.airavata.client.api.ExperimentAdvanceOptions;
+import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
+import org.apache.airavata.client.stub.interpretor.NameValue;
+import org.apache.airavata.client.stub.interpretor.WorkflowInterpretorStub;
+import org.apache.airavata.common.utils.XMLUtil;
+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.ws.monitor.*;
+import org.apache.airavata.ws.monitor.MonitorUtil.EventType;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.impl.llom.util.AXIOMUtil;
+import org.apache.axis2.AxisFault;
+
+import javax.xml.stream.XMLStreamException;
+import java.net.URISyntaxException;
+import java.rmi.RemoteException;
+import java.util.Calendar;
+import java.util.List;
+
+public class ExecutionManagerImpl implements ExecutionManager {
+ private AiravataClient client;
+
+ public ExecutionManagerImpl() {
+ }
+
+ public ExecutionManagerImpl(AiravataClient client) {
+ setClient(client);
+ }
+
+ @Override
+ public String runExperiment(String workflowTemplateId,
+ List<WorkflowInput> inputs) throws AiravataAPIInvocationException {
+ ExperimentAdvanceOptions options = createExperimentAdvanceOptions(workflowTemplateId+"_"+Calendar.getInstance().getTime().toString(), getClient().getCurrentUser(), null);
+ return runExperiment(workflowTemplateId, inputs ,options);
+ }
+
+ @Override
+ public String runExperiment(String workflow,
+ List<WorkflowInput> inputs, ExperimentAdvanceOptions options)
+ throws AiravataAPIInvocationException {
+ return runExperimentGeneral(extractWorkflow(workflow), inputs, options, null);
+ }
+
+
+ @Override
+ public String runExperiment(Workflow workflow, List<WorkflowInput> inputs, ExperimentAdvanceOptions options)
+ throws AiravataAPIInvocationException {
+ return runExperimentGeneral(workflow,inputs, options, null).toString();
+ }
+
+
+ @Override
+ public ExperimentAdvanceOptions createExperimentAdvanceOptions()
+ throws AiravataAPIInvocationException {
+ return new ExperimentAdvanceOptions();
+ }
+
+ @Override
+ public ExperimentAdvanceOptions createExperimentAdvanceOptions(
+ String experimentName, String experimentUser,
+ String experimentMetadata) throws AiravataAPIInvocationException {
+ ExperimentAdvanceOptions options = createExperimentAdvanceOptions();
+ options.setExperimentName(experimentName);
+ options.setExperimentCustomMetadata(experimentMetadata);
+ options.setExperimentExecutionUser(experimentUser);
+ return options;
+ }
+
+ @Override
+ public void waitForExperimentTermination(String experimentId)
+ throws AiravataAPIInvocationException {
+// Monitor experimentMonitor = getExperimentMonitor(experimentId, new EventDataListenerAdapter() {
+// @Override
+// public void notify(EventDataRepository eventDataRepo,
+// EventData eventData) {
+// if (eventData.getType()==EventType.WORKFLOW_TERMINATED){
+// getMonitor().stopMonitoring();
+// }
+// }
+// });
+// experimentMonitor.startMonitoring();
+// try {
+// WorkflowExecutionStatus workflowInstanceStatus = getClient().getProvenanceManager().getWorkflowInstanceStatus(experimentId, experimentId);
+// if (workflowInstanceStatus.getExecutionStatus()==State.FINISHED || workflowInstanceStatus.getExecutionStatus()==State.FAILED){
+// experimentMonitor.stopMonitoring();
+// return;
+// }
+// } catch (AiravataAPIInvocationException e) {
+// //Workflow may not have started yet. Best to use the monitor to follow the progress
+// }
+// experimentMonitor.waitForCompletion();
+ }
+
+ @Override
+ public Monitor getExperimentMonitor(String experimentId)
+ throws AiravataAPIInvocationException {
+ return getExperimentMonitor(experimentId,null);
+ }
+
+ @Override
+ public Monitor getExperimentMonitor(String experimentId,final EventDataListener listener)
+ throws AiravataAPIInvocationException {
+ MonitorConfiguration monitorConfiguration;
+ try {
+ monitorConfiguration = new MonitorConfiguration(
+ getClient().getClientConfiguration().getMessagebrokerURL().toURI(), experimentId,
+ true, getClient().getClientConfiguration().getMessageboxURL().toURI());
+ final Monitor monitor = new Monitor(monitorConfiguration);
+ monitor.printRawMessage(false);
+ if (listener!=null) {
+ monitor.getEventDataRepository().registerEventListener(listener);
+ listener.setExperimentMonitor(monitor);
+ }
+ if (!monitor.getExperimentId().equals(">")){
+ monitor.getEventDataRepository().registerEventListener(new EventDataListenerAdapter() {
+ @Override
+ public void notify(EventDataRepository eventDataRepo, EventData eventData) {
+// if (eventData.getType()==EventType.WORKFLOW_TERMINATED || eventData.getType()==EventType.SENDING_FAULT){
+// monitor.stopMonitoring();
+// }
+ }
+ });
+ }
+ return monitor;
+ } catch (URISyntaxException e) {
+ throw new AiravataAPIInvocationException(e);
+ }
+ }
+
+ @Override
+ public String runExperiment(String workflow, List<WorkflowInput> inputs,
+ ExperimentAdvanceOptions options, EventDataListener listener)
+ throws AiravataAPIInvocationException {
+ return runExperimentGeneral(extractWorkflow(workflow), inputs, options, listener);
+ }
+
+ public AiravataClient getClient() {
+ return client;
+ }
+ public void setClient(AiravataClient client) {
+ this.client = client;
+ }
+
+ private String runExperimentGeneral(Workflow workflowObj, List<WorkflowInput> inputs, ExperimentAdvanceOptions options, EventDataListener listener) throws AiravataAPIInvocationException {
+// try {
+// List<NameValue> inputValues = new ArrayList<NameValue>();
+// for (WorkflowInput input : inputs) {
+// NameValue nameValue = new NameValue();
+// nameValue.setName(input.getName());
+// nameValue.setValue(String.valueOf(input.getValue()==null?input.getDefaultValue():input.getValue()));
+// inputValues.add(nameValue);
+// }
+// String workflowString = XMLUtil.xmlElementToString(workflowObj.toXML());
+// List<WSComponentPort> ports = getWSComponentPortInputs(workflowObj);
+// for (WorkflowInput input : inputs) {
+// WSComponentPort port = getWSComponentPort(input.getName(),
+// ports);
+// if (port != null) {
+// port.setValue(input.getValue());
+// }
+// }
+// for (WSComponentPort port : ports) {
+// NameValue nameValue = new NameValue();
+// nameValue.setName(port.getName());
+// if (port.getValue() == null) {
+// nameValue.setValue(port.getDefaultValue());
+// } else {
+// nameValue.setValue(port.getValue().toString());
+// }
+// inputValues.add(nameValue);
+// }
+// String experimentID=options.getCustomExperimentId();
+// String workflowTemplateName = workflowObj.getName();
+// if (experimentID == null || experimentID.isEmpty()) {
+// experimentID = workflowTemplateName + "_" + UUID.randomUUID();
+// }
+// getClient().getProvenanceManager().setWorkflowInstanceTemplateName(experimentID,workflowTemplateName);
+//
+// //TODO - fix user passing
+// String submissionUser = getClient().getUserManager().getAiravataUser();
+// String executionUser=options.getExperimentExecutionUser();
+// if (executionUser==null){
+// executionUser=submissionUser;
+// }
+// WorkflowContextHeaderBuilder builder = AiravataAPIUtils.createWorkflowContextHeaderBuilder(options, executionUser, submissionUser);
+// runPreWorkflowExecutionTasks(experimentID, executionUser, options.getExperimentMetadata(), options.getExperimentName());
+// NameValue[] inputVals = inputValues.toArray(new NameValue[] {});
+// if (listener!=null){
+// getExperimentMonitor(experimentID, listener).startMonitoring();
+// }
+// launchWorkflow(experimentID, workflowString, inputVals, builder);
+// return experimentID;
+//// } catch (GraphException e) {
+//// throw new AiravataAPIInvocationException(e);
+//// } catch (ComponentException e) {
+//// throw new AiravataAPIInvocationException(e);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException("Error working with Airavata Registry: " + e.getLocalizedMessage(), e);
+// }
+ return null;
+ }
+
+ private Workflow extractWorkflow(String workflowName) throws AiravataAPIInvocationException {
+ Workflow workflowObj = null;
+ //FIXME - There should be a better way to figure-out if the passed string is a name or an xml
+ if(!workflowName.contains("http://airavata.apache.org/xbaya/xwf")){//(getClient().getWorkflowManager().isWorkflowExists(workflowName)) {
+ workflowObj = getClient().getWorkflowManager().getWorkflow(workflowName);
+ }else {
+ try{
+ workflowObj = getClient().getWorkflowManager().getWorkflowFromString(workflowName);
+ }catch (AiravataAPIInvocationException e){
+ getClient().getWorkflowManager().getWorkflow(workflowName);
+ }
+ }
+ return workflowObj;
+ }
+
+// private List<WSComponentPort> getWSComponentPortInputs(Workflow workflow)
+// throws GraphException, ComponentException {
+// workflow.createScript();
+// List<WSComponentPort> inputs = workflow.getInputs();
+// return inputs;
+// }
+//
+// private WSComponentPort getWSComponentPort(String name,
+// List<WSComponentPort> ports) {
+// for (WSComponentPort port : ports) {
+// if (port.getName().equals(name)) {
+// return port;
+// }
+// }
+// return null;
+// }
+
+ private void launchWorkflow(String experimentId, String workflowGraph, NameValue[] inputs,
+ WorkflowContextHeaderBuilder builder) throws AiravataAPIInvocationException {
+ try {
+ builder.getWorkflowMonitoringContext().setExperimentId(experimentId);
+ WorkflowInterpretorStub stub = new WorkflowInterpretorStub(getClient().getAiravataManager().getWorkflowInterpreterServiceURL().toString());
+ OMElement wchOMElement = AXIOMUtil.stringToOM(XMLUtil.xmlElementToString(builder
+ .getXml()));
+ wchOMElement.addAttribute("submissionUser", builder.getSubmissionUser(), wchOMElement.getNamespace());
+ stub._getServiceClient().addHeader(
+ wchOMElement);
+ stub.launchWorkflow(workflowGraph, experimentId, inputs);
+ } catch (AxisFault e) {
+ e.printStackTrace();
+ } catch (XMLStreamException e) {
+ e.printStackTrace();
+ } catch (RemoteException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private void runPreWorkflowExecutionTasks(String experimentId, String user,
+ String metadata, String experimentName) throws AiravataAPIInvocationException {
+// if (user != null) {
+// getClient().getProvenanceManager().setExperimentUser(experimentId, user);
+// }
+// if (metadata != null) {
+// getClient().getProvenanceManager().setExperimentMetadata(experimentId, metadata);
+// }
+// if (experimentName == null) {
+// experimentName = experimentId;
+// }
+// getClient().getProvenanceManager().setExperimentName(experimentId, experimentName);
+
+ }
+
+ public static void main(String[] args) {
+ ExecutionManagerImpl a = new ExecutionManagerImpl(null);
+ try {
+ ExperimentAdvanceOptions b = a.createExperimentAdvanceOptions();
+ b.getCustomWorkflowOutputDataSettings().addNewOutputDataSettings("la", "di", "da", false);
+ WorkflowContextHeaderBuilder c = AiravataAPIUtils.createWorkflowContextHeaderBuilder(b, "sheeeeeeeeeeee","meeee");
+ System.out.println(XMLUtil.xmlElementToString(c.getXml()));
+ } catch (AiravataAPIInvocationException e) {
+ e.printStackTrace();
+ }
+ }
+
+// @Override
+// public List<ExperimentExecutionError> getExperimentExecutionErrors(
+// String experimentId) throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().getExperimentExecutionErrors(experimentId);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+
+// @Override
+// public List<WorkflowExecutionError> getWorkflowExecutionErrors(
+// String experimentId, String workflowInstanceId)
+// throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().getWorkflowExecutionErrors(experimentId,
+//// workflowInstanceId);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+
+// @Override
+// public List<NodeExecutionError> getNodeExecutionErrors(String experimentId,
+// String workflowInstanceId, String nodeId)
+// throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().getNodeExecutionErrors(experimentId,
+//// workflowInstanceId, nodeId);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+
+// @Override
+// public List<ApplicationJobExecutionError> getApplicationJobErrors(String experimentId,
+// String workflowInstanceId, String nodeId, String gfacJobId)
+// throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().getApplicationJobErrors(experimentId,
+// workflowInstanceId, nodeId, gfacJobId);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+// }
+
+// @Override
+// public List<ApplicationJobExecutionError> getApplicationJobErrors(String gfacJobId)
+// throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().getApplicationJobErrors(gfacJobId);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+// }
+
+// @Override
+// public List<ExecutionError> getExecutionErrors(String experimentId,
+// String workflowInstanceId, String nodeId, String gfacJobId,
+// Source... filterBy) throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().getExecutionErrors(experimentId,
+// workflowInstanceId, nodeId, gfacJobId, filterBy);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+// }
+
+// @Override
+// public int addExperimentError(ExperimentExecutionError error)
+// throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().addExperimentError(error);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+// }
+
+// @Override
+// public int addWorkflowExecutionError(WorkflowExecutionError error)
+// throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().addWorkflowExecutionError(error);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+// }
+
+// @Override
+// public int addNodeExecutionError(NodeExecutionError error)
+// throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().addNodeExecutionError(error);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+// }
+
+// @Override
+// public int addApplicationJobExecutionError(ApplicationJobExecutionError error)
+// throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().addApplicationJobExecutionError(error);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+// }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerThriftImpl.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerThriftImpl.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerThriftImpl.java
new file mode 100644
index 0000000..1924b29
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ExecutionManagerThriftImpl.java
@@ -0,0 +1,467 @@
+///*
+// *
+// * 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.AiravataClient;
+//import org.apache.airavata.client.api.*;
+//import org.apache.airavata.client.api.ExperimentAdvanceOptions;
+//import org.apache.airavata.client.api.HPCSettings;
+//import org.apache.airavata.client.api.HostSchedulingSettings;
+//import org.apache.airavata.client.api.NodeSettings;
+//import org.apache.airavata.client.api.OutputDataSettings;
+//import org.apache.airavata.client.api.SecuritySettings;
+//import org.apache.airavata.client.api.WorkflowOutputDataSettings;
+//import org.apache.airavata.client.api.WorkflowSchedulingSettings;
+//import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
+//import org.apache.airavata.client.tools.NameValuePairType;
+//import org.apache.airavata.registry.api.ExecutionErrors;
+//import org.apache.airavata.registry.api.workflow.*;
+//import org.apache.airavata.workflow.model.wf.Workflow;
+//import org.apache.airavata.workflow.model.wf.WorkflowInput;
+//import org.apache.airavata.ws.monitor.*;
+//import org.apache.airavata.interpreter.service.client.ExecutionClient;
+//import org.apache.thrift.TException;
+//
+//import java.net.URISyntaxException;
+//import java.util.*;
+//
+//public class ExecutionManagerThriftImpl implements ExecutionManager {
+// private AiravataClient client;
+//
+// public ExecutionManagerThriftImpl() {
+// }
+//
+// public ExecutionManagerThriftImpl(AiravataClient client) {
+// setClient(client);
+// }
+//
+// public AiravataClient getClient() {
+// return client;
+// }
+//
+// public void setClient(AiravataClient client) {
+// this.client = client;
+// }
+//
+// public String runExperiment(String workflowTemplateId, List<WorkflowInput> inputs) throws AiravataAPIInvocationException {
+// ExperimentAdvanceOptions options = createExperimentAdvanceOptions(workflowTemplateId + "_" + Calendar.getInstance().getTime().toString(), getClient().getCurrentUser(), null);
+// return runExperimentGeneral(workflowTemplateId, inputs, options, null);
+//
+// }
+//
+// public String runExperiment(String workflow, List<WorkflowInput> inputs, ExperimentAdvanceOptions options) throws AiravataAPIInvocationException {
+// return runExperimentGeneral(workflow, inputs, options, null);
+// }
+//
+// public String runExperiment(String workflow, List<WorkflowInput> inputs, ExperimentAdvanceOptions options, EventDataListener listener) throws AiravataAPIInvocationException {
+// return runExperimentGeneral(workflow, inputs, options, listener);
+// }
+//
+// public String runExperiment(Workflow workflow, List<WorkflowInput> inputs, ExperimentAdvanceOptions options) throws AiravataAPIInvocationException {
+// return runExperimentGeneral(workflow.getName(), inputs, options, null);
+// }
+//
+// private String runExperimentGeneral(String wfname, List<WorkflowInput> inputs, ExperimentAdvanceOptions options, EventDataListener listener) throws AiravataAPIInvocationException {
+// Workflow workflowObj = null;
+// try {
+//// workflowObj = extractWorkflow(wfname);
+//// String experimentID = options.getCustomExperimentId();
+//// String workflowTemplateName = workflowObj.getName();
+//// if (experimentID == null || experimentID.isEmpty()) {
+//// experimentID = workflowTemplateName + "_" + UUID.randomUUID();
+//// }
+//// options.setCustomExperimentId(experimentID);
+//// getClient().getProvenanceManager().setWorkflowInstanceTemplateName(experimentID, workflowTemplateName);
+////
+//// String submissionUser = getClient().getUserManager().getAiravataUser();
+//// String executionUser=options.getExperimentExecutionUser();
+//// if (executionUser==null){
+//// executionUser=submissionUser;
+//// }
+//// options.setExperimentExecutionUser(executionUser);
+//// runPreWorkflowExecutionTasks(experimentID, executionUser, options.getExperimentMetadata(), options.getExperimentName());
+////
+//// String workflowContent = extractWorkflowContent(wfname);
+// Map<String, String> workflowInputs = new HashMap<String, String>();
+// for (WorkflowInput workflowInput : inputs){
+// String name = workflowInput.getName();
+// String value = (String)workflowInput.getValue();
+// workflowInputs.put(name, value);
+// }
+//// if (listener!=null){
+//// getExperimentMonitor(experimentID, listener).startMonitoring();
+//// }
+// org.apache.airavata.experiment.execution.ExperimentAdvanceOptions experimentAdvanceOptions = generateAdvancedOptions(options);
+// return getExecutionClient().runExperiment(wfname, workflowInputs, experimentAdvanceOptions);
+// } catch (TException e) {
+// throw new AiravataAPIInvocationException("Error occured while running the workflow", e);
+// }
+// }
+//
+// private void runPreWorkflowExecutionTasks(String experimentId, String user,
+// String metadata, String experimentName) throws AiravataAPIInvocationException {
+// if (user != null) {
+// getClient().getProvenanceManager().setExperimentUser(experimentId, user);
+// }
+// if (metadata != null) {
+// getClient().getProvenanceManager().setExperimentMetadata(experimentId, metadata);
+// }
+// if (experimentName == null) {
+// experimentName = experimentId;
+// }
+// getClient().getProvenanceManager().setExperimentName(experimentId, experimentName);
+// }
+//
+// public Monitor getExperimentMonitor(String experimentId) throws AiravataAPIInvocationException {
+// return getExperimentMonitor(experimentId,null);
+// }
+//
+// public Monitor getExperimentMonitor(String experimentId, EventDataListener listener) throws AiravataAPIInvocationException {
+// MonitorConfiguration monitorConfiguration;
+// try {
+// monitorConfiguration = new MonitorConfiguration(
+// getClient().getClientConfiguration().getMessagebrokerURL().toURI(), experimentId,
+// true, getClient().getClientConfiguration().getMessageboxURL().toURI());
+// final Monitor monitor = new Monitor(monitorConfiguration);
+// monitor.printRawMessage(false);
+// if (listener!=null) {
+// monitor.getEventDataRepository().registerEventListener(listener);
+// listener.setExperimentMonitor(monitor);
+// }
+// if (!monitor.getExperimentId().equals(">")){
+// monitor.getEventDataRepository().registerEventListener(new EventDataListenerAdapter() {
+// public void notify(EventDataRepository eventDataRepo, EventData eventData) {
+// if (eventData.getType()== MonitorUtil.EventType.WORKFLOW_TERMINATED || eventData.getType()== MonitorUtil.EventType.SENDING_FAULT){
+// monitor.stopMonitoring();
+// }
+// }
+// });
+// }
+// return monitor;
+// } catch (URISyntaxException e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+// }
+//
+// public ExperimentAdvanceOptions createExperimentAdvanceOptions() throws AiravataAPIInvocationException {
+// return new ExperimentAdvanceOptions();
+// }
+//
+// public ExperimentAdvanceOptions createExperimentAdvanceOptions(String experimentName, String experimentUser, String experimentMetadata) throws AiravataAPIInvocationException {
+// ExperimentAdvanceOptions options = createExperimentAdvanceOptions();
+// options.setExperimentName(experimentName);
+// options.setExperimentCustomMetadata(experimentMetadata);
+// options.setExperimentExecutionUser(experimentUser);
+// return options;
+// }
+//
+// public void waitForExperimentTermination(String experimentId) throws AiravataAPIInvocationException {
+// Monitor experimentMonitor = getExperimentMonitor(experimentId, new EventDataListenerAdapter() {
+// public void notify(EventDataRepository eventDataRepo,
+// EventData eventData) {
+// if (eventData.getType()== MonitorUtil.EventType.WORKFLOW_TERMINATED){
+// getMonitor().stopMonitoring();
+// }
+// }
+// });
+// experimentMonitor.startMonitoring();
+// try {
+// WorkflowExecutionStatus workflowInstanceStatus = getClient().getProvenanceManager().getWorkflowInstanceStatus(experimentId, experimentId);
+// if (workflowInstanceStatus.getExecutionStatus()== WorkflowExecutionStatus.State.FINISHED || workflowInstanceStatus.getExecutionStatus()== WorkflowExecutionStatus.State.FAILED){
+// experimentMonitor.stopMonitoring();
+// return;
+// }
+// } catch (AiravataAPIInvocationException e) {
+// //Workflow may not have started yet. Best to use the monitor to follow the progress
+// }
+// experimentMonitor.waitForCompletion();
+//
+// }
+//
+// public List<ExperimentExecutionError> getExperimentExecutionErrors(String experimentId) throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().getExperimentExecutionErrors(experimentId);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+// }
+//
+// public List<WorkflowExecutionError> getWorkflowExecutionErrors(String experimentId, String workflowInstanceId) throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().getWorkflowExecutionErrors(experimentId,
+// workflowInstanceId);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+// }
+//
+// public List<NodeExecutionError> getNodeExecutionErrors(String experimentId, String workflowInstanceId, String nodeId) throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().getNodeExecutionErrors(experimentId,
+// workflowInstanceId, nodeId);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+// }
+//
+// public List<ApplicationJobExecutionError> getApplicationJobErrors(String experimentId, String workflowInstanceId, String nodeId, String gfacJobId) throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().getApplicationJobErrors(experimentId,
+// workflowInstanceId, nodeId, gfacJobId);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+// }
+//
+// public List<ApplicationJobExecutionError> getApplicationJobErrors(String gfacJobId) throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().getApplicationJobErrors(gfacJobId);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+// }
+//
+// public List<ExecutionError> getExecutionErrors(String experimentId, String workflowInstanceId, String nodeId, String gfacJobId, ExecutionErrors.Source... filterBy) throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().getExecutionErrors(experimentId,
+// workflowInstanceId, nodeId, gfacJobId, filterBy);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+// }
+//
+// public int addExperimentError(ExperimentExecutionError error) throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().addExperimentError(error);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+// }
+//
+// public int addWorkflowExecutionError(WorkflowExecutionError error) throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().addWorkflowExecutionError(error);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+// }
+//
+// public int addNodeExecutionError(NodeExecutionError error) throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().addNodeExecutionError(error);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+// }
+//
+// public int addApplicationJobExecutionError(ApplicationJobExecutionError error) throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().addApplicationJobExecutionError(error);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+// }
+//
+// public org.apache.airavata.experiment.execution.InterpreterService.Client getExecutionClient (){
+// ExecutionClient executionClient = new ExecutionClient();
+// return executionClient.getInterpreterServiceClient();
+//
+// }
+//
+//
+// private String extractWorkflowContent(String workflowName) throws AiravataAPIInvocationException {
+// if(workflowName.contains("http://airavata.apache.org/xbaya/xwf")){//(getClient().getWorkflowManager().isWorkflowExists(workflowName)) {
+// return workflowName;
+// }else {
+// return getClient().getWorkflowManager().getWorkflowAsString(workflowName);
+// }
+// }
+//
+// private Workflow extractWorkflow(String workflowName) throws AiravataAPIInvocationException {
+// Workflow workflowObj = null;
+// //FIXME - There should be a better way to figure-out if the passed string is a name or an xml
+// if(!workflowName.contains("http://airavata.apache.org/xbaya/xwf")){//(getClient().getWorkflowManager().isWorkflowExists(workflowName)) {
+// workflowObj = getClient().getWorkflowManager().getWorkflow(workflowName);
+// }else {
+// try{
+// workflowObj = getClient().getWorkflowManager().getWorkflowFromString(workflowName);
+// }catch (AiravataAPIInvocationException e){
+// getClient().getWorkflowManager().getWorkflow(workflowName);
+// }
+// }
+// return workflowObj;
+// }
+//
+// private org.apache.airavata.experiment.execution.ExperimentAdvanceOptions generateAdvancedOptions(org.apache.airavata.client.api.ExperimentAdvanceOptions exAdOpt){
+// try {
+// org.apache.airavata.experiment.execution.ExperimentAdvanceOptions advanceOptions = new org.apache.airavata.experiment.execution.ExperimentAdvanceOptions();
+// advanceOptions.setExperimentName(exAdOpt.getExperimentName());
+// advanceOptions.setCustomExperimentId(exAdOpt.getCustomExperimentId());
+// advanceOptions.setExecutionUser(exAdOpt.getExperimentExecutionUser());
+// advanceOptions.setMetadata(exAdOpt.getExperimentMetadata());
+// SecuritySettings customSecuritySettings = exAdOpt.getCustomSecuritySettings();
+// if (customSecuritySettings != null){
+// advanceOptions.setSecuritySettings(generateSecuritySettingsObj(customSecuritySettings));
+// }
+//
+// WorkflowOutputDataSettings outputDataSettings = exAdOpt.getCustomWorkflowOutputDataSettings();
+// List<org.apache.airavata.experiment.execution.OutputDataSettings> dataSettingsList = new ArrayList<org.apache.airavata.experiment.execution.OutputDataSettings>();
+// if (outputDataSettings != null){
+// OutputDataSettings[] outputDataSettingsList = outputDataSettings.getOutputDataSettingsList();
+// for (OutputDataSettings opds : outputDataSettingsList){
+// org.apache.airavata.experiment.execution.OutputDataSettings dataSettings = generateOutputDataObject(opds);
+// dataSettingsList.add(dataSettings);
+// }
+// org.apache.airavata.experiment.execution.WorkflowOutputDataSettings wfOpDSettings = new org.apache.airavata.experiment.execution.WorkflowOutputDataSettings();
+// wfOpDSettings.setOutputDataSettingsList(dataSettingsList);
+// advanceOptions.setWorkflowOutputDataSettings(wfOpDSettings);
+// }
+// WorkflowSchedulingSettings schedulingSettings = exAdOpt.getCustomWorkflowSchedulingSettings();
+// if (schedulingSettings != null){
+// org.apache.airavata.experiment.execution.WorkflowSchedulingSettings settings = generateShedulingSettingsObject(schedulingSettings);
+// advanceOptions.setWorkflowSchedulingSettings(settings);
+// }
+// return advanceOptions;
+// } catch (AiravataAPIInvocationException e) {
+// e.printStackTrace();
+// }
+// return null;
+// }
+//
+// private org.apache.airavata.experiment.execution.SecuritySettings generateSecuritySettingsObj(org.apache.airavata.client.api.SecuritySettings secSettings) {
+// try {
+// org.apache.airavata.experiment.execution.SecuritySettings settings = new org.apache.airavata.experiment.execution.SecuritySettings();
+// org.apache.airavata.experiment.execution.AmazonWebServicesSettings amWSSettings = new org.apache.airavata.experiment.execution.AmazonWebServicesSettings();
+// org.apache.airavata.client.api.AmazonWebServicesSettings amazonWSSettings = secSettings.getAmazonWSSettings();
+// if (amazonWSSettings != null){
+// amWSSettings.setAccessKey(amazonWSSettings.getSecretAccessKey());
+// amWSSettings.setAmiID(amazonWSSettings.getAMIId());
+// amWSSettings.setInstanceID(amazonWSSettings.getInstanceId());
+// amWSSettings.setSecretAccessKey(amazonWSSettings.getSecretAccessKey());
+// amWSSettings.setUsername(amazonWSSettings.getUsername());
+// settings.setAmazonWSSettings(amWSSettings);
+// }
+//
+// org.apache.airavata.experiment.execution.CredentialStoreSecuritySettings credSettings = new org.apache.airavata.experiment.execution.CredentialStoreSecuritySettings();
+// org.apache.airavata.client.api.CredentialStoreSecuritySettings credStoreSecSettings = secSettings.getCredentialStoreSecuritySettings();
+// if (credStoreSecSettings != null){
+// credSettings.setGatewayID(credStoreSecSettings.getGatewayId());
+// credSettings.setPortalUser(credStoreSecSettings.getPortalUser());
+// credSettings.setTokenId(credStoreSecSettings.getTokenId());
+// settings.setCredentialStoreSettings(credSettings);
+// }
+//
+//// org.apache.airavata.experiment.execution.MyProxyRepositorySettings myProxySettings = new org.apache.airavata.experiment.execution.MyProxyRepositorySettings();
+//// org.apache.airavata.client.api.GridMyProxyRepositorySettings proxyRepositorySettings = secSettings.getGridMyProxyRepositorySettings();
+//// if (proxyRepositorySettings != null){
+//// myProxySettings.setLifetime(proxyRepositorySettings.getLifeTime());
+//// myProxySettings.setMyproxyServer(proxyRepositorySettings.getMyProxyServer());
+//// myProxySettings.setPassword(proxyRepositorySettings.getPassword());
+//// myProxySettings.setUserName(proxyRepositorySettings.getUsername());
+//// settings.setMyproxySettings(myProxySettings);
+//// }
+////
+//// org.apache.airavata.experiment.execution.SSHAuthenticationSettings authSettings = new org.apache.airavata.experiment.execution.SSHAuthenticationSettings();
+//// org.apache.airavata.client.api.SSHAuthenticationSettings sshAuthenticationSettings = secSettings.getSSHAuthenticationSettings();
+//// if (sshAuthenticationSettings != null){
+//// authSettings.setAccessKeyID(sshAuthenticationSettings.getAccessKeyId());
+//// authSettings.setSecretAccessKey(sshAuthenticationSettings.getSecretAccessKey());
+//// settings.setSshAuthSettings(authSettings);
+//// }
+// return settings;
+//
+// } catch (AiravataAPIInvocationException e) {
+// e.printStackTrace();
+// }
+// return null;
+// }
+//
+// private org.apache.airavata.experiment.execution.OutputDataSettings generateOutputDataObject(OutputDataSettings opDataSettings){
+// org.apache.airavata.experiment.execution.OutputDataSettings dataSettings = new org.apache.airavata.experiment.execution.OutputDataSettings();
+// dataSettings.setDataRegURL(opDataSettings.getDataRegistryUrl());
+// dataSettings.setIsdataPersisted(opDataSettings.isDataPersistent());
+// dataSettings.setNodeID(opDataSettings.getNodeId());
+// dataSettings.setOutputdataDir(opDataSettings.getOutputDataDirectory());
+// return dataSettings;
+// }
+//
+// private org.apache.airavata.experiment.execution.WorkflowSchedulingSettings generateShedulingSettingsObject (WorkflowSchedulingSettings wfschSettings){
+// org.apache.airavata.experiment.execution.WorkflowSchedulingSettings schedulingSettings = new org.apache.airavata.experiment.execution.WorkflowSchedulingSettings();
+// NodeSettings[] list = wfschSettings.getNodeSettingsList();
+// List<org.apache.airavata.experiment.execution.NodeSettings> nodes = new ArrayList<org.apache.airavata.experiment.execution.NodeSettings>();
+// if (list != null){
+// for (NodeSettings ns : list){
+// org.apache.airavata.experiment.execution.NodeSettings nodeSettings = generateNodeSettingsObject(ns);
+// nodes.add(nodeSettings);
+// }
+// }
+// schedulingSettings.setNodeSettingsList(nodes);
+// return schedulingSettings;
+// }
+//
+// private org.apache.airavata.experiment.execution.NodeSettings generateNodeSettingsObject (NodeSettings settings){
+// org.apache.airavata.experiment.execution.NodeSettings nsettings = new org.apache.airavata.experiment.execution.NodeSettings();
+// nsettings.setNodeId(settings.getNodeId());
+// nsettings.setServiceId(settings.getServiceId());
+// nsettings.setHostSchedulingSettings(generateHostSchSettings(settings.getHostSettings()));
+// nsettings.setHpcSettings(generateHPCSettingsObject(settings.getHPCSettings()));
+//
+// List<NameValuePairType> nameValuePair = settings.getNameValuePair();
+// List<org.apache.airavata.experiment.execution.NameValuePairType> typeList = new ArrayList<org.apache.airavata.experiment.execution.NameValuePairType>();
+// if (nameValuePair != null){
+// for (NameValuePairType nvPair : nameValuePair){
+// org.apache.airavata.experiment.execution.NameValuePairType type = generateNVPairObject(nvPair);
+// typeList.add(type);
+// }
+// }
+// nsettings.setNameValuePairList(typeList);
+// return nsettings;
+// }
+//
+// private org.apache.airavata.experiment.execution.HostSchedulingSettings generateHostSchSettings (HostSchedulingSettings settings){
+// org.apache.airavata.experiment.execution.HostSchedulingSettings hscheduleSettings = new org.apache.airavata.experiment.execution.HostSchedulingSettings();
+// hscheduleSettings.setGatekeeperEPR(settings.getGatekeeperEPR());
+// hscheduleSettings.setHostID(settings.getHostId());
+// hscheduleSettings.setIsWSGramPreferred(settings.isWSGRAMPreffered());
+// return hscheduleSettings;
+// }
+//
+// private org.apache.airavata.experiment.execution.HPCSettings generateHPCSettingsObject (HPCSettings settings){
+// org.apache.airavata.experiment.execution.HPCSettings hsettings = new org.apache.airavata.experiment.execution.HPCSettings();
+// hsettings.setCpuCount(settings.getCPUCount());
+// hsettings.setJobManager(settings.getJobManager());
+// hsettings.setMaxWalltime(settings.getMaxWallTime());
+// hsettings.setNodeCount(settings.getNodeCount());
+// hsettings.setQueueName(settings.getQueueName());
+// return hsettings;
+// }
+//
+// private org.apache.airavata.experiment.execution.NameValuePairType generateNVPairObject (org.apache.airavata.client.tools.NameValuePairType settings){
+// org.apache.airavata.experiment.execution.NameValuePairType nvType = new org.apache.airavata.experiment.execution.NameValuePairType();
+// nvType.setName(settings.getName());
+// nvType.setDescription(settings.getDescription());
+// nvType.setValue(settings.getValue());
+// return nvType;
+// }
+//}
+//
+//
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HPCSettingsImpl.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HPCSettingsImpl.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HPCSettingsImpl.java
new file mode 100644
index 0000000..6dcddd9
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HPCSettingsImpl.java
@@ -0,0 +1,108 @@
+/*
+ *
+ * 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.api.HPCSettings;
+
+public class HPCSettingsImpl implements HPCSettings {
+ private String jobManager;
+ private String queueName;
+ private Integer cpuCount;
+ private Integer nodeCount;
+ private Integer maxWallTime;
+
+ @Override
+ public String getJobManager() {
+ return jobManager;
+ }
+
+ @Override
+ public Integer getCPUCount() {
+ return cpuCount;
+ }
+
+ @Override
+ public Integer getNodeCount() {
+ return nodeCount;
+ }
+
+ @Override
+ public String getQueueName() {
+ return queueName;
+ }
+
+ @Override
+ public Integer getMaxWallTime() {
+ return maxWallTime;
+ }
+
+ @Override
+ public void setJobManager(String jobManager) {
+ this.jobManager=jobManager;
+ }
+
+ @Override
+ public void setCPUCount(Integer cpuCount) {
+ this.cpuCount=cpuCount;
+ }
+
+ @Override
+ public void setNodeCount(Integer nodeCount) {
+ this.nodeCount=nodeCount;
+ }
+
+ @Override
+ public void setQueueName(String queueName) {
+ this.queueName=queueName;
+ }
+
+ @Override
+ public void setMaxWallTime(Integer maxWallTime) {
+ this.maxWallTime=maxWallTime;
+ }
+
+ @Override
+ public void resetJobManager() {
+ this.jobManager=null;
+ }
+
+ @Override
+ public void resetCPUCount() {
+ this.cpuCount=null;
+ }
+
+ @Override
+ public void resetNodeCount() {
+ this.nodeCount=null;
+ }
+
+ @Override
+ public void resetQueueName() {
+ this.queueName=null;
+ }
+
+ @Override
+ public void resetMaxWallTime() {
+ this.maxWallTime=null;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HostSchedulingSettingsImpl.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HostSchedulingSettingsImpl.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HostSchedulingSettingsImpl.java
new file mode 100644
index 0000000..fdcb3a5
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HostSchedulingSettingsImpl.java
@@ -0,0 +1,71 @@
+/*
+ *
+ * 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.api.HostSchedulingSettings;
+
+public class HostSchedulingSettingsImpl implements HostSchedulingSettings {
+ private String hostId;
+ private String gatekeeperEPR;
+ private Boolean wsgramPreffered;
+
+ @Override
+ public String getHostId() {
+ return hostId;
+ }
+
+ @Override
+ public Boolean isWSGRAMPreffered() {
+ return wsgramPreffered;
+ }
+
+ @Override
+ public String getGatekeeperEPR() {
+ return gatekeeperEPR;
+ }
+
+ @Override
+ public void setHostId(String hostId) {
+ this.hostId=hostId;
+ }
+
+ @Override
+ public void setWSGramPreffered(Boolean wsgramPreffered) {
+ this.wsgramPreffered=wsgramPreffered;
+ }
+
+ @Override
+ public void setGatekeeperEPR(String gatekeeperEPR) {
+ this.gatekeeperEPR=gatekeeperEPR;
+ }
+
+ @Override
+ public void resetWSGramPreffered() {
+ this.wsgramPreffered=null;
+ }
+
+ @Override
+ public void resetGatekeeperEPR() {
+ this.gatekeeperEPR=null;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/NodeSettingsImpl.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/NodeSettingsImpl.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/NodeSettingsImpl.java
new file mode 100644
index 0000000..3319e9a
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/NodeSettingsImpl.java
@@ -0,0 +1,108 @@
+/*
+ *
+ * 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.ArrayList;
+import java.util.List;
+
+import org.apache.airavata.client.api.HPCSettings;
+import org.apache.airavata.client.api.HostSchedulingSettings;
+import org.apache.airavata.client.api.NodeSettings;
+import org.apache.airavata.client.tools.NameValuePairType;
+
+public class NodeSettingsImpl implements NodeSettings {
+ private String nodeId;
+ private String serviceId;
+ private HPCSettings hpcSettings;
+ private HostSchedulingSettings hostSchedulingSettings;
+ private List<NameValuePairType> nameValuePair;
+
+ public NodeSettingsImpl(String nodeId) {
+ this(nodeId,null);
+ }
+
+ public NodeSettingsImpl(String nodeId, String serviceId) {
+ setNodeId(nodeId);
+ setServiceId(serviceId);
+ }
+
+ @Override
+ public String getNodeId() {
+ return nodeId;
+ }
+
+ @Override
+ public String getServiceId() {
+ return serviceId;
+ }
+
+ @Override
+ public HostSchedulingSettings getHostSettings() {
+ if (hostSchedulingSettings==null){
+ hostSchedulingSettings=new HostSchedulingSettingsImpl();
+ }
+ return hostSchedulingSettings;
+ }
+
+ @Override
+ public HPCSettings getHPCSettings() {
+ if (hpcSettings==null){
+ hpcSettings=new HPCSettingsImpl();
+ }
+ return hpcSettings;
+ }
+
+ @Override
+ public void setNodeId(String nodeId) {
+ this.nodeId=nodeId;
+ }
+
+ @Override
+ public void setServiceId(String serviceId) {
+ this.serviceId=serviceId;
+ }
+
+ @Override
+ public void setHostSettings(HostSchedulingSettings hostSchedulingSettings) {
+ this.hostSchedulingSettings = hostSchedulingSettings;
+ }
+
+ @Override
+ public void setHPCSettings(HPCSettings hpcSettings) {
+ this.hpcSettings = hpcSettings;
+ }
+
+ @Override
+ public List<NameValuePairType> getNameValuePair() {
+ if (nameValuePair==null){
+ nameValuePair=new ArrayList<NameValuePairType>();
+ }
+ return nameValuePair;
+ }
+
+ @Override
+ public void setNameValuePair(List<NameValuePairType> nameValuePair) {
+ this.nameValuePair = nameValuePair;
+
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/PasswordCallBackImpl.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/PasswordCallBackImpl.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/PasswordCallBackImpl.java
new file mode 100644
index 0000000..57d83a6
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/PasswordCallBackImpl.java
@@ -0,0 +1,39 @@
+///*
+// *
+// * 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.registry.api.PasswordCallback;
+//
+//public class PasswordCallBackImpl implements PasswordCallback {
+// private String username;
+// private String password;
+//
+// public PasswordCallBackImpl(String username, String password){
+// this.username = username;
+// this.password = password;
+// }
+//
+// @Override
+// public String getPassword(String username) {
+// return password;
+// }
+//}
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ProvenanceManagerImpl.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ProvenanceManagerImpl.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ProvenanceManagerImpl.java
new file mode 100644
index 0000000..e922a68
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ProvenanceManagerImpl.java
@@ -0,0 +1,638 @@
+///*
+// *
+// * 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.AiravataClient;
+//import org.apache.airavata.client.api.ProvenanceManager;
+//import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
+//import org.apache.airavata.registry.api.workflow.*;
+//import org.apache.airavata.registry.api.workflow.ApplicationJob.ApplicationJobStatus;
+//import org.apache.airavata.registry.api.workflow.WorkflowExecutionStatus.State;
+//
+//import java.util.*;
+//
+//public class ProvenanceManagerImpl implements ProvenanceManager {
+// private AiravataClient client;
+//
+// public ProvenanceManagerImpl(AiravataClient client) {
+// setClient(client);
+// }
+//
+// @Override
+// public void setWorkflowInstanceNodeInput(WorkflowInstanceNode node, String data)
+// throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().updateWorkflowNodeInput(node, data);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public void setWorkflowInstanceNodeInput(String experimentId,
+// String workflowInstanceId, String nodeId, String data)
+// throws AiravataAPIInvocationException {
+// setWorkflowInstanceNodeInput(new WorkflowInstanceNode(new WorkflowExecution(experimentId, workflowInstanceId), nodeId), data);
+// }
+//
+// @Override
+// public void setWorkflowInstanceNodeOutput(WorkflowInstanceNode node, String data)
+// throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().updateWorkflowNodeOutput(node, data);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public void setWorkflowInstanceNodeOutput(String experimentId,
+// String workflowInstanceId, String nodeId, String data)
+// throws AiravataAPIInvocationException {
+// setWorkflowInstanceNodeOutput(new WorkflowInstanceNode(new WorkflowExecution(experimentId, workflowInstanceId), nodeId), data);
+//
+// }
+//
+// @Override
+// public String getWorkflowInstanceNodeInput(WorkflowInstanceNode node) throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().getWorkflowInstanceNodeData(node.getWorkflowInstance().getWorkflowExecutionId(), node.getNodeId()).getInput();
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public String getWorkflowInstanceNodeInput(String experimentId, String workflowInstanceId, String nodeId)
+// throws AiravataAPIInvocationException {
+// return getWorkflowInstanceNodeInput(new WorkflowInstanceNode(new WorkflowExecution(experimentId, workflowInstanceId), nodeId));
+// }
+//
+// @Override
+// public Map<WorkflowInstanceNode,String> getWorkflowInstanceNodeInput(String workflowName, String nodeId) throws AiravataAPIInvocationException{
+//// try {
+//// List<WorkflowNodeIOData> list = getClient().getRegistryClient().searchWorkflowInstanceNodeInput(".*", workflowName, nodeId);
+//// return groupNodePortData(list);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// private Map<WorkflowInstanceNode, String> groupNodePortData(List<WorkflowNodeIOData> list) {
+// Map<WorkflowInstanceNode,String> portData=new HashMap<WorkflowInstanceNode, String>();
+// for (WorkflowNodeIOData data : list) {
+// portData.put(new WorkflowInstanceNode(new WorkflowExecution(data.getExperimentId(), data.getWorkflowInstanceId()), data.getNodeId()), data.getValue());
+// }
+// return portData;
+// }
+//
+// @Override
+// public String getWorkflowInstanceNodeOutput(WorkflowInstanceNode node) throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().getWorkflowInstanceNodeData(node.getWorkflowInstance().getWorkflowExecutionId(), node.getNodeId()).getOutput();
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public String getWorkflowInstanceNodeOutput(String experimentId, String workflowInstanceId, String nodeId)
+// throws AiravataAPIInvocationException {
+// return getWorkflowInstanceNodeOutput(new WorkflowInstanceNode(new WorkflowExecution(experimentId, workflowInstanceId), nodeId));
+//
+// }
+//
+// @Override
+// public Map<WorkflowInstanceNode,String> getWorkflowInstanceNodeOutput(String workflowName, String nodeId) throws AiravataAPIInvocationException{
+//// try {
+//// List<WorkflowNodeIOData> list = getClient().getRegistryClient().searchWorkflowInstanceNodeOutput(".*", workflowName, nodeId);
+//// return groupNodePortData(list);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public void setWorkflowInstanceStatus(String experimentId, String workflowInstanceId,
+// State status) throws AiravataAPIInvocationException {
+// setWorkflowInstanceStatus(new WorkflowExecutionStatus(new WorkflowExecution(experimentId, workflowInstanceId),status));
+// }
+//
+// @Override
+// public void setWorkflowInstanceStatus(WorkflowExecutionStatus status)
+// throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().updateWorkflowInstanceStatus(status);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+//
+// }
+//
+// @Override
+// public WorkflowExecutionStatus getWorkflowInstanceStatus(
+// String experimentId, String workflowInstanceId)
+// throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().getWorkflowInstanceStatus(experimentId);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public WorkflowExecutionStatus getWorkflowInstanceStatus(
+// WorkflowExecution workflowInstance)
+// throws AiravataAPIInvocationException {
+// return getWorkflowInstanceStatus(workflowInstance.getExperimentId(), workflowInstance.getWorkflowExecutionId());
+// }
+//
+// @Override
+// public void setExperimentUser(String experimentId, String user) throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().updateExperimentExecutionUser(experimentId, user);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public void setExperimentUser(ExperimentUser user)
+// throws AiravataAPIInvocationException {
+// setExperimentUser(user.getExperimentId(), user.getUser());
+// }
+//
+// @Override
+// public ExperimentUser getExperimentUser(String experimentId)throws AiravataAPIInvocationException {
+//// try {
+//// return new ExperimentUser(experimentId,getClient().getRegistryClient().getExperimentExecutionUser(experimentId));
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public void setExperimentMetadata(String experimentId, String metadata)
+// throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().updateExperimentMetadata(experimentId, metadata);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+//
+// }
+//
+// @Override
+// public void setExperimentMetadata(ExperimentMetadata instanceMetadata)
+// throws AiravataAPIInvocationException {
+// setExperimentMetadata(instanceMetadata.getExperimentId(), instanceMetadata.getMetadata());
+// }
+//
+// @Override
+// public ExperimentMetadata getExperimentMetadata(String experimentId)throws AiravataAPIInvocationException {
+//// try {
+//// return new ExperimentMetadata(experimentId, getClient().getRegistryClient().getExperimentMetadata(experimentId));
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public boolean isExperimentNameExist(String experimentName) throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().isExperimentNameExist(experimentName);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return false;
+// }
+//
+// @Override
+// public List<String> getExperimentIdList(String owner) throws AiravataAPIInvocationException{
+//// try {
+//// return getClient().getRegistryClient().getExperimentIdByUser(owner);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public List<String> getExperimentIdList() throws AiravataAPIInvocationException {
+// return getExperimentIdList(getClient().getCurrentUser());
+// }
+//
+// @Override
+// public List<ExperimentData> getWorkflowExperimentDataList()
+// throws AiravataAPIInvocationException {
+// return getWorkflowExperimentDataList(getClient().getCurrentUser());
+// }
+//
+// @Override
+// public List<ExperimentData> getWorkflowExperimentDataList(String user)
+// throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().getExperimentByUser(user);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public List<ExperimentData> getWorkflowExperimentData(String user,
+// int pageSize, int pageNo) throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().getExperimentByUser(user, pageSize, pageNo);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public WorkflowExecutionData getWorkflowInstanceData(String experimentId,
+// String workflowInstanceId) throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().getWorkflowInstanceData(workflowInstanceId);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public WorkflowExecutionData getWorkflowInstanceData(WorkflowExecution workflowInstance)
+// throws AiravataAPIInvocationException {
+// return getWorkflowInstanceData(workflowInstance.getExperimentId(), workflowInstance.getWorkflowExecutionId());
+// }
+//
+// @Override
+// public String[] getWorkflowExecutionOutputNames(String exeperimentId)
+// throws AiravataAPIInvocationException {
+// throw new AiravataAPIInvocationException(new Exception("Not implemented"));
+// }
+//
+// public AiravataClient getClient() {
+// return client;
+// }
+//
+// public void setClient(AiravataClient client) {
+// this.client = client;
+// }
+//
+// @Override
+// public void setExperimentName(String experimentId, String experimentName)
+// throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().updateExperimentName(experimentId, experimentName);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public void setExperimentName(ExperimentName experimentName)
+// throws AiravataAPIInvocationException {
+// setExperimentName(experimentName.getExperimentId(),experimentName.getInstanceName());
+// }
+//
+// @Override
+// public ExperimentName getExperimentName(String experimentId)
+// throws AiravataAPIInvocationException {
+//// try {
+//// return new ExperimentName(experimentId, getClient().getRegistryClient().getExperimentName(experimentId));
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public ExperimentData getWorkflowExperimentData(String experimentId)
+// throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().getExperiment(experimentId);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public void setWorkflowInstanceNodeStatus(String experimentId,
+// String workflowInstaceId, String nodeId, State status)
+// throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().updateWorkflowNodeStatus(workflowInstaceId, nodeId, status);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+//
+// }
+//
+// @Override
+// public void setWorkflowInstanceNodeStatus(NodeExecutionStatus status)
+// throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().updateWorkflowNodeStatus(status);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public NodeExecutionStatus getWorkflowInstanceNodeStatus(
+// String experimentId, String workflowInstaceId, String nodeId)
+// throws AiravataAPIInvocationException {
+// return getWorkflowInstanceNodeStatus(new WorkflowInstanceNode(new WorkflowExecution(experimentId,workflowInstaceId),nodeId));
+// }
+//
+// @Override
+// public NodeExecutionStatus getWorkflowInstanceNodeStatus(
+// WorkflowInstanceNode node) throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().getWorkflowNodeStatus(node);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public void addExperiment(String projectName, String experimentId, String experimentName)
+// throws AiravataAPIInvocationException {
+//// try {
+//// AiravataExperiment experiment = new AiravataExperiment();
+//// experiment.setExperimentId(experimentId);
+//// getClient().getRegistryClient().addExperiment(projectName, experiment);
+//// getClient().getRegistryClient().updateExperimentName(experimentId, experimentName);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public void addWorkflowInstance(String experimentId,
+// WorkflowExecution workflowInstance)
+// throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().addWorkflowInstance(experimentId, workflowInstance.getWorkflowExecutionId(),workflowInstance.getTemplateName());
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+//
+// }
+//
+// @Override
+// public List<WorkflowExecution> getExperimentWorkflowInstances(String experimentId) throws AiravataAPIInvocationException {
+//// try{
+//// return getClient().getRegistryClient().getExperimentWorkflowInstances(experimentId);
+//// }catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public void setWorkflowNodeType(WorkflowInstanceNode node, WorkflowNodeType type) throws AiravataAPIInvocationException {
+//// try{
+//// getClient().getRegistryClient().updateWorkflowNodeType(node, type);
+//// }catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public void setWorkflowInstanceTemplateName(String workflowInstanceId, String templateName) throws AiravataAPIInvocationException {
+//// try{
+//// getClient().getRegistryClient().setWorkflowInstanceTemplateName(workflowInstanceId, templateName);
+//// }catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public void saveWorkflowExecutionOutput(String experimentId, String outputNodeName, String output) throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().saveWorkflowExecutionOutput(experimentId, outputNodeName, output);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public ExperimentData getExperimentMetaInformation(String experimentId)
+// throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().getExperimentMetaInformation(experimentId);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public List<ExperimentData> getAllExperimentMetaInformation(String user)
+// throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().getAllExperimentMetaInformation(user);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public List<ExperimentData> getExperimentDataList()
+// throws AiravataAPIInvocationException {
+// return getWorkflowExperimentDataList();
+// }
+//
+// @Override
+// public List<ExperimentData> getExperimentDataList(String user)
+// throws AiravataAPIInvocationException {
+// return getWorkflowExperimentDataList(user);
+// }
+//
+// @Override
+// public List<ExperimentData> getExperimentData(String user, int pageSize,
+// int pageNo) throws AiravataAPIInvocationException {
+// return getWorkflowExperimentData(user, pageSize, pageNo);
+// }
+//
+// @Override
+// public ExperimentData getExperimentData(String experimentId)
+// throws AiravataAPIInvocationException {
+// return getWorkflowExperimentData(experimentId);
+// }
+//
+// public void updateWorkflowNodeGramData(WorkflowNodeGramData data) throws AiravataAPIInvocationException {
+//// try {
+//// client.getRegistryClient().updateWorkflowNodeGramData(data);
+//// } catch (RegException e) {
+//// throw new AiravataAPIInvocationException(e);
+//// } catch (AiravataConfigurationException e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public boolean isApplicationJobExists(String gfacJobId)
+// throws AiravataAPIInvocationException {
+//// try {
+//// return client.getRegistryClient().isApplicationJobExists(gfacJobId);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return false;
+// }
+//
+// @Override
+// public void addApplicationJob(ApplicationJob job) throws AiravataAPIInvocationException {
+//// try {
+//// client.getRegistryClient().addApplicationJob(job);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public void updateApplicationJob(ApplicationJob job)
+// throws AiravataAPIInvocationException {
+//// try {
+//// client.getRegistryClient().updateApplicationJob(job);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public void updateApplicationJobStatus(String jobId, ApplicationJobStatus status, Date statusUpdateTime)
+// throws AiravataAPIInvocationException {
+//// try {
+//// client.getRegistryClient().updateApplicationJobStatus(jobId, status, statusUpdateTime);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public void updateApplicationJobData(String jobId, String jobdata)
+// throws AiravataAPIInvocationException {
+//// try {
+//// client.getRegistryClient().updateApplicationJobData(jobId, jobdata);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public void updateApplicationJobSubmittedTime(String jobId, Date submitted)
+// throws AiravataAPIInvocationException {
+//// try {
+//// client.getRegistryClient().updateApplicationJobSubmittedTime(jobId, submitted);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public void updateApplicationJobStatusUpdateTime(String jobId, Date completed)
+// throws AiravataAPIInvocationException {
+//// try {
+//// client.getRegistryClient().updateApplicationJobStatusUpdateTime(jobId, completed);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public void updateApplicationJobMetadata(String jobId, String metadata)
+// throws AiravataAPIInvocationException {
+//// try {
+//// client.getRegistryClient().updateApplicationJobMetadata(jobId, metadata);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public ApplicationJob getApplicationJob(String jobId)
+// throws AiravataAPIInvocationException {
+//// try {
+//// return client.getRegistryClient().getApplicationJob(jobId);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public List<ApplicationJob> getApplicationJobsForDescriptors(String serviceDescriptionId,
+// String hostDescriptionId, String applicationDescriptionId)
+// throws AiravataAPIInvocationException {
+//// try {
+//// return client.getRegistryClient().getApplicationJobsForDescriptors(serviceDescriptionId, hostDescriptionId, applicationDescriptionId);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public List<ApplicationJob> getApplicationJobs(String experimentId,
+// String workflowExecutionId, String nodeId)
+// throws AiravataAPIInvocationException {
+//// try {
+//// return client.getRegistryClient().getApplicationJobs(experimentId, workflowExecutionId, nodeId);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public void updateApplicationJobStatus(String jobId,
+// ApplicationJobStatus status) throws AiravataAPIInvocationException {
+// updateApplicationJobStatus(jobId, status, Calendar.getInstance().getTime());
+// }
+//
+// @Override
+// public List<ApplicationJobStatusData> getApplicationJobStatusHistory(
+// String jobId) throws AiravataAPIInvocationException {
+//// try {
+//// return client.getRegistryClient().getApplicationJobStatusHistory(jobId);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+//}
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/SecuritySettingsImpl.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/SecuritySettingsImpl.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/SecuritySettingsImpl.java
new file mode 100644
index 0000000..7a72998
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/SecuritySettingsImpl.java
@@ -0,0 +1,46 @@
+/*
+ *
+ * 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.api.*;
+import org.apache.airavata.client.api.exception.AiravataAPIUnimplementedException;
+
+public class SecuritySettingsImpl implements SecuritySettings {
+ private AmazonWebServicesSettings amazonWebServicesSettings = new AmazonWebServicesSettingsImpl();
+ private CredentialStoreSecuritySettings credentialStoreSecuritySettings = new CredentialStoreSecuritySettingsImpl();
+
+ public AmazonWebServicesSettings getAmazonWSSettings() {
+ return amazonWebServicesSettings;
+ }
+
+ public CredentialStoreSecuritySettings getCredentialStoreSecuritySettings() throws AiravataAPIUnimplementedException {
+ return credentialStoreSecuritySettings;
+ }
+
+ public GridMyProxyRepositorySettings getGridMyProxyRepositorySettings() throws AiravataAPIUnimplementedException {
+ throw new AiravataAPIUnimplementedException("Customizing security is not supported by the client in this binary!!!");
+ }
+
+ public SSHAuthenticationSettings getSSHAuthenticationSettings() throws AiravataAPIUnimplementedException {
+ throw new AiravataAPIUnimplementedException("Customizing security is not supported by the client in this binary!!!");
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/UserManagerImpl.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/UserManagerImpl.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/UserManagerImpl.java
new file mode 100644
index 0000000..06ea94a
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/UserManagerImpl.java
@@ -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.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;
+ }
+
+}