]> source.dussan.org Git - sonarqube.git/commitdiff
Allow views to save any measure for remote views copy
authorJulien HENRY <julien.henry@sonarsource.com>
Wed, 4 Mar 2015 10:13:31 +0000 (11:13 +0100)
committerJulien HENRY <julien.henry@sonarsource.com>
Wed, 4 Mar 2015 10:14:31 +0000 (11:14 +0100)
sonar-batch/src/main/java/org/sonar/batch/index/DefaultIndex.java

index 0e2c128b1857f0092a2676581060913f14bfe311..393e8968ad976d0d4992520850ae1d7134e0390b 100644 (file)
@@ -242,7 +242,7 @@ public class DefaultIndex extends SonarIndex {
       if (metric == null) {
         throw new SonarException("Unknown metric: " + measure.getMetricKey());
       }
-      if (!isTechnicalProjectCopy(resource) && !measure.isFromCore() && INTERNAL_METRICS.contains(metric)) {
+      if (!isViewResource(resource) && !measure.isFromCore() && INTERNAL_METRICS.contains(metric)) {
         LOG.debug("Metric " + metric.key() + " is an internal metric computed by SonarQube. Provided value is ignored.");
         return measure;
       }
@@ -257,8 +257,9 @@ public class DefaultIndex extends SonarIndex {
   /**
    * Views plugin creates copy of technical projects and should be allowed to copy all measures even internal ones
    */
-  private boolean isTechnicalProjectCopy(Resource resource) {
-    return Scopes.FILE.equals(resource.getScope()) && Qualifiers.PROJECT.equals(resource.getQualifier());
+  private boolean isViewResource(Resource resource) {
+    boolean isTechnicalProject = Scopes.FILE.equals(resource.getScope()) && Qualifiers.PROJECT.equals(resource.getQualifier());
+    return isTechnicalProject || ResourceUtils.isView(resource) || ResourceUtils.isSubview(resource);
   }
 
   //