http://git-wip-us.apache.org/repos/asf/airavata/blob/bf5f8c3c/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeOutputResource.java ---------------------------------------------------------------------- diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeOutputResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeOutputResource.java index 95745ec..e7354ea 100644 --- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeOutputResource.java +++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeOutputResource.java @@ -31,6 +31,7 @@ import org.apache.airavata.persistance.registry.jpa.ResourceUtils; import org.apache.airavata.persistance.registry.jpa.model.NodeOutput; import org.apache.airavata.persistance.registry.jpa.model.NodeOutput_PK; import org.apache.airavata.persistance.registry.jpa.model.WorkflowNodeDetail; +import org.apache.airavata.registry.cpi.RegistryException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -83,60 +84,69 @@ public class NodeOutputResource extends AbstractResource { this.value = value; } - @Override - public Resource create(ResourceType type) { + + public Resource create(ResourceType type) throws RegistryException { logger.error("Unsupported resource type for node output data resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } - @Override - public void remove(ResourceType type, Object name) { + + public void remove(ResourceType type, Object name) throws RegistryException{ logger.error("Unsupported resource type for node output data resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } - @Override - public Resource get(ResourceType type, Object name) { + + public Resource get(ResourceType type, Object name) throws RegistryException{ logger.error("Unsupported resource type for node output data resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } - @Override - public List<Resource> get(ResourceType type) { + + public List<Resource> get(ResourceType type) throws RegistryException{ logger.error("Unsupported resource type for node output data resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } - @Override - public void save() { - - EntityManager em = ResourceUtils.getEntityManager(); - NodeOutput existingOutput = em.find(NodeOutput.class, new NodeOutput_PK(outputKey, nodeDetailResource.getNodeInstanceId())); - em.close(); - - em = ResourceUtils.getEntityManager(); - em.getTransaction().begin(); - NodeOutput nodeOutput = new NodeOutput(); - WorkflowNodeDetail nodeDetail = em.find(WorkflowNodeDetail.class, nodeDetailResource.getNodeInstanceId()); - nodeOutput.setNode(nodeDetail); - nodeOutput.setNodeId(nodeDetail.getNodeId()); - nodeOutput.setOutputKey(outputKey); - nodeOutput.setOutputKeyType(outputType); - nodeOutput.setValue(value); - nodeOutput.setMetadata(metadata); - - if (existingOutput != null){ - existingOutput.setNode(nodeDetail); - existingOutput.setNodeId(nodeDetail.getNodeId()); - existingOutput.setOutputKey(outputKey); - existingOutput.setOutputKeyType(outputType); - existingOutput.setValue(value); - existingOutput.setMetadata(metadata); - nodeOutput = em.merge(existingOutput); - }else { - em.persist(nodeOutput); + + public void save() throws RegistryException{ + + EntityManager em = null; + try { + em = ResourceUtils.getEntityManager(); + NodeOutput existingOutput = em.find(NodeOutput.class, new NodeOutput_PK(outputKey, nodeDetailResource.getNodeInstanceId())); + em.close(); + + em = ResourceUtils.getEntityManager(); + em.getTransaction().begin(); + NodeOutput nodeOutput = new NodeOutput(); + WorkflowNodeDetail nodeDetail = em.find(WorkflowNodeDetail.class, nodeDetailResource.getNodeInstanceId()); + nodeOutput.setNode(nodeDetail); + nodeOutput.setNodeId(nodeDetail.getNodeId()); + nodeOutput.setOutputKey(outputKey); + nodeOutput.setOutputKeyType(outputType); + nodeOutput.setValue(value); + nodeOutput.setMetadata(metadata); + + if (existingOutput != null) { + existingOutput.setNode(nodeDetail); + existingOutput.setNodeId(nodeDetail.getNodeId()); + existingOutput.setOutputKey(outputKey); + existingOutput.setOutputKeyType(outputType); + existingOutput.setValue(value); + existingOutput.setMetadata(metadata); + nodeOutput = em.merge(existingOutput); + } else { + em.persist(nodeOutput); + } + em.getTransaction().commit(); + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new RegistryException(e); + } finally { + if (em != null && em.isOpen()) { + em.close(); + } } - em.getTransaction().commit(); - em.close(); } }
http://git-wip-us.apache.org/repos/asf/airavata/blob/bf5f8c3c/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java ---------------------------------------------------------------------- diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java index 9d8b894..bb8755c 100644 --- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java +++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java @@ -32,6 +32,7 @@ import org.apache.airavata.persistance.registry.jpa.ResourceType; 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.apache.airavata.registry.cpi.RegistryException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -67,7 +68,7 @@ public class ProjectResource extends AbstractResource { * @param type child resource type * @return child resource */ - public Resource create(ResourceType type) { + public Resource create(ResourceType type) throws RegistryException { if (type == ResourceType.EXPERIMENT) { ExperimentResource experimentResource = new ExperimentResource(); experimentResource.setGateway(getGateway()); @@ -91,26 +92,35 @@ public class ProjectResource extends AbstractResource { * @param type child resource type * @param name child resource name */ - public void remove(ResourceType type, Object name) { - EntityManager em = ResourceUtils.getEntityManager(); - em.getTransaction().begin(); - if (type == ResourceType.EXPERIMENT) { - QueryGenerator generator = new QueryGenerator(EXPERIMENT); - generator.setParameter(ExperimentConstants.EXPERIMENT_ID, name); - Query q = generator.deleteQuery(em); - q.executeUpdate(); - }else if (type == ResourceType.PROJECT_USER){ - QueryGenerator generator = new QueryGenerator(PROJECT_USER); - generator.setParameter(ProjectUserConstants.USERNAME, name); - generator.setParameter(ProjectUserConstants.PROJECT_ID, this.id); - Query q = generator.deleteQuery(em); - q.executeUpdate(); - }else { - logger.error("Unsupported resource type for project resource.", new IllegalArgumentException()); - throw new IllegalArgumentException("Unsupported resource type for project resource."); + public void remove(ResourceType type, Object name) throws RegistryException{ + EntityManager em = null; + try { + em = ResourceUtils.getEntityManager(); + em.getTransaction().begin(); + if (type == ResourceType.EXPERIMENT) { + QueryGenerator generator = new QueryGenerator(EXPERIMENT); + generator.setParameter(ExperimentConstants.EXPERIMENT_ID, name); + Query q = generator.deleteQuery(em); + q.executeUpdate(); + } else if (type == ResourceType.PROJECT_USER) { + QueryGenerator generator = new QueryGenerator(PROJECT_USER); + generator.setParameter(ProjectUserConstants.USERNAME, name); + generator.setParameter(ProjectUserConstants.PROJECT_ID, this.id); + Query q = generator.deleteQuery(em); + q.executeUpdate(); + } else { + logger.error("Unsupported resource type for project resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported resource type for project resource."); + } + em.getTransaction().commit(); + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new RegistryException(e); + } finally { + if (em != null && em.isOpen()) { + em.close(); + } } - em.getTransaction().commit(); - em.close(); } /** @@ -119,35 +129,44 @@ public class ProjectResource extends AbstractResource { * @param name child resource name * @return child resource */ - public Resource get(ResourceType type, Object name) { - if (type == ResourceType.EXPERIMENT) { - EntityManager em = ResourceUtils.getEntityManager(); - em.getTransaction().begin(); - QueryGenerator generator = new QueryGenerator(EXPERIMENT); - generator.setParameter(ExperimentConstants.EXPERIMENT_ID, name); - Query q = generator.selectQuery(em); - Experiment experiment = (Experiment) q.getSingleResult(); - ExperimentResource experimentResource = (ExperimentResource) - Utils.getResource(ResourceType.EXPERIMENT, experiment); - em.getTransaction().commit(); - em.close(); - return experimentResource; - } else if (type == ResourceType.PROJECT_USER){ - EntityManager em = ResourceUtils.getEntityManager(); - em.getTransaction().begin(); - QueryGenerator generator = new QueryGenerator(PROJECT_USER); - generator.setParameter(ProjectUserConstants.USERNAME, name); - generator.setParameter(ProjectUserConstants.PROJECT_ID, this.id); - Query q = generator.selectQuery(em); - ProjectUser prUser = (ProjectUser) q.getSingleResult(); - ExperimentResource experimentResource = (ExperimentResource) - Utils.getResource(ResourceType.PROJECT_USER, prUser); - em.getTransaction().commit(); - em.close(); - return experimentResource; - }else{ - logger.error("Unsupported resource type for project resource.", new IllegalArgumentException()); - throw new IllegalArgumentException("Unsupported resource type for project resource."); + public Resource get(ResourceType type, Object name) throws RegistryException { + EntityManager em = null; + try { + if (type == ResourceType.EXPERIMENT) { + em = ResourceUtils.getEntityManager(); + em.getTransaction().begin(); + QueryGenerator generator = new QueryGenerator(EXPERIMENT); + generator.setParameter(ExperimentConstants.EXPERIMENT_ID, name); + Query q = generator.selectQuery(em); + Experiment experiment = (Experiment) q.getSingleResult(); + ExperimentResource experimentResource = (ExperimentResource) + Utils.getResource(ResourceType.EXPERIMENT, experiment); + em.getTransaction().commit(); + em.close(); + return experimentResource; + } else if (type == ResourceType.PROJECT_USER) { + em = ResourceUtils.getEntityManager(); + em.getTransaction().begin(); + QueryGenerator generator = new QueryGenerator(PROJECT_USER); + generator.setParameter(ProjectUserConstants.USERNAME, name); + generator.setParameter(ProjectUserConstants.PROJECT_ID, this.id); + Query q = generator.selectQuery(em); + ProjectUser prUser = (ProjectUser) q.getSingleResult(); + ExperimentResource experimentResource = (ExperimentResource) + Utils.getResource(ResourceType.PROJECT_USER, prUser); + em.getTransaction().commit(); + em.close(); + return experimentResource; + } else { + logger.error("Unsupported resource type for project resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported resource type for project resource."); + } + } catch (Exception e) { + throw new RegistryException(e); + } finally { + if (em != null && em.isOpen()) { + em.close(); + } } } @@ -156,45 +175,55 @@ public class ProjectResource extends AbstractResource { * @param type child resource type * @return list of child resources */ - public List<Resource> get(ResourceType type) { + public List<Resource> get(ResourceType type) throws RegistryException{ List<Resource> resourceList = new ArrayList<Resource>(); - if (type == ResourceType.EXPERIMENT) { - EntityManager em = ResourceUtils.getEntityManager(); - em.getTransaction().begin(); - QueryGenerator generator = new QueryGenerator(EXPERIMENT); - generator.setParameter(ExperimentConstants.PROJECT_ID, id); - Query q = generator.selectQuery(em); - List<?> results = q.getResultList(); - if (results.size() != 0) { - for (Object result : results) { - Experiment experiment = (Experiment) result; - ExperimentResource experimentResource = (ExperimentResource) - Utils.getResource(ResourceType.EXPERIMENT, experiment); - resourceList.add(experimentResource); + EntityManager em = null; + try { + if (type == ResourceType.EXPERIMENT) { + em = ResourceUtils.getEntityManager(); + em.getTransaction().begin(); + QueryGenerator generator = new QueryGenerator(EXPERIMENT); + generator.setParameter(ExperimentConstants.PROJECT_ID, id); + Query q = generator.selectQuery(em); + List<?> results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + Experiment experiment = (Experiment) result; + ExperimentResource experimentResource = (ExperimentResource) + Utils.getResource(ResourceType.EXPERIMENT, experiment); + resourceList.add(experimentResource); + } } - } - em.getTransaction().commit(); - em.close(); - }else if (type == ResourceType.PROJECT_USER) { - EntityManager em = ResourceUtils.getEntityManager(); - em.getTransaction().begin(); - QueryGenerator generator = new QueryGenerator(PROJECT_USER); - generator.setParameter(ProjectUserConstants.PROJECT_ID, id); - Query q = generator.selectQuery(em); - List<?> results = q.getResultList(); - if (results.size() != 0) { - for (Object result : results) { - ProjectUser projectUser = (ProjectUser) result; - ProjectUserResource pr = (ProjectUserResource) - Utils.getResource(ResourceType.PROJECT_USER, projectUser); - resourceList.add(pr); + em.getTransaction().commit(); + em.close(); + } else if (type == ResourceType.PROJECT_USER) { + em = ResourceUtils.getEntityManager(); + em.getTransaction().begin(); + QueryGenerator generator = new QueryGenerator(PROJECT_USER); + generator.setParameter(ProjectUserConstants.PROJECT_ID, id); + Query q = generator.selectQuery(em); + List<?> results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + ProjectUser projectUser = (ProjectUser) result; + ProjectUserResource pr = (ProjectUserResource) + Utils.getResource(ResourceType.PROJECT_USER, projectUser); + resourceList.add(pr); + } } + em.getTransaction().commit(); + em.close(); + } else { + logger.error("Unsupported resource type for project resource.", new IllegalArgumentException()); + throw new IllegalArgumentException("Unsupported resource type for project resource."); + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new RegistryException(e); + } finally { + if (em != null && em.isOpen()) { + em.close(); } - em.getTransaction().commit(); - em.close(); - }else { - logger.error("Unsupported resource type for project resource.", new IllegalArgumentException()); - throw new IllegalArgumentException("Unsupported resource type for project resource."); } return resourceList; } @@ -202,38 +231,47 @@ public class ProjectResource extends AbstractResource { /** * save project to the database */ - public void save() { - EntityManager em = ResourceUtils.getEntityManager(); - Project existingProject = em.find(Project.class, id); - em.close(); - - em = ResourceUtils.getEntityManager(); - em.getTransaction().begin(); - Project project = new Project(); - project.setProject_id(id); - project.setProject_name(name); - Gateway modelGateway = em.find(Gateway.class, gateway.getGatewayName()); - project.setGateway(modelGateway); - Users user = em.find(Users.class, worker.getUser()); - project.setUsers(user); - project.setUser_name(user.getUser_name()); - project.setDescription(description); - project.setCreationTime(creationTime); - - if(existingProject != null){ - existingProject.setProject_name(name); - existingProject.setGateway(modelGateway); - existingProject.setUsers(user); - existingProject.setUser_name(user.getUser_name()); - existingProject.setDescription(description); - existingProject.setCreationTime(creationTime); - project = em.merge(existingProject); - }else { - em.persist(project); - } + public void save() throws RegistryException{ + EntityManager em = null; + try { + em = ResourceUtils.getEntityManager(); + Project existingProject = em.find(Project.class, id); + em.close(); + + em = ResourceUtils.getEntityManager(); + em.getTransaction().begin(); + Project project = new Project(); + project.setProject_id(id); + project.setProject_name(name); + Gateway modelGateway = em.find(Gateway.class, gateway.getGatewayName()); + project.setGateway(modelGateway); + Users user = em.find(Users.class, worker.getUser()); + project.setUsers(user); + project.setUser_name(user.getUser_name()); + project.setDescription(description); + project.setCreationTime(creationTime); + + if (existingProject != null) { + existingProject.setProject_name(name); + existingProject.setGateway(modelGateway); + existingProject.setUsers(user); + existingProject.setUser_name(user.getUser_name()); + existingProject.setDescription(description); + existingProject.setCreationTime(creationTime); + project = em.merge(existingProject); + } else { + em.persist(project); + } - em.getTransaction().commit(); - em.close(); + em.getTransaction().commit(); + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new RegistryException(e); + } finally { + if (em != null && em.isOpen()) { + em.close(); + } + } } public String getId() { @@ -313,7 +351,7 @@ public class ProjectResource extends AbstractResource { * @param experimentId experiment ID * @return whether the experiment exist */ - public boolean isExperimentExists(String experimentId){ + public boolean isExperimentExists(String experimentId) throws RegistryException{ return isExists(ResourceType.EXPERIMENT, experimentId); } @@ -322,7 +360,7 @@ public class ProjectResource extends AbstractResource { * @param experimentId experiment ID * @return experiment resource */ - public ExperimentResource createExperiment(String experimentId){ + public ExperimentResource createExperiment(String experimentId) throws RegistryException{ ExperimentResource experimentResource = (ExperimentResource)create(ResourceType.EXPERIMENT); experimentResource.setExpID(experimentId); return experimentResource; @@ -333,7 +371,7 @@ public class ProjectResource extends AbstractResource { * @param experimentId experiment ID * @return experiment resource */ - public ExperimentResource getExperiment(String experimentId){ + public ExperimentResource getExperiment(String experimentId) throws RegistryException{ return (ExperimentResource)get(ResourceType.EXPERIMENT,experimentId); } @@ -341,7 +379,7 @@ public class ProjectResource extends AbstractResource { * * @return list of experiments */ - public List<ExperimentResource> getExperiments(){ + public List<ExperimentResource> getExperiments() throws RegistryException{ List<Resource> list = get(ResourceType.EXPERIMENT); List<ExperimentResource> result=new ArrayList<ExperimentResource>(); for (Resource resource : list) { @@ -354,11 +392,11 @@ public class ProjectResource extends AbstractResource { * * @param experimentId experiment ID */ - public void removeExperiment(String experimentId){ + public void removeExperiment(String experimentId) throws RegistryException{ remove(ResourceType.EXPERIMENT, experimentId); } - public List<ProjectUserResource> getProjectUserList (){ + public List<ProjectUserResource> getProjectUserList () throws RegistryException{ List<Resource> resources = get(ResourceType.PROJECT_USER); List<ProjectUserResource> projectUserResources = new ArrayList<ProjectUserResource>(); if (resources != null && !resources.isEmpty()){ http://git-wip-us.apache.org/repos/asf/airavata/blob/bf5f8c3c/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectUserResource.java ---------------------------------------------------------------------- diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectUserResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectUserResource.java index 3eade6a..d1b34ee 100644 --- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectUserResource.java +++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectUserResource.java @@ -25,6 +25,7 @@ import org.apache.airavata.persistance.registry.jpa.Resource; import org.apache.airavata.persistance.registry.jpa.ResourceType; import org.apache.airavata.persistance.registry.jpa.ResourceUtils; import org.apache.airavata.persistance.registry.jpa.model.*; +import org.apache.airavata.registry.cpi.RegistryException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -53,57 +54,66 @@ public class ProjectUserResource extends AbstractResource { this.userName = userName; } - @Override - public Resource create(ResourceType type) { + + public Resource create(ResourceType type) throws RegistryException { logger.error("Unsupported resource type for project resource data resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } - @Override - public void remove(ResourceType type, Object name) { + + public void remove(ResourceType type, Object name) throws RegistryException{ logger.error("Unsupported resource type for project resource data resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } - @Override - public Resource get(ResourceType type, Object name) { + + public Resource get(ResourceType type, Object name) throws RegistryException{ logger.error("Unsupported resource type for project resource data resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } - @Override - public List<Resource> get(ResourceType type) { + + public List<Resource> get(ResourceType type) throws RegistryException{ logger.error("Unsupported resource type for project resource data resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } - @Override - public void save() { - EntityManager em = ResourceUtils.getEntityManager(); - ProjectUser existingPrUser = em.find(ProjectUser.class, new ProjectUser_PK(projectId, userName)); - em.close(); - - em = ResourceUtils.getEntityManager(); - em.getTransaction().begin(); - ProjectUser prUser = new ProjectUser(); - prUser.setProjectID(projectId); - prUser.setUserName(userName); - Users user = em.find(Users.class, userName); - prUser.setUser(user); - Project project = em.find(Project.class, projectId); - prUser.setProject(project); - - if(existingPrUser != null){ - existingPrUser.setProjectID(projectId); - existingPrUser.setUserName(userName); - existingPrUser.setUser(user); - existingPrUser.setProject(project); - prUser = em.merge(existingPrUser); - }else { - em.persist(prUser); + + public void save() throws RegistryException{ + EntityManager em = null; + try { + em = ResourceUtils.getEntityManager(); + ProjectUser existingPrUser = em.find(ProjectUser.class, new ProjectUser_PK(projectId, userName)); + em.close(); + + em = ResourceUtils.getEntityManager(); + em.getTransaction().begin(); + ProjectUser prUser = new ProjectUser(); + prUser.setProjectID(projectId); + prUser.setUserName(userName); + Users user = em.find(Users.class, userName); + prUser.setUser(user); + Project project = em.find(Project.class, projectId); + prUser.setProject(project); + + if (existingPrUser != null) { + existingPrUser.setProjectID(projectId); + existingPrUser.setUserName(userName); + existingPrUser.setUser(user); + existingPrUser.setProject(project); + prUser = em.merge(existingPrUser); + } else { + em.persist(prUser); + } + + em.getTransaction().commit(); + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new RegistryException(e); + } finally { + if (em != null && em.isOpen()) { + em.close(); + } } - - em.getTransaction().commit(); - em.close(); } } http://git-wip-us.apache.org/repos/asf/airavata/blob/bf5f8c3c/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/PublishWorkflowResource.java ---------------------------------------------------------------------- diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/PublishWorkflowResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/PublishWorkflowResource.java index 0ee7da0..a4bbc52 100644 --- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/PublishWorkflowResource.java +++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/PublishWorkflowResource.java @@ -27,14 +27,12 @@ import org.apache.airavata.persistance.registry.jpa.model.Gateway; import org.apache.airavata.persistance.registry.jpa.model.Published_Workflow; import org.apache.airavata.persistance.registry.jpa.model.Published_Workflow_PK; import org.apache.airavata.persistance.registry.jpa.model.Users; -import org.apache.airavata.persistance.registry.jpa.utils.QueryGenerator; +import org.apache.airavata.registry.cpi.RegistryException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.persistence.EntityManager; -import javax.persistence.Query; import java.sql.Timestamp; -import java.util.ArrayList; import java.util.List; public class PublishWorkflowResource extends AbstractResource { @@ -155,7 +153,7 @@ public class PublishWorkflowResource extends AbstractResource { * @param type type of the child resource * @return UnsupportedOperationException */ - public Resource create(ResourceType type) { + public Resource create(ResourceType type) throws RegistryException { logger.error("Unsupported resource type for published workflow resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } @@ -166,7 +164,7 @@ public class PublishWorkflowResource extends AbstractResource { * @param type type of the child resource * @param name name of the child resource */ - public void remove(ResourceType type, Object name) { + public void remove(ResourceType type, Object name) throws RegistryException{ logger.error("Unsupported resource type for published workflow resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } @@ -178,40 +176,18 @@ public class PublishWorkflowResource extends AbstractResource { * @param name name of the child resource * @return UnsupportedOperationException */ - public Resource get(ResourceType type, Object name) { + public Resource get(ResourceType type, Object name) throws RegistryException{ logger.error("Unsupported resource type for published workflow resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } /** - * - * @param keys object list including gateway name and published workflow name - * @return published workflow resource - */ - public List<Resource> populate(Object[] keys) { - List<Resource> list = new ArrayList<Resource>(); - EntityManager em = ResourceUtils.getEntityManager(); - em.getTransaction().begin(); - QueryGenerator generator = new QueryGenerator(PUBLISHED_WORKFLOW); - generator.setParameter(PublishedWorkflowConstants.GATEWAY_NAME, keys[0]); - generator.setParameter(PublishedWorkflowConstants.PUBLISH_WORKFLOW_NAME, keys[1]); - Query q = generator.selectQuery(em); - Published_Workflow publishedWorkflow = (Published_Workflow)q.getSingleResult(); - PublishWorkflowResource publishWorkflowResource = (PublishWorkflowResource) - Utils.getResource(ResourceType.PUBLISHED_WORKFLOW, publishedWorkflow); - em.getTransaction().commit(); - em.close(); - list.add(publishWorkflowResource); - return list; - } - - /** * since published workflows are at the leaf level of the * data structure, this method is not valid * @param type type of the child resource * @return UnsupportedOperationException */ - public List<Resource> get(ResourceType type) { + public List<Resource> get(ResourceType type) throws RegistryException{ logger.error("Unsupported resource type for published workflow resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } @@ -219,38 +195,47 @@ public class PublishWorkflowResource extends AbstractResource { /** * save published workflow to the database */ - public void save() { - EntityManager em = ResourceUtils.getEntityManager(); - Published_Workflow existingWF = em.find(Published_Workflow.class, new Published_Workflow_PK(gateway.getGatewayName(), name)); - em.close(); + public void save() throws RegistryException{ + EntityManager em = null; + try { + em = ResourceUtils.getEntityManager(); + Published_Workflow existingWF = em.find(Published_Workflow.class, new Published_Workflow_PK(gateway.getGatewayName(), name)); + em.close(); - em = ResourceUtils.getEntityManager(); - em.getTransaction().begin(); - Published_Workflow publishedWorkflow = new Published_Workflow(); - publishedWorkflow.setPublish_workflow_name(getName()); - publishedWorkflow.setPublished_date(publishedDate); - publishedWorkflow.setVersion(version); - byte[] bytes = content.getBytes(); - publishedWorkflow.setWorkflow_content(bytes); - Gateway gateway = new Gateway(); - gateway.setGateway_name(this.gateway.getGatewayName()); - publishedWorkflow.setGateway(gateway); - Users user = new Users(); - user.setUser_name(createdUser); - publishedWorkflow.setUser(user); - if(existingWF != null){ - existingWF.setUser(user); - existingWF.setPublished_date(publishedDate); - existingWF.setWorkflow_content(bytes); - existingWF.setVersion(version); - existingWF.setPath(path); - publishedWorkflow = em.merge(existingWF); - }else { - em.merge(publishedWorkflow); - } + em = ResourceUtils.getEntityManager(); + em.getTransaction().begin(); + Published_Workflow publishedWorkflow = new Published_Workflow(); + publishedWorkflow.setPublish_workflow_name(getName()); + publishedWorkflow.setPublished_date(publishedDate); + publishedWorkflow.setVersion(version); + byte[] bytes = content.getBytes(); + publishedWorkflow.setWorkflow_content(bytes); + Gateway gateway = new Gateway(); + gateway.setGateway_name(this.gateway.getGatewayName()); + publishedWorkflow.setGateway(gateway); + Users user = new Users(); + user.setUser_name(createdUser); + publishedWorkflow.setUser(user); + if (existingWF != null) { + existingWF.setUser(user); + existingWF.setPublished_date(publishedDate); + existingWF.setWorkflow_content(bytes); + existingWF.setVersion(version); + existingWF.setPath(path); + publishedWorkflow = em.merge(existingWF); + } else { + em.merge(publishedWorkflow); + } - em.getTransaction().commit(); - em.close(); + em.getTransaction().commit(); + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new RegistryException(e); + } finally { + if (em != null && em.isOpen()) { + em.close(); + } + } } @@ -261,7 +246,7 @@ public class PublishWorkflowResource extends AbstractResource { * @param name name of the child resource * @return UnsupportedOperationException */ - public boolean isExists(ResourceType type, Object name) { + public boolean isExists(ResourceType type, Object name) throws RegistryException{ logger.error("Unsupported resource type for published workflow resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } http://git-wip-us.apache.org/repos/asf/airavata/blob/bf5f8c3c/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/QosParamResource.java ---------------------------------------------------------------------- diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/QosParamResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/QosParamResource.java index eaef63f..f2ce6a0 100644 --- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/QosParamResource.java +++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/QosParamResource.java @@ -29,6 +29,7 @@ import org.apache.airavata.persistance.registry.jpa.model.QosParam; import org.apache.airavata.persistance.registry.jpa.model.TaskDetail; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.apache.airavata.registry.cpi.RegistryException; import javax.persistence.EntityManager; import java.util.List; @@ -90,49 +91,58 @@ public class QosParamResource extends AbstractResource { this.noOfRetries = noOfRetries; } - @Override - public Resource create(ResourceType type) { + + public Resource create(ResourceType type) throws RegistryException{ logger.error("Unsupported resource type for qos params resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } - @Override - public void remove(ResourceType type, Object name) { + + public void remove(ResourceType type, Object name) throws RegistryException{ logger.error("Unsupported resource type for qos params resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } - @Override - public Resource get(ResourceType type, Object name) { + + public Resource get(ResourceType type, Object name) throws RegistryException{ logger.error("Unsupported resource type for qos params resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } - @Override - public List<Resource> get(ResourceType type) { + + public List<Resource> get(ResourceType type) throws RegistryException{ logger.error("Unsupported resource type for qos params resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } - @Override - public void save() { - EntityManager em = ResourceUtils.getEntityManager(); - em.getTransaction().begin(); - QosParam qosParam = new QosParam(); - Experiment experiment = em.find(Experiment.class, experimentResource.getExpID()); - if (taskDetailResource != null){ - TaskDetail taskDetail = em.find(TaskDetail.class, taskDetailResource.getTaskId()); - qosParam.setTaskId(taskDetailResource.getTaskId()); - qosParam.setTask(taskDetail); + + public void save() throws RegistryException{ + EntityManager em = null; + try { + em = ResourceUtils.getEntityManager(); + em.getTransaction().begin(); + QosParam qosParam = new QosParam(); + Experiment experiment = em.find(Experiment.class, experimentResource.getExpID()); + if (taskDetailResource != null) { + TaskDetail taskDetail = em.find(TaskDetail.class, taskDetailResource.getTaskId()); + qosParam.setTaskId(taskDetailResource.getTaskId()); + qosParam.setTask(taskDetail); + } + qosParam.setExpId(experimentResource.getExpID()); + qosParam.setExperiment(experiment); + qosParam.setStartExecutionAt(startExecutionAt); + qosParam.setExecuteBefore(executeBefore); + qosParam.setNoOfRetries(noOfRetries); + em.persist(qosParam); + qosId = qosParam.getQosId(); + em.getTransaction().commit(); + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new RegistryException(e); + } finally { + if (em != null && em.isOpen()) { + em.close(); + } } - qosParam.setExpId(experimentResource.getExpID()); - qosParam.setExperiment(experiment); - qosParam.setStartExecutionAt(startExecutionAt); - qosParam.setExecuteBefore(executeBefore); - qosParam.setNoOfRetries(noOfRetries); - em.persist(qosParam); - qosId = qosParam.getQosId(); - em.getTransaction().commit(); - em.close(); } } http://git-wip-us.apache.org/repos/asf/airavata/blob/bf5f8c3c/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ServiceDescriptorResource.java ---------------------------------------------------------------------- diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ServiceDescriptorResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ServiceDescriptorResource.java index d0a93ba..371e4ea 100644 --- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ServiceDescriptorResource.java +++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ServiceDescriptorResource.java @@ -27,6 +27,7 @@ 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 org.apache.airavata.registry.cpi.RegistryException; import javax.persistence.EntityManager; import javax.persistence.Query; @@ -72,7 +73,7 @@ public class ServiceDescriptorResource extends AbstractResource { this.content = content; } - public Resource create(ResourceType type) { + public Resource create(ResourceType type) throws RegistryException{ if (type == ResourceType.APPLICATION_DESCRIPTOR) { ApplicationDescriptorResource applicationDescriptorResource = new ApplicationDescriptorResource(); applicationDescriptorResource.setGatewayName(gatewayName); @@ -83,84 +84,86 @@ public class ServiceDescriptorResource extends AbstractResource { throw new IllegalArgumentException("Unsupported resource type for service descriptor resource."); } - public void remove(ResourceType type, Object name) { + public void remove(ResourceType type, Object name) throws RegistryException{ logger.error("Unsupported resource type for service descriptor resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } - public Resource get(ResourceType type, Object name) { + public Resource get(ResourceType type, Object name) throws RegistryException{ logger.error("Unsupported resource type for service descriptor resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } - public List<Resource> populate(Object[] keys) { - List<Resource> list = new ArrayList<Resource>(); - EntityManager em = ResourceUtils.getEntityManager(); - em.getTransaction().begin(); - QueryGenerator generator = new QueryGenerator(SERVICE_DESCRIPTOR); - generator.setParameter(ServiceDescriptorConstants.GATEWAY_NAME, keys[0]); - generator.setParameter(ServiceDescriptorConstants.SERVICE_DESC_ID, keys[1]); - Query q = generator.selectQuery(em); - Service_Descriptor serviceDescriptor = (Service_Descriptor)q.getSingleResult(); - ServiceDescriptorResource serviceDescriptorResource = (ServiceDescriptorResource)Utils.getResource(ResourceType.SERVICE_DESCRIPTOR, serviceDescriptor); - em.getTransaction().commit(); - em.close(); - list.add(serviceDescriptorResource); - return list; - } - public List<Resource> get(ResourceType type) { + public List<Resource> get(ResourceType type) throws RegistryException{ List<Resource> resourceList = new ArrayList<Resource>(); - if (type == ResourceType.APPLICATION_DESCRIPTOR) { - EntityManager em = ResourceUtils.getEntityManager(); - em.getTransaction().begin(); - QueryGenerator queryGenerator = new QueryGenerator(APPLICATION_DESCRIPTOR); - queryGenerator.setParameter(ApplicationDescriptorConstants.GATEWAY_NAME, gatewayName); - queryGenerator.setParameter(ApplicationDescriptorConstants.SERVICE_DESC_ID, serviceDescName); - Query q = queryGenerator.selectQuery(em); - List results = q.getResultList(); - if (results.size() != 0) { - for (Object result : results) { - Application_Descriptor applicationDescriptor = (Application_Descriptor) result; - ApplicationDescriptorResource applicationDescriptorResource = (ApplicationDescriptorResource)Utils.getResource(ResourceType.APPLICATION_DESCRIPTOR, applicationDescriptor); - resourceList.add(applicationDescriptorResource); + EntityManager em = null; + try { + if (type == ResourceType.APPLICATION_DESCRIPTOR) { + em = ResourceUtils.getEntityManager(); + em.getTransaction().begin(); + QueryGenerator queryGenerator = new QueryGenerator(APPLICATION_DESCRIPTOR); + queryGenerator.setParameter(ApplicationDescriptorConstants.GATEWAY_NAME, gatewayName); + queryGenerator.setParameter(ApplicationDescriptorConstants.SERVICE_DESC_ID, serviceDescName); + Query q = queryGenerator.selectQuery(em); + List results = q.getResultList(); + if (results.size() != 0) { + for (Object result : results) { + Application_Descriptor applicationDescriptor = (Application_Descriptor) result; + ApplicationDescriptorResource applicationDescriptorResource = (ApplicationDescriptorResource) Utils.getResource(ResourceType.APPLICATION_DESCRIPTOR, applicationDescriptor); + resourceList.add(applicationDescriptorResource); + } } + em.getTransaction().commit(); + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new RegistryException(e); + } finally { + if (em != null && em.isOpen()) { + em.close(); } - em.getTransaction().commit(); - em.close(); } return resourceList; } - public void save() { - EntityManager em = ResourceUtils.getEntityManager(); - Service_Descriptor existingServiceDesc = em.find(Service_Descriptor.class, new Service_Descriptor_PK(gatewayName, serviceDescName)); - em.close(); - - em = ResourceUtils.getEntityManager(); - em.getTransaction().begin(); - - Service_Descriptor serviceDescriptor = new Service_Descriptor(); - serviceDescriptor.setService_descriptor_ID(getServiceDescName()); - Gateway gateway = em.find(Gateway.class, gatewayName); - serviceDescriptor.setGateway(gateway); - byte[] bytes = content.getBytes(); - serviceDescriptor.setService_descriptor_xml(bytes); - Users user = em.find(Users.class, userName); - serviceDescriptor.setUser(user); - if(existingServiceDesc != null) { - existingServiceDesc.setUser(user); - existingServiceDesc.setService_descriptor_xml(bytes); - serviceDescriptor = em.merge(existingServiceDesc); - }else { - em.merge(serviceDescriptor); + public void save() throws RegistryException{ + EntityManager em = null; + try { + em = ResourceUtils.getEntityManager(); + Service_Descriptor existingServiceDesc = em.find(Service_Descriptor.class, new Service_Descriptor_PK(gatewayName, serviceDescName)); + em.close(); + + em = ResourceUtils.getEntityManager(); + em.getTransaction().begin(); + Service_Descriptor serviceDescriptor = new Service_Descriptor(); + serviceDescriptor.setService_descriptor_ID(getServiceDescName()); + Gateway gateway = em.find(Gateway.class, gatewayName); + serviceDescriptor.setGateway(gateway); + byte[] bytes = content.getBytes(); + serviceDescriptor.setService_descriptor_xml(bytes); + Users user = em.find(Users.class, userName); + serviceDescriptor.setUser(user); + if (existingServiceDesc != null) { + existingServiceDesc.setUser(user); + existingServiceDesc.setService_descriptor_xml(bytes); + serviceDescriptor = em.merge(existingServiceDesc); + } else { + em.merge(serviceDescriptor); + } + em.getTransaction().commit(); + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new RegistryException(e); + } finally { + if (em != null && em.isOpen()) { + em.close(); + } } - em.getTransaction().commit(); - em.close(); } - public boolean isExists(ResourceType type, Object name) { + public boolean isExists(ResourceType type, Object name) throws RegistryException{ logger.error("Unsupported resource type for service descriptor resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } http://git-wip-us.apache.org/repos/asf/airavata/blob/bf5f8c3c/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/StatusResource.java ---------------------------------------------------------------------- diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/StatusResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/StatusResource.java index 426b9c4..f821e4d 100644 --- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/StatusResource.java +++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/StatusResource.java @@ -27,6 +27,7 @@ import org.apache.airavata.persistance.registry.jpa.ResourceUtils; import org.apache.airavata.persistance.registry.jpa.model.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.apache.airavata.registry.cpi.RegistryException; import javax.persistence.EntityManager; import java.sql.Timestamp; @@ -116,67 +117,75 @@ public class StatusResource extends AbstractResource { this.statusType = statusType; } - @Override - public Resource create(ResourceType type) { + + public Resource create(ResourceType type) throws RegistryException{ logger.error("Unsupported resource type for status resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } - @Override - public void remove(ResourceType type, Object name) { + + public void remove(ResourceType type, Object name) throws RegistryException{ logger.error("Unsupported resource type for status resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } - @Override - public Resource get(ResourceType type, Object name) { + + public Resource get(ResourceType type, Object name) throws RegistryException{ logger.error("Unsupported resource type for status resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } - @Override - public List<Resource> get(ResourceType type) { + + public List<Resource> get(ResourceType type) throws RegistryException{ logger.error("Unsupported resource type for status resource.", new UnsupportedOperationException()); throw new UnsupportedOperationException(); } - @Override - public void save() { - EntityManager em = ResourceUtils.getEntityManager(); - em.getTransaction().begin(); - Status status; - if (statusId != 0){ - status = em.find(Status.class, statusId); - status.setStatusId(statusId); - }else { - status = new Status(); + + public void save() throws RegistryException{ + EntityManager em = null; + try { + em = ResourceUtils.getEntityManager(); + em.getTransaction().begin(); + Status status; + if (statusId != 0) { + status = em.find(Status.class, statusId); + status.setStatusId(statusId); + } else { + status = new Status(); + } + Experiment experiment = em.find(Experiment.class, experimentResource.getExpID()); + if (taskDetailResource != null) { + TaskDetail taskDetail = em.find(TaskDetail.class, taskDetailResource.getTaskId()); + status.setTask(taskDetail); + status.setTaskId(taskDetailResource.getTaskId()); + } + if (workflowNodeDetail != null) { + WorkflowNodeDetail nodeDetail = em.find(WorkflowNodeDetail.class, workflowNodeDetail.getNodeInstanceId()); + status.setNode(nodeDetail); + status.setNodeId(workflowNodeDetail.getNodeInstanceId()); + } + if (dataTransferDetail != null) { + DataTransferDetail transferDetail = em.find(DataTransferDetail.class, dataTransferDetail.getTransferId()); + status.setTransferDetail(transferDetail); + status.setTransferId(dataTransferDetail.getTransferId()); + } + status.setExperiment(experiment); + status.setJobId(jobId); + status.setExpId(experimentResource.getExpID()); + status.setState(state); + status.setStatusUpdateTime(statusUpdateTime); + status.setStatusType(statusType); + em.persist(status); + statusId = status.getStatusId(); + em.getTransaction().commit(); + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new RegistryException(e); + } finally { + if (em != null && em.isOpen()) { + em.close(); + } } - - Experiment experiment = em.find(Experiment.class, experimentResource.getExpID()); - if (taskDetailResource != null){ - TaskDetail taskDetail = em.find(TaskDetail.class, taskDetailResource.getTaskId()); - status.setTask(taskDetail); - status.setTaskId(taskDetailResource.getTaskId()); - } - if (workflowNodeDetail != null){ - WorkflowNodeDetail nodeDetail = em.find(WorkflowNodeDetail.class, workflowNodeDetail.getNodeInstanceId()); - status.setNode(nodeDetail); - status.setNodeId(workflowNodeDetail.getNodeInstanceId()); - } - if (dataTransferDetail != null){ - DataTransferDetail transferDetail = em.find(DataTransferDetail.class, dataTransferDetail.getTransferId()); - status.setTransferDetail(transferDetail); - status.setTransferId(dataTransferDetail.getTransferId()); - } - status.setExperiment(experiment); - status.setJobId(jobId); - status.setExpId(experimentResource.getExpID()); - status.setState(state); - status.setStatusUpdateTime(statusUpdateTime); - status.setStatusType(statusType); - em.persist(status); - statusId = status.getStatusId(); - em.getTransaction().commit(); - em.close(); } }
