]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-926 Improve logs in ResourceKeyMigration
authorSimon Brandhof <simon.brandhof@gmail.com>
Mon, 24 Feb 2014 15:17:03 +0000 (16:17 +0100)
committerSimon Brandhof <simon.brandhof@gmail.com>
Mon, 24 Feb 2014 15:17:03 +0000 (16:17 +0100)
sonar-batch/src/main/java/org/sonar/batch/index/ResourceKeyMigration.java
sonar-batch/src/test/java/org/sonar/batch/index/ResourceKeyMigrationTest.java

index 21d10c38f015090351c7ba4d0bce5fd18a99dc55..b581c2ad8fe1a993ae0e9b15578159f1d5cc6dee 100644 (file)
@@ -57,7 +57,6 @@ public class ResourceKeyMigration implements BatchComponent {
   public void checkIfMigrationNeeded(Project rootProject) {
     ResourceModel model = session.getSingleResult(ResourceModel.class, "key", rootProject.getEffectiveKey());
     if (model != null && StringUtils.isBlank(model.getDeprecatedKey())) {
-      logger.info("Resources keys of project '" + rootProject.getName() + "' should be migrated");
       this.migrationNeeded = true;
     }
   }
@@ -68,16 +67,16 @@ public class ResourceKeyMigration implements BatchComponent {
 
   void migrateIfNeeded(Project module, Iterable<InputFile> inputFiles) {
     if (migrationNeeded) {
-      logger.info("Starting migration of resource keys");
+      logger.info("Update component keys");
       Map<String, InputFile> deprecatedFileKeyMapper = new HashMap<String, InputFile>();
       Map<String, InputFile> deprecatedTestKeyMapper = new HashMap<String, InputFile>();
       Map<String, String> deprecatedDirectoryKeyMapper = new HashMap<String, String>();
       for (InputFile inputFile : inputFiles) {
         String deprecatedKey = ((DefaultInputFile) inputFile).deprecatedKey();
         if (deprecatedKey != null) {
-          if (InputFile.Type.TEST == inputFile.type()) {
+          if (InputFile.Type.TEST == inputFile.type() && !deprecatedTestKeyMapper.containsKey(deprecatedKey)) {
             deprecatedTestKeyMapper.put(deprecatedKey, inputFile);
-          } else {
+          } else if (InputFile.Type.MAIN == inputFile.type() && !deprecatedFileKeyMapper.containsKey(deprecatedKey)) {
             deprecatedFileKeyMapper.put(deprecatedKey, inputFile);
           }
         }
@@ -99,7 +98,7 @@ public class ResourceKeyMigration implements BatchComponent {
       .append(ResourceModel.class.getSimpleName())
       .append(" where enabled = true ")
       .append(" and rootId = :rootId ")
-      .append(" and scope = '").append(Scopes.FILE).append("' order by key");
+      .append(" and scope = '").append(Scopes.FILE).append("' order by qualifier, key");
     List<ResourceModel> resources = session.createQuery(hql.toString()).setParameter("rootId", moduleId).getResultList();
     for (ResourceModel resourceModel : resources) {
       String oldEffectiveKey = resourceModel.getKey();
@@ -125,9 +124,9 @@ public class ResourceKeyMigration implements BatchComponent {
         }
         resourceModel.setKey(newEffectiveKey);
         resourceModel.setDeprecatedKey(oldEffectiveKey);
-        logger.info("Migrated resource {} to {}", oldEffectiveKey, newEffectiveKey);
+        logger.info("Component {} changed to {}", oldEffectiveKey, newEffectiveKey);
       } else {
-        logger.warn("Unable to migrate resource {}. No match was found.", oldEffectiveKey);
+        logger.warn("Unable to update component {}. No match was found.", oldEffectiveKey);
       }
     }
   }
@@ -146,7 +145,7 @@ public class ResourceKeyMigration implements BatchComponent {
       .append(ResourceModel.class.getSimpleName())
       .append(" where enabled = true ")
       .append(" and rootId = :rootId ")
-      .append(" and qualifier = '").append(Qualifiers.DIRECTORY).append("')");
+      .append(" and qualifier = '").append(Qualifiers.DIRECTORY).append("'");
     List<ResourceModel> resources = session.createQuery(hql.toString()).setParameter("rootId", moduleId).getResultList();
     for (ResourceModel resourceModel : resources) {
       String oldEffectiveKey = resourceModel.getKey();
@@ -154,9 +153,9 @@ public class ResourceKeyMigration implements BatchComponent {
         String newEffectiveKey = deprecatedDirectoryKeyMapper.get(oldEffectiveKey);
         resourceModel.setKey(newEffectiveKey);
         resourceModel.setDeprecatedKey(oldEffectiveKey);
-        logger.info("Migrated resource {} to {}", oldEffectiveKey, newEffectiveKey);
+        logger.info("Component {} changed to {}", oldEffectiveKey, newEffectiveKey);
       } else {
-        logger.warn("Unable to migrate resource {}. No match was found.", oldEffectiveKey);
+        logger.warn("Unable to update component {}. No match was found.", oldEffectiveKey);
       }
     }
   }
index 826785021a446c610876b6da2aea8e2b39f0ad2e..540fcc6b64f71dc5d2962f5714748a3ba1ae0902 100644 (file)
@@ -99,17 +99,16 @@ public class ResourceKeyMigrationTest extends AbstractDbUnitTestCase {
     Logger logger = mock(Logger.class);
     ResourceKeyMigration migration = new ResourceKeyMigration(getSession(), logger);
     migration.checkIfMigrationNeeded(multiModuleProject);
-    verify(logger).info("Resources keys of project 'Root' should be migrated");
-
+    
     migration.migrateIfNeeded(javaModule, javaInputFiles);
     migration.migrateIfNeeded(phpModule, phpInputFiles);
 
-    verify(logger).info("Migrated resource {} to {}", "b:org.foo.Bar", "b:src/main/java/org/foo/Bar.java");
+    verify(logger).info("Component {} changed to {}", "b:org.foo.Bar", "b:src/main/java/org/foo/Bar.java");
     verify(logger).warn("Directory with key b:org/foo matches both b:src/main/java/org/foo and b:src/test/java/org/foo. First match is arbitrary chosen.");
-    verify(logger).info("Migrated resource {} to {}", "b:org.foo.BarTest", "b:src/test/java/org/foo/BarTest.java");
-    verify(logger).info("Migrated resource {} to {}", "b:[default].RootBar", "b:src/main/java/RootBar.java");
-    verify(logger).info("Migrated resource {} to {}", "b:org/foo", "b:src/main/java/org/foo");
-    verify(logger).info("Migrated resource {} to {}", "b:[root]", "b:src/main/java");
+    verify(logger).info("Component {} changed to {}", "b:org.foo.BarTest", "b:src/test/java/org/foo/BarTest.java");
+    verify(logger).info("Component {} changed to {}", "b:[default].RootBar", "b:src/main/java/RootBar.java");
+    verify(logger).info("Component {} changed to {}", "b:org/foo", "b:src/main/java/org/foo");
+    verify(logger).info("Component {} changed to {}", "b:[root]", "b:src/main/java");
 
     checkTables("shouldMigrateResourceKeys", new String[]{"build_date", "created_at"}, "projects");
   }