From 19ed354afe89135bec458dd855b99ce606850cdf Mon Sep 17 00:00:00 2001 From: Julien HENRY Date: Thu, 15 Jan 2015 14:56:11 +0100 Subject: [PATCH] SONAR-6054 Update the format of PROJECTS.MODULE_UUID_PATH --- .../sonar/batch/index/ResourcePersister.java | 21 ++++++------ .../batch/index/ResourcePersisterTest.java | 32 +++++++++---------- ...oveRootIndexIfResourceIsProject-result.xml | 2 +- .../shouldUpdateExistingResource-result.xml | 2 +- 4 files changed, 29 insertions(+), 28 deletions(-) diff --git a/sonar-batch/src/main/java/org/sonar/batch/index/ResourcePersister.java b/sonar-batch/src/main/java/org/sonar/batch/index/ResourcePersister.java index a37032615fd..4ed133f21a3 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/index/ResourcePersister.java +++ b/sonar-batch/src/main/java/org/sonar/batch/index/ResourcePersister.java @@ -24,7 +24,13 @@ import org.apache.commons.lang.StringUtils; import org.sonar.api.database.DatabaseSession; import org.sonar.api.database.model.ResourceModel; import org.sonar.api.database.model.Snapshot; -import org.sonar.api.resources.*; +import org.sonar.api.resources.Language; +import org.sonar.api.resources.Library; +import org.sonar.api.resources.Project; +import org.sonar.api.resources.Qualifiers; +import org.sonar.api.resources.Resource; +import org.sonar.api.resources.ResourceUtils; +import org.sonar.api.resources.Scopes; import org.sonar.api.security.ResourcePermissions; import org.sonar.api.utils.SonarException; import org.sonar.api.utils.internal.Uuids; @@ -279,25 +285,20 @@ public class ResourcePersister implements ScanPersister { } if (parentResource != null) { ResourceModel parentModel = session.getSingleResult(ResourceModel.class, "id", parentResource.getId()); - // FIXME ProjectUUid should never be null but empty (or now ".") - if (parentModel.getProjectUuid() != null) { - model.setProjectUuid(parentModel.getProjectUuid()); - } else { - model.setProjectUuid(parentModel.getUuid()); - } + model.setProjectUuid(parentModel.getProjectUuid()); if (Scopes.isProject(parentResource)) { model.setModuleUuid(parentResource.getUuid()); String parentModuleUuidPath = parentModel.getModuleUuidPath(); - model.setModuleUuidPath(StringUtils.isNotBlank(parentModuleUuidPath) ? parentModuleUuidPath + "." + parentModel.getUuid() : parentModel.getUuid()); + model.setModuleUuidPath(parentModuleUuidPath + parentModel.getUuid() + "."); } else { model.setModuleUuid(parentModel.getModuleUuid()); String parentModuleUuidPath = parentModel.getModuleUuidPath(); - model.setModuleUuidPath(StringUtils.isNotBlank(parentModuleUuidPath) ? parentModuleUuidPath : parentModel.getUuid()); + model.setModuleUuidPath(parentModuleUuidPath); } } else { // Root module && libraries model.setProjectUuid(model.getUuid()); - model.setModuleUuidPath(""); + model.setModuleUuidPath("."); } } diff --git a/sonar-batch/src/test/java/org/sonar/batch/index/ResourcePersisterTest.java b/sonar-batch/src/test/java/org/sonar/batch/index/ResourcePersisterTest.java index 3f9503165ad..f64ff958846 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/index/ResourcePersisterTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/index/ResourcePersisterTest.java @@ -126,7 +126,7 @@ public class ResourcePersisterTest extends AbstractDbUnitTestCase { assertThat(newProject.uuid()).isNotNull(); assertThat(newProject.projectUuid()).isEqualTo(newProject.uuid()); assertThat(newProject.moduleUuid()).isNull(); - assertThat(newProject.moduleUuidPath()).isEmpty(); + assertThat(newProject.moduleUuidPath()).isEqualTo("."); // SONAR-3636 : created_at must be fed when inserting a new entry in the 'projects' table assertThat(newProject.getCreatedAt()).isNotNull(); } @@ -147,7 +147,7 @@ public class ResourcePersisterTest extends AbstractDbUnitTestCase { assertThat(newProject.uuid()).isNotNull(); assertThat(newProject.projectUuid()).isEqualTo(newProject.uuid()); assertThat(newProject.moduleUuid()).isNull(); - assertThat(newProject.moduleUuidPath()).isEmpty(); + assertThat(newProject.moduleUuidPath()).isEqualTo("."); } } @@ -179,32 +179,32 @@ public class ResourcePersisterTest extends AbstractDbUnitTestCase { assertThat(root.uuid()).isNotNull(); assertThat(root.projectUuid()).isEqualTo(root.uuid()); assertThat(root.moduleUuid()).isNull(); - assertThat(root.moduleUuidPath()).isEmpty(); + assertThat(root.moduleUuidPath()).isEqualTo("."); ComponentDto a = session.getMapper(ComponentMapper.class).selectByKey("a"); assertThat(a.uuid()).isNotNull(); assertThat(a.projectUuid()).isEqualTo(root.uuid()); assertThat(a.moduleUuid()).isEqualTo(root.uuid()); - assertThat(a.moduleUuidPath()).isEqualTo(root.uuid()); + assertThat(a.moduleUuidPath()).isEqualTo("." + root.uuid() + "."); ComponentDto b = session.getMapper(ComponentMapper.class).selectByKey("b"); assertThat(b.uuid()).isNotNull(); assertThat(b.projectUuid()).isEqualTo(root.uuid()); assertThat(b.moduleUuid()).isEqualTo(root.uuid()); - assertThat(b.moduleUuidPath()).isEqualTo(root.uuid()); + assertThat(b.moduleUuidPath()).isEqualTo("." + root.uuid() + "."); ComponentDto b1 = session.getMapper(ComponentMapper.class).selectByKey("b1"); assertThat(b1.uuid()).isNotNull(); assertThat(b1.projectUuid()).isEqualTo(root.uuid()); assertThat(b1.moduleUuid()).isEqualTo(b.uuid()); - assertThat(b1.moduleUuidPath()).isEqualTo(root.uuid() + "." + b.uuid()); + assertThat(b1.moduleUuidPath()).isEqualTo("." + root.uuid() + "." + b.uuid() + "."); ComponentDto dir = session.getMapper(ComponentMapper.class).selectByKey("b1:src/main/java/org"); assertThat(dir.uuid()).isNotNull(); assertThat(dir.projectUuid()).isEqualTo(root.uuid()); assertThat(dir.moduleUuid()).isEqualTo(b1.uuid()); - assertThat(dir.moduleUuidPath()).isEqualTo(root.uuid() + "." + b.uuid() + "." + b1.uuid()); + assertThat(dir.moduleUuidPath()).isEqualTo("." + root.uuid() + "." + b.uuid() + "." + b1.uuid() + "."); ComponentDto fileComp = session.getMapper(ComponentMapper.class).selectByKey("b1:src/main/java/org/Foo.java"); assertThat(fileComp.uuid()).isNotNull(); assertThat(fileComp.projectUuid()).isEqualTo(root.uuid()); assertThat(fileComp.moduleUuid()).isEqualTo(b1.uuid()); - assertThat(fileComp.moduleUuidPath()).isEqualTo(root.uuid() + "." + b.uuid() + "." + b1.uuid()); + assertThat(fileComp.moduleUuidPath()).isEqualTo("." + root.uuid() + "." + b.uuid() + "." + b1.uuid() + "."); } } @@ -253,35 +253,35 @@ public class ResourcePersisterTest extends AbstractDbUnitTestCase { assertThat(root.uuid()).isNotNull(); assertThat(root.projectUuid()).isEqualTo(root.uuid()); assertThat(root.moduleUuid()).isNull(); - assertThat(root.moduleUuidPath()).isEmpty(); + assertThat(root.moduleUuidPath()).isEqualTo("."); ComponentDto a = session.getMapper(ComponentMapper.class).selectByKey("a"); System.out.println("A: " + a.uuid()); assertThat(a.uuid()).isNotNull(); assertThat(a.projectUuid()).isEqualTo(root.uuid()); assertThat(a.moduleUuid()).isEqualTo(root.uuid()); - assertThat(a.moduleUuidPath()).isEqualTo(root.uuid()); + assertThat(a.moduleUuidPath()).isEqualTo("." + root.uuid() + "."); ComponentDto b = session.getMapper(ComponentMapper.class).selectByKey("b"); System.out.println("B: " + b.uuid()); assertThat(b.uuid()).isNotNull(); assertThat(b.projectUuid()).isEqualTo(root.uuid()); assertThat(b.moduleUuid()).isEqualTo(root.uuid()); - assertThat(b.moduleUuidPath()).isEqualTo(root.uuid()); + assertThat(b.moduleUuidPath()).isEqualTo("." + root.uuid() + "."); ComponentDto b1 = session.getMapper(ComponentMapper.class).selectByKey("b1"); System.out.println("B1: " + b1.uuid()); assertThat(b1.uuid()).isNotNull(); assertThat(b1.projectUuid()).isEqualTo(root.uuid()); assertThat(b1.moduleUuid()).isEqualTo(b.uuid()); - assertThat(b1.moduleUuidPath()).isEqualTo(root.uuid() + "." + b.uuid()); + assertThat(b1.moduleUuidPath()).isEqualTo("." + root.uuid() + "." + b.uuid() + "."); ComponentDto dir = session.getMapper(ComponentMapper.class).selectByKey("b1:src/main/java/org"); assertThat(dir.uuid()).isNotNull(); assertThat(dir.projectUuid()).isEqualTo(root.uuid()); assertThat(dir.moduleUuid()).isEqualTo(b1.uuid()); - assertThat(dir.moduleUuidPath()).isEqualTo(root.uuid() + "." + b.uuid() + "." + b1.uuid()); + assertThat(dir.moduleUuidPath()).isEqualTo("." + root.uuid() + "." + b.uuid() + "." + b1.uuid() + "."); ComponentDto fileComp = session.getMapper(ComponentMapper.class).selectByKey("b1:src/main/java/org/Foo.java"); assertThat(fileComp.uuid()).isNotNull(); assertThat(fileComp.projectUuid()).isEqualTo(root.uuid()); assertThat(fileComp.moduleUuid()).isEqualTo(b1.uuid()); - assertThat(fileComp.moduleUuidPath()).isEqualTo(root.uuid() + "." + b.uuid() + "." + b1.uuid()); + assertThat(fileComp.moduleUuidPath()).isEqualTo("." + root.uuid() + "." + b.uuid() + "." + b1.uuid() + "."); } } @@ -304,7 +304,7 @@ public class ResourcePersisterTest extends AbstractDbUnitTestCase { assertThat(newDir.uuid()).isNotNull(); assertThat(newDir.projectUuid()).isEqualTo(newProject.uuid()); assertThat(newDir.moduleUuid()).isEqualTo(newProject.uuid()); - assertThat(newDir.moduleUuidPath()).isEqualTo(newProject.uuid()); + assertThat(newDir.moduleUuidPath()).isEqualTo("." + newProject.uuid() + "."); } } @@ -338,7 +338,7 @@ public class ResourcePersisterTest extends AbstractDbUnitTestCase { assertThat(newLib.uuid()).isNotNull(); assertThat(newLib.projectUuid()).isEqualTo(newLib.uuid()); assertThat(newLib.moduleUuid()).isNull(); - assertThat(newLib.moduleUuidPath()).isEmpty(); + assertThat(newLib.moduleUuidPath()).isEqualTo("."); } } diff --git a/sonar-batch/src/test/resources/org/sonar/batch/index/ResourcePersisterTest/shouldRemoveRootIndexIfResourceIsProject-result.xml b/sonar-batch/src/test/resources/org/sonar/batch/index/ResourcePersisterTest/shouldRemoveRootIndexIfResourceIsProject-result.xml index 283baaf3dde..9b7ee4aad2e 100644 --- a/sonar-batch/src/test/resources/org/sonar/batch/index/ResourcePersisterTest/shouldRemoveRootIndexIfResourceIsProject-result.xml +++ b/sonar-batch/src/test/resources/org/sonar/batch/index/ResourcePersisterTest/shouldRemoveRootIndexIfResourceIsProject-result.xml @@ -1,6 +1,6 @@ - diff --git a/sonar-batch/src/test/resources/org/sonar/batch/index/ResourcePersisterTest/shouldUpdateExistingResource-result.xml b/sonar-batch/src/test/resources/org/sonar/batch/index/ResourcePersisterTest/shouldUpdateExistingResource-result.xml index d04674f42b8..14edf7cb5fa 100644 --- a/sonar-batch/src/test/resources/org/sonar/batch/index/ResourcePersisterTest/shouldUpdateExistingResource-result.xml +++ b/sonar-batch/src/test/resources/org/sonar/batch/index/ResourcePersisterTest/shouldUpdateExistingResource-result.xml @@ -1,6 +1,6 @@ - -- 2.39.5