aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server
diff options
context:
space:
mode:
authorsimonbrandhof <simon.brandhof@gmail.com>2010-10-08 14:38:32 +0000
committersimonbrandhof <simon.brandhof@gmail.com>2010-10-08 14:38:32 +0000
commit7ca495d67492c6b3dbb653102e345f8fc43f09ae (patch)
tree2dd4d54faaad9c4c74f172fba50bdfb5f3b734c8 /sonar-server
parent9185222d18826c0648a8bf3cf8e2e491537b472e (diff)
downloadsonarqube-7ca495d67492c6b3dbb653102e345f8fc43f09ae.tar.gz
sonarqube-7ca495d67492c6b3dbb653102e345f8fc43f09ae.zip
API: improve the pattern to define quality profiles. The extension point is org.sonar.api.profiles.ProfileDefinition, whereas XMLProfileParser and AnnotationProfileParser are components that can be used but not extended.
Diffstat (limited to 'sonar-server')
-rw-r--r--sonar-server/src/main/java/org/sonar/server/platform/Platform.java6
-rw-r--r--sonar-server/src/main/java/org/sonar/server/qualitymodel/DefaultModelManager.java4
-rw-r--r--sonar-server/src/main/java/org/sonar/server/rules/ProfilesConsole.java12
-rw-r--r--sonar-server/src/main/java/org/sonar/server/startup/RegisterProvidedProfiles.java5
-rw-r--r--sonar-server/src/test/java/org/sonar/server/qualitymodel/DefaultModelManagerTest.java2
-rw-r--r--sonar-server/src/test/java/org/sonar/server/rules/DeprecatedProfilesTest.java3
6 files changed, 20 insertions, 12 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
index 145ba28e3f4..48c321c0c02 100644
--- a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
+++ b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
@@ -28,6 +28,9 @@ import org.sonar.api.Plugins;
import org.sonar.api.database.configuration.DatabaseConfiguration;
import org.sonar.api.platform.Environment;
import org.sonar.api.platform.Server;
+import org.sonar.api.profiles.AnnotationProfileParser;
+import org.sonar.api.profiles.XMLProfileParser;
+import org.sonar.api.profiles.XMLProfileSerializer;
import org.sonar.api.resources.Languages;
import org.sonar.api.rules.DefaultRulesManager;
import org.sonar.api.utils.HttpDownloader;
@@ -169,6 +172,9 @@ public final class Platform {
servicesContainer.as(Characteristics.NO_CACHE).addComponent(Backup.class);
servicesContainer.as(Characteristics.CACHE).addComponent(AuthenticatorFactory.class);
servicesContainer.as(Characteristics.CACHE).addComponent(ServerLifecycleNotifier.class);
+ servicesContainer.as(Characteristics.CACHE).addComponent(AnnotationProfileParser.class);
+ servicesContainer.as(Characteristics.CACHE).addComponent(XMLProfileParser.class);
+ servicesContainer.as(Characteristics.CACHE).addComponent(XMLProfileSerializer.class);
servicesContainer.as(Characteristics.CACHE).addComponent(DefaultRuleFinder.class);
servicesContainer.as(Characteristics.CACHE).addComponent(DeprecatedRuleRepositories.class);
servicesContainer.as(Characteristics.CACHE).addComponent(DeprecatedProfiles.class);
diff --git a/sonar-server/src/main/java/org/sonar/server/qualitymodel/DefaultModelManager.java b/sonar-server/src/main/java/org/sonar/server/qualitymodel/DefaultModelManager.java
index 84ccb3999bb..0e5290a0012 100644
--- a/sonar-server/src/main/java/org/sonar/server/qualitymodel/DefaultModelManager.java
+++ b/sonar-server/src/main/java/org/sonar/server/qualitymodel/DefaultModelManager.java
@@ -57,7 +57,7 @@ public final class DefaultModelManager implements ServerComponent, ModelManager
for (ModelDefinition definition : definitions) {
if (StringUtils.isNotBlank(definition.getName()) && !exists(session, definition.getName())) {
Logs.INFO.info("Register quality model: " + definition.getName());
- Model model = definition.create();
+ Model model = definition.createModel();
if (StringUtils.isBlank(model.getName())) {
model.setName(definition.getName());
}
@@ -75,7 +75,7 @@ public final class DefaultModelManager implements ServerComponent, ModelManager
}
LoggerFactory.getLogger(getClass()).info("Reset quality model: " + name);
- Model model = definition.create();
+ Model model = definition.createModel();
return reset(model);
}
diff --git a/sonar-server/src/main/java/org/sonar/server/rules/ProfilesConsole.java b/sonar-server/src/main/java/org/sonar/server/rules/ProfilesConsole.java
index 64d525939bc..20b9605c863 100644
--- a/sonar-server/src/main/java/org/sonar/server/rules/ProfilesConsole.java
+++ b/sonar-server/src/main/java/org/sonar/server/rules/ProfilesConsole.java
@@ -40,14 +40,16 @@ import java.util.List;
public final class ProfilesConsole implements ServerComponent {
private DatabaseSessionFactory sessionFactory;
- private RuleFinder ruleFinder;
+ private XMLProfileParser xmlProfileParser;
+ private XMLProfileSerializer xmlProfileSerializer;
private List<ProfileExporter> exporters = new ArrayList<ProfileExporter>();
private List<ProfileImporter> importers = new ArrayList<ProfileImporter>();
- public ProfilesConsole(DatabaseSessionFactory sessionFactory, RuleFinder ruleFinder,
+ public ProfilesConsole(DatabaseSessionFactory sessionFactory, XMLProfileParser xmlProfileParser, XMLProfileSerializer xmlProfileSerializer,
ProfileExporter[] exporters, DeprecatedProfileExporters deprecatedExporters,
ProfileImporter[] importers, DeprecatedProfileImporters deprecatedImporters) {
- this.ruleFinder = ruleFinder;
+ this.xmlProfileParser = xmlProfileParser;
+ this.xmlProfileSerializer = xmlProfileSerializer;
this.sessionFactory = sessionFactory;
initProfileExporters(exporters, deprecatedExporters);
initProfileImporters(importers, deprecatedImporters);
@@ -72,7 +74,7 @@ public final class ProfilesConsole implements ServerComponent {
RulesProfile profile = loadProfile(session, profileId);
if (profile != null) {
Writer writer = new StringWriter();
- XMLProfileExporter.create().exportProfile(profile, writer);
+ xmlProfileSerializer.write(profile, writer);
return writer.toString();
}
return null;
@@ -80,7 +82,7 @@ public final class ProfilesConsole implements ServerComponent {
public ValidationMessages restoreProfile(String xmlBackup) {
ValidationMessages messages = ValidationMessages.create();
- RulesProfile profile = XMLProfileImporter.create(ruleFinder).importProfile(new StringReader(xmlBackup), messages);
+ RulesProfile profile = xmlProfileParser.parse(new StringReader(xmlBackup), messages);
if (profile != null) {
DatabaseSession session = sessionFactory.getSession();
RulesProfile existingProfile = session.getSingleResult(RulesProfile.class, "name", profile.getName(), "language", profile.getLanguage());
diff --git a/sonar-server/src/main/java/org/sonar/server/startup/RegisterProvidedProfiles.java b/sonar-server/src/main/java/org/sonar/server/startup/RegisterProvidedProfiles.java
index ad5ee2559d2..82f0c94de88 100644
--- a/sonar-server/src/main/java/org/sonar/server/startup/RegisterProvidedProfiles.java
+++ b/sonar-server/src/main/java/org/sonar/server/startup/RegisterProvidedProfiles.java
@@ -19,6 +19,7 @@
*/
package org.sonar.server.startup;
+import com.google.common.collect.Lists;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -40,7 +41,7 @@ public final class RegisterProvidedProfiles {
private static final Logger LOGGER = LoggerFactory.getLogger(RegisterProvidedProfiles.class);
private DatabaseSessionFactory sessionFactory;
- private List<ProfileDefinition> definitions = new ArrayList<ProfileDefinition>();
+ private List<ProfileDefinition> definitions = Lists.newArrayList();
private DeprecatedProfiles deprecatedProfiles = null;
private RuleFinder ruleFinder;
@@ -71,7 +72,7 @@ public final class RegisterProvidedProfiles {
}
List<RulesProfile> createProfiles() {
- List<RulesProfile> result = new ArrayList<RulesProfile>();
+ List<RulesProfile> result = Lists.newArrayList();
// this must not be moved in the constructor, because rules are still not saved
definitions.addAll(deprecatedProfiles.getProfiles());
diff --git a/sonar-server/src/test/java/org/sonar/server/qualitymodel/DefaultModelManagerTest.java b/sonar-server/src/test/java/org/sonar/server/qualitymodel/DefaultModelManagerTest.java
index 058e649d5bc..73d2e9b8938 100644
--- a/sonar-server/src/test/java/org/sonar/server/qualitymodel/DefaultModelManagerTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/qualitymodel/DefaultModelManagerTest.java
@@ -114,7 +114,7 @@ class FakeDefinition extends ModelDefinition {
}
@Override
- public Model create() {
+ public Model createModel() {
return model;
}
diff --git a/sonar-server/src/test/java/org/sonar/server/rules/DeprecatedProfilesTest.java b/sonar-server/src/test/java/org/sonar/server/rules/DeprecatedProfilesTest.java
index cd5b40f38ab..187a3ed8e1f 100644
--- a/sonar-server/src/test/java/org/sonar/server/rules/DeprecatedProfilesTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/rules/DeprecatedProfilesTest.java
@@ -23,7 +23,6 @@ import org.junit.Test;
import org.sonar.api.rules.Rule;
import org.sonar.api.rules.RulePriority;
import org.sonar.api.utils.ValidationMessages;
-import org.sonar.server.rules.DeprecatedProfiles;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.core.IsNull.nullValue;
@@ -31,7 +30,7 @@ import static org.junit.Assert.assertThat;
public class DeprecatedProfilesTest {
@Test
- public void testCreate() {
+ public void shouldCreateProfile() {
DeprecatedProfiles.DefaultProfileDefinition def = DeprecatedProfiles.DefaultProfileDefinition.create("sonar way", "java");
assertThat(def.createProfile(ValidationMessages.create()).getName(), is("sonar way"));
assertThat(def.createProfile(ValidationMessages.create()).getLanguage(), is("java"));