public void save() throws AppCatalogException { EntityManager em = null; try { em = AppCatalogJPAUtils.getEntityManager(); GlobusJobSubmission existingGlobusSubmission = em.find(GlobusJobSubmission.class, submissionID); em.close(); em = AppCatalogJPAUtils.getEntityManager(); em.getTransaction().begin(); if (existingGlobusSubmission != null) { existingGlobusSubmission.setSubmissionID(submissionID); existingGlobusSubmission.setResourceJobManager(resourceJobManager); existingGlobusSubmission.setSecurityProtocol(securityProtocol); em.merge(existingGlobusSubmission); } else { GlobusJobSubmission globusJobSubmission = new GlobusJobSubmission(); globusJobSubmission.setSubmissionID(submissionID); globusJobSubmission.setSecurityProtocol(securityProtocol); globusJobSubmission.setResourceJobManager(resourceJobManager); em.persist(globusJobSubmission); } em.getTransaction().commit(); em.close(); } catch (Exception e) { logger.error(e.getMessage(), e); throw new AppCatalogException(e); } finally { if (em != null && em.isOpen()) { if (em.getTransaction().isActive()) { em.getTransaction().rollback(); } em.close(); } } }
public List<String> getIds(String fieldName, Object value) throws AppCatalogException { List<String> globusSubmissionResourceIDs = new ArrayList<String>(); EntityManager em = null; try { em = AppCatalogJPAUtils.getEntityManager(); em.getTransaction().begin(); Query q; AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(GLOBUS_SUBMISSION); List results; if (fieldName.equals(GlobusJobSubmissionConstants.SUBMISSION_ID)) { generator.setParameter(GlobusJobSubmissionConstants.SUBMISSION_ID, value); q = generator.selectQuery(em); results = q.getResultList(); if (results.size() != 0) { for (Object result : results) { GlobusJobSubmission globusJobSubmission = (GlobusJobSubmission) result; globusSubmissionResourceIDs.add(globusJobSubmission.getSubmissionID()); } } } else if (fieldName.equals(GlobusJobSubmissionConstants.GLOBUS_GATEKEEPER_EP)) { generator.setParameter(GlobusJobSubmissionConstants.GLOBUS_GATEKEEPER_EP, value); q = generator.selectQuery(em); results = q.getResultList(); if (results.size() != 0) { for (Object result : results) { GlobusJobSubmission globusJobSubmission = (GlobusJobSubmission) result; globusSubmissionResourceIDs.add(globusJobSubmission.getSubmissionID()); } } } else if (fieldName.equals(GlobusJobSubmissionConstants.SECURITY_PROTOCAL)) { generator.setParameter(GlobusJobSubmissionConstants.SECURITY_PROTOCAL, value); q = generator.selectQuery(em); results = q.getResultList(); if (results.size() != 0) { for (Object result : results) { GlobusJobSubmission globusJobSubmission = (GlobusJobSubmission) result; globusSubmissionResourceIDs.add(globusJobSubmission.getSubmissionID()); } } } else if (fieldName.equals(GlobusJobSubmissionConstants.RESOURCE_JOB_MANAGER)) { generator.setParameter(GlobusJobSubmissionConstants.RESOURCE_JOB_MANAGER, value); q = generator.selectQuery(em); results = q.getResultList(); if (results.size() != 0) { for (Object result : results) { GlobusJobSubmission globusJobSubmission = (GlobusJobSubmission) result; globusSubmissionResourceIDs.add(globusJobSubmission.getSubmissionID()); } } } else { em.getTransaction().commit(); em.close(); logger.error( "Unsupported field name for Globus Submission resource.", new IllegalArgumentException()); throw new IllegalArgumentException( "Unsupported field name for Globus Submission resource."); } em.getTransaction().commit(); em.close(); } catch (Exception e) { logger.error(e.getMessage(), e); throw new AppCatalogException(e); } finally { if (em != null && em.isOpen()) { if (em.getTransaction().isActive()) { em.getTransaction().rollback(); } em.close(); } } return globusSubmissionResourceIDs; }