]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6548 Remove resource key migration introduced in 4.2 305/head
authorJulien HENRY <julien.henry@sonarsource.com>
Wed, 13 May 2015 12:15:25 +0000 (14:15 +0200)
committerJulien HENRY <julien.henry@sonarsource.com>
Wed, 13 May 2015 12:15:25 +0000 (14:15 +0200)
62 files changed:
sonar-batch/src/main/java/org/sonar/batch/cpd/DefaultCpdEngine.java
sonar-batch/src/main/java/org/sonar/batch/cpd/JavaCpdEngine.java
sonar-batch/src/main/java/org/sonar/batch/index/DefaultIndex.java
sonar-batch/src/main/java/org/sonar/batch/index/ResourceKeyMigration.java [deleted file]
sonar-batch/src/main/java/org/sonar/batch/issue/ignore/scanner/IssueExclusionsLoader.java
sonar-batch/src/main/java/org/sonar/batch/scan/ProjectScanContainer.java
sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/AdditionalFilePredicates.java
sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ComponentIndexer.java
sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FileIndexer.java
sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/InputFileBuilder.java
sonar-batch/src/main/java/org/sonar/batch/util/DeprecatedKeyUtils.java [deleted file]
sonar-batch/src/test/java/org/sonar/batch/bootstrap/BatchExtensionDictionnaryTest.java
sonar-batch/src/test/java/org/sonar/batch/bootstrap/BatchPluginExploderTest.java
sonar-batch/src/test/java/org/sonar/batch/bootstrap/JdbcDriverHolderTest.java
sonar-batch/src/test/java/org/sonar/batch/components/PastMeasuresLoaderTest.java
sonar-batch/src/test/java/org/sonar/batch/components/PastSnapshotFinderTest.java
sonar-batch/src/test/java/org/sonar/batch/components/PastSnapshotTest.java
sonar-batch/src/test/java/org/sonar/batch/components/TimeMachineConfigurationTest.java
sonar-batch/src/test/java/org/sonar/batch/cpd/JavaCpdEngineTest.java
sonar-batch/src/test/java/org/sonar/batch/cpd/decorators/DuplicationDensityDecoratorTest.java
sonar-batch/src/test/java/org/sonar/batch/cpd/decorators/SumDuplicationsDecoratorTest.java
sonar-batch/src/test/java/org/sonar/batch/cpd/index/IndexFactoryTest.java
sonar-batch/src/test/java/org/sonar/batch/debt/NewDebtDecoratorTest.java
sonar-batch/src/test/java/org/sonar/batch/deprecated/components/PastSnapshotFinderByDateTest.java
sonar-batch/src/test/java/org/sonar/batch/deprecated/components/PastSnapshotFinderByDaysTest.java
sonar-batch/src/test/java/org/sonar/batch/deprecated/components/PastSnapshotFinderByPreviousAnalysisTest.java
sonar-batch/src/test/java/org/sonar/batch/deprecated/components/PastSnapshotFinderByVersionTest.java
sonar-batch/src/test/java/org/sonar/batch/deprecated/decorator/DecoratorsSelectorTest.java
sonar-batch/src/test/java/org/sonar/batch/deprecated/decorator/FormulaDecoratorTest.java
sonar-batch/src/test/java/org/sonar/batch/events/EventBusTest.java
sonar-batch/src/test/java/org/sonar/batch/index/DefaultIndexTest.java
sonar-batch/src/test/java/org/sonar/batch/index/ResourceKeyMigrationTest.java [deleted file]
sonar-batch/src/test/java/org/sonar/batch/index/ResourcePersisterTest.java
sonar-batch/src/test/java/org/sonar/batch/issue/ignore/EnforceIssuesFilterTest.java
sonar-batch/src/test/java/org/sonar/batch/issue/ignore/IgnoreIssuesFilterTest.java
sonar-batch/src/test/java/org/sonar/batch/issue/ignore/pattern/IssuePatternTest.java
sonar-batch/src/test/java/org/sonar/batch/issue/ignore/pattern/LineRangeTest.java
sonar-batch/src/test/java/org/sonar/batch/issue/ignore/pattern/PatternDecoderTest.java
sonar-batch/src/test/java/org/sonar/batch/issue/ignore/pattern/PatternMatcherTest.java
sonar-batch/src/test/java/org/sonar/batch/issue/ignore/scanner/IssueExclusionsLoaderTest.java
sonar-batch/src/test/java/org/sonar/batch/issue/tracking/DefaultServerLineHashesLoaderTest.java
sonar-batch/src/test/java/org/sonar/batch/issue/tracking/IssueHandlersTest.java
sonar-batch/src/test/java/org/sonar/batch/profiling/PhasesSumUpTimeProfilerTest.java
sonar-batch/src/test/java/org/sonar/batch/qualitygate/GenerateQualityGateEventsTest.java
sonar-batch/src/test/java/org/sonar/batch/qualitygate/QualityGateProviderTest.java
sonar-batch/src/test/java/org/sonar/batch/report/ComponentsPublisherTest.java
sonar-batch/src/test/java/org/sonar/batch/report/MeasuresPublisherTest.java
sonar-batch/src/test/java/org/sonar/batch/repository/DefaultProjectRepositoriesLoaderTest.java
sonar-batch/src/test/java/org/sonar/batch/rule/QProfileDecoratorTest.java
sonar-batch/src/test/java/org/sonar/batch/scan/ProjectSettingsTest.java
sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/AdditionalFilePredicatesTest.java
sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/ComponentIndexerTest.java
sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/DefaultModuleFileSystemTest.java
sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/DeprecatedFileFiltersTest.java
sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputFileBuilderTest.java
sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputPathCacheTest.java
sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/LanguageDetectionFactoryTest.java
sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/ProjectFileSystemAdapterTest.java
sonar-batch/src/test/java/org/sonar/batch/scan/report/JSONReportTest.java
sonar-batch/src/test/java/org/sonar/batch/util/DeprecatedKeyUtilsTest.java [deleted file]
sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DeprecatedDefaultInputFile.java [deleted file]
sonar-plugin-api/src/test/java/org/sonar/api/batch/fs/internal/DeprecatedDefaultInputFileTest.java [deleted file]

index 52f77df74ce8a53bdffb3163a952cd600dc9a1e2..3674eca2ee04b02d2dd40a49404e55ff918a4833 100644 (file)
@@ -30,7 +30,7 @@ import org.sonar.api.batch.CpdMapping;
 import org.sonar.api.batch.fs.FilePredicates;
 import org.sonar.api.batch.fs.FileSystem;
 import org.sonar.api.batch.fs.InputFile;
-import org.sonar.api.batch.fs.internal.DeprecatedDefaultInputFile;
+import org.sonar.api.batch.fs.internal.DefaultInputFile;
 import org.sonar.api.batch.sensor.SensorContext;
 import org.sonar.api.config.Settings;
 import org.sonar.api.resources.Project;
@@ -119,7 +119,7 @@ public class DefaultCpdEngine extends CpdEngine {
     try {
       for (InputFile inputFile : sourceFiles) {
         LOG.debug("Detection of duplications for {}", inputFile);
-        String resourceEffectiveKey = ((DeprecatedDefaultInputFile) inputFile).key();
+        String resourceEffectiveKey = ((DefaultInputFile) inputFile).key();
         Collection<Block> fileBlocks = index.getByInputFile(inputFile, resourceEffectiveKey);
 
         Iterable<CloneGroup> filtered;
@@ -144,7 +144,7 @@ public class DefaultCpdEngine extends CpdEngine {
     TokenizerBridge bridge = new TokenizerBridge(mapping.getTokenizer(), fs.encoding().name(), getBlockSize(languageKey));
     for (InputFile inputFile : sourceFiles) {
       LOG.debug("Populating index from {}", inputFile);
-      String resourceEffectiveKey = ((DeprecatedDefaultInputFile) inputFile).key();
+      String resourceEffectiveKey = ((DefaultInputFile) inputFile).key();
       List<Block> blocks2 = bridge.chunk(resourceEffectiveKey, inputFile.file());
       index.insert(inputFile, blocks2);
     }
index 32ea95fa3d3816e6c3ea17eab352c7d5eb00853d..f705f249e6ed983aae45794643f73ee921b5afcb 100644 (file)
@@ -29,7 +29,7 @@ import org.sonar.api.CoreProperties;
 import org.sonar.api.batch.fs.FilePredicates;
 import org.sonar.api.batch.fs.FileSystem;
 import org.sonar.api.batch.fs.InputFile;
-import org.sonar.api.batch.fs.internal.DeprecatedDefaultInputFile;
+import org.sonar.api.batch.fs.internal.DefaultInputFile;
 import org.sonar.api.batch.sensor.SensorContext;
 import org.sonar.api.batch.sensor.duplication.NewDuplication;
 import org.sonar.api.batch.sensor.duplication.internal.DefaultDuplication;
@@ -62,7 +62,12 @@ import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-import java.util.concurrent.*;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 
 public class JavaCpdEngine extends CpdEngine {
 
@@ -125,7 +130,7 @@ public class JavaCpdEngine extends CpdEngine {
 
     for (InputFile inputFile : sourceFiles) {
       LOG.debug("Populating index from {}", inputFile);
-      String resourceEffectiveKey = ((DeprecatedDefaultInputFile) inputFile).key();
+      String resourceEffectiveKey = ((DefaultInputFile) inputFile).key();
 
       List<Statement> statements;
 
@@ -151,7 +156,7 @@ public class JavaCpdEngine extends CpdEngine {
     try {
       for (InputFile inputFile : sourceFiles) {
         LOG.debug("Detection of duplications for {}", inputFile);
-        String resourceEffectiveKey = ((DeprecatedDefaultInputFile) inputFile).key();
+        String resourceEffectiveKey = ((DefaultInputFile) inputFile).key();
 
         Collection<Block> fileBlocks = index.getByInputFile(inputFile, resourceEffectiveKey);
 
index a0436ba85fa290ff50324b5c4dabfbec5715cdc5..c56ddb46c170ea5d9acb3b0704e77a4b5691c75a 100644 (file)
@@ -96,7 +96,6 @@ public class DefaultIndex extends SonarIndex {
   private final ResourceCache resourceCache;
   private final MetricFinder metricFinder;
   private final MeasureCache measureCache;
-  private final ResourceKeyMigration migration;
   private final DependencyPersister dependencyPersister;
   // caches
   private Project currentProject;
@@ -108,22 +107,11 @@ public class DefaultIndex extends SonarIndex {
   private ModuleIssues moduleIssues;
 
   public DefaultIndex(ResourceCache resourceCache, DependencyPersister dependencyPersister,
-    DefaultProjectTree projectTree, MetricFinder metricFinder,
-    ResourceKeyMigration migration, MeasureCache measureCache) {
+    DefaultProjectTree projectTree, MetricFinder metricFinder, MeasureCache measureCache) {
     this.resourceCache = resourceCache;
     this.dependencyPersister = dependencyPersister;
     this.projectTree = projectTree;
     this.metricFinder = metricFinder;
-    this.migration = migration;
-    this.measureCache = measureCache;
-  }
-
-  public DefaultIndex(ResourceCache resourceCache, DependencyPersister dependencyPersister, DefaultProjectTree projectTree, MetricFinder metricFinder, MeasureCache measureCache) {
-    this.resourceCache = resourceCache;
-    this.dependencyPersister = dependencyPersister;
-    this.projectTree = projectTree;
-    this.metricFinder = metricFinder;
-    this.migration = null;
     this.measureCache = measureCache;
   }
 
@@ -137,9 +125,6 @@ public class DefaultIndex extends SonarIndex {
   void doStart(Project rootProject) {
     Bucket bucket = new Bucket(rootProject);
     addBucket(rootProject, bucket);
-    if (migration != null) {
-      migration.checkIfMigrationNeeded(rootProject);
-    }
     resourceCache.add(rootProject, null);
     currentProject = rootProject;
 
diff --git a/sonar-batch/src/main/java/org/sonar/batch/index/ResourceKeyMigration.java b/sonar-batch/src/main/java/org/sonar/batch/index/ResourceKeyMigration.java
deleted file mode 100644 (file)
index 8189185..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * 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.index;
-
-import com.google.common.annotations.VisibleForTesting;
-import org.apache.commons.lang.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.sonar.api.BatchSide;
-import org.sonar.api.batch.fs.InputFile;
-import org.sonar.api.batch.fs.internal.DeprecatedDefaultInputFile;
-import org.sonar.api.database.DatabaseSession;
-import org.sonar.api.database.model.ResourceModel;
-import org.sonar.api.resources.Directory;
-import org.sonar.api.resources.Project;
-import org.sonar.api.resources.Qualifiers;
-import org.sonar.api.resources.Scopes;
-import org.sonar.api.scan.filesystem.PathResolver;
-import org.sonar.api.utils.PathUtils;
-import org.sonar.batch.scan.filesystem.DefaultModuleFileSystem;
-import org.sonar.batch.util.DeprecatedKeyUtils;
-
-import javax.annotation.CheckForNull;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@BatchSide
-public class ResourceKeyMigration {
-
-  private static final String UNABLE_TO_UPDATE_COMPONENT_NO_MATCH_WAS_FOUND = "Unable to update component {}. No match was found.";
-  private static final String COMPONENT_CHANGED_TO = "Component {} changed to {}";
-  private final Logger logger;
-  private final DatabaseSession session;
-  private final PathResolver pathResolver;
-
-  private boolean migrationNeeded = false;
-
-  public ResourceKeyMigration(DatabaseSession session, PathResolver pathResolver) {
-    this(session, pathResolver, LoggerFactory.getLogger(ResourceKeyMigration.class));
-  }
-
-  @VisibleForTesting
-  ResourceKeyMigration(DatabaseSession session, PathResolver pathResolver, Logger logger) {
-    this.session = session;
-    this.logger = logger;
-    this.pathResolver = pathResolver;
-  }
-
-  public void checkIfMigrationNeeded(Project rootProject) {
-    ResourceModel model = session.getSingleResult(ResourceModel.class, "key", rootProject.getEffectiveKey());
-    if (model != null && StringUtils.isBlank(model.getDeprecatedKey())) {
-      this.migrationNeeded = true;
-    }
-  }
-
-  public void migrateIfNeeded(Project module, DefaultModuleFileSystem fs) {
-    if (migrationNeeded) {
-      migrateIfNeeded(module, fs.inputFiles(fs.predicates().all()), fs);
-    }
-  }
-
-  void migrateIfNeeded(Project module, Iterable<InputFile> inputFiles, DefaultModuleFileSystem fs) {
-    logger.info("Update component keys");
-    Map<String, InputFile> deprecatedFileKeyMapper = new HashMap<>();
-    Map<String, InputFile> deprecatedTestKeyMapper = new HashMap<>();
-    Map<String, String> deprecatedDirectoryKeyMapper = new HashMap<>();
-    for (InputFile inputFile : inputFiles) {
-      String deprecatedKey = computeDeprecatedKey(module.getKey(), (DeprecatedDefaultInputFile) inputFile, fs);
-      if (deprecatedKey != null) {
-        if (InputFile.Type.TEST == inputFile.type() && !deprecatedTestKeyMapper.containsKey(deprecatedKey)) {
-          deprecatedTestKeyMapper.put(deprecatedKey, inputFile);
-        } else if (InputFile.Type.MAIN == inputFile.type() && !deprecatedFileKeyMapper.containsKey(deprecatedKey)) {
-          deprecatedFileKeyMapper.put(deprecatedKey, inputFile);
-        }
-      }
-    }
-
-    ResourceModel moduleModel = session.getSingleResult(ResourceModel.class, "key", module.getEffectiveKey());
-    int moduleId = moduleModel.getId();
-    migrateFiles(module, deprecatedFileKeyMapper, deprecatedTestKeyMapper, deprecatedDirectoryKeyMapper, moduleId);
-    migrateDirectories(deprecatedDirectoryKeyMapper, moduleId);
-    session.commit();
-  }
-
-  @CheckForNull
-  private String computeDeprecatedKey(String moduleKey, DeprecatedDefaultInputFile inputFile, DefaultModuleFileSystem fs) {
-    List<java.io.File> sourceDirs = InputFile.Type.MAIN == inputFile.type() ? fs.sourceDirs() : fs.testDirs();
-    for (java.io.File sourceDir : sourceDirs) {
-      String sourceRelativePath = pathResolver.relativePath(sourceDir, inputFile.file());
-      if (sourceRelativePath != null) {
-        if ("java".equals(inputFile.language())) {
-          return new StringBuilder()
-            .append(moduleKey).append(":").append(DeprecatedKeyUtils.getJavaFileDeprecatedKey(sourceRelativePath)).toString();
-        } else {
-          return new StringBuilder().append(moduleKey).append(":").append(sourceRelativePath).toString();
-        }
-      }
-    }
-    return null;
-  }
-
-  private void migrateFiles(Project module, Map<String, InputFile> deprecatedFileKeyMapper, Map<String, InputFile> deprecatedTestKeyMapper,
-    Map<String, String> deprecatedDirectoryKeyMapper,
-    int moduleId) {
-    // Find all FIL or CLA resources for this module
-    StringBuilder hql = newResourceQuery()
-      .append(" and scope = '").append(Scopes.FILE).append("' order by qualifier, key");
-    Map<String, ResourceModel> disabledResourceByKey = loadDisabledResources(moduleId, hql);
-    List<ResourceModel> resources = loadEnabledResources(moduleId, hql);
-    for (ResourceModel resourceModel : resources) {
-      String oldEffectiveKey = resourceModel.getKey();
-      boolean isTest = Qualifiers.UNIT_TEST_FILE.equals(resourceModel.getQualifier());
-      InputFile matchedFile = findInputFile(deprecatedFileKeyMapper, deprecatedTestKeyMapper, oldEffectiveKey, isTest);
-      if (matchedFile != null) {
-        String newEffectiveKey = ((DeprecatedDefaultInputFile) matchedFile).key();
-        // Now compute migration of the parent dir
-        String oldKey = StringUtils.substringAfterLast(oldEffectiveKey, ":");
-        String parentOldKey;
-        if ("java".equals(resourceModel.getLanguageKey())) {
-          parentOldKey = String.format("%s:%s", module.getEffectiveKey(), DeprecatedKeyUtils.getJavaFileParentDeprecatedKey(oldKey));
-        } else {
-          parentOldKey = String.format("%s:%s", module.getEffectiveKey(), oldParentKey(oldKey));
-        }
-        String parentNewKey = String.format("%s:%s", module.getEffectiveKey(), getParentKey(matchedFile));
-        if (!deprecatedDirectoryKeyMapper.containsKey(parentOldKey)) {
-          deprecatedDirectoryKeyMapper.put(parentOldKey, parentNewKey);
-        } else if (!parentNewKey.equals(deprecatedDirectoryKeyMapper.get(parentOldKey))) {
-          logger.warn("Directory with key " + parentOldKey + " matches both " + deprecatedDirectoryKeyMapper.get(parentOldKey) + " and "
-            + parentNewKey + ". First match is arbitrary chosen.");
-        }
-        updateKey(resourceModel, newEffectiveKey, disabledResourceByKey);
-        resourceModel.setDeprecatedKey(oldEffectiveKey);
-        logger.info(COMPONENT_CHANGED_TO, oldEffectiveKey, newEffectiveKey);
-      } else {
-        logger.warn(UNABLE_TO_UPDATE_COMPONENT_NO_MATCH_WAS_FOUND, oldEffectiveKey);
-      }
-    }
-  }
-
-  private String oldParentKey(String oldKey) {
-    String cleanKey = StringUtils.trim(oldKey.replace('\\', '/'));
-    if (cleanKey.indexOf(Directory.SEPARATOR) >= 0) {
-      String oldParentKey = Directory.parseKey(StringUtils.substringBeforeLast(oldKey, Directory.SEPARATOR));
-      oldParentKey = StringUtils.removeStart(oldParentKey, Directory.SEPARATOR);
-      oldParentKey = StringUtils.removeEnd(oldParentKey, Directory.SEPARATOR);
-      return oldParentKey;
-    } else {
-      return Directory.ROOT;
-    }
-  }
-
-  private void updateKey(ResourceModel resourceModel, String newEffectiveKey, Map<String, ResourceModel> disabledResourceByKey) {
-    // Look for disabled resource with conflicting key
-    if (disabledResourceByKey.containsKey(newEffectiveKey)) {
-      ResourceModel duplicateDisabledResource = disabledResourceByKey.get(newEffectiveKey);
-      String disabledKey = newEffectiveKey + "_renamed_by_resource_key_migration";
-      duplicateDisabledResource.setKey(disabledKey);
-      logger.info(COMPONENT_CHANGED_TO, newEffectiveKey, disabledKey);
-    }
-    resourceModel.setKey(newEffectiveKey);
-  }
-
-  private StringBuilder newResourceQuery() {
-    return new StringBuilder().append("from ")
-      .append(ResourceModel.class.getSimpleName())
-      .append(" where enabled = :enabled")
-      .append(" and rootId = :rootId ");
-  }
-
-  private InputFile findInputFile(Map<String, InputFile> deprecatedFileKeyMapper, Map<String, InputFile> deprecatedTestKeyMapper, String oldEffectiveKey, boolean isTest) {
-    if (isTest) {
-      return deprecatedTestKeyMapper.get(oldEffectiveKey);
-    } else {
-      return deprecatedFileKeyMapper.get(oldEffectiveKey);
-    }
-  }
-
-  private void migrateDirectories(Map<String, String> deprecatedDirectoryKeyMapper, int moduleId) {
-    // Find all DIR resources for this module
-    StringBuilder hql = newResourceQuery()
-      .append(" and qualifier = '").append(Qualifiers.DIRECTORY).append("'");
-    Map<String, ResourceModel> disabledResourceByKey = loadDisabledResources(moduleId, hql);
-    List<ResourceModel> resources = loadEnabledResources(moduleId, hql);
-    for (ResourceModel resourceModel : resources) {
-      String oldEffectiveKey = resourceModel.getKey();
-      if (deprecatedDirectoryKeyMapper.containsKey(oldEffectiveKey)) {
-        String newEffectiveKey = deprecatedDirectoryKeyMapper.get(oldEffectiveKey);
-        updateKey(resourceModel, newEffectiveKey, disabledResourceByKey);
-        resourceModel.setDeprecatedKey(oldEffectiveKey);
-        logger.info(COMPONENT_CHANGED_TO, oldEffectiveKey, newEffectiveKey);
-      } else {
-        logger.warn(UNABLE_TO_UPDATE_COMPONENT_NO_MATCH_WAS_FOUND, oldEffectiveKey);
-      }
-    }
-  }
-
-  private List<ResourceModel> loadEnabledResources(int moduleId, StringBuilder hql) {
-    return session.createQuery(hql.toString())
-      .setParameter("rootId", moduleId)
-      .setParameter("enabled", true)
-      .getResultList();
-  }
-
-  private Map<String, ResourceModel> loadDisabledResources(int moduleId, StringBuilder hql) {
-    List<ResourceModel> disabledResources = session.createQuery(hql.toString())
-      .setParameter("rootId", moduleId)
-      .setParameter("enabled", false)
-      .getResultList();
-    Map<String, ResourceModel> disabledResourceByKey = new HashMap<>();
-    for (ResourceModel disabledResourceModel : disabledResources) {
-      disabledResourceByKey.put(disabledResourceModel.getKey(), disabledResourceModel);
-    }
-    return disabledResourceByKey;
-  }
-
-  private String getParentKey(InputFile matchedFile) {
-    String filePath = PathUtils.sanitize(matchedFile.relativePath());
-    String parentFolderPath;
-    if (filePath.contains(Directory.SEPARATOR)) {
-      parentFolderPath = StringUtils.substringBeforeLast(filePath, Directory.SEPARATOR);
-    } else {
-      parentFolderPath = Directory.SEPARATOR;
-    }
-    return parentFolderPath;
-  }
-}
index 5f3e9c308e8fbe8ed4a429dc1f22f21a51bcd8c4..1dad68550bb455b5beba57f2af086497d5a6dc37 100644 (file)
@@ -22,7 +22,7 @@ package org.sonar.batch.issue.ignore.scanner;
 
 import org.sonar.api.batch.fs.FileSystem;
 import org.sonar.api.batch.fs.InputFile;
-import org.sonar.api.batch.fs.internal.DeprecatedDefaultInputFile;
+import org.sonar.api.batch.fs.internal.DefaultInputFile;
 import org.sonar.api.resources.Project;
 import org.sonar.api.utils.SonarException;
 import org.sonar.batch.issue.ignore.pattern.IssueExclusionPatternInitializer;
@@ -59,7 +59,7 @@ public final class IssueExclusionsLoader {
 
     for (InputFile inputFile : fileSystem.inputFiles(fileSystem.predicates().all())) {
       try {
-        String componentEffectiveKey = ((DeprecatedDefaultInputFile) inputFile).key();
+        String componentEffectiveKey = ((DefaultInputFile) inputFile).key();
         if (componentEffectiveKey != null) {
           String path = inputFile.relativePath();
           inclusionPatternInitializer.initializePatternsForPath(path, componentEffectiveKey);
index 982170b25d10931be6a802b37d3c873c403c70fe..5da07abfd863eede8fc04c533808bfa96aab98fb 100644 (file)
@@ -48,7 +48,6 @@ import org.sonar.batch.index.Caches;
 import org.sonar.batch.index.DefaultIndex;
 import org.sonar.batch.index.DependencyPersister;
 import org.sonar.batch.index.ResourceCache;
-import org.sonar.batch.index.ResourceKeyMigration;
 import org.sonar.batch.index.ResourcePersister;
 import org.sonar.batch.issue.DefaultProjectIssues;
 import org.sonar.batch.issue.IssueCache;
@@ -227,7 +226,6 @@ public class ProjectScanContainer extends ComponentContainer {
     add(
       PastMeasuresLoader.class,
       ResourcePersister.class,
-      ResourceKeyMigration.class,
       GraphPersister.class,
 
       // Users
index cb4d4461d11c9a420625a752f31a66b49e5af2d8..9ae88762460823e634c039809e6432b9d1d16566 100644 (file)
  */
 package org.sonar.batch.scan.filesystem;
 
-import org.sonar.api.batch.fs.internal.AbstractFilePredicate;
-
 import org.sonar.api.batch.fs.InputFile;
-import org.sonar.api.batch.fs.internal.DeprecatedDefaultInputFile;
+import org.sonar.api.batch.fs.internal.AbstractFilePredicate;
+import org.sonar.api.batch.fs.internal.DefaultInputFile;
 
 /**
  * Additional {@link org.sonar.api.batch.fs.FilePredicate}s that are
@@ -43,7 +42,7 @@ class AdditionalFilePredicates {
 
     @Override
     public boolean apply(InputFile f) {
-      return key.equals(((DeprecatedDefaultInputFile) f).key());
+      return key.equals(((DefaultInputFile) f).key());
     }
   }
 
index b8b48ec47fa08d14295927b554d0539c8588ba2b..5f05c9b1af3f89d8bb28b978c3f623455a583840 100644 (file)
@@ -27,7 +27,6 @@ import org.sonar.api.resources.Languages;
 import org.sonar.api.resources.Project;
 import org.sonar.api.resources.Resource;
 import org.sonar.batch.index.ResourceCache;
-import org.sonar.batch.index.ResourceKeyMigration;
 import org.sonar.batch.index.ResourcePersister;
 
 import javax.annotation.Nullable;
@@ -42,23 +41,20 @@ public class ComponentIndexer {
 
   private final Languages languages;
   private final SonarIndex sonarIndex;
-  private final ResourceKeyMigration migration;
   private final Project module;
   private final ResourcePersister resourcePersister;
   private final ResourceCache resourceCache;
 
-  public ComponentIndexer(Project module, Languages languages, SonarIndex sonarIndex, ResourceCache resourceCache, @Nullable ResourceKeyMigration migration,
-    @Nullable ResourcePersister resourcePersister) {
+  public ComponentIndexer(Project module, Languages languages, SonarIndex sonarIndex, ResourceCache resourceCache, @Nullable ResourcePersister resourcePersister) {
     this.module = module;
     this.languages = languages;
     this.sonarIndex = sonarIndex;
     this.resourceCache = resourceCache;
-    this.migration = migration;
     this.resourcePersister = resourcePersister;
   }
 
   public ComponentIndexer(Project module, Languages languages, SonarIndex sonarIndex, ResourceCache resourceCache) {
-    this(module, languages, sonarIndex, resourceCache, null, null);
+    this(module, languages, sonarIndex, resourceCache, null);
   }
 
   public void execute(DefaultModuleFileSystem fs) {
@@ -69,10 +65,6 @@ public class ComponentIndexer {
       resourcePersister.persist();
     }
 
-    if (migration != null) {
-      migration.migrateIfNeeded(module, fs);
-    }
-
     for (InputFile inputFile : fs.inputFiles(fs.predicates().all())) {
       String languageKey = inputFile.language();
       boolean unitTest = InputFile.Type.TEST == inputFile.type();
index 87527835a812e4bbe182a224d1c2aec6878dc39d..f80fd47ef7331a10eeebbc7adfb0316ea170a616 100644 (file)
@@ -30,7 +30,7 @@ import org.sonar.api.batch.bootstrap.ProjectDefinition;
 import org.sonar.api.batch.fs.InputFile;
 import org.sonar.api.batch.fs.InputFileFilter;
 import org.sonar.api.batch.fs.internal.DefaultInputDir;
-import org.sonar.api.batch.fs.internal.DeprecatedDefaultInputFile;
+import org.sonar.api.batch.fs.internal.DefaultInputFile;
 import org.sonar.api.scan.filesystem.PathResolver;
 import org.sonar.api.utils.MessageException;
 import org.sonar.batch.util.ProgressReport;
@@ -135,7 +135,7 @@ public class FileIndexer {
   }
 
   private void indexFile(InputFileBuilder inputFileBuilder, DefaultModuleFileSystem fileSystem, Progress progress, File sourceFile, InputFile.Type type) {
-    DeprecatedDefaultInputFile inputFile = inputFileBuilder.create(sourceFile);
+    DefaultInputFile inputFile = inputFileBuilder.create(sourceFile);
     if (inputFile != null) {
       // Set basedir on input file prior to adding it to the FS since exclusions filters may require the absolute path
       inputFile.setModuleBaseDir(fileSystem.baseDirPath());
@@ -148,12 +148,12 @@ public class FileIndexer {
   }
 
   private void indexFile(final InputFileBuilder inputFileBuilder, final DefaultModuleFileSystem fs,
-    final Progress status, final DeprecatedDefaultInputFile inputFile, final InputFile.Type type) {
+    final Progress status, final DefaultInputFile inputFile, final InputFile.Type type) {
 
     tasks.add(executorService.submit(new Callable<Void>() {
       @Override
       public Void call() {
-        DeprecatedDefaultInputFile completedInputFile = inputFileBuilder.completeAndComputeMetadata(inputFile, type);
+        DefaultInputFile completedInputFile = inputFileBuilder.completeAndComputeMetadata(inputFile, type);
         if (completedInputFile != null && accept(completedInputFile)) {
           fs.add(completedInputFile);
           status.markAsIndexed(completedInputFile);
index e58d56252961d1f9653c40308f3056ee4c699b03..317612d9f697647d5a1e770737e70c5f64f9b79a 100644 (file)
@@ -24,7 +24,7 @@ import org.slf4j.LoggerFactory;
 import org.sonar.api.CoreProperties;
 import org.sonar.api.batch.fs.FileSystem;
 import org.sonar.api.batch.fs.InputFile;
-import org.sonar.api.batch.fs.internal.DeprecatedDefaultInputFile;
+import org.sonar.api.batch.fs.internal.DefaultInputFile;
 import org.sonar.api.batch.fs.internal.FileMetadata;
 import org.sonar.api.config.Settings;
 import org.sonar.api.scan.filesystem.PathResolver;
@@ -80,20 +80,20 @@ class InputFileBuilder {
   }
 
   @CheckForNull
-  DeprecatedDefaultInputFile create(File file) {
+  DefaultInputFile create(File file) {
     String relativePath = pathResolver.relativePath(fs.baseDir(), file);
     if (relativePath == null) {
       LOG.warn("File '{}' is ignored. It is not located in module basedir '{}'.", file.getAbsolutePath(), fs.baseDir());
       return null;
     }
-    return new DeprecatedDefaultInputFile(moduleKey, relativePath);
+    return new DefaultInputFile(moduleKey, relativePath);
   }
 
   /**
    * Optimization to not compute InputFile metadata if the file is excluded from analysis.
    */
   @CheckForNull
-  DeprecatedDefaultInputFile completeAndComputeMetadata(DeprecatedDefaultInputFile inputFile, InputFile.Type type) {
+  DefaultInputFile completeAndComputeMetadata(DefaultInputFile inputFile, InputFile.Type type) {
     inputFile.setType(type);
     inputFile.setModuleBaseDir(fs.baseDir().toPath());
     inputFile.setCharset(fs.encoding());
diff --git a/sonar-batch/src/main/java/org/sonar/batch/util/DeprecatedKeyUtils.java b/sonar-batch/src/main/java/org/sonar/batch/util/DeprecatedKeyUtils.java
deleted file mode 100644 (file)
index 30db633..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * 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.util;
-
-import org.apache.commons.lang.StringUtils;
-import org.sonar.api.resources.Directory;
-import org.sonar.api.resources.JavaPackage;
-
-public class DeprecatedKeyUtils {
-
-  private DeprecatedKeyUtils() {
-    // Utility class
-  }
-
-  /**
-   * Return the parent directory deprecated key for a given deprecated Java file key.
-   * "com.foo.Bar" -> "com/foo"
-   * "[root].Bar" -> "[root]"
-   * "Bar" -> "[root]"
-   */
-  public static String getJavaFileParentDeprecatedKey(String deprecatedJavaFileKey) {
-    String packageFullyQualifiedName;
-    String realKey = StringUtils.trim(deprecatedJavaFileKey);
-    if (realKey.contains(".")) {
-      packageFullyQualifiedName = StringUtils.substringBeforeLast(realKey, ".");
-      String deprecatedDirectoryKey = StringUtils.trimToEmpty(packageFullyQualifiedName);
-      if (JavaPackage.DEFAULT_PACKAGE_NAME.equals(deprecatedDirectoryKey)) {
-        return Directory.ROOT;
-      }
-      deprecatedDirectoryKey = deprecatedDirectoryKey.replaceAll("\\.", Directory.SEPARATOR);
-      return StringUtils.defaultIfEmpty(deprecatedDirectoryKey, Directory.ROOT);
-    } else {
-      return Directory.ROOT;
-    }
-  }
-
-  /**
-   * Return the deprecated key of a Java file given its path relative to source directory.
-   */
-  public static String getJavaFileDeprecatedKey(String sourceRelativePath) {
-    String pacname = null;
-    String classname = sourceRelativePath;
-
-    if (sourceRelativePath.indexOf('/') >= 0) {
-      pacname = StringUtils.substringBeforeLast(sourceRelativePath, "/");
-      pacname = StringUtils.replace(pacname, "/", ".");
-      classname = StringUtils.substringAfterLast(sourceRelativePath, "/");
-    }
-    classname = StringUtils.substringBeforeLast(classname, ".");
-    if (StringUtils.isBlank(pacname)) {
-      return new StringBuilder().append(JavaPackage.DEFAULT_PACKAGE_NAME).append(".").append(classname).toString();
-    } else {
-      return new StringBuilder().append(pacname.trim()).append(".").append(classname).toString();
-    }
-  }
-
-}
index a96f8570550e14ef0f859bd773fd564d53802a36..1d49d6318f7c9313ffd5d12b53c4060a9503689b 100644 (file)
@@ -32,11 +32,11 @@ import org.sonar.api.batch.PostJob;
 import org.sonar.api.batch.Sensor;
 import org.sonar.api.batch.SensorContext;
 import org.sonar.api.batch.postjob.PostJobContext;
-import org.sonar.core.platform.ComponentContainer;
 import org.sonar.api.resources.Project;
 import org.sonar.batch.postjob.PostJobOptimizer;
 import org.sonar.batch.sensor.DefaultSensorContext;
 import org.sonar.batch.sensor.SensorOptimizer;
+import org.sonar.core.platform.ComponentContainer;
 
 import java.util.Arrays;
 import java.util.Collection;
index 3d080e35d82a4410344dde495a0fdfa8092b4766..f2c2f6354a3913208d598ececc125926c55514bd 100644 (file)
@@ -24,8 +24,8 @@ import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
-import org.sonar.core.platform.PluginInfo;
 import org.sonar.core.platform.ExplodedPlugin;
+import org.sonar.core.platform.PluginInfo;
 import org.sonar.home.cache.FileCache;
 import org.sonar.home.cache.FileCacheBuilder;
 
index 9bf262996c8d32575c2dcb03170b618ab277cdae..17c2096ba298e98c62ee84db1a06331475b897ad 100644 (file)
@@ -31,7 +31,14 @@ import org.sonar.home.cache.FileCache;
 import java.io.File;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.*;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.when;
 
 public class JdbcDriverHolderTest {
 
index d032e2b1cd12a160a859e81bd528e0405ebf7ab0..60d8a465971e894dc9a6cc208fa7924e228cb0ea 100644 (file)
@@ -19,8 +19,6 @@
  */
 package org.sonar.batch.components;
 
-import org.sonar.batch.components.PastMeasuresLoader;
-
 import org.junit.Test;
 import org.sonar.api.database.model.Snapshot;
 import org.sonar.api.measures.Metric;
@@ -29,10 +27,10 @@ import org.sonar.jpa.test.AbstractDbUnitTestCase;
 import java.util.Arrays;
 import java.util.List;
 
-import static org.hamcrest.Matchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.nullValue;
 import static org.hamcrest.Matchers.hasItems;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.nullValue;
 
 public class PastMeasuresLoaderTest extends AbstractDbUnitTestCase {
 
index be6c4ab057c257bbce738bc9b150a92d9b4c0f0c..8d8506a063aacba15aa5304a9edbc65c362e2323 100644 (file)
  */
 package org.sonar.batch.components;
 
-import org.sonar.batch.components.PastSnapshotFinder;
-import org.sonar.batch.deprecated.components.PastSnapshotFinderByDate;
-import org.sonar.batch.deprecated.components.PastSnapshotFinderByDays;
-import org.sonar.batch.deprecated.components.PastSnapshotFinderByPreviousAnalysis;
-import org.sonar.batch.deprecated.components.PastSnapshotFinderByPreviousVersion;
-import org.sonar.batch.deprecated.components.PastSnapshotFinderByVersion;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.ArgumentMatcher;
@@ -34,6 +28,11 @@ import org.sonar.api.CoreProperties;
 import org.sonar.api.config.Settings;
 import org.sonar.api.database.model.Snapshot;
 import org.sonar.api.utils.DateUtils;
+import org.sonar.batch.deprecated.components.PastSnapshotFinderByDate;
+import org.sonar.batch.deprecated.components.PastSnapshotFinderByDays;
+import org.sonar.batch.deprecated.components.PastSnapshotFinderByPreviousAnalysis;
+import org.sonar.batch.deprecated.components.PastSnapshotFinderByPreviousVersion;
+import org.sonar.batch.deprecated.components.PastSnapshotFinderByVersion;
 
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
index 201155b1188d08e155c45c1ed493b42c25b290b6..3d38431f780b24bfb61165eddc675704a6721db1 100644 (file)
@@ -19,8 +19,6 @@
  */
 package org.sonar.batch.components;
 
-import org.sonar.batch.components.PastSnapshot;
-
 import org.junit.Test;
 import org.sonar.api.CoreProperties;
 import org.sonar.api.database.model.Snapshot;
index eae7b0f8377b764bfd7ea7842ddbfe2171489112..b4a7daac7d578d69b938bf3e8d88a61fbd844164 100644 (file)
  */
 package org.sonar.batch.components;
 
-import org.sonar.batch.components.TimeMachineConfiguration;
-
-import org.sonar.batch.components.PastSnapshot;
-import org.sonar.batch.deprecated.components.PeriodsDefinition;
 import org.junit.Before;
 import org.junit.Test;
 import org.sonar.api.database.model.Snapshot;
+import org.sonar.batch.deprecated.components.PeriodsDefinition;
 import org.sonar.jpa.test.AbstractDbUnitTestCase;
 
 import java.util.Date;
index 2c77b007350d33f3f9f673428c9b3ce86a5a6120..71d80a37c5b737c389277b49911161162c016c35 100644 (file)
@@ -25,7 +25,7 @@ import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
-import org.sonar.api.batch.fs.internal.DeprecatedDefaultInputFile;
+import org.sonar.api.batch.fs.internal.DefaultInputFile;
 import org.sonar.api.batch.sensor.SensorContext;
 import org.sonar.api.batch.sensor.duplication.NewDuplication;
 import org.sonar.api.batch.sensor.duplication.internal.DefaultDuplication;
@@ -52,7 +52,7 @@ public class JavaCpdEngineTest {
   public TemporaryFolder temp = new TemporaryFolder();
 
   SensorContext context = mock(SensorContext.class);
-  DeprecatedDefaultInputFile inputFile;
+  DefaultInputFile inputFile;
   private SensorStorage storage = mock(SensorStorage.class);
 
   @Before
@@ -69,7 +69,7 @@ public class JavaCpdEngineTest {
         return new DefaultDuplication(storage);
       }
     });
-    inputFile = (DeprecatedDefaultInputFile) new DeprecatedDefaultInputFile("foo", "src/main/java/Foo.java").setLines(300);
+    inputFile = (DefaultInputFile) new DefaultInputFile("foo", "src/main/java/Foo.java").setLines(300);
     inputFile.setModuleBaseDir(temp.newFolder().toPath());
   }
 
index 629a1cf6d5d2f556439d8a0c31204659b8249a9f..62aca152eb54cb61b7ed9e940529a52d09a75413 100644 (file)
  */
 package org.sonar.batch.cpd.decorators;
 
-import org.sonar.batch.cpd.decorators.DuplicationDensityDecorator;
-
 import org.junit.Test;
-import static org.mockito.Mockito.*;
 import org.sonar.api.batch.DecoratorContext;
 import org.sonar.api.measures.CoreMetrics;
 import org.sonar.api.measures.Measure;
 
+import static org.mockito.Matchers.anyDouble;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
 public class DuplicationDensityDecoratorTest {
 
   @Test
index a86cfb423ed3a69933da736c590777af9bdd8f69..85f5180d186e5b3ba9b85171b3de7263dfbd07cb 100644 (file)
@@ -19,8 +19,6 @@
  */
 package org.sonar.batch.cpd.decorators;
 
-import org.sonar.batch.cpd.decorators.SumDuplicationsDecorator;
-
 import org.junit.Test;
 import org.sonar.api.batch.DecoratorContext;
 import org.sonar.api.measures.CoreMetrics;
@@ -28,6 +26,7 @@ import org.sonar.api.measures.Measure;
 import org.sonar.api.resources.File;
 import org.sonar.api.resources.Qualifiers;
 import org.sonar.api.test.IsMeasure;
+
 import static org.hamcrest.Matchers.greaterThan;
 import static org.hamcrest.Matchers.is;
 import static org.junit.Assert.assertThat;
index d60ace37875735d5a8196b6b2c7d09d0e075f055..f4aef8284d42341c1b1465171e92755cea1810c5 100644 (file)
@@ -19,8 +19,6 @@
  */
 package org.sonar.batch.cpd.index;
 
-import org.sonar.batch.cpd.index.IndexFactory;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.slf4j.Logger;
@@ -31,6 +29,7 @@ import org.sonar.api.resources.Project;
 import org.sonar.batch.bootstrap.DefaultAnalysisMode;
 import org.sonar.batch.index.ResourceCache;
 import org.sonar.core.duplication.DuplicationDao;
+
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
index 327799f2e07d325a436f0ddbaa5d1a3b0cdeedf1..8de52b074c213857ecccd61d667d934ece29f7b8 100644 (file)
@@ -20,9 +20,6 @@
 
 package org.sonar.batch.debt;
 
-import org.sonar.batch.components.Period;
-
-import org.sonar.batch.components.TimeMachineConfiguration;
 import org.apache.commons.lang.ObjectUtils;
 import org.apache.commons.lang.time.DateUtils;
 import org.junit.Before;
@@ -45,14 +42,18 @@ import org.sonar.api.measures.Metric;
 import org.sonar.api.resources.Resource;
 import org.sonar.api.test.IsMeasure;
 import org.sonar.api.utils.Duration;
-import org.sonar.batch.debt.IssueChangelogDebtCalculator;
-import org.sonar.batch.debt.NewDebtDecorator;
+import org.sonar.batch.components.Period;
+import org.sonar.batch.components.TimeMachineConfiguration;
 
 import java.util.Date;
 
 import static com.google.common.collect.Lists.newArrayList;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.*;
+import static org.mockito.Matchers.argThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
 public class NewDebtDecoratorTest {
index 2cf8b317531a9588cd9b64b28192300c0e510423..7ab4b0e76e8fb5dd1cd33a5b0140d097f4107e5d 100644 (file)
  */
 package org.sonar.batch.deprecated.components;
 
-import org.sonar.batch.components.PastSnapshot;
-
-import org.sonar.batch.deprecated.components.PastSnapshotFinderByDate;
 import org.junit.Test;
 import org.sonar.api.database.model.Snapshot;
+import org.sonar.batch.components.PastSnapshot;
 import org.sonar.jpa.test.AbstractDbUnitTestCase;
 
 import java.text.ParseException;
index 0515b30673d769a3e26248fc316d3f5b96bf4fe3..6117905e446e242ef05a9094e84d7b829536c53e 100644 (file)
@@ -19,8 +19,6 @@
  */
 package org.sonar.batch.deprecated.components;
 
-import org.sonar.batch.deprecated.components.PastSnapshotFinderByDays;
-
 import org.hamcrest.core.IsNull;
 import org.junit.Test;
 import org.sonar.api.database.model.Snapshot;
index 9ec2024b7d4b0454058e80b1d1be5645ccd232ef..f228d3b8ab81515bfabd83ff4a4917f55b239179 100644 (file)
  */
 package org.sonar.batch.deprecated.components;
 
-import org.sonar.batch.components.PastSnapshot;
-
-import org.sonar.batch.deprecated.components.PastSnapshotFinderByPreviousAnalysis;
 import org.junit.Test;
 import org.sonar.api.database.model.Snapshot;
+import org.sonar.batch.components.PastSnapshot;
 import org.sonar.jpa.test.AbstractDbUnitTestCase;
+
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.core.IsNull.nullValue;
 import static org.junit.Assert.assertThat;
index 5d8c87ad7f05075f3e297d5d88dd013366bd01a0..85411b26cf7cb2324316bcde55831ca46f7a5c66 100644 (file)
  */
 package org.sonar.batch.deprecated.components;
 
-import org.sonar.batch.components.PastSnapshot;
-
-import org.sonar.batch.deprecated.components.PastSnapshotFinderByVersion;
 import org.junit.Test;
 import org.sonar.api.CoreProperties;
 import org.sonar.api.database.model.Snapshot;
+import org.sonar.batch.components.PastSnapshot;
 import org.sonar.jpa.test.AbstractDbUnitTestCase;
+
 import static org.assertj.core.api.Assertions.assertThat;
 
 public class PastSnapshotFinderByVersionTest extends AbstractDbUnitTestCase {
index 3b7340689db6c4ecb3b487b1253cc8bb534b43ae..9accda935d8cf04c0c018d1e20778c2894823b44 100644 (file)
@@ -24,11 +24,15 @@ import org.junit.Test;
 import org.sonar.api.batch.Decorator;
 import org.sonar.api.batch.DecoratorContext;
 import org.sonar.api.batch.DependedUpon;
-import org.sonar.api.measures.*;
-import org.sonar.core.platform.ComponentContainer;
+import org.sonar.api.measures.Formula;
+import org.sonar.api.measures.FormulaContext;
+import org.sonar.api.measures.FormulaData;
+import org.sonar.api.measures.Measure;
+import org.sonar.api.measures.Metric;
 import org.sonar.api.resources.Project;
 import org.sonar.api.resources.Resource;
 import org.sonar.batch.bootstrap.BatchExtensionDictionnary;
+import org.sonar.core.platform.ComponentContainer;
 
 import java.util.Arrays;
 import java.util.Collection;
index 4507ab8cbc0e357fe5259dbce2bc4e510132a9fd..2298a09cb336c47b1cf7ff302d17560bb3c0acff 100644 (file)
@@ -19,8 +19,6 @@
  */
 package org.sonar.batch.deprecated.decorator;
 
-import org.sonar.batch.deprecated.decorator.FormulaDecorator;
-
 import org.junit.Test;
 import org.sonar.api.batch.DecoratorContext;
 import org.sonar.api.measures.CoreMetrics;
index e088ef71edbd1494686b034b1cd4bf1c4c762000..45445524072fd9bf03d1b669ca7c319f2f75ef3d 100644 (file)
  */
 package org.sonar.batch.events;
 
+import org.junit.Test;
 import org.sonar.api.batch.events.EventHandler;
 
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
-import org.junit.Test;
-
 public class EventBusTest {
 
   @Test
index 6511d57c732c82f7a2abe941da2a112dc43c0627..c16abe19c2d7e55241ac422b8bb89346da96ae48 100644 (file)
@@ -72,7 +72,6 @@ public class DefaultIndexTest {
     DefaultProjectTree projectTree = mock(DefaultProjectTree.class);
     ResourceCache resourceCache = new ResourceCache();
     index = new DefaultIndex(resourceCache, null, projectTree, metricFinder,
-      mock(ResourceKeyMigration.class),
       mock(MeasureCache.class));
 
     baseDir = temp.newFolder();
diff --git a/sonar-batch/src/test/java/org/sonar/batch/index/ResourceKeyMigrationTest.java b/sonar-batch/src/test/java/org/sonar/batch/index/ResourceKeyMigrationTest.java
deleted file mode 100644 (file)
index 1d3d227..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * 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.index;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.rules.TemporaryFolder;
-import org.slf4j.Logger;
-import org.sonar.api.CoreProperties;
-import org.sonar.api.batch.fs.InputFile;
-import org.sonar.api.batch.fs.internal.DefaultInputFile;
-import org.sonar.api.batch.fs.internal.DeprecatedDefaultInputFile;
-import org.sonar.api.config.Settings;
-import org.sonar.api.resources.Project;
-import org.sonar.api.scan.filesystem.PathResolver;
-import org.sonar.batch.scan.filesystem.DefaultModuleFileSystem;
-import org.sonar.jpa.test.AbstractDbUnitTestCase;
-
-import java.io.File;
-import java.text.SimpleDateFormat;
-import java.util.Arrays;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-public class ResourceKeyMigrationTest extends AbstractDbUnitTestCase {
-
-  @Rule
-  public ExpectedException thrown = ExpectedException.none();
-
-  @Rule
-  public TemporaryFolder temp = new TemporaryFolder();
-
-  Project multiModuleProject, phpModule, javaModule;
-  Iterable<InputFile> javaInputFiles;
-  Iterable<InputFile> phpInputFiles;
-  File baseDir;
-
-  @Before
-  public void before() throws Exception {
-    SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
-
-    multiModuleProject = newProject("root", "java");
-    multiModuleProject.setName("Root").setAnalysisDate(format.parse("25/12/2010"));
-
-    phpModule = newProject("a", "php");
-    phpModule.setName("A").setAnalysisDate(format.parse("25/12/2010"));
-    phpModule.setParent(multiModuleProject);
-    phpModule.setPath("/moduleA");
-
-    javaModule = newProject("b", "java");
-    javaModule.setName("B").setAnalysisDate(format.parse("25/12/2010"));
-    javaModule.setParent(multiModuleProject);
-    javaModule.setPath("/moduleB");
-
-    baseDir = temp.newFolder();
-
-    javaInputFiles = (Iterable) Arrays.asList(
-      newInputFile(javaModule, "src/main/java/org/foo/Bar.java", false, "java"),
-      newInputFile(javaModule, "src/main/java/RootBar.java", false, "java"),
-      newInputFile(javaModule, "src/test/java/org/foo/BarTest.java", true, "java"));
-
-    phpInputFiles = (Iterable) Arrays.asList(
-      newInputFile(phpModule, "org/foo/Bar.php", false, "php"),
-      newInputFile(phpModule, "RootBar.php", false, "php"),
-      newInputFile(phpModule, "test/org/foo/BarTest.php", true, "php"));
-
-  }
-
-  private DefaultInputFile newInputFile(Project module, String path, boolean isTest, String language) {
-    return new DeprecatedDefaultInputFile(module.getKey(), path)
-      .setModuleBaseDir(baseDir.toPath())
-      .setLanguage(language)
-      .setType(isTest ? InputFile.Type.TEST : InputFile.Type.MAIN);
-  }
-
-  @Test
-  public void shouldMigrateResourceKeys() {
-    setupData("shouldMigrateResourceKeys");
-
-    Logger logger = mock(Logger.class);
-    ResourceKeyMigration migration = new ResourceKeyMigration(getSession(), new PathResolver(), logger);
-    migration.checkIfMigrationNeeded(multiModuleProject);
-
-    DefaultModuleFileSystem fs = mock(DefaultModuleFileSystem.class);
-    when(fs.sourceDirs()).thenReturn(Arrays.asList(new File(baseDir, "src/main/java")));
-    when(fs.testDirs()).thenReturn(Arrays.asList(new File(baseDir, "src/test/java")));
-    migration.migrateIfNeeded(javaModule, javaInputFiles, fs);
-
-    when(fs.sourceDirs()).thenReturn(Arrays.asList(new File(baseDir, ".")));
-    when(fs.testDirs()).thenReturn(Arrays.asList(new File(baseDir, "test")));
-    migration.migrateIfNeeded(phpModule, phpInputFiles, fs);
-
-    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("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", "authorization_updated_at"}, "projects");
-  }
-
-  private static Project newProject(String key, String language) {
-    Settings settings = new Settings();
-    settings.setProperty(CoreProperties.PROJECT_LANGUAGE_PROPERTY, language);
-    return new Project(key).setSettings(settings).setAnalysisType(Project.AnalysisType.DYNAMIC);
-  }
-
-}
index e8e025b529746218145f2948947e10cd11eae7b5..92db07f34f6775ccb9fdf8a2427e2451a194422a 100644 (file)
@@ -226,7 +226,6 @@ public class ResourcePersisterTest extends AbstractDbUnitTestCase {
     when(projectTree.getProjectDefinition(moduleB1)).thenReturn(ProjectDefinition.create().setBaseDir(new java.io.File(baseDir, "moduleB/moduleB1")));
 
     DefaultIndex index = new DefaultIndex(resourceCache, null, projectTree, mock(MetricFinder.class),
-      mock(ResourceKeyMigration.class),
       mock(MeasureCache.class));
 
     index.start();
index 4cdb67cb1da0b14ebf4d79cf5937470214ca7558..5996ca78d36a82b9ffa86e3943bb6c480f012086 100644 (file)
 
 package org.sonar.batch.issue.ignore;
 
-import org.sonar.batch.issue.ignore.EnforceIssuesFilter;
-import org.sonar.batch.issue.ignore.pattern.IssueInclusionPatternInitializer;
-import org.sonar.batch.issue.ignore.pattern.IssuePattern;
-
 import com.google.common.collect.ImmutableList;
 import org.junit.Before;
 import org.junit.Test;
@@ -31,6 +27,9 @@ import org.sonar.api.issue.Issue;
 import org.sonar.api.issue.batch.IssueFilterChain;
 import org.sonar.api.rule.RuleKey;
 import org.sonar.api.utils.WildcardPattern;
+import org.sonar.batch.issue.ignore.pattern.IssueInclusionPatternInitializer;
+import org.sonar.batch.issue.ignore.pattern.IssuePattern;
+
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
index 22efcb7e62d80e916842778ceec42f7792055dc7..13b1ec042de5fedd94c3677654489554d8647828 100644 (file)
 
 package org.sonar.batch.issue.ignore;
 
-import org.sonar.batch.issue.ignore.IgnoreIssuesFilter;
-import org.sonar.batch.issue.ignore.pattern.IssueExclusionPatternInitializer;
-import org.sonar.batch.issue.ignore.pattern.IssuePattern;
-import org.sonar.batch.issue.ignore.pattern.PatternMatcher;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.sonar.api.issue.Issue;
 import org.sonar.api.issue.batch.IssueFilterChain;
+import org.sonar.batch.issue.ignore.pattern.IssueExclusionPatternInitializer;
+import org.sonar.batch.issue.ignore.pattern.IssuePattern;
+import org.sonar.batch.issue.ignore.pattern.PatternMatcher;
+
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
index 71a4c1194b15519a032ab0ed8daddd06daa48333..bf42b241300346af99561c24a0edd42e12697a81 100644 (file)
 
 package org.sonar.batch.issue.ignore.pattern;
 
-import org.sonar.batch.issue.ignore.pattern.IssuePattern;
-
 import org.junit.Test;
 import org.sonar.api.issue.Issue;
 import org.sonar.api.rule.RuleKey;
 import org.sonar.api.rules.Rule;
+
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
index e45c92ee53f9bee6b1005abe6a6c630769f19126..c6ec66550d87318b7426b0af1dc0824e6137b6a3 100644 (file)
@@ -20,9 +20,8 @@
 
 package org.sonar.batch.issue.ignore.pattern;
 
-import org.sonar.batch.issue.ignore.pattern.LineRange;
-
 import org.junit.Test;
+
 import static org.assertj.core.api.Assertions.assertThat;
 
 public class LineRangeTest {
index c3b235e4e65f4609b805b966c6dc62c52a2bd6e3..4679e5ae6c6fa342f68cfceb419a6224f3a43a1e 100644 (file)
@@ -20,9 +20,6 @@
 
 package org.sonar.batch.issue.ignore.pattern;
 
-import org.sonar.batch.issue.ignore.pattern.IssuePattern;
-import org.sonar.batch.issue.ignore.pattern.PatternDecoder;
-
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
index 5c8416e243ad630d452b14cc5584077c9ec15608..3d0acd15b5b51caa8bd2b06b16ef0e61e4dba225 100644 (file)
  */
 package org.sonar.batch.issue.ignore.pattern;
 
-import org.sonar.batch.issue.ignore.pattern.IssuePattern;
-import org.sonar.batch.issue.ignore.pattern.LineRange;
-import org.sonar.batch.issue.ignore.pattern.PatternDecoder;
-import org.sonar.batch.issue.ignore.pattern.PatternMatcher;
-
 import com.google.common.collect.Sets;
 import org.junit.Before;
 import org.junit.Test;
index b213103a1b5c7b7c7608561d020a52aa236e01a8..4963cd13b30a50df12227030053aaecfd2ceaa34 100644 (file)
@@ -29,7 +29,7 @@ import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.sonar.api.batch.fs.InputFile;
 import org.sonar.api.batch.fs.internal.DefaultFileSystem;
-import org.sonar.api.batch.fs.internal.DeprecatedDefaultInputFile;
+import org.sonar.api.batch.fs.internal.DefaultInputFile;
 import org.sonar.api.utils.SonarException;
 import org.sonar.batch.issue.ignore.pattern.IssueExclusionPatternInitializer;
 import org.sonar.batch.issue.ignore.pattern.IssueInclusionPatternInitializer;
@@ -105,10 +105,10 @@ public class IssueExclusionsLoaderTest {
   @Test
   public void shouldAnalyzeProject() throws IOException {
     File javaFile1 = new File(baseDir, "src/main/java/Foo.java");
-    fs.add(new DeprecatedDefaultInputFile("polop", "src/main/java/Foo.java")
+    fs.add(new DefaultInputFile("polop", "src/main/java/Foo.java")
       .setType(InputFile.Type.MAIN));
     File javaTestFile1 = new File(baseDir, "src/test/java/FooTest.java");
-    fs.add(new DeprecatedDefaultInputFile("polop", "src/test/java/FooTest.java")
+    fs.add(new DefaultInputFile("polop", "src/test/java/FooTest.java")
       .setType(InputFile.Type.TEST));
 
     when(exclusionPatternInitializer.hasFileContentPattern()).thenReturn(true);
@@ -126,10 +126,10 @@ public class IssueExclusionsLoaderTest {
   @Test
   public void shouldAnalyseFilesOnlyWhenRegexConfigured() {
     File javaFile1 = new File(baseDir, "src/main/java/Foo.java");
-    fs.add(new DeprecatedDefaultInputFile("polop", "src/main/java/Foo.java")
+    fs.add(new DefaultInputFile("polop", "src/main/java/Foo.java")
       .setType(InputFile.Type.MAIN));
     File javaTestFile1 = new File(baseDir, "src/test/java/FooTest.java");
-    fs.add(new DeprecatedDefaultInputFile("polop", "src/test/java/FooTest.java")
+    fs.add(new DefaultInputFile("polop", "src/test/java/FooTest.java")
       .setType(InputFile.Type.TEST));
     when(exclusionPatternInitializer.hasFileContentPattern()).thenReturn(false);
 
@@ -145,7 +145,7 @@ public class IssueExclusionsLoaderTest {
   @Test
   public void shouldReportFailure() throws IOException {
     File phpFile1 = new File(baseDir, "src/Foo.php");
-    fs.add(new DeprecatedDefaultInputFile("polop", "src/Foo.php")
+    fs.add(new DefaultInputFile("polop", "src/Foo.php")
       .setType(InputFile.Type.MAIN));
 
     when(exclusionPatternInitializer.hasFileContentPattern()).thenReturn(true);
index 2986564bbb05a9fec01fa19892c1f5a18fe58239..28d9b251ec9baa190022d746e4773185148c0290 100644 (file)
@@ -23,8 +23,8 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.sonar.batch.bootstrap.ServerClient;
 import org.sonar.api.utils.HttpDownloader;
+import org.sonar.batch.bootstrap.ServerClient;
 
 import java.net.URI;
 import java.net.URISyntaxException;
index cbaacefc7fd40eae91806087262e1ea403201fa7..fe81ee2006b4b6be201263d734ad0b9f2fa7afe9 100644 (file)
@@ -19,8 +19,6 @@
  */
 package org.sonar.batch.issue.tracking;
 
-import org.sonar.batch.issue.tracking.IssueHandlers;
-
 import org.junit.Test;
 import org.mockito.ArgumentMatcher;
 import org.sonar.api.issue.IssueHandler;
@@ -30,7 +28,10 @@ import org.sonar.core.issue.IssueUpdater;
 
 import java.util.Date;
 
-import static org.mockito.Mockito.*;
+import static org.mockito.Matchers.argThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyZeroInteractions;
 
 public class IssueHandlersTest {
   @Test
index 0974ac53e11f33881c3bebc4432dee2a63ed1b27..0aa11588a8c1db7102f1b152e8808a1eb1d5625c 100644 (file)
@@ -25,10 +25,23 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
 import org.sonar.api.CoreProperties;
-import org.sonar.api.batch.*;
-import org.sonar.api.batch.events.*;
+import org.sonar.api.batch.Decorator;
+import org.sonar.api.batch.DecoratorContext;
+import org.sonar.api.batch.Initializer;
+import org.sonar.api.batch.PostJob;
+import org.sonar.api.batch.Sensor;
+import org.sonar.api.batch.SensorContext;
+import org.sonar.api.batch.events.DecoratorExecutionHandler;
+import org.sonar.api.batch.events.DecoratorsPhaseHandler;
+import org.sonar.api.batch.events.InitializerExecutionHandler;
+import org.sonar.api.batch.events.InitializersPhaseHandler;
+import org.sonar.api.batch.events.PostJobExecutionHandler;
+import org.sonar.api.batch.events.PostJobsPhaseHandler;
+import org.sonar.api.batch.events.ProjectAnalysisHandler;
 import org.sonar.api.batch.events.ProjectAnalysisHandler.ProjectAnalysisEvent;
+import org.sonar.api.batch.events.SensorExecutionHandler;
 import org.sonar.api.batch.events.SensorExecutionHandler.SensorExecutionEvent;
+import org.sonar.api.batch.events.SensorsPhaseHandler;
 import org.sonar.api.batch.events.SensorsPhaseHandler.SensorsPhaseEvent;
 import org.sonar.api.resources.Project;
 import org.sonar.api.resources.Resource;
index d9a0cd952156e3ccba1f4ba5a35252ab139ed225..5cf93a9d419e24fae24804c7f8e8f19947cf6111 100644 (file)
@@ -39,7 +39,14 @@ import org.sonar.batch.report.EventCache;
 import java.util.Arrays;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.*;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 public class GenerateQualityGateEventsTest {
   private GenerateQualityGateEvents decorator;
index 12a9976207b1119a950842a741355978e2b43403..d624dfbecdc4bd57e9065cc41070664ff49f0a45 100644 (file)
@@ -26,16 +26,18 @@ import org.mockito.runners.MockitoJUnitRunner;
 import org.slf4j.Logger;
 import org.sonar.api.config.Settings;
 import org.sonar.api.measures.MetricFinder;
+import org.sonar.api.utils.HttpDownloader;
 import org.sonar.api.utils.MessageException;
 import org.sonar.batch.bootstrap.ServerClient;
-import org.sonar.api.utils.HttpDownloader;
 
 import java.net.HttpURLConnection;
 import java.net.URI;
 import java.util.Iterator;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
 public class QualityGateProviderTest {
index 5e806339a8953831eaaa5ecedbe794d3e06570f2..2d2a97e234d9b714e00d90c7bab47367c22e229f 100644 (file)
@@ -37,7 +37,9 @@ import org.sonar.batch.protocol.Constants.ComponentLinkType;
 import org.sonar.batch.protocol.Constants.EventCategory;
 import org.sonar.batch.protocol.output.BatchReport.Component;
 import org.sonar.batch.protocol.output.BatchReport.Event;
-import org.sonar.batch.protocol.output.*;
+import org.sonar.batch.protocol.output.BatchReportReader;
+import org.sonar.batch.protocol.output.BatchReportWriter;
+import org.sonar.batch.protocol.output.FileStructure;
 
 import java.io.File;
 import java.util.Arrays;
index 74389bc046684f4959beab61ae1b04e2303b1595..bc22f032a19a7996ea25208fa841bd590210ee43 100644 (file)
@@ -24,9 +24,13 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
 import org.sonar.api.database.model.Snapshot;
-import org.sonar.api.measures.*;
+import org.sonar.api.measures.CoreMetrics;
+import org.sonar.api.measures.Measure;
+import org.sonar.api.measures.Metric;
 import org.sonar.api.measures.Metric.Level;
 import org.sonar.api.measures.Metric.ValueType;
+import org.sonar.api.measures.MetricFinder;
+import org.sonar.api.measures.RuleMeasure;
 import org.sonar.api.resources.Project;
 import org.sonar.api.resources.Resource;
 import org.sonar.api.rule.RuleKey;
index 0db9253b47919c0e914cbce52110410e30be9a9e..9458bc31c35f4ad271a989757c97a999bc280b2d 100644 (file)
@@ -24,9 +24,9 @@ import org.junit.Before;
 import org.junit.Test;
 import org.sonar.api.batch.bootstrap.ProjectDefinition;
 import org.sonar.api.batch.bootstrap.ProjectReactor;
+import org.sonar.batch.bootstrap.AnalysisProperties;
 import org.sonar.batch.bootstrap.DefaultAnalysisMode;
 import org.sonar.batch.bootstrap.ServerClient;
-import org.sonar.batch.bootstrap.AnalysisProperties;
 import org.sonar.batch.rule.ModuleQProfiles;
 
 import static org.mockito.Matchers.anyString;
index 99582597466d43bf12059e142a39091e9da56538..a0b8a8e57b98afdb904ac7f9bf769bb145a8e1a4 100644 (file)
@@ -31,7 +31,10 @@ import java.util.Arrays;
 import java.util.Collections;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.*;
+import static org.mockito.Matchers.argThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 public class QProfileDecoratorTest {
 
index 6ba93100ea0403da64d6eb3cb3a62294ded639ac..532393a56e0b64300535ba41e9872d897e46e0d2 100644 (file)
@@ -29,8 +29,8 @@ import org.sonar.api.batch.bootstrap.ProjectDefinition;
 import org.sonar.api.batch.bootstrap.ProjectReactor;
 import org.sonar.api.config.PropertyDefinitions;
 import org.sonar.api.utils.MessageException;
-import org.sonar.batch.bootstrap.DefaultAnalysisMode;
 import org.sonar.batch.bootstrap.BootstrapProperties;
+import org.sonar.batch.bootstrap.DefaultAnalysisMode;
 import org.sonar.batch.bootstrap.GlobalSettings;
 import org.sonar.batch.protocol.input.GlobalRepositories;
 import org.sonar.batch.protocol.input.ProjectRepositories;
index a2ce7e460b3d9d1e524a30d89e9e9821219379c3..e5189633d8a1d7d1654c978344f5864ebad9298f 100644 (file)
@@ -24,7 +24,6 @@ import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
 import org.sonar.api.batch.fs.FilePredicate;
 import org.sonar.api.batch.fs.internal.DefaultInputFile;
-import org.sonar.api.batch.fs.internal.DeprecatedDefaultInputFile;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
@@ -37,10 +36,10 @@ public class AdditionalFilePredicatesTest {
   public void key() {
     FilePredicate predicate = new AdditionalFilePredicates.KeyPredicate("struts:Action.java");
 
-    DefaultInputFile inputFile = new DeprecatedDefaultInputFile("struts", "Action.java");
+    DefaultInputFile inputFile = new DefaultInputFile("struts", "Action.java");
     assertThat(predicate.apply(inputFile)).isTrue();
 
-    inputFile = new DeprecatedDefaultInputFile("struts", "Filter.java");
+    inputFile = new DefaultInputFile("struts", "Filter.java");
     assertThat(predicate.apply(inputFile)).isFalse();
   }
 }
index c62ccb0ae8cc21a5c43a2cde9b59c2d2ea9ff728..b5b8732d5f910bc8ba2543b63511d96cc6ec2c2a 100644 (file)
@@ -29,8 +29,12 @@ import org.sonar.api.batch.SonarIndex;
 import org.sonar.api.batch.fs.InputFile;
 import org.sonar.api.batch.fs.internal.DefaultFileSystem;
 import org.sonar.api.batch.fs.internal.DefaultInputFile;
-import org.sonar.api.batch.fs.internal.DeprecatedDefaultInputFile;
-import org.sonar.api.resources.*;
+import org.sonar.api.resources.AbstractLanguage;
+import org.sonar.api.resources.Java;
+import org.sonar.api.resources.Languages;
+import org.sonar.api.resources.Project;
+import org.sonar.api.resources.Qualifiers;
+import org.sonar.api.resources.Resource;
 import org.sonar.batch.index.BatchResource;
 import org.sonar.batch.index.ResourceCache;
 
@@ -120,7 +124,7 @@ public class ComponentIndexerTest {
   private DefaultInputFile newInputFile(String path, String content, String sourceRelativePath, String languageKey, boolean unitTest) throws IOException {
     File file = new File(baseDir, path);
     FileUtils.write(file, content);
-    return new DeprecatedDefaultInputFile("foo", path)
+    return new DefaultInputFile("foo", path)
       .setLanguage(languageKey)
       .setType(unitTest ? InputFile.Type.TEST : InputFile.Type.MAIN);
   }
index c33afe1f59fd512dace3653ca71a6a938720b366..e1c0eb4c65e57b9dd7bb48a3062c25a8ca376d1c 100644 (file)
@@ -27,7 +27,7 @@ import org.junit.rules.TemporaryFolder;
 import org.mockito.Mockito;
 import org.sonar.api.CoreProperties;
 import org.sonar.api.batch.fs.InputFile;
-import org.sonar.api.batch.fs.internal.DeprecatedDefaultInputFile;
+import org.sonar.api.batch.fs.internal.DefaultInputFile;
 import org.sonar.api.config.Settings;
 import org.sonar.api.resources.Project;
 
@@ -136,8 +136,8 @@ public class DefaultModuleFileSystemTest {
       new Project("foo"), settings, fileIndexer, initializer, componentIndexer);
 
     File baseDir = temp.newFile();
-    InputFile mainInput = new DeprecatedDefaultInputFile("foo", "Main.java").setModuleBaseDir(baseDir.toPath()).setType(InputFile.Type.MAIN);
-    InputFile testInput = new DeprecatedDefaultInputFile("foo", "Test.java").setModuleBaseDir(baseDir.toPath()).setType(InputFile.Type.TEST);
+    InputFile mainInput = new DefaultInputFile("foo", "Main.java").setModuleBaseDir(baseDir.toPath()).setType(InputFile.Type.MAIN);
+    InputFile testInput = new DefaultInputFile("foo", "Test.java").setModuleBaseDir(baseDir.toPath()).setType(InputFile.Type.TEST);
     when(moduleInputFileCache.inputFiles()).thenReturn(Lists.newArrayList(mainInput, testInput));
 
     fs.index();
index 2797d65ea20d3183e54c7f944797a9ee65f37bcd..d27a913b0d78914b2e7088495a4a72a2115ee00d 100644 (file)
@@ -25,7 +25,7 @@ import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
 import org.mockito.ArgumentCaptor;
 import org.sonar.api.batch.fs.InputFile;
-import org.sonar.api.batch.fs.internal.DeprecatedDefaultInputFile;
+import org.sonar.api.batch.fs.internal.DefaultInputFile;
 import org.sonar.api.scan.filesystem.FileSystemFilter;
 import org.sonar.api.scan.filesystem.FileType;
 
@@ -49,7 +49,7 @@ public class DeprecatedFileFiltersTest {
   public void no_filters() {
     DeprecatedFileFilters filters = new DeprecatedFileFilters();
 
-    InputFile inputFile = new DeprecatedDefaultInputFile("foo", "src/main/java/Foo.java");
+    InputFile inputFile = new DefaultInputFile("foo", "src/main/java/Foo.java");
     assertThat(filters.accept(inputFile)).isTrue();
   }
 
@@ -59,7 +59,7 @@ public class DeprecatedFileFiltersTest {
 
     File basedir = temp.newFolder();
     File file = new File(basedir, "src/main/java/Foo.java");
-    InputFile inputFile = new DeprecatedDefaultInputFile("foo", "src/main/java/Foo.java")
+    InputFile inputFile = new DefaultInputFile("foo", "src/main/java/Foo.java")
       .setModuleBaseDir(basedir.toPath())
       .setType(InputFile.Type.MAIN);
     when(filter.accept(eq(file), any(DeprecatedFileFilters.DeprecatedContext.class))).thenReturn(false);
index 805749c2d3a7888e57cea34fb841f4e8a42a94d7..ff304db2e22501080873d20d61d8e5b3b8015179 100644 (file)
@@ -24,7 +24,7 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
 import org.sonar.api.batch.fs.InputFile;
-import org.sonar.api.batch.fs.internal.DeprecatedDefaultInputFile;
+import org.sonar.api.batch.fs.internal.DefaultInputFile;
 import org.sonar.api.batch.fs.internal.FileMetadata;
 import org.sonar.api.config.Settings;
 import org.sonar.api.scan.filesystem.PathResolver;
@@ -68,7 +68,7 @@ public class InputFileBuilderTest {
 
     InputFileBuilder builder = new InputFileBuilder("struts", new PathResolver(),
       langDetection, statusDetection, fs, analysisMode, new Settings(), new FileMetadata());
-    DeprecatedDefaultInputFile inputFile = builder.create(srcFile);
+    DefaultInputFile inputFile = builder.create(srcFile);
     builder.completeAndComputeMetadata(inputFile, InputFile.Type.MAIN);
 
     assertThat(inputFile.type()).isEqualTo(InputFile.Type.MAIN);
@@ -91,7 +91,7 @@ public class InputFileBuilderTest {
 
     InputFileBuilder builder = new InputFileBuilder("struts", new PathResolver(),
       langDetection, statusDetection, fs, analysisMode, new Settings(), new FileMetadata());
-    DeprecatedDefaultInputFile inputFile = builder.create(srcFile);
+    DefaultInputFile inputFile = builder.create(srcFile);
 
     assertThat(inputFile).isNull();
   }
@@ -111,7 +111,7 @@ public class InputFileBuilderTest {
 
     InputFileBuilder builder = new InputFileBuilder("struts", new PathResolver(),
       langDetection, statusDetection, fs, analysisMode, new Settings(), new FileMetadata());
-    DeprecatedDefaultInputFile inputFile = builder.create(srcFile);
+    DefaultInputFile inputFile = builder.create(srcFile);
     inputFile = builder.completeAndComputeMetadata(inputFile, InputFile.Type.MAIN);
 
     assertThat(inputFile).isNull();
index 67caca6a48a3dd177c48682e04deac7a47afec43..70cc1f26f04091c70530f1ba0aeee993acd7560a 100644 (file)
@@ -28,7 +28,6 @@ import org.sonar.api.batch.fs.InputFile.Status;
 import org.sonar.api.batch.fs.InputFile.Type;
 import org.sonar.api.batch.fs.InputPath;
 import org.sonar.api.batch.fs.internal.DefaultInputFile;
-import org.sonar.api.batch.fs.internal.DeprecatedDefaultInputFile;
 
 import java.nio.charset.StandardCharsets;
 
@@ -52,7 +51,7 @@ public class InputPathCacheTest {
     InputPathCache cache = new InputPathCache();
     DefaultInputFile fooFile = new DefaultInputFile("foo", "src/main/java/Foo.java").setModuleBaseDir(temp.newFolder().toPath());
     cache.put("struts", fooFile);
-    cache.put("struts-core", new DeprecatedDefaultInputFile("foo", "src/main/java/Bar.java")
+    cache.put("struts-core", new DefaultInputFile("foo", "src/main/java/Bar.java")
       .setLanguage("bla")
       .setType(Type.MAIN)
       .setStatus(Status.ADDED)
index 93b4d05145a9b545af2f83fc78f04e8f284ab405..2adb08c91b9b1afee01eac02628e6b5564fba65b 100644 (file)
  */
 package org.sonar.batch.scan.filesystem;
 
-import org.sonar.batch.repository.language.DefaultLanguagesRepository;
-import org.sonar.batch.repository.language.LanguagesRepository;
-
 import org.junit.Test;
 import org.sonar.api.config.Settings;
 import org.sonar.api.resources.Java;
 import org.sonar.api.resources.Languages;
+import org.sonar.batch.repository.language.DefaultLanguagesRepository;
+import org.sonar.batch.repository.language.LanguagesRepository;
+
 import static org.assertj.core.api.Assertions.assertThat;
 
 public class LanguageDetectionFactoryTest {
index 8d6cf8bfaf82bead7503f35019a2e2b1a8e75e4d..67e450093a2c2f05ba3899a859e1cd77d5d57127 100644 (file)
@@ -29,7 +29,9 @@ import java.io.File;
 import java.io.IOException;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 public class ProjectFileSystemAdapterTest {
 
index 43b4131b00703795b4d8b679ff24e73ffae4c644..0a346666ad5eb9117f98815f7274cbf905fc78bb 100644 (file)
@@ -28,7 +28,7 @@ import org.sonar.api.batch.fs.InputDir;
 import org.sonar.api.batch.fs.InputFile;
 import org.sonar.api.batch.fs.internal.DefaultFileSystem;
 import org.sonar.api.batch.fs.internal.DefaultInputDir;
-import org.sonar.api.batch.fs.internal.DeprecatedDefaultInputFile;
+import org.sonar.api.batch.fs.internal.DefaultInputFile;
 import org.sonar.api.batch.rule.ActiveRules;
 import org.sonar.api.batch.rule.internal.ActiveRulesBuilder;
 import org.sonar.api.config.Settings;
@@ -81,7 +81,7 @@ public class JSONReportTest {
     when(server.getVersion()).thenReturn("3.6");
     userRepository = mock(UserRepository.class);
     DefaultInputDir inputDir = new DefaultInputDir("struts", "src/main/java/org/apache/struts");
-    DeprecatedDefaultInputFile inputFile = new DeprecatedDefaultInputFile("struts", "src/main/java/org/apache/struts/Action.java");
+    DefaultInputFile inputFile = new DefaultInputFile("struts", "src/main/java/org/apache/struts/Action.java");
     inputFile.setStatus(InputFile.Status.CHANGED);
     InputPathCache fileCache = mock(InputPathCache.class);
     when(fileCache.allFiles()).thenReturn(Arrays.<InputFile>asList(inputFile));
diff --git a/sonar-batch/src/test/java/org/sonar/batch/util/DeprecatedKeyUtilsTest.java b/sonar-batch/src/test/java/org/sonar/batch/util/DeprecatedKeyUtilsTest.java
deleted file mode 100644 (file)
index e365775..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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.util;
-
-import org.junit.Test;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-public class DeprecatedKeyUtilsTest {
-
-  @Test
-  public void testGetJavaFileParentDeprecatedKey() {
-    assertThat(DeprecatedKeyUtils.getJavaFileParentDeprecatedKey("org.foo.bar.Hello")).isEqualTo("org/foo/bar");
-    assertThat(DeprecatedKeyUtils.getJavaFileParentDeprecatedKey("[default].Hello")).isEqualTo("[root]");
-    assertThat(DeprecatedKeyUtils.getJavaFileParentDeprecatedKey("Hello")).isEqualTo("[root]");
-  }
-
-  @Test
-  public void testGetJavaFileDeprecatedKey() {
-    assertThat(DeprecatedKeyUtils.getJavaFileDeprecatedKey("org/foo/bar/Hello.java")).isEqualTo("org.foo.bar.Hello");
-    assertThat(DeprecatedKeyUtils.getJavaFileDeprecatedKey("Hello.java")).isEqualTo("[default].Hello");
-  }
-}
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DeprecatedDefaultInputFile.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DeprecatedDefaultInputFile.java
deleted file mode 100644 (file)
index f70d4a7..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * 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.api.batch.fs.internal;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.InputStream;
-
-/**
- * @since 4.2
- */
-public class DeprecatedDefaultInputFile extends DefaultInputFile implements org.sonar.api.resources.InputFile {
-
-  public DeprecatedDefaultInputFile(String moduleKey, String relativePath) {
-    super(moduleKey, relativePath);
-  }
-
-  /**
-   * @deprecated in 4.2. Replaced by {@link org.sonar.api.batch.fs.FileSystem#baseDir()}
-   */
-  @Deprecated
-  @Override
-  public File getFileBaseDir() {
-    return moduleBaseDir.toFile();
-  }
-
-  /**
-   * @deprecated in 4.2. Use {@link #file()}
-   */
-  @Deprecated
-  @Override
-  public File getFile() {
-    return file();
-  }
-
-  /**
-   * @deprecated in 4.2. Use {@link #relativePath()}
-   */
-  @Deprecated
-  @Override
-  public String getRelativePath() {
-    return relativePath();
-  }
-
-  @Override
-  public InputStream getInputStream() throws FileNotFoundException {
-    return new BufferedInputStream(new FileInputStream(file()));
-  }
-}
diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/batch/fs/internal/DeprecatedDefaultInputFileTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/batch/fs/internal/DeprecatedDefaultInputFileTest.java
deleted file mode 100644 (file)
index 2dd4cce..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.sonar.api.batch.fs.internal;
-
-/*
- * 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.
- */
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
-import org.sonar.api.batch.fs.InputFile;
-
-import java.io.File;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-public class DeprecatedDefaultInputFileTest {
-
-  @Rule
-  public TemporaryFolder temp = new TemporaryFolder();
-
-  @Test
-  public void test() throws Exception {
-    DeprecatedDefaultInputFile inputFile = (DeprecatedDefaultInputFile) new DeprecatedDefaultInputFile("ABCDE", "src/Foo.php")
-      .setModuleBaseDir(temp.newFolder().toPath())
-      .setLines(42)
-      .setLanguage("php")
-      .setStatus(InputFile.Status.ADDED)
-      .setType(InputFile.Type.TEST);
-
-    assertThat(inputFile.relativePath()).isEqualTo("src/Foo.php");
-    // deprecated method is different -> path relative to source dir
-    assertThat(inputFile.getRelativePath()).isEqualTo("src/Foo.php");
-    assertThat(new File(inputFile.relativePath())).isRelative();
-    assertThat(inputFile.absolutePath()).endsWith("Foo.php");
-    assertThat(new File(inputFile.absolutePath())).isAbsolute();
-    assertThat(inputFile.language()).isEqualTo("php");
-    assertThat(inputFile.status()).isEqualTo(InputFile.Status.ADDED);
-    assertThat(inputFile.type()).isEqualTo(InputFile.Type.TEST);
-    assertThat(inputFile.lines()).isEqualTo(42);
-  }
-
-  @Test
-  public void test_equals_and_hashcode() throws Exception {
-    DefaultInputFile f1 = new DefaultInputFile("ABCDE", "src/Foo.php");
-    DefaultInputFile f1a = new DefaultInputFile("ABCDE", "src/Foo.php");
-    DefaultInputFile f2 = new DefaultInputFile("ABCDE", "src/Bar.php");
-
-    assertThat(f1).isEqualTo(f1);
-    assertThat(f1).isEqualTo(f1a);
-    assertThat(f1).isNotEqualTo(f2);
-    assertThat(f1.equals("foo")).isFalse();
-    assertThat(f1.equals(null)).isFalse();
-
-    assertThat(f1.hashCode()).isEqualTo(f1.hashCode());
-    assertThat(f1.hashCode()).isEqualTo(f1a.hashCode());
-  }
-
-  @Test
-  public void test_toString() throws Exception {
-    DefaultInputFile file = new DefaultInputFile("ABCDE", "src/Foo.php");
-    assertThat(file.toString()).isEqualTo("[moduleKey=ABCDE, relative=src/Foo.php, basedir=null]");
-  }
-}