From 2a16e8cc06f2cca713cb4a9f034db470b7567044 Mon Sep 17 00:00:00 2001 From: Stephane Gamard Date: Fri, 30 May 2014 17:14:45 +0200 Subject: [PATCH] SONAR-5007 - Fixed ActiveRule Inheritance ENUMs to match org.sonar.core ones --- .../org/sonar/core/qualityprofile/db/ActiveRuleDto.java | 8 ++++++-- .../java/org/sonar/server/qualityprofile/ActiveRule.java | 7 +++++-- .../qualityprofile/RuleActivationContextFactory.java | 3 +-- .../sonar/server/qualityprofile/index/ActiveRuleDoc.java | 4 ++-- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/sonar-core/src/main/java/org/sonar/core/qualityprofile/db/ActiveRuleDto.java b/sonar-core/src/main/java/org/sonar/core/qualityprofile/db/ActiveRuleDto.java index e7a059a9da8..9c36eed5077 100644 --- a/sonar-core/src/main/java/org/sonar/core/qualityprofile/db/ActiveRuleDto.java +++ b/sonar-core/src/main/java/org/sonar/core/qualityprofile/db/ActiveRuleDto.java @@ -25,6 +25,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.builder.ReflectionToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; import org.sonar.api.rule.RuleKey; +import org.sonar.api.rules.ActiveRule; import org.sonar.core.persistence.Dto; import org.sonar.core.rule.RuleDto; import org.sonar.core.rule.SeverityUtil; @@ -35,8 +36,8 @@ import javax.persistence.Transient; public class ActiveRuleDto extends Dto { - public static final String INHERITED = "INHERITED"; - public static final String OVERRIDES = "OVERRIDES"; + public static final String INHERITED = ActiveRule.INHERITED; + public static final String OVERRIDES = ActiveRule.OVERRIDES; private String repository; private String ruleField; @@ -120,6 +121,9 @@ public class ActiveRuleDto extends Dto { } public ActiveRuleDto setInheritance(@Nullable String inheritance) { + if(inheritance != null && !inheritance.equals(INHERITED) && !inheritance.equals(OVERRIDES)){ + throw new IllegalStateException("Inheritance value '"+inheritance+"' is invalid"); + } this.inheritance = inheritance; return this; } diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/ActiveRule.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/ActiveRule.java index ef0c306589c..5258c43bc15 100644 --- a/sonar-server/src/main/java/org/sonar/server/qualityprofile/ActiveRule.java +++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/ActiveRule.java @@ -19,22 +19,25 @@ */ package org.sonar.server.qualityprofile; +import com.google.common.collect.ImmutableList; import org.sonar.core.qualityprofile.db.ActiveRuleKey; import javax.annotation.CheckForNull; +import java.util.List; import java.util.Map; public interface ActiveRule { public enum Inheritance { - NONE, OVERRIDE, INHERIT + NONE, OVERRIDES, INHERITED; + public static final List ALL = ImmutableList.of(NONE, OVERRIDES, INHERITED); } ActiveRuleKey key(); String severity(); - Inheritance inheritance(); + Inheritance inheritance(); @CheckForNull ActiveRuleKey parentKey(); diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/RuleActivationContextFactory.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/RuleActivationContextFactory.java index 5fc6ac8b52c..c4710af8171 100644 --- a/sonar-server/src/main/java/org/sonar/server/qualityprofile/RuleActivationContextFactory.java +++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/RuleActivationContextFactory.java @@ -79,8 +79,7 @@ public class RuleActivationContextFactory implements ServerComponent { } private QualityProfileDto initProfile(ActiveRuleKey key, RuleActivationContext context, DbSession session, boolean parent) { - QualityProfileDto profile = db.qualityProfileDao().selectByNameAndLanguage( - key.qProfile().name(), key.qProfile().lang()); + QualityProfileDto profile = db.qualityProfileDao().getByKey(key.qProfile(),session); if (profile == null) { throw new IllegalArgumentException("Quality profile not found: " + key.qProfile()); } diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/index/ActiveRuleDoc.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/index/ActiveRuleDoc.java index c6769801be9..ca07838e2da 100644 --- a/sonar-server/src/main/java/org/sonar/server/qualityprofile/index/ActiveRuleDoc.java +++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/index/ActiveRuleDoc.java @@ -56,9 +56,9 @@ public class ActiveRuleDoc extends BaseDoc implements ActiveRule { inheritance.toLowerCase().contains("none")) { return Inheritance.NONE; } else if (inheritance.toLowerCase().contains("herit")) { - return Inheritance.INHERIT; + return Inheritance.INHERITED; } else if (inheritance.toLowerCase().contains("over")) { - return Inheritance.OVERRIDE; + return Inheritance.OVERRIDES; } else { throw new IllegalStateException("Value \"" + inheritance + "\" is not valid for rule's inheritance"); } -- 2.39.5