]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-2298 Fix bug, when root project not a first one in Maven reactor
authorEvgeny Mandrikov <mandrikov@gmail.com>
Thu, 5 May 2011 19:01:54 +0000 (23:01 +0400)
committerEvgeny Mandrikov <mandrikov@gmail.com>
Thu, 5 May 2011 20:24:06 +0000 (00:24 +0400)
This situation shouldn't lead to partial analysis.

sonar-batch/src/main/java/org/sonar/batch/MavenProjectConverter.java
sonar-batch/src/main/java/org/sonar/batch/ProjectTree.java
sonar-batch/src/test/java/org/sonar/batch/MavenProjectConverterTest.java
sonar-core-maven-plugin/src/main/java/org/sonar/maven2/BatchMojo.java
sonar-maven-plugin/src/main/java/org/sonar/maven/SonarMojo.java
sonar-maven3-plugin/src/main/java/org/sonar/maven3/SonarMojo.java

index 0018b1c35f4ded0b7f0bef824aa73cf5893b8d94..b50f882ba58138b157cef012a88005bc4396e2fd 100644 (file)
@@ -36,7 +36,7 @@ public final class MavenProjectConverter {
   private MavenProjectConverter() {
   }
 
-  public static ProjectDefinition convert(List<MavenProject> poms) {
+  public static ProjectDefinition convert(List<MavenProject> poms, MavenProject root) {
     Map<String, MavenProject> paths = Maps.newHashMap(); // projects by canonical path
     Map<MavenProject, ProjectDefinition> defs = Maps.newHashMap();
 
@@ -59,10 +59,13 @@ public final class MavenProjectConverter {
       throw new SonarException(e);
     }
 
-    return defs.get(poms.get(0));
+    return defs.get(root);
   }
 
-  public static ProjectDefinition convert(MavenProject pom) {
+  /**
+   * Visibility has been relaxed for tests.
+   */
+  static ProjectDefinition convert(MavenProject pom) {
     Properties properties = new Properties();
 
     String key = new StringBuilder().append(pom.getGroupId()).append(":").append(pom.getArtifactId()).toString();
index 72a599821e6d7a9ed5112430ca427d4f004f8526..54b97fb2b6f3dcfca9c7ace4c2ff56e1972c6065 100644 (file)
@@ -53,7 +53,7 @@ public class ProjectTree {
   protected ProjectTree(ProjectBuilder projectBuilder, List<MavenProject> poms) {
     this.projectBuilder = projectBuilder;
     definitions = Lists.newArrayList();
-    collectProjects(MavenProjectConverter.convert(poms), definitions);
+    collectProjects(MavenProjectConverter.convert(poms, poms.get(0)), definitions);
   }
 
   /**
index c9a2c4124fbe22a1a0a3114401ba9786f2954c59..1ee191bebe72229f6639c79dc9326e40eb65c93f 100644 (file)
@@ -33,19 +33,19 @@ import java.util.Properties;
 
 public class MavenProjectConverterTest {
   @Test
-  public void test2() {
+  public void shouldConvertModules() {
     MavenProject root = new MavenProject();
     root.setFile(new File("/foo/pom.xml"));
     root.getModules().add("module");
     MavenProject module = new MavenProject();
     module.setFile(new File("/foo/module/pom.xml"));
-    ProjectDefinition project = MavenProjectConverter.convert(Arrays.asList(root, module));
+    ProjectDefinition project = MavenProjectConverter.convert(Arrays.asList(root, module), root);
 
     assertThat(project.getModules().size(), is(1));
   }
 
   @Test
-  public void test() {
+  public void shouldConvertProperties() {
     MavenProject pom = new MavenProject();
     pom.setGroupId("foo");
     pom.setArtifactId("bar");
index f979a24944da95e0f26ddf4320333472ae6a19df..02578c37b0a1250898fae287428b293632d68f0e 100644 (file)
@@ -145,7 +145,7 @@ public final class BatchMojo extends AbstractMojo {
   }
 
   private void executeBatch() throws MojoExecutionException {
-    ProjectDefinition def = MavenProjectConverter.convert(session.getSortedProjects());
+    ProjectDefinition def = MavenProjectConverter.convert(session.getSortedProjects(), project);
     Reactor reactor = new Reactor(def);
 
     Batch batch = new Batch(getInitialConfiguration(), reactor, session, project,
index eb57053ba8aa14bf3d685fadc44de5eecd485d41..0f84702b9c9602d82754184df26bd8549280ce68 100644 (file)
@@ -145,7 +145,7 @@ public final class SonarMojo extends AbstractMojo {
   }
 
   private void executeBatch() throws MojoExecutionException {
-    ProjectDefinition def = MavenProjectConverter.convert(session.getSortedProjects());
+    ProjectDefinition def = MavenProjectConverter.convert(session.getSortedProjects(), project);
     Reactor reactor = new Reactor(def);
 
     Batch batch = new Batch(getInitialConfiguration(),
index 7bb5e3e5f69a9754ed8fd708301e515c7c7c782d..82f0847f2de9f3d42593bfa69f423fff219a9697 100644 (file)
@@ -138,7 +138,7 @@ public final class SonarMojo extends AbstractMojo {
   }
 
   private void executeBatch() throws MojoExecutionException {
-    ProjectDefinition def = MavenProjectConverter.convert(session.getSortedProjects());
+    ProjectDefinition def = MavenProjectConverter.convert(session.getSortedProjects(), project);
     Reactor reactor = new Reactor(def);
 
     Batch batch = new Batch(getInitialConfiguration(),