]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6014 Fix effective key of views
authorJulien HENRY <julien.henry@sonarsource.com>
Tue, 13 Jan 2015 13:07:46 +0000 (14:07 +0100)
committerJulien HENRY <julien.henry@sonarsource.com>
Tue, 13 Jan 2015 13:13:55 +0000 (14:13 +0100)
sonar-batch/src/main/java/org/sonar/batch/index/DefaultIndex.java
sonar-batch/src/main/java/org/sonar/batch/index/ResourcePersister.java
sonar-batch/src/main/java/org/sonar/batch/phases/DefaultPhaseExecutor.java
sonar-batch/src/test/java/org/sonar/batch/phases/DefaultPhaseExecutorTest.java

index 61c73394b3ca41f2191540786d03c26a6f12bb3e..9e3a3d1b133234ac117e363ff43852a0ed92630d 100644 (file)
@@ -560,7 +560,11 @@ public class DefaultIndex extends SonarIndex {
       return null;
     }
 
-    resource.setEffectiveKey(ComponentKeys.createEffectiveKey(currentProject, resource));
+    if (ResourceUtils.isProject(resource) || /* For technical projects */ResourceUtils.isRootProject(resource)) {
+      resource.setEffectiveKey(resource.getKey());
+    } else {
+      resource.setEffectiveKey(ComponentKeys.createEffectiveKey(currentProject, resource));
+    }
     bucket = new Bucket(resource).setParent(parentBucket);
     addBucket(resource, bucket);
 
index 6ba96d73dffdc8b5321d77b6ad0d445b5e37c457..32ede138702f1eb9d905a8ba567c22feb621a50d 100644 (file)
@@ -116,9 +116,6 @@ public class ResourcePersister implements ScanPersister {
   }
 
   private Snapshot persistProject(Project project, @Nullable Project parent) {
-    // temporary hack
-    project.setEffectiveKey(project.getKey());
-
     ResourceModel model = findOrCreateModel(project, parent);
     // Used by ResourceKeyMigration in order to know that a project has already being migrated
     model.setDeprecatedKey(project.getKey());
index 62718b8b97eea362c7310da31332b7a434902468..a9a45a592e706f5c641012a1c4d546c3d87e7e1d 100644 (file)
@@ -126,7 +126,7 @@ public final class DefaultPhaseExecutor implements PhaseExecutor {
       sensorsExecutor.execute(sensorContext);
     }
 
-    // Special case for views. ProjectCountDecorator need resource id...
+    // Special case for views.
     resourcePersister.persist();
 
     if (phases.isEnabled(Phases.Phase.DECORATOR)) {
index 740a318201fa6d4090b1c0ef5915ea8b270a26f9..262cc1da06825d705313693ed2988aa68ece655b 100644 (file)
@@ -1,3 +1,22 @@
+/*
+ * SonarQube, open source software quality management tool.
+ * Copyright (C) 2008-2014 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * SonarQube is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * SonarQube is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
 package org.sonar.batch.phases;
 
 import org.junit.Test;