You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sa...@apache.org on 2012/07/10 01:32:33 UTC

svn commit: r1359441 - in /incubator/airavata/branches/0.3-incubating-snapshot/modules: commons/registry-api/src/main/java/org/apache/airavata/registry/api/ commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/ commons/registry-serv...

Author: samindaw
Date: Mon Jul  9 23:32:33 2012
New Revision: 1359441

URL: http://svn.apache.org/viewvc?rev=1359441&view=rev
Log:
allowing pluggable proverance registry handler + refactoring

Added:
    incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/WorkflowInstanceStatus.java
      - copied, changed from r1359433, incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/WorkflowExecutionStatus.java
Removed:
    incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/WorkflowExecutionStatus.java
Modified:
    incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry.java
    incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/WorkflowExecution.java
    incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/AiravataJCRRegistry.java
    incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/WorkflowExecutionImpl.java
    incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-service/src/main/java/org/apache/airavata/registry/service/RegistryService.java
    incubator/airavata/branches/0.3-incubating-snapshot/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/WorkflowInterpreter.java

Modified: incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry.java
URL: http://svn.apache.org/viewvc/incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry.java?rev=1359441&r1=1359440&r2=1359441&view=diff
==============================================================================
--- incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry.java (original)
+++ incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/AiravataRegistry.java Mon Jul  9 23:32:33 2012
@@ -33,7 +33,7 @@ import org.apache.airavata.common.regist
 import org.apache.airavata.commons.gfac.type.ApplicationDeploymentDescription;
 import org.apache.airavata.commons.gfac.type.HostDescription;
 import org.apache.airavata.commons.gfac.type.ServiceDescription;
-import org.apache.airavata.registry.api.WorkflowExecutionStatus.ExecutionStatus;
+import org.apache.airavata.registry.api.WorkflowInstanceStatus.ExecutionStatus;
 import org.apache.airavata.registry.api.exception.DeploymentDescriptionRetrieveException;
 import org.apache.airavata.registry.api.exception.HostDescriptionRetrieveException;
 import org.apache.airavata.registry.api.exception.ServiceDescriptionRetrieveException;
@@ -223,13 +223,13 @@ public interface AiravataRegistry extend
 
     public List<WorkflowServiceIOData> searchWorkflowExecutionServiceOutput(String experimentIdRegEx, String workflowNameRegEx, String nodeNameRegEx)throws RegistryException;
 
-    public boolean saveWorkflowExecutionStatus(String experimentId,WorkflowExecutionStatus status)throws RegistryException;
+    public boolean saveWorkflowExecutionStatus(String experimentId,WorkflowInstanceStatus status)throws RegistryException;
     
     public boolean saveWorkflowExecutionName(String experimentId,String workflowIntanceName)throws RegistryException;
     
     public boolean saveWorkflowExecutionStatus(String experimentId,ExecutionStatus status)throws RegistryException;
 
-    public WorkflowExecutionStatus getWorkflowExecutionStatus(String experimentId)throws RegistryException;
+    public WorkflowInstanceStatus getWorkflowExecutionStatus(String experimentId)throws RegistryException;
 
     public boolean saveWorkflowExecutionOutput(String experimentId,String outputNodeName,String output) throws RegistryException;
     

Modified: incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/WorkflowExecution.java
URL: http://svn.apache.org/viewvc/incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/WorkflowExecution.java?rev=1359441&r1=1359440&r2=1359441&view=diff
==============================================================================
--- incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/WorkflowExecution.java (original)
+++ incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/WorkflowExecution.java Mon Jul  9 23:32:33 2012
@@ -29,7 +29,7 @@ import org.apache.airavata.registry.api.
 public interface WorkflowExecution {
 	public String getExperimentId();
 	public String getTopic();
-	public WorkflowExecutionStatus getExecutionStatus();
+	public WorkflowInstanceStatus getExecutionStatus();
 	public String getUser();
 	public List<WorkflowServiceIOData> getServiceInput();
 	public List<WorkflowServiceIOData> getServiceOutput();
@@ -42,7 +42,7 @@ public interface WorkflowExecution {
 
 	public void setExperimentId(String experimentId);
 	public void setTopic(String topic);
-	public void setExecutionStatus(WorkflowExecutionStatus executionStatus);
+	public void setExecutionStatus(WorkflowInstanceStatus executionStatus);
 	public void setUser(String user);
 	public void setServiceInput(List<WorkflowServiceIOData> serviceInputs);
 	public void setServiceOutput(List<WorkflowServiceIOData> serviceOutputs);

Copied: incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/WorkflowInstanceStatus.java (from r1359433, incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/WorkflowExecutionStatus.java)
URL: http://svn.apache.org/viewvc/incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/WorkflowInstanceStatus.java?p2=incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/WorkflowInstanceStatus.java&p1=incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/WorkflowExecutionStatus.java&r1=1359433&r2=1359441&rev=1359441&view=diff
==============================================================================
--- incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/WorkflowExecutionStatus.java (original)
+++ incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/WorkflowInstanceStatus.java Mon Jul  9 23:32:33 2012
@@ -23,7 +23,7 @@ package org.apache.airavata.registry.api
 
 import java.util.Date;
 
-public class WorkflowExecutionStatus {
+public class WorkflowInstanceStatus {
 	public enum ExecutionStatus {
 		STARTED,
 		RUNNING,
@@ -52,11 +52,11 @@ public class WorkflowExecutionStatus {
 		this.statusUpdateTime = statusUpdateTime;
 	}
 
-	public WorkflowExecutionStatus(ExecutionStatus executionStatus) {
+	public WorkflowInstanceStatus(ExecutionStatus executionStatus) {
 		this(executionStatus,null);
 	}
 	
-	public WorkflowExecutionStatus(ExecutionStatus executionStatus, Date statusUpdateTime) {
+	public WorkflowInstanceStatus(ExecutionStatus executionStatus, Date statusUpdateTime) {
 		setExecutionStatus(executionStatus);
 		setStatusUpdateTime(statusUpdateTime);
 	}

Modified: incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/AiravataJCRRegistry.java
URL: http://svn.apache.org/viewvc/incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/AiravataJCRRegistry.java?rev=1359441&r1=1359440&r2=1359441&view=diff
==============================================================================
--- incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/AiravataJCRRegistry.java (original)
+++ incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/AiravataJCRRegistry.java Mon Jul  9 23:32:33 2012
@@ -21,6 +21,31 @@
 
 package org.apache.airavata.registry.api.impl;
 
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.net.URI;
+import java.net.URL;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.TimeZone;
+import java.util.regex.Pattern;
+
+import javax.jcr.Node;
+import javax.jcr.PathNotFoundException;
+import javax.jcr.Property;
+import javax.jcr.PropertyIterator;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.Value;
+import javax.xml.namespace.QName;
+
 import org.apache.airavata.common.registry.api.exception.RegistryException;
 import org.apache.airavata.common.registry.api.impl.JCRRegistry;
 import org.apache.airavata.commons.gfac.type.ActualParameter;
@@ -29,11 +54,12 @@ import org.apache.airavata.commons.gfac.
 import org.apache.airavata.commons.gfac.type.ServiceDescription;
 import org.apache.airavata.commons.gfac.wsdl.WSDLConstants;
 import org.apache.airavata.commons.gfac.wsdl.WSDLGenerator;
+import org.apache.airavata.registry.api.AiravataProvenanceRegistry;
 import org.apache.airavata.registry.api.Axis2Registry;
 import org.apache.airavata.registry.api.DataRegistry;
 import org.apache.airavata.registry.api.WorkflowExecution;
-import org.apache.airavata.registry.api.WorkflowExecutionStatus;
-import org.apache.airavata.registry.api.WorkflowExecutionStatus.ExecutionStatus;
+import org.apache.airavata.registry.api.WorkflowInstanceStatus;
+import org.apache.airavata.registry.api.WorkflowInstanceStatus.ExecutionStatus;
 import org.apache.airavata.registry.api.exception.DeploymentDescriptionRetrieveException;
 import org.apache.airavata.registry.api.exception.HostDescriptionRetrieveException;
 import org.apache.airavata.registry.api.exception.ServiceDescriptionRetrieveException;
@@ -46,13 +72,6 @@ import org.apache.airavata.schemas.gfac.
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.jcr.*;
-import javax.xml.namespace.QName;
-import java.net.URI;
-import java.sql.Timestamp;
-import java.util.*;
-import java.util.regex.Pattern;
-
 public class AiravataJCRRegistry extends JCRRegistry implements Axis2Registry, DataRegistry {
 
 	private static final String OUTPUT_NODE_NAME = "OUTPUTS";
@@ -81,12 +100,14 @@ public class AiravataJCRRegistry extends
     public static final String WORKFLOW_INSTANCE_NAME_PROPERTY = "Worflow_instace_name";
     public static final String WORKFLOW_USER_PROPERTY = "User";
 
+    private AiravataProvenanceRegistry provenanceRegistry;
     private static Logger log = LoggerFactory.getLogger(AiravataJCRRegistry.class);
 
     public AiravataJCRRegistry(URI repositoryURI, String className,
 			String user, String pass, Map<String, String> map)
 			throws RepositoryException {
 		super(repositoryURI, className, user, pass, map);
+        setupProvenanceRegistry();
 	}
     
     private Node getServiceNode(Session session) throws RepositoryException {
@@ -662,6 +683,9 @@ public class AiravataJCRRegistry extends
     }
 
     public String saveOutput(String workflowId, List<ActualParameter> parameters) throws RegistryException{
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().saveOutput(workflowId, parameters);
+    	}
         Session session = null;
         String result = null;
         try {
@@ -686,7 +710,10 @@ public class AiravataJCRRegistry extends
     }
 
     public List<ActualParameter> loadOutput(String workflowId) throws RegistryException{
-        Session session = null;
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().loadOutput(workflowId);
+    	}
+    	Session session = null;
         ArrayList<ActualParameter> result = new ArrayList<ActualParameter>();
         try {
             session = getSession();
@@ -791,11 +818,17 @@ public class AiravataJCRRegistry extends
     }
 
     public boolean saveWorkflowExecutionServiceInput(WorkflowServiceIOData workflowInputData) throws RegistryException{
-        return saveWorkflowIO(workflowInputData, INPUT);
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().saveWorkflowExecutionServiceInput(workflowInputData);
+    	}
+    	return saveWorkflowIO(workflowInputData, INPUT);
     }
 
     public boolean saveWorkflowExecutionServiceOutput(WorkflowServiceIOData workflowOutputData) throws RegistryException{
-        return saveWorkflowIO(workflowOutputData, OUTPUT);
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().saveWorkflowExecutionServiceOutput(workflowOutputData);
+    	}
+    	return saveWorkflowIO(workflowOutputData, OUTPUT);
     }
 
 
@@ -820,11 +853,17 @@ public class AiravataJCRRegistry extends
 
     public List<WorkflowServiceIOData> searchWorkflowExecutionServiceInput(String experimentIdRegEx, String workflowNameRegEx,
             String nodeNameRegEx) throws RegistryException{
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().searchWorkflowExecutionServiceInput(experimentIdRegEx, workflowNameRegEx, nodeNameRegEx);
+    	}
         return searchWorkflowIO(experimentIdRegEx, workflowNameRegEx, nodeNameRegEx, INPUT);
     }
 
     public List<WorkflowServiceIOData> searchWorkflowExecutionServiceOutput(String experimentIdRegEx, String workflowNameRegEx,
             String nodeNameRegEx) throws RegistryException{
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().searchWorkflowExecutionServiceOutput(experimentIdRegEx, workflowNameRegEx, nodeNameRegEx);
+    	}
         return searchWorkflowIO(experimentIdRegEx, workflowNameRegEx, nodeNameRegEx, OUTPUT);
     }
 
@@ -880,7 +919,10 @@ public class AiravataJCRRegistry extends
         return workflowIODataList;
     }
 
-    public boolean saveWorkflowExecutionStatus(String experimentId,WorkflowExecutionStatus status)throws RegistryException{
+    public boolean saveWorkflowExecutionStatus(String experimentId,WorkflowInstanceStatus status)throws RegistryException{
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().saveWorkflowExecutionStatus(experimentId, status);
+    	}
         Session session = null;
         boolean isSaved = true;
         try {
@@ -903,9 +945,12 @@ public class AiravataJCRRegistry extends
         return isSaved;
     }
 
-    public WorkflowExecutionStatus getWorkflowExecutionStatus(String experimentId)throws RegistryException{
+    public WorkflowInstanceStatus getWorkflowExecutionStatus(String experimentId)throws RegistryException{
     	Session session = null;
-    	WorkflowExecutionStatus property = null;
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().getWorkflowExecutionStatus(experimentId);
+    	}
+    	WorkflowInstanceStatus property = null;
         try {
             session = getSession();
             Node workflowDataNode = getWorkflowExperimentDataNode(experimentId, session);
@@ -926,7 +971,7 @@ public class AiravataJCRRegistry extends
 					date = cal.getTime();
 				}
 			}
-			property=new WorkflowExecutionStatus(status, date);
+			property=new WorkflowInstanceStatus(status, date);
             session.save();
         } catch (Exception e) {
             throw new RegistryException("Error while retrieving workflow execution status!!!", e);
@@ -948,6 +993,9 @@ public class AiravataJCRRegistry extends
 	}
     
 	public boolean saveWorkflowExecutionOutput(String experimentId,String outputNodeName,String output) throws RegistryException{
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().saveWorkflowExecutionOutput(experimentId, outputNodeName, output);
+    	}
 		Session session=null;
 		try {
 			session = getSession();
@@ -965,6 +1013,9 @@ public class AiravataJCRRegistry extends
 	}
 
     public WorkflowIOData getWorkflowExecutionOutput(String experimentId,String outputNodeName) throws RegistryException{
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().getWorkflowExecutionOutput(experimentId, outputNodeName);
+    	}
 		Session session=null;
 		try {
 			session = getSession();
@@ -984,6 +1035,9 @@ public class AiravataJCRRegistry extends
     }
 
     public String[] getWorkflowExecutionOutputNames(String experimentId) throws RegistryException{
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().getWorkflowExecutionOutputNames(experimentId);
+    	}
     	Session session=null;
     	List<String> outputNames=new ArrayList<String>();
 		try {
@@ -1026,14 +1080,14 @@ public class AiravataJCRRegistry extends
         }
         return matchList;
     }
-    public Map<String, WorkflowExecutionStatus> getWorkflowExecutionStatusWithRegex(String regex) throws RegistryException {
+    public Map<String, WorkflowInstanceStatus> getWorkflowExecutionStatusWithRegex(String regex) throws RegistryException {
         Session session=null;
-        Map<String,WorkflowExecutionStatus> workflowStatusMap = new HashMap<String, WorkflowExecutionStatus>();
+        Map<String,WorkflowInstanceStatus> workflowStatusMap = new HashMap<String, WorkflowInstanceStatus>();
         try {
             session = getSession();
             List<String> matchingExperimentIds = getMatchingExperimentIds(regex, session);
             for(String experimentId:matchingExperimentIds){
-                WorkflowExecutionStatus workflowStatus = getWorkflowExecutionStatus(experimentId);
+                WorkflowInstanceStatus workflowStatus = getWorkflowExecutionStatus(experimentId);
                 workflowStatusMap.put(experimentId,workflowStatus);
             }
 		} catch (RepositoryException e) {
@@ -1085,6 +1139,9 @@ public class AiravataJCRRegistry extends
 
 	public boolean saveWorkflowExecutionUser(String experimentId, String user)
 			throws RegistryException {
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().saveWorkflowExecutionUser(experimentId, user);
+    	}
 		Session session = null;
         boolean isSaved = true;
         try {
@@ -1103,11 +1160,17 @@ public class AiravataJCRRegistry extends
 
 	public boolean saveWorkflowExecutionOutput(String experimentId,WorkflowIOData data)
 			throws RegistryException {
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().saveWorkflowExecutionOutput(experimentId, data);
+    	}
 		return saveWorkflowExecutionOutput(experimentId, data.getNodeId(), data.getValue());
 	}
 
 	public String getWorkflowExecutionUser(String experimentId)
 			throws RegistryException {
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().getWorkflowExecutionUser(experimentId);
+    	}
 		Session session = null;
         String property = null;
         try {
@@ -1128,6 +1191,9 @@ public class AiravataJCRRegistry extends
 
 	public WorkflowExecution getWorkflowExecution(String experimentId)
 			throws RegistryException {
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().getWorkflowExecution(experimentId);
+    	}
 		WorkflowExecution workflowExecution = new WorkflowExecutionImpl();
 		workflowExecution.setExperimentId(experimentId);
 		workflowExecution.setExecutionStatus(getWorkflowExecutionStatus(experimentId));
@@ -1142,6 +1208,9 @@ public class AiravataJCRRegistry extends
 
 	public List<WorkflowIOData> getWorkflowExecutionOutput(String experimentId)
 			throws RegistryException {
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().getWorkflowExecutionOutput(experimentId);
+    	}
 		List<WorkflowIOData> result=new ArrayList<WorkflowIOData>();
 		String[] workflowExecutionOutputNames = getWorkflowExecutionOutputNames(experimentId);
 		for (String workflowExecutionOutputName : workflowExecutionOutputNames) {
@@ -1152,6 +1221,9 @@ public class AiravataJCRRegistry extends
 
 	public List<String> getWorkflowExecutionIdByUser(String user)
 			throws RegistryException {
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().getWorkflowExecutionIdByUser(user);
+    	}
 		Session session = null;
 		List<String> ids=new ArrayList<String>();
 		try {
@@ -1174,6 +1246,9 @@ public class AiravataJCRRegistry extends
 
 	public List<WorkflowExecution> getWorkflowExecutionByUser(String user)
 			throws RegistryException {
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().getWorkflowExecutionByUser(user);
+    	}
 		return getWorkflowExecution(user,-1,-1);
 	}
 
@@ -1196,11 +1271,17 @@ public class AiravataJCRRegistry extends
 
 	public List<WorkflowExecution> getWorkflowExecutionByUser(String user,
 			int pageSize, int pageNo) throws RegistryException {
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().getWorkflowExecutionByUser(user, pageSize, pageNo);
+    	}
 		return getWorkflowExecutionByUser(user,pageSize*pageNo,pageSize*(pageNo+1));
 	}
 
 	public String getWorkflowExecutionMetadata(String experimentId)
 			throws RegistryException {
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().getWorkflowExecutionMetadata(experimentId);
+    	}
 		Session session = null;
     	String property = null;
         try {
@@ -1221,6 +1302,9 @@ public class AiravataJCRRegistry extends
 
 	public boolean saveWorkflowExecutionMetadata(String experimentId,
 			String metadata) throws RegistryException {
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().saveWorkflowExecutionMetadata(experimentId, metadata);
+    	}
 		Session session = null;
         boolean isSaved = true;
         try {
@@ -1240,12 +1324,18 @@ public class AiravataJCRRegistry extends
 
 	public boolean saveWorkflowExecutionStatus(String experimentId,
 			ExecutionStatus status) throws RegistryException {
-		return saveWorkflowExecutionStatus(experimentId,new WorkflowExecutionStatus(status));
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().saveWorkflowExecutionStatus(experimentId, status);
+    	}
+		return saveWorkflowExecutionStatus(experimentId,new WorkflowInstanceStatus(status));
 	}
 
 	@Override
 	public boolean saveWorkflowExecutionName(String experimentId,
 			String workflowIntanceName) throws RegistryException {
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().saveWorkflowExecutionName(experimentId, workflowIntanceName);
+    	}
 		Session session = null;
         boolean isSaved = true;
         try {
@@ -1265,6 +1355,9 @@ public class AiravataJCRRegistry extends
 	@Override
 	public String getWorkflowExecutionName(String experimentId)
 			throws RegistryException {
+    	if (getProvenanceRegistry()!=null){
+    		return getProvenanceRegistry().getWorkflowExecutionName(experimentId);
+    	}
 		Session session = null;
     	String property = null;
         try {
@@ -1282,4 +1375,41 @@ public class AiravataJCRRegistry extends
         }
         return property;
 	}
+	
+	private AiravataProvenanceRegistry getProvenanceRegistry() {
+		return provenanceRegistry;
+	}
+	
+    private static final String REPOSITORY_PROPERTIES = "repository.properties";
+
+	@SuppressWarnings("unchecked")
+	private void setupProvenanceRegistry(){
+        Properties properties = new Properties();
+		URL url = this.getClass().getClassLoader().getResource(REPOSITORY_PROPERTIES);
+        if (url!=null) {
+			try {
+				properties.load(url.openStream());
+				String provRegAccessorClass = properties.getProperty("class.provenance.registry.accessor");
+				Class<AiravataProvenanceRegistry> provenanceRegistryClass = (Class<AiravataProvenanceRegistry>) getClass().getClassLoader().loadClass(provRegAccessorClass);
+				provenanceRegistry=(AiravataProvenanceRegistry)provenanceRegistryClass.getConstructor(String.class).newInstance(getUsername());
+			} catch (ClassNotFoundException e) {
+				e.printStackTrace();
+			} catch (IllegalArgumentException e) {
+				e.printStackTrace();
+			} catch (SecurityException e) {
+				e.printStackTrace();
+			} catch (InstantiationException e) {
+				e.printStackTrace();
+			} catch (IllegalAccessException e) {
+				e.printStackTrace();
+			} catch (InvocationTargetException e) {
+				e.printStackTrace();
+			} catch (NoSuchMethodException e) {
+				e.printStackTrace();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+		}
+        
+	}
 }

Modified: incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/WorkflowExecutionImpl.java
URL: http://svn.apache.org/viewvc/incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/WorkflowExecutionImpl.java?rev=1359441&r1=1359440&r2=1359441&view=diff
==============================================================================
--- incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/WorkflowExecutionImpl.java (original)
+++ incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/WorkflowExecutionImpl.java Mon Jul  9 23:32:33 2012
@@ -25,12 +25,12 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.airavata.registry.api.WorkflowExecution;
-import org.apache.airavata.registry.api.WorkflowExecutionStatus;
+import org.apache.airavata.registry.api.WorkflowInstanceStatus;
 import org.apache.airavata.registry.api.workflow.WorkflowIOData;
 import org.apache.airavata.registry.api.workflow.WorkflowServiceIOData;
 
 public class WorkflowExecutionImpl implements WorkflowExecution{
-	private WorkflowExecutionStatus executionStatus;
+	private WorkflowInstanceStatus executionStatus;
 	private String user;
 	private List<WorkflowServiceIOData> serviceInput;
 	private List<WorkflowServiceIOData> serviceOutput;
@@ -57,10 +57,10 @@ public class WorkflowExecutionImpl imple
 	public void setTopic(String topic) {
 		this.experimentId = topic;
 	}
-	public WorkflowExecutionStatus getExecutionStatus() {
+	public WorkflowInstanceStatus getExecutionStatus() {
 		return executionStatus;
 	}
-	public void setExecutionStatus(WorkflowExecutionStatus executionStatus) {
+	public void setExecutionStatus(WorkflowInstanceStatus executionStatus) {
 		this.executionStatus = executionStatus;
 	}
 	public String getUser() {

Modified: incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-service/src/main/java/org/apache/airavata/registry/service/RegistryService.java
URL: http://svn.apache.org/viewvc/incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-service/src/main/java/org/apache/airavata/registry/service/RegistryService.java?rev=1359441&r1=1359440&r2=1359441&view=diff
==============================================================================
--- incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-service/src/main/java/org/apache/airavata/registry/service/RegistryService.java (original)
+++ incubator/airavata/branches/0.3-incubating-snapshot/modules/commons/registry-service/src/main/java/org/apache/airavata/registry/service/RegistryService.java Mon Jul  9 23:32:33 2012
@@ -28,7 +28,7 @@ import org.apache.airavata.commons.gfac.
 import org.apache.airavata.commons.gfac.type.ServiceDescription;
 import org.apache.airavata.registry.api.AiravataRegistry;
 import org.apache.airavata.registry.api.WorkflowExecution;
-import org.apache.airavata.registry.api.WorkflowExecutionStatus;
+import org.apache.airavata.registry.api.WorkflowInstanceStatus;
 import org.apache.airavata.registry.api.impl.AiravataJCRRegistry;
 import org.apache.airavata.registry.api.workflow.WorkflowIOData;
 import org.apache.airavata.registry.api.workflow.WorkflowServiceIOData;
@@ -101,11 +101,11 @@ public class RegistryService implements 
         return registry.searchWorkflowExecutionServiceOutput(experimentIdRegEx,workflowNameRegEx,nodeNameRegEx);
     }
 
-    public boolean saveWorkflowExecutionStatus(String experimentId,WorkflowExecutionStatus status)throws RegistryException{
+    public boolean saveWorkflowExecutionStatus(String experimentId,WorkflowInstanceStatus status)throws RegistryException{
         return registry.saveWorkflowExecutionStatus(experimentId,status);
     }
 
-    public WorkflowExecutionStatus getWorkflowExecutionStatus(String experimentId)throws RegistryException{
+    public WorkflowInstanceStatus getWorkflowExecutionStatus(String experimentId)throws RegistryException{
         return registry.getWorkflowExecutionStatus(experimentId);
     }
 
@@ -335,4 +335,4 @@ public class RegistryService implements 
         return XMLUtil.xmlElementToString(xwf);
     }
 
-}
\ No newline at end of file
+}

Modified: incubator/airavata/branches/0.3-incubating-snapshot/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/WorkflowInterpreter.java
URL: http://svn.apache.org/viewvc/incubator/airavata/branches/0.3-incubating-snapshot/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/WorkflowInterpreter.java?rev=1359441&r1=1359440&r2=1359441&view=diff
==============================================================================
--- incubator/airavata/branches/0.3-incubating-snapshot/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/WorkflowInterpreter.java (original)
+++ incubator/airavata/branches/0.3-incubating-snapshot/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/WorkflowInterpreter.java Mon Jul  9 23:32:33 2012
@@ -43,7 +43,7 @@ import org.apache.airavata.common.regist
 import org.apache.airavata.common.utils.Pair;
 import org.apache.airavata.common.utils.WSDLUtil;
 import org.apache.airavata.common.utils.XMLUtil;
-import org.apache.airavata.registry.api.WorkflowExecutionStatus.ExecutionStatus;
+import org.apache.airavata.registry.api.WorkflowInstanceStatus.ExecutionStatus;
 import org.apache.airavata.xbaya.XBayaConfiguration;
 import org.apache.airavata.xbaya.XBayaEngine;
 import org.apache.airavata.xbaya.XBayaException;
@@ -1913,4 +1913,4 @@ public class WorkflowInterpreter {
     public void setConfiguration(XBayaConfiguration configuration) {
         this.configuration = configuration;
     }
-}
\ No newline at end of file
+}