You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2013/12/26 18:31:40 UTC

svn commit: r1553518 [13/15] - in /airavata/sandbox: orchestrator-service/ orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/ orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/context/ o...

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/ProvenanceRegistry.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/ProvenanceRegistry.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/ProvenanceRegistry.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/ProvenanceRegistry.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,528 @@
+/*
+ *
+ * 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.registry.api;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+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;
+
+public interface    ProvenanceRegistry extends AiravataSubRegistry{
+
+	/*------------------------------------------- Experiment data ---------------------------------------------*/
+	
+	/**
+     * Returns true if the experiment exists 
+     * @param experimentId
+     * @return
+     * @throws RegistryException
+     */
+	public boolean isExperimentExists(String experimentId) throws RegistryException;
+	
+	public boolean isExperimentExists(String experimentId, boolean createIfNotPresent) throws RegistryException;
+	
+    /**
+     * Save the username of the user who runs this experiment 
+     * @param experimentId
+     * @param user
+     * @return
+     * @throws RegistryException
+     */
+	public void updateExperimentExecutionUser(String experimentId, String user) throws RegistryException;
+    
+    /**
+     * Retrieve the user who is runing the experiment
+     * @param experimentId
+     * @return
+     * @throws RegistryException
+     */
+	public String getExperimentExecutionUser(String experimentId) throws RegistryException;
+
+    /**
+     * check whether the experiment name exists
+     * @param experimentName
+     * @return
+     * @throws RegistryException
+     */
+    public boolean isExperimentNameExist(String experimentName) throws  RegistryException;
+    /**
+     * Get the name of the workflow intance
+     * @param experimentId
+     * @return
+     * @throws RegistryException
+     */
+	public String getExperimentName(String experimentId) throws RegistryException;
+    
+    /**
+     * Save a name for this workflow execution
+     * @param experimentId
+     * @param experimentName
+     * @return
+     * @throws RegistryException
+     */
+	public void updateExperimentName(String experimentId,String experimentName)throws RegistryException;
+    
+	/**
+     * Return the metadata information saved for the experiment
+     * @param experimentId
+     * @return
+     * @throws RegistryException
+     */
+    public String getExperimentMetadata(String experimentId) throws RegistryException;
+    
+    /**
+     * Save the metadata for the experiment
+     * @param experimentId
+     * @param metadata
+     * @return
+     * @throws RegistryException
+     */
+    public void updateExperimentMetadata(String experimentId, String metadata) throws RegistryException;
+    
+    /**
+     * Return the template name of the workflow that this intance was created from
+     * @param workflowInstanceId
+     * @return
+     * @throws RegistryException
+     */
+    public String getWorkflowExecutionTemplateName(String workflowInstanceId) throws RegistryException;
+    
+    /**
+     * Save the template name of the workflow that this intance was created from
+     * @param workflowInstanceId
+     * @param templateName
+     * @throws RegistryException
+     */
+    public void setWorkflowInstanceTemplateName(String workflowInstanceId, String templateName) throws RegistryException;
+    
+    public List<WorkflowExecution> getExperimentWorkflowInstances(String experimentId) throws RegistryException;
+    
+    /*-------------------------------------- Experiment Workflow instance node data ----------------------------------------*/
+
+    public boolean isWorkflowInstanceExists(String instanceId) throws RegistryException;
+    
+    public boolean isWorkflowInstanceExists(String instanceId, boolean createIfNotPresent) throws RegistryException;
+    
+    /**
+     * Save a status for this workflow execution with the current time at the moment
+     * @param instanceId
+     * @param status - contains the status
+     * @return
+     * @throws RegistryException
+     */
+	public void updateWorkflowInstanceStatus(String instanceId,State status)throws RegistryException;
+
+    /**
+     * Save a status for this workflow execution
+     * @param status - contains the status
+     * @return
+     * @throws RegistryException
+     */
+	public void updateWorkflowInstanceStatus(WorkflowExecutionStatus status)throws RegistryException;
+
+	
+    /**
+     * Return the status of the execution
+     * @param instanceId
+     * @return
+     * @throws RegistryException
+     */
+	public WorkflowExecutionStatus getWorkflowInstanceStatus(String instanceId)throws RegistryException;
+
+    /**
+	 * Save the input data of a node in the workflow instance of an experiment
+	 * @param node
+     * @param data
+	 * @return true if successfully saved
+	 * @throws RegistryException
+	 */
+	public void updateWorkflowNodeInput(WorkflowInstanceNode node, String data) throws RegistryException;
+
+    /**
+     * Save the output data of a node in the workflow instance of an experiment
+     * @param node
+     * @return true if successfully saved
+     * @throws RegistryException
+     */
+	public void updateWorkflowNodeOutput(WorkflowInstanceNode node, String data)throws RegistryException;
+    
+    /**
+     * Return a list of data passed as input for service node which regex matched nodeId, workflow template id & experiment id 
+     * @param experimentIdRegEx
+     * @param workflowNameRegEx - this is the workflowName or workflow template Id of an experiment
+     * @param nodeNameRegEx - nodeId
+     * @return
+     * @throws RegistryException
+     */
+	public List<WorkflowNodeIOData> searchWorkflowInstanceNodeInput(String experimentIdRegEx, String workflowNameRegEx, String nodeNameRegEx)throws RegistryException;
+
+	/**
+     * Return a list of data returned as output from service node which regex matched nodeId, workflow template id & experiment id 
+     * @param experimentIdRegEx
+     * @param workflowNameRegEx - this is the workflowName or workflow template Id of an experiment
+     * @param nodeNameRegEx - nodeId
+	 * @return
+	 * @throws RegistryException
+	 */
+	public List<WorkflowNodeIOData> searchWorkflowInstanceNodeOutput(String experimentIdRegEx, String workflowNameRegEx, String nodeNameRegEx)throws RegistryException;
+	
+	public List<WorkflowNodeIOData> getWorkflowInstanceNodeInput(String workflowInstanceId, String nodeType)throws RegistryException;
+	
+	public List<WorkflowNodeIOData> getWorkflowInstanceNodeOutput(String workflowInstanceId, String nodeType)throws RegistryException;
+
+    /**
+     * Saves the results of output nodes in a workflow
+     * @deprecated 
+     * @param experimentId - also the workflow id
+     * @param outputNodeName
+     * @param output
+     * @return
+     * @throws RegistryException
+     */
+	public void saveWorkflowExecutionOutput(String experimentId,String outputNodeName,String output) throws RegistryException;
+    
+    /**
+     * Saves the results of output nodes in a workflow
+     * @deprecated
+     * @param experimentId - also the workflow id
+     * @param data
+     * @return
+     * @throws RegistryException
+     */
+	public void saveWorkflowExecutionOutput(String experimentId, WorkflowIOData data) throws RegistryException;
+
+    /**
+     * Get the output results of a output node of an experiment
+     * @deprecated
+     * @param experimentId - also the workflow id
+     * @param outputNodeName
+     * @return
+     * @throws RegistryException
+     */
+	public WorkflowIOData getWorkflowExecutionOutput(String experimentId,String outputNodeName) throws RegistryException;
+    
+    /**
+     * Get the list of output node results of an experiment 
+     * @deprecated
+     * @param experimentId - also the workflow id
+     * @return
+     * @throws RegistryException
+     */
+	public List<WorkflowIOData> getWorkflowExecutionOutput(String experimentId) throws RegistryException;
+
+    /**
+     * Get the names of the output nodes of a workflow instance run
+     * @deprecated
+     * @param exeperimentId - also the workflow id
+     * @return
+     * @throws RegistryException
+     */
+	public String[] getWorkflowExecutionOutputNames(String exeperimentId) throws RegistryException;
+
+	/*---------------------------------------  Retrieving Experiment ------------------------------------------*/
+    /**
+     * Return workflow execution object fully populated with data currently avaialble for that experiment
+     * @param experimentId
+     * @return
+     * @throws RegistryException
+     */
+	public ExperimentData getExperiment(String experimentId) throws RegistryException;
+	
+	public ExperimentData getExperimentMetaInformation(String experimentId)throws RegistryException;
+	
+	public List<ExperimentData> getAllExperimentMetaInformation(String user)throws RegistryException;
+	
+	/**
+	 * Retrieve experiments which their names match the regular expression experimentNameRegex
+	 * @param user
+	 * @param experimentNameRegex
+	 * @return
+	 * @throws RegistryException
+	 */
+	public List<ExperimentData> searchExperiments(String user, String experimentNameRegex)throws RegistryException;
+    
+    /**
+     * Return experiment ids of experiments launched by the given user
+     * @param user - a regex user id
+     * @return - experiment id list
+     * @throws RegistryException
+     */
+	public List<String> getExperimentIdByUser(String user) throws RegistryException;
+
+	/**
+	 * Return experiments launched by the given user
+	 * @param user
+	 * @return experiment object list each populated by current data of that experiment
+	 * @throws RegistryException
+	 */
+    public List<ExperimentData> getExperimentByUser(String user) throws RegistryException;
+    
+	public List<ExperimentData> getExperiments(HashMap<String, String> params) throws RegistryException;
+    
+    /**
+     * Return the pageNo set of experiments launched by the given user if grouped in to pages of size pageSize
+     * @param user
+     * @param pageSize
+     * @param pageNo
+     * @return
+     * @throws RegistryException
+     */
+    public List<ExperimentData> getExperimentByUser(String user, int pageSize, int pageNo) throws RegistryException;
+
+    /**
+     * This will update the workflowStatus for given experimentID,workflowInstanceID combination.
+     * @param workflowStatusNode
+     * @return
+     */
+    public void updateWorkflowNodeStatus(NodeExecutionStatus workflowStatusNode)throws RegistryException;
+
+    public void updateWorkflowNodeStatus(String workflowInstanceId, String nodeId, State status)throws RegistryException;
+    
+    public void updateWorkflowNodeStatus(WorkflowInstanceNode workflowNode, State status)throws RegistryException;
+
+    public NodeExecutionStatus getWorkflowNodeStatus(WorkflowInstanceNode workflowNode)throws RegistryException;
+    
+    public Date getWorkflowNodeStartTime(WorkflowInstanceNode workflowNode)throws RegistryException;
+    
+    public Date getWorkflowStartTime(WorkflowExecution workflowInstance)throws RegistryException;
+    
+    /**
+     * @deprecated - Will be removed from 0.9 release onwards. Use {@see #addApplicationJob #updateApplicationJob(ApplicationJob) etc.} functions instead.
+     * This will store the gram specific data in to repository, this can be called before submitting the workflow in to Grid
+     * @param workflowNodeGramData
+     * @return
+     */
+    public void updateWorkflowNodeGramData(WorkflowNodeGramData workflowNodeGramData)throws RegistryException;
+    
+    public WorkflowExecutionData getWorkflowInstanceData(String workflowInstanceId)throws RegistryException;
+    
+    public boolean isWorkflowInstanceNodePresent(String workflowInstanceId, String nodeId)throws RegistryException;
+    
+    public boolean isWorkflowInstanceNodePresent(String workflowInstanceId, String nodeId, boolean createIfNotPresent)throws RegistryException;
+    
+    public NodeExecutionData getWorkflowInstanceNodeData(String workflowInstanceId, String nodeId)throws RegistryException;
+
+    public void addWorkflowInstance(String experimentId, String workflowInstanceId, String templateName) throws RegistryException;
+    
+    public void updateWorkflowNodeType(WorkflowInstanceNode node, WorkflowNodeType type) throws RegistryException;
+    
+    public void addWorkflowInstanceNode(String workflowInstance, String nodeId) throws RegistryException;
+    
+    
+	/*---------------------------------------  Errors in experiment executions ------------------------------------------*/
+
+    /**
+     * Return errors defined at the experiment level 
+     * @param experimentId
+     * @return
+     * @throws RegistryException
+     */
+    public List<ExperimentExecutionError> getExperimentExecutionErrors(String experimentId) throws RegistryException;
+    
+    /**
+     * Return errors defined at the workflow level 
+     * @param experimentId
+     * @param workflowInstanceId
+     * @return
+     * @throws RegistryException
+     */
+    public List<WorkflowExecutionError> getWorkflowExecutionErrors(String experimentId, String workflowInstanceId) throws RegistryException;
+
+    /**
+     * Return errors defined at the node level 
+     * @param experimentId
+     * @param workflowInstanceId
+     * @param nodeId
+     * @return
+     * @throws RegistryException
+     */
+    public List<NodeExecutionError> getNodeExecutionErrors(String experimentId, String workflowInstanceId, String nodeId) throws RegistryException;
+    
+    /**
+     * Return errors defined for a Application job 
+     * @param experimentId
+     * @param workflowInstanceId
+     * @param nodeId
+     * @param jobId
+     * @return
+     * @throws RegistryException
+     */
+    public List<ApplicationJobExecutionError> getApplicationJobErrors(String experimentId, String workflowInstanceId, String nodeId, String jobId) throws RegistryException;
+
+    /**
+     * Return errors defined for a Application job 
+     * @param jobId
+     * @return
+     * @throws RegistryException
+     */
+    public List<ApplicationJobExecutionError> getApplicationJobErrors(String jobId) throws RegistryException;
+
+    /**
+     * Return errors filtered by the parameters
+     * @param experimentId 
+     * @param workflowInstanceId
+     * @param nodeId
+     * @param jobId
+     * @param filterBy - what type of source types the results should contain
+     * @return
+     * @throws RegistryException
+     */
+    public List<ExecutionError> getExecutionErrors(String experimentId, String workflowInstanceId, String nodeId, String jobId, ExecutionErrors.Source...filterBy) throws RegistryException;
+    /**
+     * Adds an experiment execution error 
+     * @param error
+     * @return
+     * @throws RegistryException
+     */
+    public int addExperimentError(ExperimentExecutionError error) throws RegistryException;
+    
+    /**
+     * Adds an workflow execution error 
+     * @param error
+     * @return
+     * @throws RegistryException
+     */
+    public int addWorkflowExecutionError(WorkflowExecutionError error) throws RegistryException;
+    
+    /**
+     * Adds an node execution error 
+     * @param error
+     * @return
+     * @throws RegistryException
+     */
+    public int addNodeExecutionError(NodeExecutionError error) throws RegistryException;
+
+    /**
+     * Adds an Application job execution error 
+     * @param error
+     * @return
+     * @throws RegistryException
+     */
+    public int addApplicationJobExecutionError(ApplicationJobExecutionError error) throws RegistryException;
+    
+    
+	/*---------------------------------------  Managing Data for Application Jobs ------------------------------------------*/
+
+    /**
+     * Returns <code>true</code> if a Application job data is existing in the registry
+     * @param jobId
+     * @return
+     * @throws RegistryException
+     */
+    public boolean isApplicationJobExists(String jobId) throws RegistryException;
+    
+    /**
+     * Adding data related to a new Application job submission
+     * @param job - the <code>jobId</code> cannot be <code>null</code>.
+     * @throws RegistryException
+     */
+    public void addApplicationJob(ApplicationJob job) throws RegistryException;
+    
+    /**
+     * update data related to a existing Application job record in the registry
+     * @param job - the <code>jobId</code> cannot be <code>null</code> and should already exist in registry
+     * @throws RegistryException
+     */
+    public void updateApplicationJob(ApplicationJob job) throws RegistryException;
+    
+    /**
+     * Update the status of the job
+     * @param jobId
+     * @param status
+     * @param statusUpdateTime
+     * @throws RegistryException
+     */
+    public void updateApplicationJobStatus(String jobId, ApplicationJobStatus status, Date statusUpdateTime) throws RegistryException;
+   
+    /**
+     * Update the job data. GFacProvider implementation should decide the job data. Typically it'll 
+     * be a serialization of the submitted job query (eg: rsl for a GRAM job) 
+     * @param jobId
+     * @param jobdata
+     * @throws RegistryException
+     */
+    public void updateApplicationJobData(String jobId, String jobdata) throws RegistryException;
+    
+    /**
+     * Update the time of job submission or job started executing
+     * @param jobId
+     * @param submitted
+     * @throws RegistryException
+     */
+    public void updateApplicationJobSubmittedTime(String jobId, Date submitted) throws RegistryException;
+    
+    /**
+     * Update the time of current job status is valid.
+     * @param jobId
+     * @param statusUpdateTime
+     * @throws RegistryException
+     */
+    public void updateApplicationJobStatusUpdateTime(String jobId, Date statusUpdateTime) throws RegistryException;
+    
+    /**
+     * Custom data field for users
+     * @param jobId
+     * @param metadata
+     * @throws RegistryException
+     */
+    public void updateApplicationJobMetadata(String jobId, String metadata) throws RegistryException;
+    
+    /**
+     * Retrieve the Application Job for the given job id
+     * @param jobId
+     * @return
+     * @throws RegistryException
+     */
+    public ApplicationJob getApplicationJob(String jobId) throws RegistryException;
+    
+    /**
+     * Retrieve a list of Application jobs executed for the given descriptors
+     * @param serviceDescriptionId - should be <code>null</code> if user does not care what service description the job corresponds to
+     * @param hostDescriptionId - should be <code>null</code> if user does not care what host description the job corresponds to
+     * @param applicationDescriptionId - should be <code>null</code> if user does not care what application description the job corresponds to
+     * @return
+     * @throws RegistryException
+     */
+    public List<ApplicationJob> getApplicationJobsForDescriptors(String serviceDescriptionId, String hostDescriptionId, String applicationDescriptionId) throws RegistryException;
+    
+    /**
+     * Retrieve a list of Application jobs executed for the given experiment credentials
+     * @param experimentId - should be <code>null</code> if user does not care what experiment the job corresponds to
+     * @param workflowExecutionId -  - should be <code>null</code> if user does not care what workflow execution the job corresponds to
+     * @param nodeId  - should be <code>null</code> if user does not care what node id the job corresponds to
+     * @return
+     * @throws RegistryException
+     */
+    public List<ApplicationJob> getApplicationJobs(String experimentId, String workflowExecutionId, String nodeId) throws RegistryException;
+    
+    /**
+     * Retrieve the list all the status updates for an application job.
+     * @param jobId - Application job id
+     * @return
+     * @throws RegistryException
+     */
+    public List<ApplicationJobStatusData> getApplicationJobStatusHistory(String jobId) throws RegistryException;
+}
\ No newline at end of file

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/PublishedWorkflowRegistry.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/PublishedWorkflowRegistry.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/PublishedWorkflowRegistry.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/PublishedWorkflowRegistry.java Thu Dec 26 17:31:35 2013
@@ -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.registry.api;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+import org.apache.airavata.registry.api.exception.gateway.PublishedWorkflowAlreadyExistsException;
+import org.apache.airavata.registry.api.exception.gateway.PublishedWorkflowDoesNotExistsException;
+import org.apache.airavata.registry.api.exception.worker.UserWorkflowDoesNotExistsException;
+
+
+public interface PublishedWorkflowRegistry extends AiravataSubRegistry {
+	
+	public boolean isPublishedWorkflowExists(String workflowName) throws RegistryException;
+	public void publishWorkflow(String workflowName, String publishWorkflowName) throws PublishedWorkflowAlreadyExistsException, UserWorkflowDoesNotExistsException, RegistryException;
+	public void publishWorkflow(String workflowName) throws PublishedWorkflowAlreadyExistsException, UserWorkflowDoesNotExistsException, RegistryException;
+	
+	public String getPublishedWorkflowGraphXML(String workflowName) throws PublishedWorkflowDoesNotExistsException, RegistryException;
+	public List<String> getPublishedWorkflowNames() throws RegistryException;
+	public Map<String,String> getPublishedWorkflows() throws RegistryException;
+	public ResourceMetadata getPublishedWorkflowMetadata(String workflowName) throws RegistryException;
+	
+	public void removePublishedWorkflow(String workflowName)throws PublishedWorkflowDoesNotExistsException, RegistryException;
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/ResourceMetadata.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/ResourceMetadata.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/ResourceMetadata.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/ResourceMetadata.java Thu Dec 26 17:31:35 2013
@@ -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.registry.api;
+
+import java.util.Date;
+
+public class ResourceMetadata {
+	
+	/**
+	 * Note: not all the following properties will be available for
+	 * a resource
+	 */
+	
+	private AiravataUser createdUser;
+	private AiravataUser lastUpdatedUser;
+	
+	private Date createdDate;
+	private Date lastUpdatedDate;
+	private String revision;
+	
+	public AiravataUser getCreatedUser() {
+		return createdUser;
+	}
+	public void setCreatedUser(AiravataUser createdUser) {
+		this.createdUser = createdUser;
+	}
+	public AiravataUser getLastUpdatedUser() {
+		return lastUpdatedUser;
+	}
+	public void setLastUpdatedUser(AiravataUser lastUpdatedUser) {
+		this.lastUpdatedUser = lastUpdatedUser;
+	}
+	public Date getCreatedDate() {
+		return createdDate;
+	}
+	public void setCreatedDate(Date createdDate) {
+		this.createdDate = createdDate;
+	}
+	public Date getLastUpdatedDate() {
+		return lastUpdatedDate;
+	}
+	public void setLastUpdatedDate(Date lastUpdatedDate) {
+		this.lastUpdatedDate = lastUpdatedDate;
+	}
+	public String getRevision() {
+		return revision;
+	}
+	public void setRevision(String revision) {
+		this.revision = revision;
+	}
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/UserRegistry.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/UserRegistry.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/UserRegistry.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/UserRegistry.java Thu Dec 26 17:31:35 2013
@@ -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.registry.api;
+
+import java.util.List;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public interface UserRegistry extends AiravataSubRegistry{
+
+		
+	/**
+	 * Retrieve all the users in the registry
+	 * @return a list of airavata users from the registry
+	 * @throws RegistryException
+	 */
+	
+	public List<AiravataUser> getUsers() throws RegistryException;
+    
+}
\ No newline at end of file

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/UserWorkflowRegistry.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/UserWorkflowRegistry.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/UserWorkflowRegistry.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/UserWorkflowRegistry.java Thu Dec 26 17:31:35 2013
@@ -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.registry.api;
+
+import java.util.Map;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+import org.apache.airavata.registry.api.exception.worker.UserWorkflowAlreadyExistsException;
+import org.apache.airavata.registry.api.exception.worker.UserWorkflowDoesNotExistsException;
+
+
+public interface UserWorkflowRegistry extends AiravataSubRegistry {
+	
+	public boolean isWorkflowExists(String workflowName) throws RegistryException;
+	public void addWorkflow(String workflowName, String workflowGraphXml) throws UserWorkflowAlreadyExistsException, RegistryException;
+	public void updateWorkflow(String workflowName, String workflowGraphXml) throws UserWorkflowDoesNotExistsException, RegistryException;
+	
+	public String getWorkflowGraphXML(String workflowName) throws UserWorkflowDoesNotExistsException, RegistryException;
+	public Map<String,String> getWorkflows() throws RegistryException;
+	
+	public ResourceMetadata getWorkflowMetadata(String workflowName) throws RegistryException;	
+	
+	public void removeWorkflow(String workflowName) throws UserWorkflowDoesNotExistsException, RegistryException;
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/WorkspaceProject.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/WorkspaceProject.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/WorkspaceProject.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/WorkspaceProject.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,95 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.registry.api;
+
+import java.util.Date;
+import java.util.List;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+import javax.xml.bind.annotation.*;
+
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlRootElement
+public class WorkspaceProject{
+	private String projectName;
+    private Gateway gateway;
+    private AiravataUser airavataUser;
+
+    @XmlTransient
+    private ProjectsRegistry projectsRegistry;
+
+    public WorkspaceProject() {
+    }
+
+    public WorkspaceProject(String projectName, ProjectsRegistry registry) {
+		setProjectName(projectName);
+		setProjectsRegistry(registry);
+        setGateway(registry.getGateway());
+        setAiravataUser(registry.getAiravataUser());
+	}
+	
+	public String getProjectName() {
+		return projectName;
+	}
+
+	public void setProjectName(String projectName) {
+		this.projectName = projectName;
+	}
+
+	public ProjectsRegistry getProjectsRegistry() {
+		return projectsRegistry;
+	}
+
+	public void setProjectsRegistry(ProjectsRegistry projectsRegistry) {
+		this.projectsRegistry = projectsRegistry;
+	}
+	
+	public void createExperiment(AiravataExperiment experiment) throws RegistryException{
+		getProjectsRegistry().addExperiment(getProjectName(), experiment);
+	}
+	
+	public List<AiravataExperiment> getExperiments() throws RegistryException{
+		return getProjectsRegistry().getExperiments(getProjectName());
+	}
+	
+	public List<AiravataExperiment> getExperiments(Date from, Date to) throws RegistryException{
+		return getProjectsRegistry().getExperiments(getProjectName(),from, to);
+	}
+
+    public Gateway getGateway() {
+        return gateway;
+    }
+
+    public AiravataUser getAiravataUser() {
+        return airavataUser;
+    }
+
+    public void setGateway(Gateway gateway) {
+        this.gateway = gateway;
+    }
+
+    public void setAiravataUser(AiravataUser airavataUser) {
+        this.airavataUser = airavataUser;
+    }
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/AiravataRegistryUninitializedException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/AiravataRegistryUninitializedException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/AiravataRegistryUninitializedException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/AiravataRegistryUninitializedException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,32 @@
+/*
+ *
+ * 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.registry.api.exception;
+
+public class AiravataRegistryUninitializedException extends RegistryException {
+
+	public AiravataRegistryUninitializedException(String message, Throwable e) {
+		super(message, e);
+	}
+
+	private static final long serialVersionUID = -6873054164386608256L;
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/DeploymentDescriptionRetrieveException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/DeploymentDescriptionRetrieveException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/DeploymentDescriptionRetrieveException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/DeploymentDescriptionRetrieveException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,35 @@
+/*
+ *
+ * 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.registry.api.exception;
+
+public class DeploymentDescriptionRetrieveException extends RegistryException {
+    private final static String ERROR_MESSAGE = "Error occured while attempting to retrieve existing deployment descriptions";
+    /**
+	 * 
+	 */
+    private static final long serialVersionUID = -2849422320139467602L;
+
+    public DeploymentDescriptionRetrieveException(Exception e) {
+        super(ERROR_MESSAGE,e);
+    }
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/GatewayNotRegisteredException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/GatewayNotRegisteredException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/GatewayNotRegisteredException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/GatewayNotRegisteredException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,32 @@
+/*
+ *
+ * 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.registry.api.exception;
+
+public class GatewayNotRegisteredException extends RegistryException {
+
+	private static final long serialVersionUID = -139586125325993500L;
+
+	public GatewayNotRegisteredException(String gatewayName) {
+		super("The gateway id '"+gatewayName+"' is not registered within Airavata");
+	}
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/HostDescriptionRetrieveException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/HostDescriptionRetrieveException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/HostDescriptionRetrieveException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/HostDescriptionRetrieveException.java Thu Dec 26 17:31:35 2013
@@ -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.registry.api.exception;
+
+public class HostDescriptionRetrieveException extends RegistryException {
+    private final static String ERROR_MESSAGE = "Error occured while attempting to retrieve existing hosts";
+
+    private static final long serialVersionUID = -2849422320139467602L;
+
+    public HostDescriptionRetrieveException(Exception e) {
+        super(ERROR_MESSAGE, e);
+    }
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAPIVersionIncompatibleException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAPIVersionIncompatibleException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAPIVersionIncompatibleException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAPIVersionIncompatibleException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,41 @@
+/*
+ *
+ * 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.registry.api.exception;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class RegistryAPIVersionIncompatibleException extends RegistryException {
+
+    private static final long serialVersionUID = -2679914107485739141L;
+
+    public RegistryAPIVersionIncompatibleException() {
+        this("Incompatible versions with Airavata registry and Airavata API");
+    }
+
+    public RegistryAPIVersionIncompatibleException(String message) {
+        this(message,null);
+    }
+
+    public RegistryAPIVersionIncompatibleException(String message, Exception e){
+        super(message, e);
+    }
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorInstantiateException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorInstantiateException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorInstantiateException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorInstantiateException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,32 @@
+/*
+ *
+ * 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.registry.api.exception;
+
+public class RegistryAccessorInstantiateException extends RegistryException {
+
+	private static final long serialVersionUID = -2679914107485739140L;
+	
+	public RegistryAccessorInstantiateException(String className, Exception e){
+		super("There was an exception instantiating the Registry accessor class '"+className+"'!!!", e);
+	}
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorInvalidException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorInvalidException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorInvalidException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorInvalidException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,32 @@
+/*
+ *
+ * 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.registry.api.exception;
+
+public class RegistryAccessorInvalidException extends RegistryException {
+
+	private static final long serialVersionUID = -2679914107485739140L;
+	
+	public RegistryAccessorInvalidException(String className){
+		super("Registry accessor '"+className+"' is not valid!!!");
+	}
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorNotFoundException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorNotFoundException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorNotFoundException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorNotFoundException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,32 @@
+/*
+ *
+ * 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.registry.api.exception;
+
+public class RegistryAccessorNotFoundException extends RegistryException {
+
+	private static final long serialVersionUID = -2679914107485739140L;
+	
+	public RegistryAccessorNotFoundException(String className, Exception e){
+		super("Registry accessor class '"+className+"'  was not found in classpath!!!", e);
+	}
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorUndefinedException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorUndefinedException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorUndefinedException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryAccessorUndefinedException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,40 @@
+/*
+ *
+ * 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.registry.api.exception;
+
+public class RegistryAccessorUndefinedException extends RegistryException {
+
+	private static final long serialVersionUID = -2679914107485739140L;
+
+	public RegistryAccessorUndefinedException() {
+		this("A registry accessor was not defined in the registry settings");
+	}
+	
+	public RegistryAccessorUndefinedException(String message) {
+		this(message,null);
+	}
+	
+	public RegistryAccessorUndefinedException(String message, Exception e){
+		super(message, e);
+	}
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistryException.java Thu Dec 26 17:31:35 2013
@@ -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.registry.api.exception;
+
+public class RegistryException extends Exception {
+	
+    private static final long serialVersionUID = -2849422320139467602L;
+
+    public RegistryException(Throwable e) {
+        super(e);
+    }
+    
+    public RegistryException(String message) {
+        super(message, null);
+    }
+    
+    public RegistryException(String message, Throwable e) {
+        super(message, e);
+    }
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistrySettingsException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistrySettingsException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistrySettingsException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistrySettingsException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,35 @@
+/*
+ *
+ * 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.registry.api.exception;
+
+public class RegistrySettingsException extends RegistryException {
+
+	private static final long serialVersionUID = -4901850535475160411L;
+
+	public RegistrySettingsException(String message) {
+		super(message);
+	}
+	
+	public RegistrySettingsException(String message, Throwable e) {
+		super(message, e);
+	}
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistrySettingsLoadException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistrySettingsLoadException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistrySettingsLoadException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/RegistrySettingsLoadException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,38 @@
+/*
+ *
+ * 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.registry.api.exception;
+
+public class RegistrySettingsLoadException extends RegistrySettingsException {
+
+	private static final long serialVersionUID = -5102090895499711299L;
+	public RegistrySettingsLoadException(String message) {
+		super(message);
+	}
+	
+	public RegistrySettingsLoadException(Throwable e) {
+		this(e.getMessage(),e);
+	}
+	
+	public RegistrySettingsLoadException(String message, Throwable e) {
+		super(message,e);
+	}
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/ServiceDescriptionRetrieveException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/ServiceDescriptionRetrieveException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/ServiceDescriptionRetrieveException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/ServiceDescriptionRetrieveException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,35 @@
+/*
+ *
+ * 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.registry.api.exception;
+
+public class ServiceDescriptionRetrieveException extends RegistryException {
+    private final static String ERROR_MESSAGE = "Error occured while attempting to retrieve existing service descriptions";
+    /**
+	 * 
+	 */
+    private static final long serialVersionUID = -2849422320139467602L;
+
+    public ServiceDescriptionRetrieveException(Exception e) {
+        super(ERROR_MESSAGE, e);
+    }
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/UnimplementedRegistryOperationException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/UnimplementedRegistryOperationException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/UnimplementedRegistryOperationException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/UnimplementedRegistryOperationException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,32 @@
+/*
+ *
+ * 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.registry.api.exception;
+
+public class UnimplementedRegistryOperationException extends RegistryException {
+
+	private static final long serialVersionUID = 8565882892195989548L;
+
+	public UnimplementedRegistryOperationException() {
+		super("This operation is not implemented!!!");
+	}
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/UnknownRegistryConnectionDataException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/UnknownRegistryConnectionDataException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/UnknownRegistryConnectionDataException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/UnknownRegistryConnectionDataException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,36 @@
+/*
+ *
+ * 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.registry.api.exception;
+
+public class UnknownRegistryConnectionDataException extends RegistryException {
+
+	private static final long serialVersionUID = -6483101227925383562L;
+
+	public UnknownRegistryConnectionDataException(String message) {
+		super(message);
+	}
+	
+	public UnknownRegistryConnectionDataException(String message, Throwable e) {
+		super(message, e);
+	}
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/UnspecifiedRegistrySettingsException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/UnspecifiedRegistrySettingsException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/UnspecifiedRegistrySettingsException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/UnspecifiedRegistrySettingsException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,30 @@
+/*
+ *
+ * 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.registry.api.exception;
+
+public class UnspecifiedRegistrySettingsException extends RegistrySettingsException {
+
+	private static final long serialVersionUID = -1159027432434546003L;
+	public UnspecifiedRegistrySettingsException(String key) {
+		super("The '"+key+"' is not configured in Registry settings!!!");
+	}
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/DescriptorAlreadyExistsException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/DescriptorAlreadyExistsException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/DescriptorAlreadyExistsException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/DescriptorAlreadyExistsException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.registry.api.exception.gateway;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class DescriptorAlreadyExistsException extends RegistryException {
+
+	private static final long serialVersionUID = -8006347245307495767L;
+
+	public DescriptorAlreadyExistsException(String descriptorName) {
+		super("The Descriptor "+descriptorName+" already exists!!!");
+	}
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/DescriptorDoesNotExistsException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/DescriptorDoesNotExistsException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/DescriptorDoesNotExistsException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/DescriptorDoesNotExistsException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.registry.api.exception.gateway;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class DescriptorDoesNotExistsException extends RegistryException {
+
+	private static final long serialVersionUID = -8006347245307495767L;
+
+	public DescriptorDoesNotExistsException(String descriptorName) {
+		super("The Descriptor "+descriptorName+" does not exists!!!");
+	}
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/InsufficientDataException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/InsufficientDataException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/InsufficientDataException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/InsufficientDataException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.registry.api.exception.gateway;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class InsufficientDataException extends RegistryException {
+
+    private static final long serialVersionUID = 7706410845538952164L;
+
+    public InsufficientDataException(String message) {
+        super(message);
+    }
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/MalformedDescriptorException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/MalformedDescriptorException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/MalformedDescriptorException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/MalformedDescriptorException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.registry.api.exception.gateway;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class MalformedDescriptorException extends RegistryException {
+
+	private static final long serialVersionUID = -8006347245307495767L;
+
+	public MalformedDescriptorException(String descriptorName, Throwable e) {
+		super("Error in generating the descriptor for "+descriptorName+"!!!", e);
+	}
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/PublishedWorkflowAlreadyExistsException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/PublishedWorkflowAlreadyExistsException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/PublishedWorkflowAlreadyExistsException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/PublishedWorkflowAlreadyExistsException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.registry.api.exception.gateway;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class PublishedWorkflowAlreadyExistsException extends RegistryException {
+
+	private static final long serialVersionUID = -8006347245307495767L;
+
+	public PublishedWorkflowAlreadyExistsException(String workflowTemplateName) {
+		super("The workflow "+workflowTemplateName+" is already published!!!");
+	}
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/PublishedWorkflowDoesNotExistsException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/PublishedWorkflowDoesNotExistsException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/PublishedWorkflowDoesNotExistsException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/gateway/PublishedWorkflowDoesNotExistsException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.registry.api.exception.gateway;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class PublishedWorkflowDoesNotExistsException extends RegistryException {
+
+	private static final long serialVersionUID = -8006347245307495767L;
+
+	public PublishedWorkflowDoesNotExistsException(String workflowTemplateName) {
+		super("There is no workflow named "+workflowTemplateName+" published!!!");
+	}
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ApplicationJobAlreadyExistsException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ApplicationJobAlreadyExistsException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ApplicationJobAlreadyExistsException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ApplicationJobAlreadyExistsException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.registry.api.exception.worker;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class ApplicationJobAlreadyExistsException extends RegistryException {
+
+	private static final long serialVersionUID = -8006347245307495767L;
+
+	public ApplicationJobAlreadyExistsException(String jobId) {
+		super("A Application job from the ID '"+jobId+"' is already present in the registry!!!");
+	}
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ApplicationJobDoesNotExistsException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ApplicationJobDoesNotExistsException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ApplicationJobDoesNotExistsException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ApplicationJobDoesNotExistsException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.registry.api.exception.worker;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class ApplicationJobDoesNotExistsException extends RegistryException {
+
+	private static final long serialVersionUID = -8006347245307495767L;
+
+	public ApplicationJobDoesNotExistsException(String jobId) {
+		super("There is no Application job corresponding to ID '"+jobId+"' present in the registry!!!");
+	}
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ExperimentAlreadyExistsException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ExperimentAlreadyExistsException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ExperimentAlreadyExistsException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ExperimentAlreadyExistsException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.registry.api.exception.worker;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class ExperimentAlreadyExistsException extends RegistryException {
+
+	private static final long serialVersionUID = -8006347245307495767L;
+
+	public ExperimentAlreadyExistsException(String experimentId) {
+		super("The experiment "+experimentId+" already added to the registry!!!");
+	}
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ExperimentDoesNotExistsException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ExperimentDoesNotExistsException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ExperimentDoesNotExistsException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ExperimentDoesNotExistsException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.registry.api.exception.worker;
+
+import org.apache.airavata.registry.api.exception.RegistryException;
+
+public class ExperimentDoesNotExistsException extends RegistryException {
+
+	private static final long serialVersionUID = -8006347245307495767L;
+
+	public ExperimentDoesNotExistsException(String experimentId) {
+		super("The experiment "+experimentId+" is not present in the registry!!!");
+	}
+
+}

Added: airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ExperimentLazyLoadedException.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ExperimentLazyLoadedException.java?rev=1553518&view=auto
==============================================================================
--- airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ExperimentLazyLoadedException.java (added)
+++ airavata/sandbox/registry/registry-api/src/main/java/org/apache/airavata/registry/api/exception/worker/ExperimentLazyLoadedException.java Thu Dec 26 17:31:35 2013
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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.registry.api.exception.worker;
+
+import org.apache.airavata.common.exception.LazyLoadedDataException;
+
+public class ExperimentLazyLoadedException extends LazyLoadedDataException {
+
+	private static final long serialVersionUID = -8006347245307495767L;
+
+	public ExperimentLazyLoadedException(String experimentId) {
+		super("The experiment "+experimentId+" is lazy loaded by the client!!!");
+	}
+
+}