List of usage examples for org.springframework.transaction.support TransactionCallback TransactionCallback
TransactionCallback
From source file:com.formkiq.web.AbstractIntegrationTest.java
/** * Save Client.//from w w w. ja v a 2 s.co m * @param clientid {@link String} * @param clientsecret {@link String} * @return {@link String} */ protected String saveClient(final String clientid, final String clientsecret) { TransactionTemplate transactionTemplate = new TransactionTemplate(this.getPlatformTransactionManager()); return (String) transactionTemplate.execute(new TransactionCallback<Object>() { @Override public Object doInTransaction(final TransactionStatus arg0) { List<OAuthGrantTypes> grantTypes = Arrays.asList(OAuthGrantTypes.AUTHORIZATION_CODE, OAuthGrantTypes.PASSWORD, OAuthGrantTypes.REFRESH_TOKEN); AbstractIntegrationTest.this.oauthservice.save(clientid, clientid, clientsecret, grantTypes, false); return null; } }); }
From source file:dao.SearchDAO.java
public static ObjectNode getPagedFlowByKeyword(String category, String keyword, int page, int size) { final List<FlowJob> pagedFlows = new ArrayList<FlowJob>(); final JdbcTemplate jdbcTemplate = getJdbcTemplate(); javax.sql.DataSource ds = jdbcTemplate.getDataSource(); DataSourceTransactionManager tm = new DataSourceTransactionManager(ds); TransactionTemplate txTemplate = new TransactionTemplate(tm); ObjectNode result;/* w ww . j av a2 s . c o m*/ result = txTemplate.execute(new TransactionCallback<ObjectNode>() { public ObjectNode doInTransaction(TransactionStatus status) { String query = SEARCH_FLOW_WITH_PAGINATION.replace("$keyword", keyword); List<Map<String, Object>> rows = null; rows = jdbcTemplate.queryForList(query, (page - 1) * size, size); for (Map row : rows) { FlowJob flow = new FlowJob(); flow.flowId = (Long) row.get(FlowRowMapper.FLOW_ID_COLUMN); flow.flowName = (String) row.get(FlowRowMapper.FLOW_NAME_COLUMN); flow.flowPath = (String) row.get(FlowRowMapper.FLOW_PATH_COLUMN); flow.flowGroup = (String) row.get(FlowRowMapper.FLOW_GROUP_COLUMN); flow.appCode = (String) row.get(FlowRowMapper.APP_CODE_COLUMN); flow.appId = (Integer) row.get(FlowRowMapper.APP_ID_COLUMN); flow.displayName = flow.flowName; flow.link = "#/flows/name/" + flow.appCode + "/" + Long.toString(flow.flowId) + "/page/1?urn=" + flow.flowGroup; flow.path = flow.appCode + "/" + flow.flowPath; pagedFlows.add(flow); } long count = 0; try { count = jdbcTemplate.queryForObject("SELECT FOUND_ROWS()", Long.class); } catch (EmptyResultDataAccessException e) { Logger.error("Exception = " + e.getMessage()); } ObjectNode resultNode = Json.newObject(); resultNode.put("count", count); resultNode.put("isFlowJob", true); resultNode.put("page", page); resultNode.put("category", category); resultNode.put("itemsPerPage", size); resultNode.put("totalPages", (int) Math.ceil(count / ((double) size))); resultNode.set("data", Json.toJson(pagedFlows)); return resultNode; } }); return result; }
From source file:org.openvpms.component.business.service.archetype.ArchetypeServiceActTestCase.java
/** * Tests the fix for OBF-190.//from w w w . j ava 2 s .c o m */ @Test public void testOBF190() { // Create 2 acts with the following relationship: // act1 -- (parent/child) --> act2 final Act act1 = createSimpleAct("act1", "IN_PROGRESS"); final Act act2 = createSimpleAct("act2", "IN_PROGRESS"); String name = "act1->act2"; final ActRelationship rel = addRelationship(act1, act2, name, true); save(Arrays.asList(act1, act2)); final String newName = "act1->act2 changed"; template.execute(new TransactionCallback<Object>() { public Object doInTransaction(TransactionStatus status) { // reload act2 and verify it contains the relationship Act reloaded = reload(act2); assertTrue(reloaded.getTargetActRelationships().contains(rel)); // update the relationship and save act1 rel.setName(newName); save(act1); return null; } }); // reload act1 and verify it contains the relationship Act reloaded = reload(act1); assertNotNull(reloaded); Set<ActRelationship> relationships = reloaded.getSourceActRelationships(); assertEquals(1, relationships.size()); ActRelationship reloadedRel = relationships.toArray(new ActRelationship[relationships.size()])[0]; // verify the relationship was updated assertEquals(reloadedRel, rel); assertEquals(reloadedRel.getVersion(), rel.getVersion()); assertEquals(newName, reloadedRel.getName()); // verify the acts can be saved again save(act1); save(act2); }
From source file:com.formkiq.web.AbstractIntegrationTest.java
/** * Setup System Transaction.//www . j a va 2 s . c o m * @return {@link TransactionCallback} */ private TransactionCallback<Object> setupSystemTransaction() { final JSONService js = this.jsonService; final SetupInterceptor si = this.setupInterceptor; final SystemConfigInterceptor sci = this.systemConfigInterceptor; return new TransactionCallback<Object>() { @Override public Object doInTransaction(final TransactionStatus ts) { try { FormJSON setupForm = js.loadForm(Setup.class); FormJSON systemForm = js.loadForm(SystemConfig.class); Setup setup = new Setup(); setup.setClientname("formkiq"); setup.setAdminemail(getDefaultEmail()); setup.setPassword(getDefaultPass()); si.postSave(setupForm, setup); SystemConfig config = new SystemConfig(); config.setHostname(getDefaultHostAndPort()); sci.postSave(systemForm, config); return Pair.of(setup.getClientname(), findValueByKey(setupForm, "clientsecret").get().getValue()); } catch (Exception e) { throw new RuntimeException(e); } } }; }
From source file:dao.SearchDAO.java
public static ObjectNode getPagedJobByKeyword(String category, String keyword, int page, int size) { final List<FlowJob> pagedFlowJobs = new ArrayList<FlowJob>(); final JdbcTemplate jdbcTemplate = getJdbcTemplate(); javax.sql.DataSource ds = jdbcTemplate.getDataSource(); DataSourceTransactionManager tm = new DataSourceTransactionManager(ds); TransactionTemplate txTemplate = new TransactionTemplate(tm); ObjectNode result;// w w w . j a v a2s . co m result = txTemplate.execute(new TransactionCallback<ObjectNode>() { public ObjectNode doInTransaction(TransactionStatus status) { String query = SEARCH_JOB_WITH_PAGINATION.replace("$keyword", keyword); List<Map<String, Object>> rows = null; rows = jdbcTemplate.queryForList(query, (page - 1) * size, size); for (Map row : rows) { FlowJob flowJob = new FlowJob(); flowJob.flowId = (Long) row.get(FlowRowMapper.FLOW_ID_COLUMN); flowJob.jobId = (Long) row.get(FlowRowMapper.JOB_ID_COLUMN); flowJob.jobName = (String) row.get(FlowRowMapper.JOB_NAME_COLUMN); flowJob.jobPath = (String) row.get(FlowRowMapper.JOB_PATH_COLUMN); flowJob.jobType = (String) row.get(FlowRowMapper.JOB_TYPE_COLUMN); flowJob.flowName = (String) row.get(FlowRowMapper.FLOW_NAME_COLUMN); flowJob.flowPath = (String) row.get(FlowRowMapper.FLOW_PATH_COLUMN); flowJob.flowGroup = (String) row.get(FlowRowMapper.FLOW_GROUP_COLUMN); flowJob.appCode = (String) row.get(FlowRowMapper.APP_CODE_COLUMN); flowJob.appId = (Integer) row.get(FlowRowMapper.APP_ID_COLUMN); flowJob.displayName = flowJob.jobName; flowJob.link = "#/flows/name/" + flowJob.appCode + "/" + Long.toString(flowJob.flowId) + "/page/1?urn=" + flowJob.flowGroup; flowJob.path = flowJob.appCode + "/" + flowJob.jobPath; pagedFlowJobs.add(flowJob); } long count = 0; try { count = jdbcTemplate.queryForObject("SELECT FOUND_ROWS()", Long.class); } catch (EmptyResultDataAccessException e) { Logger.error("Exception = " + e.getMessage()); } ObjectNode resultNode = Json.newObject(); resultNode.put("count", count); resultNode.put("isFlowJob", true); resultNode.put("page", page); resultNode.put("category", category); resultNode.put("itemsPerPage", size); resultNode.put("totalPages", (int) Math.ceil(count / ((double) size))); resultNode.set("data", Json.toJson(pagedFlowJobs)); return resultNode; } }); return result; }
From source file:com.formkiq.web.AbstractIntegrationTest.java
/** * Resets Database./*from w ww. ja v a 2 s . c o m*/ */ protected void truncateDatabase() { TransactionTemplate transactionTemplate = new TransactionTemplate(this.transactionManager); transactionTemplate.execute(new TransactionCallback<Object>() { @Override public Object doInTransaction(final TransactionStatus arg0) { EntityManager em = AbstractIntegrationTest.this.entityManager; truncateDatabase(em); migrateSystemProperties(em); return null; } }); }
From source file:com.formkiq.web.AbstractIntegrationTest.java
/** * Resets Database.//www. j av a 2 s . com * @param tables {@link String} */ protected void truncateTables(final String... tables) { TransactionTemplate transactionTemplate = new TransactionTemplate(this.transactionManager); transactionTemplate.execute(new TransactionCallback<Object>() { @Override public Object doInTransaction(final TransactionStatus arg0) { EntityManager em = AbstractIntegrationTest.this.entityManager; truncateTables(em, Arrays.asList(tables)); return null; } }); }
From source file:dao.SearchDAO.java
public static ObjectNode getPagedCommentsByKeyword(String category, String keyword, int page, int size) { List<Dataset> pagedDatasets = new ArrayList<Dataset>(); final JdbcTemplate jdbcTemplate = getJdbcTemplate(); javax.sql.DataSource ds = jdbcTemplate.getDataSource(); DataSourceTransactionManager tm = new DataSourceTransactionManager(ds); TransactionTemplate txTemplate = new TransactionTemplate(tm); ObjectNode result;//w w w .jav a 2 s . c o m result = txTemplate.execute(new TransactionCallback<ObjectNode>() { public ObjectNode doInTransaction(TransactionStatus status) { List<Map<String, Object>> rows = null; String query = SEARCH_DATASET_BY_COMMENTS_WITH_PAGINATION.replace("$keyword", keyword); rows = jdbcTemplate.queryForList(query, (page - 1) * size, size); for (Map row : rows) { Dataset ds = new Dataset(); ds.id = (long) row.get(DatasetRowMapper.DATASET_ID_COLUMN); ds.name = (String) row.get(DatasetRowMapper.DATASET_NAME_COLUMN); ds.source = (String) row.get(DatasetRowMapper.DATASET_SOURCE_COLUMN); ds.urn = (String) row.get(DatasetRowMapper.DATASET_URN_COLUMN); ds.schema = (String) row.get(DatasetRowMapper.DATASET_SCHEMA_COLUMN); pagedDatasets.add(ds); } long count = 0; try { count = jdbcTemplate.queryForObject("SELECT FOUND_ROWS()", Long.class); } catch (EmptyResultDataAccessException e) { Logger.error("Exception = " + e.getMessage()); } ObjectNode resultNode = Json.newObject(); resultNode.put("count", count); resultNode.put("page", page); resultNode.put("category", category); resultNode.put("itemsPerPage", size); resultNode.put("totalPages", (int) Math.ceil(count / ((double) size))); resultNode.set("data", Json.toJson(pagedDatasets)); return resultNode; } }); return result; }
From source file:org.openvpms.component.business.dao.hibernate.im.IMObjectDAOHibernate.java
/** * Executes an update within a transaction. * * @param callback the callback to execute * @return the result of the callback//w w w .j ava 2 s.c o m */ private Object update(final HibernateCallback<Object> callback) { final HibernateTemplate template = getHibernateTemplate(); getHibernateTemplate().setExposeNativeSession(true); return txnTemplate.execute(new TransactionCallback<Object>() { public Object doInTransaction(TransactionStatus status) { return template.execute(new HibernateCallback<Object>() { public Object doInHibernate(Session session) throws HibernateException { checkWriteOperationAllowed(template, session); return template.execute(callback); } }); } }); }
From source file:dao.DatasetsDAO.java
public static ObjectNode getPagedDatasetComments(String userName, int id, int page, int size) { ObjectNode result = Json.newObject(); javax.sql.DataSource ds = getJdbcTemplate().getDataSource(); DataSourceTransactionManager tm = new DataSourceTransactionManager(ds); TransactionTemplate txTemplate = new TransactionTemplate(tm); result = txTemplate.execute(new TransactionCallback<ObjectNode>() { public ObjectNode doInTransaction(TransactionStatus status) { List<DatasetComment> pagedComments = getJdbcTemplate().query(GET_COMMENTS_BY_DATASET_ID, new DatasetCommentRowMapper(), id, (page - 1) * size, size); long count = 0; try { count = getJdbcTemplate().queryForObject("SELECT FOUND_ROWS()", Long.class); } catch (EmptyResultDataAccessException e) { Logger.error("Exception = " + e.getMessage()); }/*ww w . j av a 2s. c o m*/ if (pagedComments != null) { for (DatasetComment dc : pagedComments) { if (StringUtils.isNotBlank(userName) && userName.equalsIgnoreCase(dc.authorUserName)) { dc.isAuthor = true; } } } ObjectNode resultNode = Json.newObject(); resultNode.set("comments", Json.toJson(pagedComments)); resultNode.put("count", count); resultNode.put("page", page); resultNode.put("itemsPerPage", size); resultNode.put("totalPages", (int) Math.ceil(count / ((double) size))); return resultNode; } }); return result; }