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 2012/10/05 20:49:59 UTC

svn commit: r1394723 - in /airavata/trunk/modules: commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/ registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ registry/airavata-jpa-registry/...

Author: lahiru
Date: Fri Oct  5 18:49:58 2012
New Revision: 1394723

URL: http://svn.apache.org/viewvc?rev=1394723&view=rev
Log:
implementing getExperimentMetaInformation and getAllExperimentMetaInformation in ExperimentDataRetriever class

Modified:
    airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/ExperimentDataImpl.java
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AiravataRegistryConnectionDataProviderImpl.java
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationDescriptorResource.java
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ConfigurationResource.java
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentDataResource.java
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentDataRetriever.java
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentMetadataResource.java

Modified: airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/ExperimentDataImpl.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/ExperimentDataImpl.java?rev=1394723&r1=1394722&r2=1394723&view=diff
==============================================================================
--- airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/ExperimentDataImpl.java (original)
+++ airavata/trunk/modules/commons/registry-api/src/main/java/org/apache/airavata/registry/api/impl/ExperimentDataImpl.java Fri Oct  5 18:49:58 2012
@@ -40,8 +40,16 @@ public class ExperimentDataImpl implemen
 	private String workflowInstanceName;
 	private List<WorkflowInstanceData> workflowInstanceDataList=new ArrayList<WorkflowInstanceData>();
 	private boolean lazyLoaded=false;
-	
-	public String getMetadata() {
+
+    public ExperimentDataImpl() {
+        this(false);
+    }
+
+    public ExperimentDataImpl(boolean lazyLoaded) {
+        this.lazyLoaded = lazyLoaded;
+    }
+
+    public String getMetadata() {
 		return metadata;
 	}
 	public void setMetadata(String metadata) {
@@ -115,9 +123,11 @@ public class ExperimentDataImpl implemen
 		}
 		return workflowInstanceDataList;
 	}
+
 	public boolean isLazyLoaded() {
 		return lazyLoaded;
 	}
+
 	public void setLazyLoaded(boolean lazyLoaded) {
 		this.lazyLoaded = lazyLoaded;
 	}

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java?rev=1394723&r1=1394722&r2=1394723&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/AiravataJPARegistry.java Fri Oct  5 18:49:58 2012
@@ -840,8 +840,8 @@ public class AiravataJPARegistry extends
 		if (!isExperimentExists(experimentId)){
 			throw new ExperimentDoesNotExistsException(experimentId);
 		}
-        ExperimentDataRetriever workflowDataRetriever = new ExperimentDataRetriever();
-        return workflowDataRetriever.getExperimentName(experimentId, jpa.getWorker().getUser());
+        ExperimentDataRetriever experimentDataRetriever = new ExperimentDataRetriever();
+        return experimentDataRetriever.getExperimentName(experimentId);
 	}
 
 
@@ -1120,17 +1120,20 @@ public class AiravataJPARegistry extends
 		if (!isExperimentExists(experimentId)){
 			throw new ExperimentDoesNotExistsException(experimentId);
 		}
-        ExperimentDataRetriever workflowDataRetriever = new ExperimentDataRetriever();
-        ExperimentData experimentData =  workflowDataRetriever.getExperiment(experimentId);
-        return workflowDataRetriever.getExperiment(experimentId);
+        ExperimentDataRetriever experimentDataRetriever = new ExperimentDataRetriever();
+        ExperimentData experimentData =  experimentDataRetriever.getExperiment(experimentId);
+        return experimentDataRetriever.getExperiment(experimentId);
 	}
 
 
 	@Override
 	public List<String> getExperimentIdByUser(String user)
 			throws RegistryException {
-        ExperimentDataRetriever workflowDataRetriever = new ExperimentDataRetriever();
-        return workflowDataRetriever.getExperimentIdByUser(jpa.getWorker().getUser());
+        if(user == null){
+            user = jpa.getWorker().getUser();
+        }
+        ExperimentDataRetriever experimentDataRetriever = new ExperimentDataRetriever();
+        return experimentDataRetriever.getExperimentIdByUser(user);
 	}
 
 
@@ -1354,14 +1357,19 @@ public class AiravataJPARegistry extends
 	@Override
 	public ExperimentData getExperimentMetaInformation(String experimentId)
 			throws RegistryException {
-		return null;
+        if (!isExperimentExists(experimentId)){
+            throw new ExperimentDoesNotExistsException(experimentId);
+        }
+        ExperimentDataRetriever experimentDataRetriever = new ExperimentDataRetriever();
+        return experimentDataRetriever.getExperimentMetaInformation(experimentId);
 	}
 
 
 	@Override
 	public List<ExperimentData> getAllExperimentMetaInformation(String user)
 			throws RegistryException {
-		return null;
+        ExperimentDataRetriever experimentDataRetriever = new ExperimentDataRetriever();
+        return experimentDataRetriever.getAllExperimentMetaInformation(user);
 	}
 
 

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AiravataRegistryConnectionDataProviderImpl.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AiravataRegistryConnectionDataProviderImpl.java?rev=1394723&r1=1394722&r2=1394723&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AiravataRegistryConnectionDataProviderImpl.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AiravataRegistryConnectionDataProviderImpl.java Fri Oct  5 18:49:58 2012
@@ -5,6 +5,8 @@ import org.apache.airavata.registry.api.
 import org.apache.airavata.registry.api.AiravataUser;
 import org.apache.airavata.registry.api.Gateway;
 import org.apache.airavata.registry.api.exception.UnknownRegistryConnectionDataException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.net.URL;
@@ -12,6 +14,7 @@ import java.util.Properties;
 
 public class AiravataRegistryConnectionDataProviderImpl implements AiravataRegistryConnectionDataProvider {
 
+    private final static Logger logger = LoggerFactory.getLogger(AiravataRegistryConnectionDataProviderImpl.class);
     public static Properties loadProperties(){
         URL resource = Utils.class.getClassLoader().getResource("repository.properties");
         Properties properties = new Properties();
@@ -19,6 +22,8 @@ public class AiravataRegistryConnectionD
             properties.load(resource.openStream());
         } catch (IOException e) {
             e.printStackTrace();
+            logger.error("Unable to read repository properties " + e);
+
         }
         return properties;
     }

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationDescriptorResource.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationDescriptorResource.java?rev=1394723&r1=1394722&r2=1394723&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationDescriptorResource.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationDescriptorResource.java Fri Oct  5 18:49:58 2012
@@ -25,6 +25,8 @@ import org.apache.airavata.persistance.r
 import org.apache.airavata.persistance.registry.jpa.ResourceUtils;
 import org.apache.airavata.persistance.registry.jpa.model.*;
 import org.apache.airavata.persistance.registry.jpa.utils.QueryGenerator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.persistence.EntityManager;
 import javax.persistence.Query;
@@ -32,6 +34,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 public class ApplicationDescriptorResource extends AbstractResource {
+    private final static Logger logger = LoggerFactory.getLogger(ApplicationDescriptorResource.class);
     private String name;
     private String gatewayName;
     private String updatedUser;
@@ -143,6 +146,8 @@ public class ApplicationDescriptorResour
      * @return UnsupportedOperationException
      */
     public Resource create(ResourceType type) {
+        logger.error("Unsupported operation for application descriptor resource " +
+                "since application descriptors could not create child resources.. ", new UnsupportedOperationException());
         throw new UnsupportedOperationException();
     }
 
@@ -153,6 +158,8 @@ public class ApplicationDescriptorResour
      * @param name name of the resource
      */
     public void remove(ResourceType type, Object name) {
+        logger.error("Unsupported operation for application descriptor resource " +
+                "since application descriptors could not remove child resources.. ", new UnsupportedOperationException());
         throw new UnsupportedOperationException();
     }
 
@@ -184,6 +191,8 @@ public class ApplicationDescriptorResour
      * @return UnsupportedOperationException
      */
     public Resource get(ResourceType type, Object name) {
+        logger.error("Unsupported operation for application descriptor resource " +
+                "since there are no child resources generated by application descriptors.. ", new UnsupportedOperationException());
         throw new UnsupportedOperationException();
     }
 
@@ -220,6 +229,8 @@ public class ApplicationDescriptorResour
      * @return UnsupportedOperationException
      */
     public List<Resource> get(ResourceType type) {
+        logger.error("Unsupported operation for application descriptor resource " +
+                "since there are no child resources generated by application descriptors.. ", new UnsupportedOperationException());
         throw new UnsupportedOperationException();
     }
 
@@ -270,6 +281,8 @@ public class ApplicationDescriptorResour
      * @return UnsupportedOperationException
      */
     public boolean isExists(ResourceType type, Object name) {
+        logger.error("Unsupported operation for application descriptor resource " +
+                "since there are no child resources generated by application descriptors.. ", new UnsupportedOperationException());
         throw new UnsupportedOperationException();
     }
 

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ConfigurationResource.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ConfigurationResource.java?rev=1394723&r1=1394722&r2=1394723&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ConfigurationResource.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ConfigurationResource.java Fri Oct  5 18:49:58 2012
@@ -34,8 +34,11 @@ import org.apache.airavata.persistance.r
 import org.apache.airavata.persistance.registry.jpa.model.Configuration;
 import org.apache.airavata.persistance.registry.jpa.model.Configuration_PK;
 import org.apache.airavata.persistance.registry.jpa.utils.QueryGenerator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ConfigurationResource extends AbstractResource {
+    private final static Logger logger = LoggerFactory.getLogger(ConfigurationResource.class);
     private String configKey;
     private String configVal;
     private Date expireDate;
@@ -63,6 +66,8 @@ public class ConfigurationResource exten
      * @return UnsupportedOperationException
      */
     public Resource create(ResourceType type) {
+        logger.error("Unsupported operation for application descriptor resource " +
+                "since there are no child resources generated by configuration resource.. ", new UnsupportedOperationException());
         throw new UnsupportedOperationException();
     }
 
@@ -74,6 +79,8 @@ public class ConfigurationResource exten
      * throws UnsupportedOperationException
      */
     public void remove(ResourceType type, Object name) {
+        logger.error("Unsupported operation for application descriptor resource " +
+                "since there are no child resources generated by configuration resource.. ", new UnsupportedOperationException());
         throw new UnsupportedOperationException();
     }
 
@@ -86,6 +93,8 @@ public class ConfigurationResource exten
      * @return UnsupportedOperationException
      */
     public Resource get(ResourceType type, Object name) {
+        logger.error("Unsupported operation for application descriptor resource " +
+                "since there are no child resources generated by configuration resource.. ", new UnsupportedOperationException());
         throw new UnsupportedOperationException();
     }
 
@@ -124,6 +133,8 @@ public class ConfigurationResource exten
      * @return UnsupportedOperationException
      */
     public List<Resource> get(ResourceType type) {
+        logger.error("Unsupported operation for application descriptor resource " +
+                "since there are no child resources generated by configuration resource.. ", new UnsupportedOperationException());
         throw new UnsupportedOperationException();
     }
 
@@ -176,6 +187,8 @@ public class ConfigurationResource exten
      * @return UnsupportedOperationException
      */
     public boolean isExists(ResourceType type, Object name) {
+        logger.error("Unsupported operation for application descriptor resource " +
+                "since there are no child resources generated by configuration resource.. ", new UnsupportedOperationException());
         throw new UnsupportedOperationException();
     }
 

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentDataResource.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentDataResource.java?rev=1394723&r1=1394722&r2=1394723&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentDataResource.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentDataResource.java Fri Oct  5 18:49:58 2012
@@ -28,6 +28,8 @@ import org.apache.airavata.persistance.r
 import org.apache.airavata.persistance.registry.jpa.model.Experiment_Metadata;
 import org.apache.airavata.persistance.registry.jpa.model.Workflow_Data;
 import org.apache.airavata.persistance.registry.jpa.utils.QueryGenerator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.persistence.EntityManager;
 import javax.persistence.Query;
@@ -36,6 +38,7 @@ import java.util.List;
 
 public class ExperimentDataResource extends AbstractResource{
 
+    private final static Logger logger = LoggerFactory.getLogger(ExperimentDataResource.class);
     private String experimentID;
     private String expName;
     private String userName;
@@ -75,6 +78,7 @@ public class ExperimentDataResource exte
                 experimentMetadataResource.setExpID(experimentID);
                 return experimentMetadataResource;
             default:
+                logger.error("Unsupported resource type for experiment data resource... ", new UnsupportedOperationException());
                 throw new IllegalArgumentException("Unsupported resource type for experiment data resource.");
         }
 
@@ -135,6 +139,7 @@ public class ExperimentDataResource exte
             default:
                 em.getTransaction().commit();
                 em.close();
+                logger.error("Unsupported resource type for experiment data resource... ", new UnsupportedOperationException());
                 throw new IllegalArgumentException("Unsupported resource type for experiment data resource.");
         }
     }
@@ -178,6 +183,7 @@ public class ExperimentDataResource exte
             default:
                 em.getTransaction().commit();
                 em.close();
+                logger.error("Unsupported resource type for experiment data resource... ", new UnsupportedOperationException());
                 throw new IllegalArgumentException("Unsupported resource type for experiment data resource.");
         }
         em.getTransaction().commit();

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentDataRetriever.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentDataRetriever.java?rev=1394723&r1=1394722&r2=1394723&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentDataRetriever.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentDataRetriever.java Fri Oct  5 18:49:58 2012
@@ -29,6 +29,9 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.sql.*;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -47,7 +50,7 @@ public class ExperimentDataRetriever {
             Class.forName(Utils.getJDBCDriver()).newInstance();
             connection = DriverManager.getConnection(connectionURL, Utils.getJDBCUser(), Utils.getJDBCPassword());
             statement = connection.createStatement();
-            String queryString = "SELECT e.experiment_ID, ed.name, e.user_name, em.metadata, " +
+            String queryString = "SELECT ed.experiment_ID, ed.name, ed.username, em.metadata, " +
                     "wd.workflow_instanceID, wd.template_name, wd.status, wd.start_time," +
                     "wd.last_update_time, nd.node_id, nd.inputs, nd.outputs, " +
                     "e.project_name, e.submitted_date, nd.node_type, nd.status," +
@@ -79,7 +82,8 @@ public class ExperimentDataRetriever {
                     workflowInstance.setWorkflowInstanceId(rs.getString(5));
                     experimentWorkflowInstances.add(workflowInstance);
 
-                    Date lastUpdateDate = new Date(rs.getLong(9));
+                    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
+                    Date lastUpdateDate = dateFormat.parse(rs.getString(9));
                     WorkflowInstanceData workflowInstanceData = new WorkflowInstanceData(null,
                             workflowInstance, new WorkflowInstanceStatus(workflowInstance,
                             rs.getString(7)==null? null:ExecutionStatus.valueOf(rs.getString(7)),lastUpdateDate), null);
@@ -115,11 +119,15 @@ public class ExperimentDataRetriever {
             logger.error(e.getMessage(), e);
         } catch (SQLException e){
             e.printStackTrace();
+        }catch (ParseException e) {
+            e.printStackTrace();
+            logger.error(e.getMessage(), e);
         }
         return experimentData;
     }
 
     public List<String> getExperimentIdByUser(String user){
+        System.out.println("#######User ####### " + user);
         List<String> result=new ArrayList<String>();
         String connectionURL =  Utils.getJDBCURL();
         Connection connection = null;
@@ -131,7 +139,11 @@ public class ExperimentDataRetriever {
             connection = DriverManager.getConnection(connectionURL, Utils.getJDBCUser(), Utils.getJDBCPassword());
             statement = connection.createStatement();
 
-            String queryString = "SELECT experiment_ID FROM Experiment WHERE user_name ='" +  user + "'";
+//            String queryString = "SELECT experiment_ID FROM Experiment WHERE user_name ='" +  user + "'";
+            String queryString = "SELECT ed.experiment_ID FROM Experiment_Data ed " +
+                    "LEFT JOIN Experiment e " +
+                    "ON ed.experiment_ID = e.experiment_ID " +
+                    "WHERE ed.username ='" + user + "'";
             rs = statement.executeQuery(queryString);
             if(rs != null){
                 while (rs.next()) {
@@ -154,13 +166,14 @@ public class ExperimentDataRetriever {
             logger.error(e.getMessage(), e);
         } catch (SQLException e){
             e.printStackTrace();
+            logger.error(e.getMessage(), e);
         }
 
         return result;
 
     }
 
-    public String getExperimentName(String experimentId, String user){
+    public String getExperimentName(String experimentId){
         String connectionURL =  Utils.getJDBCURL();
         Connection connection;
         Statement statement;
@@ -172,8 +185,7 @@ public class ExperimentDataRetriever {
             String queryString = "SELECT ed.name FROM Experiment e " +
                     "LEFT JOIN Experiment_Data ed " +
                     "ON e.experiment_ID = ed.experiment_ID " +
-                    "WHERE e.user_name ='" +  user +
-                    "' AND e.experiment_ID='" + experimentId + "'";
+                    "WHERE e.experiment_ID='" + experimentId + "'";
             rs = statement.executeQuery(queryString);
             if(rs != null){
                 while (rs.next()) {
@@ -211,7 +223,7 @@ public class ExperimentDataRetriever {
             connection = DriverManager.getConnection(connectionURL, Utils.getJDBCUser(),
                     Utils.getJDBCPassword());
             statement = connection.createStatement();
-            String queryString = "SELECT e.experiment_ID, ed.name, e.user_name, em.metadata, " +
+            String queryString = "SELECT e.experiment_ID, ed.name, ed.username, em.metadata, " +
                     "wd.workflow_instanceID, wd.template_name, wd.status, wd.start_time," +
                     "wd.last_update_time, nd.node_id, nd.inputs, nd.outputs, " +
                     "e.project_name, e.submitted_date, nd.node_type, nd.status," +
@@ -271,6 +283,125 @@ public class ExperimentDataRetriever {
             logger.error(e.getMessage(), e);
         } catch (SQLException e){
             e.printStackTrace();
+            logger.error(e.getMessage(), e);
+        }
+        return experimentDataList;
+    }
+
+    public ExperimentData getExperimentMetaInformation(String experimentId){
+        String connectionURL =  Utils.getJDBCURL();
+        Connection connection = null;
+        ResultSet rs = null;
+        Statement statement;
+        List<WorkflowInstance> experimentWorkflowInstances = new ArrayList<WorkflowInstance>();
+        ExperimentData experimentData = null;
+        try {
+            Class.forName(Utils.getJDBCDriver()).newInstance();
+            connection = DriverManager.getConnection(connectionURL, Utils.getJDBCUser(), Utils.getJDBCPassword());
+            statement = connection.createStatement();
+            String queryString = "SELECT e.experiment_ID, ed.name, ed.username, em.metadata, " +
+                    "e.project_name, e.submitted_date " +
+                    "FROM Experiment e " +
+                    "LEFT JOIN Experiment_Data ed " +
+                    "ON e.experiment_ID = ed.experiment_ID " +
+                    "LEFT JOIN Experiment_Metadata em " +
+                    "ON ed.experiment_ID = em.experiment_ID  " +
+                    "WHERE e.experiment_ID ='" + experimentId + "'";
+
+            rs = statement.executeQuery(queryString);
+            if (rs != null){
+                while (rs.next()) {
+                    experimentData = new ExperimentDataImpl(true);
+                    experimentData.setExperimentId(rs.getString(1));
+                    experimentData.setExperimentName(rs.getString(2));
+                    experimentData.setUser(rs.getString(3));
+                    experimentData.setMetadata(rs.getString(4));
+                    experimentData.setTopic(rs.getString(1));
+
+                    WorkflowInstance workflowInstance = new WorkflowInstance(experimentId, rs.getString(5));
+                    workflowInstance.setTemplateName(rs.getString(6));
+                    workflowInstance.setExperimentId(rs.getString(1));
+                    workflowInstance.setWorkflowInstanceId(rs.getString(5));
+                    experimentWorkflowInstances.add(workflowInstance);
+                }
+            }
+            if(rs != null){
+                rs.close();
+            }
+            statement.close();
+            connection.close();
+        } catch (InstantiationException e) {
+            e.printStackTrace();
+            logger.error(e.getMessage(), e);
+        } catch (IllegalAccessException e) {
+            e.printStackTrace();
+            logger.error(e.getMessage(), e);
+        } catch (ClassNotFoundException e) {
+            e.printStackTrace();
+            logger.error(e.getMessage(), e);
+        } catch (SQLException e){
+            e.printStackTrace();
+            logger.error(e.getMessage(), e);
+        }
+        return experimentData;
+    }
+
+    public List<ExperimentData> getAllExperimentMetaInformation(String user){
+        String connectionURL =  Utils.getJDBCURL();
+        Connection connection = null;
+        ResultSet rs = null;
+        Statement statement;
+        List<ExperimentData> experimentDataList = new ArrayList<ExperimentData>();
+        List<WorkflowInstance> experimentWorkflowInstances = new ArrayList<WorkflowInstance>();
+        ExperimentData experimentData = null;
+        try {
+            Class.forName(Utils.getJDBCDriver()).newInstance();
+            connection = DriverManager.getConnection(connectionURL, Utils.getJDBCUser(), Utils.getJDBCPassword());
+            statement = connection.createStatement();
+            String queryString = "SELECT e.experiment_ID, ed.name, ed.username, em.metadata, " +
+                    "e.project_name, e.submitted_date " +
+                    "FROM Experiment e " +
+                    "LEFT JOIN Experiment_Data ed " +
+                    "ON e.experiment_ID = ed.experiment_ID " +
+                    "LEFT JOIN Experiment_Metadata em " +
+                    "ON ed.experiment_ID = em.experiment_ID  " +
+                    "WHERE ed.username ='" + user + "'";
+
+            rs = statement.executeQuery(queryString);
+            if (rs != null){
+                while (rs.next()) {
+                    experimentData = new ExperimentDataImpl(true);
+                    experimentData.setExperimentId(rs.getString(1));
+                    experimentData.setExperimentName(rs.getString(2));
+                    experimentData.setUser(rs.getString(3));
+                    experimentData.setMetadata(rs.getString(4));
+                    experimentData.setTopic(rs.getString(1));
+
+                    WorkflowInstance workflowInstance = new WorkflowInstance(rs.getString(1), rs.getString(5));
+                    workflowInstance.setTemplateName(rs.getString(6));
+                    workflowInstance.setExperimentId(rs.getString(1));
+                    workflowInstance.setWorkflowInstanceId(rs.getString(5));
+                    experimentWorkflowInstances.add(workflowInstance);
+                    experimentDataList.add(experimentData);
+                }
+            }
+            if(rs != null){
+                rs.close();
+            }
+            statement.close();
+            connection.close();
+        } catch (InstantiationException e) {
+            e.printStackTrace();
+            logger.error(e.getMessage(), e);
+        } catch (IllegalAccessException e) {
+            e.printStackTrace();
+            logger.error(e.getMessage(), e);
+        } catch (ClassNotFoundException e) {
+            e.printStackTrace();
+            logger.error(e.getMessage(), e);
+        } catch (SQLException e){
+            e.printStackTrace();
+            logger.error(e.getMessage(), e);
         }
         return experimentDataList;
     }

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentMetadataResource.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentMetadataResource.java?rev=1394723&r1=1394722&r2=1394723&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentMetadataResource.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentMetadataResource.java Fri Oct  5 18:49:58 2012
@@ -4,11 +4,14 @@ import org.apache.airavata.persistance.r
 import org.apache.airavata.persistance.registry.jpa.ResourceType;
 import org.apache.airavata.persistance.registry.jpa.ResourceUtils;
 import org.apache.airavata.persistance.registry.jpa.model.Experiment_Metadata;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.persistence.EntityManager;
 import java.util.List;
 
 public class ExperimentMetadataResource extends AbstractResource{
+    private static final Logger logger = LoggerFactory.getLogger(ExperimentMetadataResource.class);
     private String expID;
     private String metadata;
 
@@ -29,6 +32,7 @@ public class ExperimentMetadataResource 
     }
 
     public Resource create(ResourceType type) {
+
         throw new UnsupportedOperationException();
     }