@Override public void start() { if (languages.all().length == 0) { throw new IllegalStateException("No language plugins are installed."); } }
private void ensureAllLanguagesHaveAtLeastOneBuiltInQP() { Set<String> languagesWithBuiltInQProfiles = qProfiles.stream().map(BuiltInQProfile::getLanguage).collect(Collectors.toSet()); Set<String> languagesWithoutBuiltInQProfiles = Arrays.stream(languages.all()) .map(Language::getKey) .filter(key -> !languagesWithBuiltInQProfiles.contains(key)) .collect(Collectors.toSet()); checkState(languagesWithoutBuiltInQProfiles.isEmpty(), "The following languages have no built-in quality profiles: %s", languagesWithoutBuiltInQProfiles.stream().collect(Collectors.joining())); }
public static List<String> getOrderedLanguageKeys(Languages languages) { Language[] all = languages.all(); return Arrays.stream(all) .map(Language::getKey) .sorted() .collect(MoreCollectors.toList(all.length)); } }
public static String getExampleValue(Languages languages) { Language[] languageArray = languages.all(); if (languageArray.length > 0) { return languageArray[0].getKey(); } else { return ""; } }
private Set<String> getLanguageKeys() { return Arrays.stream(languages.all()).map(Language::getKey).collect(MoreCollectors.toSet()); }
private Collection<Language> listMatchingLanguages(@Nullable String query, int pageSize) { Pattern pattern = Pattern.compile(query == null ? MATCH_ALL : MATCH_ALL + Pattern.quote(query) + MATCH_ALL, Pattern.CASE_INSENSITIVE); SortedMap<String, Language> languagesByName = Maps.newTreeMap(); for (Language lang : languages.all()) { if (pattern.matcher(lang.getKey()).matches() || pattern.matcher(lang.getName()).matches()) { languagesByName.put(lang.getName(), lang); } } List<Language> result = Lists.newArrayList(languagesByName.values()); if (pageSize > 0 && pageSize < result.size()) { result = result.subList(0, pageSize); } return result; }
/** * Get list of all supported languages. */ @Override public Collection<Language> all() { org.sonar.api.resources.Language[] all = languages.all(); Collection<Language> result = new ArrayList<>(all.length); for (org.sonar.api.resources.Language language : all) { result.add(new Language(language.getKey(), language.getName(), language.getFileSuffixes())); } return result; }
private void addLanguages(JsonWriter json) { json.name("languages").beginObject(); for (Language language : languages.all()) { json.prop(language.getKey(), language.getName()); } json.endObject(); }
public static void defineParams(WebService.NewAction action, Languages languages) { action.createParam(PARAM_KEY) .setDescription("Quality profile key") .setDeprecatedKey("profileKey", "6.5") .setDeprecatedSince("6.6") .setExampleValue(UUID_EXAMPLE_01); action.createParam(PARAM_QUALITY_PROFILE) .setDescription("Quality profile name") .setDeprecatedKey("profileName", "6.6") .setExampleValue("Sonar way"); action.createParam(PARAM_LANGUAGE) .setDescription("Quality profile language") .setPossibleValues(Arrays.stream(languages.all()).map(Language::getKey).collect(MoreCollectors.toSet())); } }
private Issues.Languages.Builder formatLanguages() { Issues.Languages.Builder wsLangs = Issues.Languages.newBuilder(); Issues.Language.Builder wsLang = Issues.Language.newBuilder(); for (Language lang : languages.all()) { wsLang .clear() .setKey(lang.getKey()) .setName(lang.getName()); wsLangs.addLanguages(wsLang); } return wsLangs; }
@Override public void define(WebService.NewController context) { WebService.NewAction action = context .createAction(ACTION_SEARCH_GROUPS) .setDescription("List the groups that are allowed to edit a Quality Profile.<br>" + "Requires one of the following permissions:" + "<ul>" + " <li>'Administer Quality Profiles'</li>" + " <li>Edit right on the specified quality profile</li>" + "</ul>") .setHandler(this) .setInternal(true) .addSelectionModeParam() .addSearchQuery("sonar", "group names") .addPagingParams(25) .setResponseExample(getClass().getResource("search_groups-example.json")) .setSince("6.6"); action.createParam(PARAM_QUALITY_PROFILE) .setDescription("Quality Profile name") .setRequired(true) .setExampleValue("Recommended quality profile"); action .createParam(PARAM_LANGUAGE) .setDescription("Quality profile language") .setRequired(true) .setPossibleValues(Arrays.stream(languages.all()).map(Language::getKey).collect(toSet())); createOrganizationParam(action); }
@Override public void define(WebService.NewController context) { WebService.NewAction action = context .createAction(ACTION_SEARCH_USERS) .setDescription("List the users that are allowed to edit a Quality Profile.<br>" + "Requires one of the following permissions:" + "<ul>" + " <li>'Administer Quality Profiles'</li>" + " <li>Edit right on the specified quality profile</li>" + "</ul>") .setHandler(this) .setInternal(true) .addSearchQuery("freddy", "names", "logins") .addSelectionModeParam() .addPagingParams(25) .setResponseExample(getClass().getResource("search_users-example.json")) .setSince("6.6"); action.createParam(PARAM_QUALITY_PROFILE) .setDescription("Quality Profile name") .setRequired(true) .setExampleValue("Recommended quality profile"); action .createParam(PARAM_LANGUAGE) .setDescription("Quality profile language") .setRequired(true) .setPossibleValues(Arrays.stream(languages.all()).map(Language::getKey).collect(toSet())); createOrganizationParam(action); }
.setSince("6.4"); Set<String> exporterKeys = Arrays.stream(languages.all()) .map(language -> exporters.exportersForLanguage(language.getKey())) .flatMap(Collection::stream)
@Before public void setUp() { resourceTypes.setAllQualifiers(PROJECT, MODULE, DIRECTORY, FILE); when(languages.all()).thenReturn(javaLanguage()); ws = new WsActionTester(new SearchAction(index, db.getDbClient(), resourceTypes, i18n, languages, defaultOrganizationProvider)); user = db.users().insertUser("john"); userSession.logIn(user); }
@Override public void define(WebService.NewController context) { WebService.NewAction action = context .createAction(ACTION_ADD_USER) .setDescription("Allow a user to edit a Quality Profile.<br>" + "Requires one of the following permissions:" + "<ul>" + " <li>'Administer Quality Profiles'</li>" + " <li>Edit right on the specified quality profile</li>" + "</ul>") .setHandler(this) .setPost(true) .setInternal(true) .setSince("6.6"); action.createParam(PARAM_QUALITY_PROFILE) .setDescription("Quality Profile name") .setRequired(true) .setExampleValue("Recommended quality profile"); action .createParam(PARAM_LANGUAGE) .setDescription("Quality profile language") .setRequired(true) .setPossibleValues(Arrays.stream(languages.all()).map(Language::getKey).collect(toSet())); action.createParam(PARAM_LOGIN) .setDescription("User login") .setRequired(true) .setExampleValue("john.doe"); createOrganizationParam(action); }
@Override public void define(WebService.NewController context) { WebService.NewAction action = context .createAction(ACTION_REMOVE_USER) .setDescription("Remove the ability from a user to edit a Quality Profile.<br>" + "Requires one of the following permissions:" + "<ul>" + " <li>'Administer Quality Profiles'</li>" + " <li>Edit right on the specified quality profile</li>" + "</ul>") .setHandler(this) .setPost(true) .setInternal(true) .setSince("6.6"); action.createParam(PARAM_QUALITY_PROFILE) .setDescription("Quality Profile name") .setRequired(true) .setExampleValue("Recommended quality profile"); action .createParam(PARAM_LANGUAGE) .setDescription("Quality profile language") .setRequired(true) .setPossibleValues(Arrays.stream(languages.all()).map(Language::getKey).collect(toSet())); action.createParam(PARAM_LOGIN) .setDescription("User login") .setRequired(true) .setExampleValue("john.doe"); createOrganizationParam(action); }
@Override public void define(WebService.NewController context) { WebService.NewAction action = context .createAction(ACTION_ADD_GROUP) .setDescription("Allow a group to edit a Quality Profile.<br>" + "Requires one of the following permissions:" + "<ul>" + " <li>'Administer Quality Profiles'</li>" + " <li>Edit right on the specified quality profile</li>" + "</ul>") .setHandler(this) .setPost(true) .setInternal(true) .setSince("6.6"); action.createParam(PARAM_QUALITY_PROFILE) .setDescription("Quality Profile name") .setRequired(true) .setExampleValue("Recommended quality profile"); action .createParam(PARAM_LANGUAGE) .setDescription("Quality profile language") .setRequired(true) .setPossibleValues(Arrays.stream(languages.all()).map(Language::getKey).collect(toSet())); action.createParam(PARAM_GROUP) .setDescription("Group name") .setRequired(true) .setExampleValue("sonar-administrators"); createOrganizationParam(action); }
@Before public void setUp() { Mockito.when(languages.all()).thenReturn(new Language[] { new Ook(), new LolCode(), new Whitespace(), new ArnoldC() }); tester = new WsTester(new LanguageWs(new ListAction(languages))); }
@Override public void define(WebService.NewController context) { WebService.NewAction action = context .createAction(ACTION_REMOVE_GROUP) .setDescription("Remove the ability from a group to edit a Quality Profile.<br>" + "Requires one of the following permissions:" + "<ul>" + " <li>'Administer Quality Profiles'</li>" + " <li>Edit right on the specified quality profile</li>" + "</ul>") .setHandler(this) .setPost(true) .setInternal(true) .setSince("6.6"); action.createParam(PARAM_QUALITY_PROFILE) .setDescription("Quality Profile name") .setRequired(true) .setExampleValue("Recommended quality profile"); action .createParam(PARAM_LANGUAGE) .setDescription("Quality profile language") .setRequired(true) .setPossibleValues(Arrays.stream(languages.all()).map(Language::getKey).collect(toSet())); action.createParam(PARAM_GROUP) .setDescription("Group name") .setRequired(true) .setExampleValue("sonar-administrators"); createOrganizationParam(action); }
@Override public void define(RulesDefinition.Context context) { for (Language language : languages.all()) { RulesDefinition.NewRepository repo = context.createRepository(commonRepositoryForLang(language.getKey()), language.getKey()); repo.setName("Common " + language.getName()); defineBranchCoverageRule(repo); defineLineCoverageRule(repo); defineCommentDensityRule(repo); defineDuplicatedBlocksRule(repo); defineFailedUnitTestRule(repo); defineSkippedUnitTestRule(repo); repo.done(); } }