From e66f5406459c905dc905d914110662fbc62bf4a4 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Lievremont Date: Mon, 2 Jun 2014 11:41:49 +0200 Subject: [PATCH] SONAR-5133 Filter out profiles with unsupported plugins --- .../org/sonar/server/rule/ws/AppAction.java | 26 ++++++++++++------- .../sonar/server/rule/ws/AppActionTest.java | 4 ++- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/sonar-server/src/main/java/org/sonar/server/rule/ws/AppAction.java b/sonar-server/src/main/java/org/sonar/server/rule/ws/AppAction.java index 0d9a92fa0dc..5cb546696aa 100644 --- a/sonar-server/src/main/java/org/sonar/server/rule/ws/AppAction.java +++ b/sonar-server/src/main/java/org/sonar/server/rule/ws/AppAction.java @@ -81,22 +81,28 @@ public class AppAction implements RequestHandler { private void addProfiles(JsonWriter json) { json.name("qualityprofiles").beginArray(); for (QualityProfileDto profile : qualityProfileService.findAll()) { - json.beginObject() - .prop("key", profile.getKey().toString()) - .prop("name", profile.getName()) - .prop("lang", profile.getLanguage()) - .prop("parent", profile.getParent()); - if (profile.getParentKey() != null) { - json - .prop("parentKey", profile.getParentKey().toString()); + if (languageIsSupported(profile)) { + json.beginObject() + .prop("key", profile.getKey().toString()) + .prop("name", profile.getName()) + .prop("lang", profile.getLanguage()) + .prop("parent", profile.getParent()); + if (profile.getParentKey() != null) { + json + .prop("parentKey", profile.getParentKey().toString()); + } + json + .endObject(); } - json - .endObject(); } json.endArray(); } + private boolean languageIsSupported(QualityProfileDto profile) { + return languages.get(profile.getLanguage()) != null; + } + private void addLanguages(JsonWriter json) { json.name("languages").beginObject(); for (Language language : languages.all()) { diff --git a/sonar-server/src/test/java/org/sonar/server/rule/ws/AppActionTest.java b/sonar-server/src/test/java/org/sonar/server/rule/ws/AppActionTest.java index 33d9457b3bd..0f002f4a0d8 100644 --- a/sonar-server/src/test/java/org/sonar/server/rule/ws/AppActionTest.java +++ b/sonar-server/src/test/java/org/sonar/server/rule/ws/AppActionTest.java @@ -75,7 +75,8 @@ public class AppActionTest { QualityProfileDto profile1 = QualityProfileDto.createFor("Profile One", "bf"); QualityProfileDto profile2 = QualityProfileDto.createFor("Profile Two", "bf").setParent("Profile One"); - when(qualityProfileService.findAll()).thenReturn(ImmutableList.of(profile1, profile2)); + QualityProfileDto profile3 = QualityProfileDto.createFor("Profile Three", "polop"); + when(qualityProfileService.findAll()).thenReturn(ImmutableList.of(profile1, profile2, profile3)); Language brainfsck = mock(Language.class); when(brainfsck.getKey()).thenReturn("bf"); @@ -83,6 +84,7 @@ public class AppActionTest { Language whitespace = mock(Language.class); when(whitespace.getKey()).thenReturn("ws"); when(whitespace.getName()).thenReturn("Whitespace"); + when(languages.get("bf")).thenReturn(brainfsck); when(languages.all()).thenReturn(new Language[]{brainfsck, whitespace}); RuleRepositories.Repository repo1 = mock(RuleRepositories.Repository.class); -- 2.39.5