]> source.dussan.org Git - sonarqube.git/commitdiff
Update Xoo plugin to test Settings default values
authorJulien HENRY <julien.henry@sonarsource.com>
Thu, 21 Jul 2016 10:05:01 +0000 (12:05 +0200)
committerJulien HENRY <julien.henry@sonarsource.com>
Thu, 21 Jul 2016 10:05:01 +0000 (12:05 +0200)
plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/Xoo.java
plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/XooPlugin.java
plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/XooPluginTest.java

index ab9a6547de3fee77aafea6991e1261abd37c8598..0f4c272b1ba86048eeaf129ed067c1524bd18ef1 100644 (file)
  */
 package org.sonar.xoo;
 
+import java.util.Arrays;
+import org.sonar.api.config.Settings;
 import org.sonar.api.resources.Language;
 
 public class Xoo implements Language {
 
   public static final String KEY = "xoo";
   public static final String NAME = "Xoo";
-  public static final String FILE_SUFFIX = ".xoo";
+  public static final String FILE_SUFFIXES_KEY = "sonar.xoo.file.suffixes";
+  public static final String DEFAULT_FILE_SUFFIXES = ".xoo";
 
-  private static final String[] XOO_SUFFIXES = {
-    FILE_SUFFIX
-  };
+  private final Settings settings;
+
+  public Xoo(Settings settings) {
+    this.settings = settings;
+  }
 
   @Override
   public String getKey() {
@@ -43,6 +48,6 @@ public class Xoo implements Language {
 
   @Override
   public String[] getFileSuffixes() {
-    return XOO_SUFFIXES;
+    return Arrays.stream(settings.getStringArray(FILE_SUFFIXES_KEY)).filter(s -> s != null && !s.trim().isEmpty()).toArray(String[]::new);
   }
 }
index 9b443628856a31b98a63b6bb56e88be7f724aba8..7cc594aa95876bf1b7e005d21c1adca3834bd793 100644 (file)
@@ -21,6 +21,8 @@ package org.sonar.xoo;
 
 import org.sonar.api.Plugin;
 import org.sonar.api.SonarProduct;
+import org.sonar.api.config.PropertyDefinition;
+import org.sonar.api.resources.Qualifiers;
 import org.sonar.xoo.coverage.ItCoverageSensor;
 import org.sonar.xoo.coverage.OverallCoverageSensor;
 import org.sonar.xoo.coverage.UtCoverageSensor;
@@ -73,6 +75,13 @@ public class XooPlugin implements Plugin {
   @Override
   public void define(Context context) {
     context.addExtensions(
+      PropertyDefinition.builder(Xoo.FILE_SUFFIXES_KEY)
+        .defaultValue(Xoo.DEFAULT_FILE_SUFFIXES)
+        .name("File suffixes")
+        .description("Comma-separated list of suffixes for files to analyze. To not filter, leave the list empty.")
+        .subCategory("General")
+        .onQualifiers(Qualifiers.PROJECT)
+        .build(),
       Xoo.class,
       Xoo2.class,
       XooRulesDefinition.class,
index 6a0507af8d1086528ea5fcfa09038034020e54fe..3d72a69bd428967883aadd29f2ee54df2f4ae4c7 100644 (file)
@@ -35,10 +35,10 @@ public class XooPluginTest {
   public void provide_extensions_for_5_5() {
     Plugin.Context context = new Plugin.Context(new SonarRuntime(Version.parse("5.5"), SonarProduct.SONARQUBE, SonarQubeSide.SCANNER));
     new XooPlugin().define(context);
-    assertThat(context.getExtensions()).hasSize(43).contains(CpdTokenizerSensor.class);
+    assertThat(context.getExtensions()).hasSize(44).contains(CpdTokenizerSensor.class);
 
     context = new Plugin.Context(new SonarRuntime(Version.parse("5.4"), SonarProduct.SONARLINT, null));
     new XooPlugin().define(context);
-    assertThat(context.getExtensions()).hasSize(40).doesNotContain(CpdTokenizerSensor.class);
+    assertThat(context.getExtensions()).hasSize(41).doesNotContain(CpdTokenizerSensor.class);
   }
 }