List of usage examples for org.apache.ibatis.session ResultHandler ResultHandler
ResultHandler
From source file:org.sonar.db.component.ResourceIndexDao.java
License:Open Source License
private void doIndexProject(long rootProjectId, SqlSession session, final ResourceIndexMapper mapper) { // non indexed resources ResourceIndexQuery query = ResourceIndexQuery.create().setNonIndexedOnly(true) .setQualifiers(NOT_RENAMABLE_QUALIFIERS).setScopes(NOT_RENAMABLE_SCOPES) .setRootProjectId(rootProjectId); session.select(SELECT_RESOURCES, query, new ResultHandler() { @Override/*from w ww .j a v a 2 s .c o m*/ public void handleResult(ResultContext context) { ResourceDto resource = (ResourceDto) context.getResultObject(); doIndex(resource, mapper); } }); // some resources can be renamed, so index must be regenerated // -> delete existing rows and create them again query = ResourceIndexQuery.create().setNonIndexedOnly(false).setQualifiers(RENAMABLE_QUALIFIERS) .setScopes(RENAMABLE_SCOPES).setRootProjectId(rootProjectId); session.select(SELECT_RESOURCES, query, new ResultHandler() { @Override public void handleResult(ResultContext context) { ResourceDto resource = (ResourceDto) context.getResultObject(); mapper.deleteByResourceId(resource.getId()); doIndex(resource, mapper); } }); }
From source file:org.sonar.db.permission.GroupWithPermissionDaoTest.java
License:Open Source License
@Test public void group_count_by_permission_and_component_id() { GroupDto group1 = insertGroup(newGroupDto()); GroupDto group2 = insertGroup(newGroupDto()); GroupDto group3 = insertGroup(newGroupDto()); insertGroupRole(ISSUE_ADMIN, group1.getId(), 42L); insertGroupRole(ADMIN, group1.getId(), 123L); insertGroupRole(ADMIN, group2.getId(), 123L); insertGroupRole(ADMIN, group3.getId(), 123L); // anyone group insertGroupRole(ADMIN, null, 123L);/*w w w . j av a 2 s.c o m*/ insertGroupRole(USER, group1.getId(), 123L); insertGroupRole(USER, group1.getId(), 456L); commit(); final List<CountByProjectAndPermissionDto> result = new ArrayList<>(); underTest.groupsCountByComponentIdAndPermission(session, Arrays.asList(123L, 456L, 789L), new ResultHandler() { @Override public void handleResult(ResultContext context) { result.add((CountByProjectAndPermissionDto) context.getResultObject()); } }); assertThat(result).hasSize(3); assertThat(result).extracting("permission").containsOnly(ADMIN, USER); assertThat(result).extracting("componentId").containsOnly(123L, 456L); assertThat(result).extracting("count").containsOnly(4, 1); }
From source file:org.sonar.db.permission.PermissionTemplateDaoTest.java
License:Open Source License
@Test public void group_count_by_template_and_permission() { PermissionTemplateDto template1 = insertTemplate(newPermissionTemplateDto()); PermissionTemplateDto template2 = insertTemplate(newPermissionTemplateDto()); PermissionTemplateDto template3 = insertTemplate(newPermissionTemplateDto()); GroupDto group1 = insertGroup(newGroupDto()); GroupDto group2 = insertGroup(newGroupDto()); GroupDto group3 = insertGroup(newGroupDto()); addGroupToTemplate(42L, group1.getId(), ISSUE_ADMIN); addGroupToTemplate(template1.getId(), group1.getId(), CODEVIEWER); addGroupToTemplate(template1.getId(), group2.getId(), CODEVIEWER); addGroupToTemplate(template1.getId(), group3.getId(), CODEVIEWER); addGroupToTemplate(template1.getId(), null, CODEVIEWER); addGroupToTemplate(template1.getId(), group1.getId(), ADMIN); addGroupToTemplate(template2.getId(), group1.getId(), ADMIN); commit();/*from ww w . j ava 2 s .com*/ final List<CountByTemplateAndPermissionDto> result = new ArrayList<>(); underTest.groupsCountByTemplateIdAndPermission(session, Arrays.asList(template1.getId(), template2.getId(), template3.getId()), new ResultHandler() { @Override public void handleResult(ResultContext context) { result.add((CountByTemplateAndPermissionDto) context.getResultObject()); } }); assertThat(result).hasSize(3); assertThat(result).extracting("permission").containsOnly(ADMIN, CODEVIEWER); assertThat(result).extracting("templateId").containsOnly(template1.getId(), template2.getId()); assertThat(result).extracting("count").containsOnly(4, 1); }
From source file:org.sonar.db.permission.PermissionTemplateDaoTest.java
License:Open Source License
@Test public void user_count_by_template_and_permission() { PermissionTemplateDto template1 = insertTemplate(newPermissionTemplateDto()); PermissionTemplateDto template2 = insertTemplate(newPermissionTemplateDto()); PermissionTemplateDto template3 = insertTemplate(newPermissionTemplateDto()); UserDto user1 = insertUser(newUserDto()); UserDto user2 = insertUser(newUserDto()); UserDto user3 = insertUser(newUserDto()); addUserToTemplate(42L, user1.getId(), ISSUE_ADMIN); addUserToTemplate(template1.getId(), user1.getId(), ADMIN); addUserToTemplate(template1.getId(), user2.getId(), ADMIN); addUserToTemplate(template1.getId(), user3.getId(), ADMIN); addUserToTemplate(template1.getId(), user1.getId(), USER); addUserToTemplate(template2.getId(), user1.getId(), USER); commit();// w ww .ja va 2 s .com final List<CountByTemplateAndPermissionDto> result = new ArrayList<>(); underTest.usersCountByTemplateIdAndPermission(session, Arrays.asList(template1.getId(), template2.getId(), template3.getId()), new ResultHandler() { @Override public void handleResult(ResultContext context) { result.add((CountByTemplateAndPermissionDto) context.getResultObject()); } }); assertThat(result).hasSize(3); assertThat(result).extracting("permission").containsOnly(ADMIN, USER); assertThat(result).extracting("templateId").containsOnly(template1.getId(), template2.getId()); assertThat(result).extracting("count").containsOnly(3, 1); }
From source file:org.sonar.db.permission.template.PermissionTemplateDaoTest.java
License:Open Source License
@Test public void group_count_by_template_and_permission() { PermissionTemplateDto template1 = templateDb.insertTemplate(); PermissionTemplateDto template2 = templateDb.insertTemplate(); PermissionTemplateDto template3 = templateDb.insertTemplate(); GroupDto group1 = db.users().insertGroup(newGroupDto()); GroupDto group2 = db.users().insertGroup(newGroupDto()); GroupDto group3 = db.users().insertGroup(newGroupDto()); templateDb.addGroupToTemplate(42L, group1.getId(), ISSUE_ADMIN); templateDb.addGroupToTemplate(template1.getId(), group1.getId(), CODEVIEWER); templateDb.addGroupToTemplate(template1.getId(), group2.getId(), CODEVIEWER); templateDb.addGroupToTemplate(template1.getId(), group3.getId(), CODEVIEWER); templateDb.addGroupToTemplate(template1.getId(), null, CODEVIEWER); templateDb.addGroupToTemplate(template1.getId(), group1.getId(), ADMIN); templateDb.addGroupToTemplate(template2.getId(), group1.getId(), ADMIN); final List<CountByTemplateAndPermissionDto> result = new ArrayList<>(); underTest.groupsCountByTemplateIdAndPermission(dbSession, Arrays.asList(template1.getId(), template2.getId(), template3.getId()), new ResultHandler() { @Override// www .ja v a 2 s .c o m public void handleResult(ResultContext context) { result.add((CountByTemplateAndPermissionDto) context.getResultObject()); } }); assertThat(result).hasSize(3); assertThat(result).extracting("permission").containsOnly(ADMIN, CODEVIEWER); assertThat(result).extracting("templateId").containsOnly(template1.getId(), template2.getId()); assertThat(result).extracting("count").containsOnly(4, 1); }
From source file:org.sonar.db.permission.UserWithPermissionDaoTest.java
License:Open Source License
@Test public void user_count_by_component_and_permission() { UserDto user1 = insertUser(newUserDto()); UserDto user2 = insertUser(newUserDto()); UserDto user3 = insertUser(newUserDto()); insertUserRole(ISSUE_ADMIN, user1.getId(), 42L); insertUserRole(ADMIN, user1.getId(), 123L); insertUserRole(ADMIN, user2.getId(), 123L); insertUserRole(ADMIN, user3.getId(), 123L); insertUserRole(USER, user1.getId(), 123L); insertUserRole(USER, user1.getId(), 456L); commit();/* ww w . j ava 2 s . c om*/ final List<CountByProjectAndPermissionDto> result = new ArrayList<>(); underTest.usersCountByComponentIdAndPermission(dbTester.getSession(), Arrays.asList(123L, 456L, 789L), new ResultHandler() { @Override public void handleResult(ResultContext context) { result.add((CountByProjectAndPermissionDto) context.getResultObject()); } }); assertThat(result).hasSize(3); assertThat(result).extracting("permission").containsOnly(ADMIN, USER); assertThat(result).extracting("componentId").containsOnly(123L, 456L); assertThat(result).extracting("count").containsOnly(3, 1); }
From source file:org.sonar.db.purge.PurgeDao.java
License:Open Source License
private void disableOrphanResources(final ResourceDto project, final SqlSession session, final PurgeMapper purgeMapper, final PurgeListener purgeListener) { final List<IdUuidPair> componentIdUuids = new ArrayList<>(); session.select("org.sonar.db.purge.PurgeMapper.selectComponentIdUuidsToDisable", project.getId(), new ResultHandler() { @Override/*from w w w . j ava 2 s. c om*/ public void handleResult(ResultContext resultContext) { IdUuidPair componentIdUuid = (IdUuidPair) resultContext.getResultObject(); if (componentIdUuid.getId() != null) { componentIdUuids.add(componentIdUuid); } } }); for (IdUuidPair componentIdUuid : componentIdUuids) { disableResource(componentIdUuid, purgeMapper); purgeListener.onComponentDisabling(componentIdUuid.getUuid()); } session.commit(); }
From source file:org.sonar.db.rule.RuleDaoTest.java
License:Open Source License
@Test public void selectEnabledAndNonManual_with_ResultHandler() { dbTester.prepareDbUnit(getClass(), "selectEnabledAndNonManual.xml"); final List<RuleDto> rules = new ArrayList<>(); ResultHandler resultHandler = new ResultHandler() { @Override// w w w. jav a 2 s .c om public void handleResult(ResultContext resultContext) { rules.add((RuleDto) resultContext.getResultObject()); } }; underTest.selectEnabledAndNonManual(dbTester.getSession(), resultHandler); assertThat(rules.size()).isEqualTo(1); RuleDto ruleDto = rules.get(0); assertThat(ruleDto.getId()).isEqualTo(1); }
From source file:org.sonar.db.version.v50.PopulateProjectsUuidColumnsMigrationStep.java
License:Open Source License
@Override public void execute() { ProgressLogger progress = ProgressLogger.create(getClass(), counter); progress.start();/*w w w . ja v a 2 s .c om*/ final DbSession readSession = db.openSession(false); final DbSession writeSession = db.openSession(true); try { readSession.select("org.sonar.db.version.v50.Migration50Mapper.selectRootProjects", new ResultHandler() { @Override public void handleResult(ResultContext context) { Component project = (Component) context.getResultObject(); List<Component> components = readSession.getMapper(Migration50Mapper.class) .selectComponentChildrenForProjects(project.getId()); MigrationContext migrationContext = new MigrationContext(readSession, writeSession, project, components); migrateEnabledComponents(migrationContext); migrateDisabledComponents(migrationContext); } }); writeSession.commit(true); readSession.commit(true); migrateComponentsWithoutUuid(readSession, writeSession); writeSession.commit(true); // log the total number of process rows progress.log(); } finally { readSession.close(); writeSession.close(); progress.stop(); } }
From source file:org.sonar.server.computation.issue.BaseIssuesLoader.java
License:Open Source License
public List<DefaultIssue> loadForComponentUuid(String componentUuid) { DbSession session = dbClient.openSession(false); final List<DefaultIssue> result = new ArrayList<>(); try {/* ww w.ja v a 2s .c o m*/ session.getMapper(IssueMapper.class).selectNonClosedByComponentUuid(componentUuid, new ResultHandler() { @Override public void handleResult(ResultContext resultContext) { DefaultIssue issue = ((IssueDto) resultContext.getResultObject()).toDefaultIssue(); // TODO this field should be set outside this class if (!isActive(issue.ruleKey()) || ruleRepository.getByKey(issue.ruleKey()).getStatus() == RuleStatus.REMOVED) { issue.setOnDisabledRule(true); // TODO to be improved, why setOnDisabledRule(true) is not enough ? issue.setBeingClosed(true); } // FIXME issue.setSelectedAt(System.currentTimeMillis()); result.add(issue); } }); return result; } finally { MyBatis.closeQuietly(session); } }