Map<String, Map<String, BuiltInQualityProfile>> profiles = define(c -> { NewBuiltInQualityProfile profile1 = c.createBuiltInQualityProfile("Foo1", "xoo"); NewBuiltInActiveRule rule = profile1.activateRule("repo", "rule"); profile1.done(); NewBuiltInQualityProfile profile2 = c.createBuiltInQualityProfile("Foo2", "xoo"); profile2.done(); NewBuiltInQualityProfile profile3 = c.createBuiltInQualityProfile("Foo1", "xoo2"); profile3.done(); assertThat(profile1).isEqualTo(profile1); assertThat(profile1).isNotEqualTo(null);
private static void define(Context context, RulesProfile profile) { NewBuiltInQualityProfile newQp = context.createBuiltInQualityProfile(profile.getName(), profile.getLanguage()) .setDefault(profile.getDefaultProfile().booleanValue()); for (org.sonar.api.rules.ActiveRule ar : profile.getActiveRules()) { NewBuiltInActiveRule newActiveRule = newQp.activateRule(ar.getRepositoryKey(), ar.getRuleKey()); RulePriority overriddenSeverity = ar.getOverriddenSeverity(); if (overriddenSeverity != null) { newActiveRule.overrideSeverity(overriddenSeverity.name()); } for (ActiveRuleParam param : ar.getActiveRuleParams()) { newActiveRule.overrideParam(param.getKey(), param.getValue()); } } newQp.done(); }
@CheckForNull void loadActiveRule(BuiltInQualityProfilesDefinition.NewBuiltInQualityProfile profile, String repositoryKey, Class<?> clazz) { BelongsToProfile belongsToProfile = clazz.getAnnotation(BelongsToProfile.class); if ((belongsToProfile != null) && StringUtils.equals(belongsToProfile.title(), profile.name())) { String ruleKey = RuleAnnotationUtils.getRuleKey(clazz); NewBuiltInActiveRule activeRule = profile.activateRule(repositoryKey, ruleKey); activeRule.overrideSeverity(belongsToProfile.priority().name()); } }
@Override public void define(Context context) { NewBuiltInQualityProfile profile = context.createBuiltInQualityProfile("Sonar way", YamlLanguage.KEY); profile.setDefault(true); profile.activateRule(CheckRepository.REPOSITORY_KEY, "ParsingErrorCheck"); profile.activateRule(CheckRepository.REPOSITORY_KEY, "BracesCheck"); profile.activateRule(CheckRepository.REPOSITORY_KEY, "BracketsCheck"); profile.activateRule(CheckRepository.REPOSITORY_KEY, "ColonsCheck"); profile.activateRule(CheckRepository.REPOSITORY_KEY, "CommasCheck"); profile.activateRule(CheckRepository.REPOSITORY_KEY, "CommentsCheck"); profile.activateRule(CheckRepository.REPOSITORY_KEY, "CommentsIndentationCheck"); profile.activateRule(CheckRepository.REPOSITORY_KEY, "DocumentStartCheck"); profile.activateRule(CheckRepository.REPOSITORY_KEY, "EmptyLinesCheck"); profile.activateRule(CheckRepository.REPOSITORY_KEY, "EmptyValuesCheck"); profile.activateRule(CheckRepository.REPOSITORY_KEY, "HyphensCheck"); profile.activateRule(CheckRepository.REPOSITORY_KEY, "IndentationCheck"); profile.activateRule(CheckRepository.REPOSITORY_KEY, "KeyDuplicatesCheck"); profile.activateRule(CheckRepository.REPOSITORY_KEY, "LineLengthCheck"); profile.activateRule(CheckRepository.REPOSITORY_KEY, "NewLineAtEndOfFileCheck"); profile.activateRule(CheckRepository.REPOSITORY_KEY, "NewLinesCheck"); profile.activateRule(CheckRepository.REPOSITORY_KEY, "OctalValuesCheck"); profile.activateRule(CheckRepository.REPOSITORY_KEY, "TrailingSpacesCheck"); profile.activateRule(CheckRepository.REPOSITORY_KEY, "TruthyCheck"); profile.done();
@Override public void define(Context context) { LOGGER.info("Creating Objective-C Profile"); NewBuiltInQualityProfile nbiqp = context.createBuiltInQualityProfile("Objective-C", ObjectiveC.KEY); nbiqp.setDefault(true); try(Reader config = new InputStreamReader(getClass().getResourceAsStream(OCLintProfile.PROFILE_PATH))) { RulesProfile ocLintRulesProfile = ocLintProfileImporter.importProfile(config, ValidationMessages.create()); for (ActiveRule rule : ocLintRulesProfile.getActiveRules()) { nbiqp.activateRule(rule.getRepositoryKey(), rule.getRuleKey()); } } catch (IOException ex){ LOGGER.error("Error Creating Objective-C Profile",ex); } try(Reader config = new InputStreamReader(getClass().getResourceAsStream(FauxPasProfile.PROFILE_PATH))){ RulesProfile fauxPasRulesProfile = fauxPasProfileImporter.importProfile(config, ValidationMessages.create()); for (ActiveRule rule : fauxPasRulesProfile.getActiveRules()) { nbiqp.activateRule(rule.getRepositoryKey(),rule.getRuleKey()); } } catch (IOException ex){ LOGGER.error("Error Creating Objective-C Profile",ex); } nbiqp.done(); } }
/** * Avoids activating Security Hotspots rules in a given profile if those are not supported (i.e. SQ version < 7.3) */ public static void load( NewBuiltInQualityProfile profile, String repositoryKey, String jsonProfilePath, String resourcePath, SonarRuntime sonarRuntime ) { RuleMetadataLoader ruleMetadataLoader = new RuleMetadataLoader(resourcePath, jsonProfilePath, sonarRuntime); Set<String> activeKeys = loadActiveKeysFromJsonProfile(jsonProfilePath); activeKeys.stream() .filter(ruleKey -> { Map<String, Object> ruleMetadata = ruleMetadataLoader.getMetadata(ruleKey); return !ruleMetadataLoader.isSecurityHotspot(ruleMetadata) || ruleMetadataLoader.securityHotspotsSupported(); }) .forEach(activeKey -> profile.activateRule(repositoryKey, activeKey)); }
@Override public void define(Context context) { NewBuiltInQualityProfile profile = context.createBuiltInQualityProfile(PROFILE_NAME, Constants.LANGUAGE_KEY); profile.activateRule(Constants.STD_REPOSITORY_KEY, OpenEdgeRulesDefinition.COMPILER_WARNING_RULEKEY); profile.activateRule(Constants.STD_REPOSITORY_KEY, OpenEdgeRulesDefinition.COMPILER_WARNING_214_RULEKEY); profile.activateRule(Constants.STD_REPOSITORY_KEY, OpenEdgeRulesDefinition.COMPILER_WARNING_12115_RULEKEY); profile.activateRule(Constants.STD_REPOSITORY_KEY, OpenEdgeRulesDefinition.COMPILER_WARNING_15090_RULEKEY); profile.activateRule(Constants.STD_REPOSITORY_KEY, OpenEdgeRulesDefinition.COMPILER_WARNING_14786_RULEKEY); profile.activateRule(Constants.STD_REPOSITORY_KEY, OpenEdgeRulesDefinition.COMPILER_WARNING_14789_RULEKEY); profile.activateRule(Constants.STD_REPOSITORY_KEY, OpenEdgeRulesDefinition.COMPILER_WARNING_18494_RULEKEY); profile.activateRule(Constants.STD_REPOSITORY_KEY, OpenEdgeRulesDefinition.COMPILER_WARNING_2965_RULEKEY); profile.activateRule(Constants.STD_REPOSITORY_KEY, OpenEdgeRulesDefinition.PROPARSE_ERROR_RULEKEY); profile.activateRule(Constants.STD_REPOSITORY_KEY, SharedObjectsAnalyzer.class.getName()); profile.activateRule(Constants.STD_REPOSITORY_KEY, LargeTransactionScope.class.getName()); profile.activateRule(Constants.STD_REPOSITORY_KEY, ClumsySyntax.class.getName()); profile.done(); } }
@Override public void define(BuiltInQualityProfilesDefinition.Context context) { LOGGER.info("Creating Swift Profile"); BuiltInQualityProfilesDefinition.NewBuiltInQualityProfile nbiqp = context.createBuiltInQualityProfile("Swift", Swift.KEY); nbiqp.setDefault(true); try (Reader config = new InputStreamReader(getClass().getResourceAsStream(SwiftLintProfile.PROFILE_PATH))) { RulesProfile ocLintRulesProfile = swiftLintProfileImporter.importProfile(config, ValidationMessages.create()); for (ActiveRule rule : ocLintRulesProfile.getActiveRules()) { nbiqp.activateRule(rule.getRepositoryKey(), rule.getRuleKey()); } } catch (IOException ex) { LOGGER.error("Error Creating Swift Profile", ex); } nbiqp.done(); } }
@Override public void define(Context context) { LOGGER.info("Creating Tailor Profile"); NewBuiltInQualityProfile nbiqp = context.createBuiltInQualityProfile(TailorRulesDefinition.REPOSITORY_KEY, Swift.KEY); try(Reader config = new InputStreamReader(getClass().getResourceAsStream(PROFILE_PATH))) { RulesProfile ocLintRulesProfile = profileImporter.importProfile(config, ValidationMessages.create()); for (ActiveRule rule : ocLintRulesProfile.getActiveRules()) { nbiqp.activateRule(rule.getRepositoryKey(), rule.getRuleKey()); } } catch (IOException ex){ LOGGER.error("Error Creating Tailor Profile",ex); } nbiqp.done(); } }
private static void define(Context context, RulesProfile profile) { NewBuiltInQualityProfile newQp = context.createBuiltInQualityProfile(profile.getName(), profile.getLanguage()) .setDefault(profile.getDefaultProfile().booleanValue()); for (org.sonar.api.rules.ActiveRule ar : profile.getActiveRules()) { NewBuiltInActiveRule newActiveRule = newQp.activateRule(ar.getRepositoryKey(), ar.getRuleKey()); RulePriority overriddenSeverity = ar.getOverriddenSeverity(); if (overriddenSeverity != null) { newActiveRule.overrideSeverity(overriddenSeverity.name()); } for (ActiveRuleParam param : ar.getActiveRuleParams()) { newActiveRule.overrideParam(param.getKey(), param.getValue()); } } newQp.done(); }
@Override public void define(Context context) { context.createBuiltInQualityProfile(PROFILE_NAME, Constants.DB_LANGUAGE_KEY).done(); }
@Override public void define(Context context) { LOGGER.info("Creating OCLint Profile"); NewBuiltInQualityProfile nbiqp = context.createBuiltInQualityProfile(OCLintRulesDefinition.REPOSITORY_KEY, ObjectiveC.KEY); try(Reader config = new InputStreamReader(getClass().getResourceAsStream(OCLintProfile.PROFILE_PATH))) { RulesProfile ocLintRulesProfile = profileImporter.importProfile(config, ValidationMessages.create()); for (ActiveRule rule : ocLintRulesProfile.getActiveRules()) { nbiqp.activateRule(rule.getRepositoryKey(), rule.getRuleKey()); } } catch (IOException ex){ LOGGER.error("Error Creating OCLint Profile",ex); } nbiqp.done(); } }
@Override public void define(Context context) { LOGGER.info("Creating SwiftLint Profile"); NewBuiltInQualityProfile nbiqp = context.createBuiltInQualityProfile(SwiftLintRulesDefinition.REPOSITORY_KEY, Swift.KEY); try(Reader config = new InputStreamReader(getClass().getResourceAsStream(SwiftLintProfile.PROFILE_PATH))) { RulesProfile ocLintRulesProfile = profileImporter.importProfile(config, ValidationMessages.create()); for (ActiveRule rule : ocLintRulesProfile.getActiveRules()) { nbiqp.activateRule(rule.getRepositoryKey(), rule.getRuleKey()); } } catch (IOException ex){ LOGGER.error("Error Creating SwiftLint Profile",ex); } nbiqp.done(); } }
@Override public void define(Context context) { LOGGER.info("Creating FauxPas Profile"); NewBuiltInQualityProfile nbiqp = context.createBuiltInQualityProfile(FauxPasRulesDefinition.REPOSITORY_KEY, ObjectiveC.KEY); try(Reader config = new InputStreamReader(getClass().getResourceAsStream(OCLintProfile.PROFILE_PATH))) { RulesProfile ocLintRulesProfile = profileImporter.importProfile(config, ValidationMessages.create()); for (ActiveRule rule : ocLintRulesProfile.getActiveRules()) { nbiqp.activateRule(rule.getRepositoryKey(), rule.getRuleKey()); } } catch (IOException ex){ LOGGER.error("Error Creating FauxPas Profile",ex); } nbiqp.done(); } }
@Override public void define(Context context) { NewBuiltInQualityProfile sonarWay = context.createBuiltInQualityProfile("Sonar way", Java.KEY); sonarWay.activateRule("common-" + Java.KEY, "DuplicatedBlocks"); Profile jsonProfile = readProfile(); Map<String, String> keys = legacyKeys(); for (String key : jsonProfile.ruleKeys) { if (shouldActivateRule(key)) { sonarWay.activateRule(CheckList.REPOSITORY_KEY, keys.get(key)); } } getSecurityRuleKeys().forEach(key -> sonarWay.activateRule(CheckList.REPOSITORY_KEY, key)); sonarWay.done(); }
@Override public void define(Context context) { NewBuiltInQualityProfile profile = context.createBuiltInQualityProfile(NAME, HtmlConstants.JSP_LANGUAGE_KEY); profile.done(); }
private void addRule(Class<?> ruleClass, NewBuiltInQualityProfile profile, String repositoryKey) { if (AnnotationUtils.getAnnotation(ruleClass, ActivatedByDefault.class) != null) { String ruleKey = RuleAnnotationUtils.getRuleKey(ruleClass); profile.activateRule(repositoryKey, ruleKey); } }
@Override public void define(Context context) { NewBuiltInQualityProfile profile = context.createBuiltInQualityProfile(NAME, HtmlConstants.LANGUAGE_KEY); BuiltInQualityProfileJsonLoader.load(profile, REPOSITORY_KEY, JSON_PROFILE_PATH, RESOURCE_BASE_PATH, sonarRuntime); profile.done(); }
@Override public void define(Context context) { NewBuiltInQualityProfile profile = context.createBuiltInQualityProfile(PROFILE_NAME, Python.KEY); BuiltInQualityProfileJsonLoader.load(profile, CheckList.REPOSITORY_KEY, PROFILE_LOCATION); profile.done(); }
@Override public void define(Context context) { NewBuiltInQualityProfile profile = context.createBuiltInQualityProfile(PROFILE_NAME, Python.KEY); BuiltInQualityProfileJsonLoader.load(profile, CheckList.REPOSITORY_KEY, PROFILE_LOCATION); profile.done(); }