]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-3529 API: ability to define property sets. Fix server startup
authorDavid Gageot <david@gageot.net>
Mon, 24 Sep 2012 13:26:55 +0000 (15:26 +0200)
committerDavid Gageot <david@gageot.net>
Mon, 24 Sep 2012 13:27:04 +0000 (15:27 +0200)
sonar-plugin-api/src/main/java/org/sonar/api/config/PropertySet.java
sonar-plugin-api/src/main/java/org/sonar/api/config/PropertySetDefinitions.java
sonar-plugin-api/src/test/java/org/sonar/api/config/PropertySetDefinitionsTest.java
sonar-server/src/main/java/org/sonar/server/ui/JRubyFacade.java

index fcc808eed91e5e7b01c6066756416ab0f2703e10..ee13b9404879955f5dbbe09bd34bb83a8dc5ae61 100644 (file)
@@ -26,8 +26,9 @@ import java.util.List;
 public class PropertySet {
   private final List<PropertySetField> fields = Lists.newArrayList();
 
-  public void add(PropertySetField field) {
+  public PropertySet add(PropertySetField field) {
     fields.add(field);
+    return this;
   }
 
   public List<PropertySetField> getFields() {
index 07c6075725b5d4ca9dafa4f5501a80fe7f97188b..511f3d909a61a16ab5842c0a71a5d6ebf5c7d70f 100644 (file)
  */
 package org.sonar.api.config;
 
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Maps;
+import org.sonar.api.ServerExtension;
 
+import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
 
-public class PropertySetDefinitions {
+public class PropertySetDefinitions implements ServerExtension {
   private final Map<String, PropertySet> index = Maps.newHashMap();
 
   public void register(String name, PropertySet propertySet) {
@@ -33,6 +36,10 @@ public class PropertySetDefinitions {
     }
   }
 
+  public List<PropertySet> findAll() {
+    return ImmutableList.copyOf(index.values());
+  }
+
   public PropertySet findByName(String name) {
     PropertySet propertySet = index.get(name);
     if (propertySet == null) {
index 5fcd1e21d22b9f9a513c01f8547cfe7bd29683db..cd0a3c39112131b6d699dd6253c794aa28b980df 100644 (file)
@@ -38,6 +38,7 @@ public class PropertySetDefinitionsTest {
 
     assertThat(definitions.findByName("name")).isSameAs(set);
     assertThat(definitions.findByName("other")).isSameAs(other);
+    assertThat(definitions.findAll()).containsOnly(set, other);
   }
 
   @Test(expected = IllegalStateException.class)
index 263bf5631123814c0e504dabcfeb5aebe68cf8c4..85f177aaec9e252ec19a37925f6a65620faaab24 100644 (file)
@@ -23,9 +23,7 @@ import com.google.common.collect.ListMultimap;
 import com.google.common.collect.Lists;
 import org.slf4j.LoggerFactory;
 import org.sonar.api.CoreProperties;
-import org.sonar.api.config.License;
-import org.sonar.api.config.PropertyDefinitions;
-import org.sonar.api.config.Settings;
+import org.sonar.api.config.*;
 import org.sonar.api.platform.ComponentContainer;
 import org.sonar.api.platform.NewUserHandler;
 import org.sonar.api.platform.PluginMetadata;
@@ -510,4 +508,8 @@ public final class JRubyFacade {
         .build());
     }
   }
+
+  public List<PropertySet> listPropertySets() {
+    return get(PropertySetDefinitions.class).findAll();
+  }
 }