public static DefaultQProfileDto from(QProfileDto profile) { return new DefaultQProfileDto() .setOrganizationUuid(profile.getOrganizationUuid()) .setLanguage(profile.getLanguage()) .setQProfileUuid(profile.getKee()); }
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)); }
dbClient.defaultQProfileDao().insertOrUpdate(dbSession, new DefaultQProfileDto() .setQProfileUuid(qualityProfile.getKee()) .setLanguage(qp.getLanguage())
@Test public void deleteByQProfileUuids_deletes_rows_related_to_specified_profile() { OrganizationDto org1 = dbTester.organizations().insert(); OrganizationDto org2 = dbTester.organizations().insert(); underTest.insertOrUpdate(dbSession, new DefaultQProfileDto().setOrganizationUuid(org1.getUuid()).setLanguage("java").setQProfileUuid("u1")); underTest.insertOrUpdate(dbSession, new DefaultQProfileDto().setOrganizationUuid(org1.getUuid()).setLanguage("js").setQProfileUuid("u2")); underTest.insertOrUpdate(dbSession, new DefaultQProfileDto().setOrganizationUuid(org2.getUuid()).setLanguage("java").setQProfileUuid("u3")); underTest.insertOrUpdate(dbSession, new DefaultQProfileDto().setOrganizationUuid(org2.getUuid()).setLanguage("js").setQProfileUuid("u4")); underTest.deleteByQProfileUuids(dbSession, asList("u1", "u3")); dbSession.commit(); assertThat(countRows()).isEqualTo(2); assertThat(selectUuidOfDefaultProfile(org1, "java")).isEmpty(); assertThat(selectUuidOfDefaultProfile(org1, "js")).hasValue("u2"); assertThat(selectUuidOfDefaultProfile(org2, "java")).isEmpty(); assertThat(selectUuidOfDefaultProfile(org2, "js")).hasValue("u4"); }
@Test public void insertOrUpdate_updates_row_when_exists() { OrganizationDto org = dbTester.organizations().insert(); String previousQProfileUuid = Uuids.create(); DefaultQProfileDto dto = new DefaultQProfileDto() .setLanguage("java") .setOrganizationUuid(org.getUuid()) .setQProfileUuid(previousQProfileUuid); underTest.insertOrUpdate(dbSession, dto); dbSession.commit(); String newQProfileUuid = Uuids.create(); dto.setQProfileUuid(newQProfileUuid); underTest.insertOrUpdate(dbSession, dto); dbSession.commit(); assertThat(countRows()).isEqualTo(1); assertThat(selectUuidOfDefaultProfile(org, dto.getLanguage())).hasValue(newQProfileUuid); }
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)); }
dbClient.defaultQProfileDao().insertOrUpdate(dbSession, new DefaultQProfileDto() .setQProfileUuid(qProfileDto.getKee()) .setLanguage(qp.getLanguage())