List of usage examples for org.springframework.transaction.support DefaultTransactionDefinition setPropagationBehavior
public final void setPropagationBehavior(int propagationBehavior)
From source file:com.krawler.spring.hrms.rec.job.hrmsRecJobController.java
public ModelAndView scheduleinterview(HttpServletRequest request, HttpServletResponse response) { Date date1;//from ww w .ja v a 2 s.c o m DateFormat formatter; JSONObject jobj = new JSONObject(); String interviewdate = ""; //boolean reflag=false; String htmlmsg = ""; String pmsg = ""; String interviewsub = ""; KwlReturnObject result = null, recruitresult = null; //Create transaction DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setName("JE_Tx"); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED); TransactionStatus status = txnManager.getTransaction(def); try { HashMap<String, Object> requestParams = new HashMap<String, Object>(); String interviewtime = request.getParameter("interviewtime"); String location = request.getParameter("interviewplace"); formatter = new SimpleDateFormat("MM/dd/yyyy"); // Company cmp=(Company) session.get(Company.class,AuthHandler.getCompanyid(request)); requestParams.put("companyid", sessionHandlerImplObj.getCompanyid(request)); result = profileHandlerDAOObj.getCompanyid(requestParams); Company cmp = null; if (StringUtil.checkResultobjList(result)) { cmp = (Company) result.getEntityList().get(0); } date1 = (Date) formatter.parse(request.getParameter("interviewdt")); //interviewdate=(AuthHandler.getUserDateFormatter(request,session).format(date1)); requestParams.clear(); requestParams.put("request", request); interviewdate = request.getParameter("interviewdt"); Allapplications allapl = null; String[] ids = request.getParameterValues("ids"); String[] emailids = new String[ids.length]; String[] Resumeids = new String[ids.length]; String[] jobs = new String[ids.length]; String[] applicant = new String[ids.length]; Boolean[] reflag = new Boolean[ids.length]; for (int i = 0; i < ids.length; i++) { requestParams.clear(); requestParams.put("id", ids[i]); requestParams.put("primary", true); result = hrmsRecJobDAOObj.getPositionstatus(requestParams); allapl = (Allapplications) result.getEntityList().get(0); if (allapl.getStatus().equalsIgnoreCase("In Process")) { reflag[i] = true; } else { reflag[i] = false; } requestParams.clear(); requestParams.put("id", ids[i]); requestParams.put("status", "In Process"); requestParams.put("interviewdate", date1); requestParams.put("interviewtime", interviewtime); requestParams.put("interviewplace", location); requestParams.put("contactperson", request.getParameter("contactperson")); requestParams.put("interviewcomment", request.getParameter("interviewcomment")); //set rid to recruiter table and remove recruiter column from allapp requestParams.put("recruiter", request.getParameter("rid")); result = hrmsRecJobDAOObj.addAllapplications(requestParams); if (StringUtil.checkResultobjList(result)) { allapl = (Allapplications) result.getEntityList().get(0); requestParams.clear(); String[] Recruiterids = request.getParameter("rid").split(","); requestParams.put("Allapplication", allapl.getId()); boolean success = hrmsRecJobDAOObj.deleteRecruiters(requestParams); requestParams.put("Delflag", 0); for (int j = 0; j < Recruiterids.length && success; j++) { requestParams.put("Recruit", Recruiterids[j]); recruitresult = hrmsRecJobDAOObj.setRecruiters(requestParams); } } jobs[i] = (allapl.getPosition().getPosition().getValue() + " [" + allapl.getPosition().getJobid() + "] "); if (Integer.parseInt(request.getParameter("employeetype")) == 1) { emailids[i] = allapl.getEmployee().getEmailID(); applicant[i] = (allapl.getEmployee().getFirstName() + " " + allapl.getEmployee().getLastName()); } else { emailids[i] = allapl.getConfigjobapplicant().getCol3(); applicant[i] = (allapl.getConfigjobapplicant().getCol1() + " " + allapl.getConfigjobapplicant().getCol2()); Resumeids[i] = allapl.getConfigjobapplicant().getCol5(); } String usrnm; if (allapl.getEmployee() != null) { usrnm = StringUtil.getFullName(allapl.getEmployee()); } else { usrnm = allapl.getConfigjobapplicant().getCol1() + " " + allapl.getConfigjobapplicant().getCol2(); } //@@ProfileHandler.insertAuditLog(session, AuditAction.INTERVIEW_SCHEDULED, "User " + AuthHandler.getFullName(session, AuthHandler.getUserid(request)) + " has scheduled interview for " + usrnm + " on "+ interviewdate + " at " + allapl.getInterviewplace(),request); } // User usr=(User) session.get(User.class,AuthHandler.getUserid(request)); Useraccount ua = (Useraccount) kwlCommonTablesDAOObj.getObject("com.krawler.common.admin.Useraccount", sessionHandlerImplObj.getUserid(request)); User usr = ua.getUser(); if (!StringUtil.isNullOrEmpty(request.getParameter("mail"))) { for (int j = 0; j < emailids.length; j++) { if (reflag[j]) { pmsg = String.format(HrmsMsgs.rescheduleinterviewPlnmsg, applicant[j], jobs[j], cmp.getCompanyName(), interviewdate, interviewtime, location, usr.getContactNumber(), usr.getEmailID(), usr.getFirstName() + " " + usr.getLastName(), ua.getDesignationid() != null ? ua.getDesignationid().getValue() : " ", cmp.getCompanyName()); htmlmsg = String.format(HrmsMsgs.rescheduleinterviewHTMLmsg, applicant[j], jobs[j], cmp.getCompanyName(), interviewdate, interviewtime, location, usr.getContactNumber(), usr.getEmailID(), usr.getFirstName() + " " + usr.getLastName(), ua.getDesignationid() != null ? ua.getDesignationid().getValue() : " ", cmp.getCompanyName()); interviewsub = String.format(HrmsMsgs.rescheduleinterviewSubject, allapl.getPosition().getJobid(), allapl.getPosition().getPosition().getValue(), cmp.getCompanyName()); try { SendMailHandler.postMail(new String[] { emailids[j] }, interviewsub, htmlmsg, pmsg, usr.getEmailID()); } catch (MessagingException e) { e.printStackTrace(); } } else { pmsg = String.format(HrmsMsgs.interviewPlnmsg, jobs[j], interviewdate, interviewtime, location); htmlmsg = String.format(HrmsMsgs.interviewHTMLmsg, applicant[j], jobs[j], cmp.getCompanyName(), interviewdate, interviewtime, location, usr.getContactNumber(), usr.getEmailID(), usr.getFirstName() + " " + usr.getLastName(), ua.getDesignationid() != null ? ua.getDesignationid().getValue() : " ", cmp.getCompanyName()); interviewsub = String.format(HrmsMsgs.interviewSubject, allapl.getPosition().getJobid(), allapl.getPosition().getPosition().getValue(), cmp.getCompanyName()); try { SendMailHandler.postMail(new String[] { emailids[j] }, interviewsub, htmlmsg, pmsg, usr.getEmailID()); } catch (MessagingException e) { e.printStackTrace(); } } ArrayList params = new ArrayList(); params.add(allapl.getId()); ArrayList filter_names = new ArrayList(); filter_names.add("allapplication.id"); requestParams.clear(); requestParams.put("filter_names", filter_names); requestParams.put("filter_values", params); recruitresult = hrmsRecJobDAOObj.getRecruiters(requestParams); if (StringUtil.checkResultobjList(recruitresult)) { List recruiterlist = recruitresult.getEntityList(); for (int k = 0; k < recruiterlist.size(); k++) { Recruiter r = (Recruiter) recruiterlist.get(k); String interviewer = r.getRecruit().getFirstName() + " " + r.getRecruit().getLastName(); String intpmsg = String.format(HrmsMsgs.interviewinvitePlnmsg, interviewer, jobs[j], interviewdate, interviewtime, location); String inthtmlmsg = String.format(HrmsMsgs.interviewinviteHTMLmsg, interviewer, jobs[j], interviewdate, interviewtime, location, usr.getFirstName() + " " + usr.getLastName(), ua.getDesignationid() != null ? ua.getDesignationid().getValue() : " ", cmp.getCompanyName()); String interviewinvitesub = String.format(HrmsMsgs.interviewinviteSubject, allapl.getPosition().getJobid(), allapl.getPosition().getPosition().getValue(), cmp.getCompanyName()); if (StringUtil.isNullOrEmpty(Resumeids[j])) { try { SendMailHandler.postMail(new String[] { r.getRecruit().getEmailID() }, interviewinvitesub, inthtmlmsg, intpmsg, usr.getEmailID()); } catch (MessagingException e) { e.printStackTrace(); } } else { hrmsDocumentController hdc = new hrmsDocumentController(); KwlReturnObject kmsg = hrmsExtApplDocsDAOObj.downloadDocument(Resumeids[j]); HashMap ht = hdc.getDocInfo(kmsg, storageHandlerImplObj); try { if (ht != null && ht.containsKey("filename")) { SendMailHandler.postMail(new String[] { r.getRecruit().getEmailID() }, interviewinvitesub, inthtmlmsg, intpmsg, usr.getEmailID(), new String[] { (String) ht.get("attachment"), (String) ht.get("filename") }); } else { SendMailHandler.postMail(new String[] { r.getRecruit().getEmailID() }, interviewinvitesub, inthtmlmsg, intpmsg, usr.getEmailID()); } } catch (MessagingException e) { e.printStackTrace(); } } } } } } if (result.isSuccessFlag()) { String interviewersname = ""; String delimiter = ","; String[] temp = request.getParameter("rid").split(delimiter); for (int i = 0; i < temp.length; i++) { interviewersname += profileHandlerDAOObj.getUserFullName(temp[i]); if (temp.length > i + 1) interviewersname += ", "; } for (int i = 0; i < ids.length; i++) auditTrailDAOObj.insertAuditLog(AuditAction.INTERVIEW_SCHEDULED, "User " + profileHandlerDAOObj.getUserFullName(sessionHandlerImplObj.getUserid(request)) + " has scheduled interview for applicant " + request.getParameterValues("cname")[i] + ". Interviewers are " + interviewersname, request, "0"); } jobj.put("success", "true"); txnManager.commit(status); } catch (Exception ex) { ex.printStackTrace(); txnManager.rollback(status); } finally { return new ModelAndView("jsonView", "model", ""); } }
From source file:com.krawler.spring.hrms.rec.job.hrmsRecJobController.java
public ModelAndView createapplicantFunction(HttpServletRequest request, HttpServletResponse response) { JSONObject jobj = new JSONObject(); JSONObject jobj1 = new JSONObject(); List list = null;/*w ww . j a va 2 s. com*/ SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); KwlReturnObject result = null; //Create transaction DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setName("JE_Tx"); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED); TransactionStatus status = txnManager.getTransaction(def); try { HashMap<String, Object> requestParams = new HashMap<String, Object>(); ArrayList filter_names = new ArrayList(), filter_values = new ArrayList(); String pwd = request.getParameter("p"); String username = request.getParameter("u"); String fname = request.getParameter("fname"); String lname = request.getParameter("lname"); String cmpid = sessionHandlerImplObj.getCompanyid(request); if (StringUtil.isNullOrEmpty(request.getParameter("update"))) { filter_names.add("Col3"); filter_values.add(request.getParameter("e")); filter_names.add("deleted"); filter_values.add(false); filter_names.add("company.companyID"); filter_values.add(cmpid); requestParams.put("filter_names", filter_names); requestParams.put("filter_values", filter_values); result = hrmsRecJobDAOObj.getConfigJobApplicant(requestParams); list = result.getEntityList(); if (list.size() == 0) { Company cmp = (Company) kwlCommonTablesDAOObj.getObject("com.krawler.common.admin.Company", cmpid); requestParams.clear(); requestParams.put("Col1", fname); requestParams.put("Col2", lname); requestParams.put("Col3", request.getParameter("e")); //requestParams.put("Address1", request.getParameter("addr")); requestParams.put("Col4", request.getParameter("contact")); // requestParams.put("Username", username); // requestParams.put("Password", authHandler.getSHA1(pwd)); // requestParams.put("Status", 0); requestParams.put("Company", cmpid); result = hrmsRecJobDAOObj.addConfigRecruitmentData(requestParams); if (result.isSuccessFlag()) { /*String uri = URLUtil.getPageURL(request, Links.loginpagewthFull,cmp.getSubDomain())+"applicantLogin.html"; String pmsg = String.format(KWLErrorMsgs.msgMailInvite, fname, "Demo", username, pwd, uri, "Demo"); String htmlmsg = String.format(HrmsMsgs.msgMailInviteUsernamePassword, fname, profileHandlerDAOObj.getUserFullName( sessionHandlerImplObj.getUserid(request)), sessionHandlerImplObj.getCompanyName(request), username, pwd, uri, uri, ""); try { SendMailHandler.postMail(new String[]{request.getParameter("e")}, "["+messageSource.getMessage("hrms.common.deskera", null, RequestContextUtils.getLocale(request))+"] "+messageSource.getMessage("hrms.common.welcome.deskera.hrms", null, RequestContextUtils.getLocale(request)), htmlmsg, pmsg, "admin.hrms@mailinator.com"); } catch (MessagingException e) { e.printStackTrace(); }*/ jobj.put("msg", messageSource.getMessage("hrms.common.Applicantcreatedsuccessfully", null, RequestContextUtils.getLocale(request))); jobj.put("type", messageSource.getMessage("hrms.common.success", null, RequestContextUtils.getLocale(request))); //@@ProfileHandler.insertAuditLog(session, AuditAction.CREATE_APPLICANT, "User " + AuthHandler.getFullName(session, AuthHandler.getUserid(request)) + " has created new applicant " + jobapp.getFirstname() + " " + jobapp.getLastname(),request); auditTrailDAOObj.insertAuditLog(AuditAction.CREATE_APPLICANT, "User " + profileHandlerDAOObj .getUserFullName(sessionHandlerImplObj.getUserid(request)) + " has created new applicant " + fname + " " + lname, request, "0"); } else { jobj.put("msg", messageSource.getMessage("hrms.recruitment.error.occurred.creating.applicant", null, RequestContextUtils.getLocale(request))); jobj.put("type", messageSource.getMessage("hrms.common.error", null, RequestContextUtils.getLocale(request))); } } else { jobj.put("msg", messageSource.getMessage("hrms.common.email.already.exists", null, RequestContextUtils.getLocale(request))); jobj.put("type", messageSource.getMessage("hrms.common.warning", null, RequestContextUtils.getLocale(request))); } } else { requestParams.put("primary", true); requestParams.put("applicantid", request.getParameter("profileid")); result = hrmsRecJobDAOObj.getConfigJobApplicant(requestParams); list = result.getEntityList(); if (!list.isEmpty()) { String jsondata1 = request.getParameter("jsondata1"); String jsondata2 = request.getParameter("jsondata2"); String jsondata3 = request.getParameter("jsondata3"); String jsondata4 = request.getParameter("jsondata4"); String jsondata5 = request.getParameter("jsondata5"); requestParams.clear(); requestParams.put("Applicantid", request.getParameter("profileid")); if (jsondata1.length() > 0) { jobj = new JSONObject(jsondata1); requestParams.put("Title", jobj.getString("title")); requestParams.put("Firstname", jobj.getString("firstname")); requestParams.put("Lastname", jobj.getString("lastname")); requestParams.put("Email", jobj.getString("email")); requestParams.put("Otheremail", jobj.getString("otheremail")); requestParams.put("Birthdate", (Date) fmt.parse(jobj.getString("birthdate"))); } if (jsondata2.length() > 0) { jobj = new JSONObject(jsondata2); requestParams.put("Contactno", jobj.getString("contactno")); requestParams.put("Mobileno", jobj.getString("mobileno")); requestParams.put("City", jobj.getString("city")); requestParams.put("State", jobj.getString("state")); requestParams.put("Countryid", jobj.getString("country")); requestParams.put("Address1", jobj.getString("address1")); requestParams.put("Address2", jobj.getString("address2")); } if (jsondata3.length() > 0) { jobj = new JSONObject(jsondata3); if (StringUtil.isNullOrEmpty(jobj.getString("graddegree")) == false) { requestParams.put("Graddegree", jobj.getString("graddegree")); } if (StringUtil.isNullOrEmpty(jobj.getString("gradspecilization")) == false) { requestParams.put("Gradspecialization", jobj.getString("gradspecilization")); } if (StringUtil.isNullOrEmpty(jobj.getString("gradcollege")) == false) { requestParams.put("Gradcollege", jobj.getString("gradcollege")); } if (StringUtil.isNullOrEmpty(jobj.getString("graduniversity")) == false) { requestParams.put("Graduniversity", jobj.getString("graduniversity")); } if (StringUtil.isNullOrEmpty(jobj.getString("gradepercent")) == false) { requestParams.put("Gradpercent", jobj.getString("gradepercent")); } if (StringUtil.isNullOrEmpty(jobj.getString("gradpassdate")) == false) { requestParams.put("Gradpassdate", (Date) fmt.parse(jobj.getString("gradpassdate"))); } if (StringUtil.isNullOrEmpty(jobj.getString("pgqualification")) == false) { requestParams.put("Pgqualification", jobj.getString("pgqualification")); } if (StringUtil.isNullOrEmpty(jobj.getString("pgspecialization")) == false) { requestParams.put("Pgspecialization", jobj.getString("pgspecialization")); } if (StringUtil.isNullOrEmpty(jobj.getString("pgcollege")) == false) { requestParams.put("Pgcollege", jobj.getString("pgcollege")); } if (StringUtil.isNullOrEmpty(jobj.getString("pguniversity")) == false) { requestParams.put("Pguniversity", jobj.getString("pguniversity")); } if (StringUtil.isNullOrEmpty(jobj.getString("pgpercent")) == false) { requestParams.put("Pgpercent", jobj.getString("pgpercent")); } if (StringUtil.isNullOrEmpty(jobj.getString("pgpassdate")) == false) { requestParams.put("Pgpassdate", (Date) fmt.parse(jobj.getString("pgpassdate"))); } if (StringUtil.isNullOrEmpty(jobj.getString("othername")) == false) { requestParams.put("Othername", jobj.getString("othername")); } if (StringUtil.isNullOrEmpty(jobj.getString("otherqualification")) == false) { requestParams.put("Otherqualification", jobj.getString("otherqualification")); } if (StringUtil.isNullOrEmpty(jobj.getString("otherpercent")) == false) { requestParams.put("Otherpercent", jobj.getString("otherpercent")); } if (StringUtil.isNullOrEmpty(jobj.getString("otherdetails")) == false) { requestParams.put("Otherdetails", jobj.getString("otherdetails")); } if (StringUtil.isNullOrEmpty(jobj.getString("otherpassdate")) == false) { requestParams.put("Otherpassdate", (Date) fmt.parse(jobj.getString("otherpassdate"))); } } if (jsondata4.length() > 0) { jobj = new JSONObject(jsondata4); if (jobj.getString("experiencemonth").equals("")) { requestParams.put("Experiencemonth", 0); } else { requestParams.put("Experiencemonth", Integer.parseInt(jobj.getString("experiencemonth"))); } if (StringUtil.isNullOrEmpty(jobj.getString("experienceyear")) == false) { requestParams.put("Experienceyear", Integer.parseInt(jobj.getString("experienceyear"))); } if (StringUtil.isNullOrEmpty(jobj.getString("functionalexpertise")) == false) { requestParams.put("Functionalexpertise", jobj.getString("functionalexpertise")); } if (StringUtil.isNullOrEmpty(jobj.getString("currentindustry")) == false) { requestParams.put("Currentindustry", jobj.getString("currentindustry")); } if (StringUtil.isNullOrEmpty(jobj.getString("currentorganization")) == false) { requestParams.put("Currentorganization", jobj.getString("currentorganization")); } if (StringUtil.isNullOrEmpty(jobj.getString("currentdesignation")) == false) { requestParams.put("Currentdesignation", jobj.getString("currentdesignation")); } if (StringUtil.isNullOrEmpty(jobj.getString("grosssalary")) == false) { requestParams.put("Grosssalary", Integer.parseInt(jobj.getString("grosssalary"))); } requestParams.put("Expectedsalary", Integer.parseInt(jobj.getString("expectedsalary"))); } if (jsondata5.length() > 0) { jobj = new JSONObject(jsondata5); requestParams.put("Keyskills", jobj.getString("keyskills")); if (StringUtil.isNullOrEmpty(jobj.getString("category")) == false) { requestParams.put("Category", jobj.getString("category")); } if (StringUtil.isNullOrEmpty(jobj.getString("filepath")) == false) { requestParams.put("Filepath", jobj.getString("filepath")); } if (StringUtil.isNullOrEmpty(jobj.getString("companyrelative")) == false) { requestParams.put("Companyrelative", jobj.getString("companyrelative")); } if (StringUtil.isNullOrEmpty(jobj.getString("appearedbefore")) == false) { requestParams.put("Appearedbefore", jobj.getString("appearedbefore")); if (jobj.getString("appearedbefore").equalsIgnoreCase("yes")) { if (StringUtil.isNullOrEmpty(jobj.getString("interviewplace")) == false) { requestParams.put("Interviewplace", jobj.getString("interviewplace")); } if (StringUtil.isNullOrEmpty(jobj.getString("interviewdate")) == false) { requestParams.put("Interviewdate", (Date) fmt.parse(jobj.getString("interviewdate"))); } if (StringUtil.isNullOrEmpty(jobj.getString("interviewposition")) == false) { requestParams.put("Interviewposition", jobj.getString("interviewposition")); } } } requestParams.put("Interviewlocation", jobj.getString("interviewlocation")); result = hrmsRecJobDAOObj.setJobApplicant(requestParams); } // insertConfigData(request, "Recruitment", request.getParameter("profileid"),sessionHandlerImplObj.getCompanyid(request)); hrmsCommonDAOObj.insertConfigData(request, "Recruitment", request.getParameter("profileid"), sessionHandlerImplObj.getCompanyid(request)); } if (result.isSuccessFlag()) { jobj.put("msg", messageSource.getMessage("hrms.recruitment.applicant.updated.successfully", null, RequestContextUtils.getLocale(request))); jobj.put("type", messageSource.getMessage("hrms.common.success", null, RequestContextUtils.getLocale(request))); } else { jobj.put("msg", messageSource.getMessage("hrms.recruitment.error.occurred.updating.applicant", null, RequestContextUtils.getLocale(request))); jobj.put("type", messageSource.getMessage("hrms.common.error", null, RequestContextUtils.getLocale(request))); } } jobj1.put("data", jobj.toString()); jobj1.put("valid", true); txnManager.commit(status); } catch (Exception e) { e.printStackTrace(); txnManager.rollback(status); } finally { return new ModelAndView("jsonView", "model", jobj1.toString()); } }
From source file:org.artifactory.repo.db.importexport.DbRepoImportHandler.java
private void startTransaction() { DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); AbstractPlatformTransactionManager txManager = getTransactionManager(); transactionStartTime = DateTime.now(); this.transactionStatus = txManager.getTransaction(def); }
From source file:org.broadleafcommerce.common.util.TransactionUtils.java
public static TransactionStatus createTransaction(String name, int propagationBehavior, int isolationLevel, PlatformTransactionManager transactionManager, boolean isReadOnly) { DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setName(name);/*from ww w.j ava 2s . c om*/ def.setReadOnly(isReadOnly); def.setPropagationBehavior(propagationBehavior); def.setIsolationLevel(isolationLevel); return transactionManager.getTransaction(def); }
From source file:org.broadleafcommerce.common.util.TransactionUtils.java
public static TransactionStatus createTransaction(int propagationBehavior, int isolationLevel, PlatformTransactionManager transactionManager, boolean isReadOnly) { DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setReadOnly(isReadOnly);//from w w w .j a v a 2 s. co m def.setPropagationBehavior(propagationBehavior); def.setIsolationLevel(isolationLevel); return transactionManager.getTransaction(def); }
From source file:org.broadleafcommerce.openadmin.server.service.persistence.entitymanager.BroadleafEntityManagerInvocationHandler.java
protected Object executeInTransaction(Executable executable, PlatformTransactionManager txManager) throws Throwable { DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setName("SandBoxTx"); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); Object response;//from w w w . j a v a 2 s . c om TransactionStatus status = txManager.getTransaction(def); try { response = executable.execute(); } catch (Throwable ex) { txManager.rollback(status); throw ex; } txManager.commit(status); return response; }
From source file:org.broadleafcommerce.openadmin.server.service.persistence.entitymanager.HibernateCleaner.java
protected void performConvert(Object originalBean, Object targetBean, Field[] fields, Method method, HibernateEntityManager em, PlatformTransactionManager txManager) throws Throwable { SessionFactory sessionFactory = em.getSession().getSessionFactory(); ClassMetadata metadata = sessionFactory.getClassMetadata(originalBean.getClass()); String idProperty = metadata.getIdentifierPropertyName(); if (!typePool.containsKey(originalBean.getClass().getName())) { List<String> propertyNames = new ArrayList<String>(); for (String propertyName : metadata.getPropertyNames()) { propertyNames.add(propertyName); }//from www . j a v a 2s . co m propertyNames.add(idProperty); List<Type> propertyTypes = new ArrayList<Type>(); Type idType = metadata.getIdentifierType(); for (Type propertyType : metadata.getPropertyTypes()) { propertyTypes.add(propertyType); } propertyTypes.add(idType); Map<String, Type> types = new HashMap<String, Type>(); int j = 0; for (String propertyName : propertyNames) { types.put(propertyName, propertyTypes.get(j)); j++; } typePool.put(originalBean.getClass().getName(), types); } Map<String, Type> types = (Map<String, Type>) typePool.get(originalBean.getClass().getName()); Field idField = null; for (Field field : fields) { if (types.containsKey(field.getName())) { field.setAccessible(true); Type fieldType = types.get(field.getName()); if (fieldType.isCollectionType() || fieldType.isAnyType()) { //field.set(targetBean, null); //do nothing } else if (fieldType.isEntityType()) { Object newOriginalBean = field.get(originalBean); if (newOriginalBean == null) { field.set(targetBean, null); } else { Object newTargetBean = newOriginalBean.getClass().newInstance(); field.set(targetBean, newTargetBean); Field[] newFields = getFields(newOriginalBean.getClass()); performConvert(newOriginalBean, newTargetBean, newFields, method, em, txManager); } } else { field.set(targetBean, field.get(originalBean)); } if (field.getName().equals(idProperty)) { idField = field; } } } if (txManager != null) { Object temp = null; if (idField == null) { throw new Exception( "Unable to find an identity field for the entity: " + originalBean.getClass().getName()); } final Serializable primaryKey = (Serializable) idField.get(originalBean); if (primaryKey != null) { temp = em.find(originalBean.getClass(), primaryKey); } DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW); TransactionStatus status = txManager.getTransaction(def); try { if (primaryKey != null) { if (temp != null && method.getName().equals("merge")) { targetBean = em.merge(targetBean); } else { SessionImplementor session = (SessionImplementor) em.getDelegate(); EntityPersister persister = session.getEntityPersister(targetBean.getClass().getName(), targetBean); IdentifierProperty ip = persister.getEntityMetamodel().getIdentifierProperty(); synchronized (ip) { IdentifierValue backupUnsavedValue = setUnsavedValue(ip, IdentifierValue.ANY); em.persist(targetBean); setUnsavedValue(ip, backupUnsavedValue); } } } else { targetBean = method.invoke(em, targetBean); } } catch (Throwable ex) { txManager.rollback(status); throw ex; } txManager.commit(status); } }
From source file:org.collectionspace.services.authorization.spring.SpringAuthorizationProvider.java
TransactionStatus beginTransaction(String name) { DefaultTransactionDefinition def = new DefaultTransactionDefinition(); // explicitly setting the transaction name is something that can only be done programmatically def.setName(name);//from ww w. j a va 2 s .c o m def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); return getTxManager().getTransaction(def); }
From source file:org.compass.spring.transaction.SpringSyncTransaction.java
public void begin(PlatformTransactionManager transactionManager, InternalCompassSession session, boolean commitBeforeCompletion) { this.session = session; this.transactionManager = transactionManager; // the factory called begin, so we are in charge, if we were not, than // it would not call begin (we are in charge of the COMPASS transaction, // the spring one is handled later) controllingNewTransaction = true;/* w w w. ja v a2s. c o m*/ if (transactionManager != null) { DefaultTransactionDefinition transactionDefinition = new DefaultTransactionDefinition(); transactionDefinition.setPropagationBehavior(DefaultTransactionDefinition.PROPAGATION_REQUIRED); int timeout = session.getSettings().getSettingAsInt(CompassEnvironment.Transaction.TRANSACTION_TIMEOUT, -1); if (timeout != -1) { transactionDefinition.setTimeout(timeout); } transactionDefinition.setReadOnly(session.isReadOnly()); status = transactionManager.getTransaction(transactionDefinition); } session.getSearchEngine().begin(); SpringTransactionSynchronization sync; if (transactionManager != null) { if (log.isDebugEnabled()) { if (status.isNewTransaction()) { log.debug("Beginning new Spring transaction, and a new compass transaction on thread [" + Thread.currentThread().getName() + "]"); } else { log.debug("Joining Spring transaction, and starting a new compass transaction on thread [" + Thread.currentThread().getName() + "]"); } } sync = new SpringTransactionSynchronization(session, status.isNewTransaction(), commitBeforeCompletion, transactionFactory); } else { if (log.isDebugEnabled()) { log.debug("Joining Spring transaction, and starting a new compass transaction on thread [" + Thread.currentThread().getName() + "]"); } sync = new SpringTransactionSynchronization(session, false, commitBeforeCompletion, transactionFactory); } TransactionSynchronizationManager.registerSynchronization(sync); setBegun(true); }
From source file:org.ednovo.gooru.domain.service.storage.S3ResourceHandler.java
protected TransactionStatus initTransaction(String name, boolean isReadOnly) { DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setName(AUTHENTICATE_USER);/* w w w . ja va 2 s .c o m*/ if (isReadOnly) { def.setReadOnly(isReadOnly); } else { def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); } return getTransactionManager().getTransaction(def); }