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:20 UTC
[7/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/api/WorkflowManager.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/api/WorkflowManager.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/WorkflowManager.java
new file mode 100644
index 0000000..66120ec
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/WorkflowManager.java
@@ -0,0 +1,477 @@
+/*
+ *
+ * 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.api;
+
+import java.net.URI;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
+import org.apache.airavata.client.api.exception.WorkflowAlreadyExistsException;
+import org.apache.airavata.workflow.model.wf.Workflow;
+import org.apache.airavata.workflow.model.wf.WorkflowData;
+import org.apache.airavata.workflow.model.wf.WorkflowInput;
+
+public interface WorkflowManager {
+
+ //privilledged API
+
+ /**
+ * Save the workflow under the given user
+ * @param workflowAsString The workflow as a string.
+ * @param owner Under which user workflow should be added. This is a privileged method and usually
+ * only admin calls this.
+ * @return <code>true</code> if successful else <code>false</code>.
+ * @throws AiravataAPIInvocationException If an error occurred while saving the workflow.
+ * @deprecated Use {@see #addOwnerWorkflow(String workflowAsString, String owner)} and
+ * {@see #updateOwnerWorkflow(String workflowAsString, String owner)} methods.
+ */
+ @Deprecated
+ public boolean saveWorkflow(String workflowAsString, String owner) throws AiravataAPIInvocationException;
+
+ /**
+ * Adds a new workflow. Workflow is added to users private space. i.e. only user who added the
+ * workflow will be able to retrieve it.
+ * @param workflowAsString The new workflow to add as a string.
+ * @param owner Under which user workflow should be added. This is a privileged method and usually
+ * only admin calls this.
+ * @throws AiravataAPIInvocationException If an error occurred while adding a new workflow.
+ * @throws WorkflowAlreadyExistsException If adding workflow already exists for the given owner.
+ */
+ public void addOwnerWorkflow (String workflowAsString, String owner) throws WorkflowAlreadyExistsException,
+ AiravataAPIInvocationException;
+
+ /**
+ * Adds a new workflow. Workflow is added to users private space. i.e. only user who added the
+ * workflow will be able to retrieve it.
+ * @param workflowPath File path of the workflow.
+ * @param owner Under which user workflow should be added. This is a privileged method and usually
+ * only admin calls this.
+ * @throws AiravataAPIInvocationException If an error occurred while adding a new workflow.
+ * @throws WorkflowAlreadyExistsException If adding workflow already exists for the given owner.
+ */
+ public void addOwnerWorkflow (URI workflowPath, String owner) throws WorkflowAlreadyExistsException,
+ AiravataAPIInvocationException;
+
+ /**
+ * Adds a new workflow. Workflow is added to users private space. i.e. only user who added the
+ * workflow will be able to retrieve it.
+ * @param workflow The new workflow to add.
+ * @param owner Under which user workflow should be added. This is a privileged method and usually
+ * only admin calls this.
+ * @throws AiravataAPIInvocationException If an error occurred while adding a new workflow.
+ * @throws WorkflowAlreadyExistsException If adding workflow already exists for the given owner.
+ */
+ public void addOwnerWorkflow (Workflow workflow, String owner) throws WorkflowAlreadyExistsException,
+ AiravataAPIInvocationException;
+
+ /**
+ * Updates a given workflow. Only user who added the workflow will be able to update it.
+ * @param workflowPath File path of the workflow.
+ * @param owner Under which user workflow should be added. This is a privileged method and usually
+ * only admin calls this.
+ * @throws AiravataAPIInvocationException If an error occurred while updating the workflow.
+ */
+ public void updateOwnerWorkflow (URI workflowPath, String owner) throws AiravataAPIInvocationException;
+
+ /**
+ * Updates a given workflow. Only user who added the workflow will be able to update it.
+ * @param workflowAsString The workflow to update as a string. Workflow is uniquely identified by <xgr:id> tag..
+ * @param owner Under which user workflow should be added. This is a privileged method and usually
+ * only admin calls this.
+ * @throws AiravataAPIInvocationException If an error occurred while updating the workflow.
+ */
+ public void updateOwnerWorkflow (String workflowAsString, String owner) throws AiravataAPIInvocationException;
+
+ /**
+ * Save the workflow under the given user
+ * @param workflow The workflow as a string.
+ * @param owner Under which user workflow should be added. This is a privileged method and usually
+ * only admin calls this.
+ * @return <code>true</code> if successful else <code>false</code>.
+ * @throws AiravataAPIInvocationException If an error occurred while saving the workflow.
+ * @deprecated Use {@see #addOwnerWorkflow(Workflow workflow, String owner)} and
+ * {@see #updateOwnerWorkflow(Workflow workflow, String owner)} methods.
+ */
+ @Deprecated
+ public boolean saveWorkflow(Workflow workflow, String owner) throws AiravataAPIInvocationException;
+
+
+
+ /**
+ * Updates a given workflow. Only user who added the workflow will be able to update it.
+ * @param workflow The workflow to update. Workflow is uniquely identified by <xgr:id> tag..
+ * @param owner Under which user workflow should be added. This is a privileged method and usually
+ * only admin calls this.
+ * @throws AiravataAPIInvocationException If an error occurred while updating the workflow.
+ */
+ public void updateOwnerWorkflow (Workflow workflow, String owner) throws AiravataAPIInvocationException;
+
+ /**
+ * Retrieve workflows saved by the given user
+ * @param owner
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public List<Workflow> getWorkflows(String owner) throws AiravataAPIInvocationException;
+
+ /**
+ * Retrieve workflow templace ids saved by the given user
+ * @param owner
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public List<String> getWorkflowTemplateIds(String owner) throws AiravataAPIInvocationException;
+
+ /**
+ * Retrieve a given workflow saved by the given user
+ * @param workflowName
+ * @param owner
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public Workflow getWorkflow(String workflowName, String owner) throws AiravataAPIInvocationException;
+
+ /**
+ * Retrive the given workflow saved by the given user as a string
+ * @param workflowName
+ * @param owner
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public String getWorkflowAsString(String workflowName, String owner) throws AiravataAPIInvocationException;
+
+ /**
+ * Delete the workflow saved by the given user
+ * @param workflowName
+ * @param owner
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public boolean deleteWorkflow(String workflowName, String owner) throws AiravataAPIInvocationException;
+
+ //user api
+
+ /**
+ * Save the workflow
+ * @param workflowAsString Workflow as a string.
+ * @deprecated Use {@see #addWorkflow(String workflowAsString)} and
+ * {@see #updateWorkflow(String workflowAsString)} methods.
+ * @throws AiravataAPIInvocationException
+ */
+ @Deprecated
+ public boolean saveWorkflow(String workflowAsString) throws AiravataAPIInvocationException;
+
+ /**
+ * Save the workflow as public
+ * @param workflowAsString Workflow as a string.
+ * @deprecated Use {@see #addWorkflowAsPublic(String workflowAsString)} and
+ * {@see #updateWorkflowAsPublic(String workflowAsString)} methods.
+ * @throws AiravataAPIInvocationException
+ */
+ @Deprecated
+ public boolean saveWorkflowAsPublic(String workflowAsString) throws AiravataAPIInvocationException;
+
+ /**
+ * Save the workflow
+ * @param workflow {@see Workflow} object to save.
+ * @deprecated Use {@see #addWorkflow(Workflow workflow)} and
+ * {@see #updateWorkflow(Workflow workflow)} methods.
+ * @throws AiravataAPIInvocationException
+ */
+ @Deprecated
+ public boolean saveWorkflow(Workflow workflow) throws AiravataAPIInvocationException;
+
+ /**
+ * Adds a new workflow. Workflow is added to users private space. i.e. only user who added the
+ * workflow will be able to retrieve it.
+ * @param workflowAsString The new workflow to add and its content as a string.
+ * @throws AiravataAPIInvocationException If an error occurred while adding a new workflow.
+ */
+ public void addWorkflowAsPublic (String workflowAsString) throws WorkflowAlreadyExistsException,
+ AiravataAPIInvocationException;
+
+ /**
+ * Updates a given workflow. Only user who added the workflow will be able to update it.
+ * @param workflowAsString The workflow to update. Workflow is uniquely identified by <xgr:id> tag.
+ * @throws AiravataAPIInvocationException If an error occurred while updating the workflow.
+ */
+ public void updateWorkflowAsPublic (String workflowAsString) throws AiravataAPIInvocationException;
+
+ /**
+ * Adds a new workflow. Workflow is added to users private space. i.e. only user who added the
+ * workflow will be able to retrieve it.
+ * @param workflowUri Where the workflow file (xml file) exists.
+ * @throws AiravataAPIInvocationException If an error occurred while adding a new workflow.
+ */
+ public void addWorkflowAsPublic (URI workflowUri) throws WorkflowAlreadyExistsException,
+ AiravataAPIInvocationException;
+
+ /**
+ * Updates a given workflow. Only user who added the workflow will be able to update it.
+ * @param workflowUri Where the workflow file resides. File location is given as a URI.
+ * Workflow is uniquely identified by <xgr:id> tag.
+ * @throws AiravataAPIInvocationException If an error occurred while updating the workflow.
+ */
+ public void updateWorkflowAsPublic (URI workflowUri) throws AiravataAPIInvocationException;
+
+
+ /**
+ * Adds a new workflow. Workflow is added to users private space. i.e. only user who added the
+ * workflow will be able to retrieve it.
+ * @param workflowAsString The new workflow to add and its content as a string.
+ * @throws AiravataAPIInvocationException If an error occurred while adding a new workflow.
+ */
+ public void addWorkflow (String workflowAsString) throws WorkflowAlreadyExistsException,
+ AiravataAPIInvocationException;
+
+ /**
+ * Updates a given workflow. Only user who added the workflow will be able to update it.
+ * TODO : What exception should we throw if a different user tries to update the workflow ?
+ * @param workflowAsString The workflow to update. Workflow is uniquely identified by <xgr:id> tag..
+ * @throws AiravataAPIInvocationException If an error occurred while updating the workflow.
+ */
+ public void updateWorkflow (String workflowAsString) throws AiravataAPIInvocationException;
+
+ /**
+ * Adds a new workflow. Workflow is added to users private space. i.e. only user who added the
+ * workflow will be able to retrieve it.
+ * @param workflow The new workflow to add.
+ * @throws AiravataAPIInvocationException If an error occurred while adding a new workflow.
+ */
+ public void addWorkflow (Workflow workflow) throws WorkflowAlreadyExistsException,
+ AiravataAPIInvocationException;
+
+ /**
+ * Updates a given workflow. Only user who added the workflow will be able to update it.
+ * TODO : What exception should we throw if a different user tries to update the workflow ?
+ * @param workflow The workflow to update. Workflow is uniquely identified by <xgr:id> tag..
+ * @throws AiravataAPIInvocationException If an error occurred while updating the workflow.
+ */
+ public void updateWorkflow (Workflow workflow) throws AiravataAPIInvocationException;
+
+ /**
+ * Adds a new workflow. Workflow is added to users private space. i.e. only user who added the
+ * workflow will be able to retrieve it.
+ * @param workflowUri New workflow file as a URI.
+ * @throws AiravataAPIInvocationException If an error occurred while adding a new workflow.
+ */
+ public void addWorkflow (URI workflowUri) throws WorkflowAlreadyExistsException,
+ AiravataAPIInvocationException;
+
+ /**
+ * Updates a given workflow. Only user who added the workflow will be able to update it.
+ * TODO : What exception should we throw if a different user tries to update the workflow ?
+ * @param workflowUri The workflow to update as a URI.
+ * @throws AiravataAPIInvocationException If an error occurred while updating the workflow.
+ */
+ public void updateWorkflow (URI workflowUri) throws AiravataAPIInvocationException;
+
+ /**
+ * Save the workflow as public
+ * @param workflow
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public boolean saveWorkflowAsPublic(Workflow workflow) throws AiravataAPIInvocationException;
+
+ /**
+ * Get all workflows of the current user
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public List<Workflow> getWorkflows() throws AiravataAPIInvocationException;
+
+ /**
+ * Get template id's of all workflows of the current user
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public List<String> getWorkflowTemplateIds() throws AiravataAPIInvocationException;
+
+ /**
+ * Retrieve the given workflow
+ * @param workflowName
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public Workflow getWorkflow(String workflowName) throws AiravataAPIInvocationException;
+
+ /**
+ * Retrieve the given workflow as a string
+ * @param workflowName
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public String getWorkflowAsString(String workflowName) throws AiravataAPIInvocationException;
+
+ /**
+ * Delete the given workflow
+ * @param workflowName
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public boolean deleteWorkflow(String workflowName) throws AiravataAPIInvocationException;
+
+ /**
+ * Create workflow object from workflow string
+ * @param workflowAsString
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public Workflow getWorkflowFromString(String workflowAsString) throws AiravataAPIInvocationException;
+
+ /**
+ * Creates a workflow from a given URI. When we want to create a workflow from a file path
+ * we can use this method.
+ * @param workflowPath The workflow file path as a URI.
+ * @return A workflow object created using given workflow XML file.
+ * @throws AiravataAPIInvocationException If an error occurred while parsing the XML file.
+ */
+ public Workflow getWorkflowFromURI(URI workflowPath) throws AiravataAPIInvocationException;
+
+
+ /**
+ * Convert workflow in to a string
+ * @param workflow
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public String getWorkflowAsString(Workflow workflow) throws AiravataAPIInvocationException;
+
+ /**
+ * Gives the service Node IDs for the given template ID, this will be useful when you want to know the service ID to
+ * Configure each node with different WorkflowContextHeaders
+ * @param templateID
+ * @return
+ */
+ public List<String> getWorkflowServiceNodeIDs(String templateID) throws AiravataAPIInvocationException;
+
+ /**
+ * Check if the workflow from the given name is published in the system
+ * @param workflowName
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public boolean isPublishedWorkflowExists(String workflowName) throws AiravataAPIInvocationException;
+
+ /**
+ * Publish the workflow "workflowName" residing user space to the published space under name publishWorkflowName
+ * @param workflowName
+ * @param publishWorkflowName
+ * @throws AiravataAPIInvocationException
+ */
+ public void publishWorkflow(String workflowName, String publishWorkflowName) throws AiravataAPIInvocationException;
+
+ /**
+ * Publish the workflow "workflowName" residing user space
+ * @param workflowName
+ * @throws AiravataAPIInvocationException
+ */
+ public void publishWorkflow(String workflowName) throws AiravataAPIInvocationException;
+
+ /**
+ * Retrive published workflow
+ * @param workflowName
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public String getPublishedWorkflowGraphXML(String workflowName) throws AiravataAPIInvocationException;
+
+ /**
+ * Retrive published workflow
+ * @param workflowName
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public Workflow getPublishedWorkflow(String workflowName) throws AiravataAPIInvocationException;
+
+ /**
+ * Retrive published workflow names
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public List<String> getPublishedWorkflowNames() throws AiravataAPIInvocationException;
+
+ /**
+ * Retrive published workflows
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public Map<String,Workflow> getPublishedWorkflows() throws AiravataAPIInvocationException;
+
+ /**
+ * Remove published workflow from the system
+ * @param workflowName
+ * @throws AiravataAPIInvocationException
+ */
+ public void removePublishedWorkflow(String workflowName)throws AiravataAPIInvocationException;
+
+ /**
+ * get workflow inputs of the workflow
+ * @param workflowName
+ * @return
+ * @throws AiravataAPIInvocationException
+ * @throws Exception
+ */
+ public List<WorkflowInput> getWorkflowInputs(String workflowName) throws AiravataAPIInvocationException;
+
+ /**
+ * Retrieve the workflow inputs for a workflow
+ * @param workflowData
+ * @return
+ * @throws AiravataAPIInvocationException
+ * @throws Exception
+ */
+ public List<WorkflowInput> getWorkflowInputs(WorkflowData workflowData) throws AiravataAPIInvocationException;
+
+ /**
+ * Retrieve all workflows in published space & user space accessible to the user.
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public List<WorkflowData> getAllWorkflows() throws AiravataAPIInvocationException;
+
+ /**
+ * Check to see if the workflow exists in user space
+ * @param workflowName
+ * @return
+ * @throws AiravataAPIInvocationException
+ */
+ public boolean isWorkflowExists(String workflowName) throws AiravataAPIInvocationException;
+
+ /**
+ * Update an existing workflow with the given workflow graph string
+ * @param workflowName
+ * @param workflowGraphXml
+ * @throws AiravataAPIInvocationException
+ */
+ public void updateWorkflow(String workflowName, String workflowGraphXml) throws AiravataAPIInvocationException;
+
+ /**
+ * Delete the workflow from the user space
+ * @param workflowName
+ * @throws AiravataAPIInvocationException
+ */
+ public void removeWorkflow(String workflowName) throws AiravataAPIInvocationException;
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/WorkflowOutputDataSettings.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/api/WorkflowOutputDataSettings.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/WorkflowOutputDataSettings.java
new file mode 100644
index 0000000..40e533d
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/WorkflowOutputDataSettings.java
@@ -0,0 +1,65 @@
+/*
+ *
+ * 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.api;
+
+public interface WorkflowOutputDataSettings {
+
+ /**
+ * Retrive the list of application output data settings
+ * @return
+ */
+ public OutputDataSettings[] getOutputDataSettingsList();
+
+ /**
+ * Add a new appliation output data settings
+ * @param nodeId - id of the node which the output data settings will be specified
+ * @return
+ */
+ public OutputDataSettings addNewOutputDataSettings(String nodeId);
+
+ /**
+ * Add a new appliation output data settings
+ * @param outputDataDirectory
+ * @param dataRegistryURL
+ * @param isDataPersistent
+ * @return
+ */
+ public OutputDataSettings addNewOutputDataSettings(String nodeId, String outputDataDirectory, String dataRegistryURL, Boolean isDataPersistent);
+
+ /**
+ * Add new application putput data settings
+ * @param outputDataSettings
+ */
+ public void addNewOutputDataSettings(OutputDataSettings...outputDataSettings);
+
+ /**
+ * Remove the application output data settings from the workflow output data settings
+ * @param outputDataSettings
+ */
+ public void removeOutputDataSettings(OutputDataSettings outputDataSettings);
+
+ /**
+ * Remove all application output data settings
+ */
+ public void removeAllOutputDataSettings();
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/WorkflowSchedulingSettings.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/api/WorkflowSchedulingSettings.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/WorkflowSchedulingSettings.java
new file mode 100644
index 0000000..6fa0146
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/WorkflowSchedulingSettings.java
@@ -0,0 +1,79 @@
+/*
+ *
+ * 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.api;
+
+public interface WorkflowSchedulingSettings {
+
+ /**
+ * Get all currently defined scheduling settings for the workflow node
+ * @return
+ */
+ public NodeSettings[] getNodeSettingsList();
+
+ /**
+ * Add and return a new Node scheduling settings
+ * @param nodeId
+ * @return
+ */
+ public NodeSettings addNewNodeSettings(String nodeId);
+
+ /**
+ * Add and return a new Node scheduling settings
+ * @param nodeId
+ * @param serviceId
+ * @param cpuCount
+ * @param nodeCount
+ * @return
+ */
+ public NodeSettings addNewNodeSettings(String nodeId, String serviceId, int cpuCount, int nodeCount);
+
+ /**
+ * Add a list of Node scheduling settings
+ * @param nodeSettings
+ */
+ public void addNewNodeSettings(NodeSettings...nodeSettings);
+
+ /**
+ * Is there a Node scheduling settings defined for the given node id
+ * @param nodeId
+ * @return
+ */
+ public boolean hasNodeSettings(String nodeId);
+
+ /**
+ * Return the Node scheduling settings for the given node Id
+ * @param nodeId
+ * @return
+ */
+ public NodeSettings getNodeSettings(String nodeId);
+
+ /**
+ * Remove the node scheduling settings given by the node Id
+ * @param nodeId
+ */
+ public void removeNodeSettings(String nodeId);
+
+ /**
+ * Clear all node scheduling settings
+ */
+ public void removeAllNodeSettings();
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/builder/DescriptorBuilder.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/api/builder/DescriptorBuilder.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/builder/DescriptorBuilder.java
new file mode 100644
index 0000000..51821b9
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/builder/DescriptorBuilder.java
@@ -0,0 +1,208 @@
+/*
+ *
+ * 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.api.builder;
+
+import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
+
+
+/**
+ * This class provides set of utility methods to create descriptors. Following descriptors are included.
+ * <ol>
+ * <li>HostDescription - org.apache.airavata.commons.gfac.type.HostDescription</li>
+ * </ol>
+ */
+public class DescriptorBuilder {
+
+ private static final String IP_ADDRESS_VALIDATION_STRING = "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$";
+
+ private static final String HOST_NAME_VALIDATION_STRING = "^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9])$";
+
+ /**
+ * Builds a host descriptor object. Host descriptor gives information about application hosted machine.
+ *
+ * @param type
+ * The host type. Following types are available at the moment.
+ * <ol>
+ * <li>org.apache.airavata.schemas.gfac.GlobusHostType</li>
+ * <li>org.apache.airavata.schemas.gfac.Ec2HostType</li>
+ * <li>org.apache.airavata.schemas.gfac.GsisshHostType</li>
+ * <li>org.apache.airavata.schemas.gfac.UnicoreHostType</li>
+ * </ol>
+ * @param hostName
+ * An unique id given to hosted machine. This could be any name. But should be unique across the
+ * workflow.
+ * @param hostAddress
+ * This is the IP address where application is running. This should be a valid IP address or valid host
+ * name.
+ * @return The org.apache.airavata.commons.gfac.type.HostDescription object.
+ * @throws AiravataAPIInvocationException
+ * If provided host address does not comply with IP address format or host name format.
+ */
+// public HostDescription buildHostDescription(HostDescriptionType type, String hostName, String hostAddress)
+// throws AiravataAPIInvocationException {
+//
+// return buildHostDescription(type.schemaType(), hostName, hostAddress);
+//
+// }
+
+ /**
+ * Builds a host descriptor object. Host descriptor gives information about application hosted machine.
+ *
+ * @param schemaType
+ * The host type as per the schema. All available schema types are listed in
+ * org.apache.xmlbeans.SchemaType
+ * @param hostName
+ * An unique id given to hosted machine. This could be any name. But should be unique across the
+ * workflow.
+ * @param hostAddress
+ * This is the IP address where application is running. This should be a valid IP address or valid host
+ * name.
+ * @return The org.apache.airavata.commons.gfac.type.HostDescription object.
+ * @throws AiravataAPIInvocationException
+ * If provided host address does not comply with IP address format or host name format.
+ */
+// public HostDescription buildHostDescription(SchemaType schemaType, String hostName, String hostAddress)
+// throws AiravataAPIInvocationException {
+//
+// if (!validateHostAddress(hostAddress)) {
+// throw new AiravataAPIInvocationException("Invalid host address. Host address should be "
+// + "either an IP address or a valid host name.");
+// }
+//
+// HostDescription hostDescription = new HostDescription(schemaType);
+// hostDescription.getType().setHostName(hostName);
+// hostDescription.getType().setHostAddress(hostAddress);
+//
+// return hostDescription;
+//
+// }
+
+ /**
+ * Create an input parameter.
+ *
+ * @param parameterName
+ * The input parameter name.
+ * @param parameterDescription
+ * A short description about the input parameter.
+ * @param parameterDataType
+ * Input parameter type. E.g :- String, Integer etc .. All possible types are define in DataType.Enum
+ * class. E.g :- DataType.String
+ * @see org.apache.airavata.schemas.gfac.DataType.Enum
+ * @return Encapsulating InputParameterType object.
+ */
+// public InputParameterType buildInputParameterType(String parameterName, String parameterDescription,
+// DataType.Enum parameterDataType) {
+//
+// InputParameterType parameter = InputParameterType.Factory.newInstance();
+// parameter.setParameterName(parameterName);
+// parameter.setParameterDescription(parameterDescription);
+//
+// ParameterType parameterType = parameter.addNewParameterType();
+// parameterType.setType(parameterDataType);
+// parameterType.setName(parameterDataType.toString());
+//
+// return parameter;
+//
+// }
+
+ /**
+ * Create an input parameter.
+ *
+ * @param parameterName
+ * The input parameter name.
+ * @param parameterDescription
+ * A short description about the input parameter.
+ * @param parameterDataType
+ * Input parameter type. E.g :- String, Integer etc .. All possible types are define in DataType.Enum
+ * class. E.g :- DataType.String
+ * @see org.apache.airavata.schemas.gfac.DataType.Enum
+ * @return Encapsulating InputParameterType object.
+ */
+// public OutputParameterType buildOutputParameterType(String parameterName, String parameterDescription,
+// DataType.Enum parameterDataType) {
+//
+// OutputParameterType parameter = OutputParameterType.Factory.newInstance();
+// parameter.setParameterName(parameterName);
+// parameter.setParameterDescription(parameterDescription);
+//
+// ParameterType parameterType = parameter.addNewParameterType();
+// parameterType.setType(parameterDataType);
+// parameterType.setName(parameterDataType.toString());
+//
+// return parameter;
+//
+// }
+
+ /**
+ * Creates a ServiceDescription object. This includes information about the service. Mainly we are focusing on
+ * following details about the service.
+ * <ol>
+ * <li>A name for service</li>
+ * <li>A short description about the service</li>
+ * <li>A what are input data types</li>
+ * <li>A what are output data types</li>
+ * </ol>
+ *
+ * @param serviceName
+ * Name of the service.
+ * @param description
+ * A short description about the service.
+ * @param inputParameterTypes
+ * Input parameter types.
+ * @param outputParameterTypes
+ * Output parameter types.
+ * @return A ServiceDescription object with above information encapsulated.
+ */
+// public ServiceDescription buildServiceDescription(String serviceName, String description,
+// List<InputParameterType> inputParameterTypes, List<OutputParameterType> outputParameterTypes) {
+//
+// ServiceDescription serviceDescription = new ServiceDescription();
+// serviceDescription.getType().setName(serviceName);
+// serviceDescription.getType().setDescription(description);
+//
+// serviceDescription.getType().setInputParametersArray(
+// inputParameterTypes.toArray(new InputParameterType[inputParameterTypes.size()]));
+// serviceDescription.getType().setOutputParametersArray(
+// outputParameterTypes.toArray(new OutputParameterType[outputParameterTypes.size()]));
+//
+// return serviceDescription;
+//
+// }
+//
+// public ApplicationDescription buildApplicationDeploymentDescription(String applicationName, String executablePath,
+// String workingDirectory) {
+//
+// ApplicationDescription applicationDeploymentDescription = new ApplicationDescription();
+// ApplicationDeploymentDescriptionType applicationDeploymentDescriptionType = applicationDeploymentDescription
+// .getType();
+// applicationDeploymentDescriptionType.addNewApplicationName().setStringValue(applicationName);
+// applicationDeploymentDescriptionType.setExecutableLocation(executablePath);
+// applicationDeploymentDescriptionType.setScratchWorkingDirectory(workingDirectory);
+//
+// return applicationDeploymentDescription;
+//
+// }
+//
+// private boolean validateHostAddress(String hostAddress) {
+// return hostAddress.matches(IP_ADDRESS_VALIDATION_STRING) || hostAddress.matches(HOST_NAME_VALIDATION_STRING);
+// }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/exception/AiravataAPIInvocationException.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/api/exception/AiravataAPIInvocationException.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/exception/AiravataAPIInvocationException.java
new file mode 100644
index 0000000..899fe85
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/exception/AiravataAPIInvocationException.java
@@ -0,0 +1,44 @@
+/*
+ *
+ * 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.api.exception;
+
+
+public class AiravataAPIInvocationException extends Exception {
+ //private static final Logger log = LoggerFactory.getLogger(AiravataAPIInvocationException.class);
+
+ private static final long serialVersionUID = 1L;
+
+ public AiravataAPIInvocationException(Throwable e) {
+ super(e.getLocalizedMessage(), e);
+ //log.error(e.getLocalizedMessage(),e);
+ }
+ public AiravataAPIInvocationException(String message) {
+ super(message, null);
+ //log.error(message);
+ }
+
+ public AiravataAPIInvocationException(String message, Throwable e) {
+ super(message, e);
+ //log.error(message,e);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/exception/AiravataAPIUnimplementedException.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/api/exception/AiravataAPIUnimplementedException.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/exception/AiravataAPIUnimplementedException.java
new file mode 100644
index 0000000..f64e480
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/exception/AiravataAPIUnimplementedException.java
@@ -0,0 +1,33 @@
+/*
+ *
+ * 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.api.exception;
+
+public class AiravataAPIUnimplementedException extends
+ AiravataAPIInvocationException {
+
+ private static final long serialVersionUID = -8233342290087971830L;
+
+ public AiravataAPIUnimplementedException(String message) {
+ super(message);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/exception/DescriptorAlreadyExistsException.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/api/exception/DescriptorAlreadyExistsException.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/exception/DescriptorAlreadyExistsException.java
new file mode 100644
index 0000000..cf3a95c
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/exception/DescriptorAlreadyExistsException.java
@@ -0,0 +1,44 @@
+/*
+ *
+ * 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.api.exception;
+
+
+/**
+ * If a saving descriptor already found in the system this exception will be thrown.
+ */
+public class DescriptorAlreadyExistsException extends AiravataAPIInvocationException {
+
+ private static final long serialVersionUID = 1231L;
+
+ public DescriptorAlreadyExistsException(Throwable e) {
+ super(e);
+ }
+
+ public DescriptorAlreadyExistsException(String message) {
+ super(message, null);
+ }
+
+ public DescriptorAlreadyExistsException(String message, Throwable e) {
+ super(message, e);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/exception/WorkflowAlreadyExistsException.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/api/exception/WorkflowAlreadyExistsException.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/exception/WorkflowAlreadyExistsException.java
new file mode 100644
index 0000000..56c8220
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/api/exception/WorkflowAlreadyExistsException.java
@@ -0,0 +1,43 @@
+/*
+ *
+ * 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.api.exception;
+
+/**
+ * If a saving descriptor already found in the system this exception will be thrown.
+ */
+public class WorkflowAlreadyExistsException extends AiravataAPIInvocationException {
+
+ private static final long serialVersionUID = 1231L;
+
+ public WorkflowAlreadyExistsException(Throwable e) {
+ super(e);
+ }
+
+ public WorkflowAlreadyExistsException(String message) {
+ super(message, null);
+ }
+
+ public WorkflowAlreadyExistsException(String message, Throwable e) {
+ super(message, e);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/AiravataManagerImpl.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/AiravataManagerImpl.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/AiravataManagerImpl.java
new file mode 100644
index 0000000..8e58148
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/AiravataManagerImpl.java
@@ -0,0 +1,310 @@
+/*
+ *
+ * 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.AiravataManager;
+import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Date;
+import java.util.List;
+
+public class AiravataManagerImpl implements AiravataManager {
+ private AiravataClient client;
+
+ public AiravataManagerImpl(AiravataClient client) {
+ setClient(client);
+ }
+
+ @Override
+ public List<URI> getWorkflowInterpreterServiceURLs() throws AiravataAPIInvocationException{
+// try {
+// return getClient().getRegistryClient().getWorkflowInterpreterURIs();
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+ return null;
+ }
+
+
+
+ public AiravataClient getClient() {
+ return client;
+ }
+
+ public void setClient(AiravataClient client) {
+ this.client = client;
+ }
+
+ @Override
+ public URI getWorkflowInterpreterServiceURL()
+ throws AiravataAPIInvocationException {
+ try {
+ return getClient().getClientConfiguration().getXbayaServiceURL().toURI();
+ } catch (URISyntaxException e) {
+ throw new AiravataAPIInvocationException(e);
+ }
+ }
+
+ @Override
+ public URI getWorkflowInterpreterServiceURL(URI defaultURL)
+ throws AiravataAPIInvocationException {
+ if (getWorkflowInterpreterServiceURL()==null){
+ return defaultURL;
+ }
+ return getWorkflowInterpreterServiceURL();
+
+ }
+
+ @SuppressWarnings("serial")
+ @Override
+ public List<URI> getMessageBoxServiceURLs()
+ throws AiravataAPIInvocationException {
+// try {
+// return new ArrayList<URI>(){{add(getClient().getRegistryClient().getMessageBoxURI());}};
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+ return null;
+ }
+
+ @Override
+ public URI getMessageBoxServiceURL() throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().getMessageBoxURI();
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+ return null;
+ }
+
+ @Override
+ public URI getMessageBoxServiceURL(URI defaultURL)
+ throws AiravataAPIInvocationException {
+ if (getMessageBoxServiceURL()==null){
+ return defaultURL;
+ }
+ return getMessageBoxServiceURL();
+ }
+
+ @SuppressWarnings("serial")
+ @Override
+ public List<URI> getEventingServiceURLs()
+ throws AiravataAPIInvocationException {
+// try {
+// return new ArrayList<URI>(){{add(getClient().getRegistryClient().getEventingServiceURI());}};
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+ return null;
+ }
+
+ @Override
+ public URI getEventingServiceURL() throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().getEventingServiceURI();
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+ return null;
+ }
+
+ @Override
+ public URI getEventingServiceURL(URI defaultURL)
+ throws AiravataAPIInvocationException {
+ if (getEventingServiceURL()==null){
+ return defaultURL;
+ }
+ return getEventingServiceURL();
+ }
+
+ @Override
+ public void setConfiguration(String key, String value, Date expire) throws AiravataAPIInvocationException {
+// try{
+// getClient().getRegistryClient().setConfiguration(key, value, expire);
+// }catch (Exception e){
+// throw new AiravataAPIInvocationException(e);
+// }
+ }
+
+ @Override
+ public void addConfiguration(String key, String value, Date expire) throws AiravataAPIInvocationException {
+// try{
+// getClient().getRegistryClient().addConfiguration(key, value, expire);
+// }catch (Exception e){
+// throw new AiravataAPIInvocationException(e);
+// }
+ }
+
+ @Override
+ public Object getConfiguration(String key)
+ throws AiravataAPIInvocationException {
+// try{
+// return getClient().getRegistryClient().getConfiguration(key);
+// }catch (Exception e){
+// throw new AiravataAPIInvocationException(e);
+// }
+ return null;
+ }
+
+ @Override
+ public List<Object> getConfigurationList(String key)
+ throws AiravataAPIInvocationException {
+// try{
+// return getClient().getRegistryClient().getConfigurationList(key);
+// }catch (Exception e){
+// throw new AiravataAPIInvocationException(e);
+// }
+ return null;
+ }
+
+ @Override
+ public void removeAllConfiguration(String key) throws AiravataAPIInvocationException {
+// try{
+// getClient().getRegistryClient().removeAllConfiguration(key);
+// }catch (Exception e){
+// throw new AiravataAPIInvocationException(e);
+// }
+ }
+
+ @Override
+ public void removeConfiguration(String key, String value) throws AiravataAPIInvocationException {
+// try{
+// getClient().getRegistryClient().removeConfiguration(key, value);
+// }catch (Exception e){
+// throw new AiravataAPIInvocationException(e);
+// }
+ }
+
+ @Override
+ public void addWorkflowInterpreterURI(URI uri) throws AiravataAPIInvocationException {
+// try{
+// getClient().getRegistryClient().addWorkflowInterpreterURI(uri);
+// }catch (Exception e){
+// throw new AiravataAPIInvocationException(e);
+// }
+ }
+
+ @Override
+ public void setEventingURI(URI uri) throws AiravataAPIInvocationException {
+// try{
+// getClient().getRegistryClient().setEventingURI(uri);
+// }catch (Exception e){
+// throw new AiravataAPIInvocationException(e);
+// }
+ }
+
+ @Override
+ public void setMessageBoxURI(URI uri) throws AiravataAPIInvocationException {
+// try{
+// getClient().getRegistryClient().setMessageBoxURI(uri);
+// }catch (Exception e){
+// throw new AiravataAPIInvocationException(e);
+// }
+ }
+
+ @Override
+ public void addWorkflowInterpreterURI(URI uri, Date expire) throws AiravataAPIInvocationException {
+// try{
+// getClient().getRegistryClient().addWorkflowInterpreterURI(uri, expire);
+// }catch (Exception e){
+// throw new AiravataAPIInvocationException(e);
+// }
+ }
+
+ @Override
+ public void setEventingURI(URI uri, Date expire) throws AiravataAPIInvocationException {
+// try{
+// getClient().getRegistryClient().setEventingURI(uri, expire);
+// }catch (Exception e){
+// throw new AiravataAPIInvocationException(e);
+// }
+ }
+
+ @Override
+ public void setMessageBoxURI(URI uri, Date expire) throws AiravataAPIInvocationException {
+// try{
+// getClient().getRegistryClient().setMessageBoxURI(uri, expire);
+// }catch (Exception e){
+// throw new AiravataAPIInvocationException(e);
+// }
+ }
+
+ @Override
+ public void removeWorkflowInterpreterURI(URI uri) throws AiravataAPIInvocationException {
+// try{
+// getClient().getRegistryClient().removeWorkflowInterpreterURI(uri);
+// }catch (Exception e){
+// throw new AiravataAPIInvocationException(e);
+// }
+ }
+
+ @Override
+ public void removeAllWorkflowInterpreterURI() throws AiravataAPIInvocationException {
+// try{
+// getClient().getRegistryClient().removeAllWorkflowInterpreterURI();
+// }catch (Exception e){
+// throw new AiravataAPIInvocationException(e);
+// }
+ }
+
+ @Override
+ public void unsetEventingURI() throws AiravataAPIInvocationException {
+// try{
+// getClient().getRegistryClient().unsetEventingURI();
+// }catch (Exception e){
+// throw new AiravataAPIInvocationException(e);
+// }
+ }
+
+ @Override
+ public void unsetMessageBoxURI() throws AiravataAPIInvocationException {
+// try{
+// getClient().getRegistryClient().unsetMessageBoxURI();
+// }catch (Exception e){
+// throw new AiravataAPIInvocationException(e);
+// }
+ }
+
+// @Override
+// public Gateway getGateway() throws AiravataAPIInvocationException {
+// try {
+// return getClient().getRegistryClient().getGateway();
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+// return null;
+// }
+
+// @Override
+// public AiravataUser getUser() throws AiravataAPIInvocationException {
+// try{
+// return getClient().getRegistryClient().getUser();
+// } 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/AmazonWebServicesSettingsImpl.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/AmazonWebServicesSettingsImpl.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/AmazonWebServicesSettingsImpl.java
new file mode 100644
index 0000000..27bbd16
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/AmazonWebServicesSettingsImpl.java
@@ -0,0 +1,93 @@
+/*
+ *
+ * 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.AmazonWebServicesSettings;
+
+public class AmazonWebServicesSettingsImpl implements AmazonWebServicesSettings {
+ private String awsAccessKey;
+ private String awsSecretKey;
+ private String amiId;
+ private String instanceId;
+ private String instanceType;
+ private String username;
+
+ @Override
+ public String getAccessKeyId() {
+ return awsAccessKey;
+ }
+
+ @Override
+ public String getAMIId() {
+ return amiId;
+ }
+
+ @Override
+ public String getInstanceId() {
+ return instanceId;
+ }
+
+ @Override
+ public String getInstanceType() {
+ return instanceType;
+ }
+
+ @Override
+ public String getSecretAccessKey() {
+ return awsSecretKey;
+ }
+
+ @Override
+ public String getUsername() {
+ return username;
+ }
+
+ @Override
+ public void setAccessKeyId(String accessKeyId) {
+ this.awsAccessKey = accessKeyId;
+ }
+
+ @Override
+ public void setAMIId(String amiId) {
+ this.amiId = amiId;
+ }
+
+ @Override
+ public void setInstanceId(String instanceId) {
+ this.instanceId = instanceId;
+ }
+
+ @Override
+ public void setInstanceType(String instanceType) {
+ this.instanceType = instanceType;
+ }
+
+ @Override
+ public void setSecretAccessKey(String secretAccessKey) {
+ this.awsSecretKey = secretAccessKey;
+ }
+
+ @Override
+ public void setUsername(String username) {
+ this.username = username;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ApplicationManagerImpl.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ApplicationManagerImpl.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ApplicationManagerImpl.java
new file mode 100644
index 0000000..f943174
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ApplicationManagerImpl.java
@@ -0,0 +1,497 @@
+///*
+// *
+// * 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.ApplicationManager;
+//import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
+//import org.apache.airavata.client.api.exception.DescriptorAlreadyExistsException;
+//import org.apache.airavata.commons.gfac.type.ApplicationDescription;
+//import org.apache.airavata.commons.gfac.type.HostDescription;
+//import org.apache.airavata.commons.gfac.type.ServiceDescription;
+//
+//import java.util.List;
+//import java.util.Map;
+//
+//public class ApplicationManagerImpl implements ApplicationManager {
+// private AiravataClient client;
+//
+// public ApplicationManagerImpl(AiravataClient client) {
+// setClient(client);
+// }
+//
+// @Override
+// public ServiceDescription getServiceDescription(String serviceId)
+// throws AiravataAPIInvocationException {
+//// try {
+//// ServiceDescription desc = getClient().getRegistryClient().getServiceDescriptor(serviceId);
+//// if(desc!=null){
+//// return desc;
+//// }
+////// throw new AiravataAPIInvocationException(new Exception("Service Description not found in registry."));
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public List<ServiceDescription> getAllServiceDescriptions()
+// throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().getServiceDescriptors();
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public String saveServiceDescription(ServiceDescription service)
+// throws AiravataAPIInvocationException {
+//// try {
+//// if (getClient().getRegistryClient().isServiceDescriptorExists(service.getType().getName())) {
+//// getClient().getRegistryClient().updateServiceDescriptor(service);
+//// }else{
+//// getClient().getRegistryClient().addServiceDescriptor(service);
+//// }
+//// return service.getType().getName();
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public void addServiceDescription(ServiceDescription serviceDescription) throws DescriptorAlreadyExistsException,
+// AiravataAPIInvocationException{
+//// try {
+//// getClient().getRegistryClient().addServiceDescriptor(serviceDescription);
+//// } catch (org.apache.airavata.registry.api.exception.gateway.DescriptorAlreadyExistsException e) {
+//// throw new DescriptorAlreadyExistsException("Service descriptor "
+//// + serviceDescription.getType().getName()
+//// + " already exists.", e);
+//// } catch (RegException e) {
+//// throw new AiravataAPIInvocationException("An internal error occurred while trying to add service descriptor"
+//// + serviceDescription.getType().getName(),
+//// e);
+//// } catch (AiravataConfigurationException e) {
+//// throw new AiravataAPIInvocationException("Error retrieving registry controller. " +
+//// "An error occurred while trying to " +
+//// "add service descriptor" + serviceDescription.getType().getName(), e);
+//// }
+// }
+//
+// @Override
+// public void updateServiceDescription(ServiceDescription serviceDescription) throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().updateServiceDescriptor(serviceDescription);
+//// } catch (RegException e) {
+//// throw new AiravataAPIInvocationException("An internal error occurred while trying to add service descriptor"
+//// + serviceDescription.getType().getName(),
+//// e);
+//// } catch (AiravataConfigurationException e) {
+//// throw new AiravataAPIInvocationException("Error retrieving registry controller. " +
+//// "An error occurred while trying to " +
+//// "add service descriptor" + serviceDescription.getType().getName(), e);
+//// }
+// }
+//
+//
+// @Override
+// public void deleteServiceDescription(String serviceId)
+// throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().removeServiceDescriptor(serviceId);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+//
+// }
+//
+// @Override
+// public List<ServiceDescription> searchServiceDescription(String nameRegEx)
+// throws AiravataAPIInvocationException {
+//// throw new AiravataAPIInvocationException(new UnimplementedRegOperationException());
+// return null;
+// }
+//
+// @Override
+// public ApplicationDescription getApplicationDescription(
+// String serviceId, String hostId)
+// throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().getApplicationDescriptors(serviceId, hostId);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public String saveApplicationDescription(String serviceId, String hostId,
+// ApplicationDescription app)
+// throws AiravataAPIInvocationException {
+//// try {
+//// if (getClient().getRegistryClient().isApplicationDescriptorExists(serviceId, hostId, app.getType().getApplicationName().getStringValue())) {
+//// getClient().getRegistryClient().updateApplicationDescriptor(serviceId, hostId, app);
+//// }else{
+//// getClient().getRegistryClient().addApplicationDescriptor(serviceId, hostId, app);
+//// }
+//// return app.getType().getApplicationName().getStringValue();
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+//
+// @Override
+// public void addApplicationDescription(ServiceDescription serviceDescription, HostDescription hostDescription,
+// ApplicationDescription applicationDeploymentDescription)
+// throws DescriptorAlreadyExistsException, AiravataAPIInvocationException{
+//
+//// try {
+//// getClient().getRegistryClient().addApplicationDescriptor(serviceDescription.getType().getName(),
+//// hostDescription.getType().getHostName(), applicationDeploymentDescription);
+//// } catch (org.apache.airavata.registry.api.exception.gateway.DescriptorAlreadyExistsException e) {
+//// throw new DescriptorAlreadyExistsException("Application descriptor " +
+//// applicationDeploymentDescription.getType().getApplicationName().getStringValue()
+//// + " already associated to host " + hostDescription.getType().getHostName()
+//// + " and service " + serviceDescription.getType().getName(), e);
+//// } catch (RegException e) {
+////
+//// throw new AiravataAPIInvocationException("An internal error occurred while trying to add " +
+//// "application descriptor " +
+//// applicationDeploymentDescription.getType().getApplicationName().getStringValue()
+//// + " associated to host " + hostDescription.getType().getHostName()
+//// + " and service " + serviceDescription.getType().getName(), e);
+////
+//// } catch (AiravataConfigurationException e) {
+////
+//// throw new AiravataAPIInvocationException("Error retrieving registry controller. " +
+//// "An error occurred while trying to add application descriptor " +
+//// applicationDeploymentDescription.getType().getApplicationName().getStringValue()
+//// + " associated to host " + hostDescription.getType().getHostName()
+//// + " and service " + serviceDescription.getType().getName(), e);
+//// }
+//
+// }
+//
+// @Override
+// public void updateApplicationDescription(ServiceDescription serviceDescription, HostDescription hostDescription,
+// ApplicationDescription applicationDeploymentDescription)
+// throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().updateApplicationDescriptor(serviceDescription.getType().getName(),
+//// hostDescription.getType().getHostName(), applicationDeploymentDescription);
+//// } catch (RegException e) {
+////
+//// throw new AiravataAPIInvocationException("An internal error occurred while trying to add " +
+//// "application descriptor " +
+//// applicationDeploymentDescription.getType().getApplicationName().getStringValue()
+//// + " associated to host " + hostDescription.getType().getHostName()
+//// + " and service " + serviceDescription.getType().getName(), e);
+////
+//// } catch (AiravataConfigurationException e) {
+////
+//// throw new AiravataAPIInvocationException("Error retrieving registry controller. " +
+//// "An error occurred while trying to add application descriptor " +
+//// applicationDeploymentDescription.getType().getApplicationName().getStringValue()
+//// + " associated to host " + hostDescription.getType().getHostName()
+//// + " and service " + serviceDescription.getType().getName(), e);
+//// }
+// }
+//
+//
+// @Override
+// public List<ApplicationDescription> searchApplicationDescription(
+// String serviceName, String hostName)
+// throws AiravataAPIInvocationException {
+//// throw new AiravataAPIInvocationException(new UnimplementedRegOperationException());
+// return null;
+// }
+//
+// @Override
+// public Map<String[], ApplicationDescription> getAllApplicationDescriptions()
+// throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().getApplicationDescriptors();
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public List<ApplicationDescription> searchApplicationDescription(
+// String serviceName, String hostName, String applicationName)
+// throws AiravataAPIInvocationException {
+//// throw new AiravataAPIInvocationException(new UnimplementedRegOperationException());
+// return null;
+// }
+//
+// @Override
+// public Map<HostDescription, List<ApplicationDescription>> searchApplicationDescription(
+// String serviceName) throws AiravataAPIInvocationException {
+//// try {
+//// Map<HostDescription, List<ApplicationDescription>> map=new HashMap<HostDescription, List<ApplicationDescription>>();
+//// Map<String, ApplicationDescription> applicationDescriptors = getClient().getRegistryClient().getApplicationDescriptors(serviceName);
+//// for (String hostName : applicationDescriptors.keySet()) {
+//// ArrayList<ApplicationDescription> list = new ArrayList<ApplicationDescription>();
+//// list.add(applicationDescriptors.get(hostName));
+//// map.put(getClient().getRegistryClient().getHostDescriptor(hostName),list);
+//// }
+//// return map;
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public void deleteApplicationDescription(String serviceName,
+// String hostName, String applicationName)
+// throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().removeApplicationDescriptor(serviceName, hostName, applicationName);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+//
+// }
+//
+// @Override
+// public HostDescription getHostDescription(String hostId)
+// throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().getHostDescriptor(hostId);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public List<HostDescription> getAllHostDescriptions()
+// throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().getHostDescriptors();
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public String saveHostDescription(HostDescription host)
+// throws AiravataAPIInvocationException {
+//// try {
+//// if (getClient().getRegistryClient().isHostDescriptorExists(host.getType().getHostName())) {
+//// getClient().getRegistryClient().updateHostDescriptor(host);
+//// }else{
+//// getClient().getRegistryClient().addHostDescriptor(host);
+//// }
+//// return host.getType().getHostName();
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public void addHostDescription(HostDescription host) throws DescriptorAlreadyExistsException,
+// AiravataAPIInvocationException{
+//
+//// try {
+//// getClient().getRegistryClient().addHostDescriptor(host);
+//// } catch (org.apache.airavata.registry.api.exception.gateway.DescriptorAlreadyExistsException e) {
+//// throw new DescriptorAlreadyExistsException("Host descriptor " + host.getType().getHostName()
+//// + " already exists.", e);
+//// } catch (RegException e) {
+//// throw new AiravataAPIInvocationException("An internal error occurred while trying to add host descriptor"
+//// + host.getType().getHostName(),
+//// e);
+//// } catch (AiravataConfigurationException e) {
+//// throw new AiravataAPIInvocationException("Error retrieving registry controller. " +
+//// "An error occurred while trying to " +
+//// "add host descriptor" + host.getType().getHostName(), e);
+//// }
+//
+// }
+//
+// @Override
+// public void updateHostDescription(HostDescription host) throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().updateHostDescriptor(host);
+//// } catch (RegException e) {
+//// throw new AiravataAPIInvocationException("An internal error occurred while trying to add host descriptor"
+//// + host.getType().getHostName(),
+//// e);
+//// } catch (AiravataConfigurationException e) {
+//// throw new AiravataAPIInvocationException("Error retrieving registry controller. " +
+//// "An error occurred while trying to " +
+//// "add host descriptor" + host.getType().getHostName(), e);
+//// }
+// }
+//
+//
+// @Override
+// public List<HostDescription> searchHostDescription(String regExName)
+// throws AiravataAPIInvocationException {
+//// throw new AiravataAPIInvocationException(new UnimplementedRegOperationException());
+// return null;
+// }
+//
+// @Override
+// public void deleteHostDescription(String hostId)
+// throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().removeHostDescriptor(hostId);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public boolean deployServiceOnHost(String serviceName, String hostName)
+// throws AiravataAPIInvocationException {
+//// throw new AiravataAPIInvocationException(new UnimplementedRegOperationException());
+// return false;
+// }
+//
+// @Override
+// public Map<String, ApplicationDescription> getApplicationDescriptors(String serviceName) throws AiravataAPIInvocationException {
+//// try{
+//// Map<String, ApplicationDescription> applicationDescriptors = getClient().getRegistryClient().getApplicationDescriptors(serviceName);
+//// return applicationDescriptors;
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// @Override
+// public boolean isHostDescriptorExists(String descriptorName) throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().isHostDescriptorExists(descriptorName);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return false;
+// }
+//
+// @Override
+// public void removeHostDescriptor(String hostName) throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().removeHostDescriptor(hostName);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public boolean isServiceDescriptorExists(String descriptorName) throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().isServiceDescriptorExists(descriptorName);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return false;
+// }
+//
+// @Override
+// public void removeServiceDescriptor(String serviceName) throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().removeServiceDescriptor(serviceName);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public void removeApplicationDescriptor(String serviceName, String hostName, String applicationName) throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().removeApplicationDescriptor(serviceName, hostName, applicationName);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public void updateHostDescriptor(HostDescription descriptor) throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().updateHostDescriptor(descriptor);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public void updateServiceDescriptor(ServiceDescription descriptor) throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().updateServiceDescriptor(descriptor);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public void updateApplicationDescriptor(String serviceName, String hostName, ApplicationDescription descriptor) throws AiravataAPIInvocationException {
+//// try {
+//// getClient().getRegistryClient().updateApplicationDescriptor(serviceName, hostName, descriptor);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// }
+//
+// @Override
+// public ApplicationDescription getApplicationDescriptor(String serviceName, String hostname, String applicationName) throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().getApplicationDescriptor(serviceName, hostname, applicationName);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return null;
+// }
+//
+// public AiravataClient getClient() {
+// return client;
+// }
+//
+// public void setClient(AiravataClient client) {
+// this.client = client;
+// }
+//
+// @Override
+// public boolean isApplicationDescriptorExists(String serviceName,
+// String hostName, String descriptorName)
+// throws AiravataAPIInvocationException {
+//// try {
+//// return getClient().getRegistryClient().isApplicationDescriptorExists(serviceName, hostName, descriptorName);
+//// } catch (Exception e) {
+//// throw new AiravataAPIInvocationException(e);
+//// }
+// return false;
+// }
+//
+//}
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ApplicationOutputDataSettingsImpl.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ApplicationOutputDataSettingsImpl.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ApplicationOutputDataSettingsImpl.java
new file mode 100644
index 0000000..5fc4e5b
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/ApplicationOutputDataSettingsImpl.java
@@ -0,0 +1,98 @@
+/*
+ *
+ * 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.OutputDataSettings;
+
+public class ApplicationOutputDataSettingsImpl implements OutputDataSettings {
+ private String nodeId;
+ private String outputDataDirectory;
+ private String dataRegistry;
+ private Boolean dataPersistent;
+
+ public ApplicationOutputDataSettingsImpl(String nodeId) {
+ this(nodeId, null,null,null);
+ }
+
+ public ApplicationOutputDataSettingsImpl(String nodeId, String outputDataDirectory, String dataRegistryUrl, Boolean dataPersistent) {
+ setNodeId(nodeId);
+ setOutputDataDirectory(outputDataDirectory);
+ setDataRegistryUrl(dataRegistryUrl);
+ setDataPersistent(dataPersistent);
+ }
+
+ @Override
+ public String getOutputDataDirectory() {
+ return outputDataDirectory;
+ }
+
+ @Override
+ public String getDataRegistryUrl() {
+ return dataRegistry;
+ }
+
+ @Override
+ public Boolean isDataPersistent() {
+ return dataPersistent;
+ }
+
+ @Override
+ public void setOutputDataDirectory(String outputDataDirectory) {
+ this.outputDataDirectory=outputDataDirectory;
+ }
+
+ @Override
+ public void setDataRegistryUrl(String dataRegistryUrl) {
+ this.dataRegistry=dataRegistryUrl;
+ }
+
+ @Override
+ public void setDataPersistent(Boolean isDataPersistance) {
+ this.dataPersistent=isDataPersistance;
+ }
+
+ @Override
+ public void resetOutputDataDirectory() {
+ this.outputDataDirectory=null;
+ }
+
+ @Override
+ public void resetDataRegistryUrl() {
+ this.dataRegistry=null;
+ }
+
+ @Override
+ public void resetDataPersistent() {
+ this.dataPersistent=null;
+ }
+
+ @Override
+ public String getNodeId() {
+ return nodeId;
+ }
+
+ @Override
+ public void setNodeId(String nodeId) {
+ this.nodeId=nodeId;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/2654424b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/CredentialStoreManagerImpl.java
----------------------------------------------------------------------
diff --git a/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/CredentialStoreManagerImpl.java b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/CredentialStoreManagerImpl.java
new file mode 100644
index 0000000..d8d090b
--- /dev/null
+++ b/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/CredentialStoreManagerImpl.java
@@ -0,0 +1,79 @@
+/*
+ *
+ * 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.CredentialStoreManager;
+import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
+
+public class CredentialStoreManagerImpl implements CredentialStoreManager{
+
+ private AiravataClient client;
+
+ public CredentialStoreManagerImpl(AiravataClient client) {
+ this.client = client;
+ }
+
+ @Override
+ public boolean isCredentialExist(String gatewayId, String tokenId) throws AiravataAPIInvocationException {
+// if(gatewayId==null || gatewayId.isEmpty() || tokenId == null || tokenId.isEmpty()) {
+// return false;
+// }
+// try {
+// return client.getRegistryClient().isCredentialExist(gatewayId, tokenId);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+ return false;
+ }
+
+ @Override
+ public String getCredentialPublicKey(String gatewayId, String tokenId) throws AiravataAPIInvocationException {
+// try {
+// return client.getRegistryClient().getCredentialPublicKey(gatewayId, tokenId);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+ return null;
+ }
+
+ @Override
+ public String createCredential(String gatewayId, String tokenId) throws AiravataAPIInvocationException {
+// try {
+// return client.getRegistryClient().createCredential(gatewayId, tokenId);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+ return null;
+ }
+
+ @Override
+ public String createCredential(String gatewayId, String tokenId, String username) throws AiravataAPIInvocationException {
+// try {
+// return client.getRegistryClient().createCredential(gatewayId, tokenId, username);
+// } catch (Exception e) {
+// throw new AiravataAPIInvocationException(e);
+// }
+ return null;
+ }
+
+}