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/09/09 22:14:46 UTC

svn commit: r1382565 [2/2] - in /incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main: java/org/apache/airavata/persistance/registry/jpa/ java/org/apache/airavata/persistance/registry/jpa/resources/ resources/

Modified: incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserResource.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserResource.java?rev=1382565&r1=1382564&r2=1382565&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserResource.java (original)
+++ incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserResource.java Sun Sep  9 20:14:45 2012
@@ -53,22 +53,14 @@ public class UserResource extends Abstra
     }
 
     public Resource create(ResourceType type) {
-        return null;
+        throw new UnsupportedOperationException();
     }
 
     public void remove(ResourceType type, Object name) {
-
-    }
-
-    public void removeMe(Object[] keys) {
-
+        throw new UnsupportedOperationException();
     }
 
     public Resource get(ResourceType type, Object name) {
-        return null;
-    }
-
-    public List<Resource> getMe(Object[] keys) {
         throw new UnsupportedOperationException();
     }
 
@@ -82,13 +74,12 @@ public class UserResource extends Abstra
         Users user = new Users();
         user.setUser_name(userName);
         user.setPassword(password);
-
         em.persist(user);
         end();
     }
 
     public boolean isExists(ResourceType type, Object name) {
-        return false;
+        throw new UnsupportedOperationException();
     }
 
     public ProjectResource getProjectResource() {

Modified: incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserWorkflowResource.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserWorkflowResource.java?rev=1382565&r1=1382564&r2=1382565&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserWorkflowResource.java (original)
+++ incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/UserWorkflowResource.java Sun Sep  9 20:14:45 2012
@@ -25,6 +25,7 @@ import org.apache.airavata.persistance.r
 import org.apache.airavata.persistance.registry.jpa.model.Gateway;
 import org.apache.airavata.persistance.registry.jpa.model.User_Workflow;
 import org.apache.airavata.persistance.registry.jpa.model.Users;
+import org.apache.airavata.persistance.registry.jpa.utils.QueryGenerator;
 
 import javax.persistence.Query;
 import java.sql.Date;
@@ -37,6 +38,7 @@ public class UserWorkflowResource extend
     private String name;
     private Date lastUpdateDate;
     private String content;
+    private String path;
 
     public UserWorkflowResource() {
     }
@@ -71,6 +73,14 @@ public class UserWorkflowResource extend
         this.name = name;
     }
 
+    public String getPath() {
+        return path;
+    }
+
+    public void setPath(String path) {
+        this.path = path;
+    }
+
     public Resource create(ResourceType type) {
         throw new UnsupportedOperationException();
     }
@@ -79,10 +89,6 @@ public class UserWorkflowResource extend
         throw new UnsupportedOperationException();
     }
 
-    public void removeMe(Object[] keys) {
-
-    }
-
     public Resource get(ResourceType type, Object name) {
         throw new UnsupportedOperationException();
     }
@@ -92,19 +98,16 @@ public class UserWorkflowResource extend
      * @param keys should be in the order of gateway_name,user_name and user_workflow_name
      * @return
      */
-    public List<Resource> getMe(Object[] keys) {
+    public List<Resource> populate(Object[] keys) {
         List<Resource> list = new ArrayList<Resource>();
         begin();
-        Query q = em.createQuery("SELECT p FROM User_Workflow p WHERE p.gateway_name = :gate_name and p.user_name =:usr_name and p.user_workflow_name=:usr_wf_name");
-        q.setParameter("gate_name", keys[0]);
-        q.setParameter("usr_name", keys[1]);
-        q.setParameter("usr_wf_name",keys[2]);
+        QueryGenerator queryGenerator = new QueryGenerator(USER_WORKFLOW);
+        queryGenerator.setParameter(UserWorkflowConstants.GATEWAY_NAME, keys[0]);
+        queryGenerator.setParameter(UserWorkflowConstants.OWNER, keys[1]);
+        queryGenerator.setParameter(UserWorkflowConstants.TEMPLATE_NAME, keys[2]);
+        Query q = queryGenerator.selectQuery(em);
         User_Workflow userWorkflow = (User_Workflow)q.getSingleResult();
-        UserWorkflowResource userWorkflowResource = new UserWorkflowResource();
-//        userWorkflowResource.setUserName(userWorkflow.getUser().getUser_name());
-//        userWorkflowResource.setGatewayname(userWorkflow.getGateway().getGateway_name());
-        userWorkflowResource.setName(userWorkflow.getTemplate_name());
-        userWorkflowResource.setContent(userWorkflow.getWorkflow_graph());
+        UserWorkflowResource userWorkflowResource = (UserWorkflowResource)Utils.getResource(ResourceType.USER_WORKFLOW, userWorkflow);
         end();
         list.add(userWorkflowResource);
         return list;
@@ -121,19 +124,16 @@ public class UserWorkflowResource extend
         userWorkflow.setLast_updated_date(lastUpdateDate);
         userWorkflow.setWorkflow_graph(content);
         Gateway gateway = new Gateway();
-//        gateway.setGateway_name(gatewayname);
+        gateway.setGateway_name(gateway.getGateway_name());
         userWorkflow.setGateway(gateway);
         Users user = new Users();
-//        user.setUser_name(userName);
+        user.setUser_name(worker.getUser());
         userWorkflow.setUser(user);
+        userWorkflow.setPath(path);
         em.persist(userWorkflow);
         end();
     }
 
-    public void save(boolean isAppendable) {
-
-    }
-
     public boolean isExists(ResourceType type, Object name) {
         throw new UnsupportedOperationException();
     }

Added: incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java?rev=1382565&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java (added)
+++ incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java Sun Sep  9 20:14:45 2012
@@ -0,0 +1,217 @@
+/*
+ *
+ * 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.persistance.registry.jpa.resources;
+
+import org.apache.airavata.persistance.registry.jpa.Resource;
+import org.apache.airavata.persistance.registry.jpa.ResourceType;
+import org.apache.airavata.persistance.registry.jpa.model.*;
+
+
+public class Utils {
+    
+    static Resource getResource(ResourceType type, Object o) {
+        switch (type){
+            case GATEWAY:
+                if (o instanceof Gateway) {
+                    return createGateway((Gateway) o);
+                } else {
+                    throw new IllegalArgumentException("Object should be a Gateway.");
+                }
+            case PROJECT:
+                if (o instanceof Project){
+                    return createProject((Project) o);
+                } else {
+                    throw new IllegalArgumentException("Object should be a Project.");
+                }
+            case CONFIGURATION:
+                if(o instanceof Configuration){
+                    return createConfiguration((Configuration) o);
+                }else {
+                    throw new IllegalArgumentException("Object should be a Configuration.");
+                }
+            case APPLICATION_DESCRIPTOR:
+                if (o instanceof Application_Descriptor){
+                    return createApplicationDescriptor((Application_Descriptor) o);
+                } else {
+                    throw new IllegalArgumentException("Object should be a Application Descriptor.");
+                }
+            case EXPERIMENT:
+                if (o instanceof Experiment){
+                    return createExperiment((Experiment) o);
+                }  else {
+                    throw new IllegalArgumentException("Object should be a Experiment.");
+                }
+            case USER:
+                if(o instanceof Users) {
+                    return createUser((Users) o);
+                }else {
+                    throw new IllegalArgumentException("Object should be a User.");
+                }
+            case HOST_DESCRIPTOR:
+                if (o instanceof Host_Descriptor){
+                    return createHostDescriptor((Host_Descriptor) o);
+                }else {
+                    throw new IllegalArgumentException("Object should be a Host Descriptor.");
+                }
+            case SERVICE_DESCRIPTOR:
+                if (o instanceof Service_Descriptor){
+                    return createServiceDescriptor((Service_Descriptor) o);
+                }else {
+                    throw new IllegalArgumentException("Object should be a Service Descriptor.");
+                }
+            case PUBLISHED_WORKFLOW:
+                if (o instanceof Published_Workflow){
+                    return createPublishWorkflow((Published_Workflow) o);
+                }else {
+                    throw new IllegalArgumentException("Object should be a Publish Workflow.");
+                }
+            case USER_WORKFLOW:
+                if (o instanceof User_Workflow){
+                    return createUserWorkflow((User_Workflow) o);
+                }else {
+                    throw new IllegalArgumentException("Object should be a User Workflow.");
+                }
+            case GATEWAY_WORKER:
+                if (o instanceof Gateway_Worker){
+                    return createGatewayWorker((Gateway_Worker)o);
+                } else {
+                    throw  new IllegalArgumentException("Object should be a Gateway Worker.");
+                }
+            default:
+        }
+        return null;
+
+    }
+
+    private static Resource createGateway(Gateway o) {
+        GatewayResource gatewayResource = new GatewayResource();
+        gatewayResource.setGatewayName(o.getGateway_name());
+        return gatewayResource;
+    }
+
+    private static Resource createProject(Project o) {
+        ProjectResource projectResource = new ProjectResource();
+        projectResource.setName(o.getProject_name());
+        GatewayResource gatewayResource = (GatewayResource)createGateway(o.getGateway());
+        projectResource.setGateway(gatewayResource);
+        Gateway_Worker gateway_worker = new Gateway_Worker();
+        gateway_worker.setGateway(o.getGateway());
+        gateway_worker.setUser(o.getUsers());
+        WorkerResource workerResource = (WorkerResource) createGatewayWorker(gateway_worker);
+        projectResource.setWorker(workerResource);
+        return projectResource;
+    }
+
+    private static Resource createConfiguration (Configuration o){
+        ConfigurationResource configurationResource = new ConfigurationResource();
+        configurationResource.setConfigKey(o.getConfig_key());
+        configurationResource.setConfigVal(o.getConfig_val());
+        configurationResource.setExpireDate(o.getExpire_date());
+        return configurationResource;
+    }
+
+    private static Resource createApplicationDescriptor(Application_Descriptor o) {
+        ApplicationDescriptorResource applicationDescriptorResource = new ApplicationDescriptorResource();
+        applicationDescriptorResource.setName(o.getApplication_descriptor_ID());
+        applicationDescriptorResource.setHostDescName(o.getHost_descriptor_ID());
+        applicationDescriptorResource.setServiceDescName(o.getService_descriptor_ID());
+        applicationDescriptorResource.setContent(o.getApplication_descriptor_xml());
+        applicationDescriptorResource.setUpdatedUser(o.getUser().getUser_name());
+        applicationDescriptorResource.setGatewayName(o.getGateway().getGateway_name());
+        return applicationDescriptorResource;
+    }
+
+    private static Resource createExperiment(Experiment o) {
+        ExperimentResource experimentResource = new ExperimentResource();
+        GatewayResource gatewayResource = (GatewayResource)createGateway(o.getGateway());
+        experimentResource.setGateway(gatewayResource);
+        Gateway_Worker gateway_worker = new Gateway_Worker();
+        gateway_worker.setGateway(o.getGateway());
+        gateway_worker.setUser(o.getUser());
+        WorkerResource workerResource = (WorkerResource) createGatewayWorker(gateway_worker);
+        experimentResource.setWorker(workerResource);
+        ProjectResource projectResource = (ProjectResource)createProject(o.getProject());
+        experimentResource.setProject(projectResource);
+        experimentResource.setExpID(o.getExperiment_ID());
+        return experimentResource;
+    }
+
+    private static Resource createGatewayWorker(Gateway_Worker o) {
+        GatewayResource gatewayResource = (GatewayResource)createGateway(o.getGateway());
+        WorkerResource workerResource = new WorkerResource(o.getUser().getUser_name(),gatewayResource);
+        return workerResource;
+    }
+
+    private static Resource createHostDescriptor(Host_Descriptor o) {
+        HostDescriptorResource hostDescriptorResource = new HostDescriptorResource();
+        hostDescriptorResource.setGatewayName(o.getGateway().getGateway_name());
+        hostDescriptorResource.setUserName(o.getUser().getUser_name());
+        hostDescriptorResource.setHostDescName(o.getHost_descriptor_ID());
+        hostDescriptorResource.setContent(o.getHost_descriptor_xml());
+        return hostDescriptorResource;
+    }
+
+    private static Resource createPublishWorkflow(Published_Workflow o) {
+        PublishWorkflowResource publishWorkflowResource = new PublishWorkflowResource();
+        GatewayResource gatewayResource = (GatewayResource)createGateway(o.getGateway());
+        publishWorkflowResource.setGateway(gatewayResource);
+        publishWorkflowResource.setCreatedUser(o.getUser().getUser_name());
+        publishWorkflowResource.setName(o.getPublish_workflow_name());
+        publishWorkflowResource.setContent(o.getWorkflow_content());
+        publishWorkflowResource.setPublishedDate(o.getPublished_date());
+        publishWorkflowResource.setVersion(o.getVersion());
+        publishWorkflowResource.setPath(o.getPath());
+        return publishWorkflowResource;
+    }
+
+    private static Resource createServiceDescriptor(Service_Descriptor o) {
+        ServiceDescriptorResource serviceDescriptorResource = new ServiceDescriptorResource();
+        serviceDescriptorResource.setGatewayName(o.getGateway().getGateway_name());
+        serviceDescriptorResource.setUserName(o.getUser().getUser_name());
+        serviceDescriptorResource.setServiceDescName(o.getService_descriptor_ID());
+        serviceDescriptorResource.setContent(o.getService_descriptor_xml());
+        return serviceDescriptorResource;
+    }
+
+    private static Resource createUserWorkflow(User_Workflow o) {
+        UserWorkflowResource userWorkflowResource = new UserWorkflowResource();
+        userWorkflowResource.setName(o.getTemplate_name());
+        GatewayResource gatewayResource = (GatewayResource)createGateway(o.getGateway());
+        userWorkflowResource.setGateway(gatewayResource);
+        Gateway_Worker gateway_worker = new Gateway_Worker();
+        gateway_worker.setGateway(o.getGateway());
+        gateway_worker.setUser(o.getUser());
+        WorkerResource workerResource = (WorkerResource) createGatewayWorker(gateway_worker);
+        userWorkflowResource.setWorker(workerResource);
+        userWorkflowResource.setLastUpdateDate(o.getLast_updated_date());
+        userWorkflowResource.setContent(o.getWorkflow_graph());
+        userWorkflowResource.setPath(o.getPath());
+        return userWorkflowResource;
+    }
+
+    private static Resource createUser(Users o) {
+        UserResource userResource = new UserResource();
+        userResource.setUserName(o.getUser_name());
+        userResource.setPassword(o.getPassword());
+        return userResource;
+    }
+
+}

Modified: incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkerResource.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkerResource.java?rev=1382565&r1=1382564&r2=1382565&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkerResource.java (original)
+++ incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkerResource.java Sun Sep  9 20:14:45 2012
@@ -28,9 +28,8 @@ import javax.persistence.Query;
 
 import org.apache.airavata.persistance.registry.jpa.Resource;
 import org.apache.airavata.persistance.registry.jpa.ResourceType;
-import org.apache.airavata.persistance.registry.jpa.model.Experiment;
-import org.apache.airavata.persistance.registry.jpa.model.Project;
-import org.apache.airavata.persistance.registry.jpa.model.User_Workflow;
+import org.apache.airavata.persistance.registry.jpa.model.*;
+import org.apache.airavata.persistance.registry.jpa.utils.QueryGenerator;
 
 public class WorkerResource extends AbstractResource {
 	private String user;
@@ -41,7 +40,6 @@ public class WorkerResource extends Abst
 		this.gateway=gateway;
 	}
 	
-	@Override
 	public Resource create(ResourceType type) {
 		Resource result = null;
 		switch (type) {
@@ -62,28 +60,32 @@ public class WorkerResource extends Abst
 		return result;
 	}
 
-	@Override
 	public void remove(ResourceType type, Object name) {
 		begin();
+        Query q;
+        QueryGenerator generator;
 		switch (type) {
 			case PROJECT:
-				Query q = em.createQuery("Delete p FROM Project p WHERE p.user_name = :owner and p.project_name = :prj_name and p.gateway_name =: gate_name");
-	            q.setParameter("owner", getUser());
-	            q.setParameter("prj_name", name);
-	            q.setParameter("gate_name", gateway.getGatewayName());
+                generator = new QueryGenerator(PROJECT);
+                generator.setParameter(ProjectConstants.USERNAME, getUser());
+                generator.setParameter(ProjectConstants.PROJECT_NAME, name);
+                generator.setParameter(ProjectConstants.GATEWAY_NAME, gateway.getGatewayName());
+                q = generator.deleteQuery(em);
 	            q.executeUpdate();
 				break;
 			case USER_WORKFLOW:
-				q = em.createQuery("Delete p FROM User_Workflow p WHERE p.owner = :owner and p.template_name = :usrwf_name and p.gateway_name =: gate_name");
-	            q.setParameter("owner", getUser());
-	            q.setParameter("usrwf_name", name);
-	            q.setParameter("gate_name", gateway.getGatewayName());
+                generator = new QueryGenerator(USER_WORKFLOW);
+                generator.setParameter(UserWorkflowConstants.OWNER, getUser());
+                generator.setParameter(UserWorkflowConstants.TEMPLATE_NAME, name);
+                generator.setParameter(UserWorkflowConstants.GATEWAY_NAME, gateway.getGatewayName());
+                q = generator.deleteQuery(em);
 	            q.executeUpdate();
 	            break;
 			case EXPERIMENT:
-	            q = em.createQuery("Delete p FROM Experiment p WHERE p.user_name = :usr_name and p.experiment_ID = :ex_name");
-	            q.setParameter("usr_name", getUser());
-	            q.setParameter("ex_name", name);
+                generator = new QueryGenerator(EXPERIMENT);
+                generator.setParameter(ExperimentConstants.USERNAME, getUser());
+                generator.setParameter(ExperimentConstants.EXPERIMENT_ID, name);
+                q = generator.deleteQuery(em);
 	            q.executeUpdate();
 	            break;
 			default:
@@ -92,52 +94,39 @@ public class WorkerResource extends Abst
 		end();
 	}
 
-	@Override
-	public void removeMe(Object[] keys) {
-
-	}
-
-	@Override
 	public Resource get(ResourceType type, Object name) {
 		Resource result = null;
 		begin();
+        QueryGenerator generator;
+        Query q;
 		switch (type) {
 			case PROJECT:
-				Query q = em.createQuery("SELECT p FROM Project p WHERE p.user_name = :owner and p.project_name = :prj_name and p.gateway_name =: gate_name");
-	            q.setParameter("owner", getUser());
-	            q.setParameter("prj_name", name);
-	            q.setParameter("gate_name", gateway.getGatewayName());
+                generator = new QueryGenerator(PROJECT);
+                generator.setParameter(ProjectConstants.USERNAME, getUser());
+                generator.setParameter(ProjectConstants.PROJECT_NAME, name);
+                generator.setParameter(ProjectConstants.GATEWAY_NAME, gateway.getGatewayName());
+                q = generator.selectQuery(em);
 	            Project project = (Project) q.getSingleResult();
-	            ProjectResource projectResource = new ProjectResource(this, gateway, project.getProject_ID());
-	            projectResource.setName(project.getProject_name());
+	            ProjectResource projectResource = (ProjectResource)Utils.getResource(ResourceType.PROJECT, project);
 	            result=projectResource;
 				break;
 			case USER_WORKFLOW:
-				q = em.createQuery("SELECT p FROM User_Workflow p WHERE p.owner = :usr_name and p.user_workflow_name = :usrwf_name and p.gateway_name =:gate_name");
-	            q.setParameter("user_name", getUser());
-	            q.setParameter("usrwf_name", name);
-	            q.setParameter("gate_name", gateway.getGatewayName());
+                generator = new QueryGenerator(USER_WORKFLOW);
+                generator.setParameter(UserWorkflowConstants.OWNER, getUser());
+                generator.setParameter(UserWorkflowConstants.TEMPLATE_NAME, name);
+                generator.setParameter(UserWorkflowConstants.GATEWAY_NAME, gateway.getGatewayName());
+                q = generator.selectQuery(em);
 	            User_Workflow userWorkflow = (User_Workflow) q.getSingleResult();
-	            UserWorkflowResource userWorkflowResource = new UserWorkflowResource(gateway, this, userWorkflow.getTemplate_name());
-	            userWorkflowResource.setContent(userWorkflow.getWorkflow_graph());
-	            userWorkflowResource.setLastUpdateDate(userWorkflow.getLast_updated_date());
+	            UserWorkflowResource userWorkflowResource = (UserWorkflowResource)Utils.getResource(ResourceType.USER_WORKFLOW, userWorkflow);
 	            result=userWorkflowResource;
 	            break;
 			case EXPERIMENT:
-				q = em.createQuery("SELECT p FROM Experiment p WHERE p.gateway_name = :gateway_name and p.user_name = :usr_name and p.experiment_ID = :ex_name");
-	            q.setParameter("usr_name", getUser());
-	            q.setParameter("ex_name", name);
-	            q.setParameter("gateway_name", gateway.getGatewayName());
+                generator = new QueryGenerator(EXPERIMENT);
+                generator.setParameter(ExperimentConstants.USERNAME, getUser());
+                generator.setParameter(ExperimentConstants.EXPERIMENT_ID, name);
+                q = generator.selectQuery(em);
 	            Experiment experiment = (Experiment) q.getSingleResult();
-	            ExperimentResource experimentResource = new ExperimentResource(experiment.getExperiment_ID());
-	            ProjectResource projectResource1 = new ProjectResource(experiment.getProject().getProject_ID());
-                projectResource1.setGateway(gateway);
-                projectResource1.setWorker(this);
-                projectResource1.setName(experiment.getProject().getProject_name());
-            	experimentResource.setProject(projectResource1);
-	            experimentResource.setWorker(this);
-	            experimentResource.setGateway(gateway);
-	            experimentResource.setSubmittedDate(experiment.getSubmitted_date());
+	            ExperimentResource experimentResource = (ExperimentResource)Utils.getResource(ResourceType.EXPERIMENT, experiment);
 	            result=experimentResource;
 				break;
 			default:
@@ -147,53 +136,42 @@ public class WorkerResource extends Abst
 		return result;
 	}
 
-	@Override
-	public List<Resource> getMe(Object[] keys) {
-		return null;
-	}
-
-	@Override
 	public List<Resource> get(ResourceType type) {
 		List<Resource> result = new ArrayList<Resource>();
 		begin();
+        QueryGenerator generator;
+        Query q;
 		switch (type) {
 			case PROJECT:
-				Query q = em.createQuery("SELECT p FROM Project p WHERE p.user_name = :owner and p.gateway_name =: gate_name");
-	            q.setParameter("owner", getUser());
-	            q.setParameter("gate_name", gateway.getGatewayName());
+                generator = new QueryGenerator(PROJECT);
+                generator.setParameter(ProjectConstants.USERNAME, getUser());
+                generator.setParameter(ProjectConstants.GATEWAY_NAME, gateway.getGatewayName());
+                q = generator.selectQuery(em);
 	            for (Object o : q.getResultList()) {
 	            	Project project = (Project) o;
-		            ProjectResource projectResource = new ProjectResource(this, gateway, project.getProject_ID());
-		            projectResource.setName(project.getProject_name());
+		            ProjectResource projectResource = (ProjectResource)Utils.getResource(ResourceType.PROJECT, project);
 		            result.add(projectResource);
 				}
 				break;
 			case USER_WORKFLOW:
-				q = em.createQuery("SELECT p FROM Experiment p WHERE p.project_ID = :proj_id and p.user_name = :usr_name and p.experiment_ID = :ex_name");
+                generator = new QueryGenerator(USER_WORKFLOW);
+                generator.setParameter(UserWorkflowConstants.OWNER, getUser());
+                q = generator.selectQuery(em);
 	            q.setParameter("usr_name", getUser());
 	            for (Object o : q.getResultList()) {
 		            User_Workflow userWorkflow = (User_Workflow) o;
-		            UserWorkflowResource userWorkflowResource = new UserWorkflowResource(gateway, this, userWorkflow.getTemplate_name());
-		            userWorkflowResource.setContent(userWorkflow.getWorkflow_graph());
-		            userWorkflowResource.setLastUpdateDate(userWorkflow.getLast_updated_date());
+		            UserWorkflowResource userWorkflowResource = (UserWorkflowResource)Utils.getResource(ResourceType.USER_WORKFLOW, userWorkflow);
 		            result.add(userWorkflowResource);
 	            }
 	            break;
 			case EXPERIMENT:
-				q = em.createQuery("SELECT p FROM Experiment p WHERE p.gateway_name = :gateway_name and p.user_name = :usr_name and p.experiment_ID = :ex_name");
-	            q.setParameter("usr_name", getUser());
-	            q.setParameter("gateway_name", gateway.getGatewayName());
+                generator = new QueryGenerator(EXPERIMENT);
+                generator.setParameter(ExperimentConstants.USERNAME, getUser());
+                generator.setParameter(ExperimentConstants.GATEWAY_NAME, gateway.getGatewayName());
+                q = generator.selectQuery(em);
 	            for (Object o : q.getResultList()) {
 	            	Experiment experiment = (Experiment) o;
-	            	ExperimentResource experimentResource = new ExperimentResource(experiment.getExperiment_ID());
-	            	experimentResource.setGateway(gateway);
-	            	experimentResource.setWorker(this);
-	            	ProjectResource projectResource = new ProjectResource(experiment.getProject().getProject_ID());
-	                projectResource.setGateway(gateway);
-	                projectResource.setWorker(this);
-	                projectResource.setName(experiment.getProject().getProject_name());
-	            	experimentResource.setProject(projectResource);
-	            	experimentResource.setSubmittedDate(experiment.getSubmitted_date());
+	            	ExperimentResource experimentResource = (ExperimentResource)Utils.getResource(ResourceType.EXPERIMENT, experiment);
 		            result.add(experimentResource);
 	            }
 	            break;
@@ -204,9 +182,17 @@ public class WorkerResource extends Abst
 		return result;
 	}
 
-	@Override
 	public void save() {
-		//nothing to do... worker resource is just a concept
+        begin();
+        Gateway_Worker gatewayWorker = new Gateway_Worker();
+        Users users = new Users();
+        users.setUser_name(user);
+        gatewayWorker.setUser(users);
+        Gateway gateway = new Gateway();
+        gateway.setGateway_name(gateway.getGateway_name());
+        gatewayWorker.setGateway(gateway);
+        em.persist(gatewayWorker);
+        end();
 	}
 
 	public String getUser() {
@@ -217,8 +203,15 @@ public class WorkerResource extends Abst
 		this.user = user;
 	}
 
-	
-	public boolean isProjectExists(String name){
+    public GatewayResource getGateway() {
+        return gateway;
+    }
+
+    public void setGateway(GatewayResource gateway) {
+        this.gateway = gateway;
+    }
+
+    public boolean isProjectExists(String name){
 		return isExists(ResourceType.PROJECT, name);
 	}
 	

Modified: incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/resources/data.sql
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/resources/data.sql?rev=1382565&r1=1382564&r2=1382565&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/resources/data.sql (original)
+++ incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/resources/data.sql Sun Sep  9 20:14:45 2012
@@ -1,3 +1,23 @@
+/*
+ *
+ * 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.
+ *
+ */
 create table Gateway
 (
         gateway_name varchar(255),
@@ -10,7 +30,7 @@ create table Configuration
         config_ID int(11) NOT NULL AUTO_INCREMENT,
         config_key varchar(255),
         config_val varchar(255),
-        expire_date date,
+        expire_date TIMESTAMP DEFAULT '0000-00-00 00:00:00',
         PRIMARY KEY(config_ID)
 );
 
@@ -48,7 +68,7 @@ create table Published_Workflow
        created_user varchar(255),
        publish_workflow_name varchar(255),
        version varchar(255),
-       published_date DATE,
+       published_date TIMESTAMP DEFAULT '0000-00-00 00:00:00',
        path varchar (255),
        workflow_content varchar(2000),
        PRIMARY KEY(gateway_name, publish_workflow_name),
@@ -57,11 +77,12 @@ create table Published_Workflow
 );
 
 create table User_Workflow
+
 (
        gateway_name varchar(255),
        owner varchar(255),
        template_name varchar(255),
-       last_updated_date DATE,
+       last_updated_date TIMESTAMP DEFAULT now() on update now(),
        path varchar (255),
        workflow_graph varchar(2000),
        PRIMARY KEY(gateway_name, owner, template_name),
@@ -111,7 +132,7 @@ create table Experiment
 	      gateway_name varchar(255),
           user_name varchar(255),
           experiment_ID varchar(255),
-          submitted_date Date,
+          submitted_date TIMESTAMP DEFAULT '0000-00-00 00:00:00',
           PRIMARY KEY(experiment_ID),
           FOREIGN KEY (gateway_name) REFERENCES Gateway(gateway_name) ON DELETE CASCADE,
           FOREIGN KEY (project_ID) REFERENCES Project(project_ID) ON DELETE CASCADE,