private void insertQualityProfiles(DbSession dbSession, DbSession batchDbSession, OrganizationDto organization) { Map<QProfileName, BuiltInQProfile> builtInsPerName = builtInQProfileRepository.get().stream() .collect(uniqueIndex(BuiltInQProfile::getQProfileName)); List<DefaultQProfileDto> defaults = new ArrayList<>(); dbClient.qualityProfileDao().selectBuiltInRuleProfiles(dbSession).forEach(rulesProfile -> { OrgQProfileDto dto = new OrgQProfileDto() .setOrganizationUuid(organization.getUuid()) .setRulesProfileUuid(rulesProfile.getKee()) .setUuid(uuidFactory.create()); QProfileName name = new QProfileName(rulesProfile.getLanguage(), rulesProfile.getName()); BuiltInQProfile builtIn = builtInsPerName.get(name); if (builtIn == null || builtIn.isDefault()) { // If builtIn == null, the plugin has been removed // rows of table default_qprofiles must be inserted after org_qprofiles // in order to benefit from batch SQL inserts defaults.add(new DefaultQProfileDto() .setQProfileUuid(dto.getUuid()) .setOrganizationUuid(organization.getUuid()) .setLanguage(rulesProfile.getLanguage())); } dbClient.qualityProfileDao().insert(batchDbSession, dto); }); defaults.forEach(defaultQProfileDto -> dbClient.defaultQProfileDao().insertOrUpdate(dbSession, defaultQProfileDto)); }
private void associateToOrganizations(DbSession dbSession, DbSession batchDbSession, BuiltInQProfile builtIn, RulesProfileDto rulesProfileDto) { List<String> orgUuids = dbClient.organizationDao().selectAllUuids(dbSession); Set<String> orgUuidsWithoutDefault = dbClient.defaultQProfileDao().selectUuidsOfOrganizationsWithoutDefaultProfile(dbSession, builtIn.getLanguage()); List<DefaultQProfileDto> defaults = new ArrayList<>(); orgUuids.forEach(orgUuid -> { OrgQProfileDto dto = new OrgQProfileDto() .setOrganizationUuid(orgUuid) .setRulesProfileUuid(rulesProfileDto.getKee()) .setUuid(uuidFactory.create()); if (builtIn.isDefault() && orgUuidsWithoutDefault.contains(orgUuid)) { // rows of table default_qprofiles must be inserted after // in order to benefit from batch SQL inserts defaults.add(new DefaultQProfileDto() .setQProfileUuid(dto.getUuid()) .setOrganizationUuid(orgUuid) .setLanguage(builtIn.getLanguage())); } dbClient.qualityProfileDao().insert(batchDbSession, dto); }); defaults.forEach(defaultQProfileDto -> dbClient.defaultQProfileDao().insertOrUpdate(dbSession, defaultQProfileDto)); }
public static OrgQProfileDto from(QProfileDto qProfileDto) { return new OrgQProfileDto() .setUuid(qProfileDto.getKee()) .setOrganizationUuid(qProfileDto.getOrganizationUuid()) .setRulesProfileUuid(qProfileDto.getRulesProfileUuid()) .setParentUuid(qProfileDto.getParentKee()) .setLastUsed(qProfileDto.getLastUsed()) .setUserUpdatedAt(qProfileDto.getUserUpdatedAt()); } }
private QProfileDto associateBuiltInProfileToOrganization(RulesProfileDto rulesProfile, OrganizationDto organization) { OrgQProfileDto orgQProfileDto = new OrgQProfileDto() .setUuid(Uuids.createFast()) .setRulesProfileUuid(rulesProfile.getKee()) .setOrganizationUuid(organization.getUuid()); db.getDbClient().qualityProfileDao().insert(dbSession, orgQProfileDto); db.commit(); return QProfileDto.from(orgQProfileDto, rulesProfile); }
@Test public void selectQProfilesByRuleProfileUuid() { OrganizationDto org1 = db.organizations().insert(); OrganizationDto org2 = db.organizations().insert(); RulesProfileDto ruleProfile1 = QualityProfileTesting.newRuleProfileDto(); OrgQProfileDto profile1InOrg1 = new OrgQProfileDto().setOrganizationUuid(org1.getUuid()).setRulesProfileUuid(ruleProfile1.getKee()).setUuid(Uuids.create()); OrgQProfileDto profile1InOrg2 = new OrgQProfileDto().setOrganizationUuid(org2.getUuid()).setRulesProfileUuid(ruleProfile1.getKee()).setUuid(Uuids.create()); RulesProfileDto ruleProfile2 = QualityProfileTesting.newRuleProfileDto(); OrgQProfileDto profile2InOrg1 = new OrgQProfileDto().setOrganizationUuid(org1.getUuid()).setRulesProfileUuid(ruleProfile2.getKee()).setUuid(Uuids.create()); db.getDbClient().qualityProfileDao().insert(db.getSession(), ruleProfile1); db.getDbClient().qualityProfileDao().insert(db.getSession(), profile1InOrg1); db.getDbClient().qualityProfileDao().insert(db.getSession(), profile1InOrg2); db.getDbClient().qualityProfileDao().insert(db.getSession(), ruleProfile2); db.getDbClient().qualityProfileDao().insert(db.getSession(), profile2InOrg1); List<QProfileDto> result = db.getDbClient().qualityProfileDao().selectQProfilesByRuleProfile(db.getSession(), ruleProfile1); assertThat(result).extracting(QProfileDto::getKee).containsExactlyInAnyOrder(profile1InOrg1.getUuid(), profile1InOrg2.getUuid()); result = db.getDbClient().qualityProfileDao().selectQProfilesByRuleProfile(db.getSession(), ruleProfile2); assertThat(result).extracting(QProfileDto::getKee).containsExactlyInAnyOrder(profile2InOrg1.getUuid()); }
private void insertQualityProfiles(DbSession dbSession, DbSession batchDbSession, OrganizationDto organization) { Map<QProfileName, BuiltInQProfile> builtInsPerName = builtInQProfileRepository.get().stream() .collect(uniqueIndex(BuiltInQProfile::getQProfileName)); List<DefaultQProfileDto> defaults = new ArrayList<>(); dbClient.qualityProfileDao().selectBuiltInRuleProfiles(dbSession).forEach(rulesProfile -> { OrgQProfileDto dto = new OrgQProfileDto() .setOrganizationUuid(organization.getUuid()) .setRulesProfileUuid(rulesProfile.getKee()) .setUuid(uuidFactory.create()); QProfileName name = new QProfileName(rulesProfile.getLanguage(), rulesProfile.getName()); BuiltInQProfile builtIn = builtInsPerName.get(name); if (builtIn != null && builtIn.isDefault()) { // rows of table default_qprofiles must be inserted after org_qprofiles // in order to benefit from batch SQL inserts defaults.add(new DefaultQProfileDto() .setQProfileUuid(dto.getUuid()) .setOrganizationUuid(organization.getUuid()) .setLanguage(builtIn.getLanguage())); } dbClient.qualityProfileDao().insert(batchDbSession, dto); }); defaults.forEach(defaultQProfileDto -> dbClient.defaultQProfileDao().insertOrUpdate(dbSession, defaultQProfileDto)); }
private void associateToOrganizations(DbSession dbSession, DbSession batchDbSession, BuiltInQProfile builtIn, RulesProfileDto rulesProfileDto) { List<String> orgUuids = dbClient.organizationDao().selectAllUuids(dbSession); Set<String> orgUuidsWithoutDefault = dbClient.defaultQProfileDao().selectUuidsOfOrganizationsWithoutDefaultProfile(dbSession, builtIn.getLanguage()); List<DefaultQProfileDto> defaults = new ArrayList<>(); orgUuids.forEach(orgUuid -> { OrgQProfileDto dto = new OrgQProfileDto() .setOrganizationUuid(orgUuid) .setRulesProfileUuid(rulesProfileDto.getKee()) .setUuid(uuidFactory.create()); if (builtIn.isDefault() && orgUuidsWithoutDefault.contains(orgUuid)) { // rows of table default_qprofiles must be inserted after // in order to benefit from batch SQL inserts defaults.add(new DefaultQProfileDto() .setQProfileUuid(dto.getUuid()) .setOrganizationUuid(orgUuid) .setLanguage(builtIn.getLanguage())); } dbClient.qualityProfileDao().insert(batchDbSession, dto); }); defaults.forEach(defaultQProfileDto -> dbClient.defaultQProfileDao().insertOrUpdate(dbSession, defaultQProfileDto)); }