]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-9641 Add URIPredicate
authorJulien HENRY <julien.henry@sonarsource.com>
Tue, 1 Aug 2017 09:37:13 +0000 (11:37 +0200)
committerJulien HENRY <julien.henry@sonarsource.com>
Fri, 4 Aug 2017 12:58:16 +0000 (14:58 +0200)
22 files changed:
sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/FilePredicates.java
sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultFilePredicates.java
sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/DefaultFileSystem.java
sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/FileExtensionPredicate.java
sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/FilenamePredicate.java
sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/URIPredicate.java [new file with mode: 0644]
sonar-plugin-api/src/test/java/org/sonar/api/batch/fs/internal/DefaultFilePredicatesTest.java
sonar-plugin-api/src/test/java/org/sonar/api/batch/fs/internal/DefaultFileSystemTest.java
sonar-plugin-api/src/test/java/org/sonar/api/batch/fs/internal/FileExtensionPredicateTest.java
sonar-plugin-api/src/test/java/org/sonar/api/batch/fs/internal/FilenamePredicateTest.java
sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/FileIndexer.java
sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/InputComponentStore.java
sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/filesystem/InputComponentStoreProvider.java
sonar-scanner-engine/src/test/java/org/sonar/scanner/cpd/CpdExecutorTest.java
sonar-scanner-engine/src/test/java/org/sonar/scanner/postjob/DefaultPostJobContextTest.java
sonar-scanner-engine/src/test/java/org/sonar/scanner/report/CoveragePublisherTest.java
sonar-scanner-engine/src/test/java/org/sonar/scanner/report/MeasuresPublisherTest.java
sonar-scanner-engine/src/test/java/org/sonar/scanner/report/SourcePublisherTest.java
sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ModuleIndexerTest.java
sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/InputComponentStoreTest.java
sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/ModuleInputComponentStoreTest.java
sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/report/JSONReportTest.java

index c0cc9087b84fb8722f08404448502862e57a087f..255d6e2a8c8b58035069bb2b682ea92e824c67ca 100644 (file)
@@ -20,6 +20,7 @@
 package org.sonar.api.batch.fs;
 
 import java.io.File;
+import java.net.URI;
 import java.util.Collection;
 
 /**
@@ -77,6 +78,13 @@ public interface FilePredicates {
    */
   FilePredicate hasExtension(String s);
 
+  /**
+   * Predicate that gets a file by its {@link InputFile#uri()}.
+   * 
+   * @since 6.6
+   */
+  FilePredicate hasURI(URI uri);
+
   /**
    * Predicate that gets the files which relative or absolute path matches a wildcard pattern.
    * <br>
index f63731b9902226aacd518d2acfb601ca05b7c67f..3e06099e4e485696c4113de01323386589f65d2e 100644 (file)
  */
 package org.sonar.api.batch.fs.internal;
 
-import org.sonar.api.batch.fs.FilePredicate;
-import org.sonar.api.batch.fs.FilePredicates;
-import org.sonar.api.batch.fs.InputFile;
-
 import java.io.File;
+import java.net.URI;
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
+import org.sonar.api.batch.fs.FilePredicate;
+import org.sonar.api.batch.fs.FilePredicates;
+import org.sonar.api.batch.fs.InputFile;
 
 /**
  * Factory of {@link org.sonar.api.batch.fs.FilePredicate}
@@ -80,10 +80,16 @@ public class DefaultFilePredicates implements FilePredicates {
     return new FilenamePredicate(s);
   }
 
-  @Override public FilePredicate hasExtension(String s) {
+  @Override
+  public FilePredicate hasExtension(String s) {
     return new FileExtensionPredicate(s);
   }
 
+  @Override
+  public FilePredicate hasURI(URI uri) {
+    return new URIPredicate(uri, baseDir);
+  }
+
   @Override
   public FilePredicate matchesPathPattern(String inclusionPattern) {
     return new PathPatternPredicate(PathPattern.create(inclusionPattern));
index a3922b5ee643946de2604299e07d251b2944ec8a..e5246813378d3014f4a52b5b4b5f69e6830172a3 100644 (file)
@@ -252,7 +252,7 @@ public class DefaultFileSystem implements FileSystem {
         languages.add(inputFile.language());
       }
       fileMap.put(inputFile.relativePath(), inputFile);
-      filesByNameCache.put(FilenamePredicate.getFilename(inputFile), inputFile);
+      filesByNameCache.put(inputFile.filename(), inputFile);
       filesByExtensionCache.put(FileExtensionPredicate.getExtension(inputFile), inputFile);
     }
 
index c720542de25aa55e746d85e1c6ff342f1cb96639..ad5322e9faa0bffd9b604cbc691cd5e9ebdf9202 100644 (file)
@@ -45,7 +45,7 @@ public class FileExtensionPredicate extends AbstractFilePredicate {
   }
 
   public static String getExtension(InputFile inputFile) {
-    return getExtension(FilenamePredicate.getFilename(inputFile));
+    return getExtension(inputFile.filename());
   }
 
   static String getExtension(String name) {
index 0f811d3f847a477cd3d167f93393db88160c72b9..6b18ccc828107f7d3ffc9d0d4f1c80a5e1f1f165 100644 (file)
@@ -34,7 +34,7 @@ public class FilenamePredicate extends AbstractFilePredicate {
 
   @Override
   public boolean apply(InputFile inputFile) {
-    return filename.equals(getFilename(inputFile));
+    return filename.equals(inputFile.filename());
   }
 
   @Override
@@ -42,7 +42,4 @@ public class FilenamePredicate extends AbstractFilePredicate {
     return index.getFilesByName(filename);
   }
 
-  public static String getFilename(InputFile inputFile) {
-    return inputFile.file().getName();
-  }
 }
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/URIPredicate.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/URIPredicate.java
new file mode 100644 (file)
index 0000000..edf241d
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2017 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program 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.
+ *
+ * This program 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.net.URI;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Arrays;
+import java.util.Collections;
+import org.sonar.api.batch.fs.FileSystem.Index;
+import org.sonar.api.batch.fs.InputFile;
+import org.sonar.api.scan.filesystem.PathResolver;
+import org.sonar.api.utils.PathUtils;
+
+/**
+ * @since 6.6
+ */
+class URIPredicate extends AbstractFilePredicate {
+
+  private final URI uri;
+  private final Path baseDir;
+
+  URIPredicate(URI uri, Path baseDir) {
+    this.baseDir = baseDir;
+    this.uri = uri;
+  }
+
+  @Override
+  public boolean apply(InputFile f) {
+    return uri.equals(f.uri());
+  }
+
+  @Override
+  public Iterable<InputFile> get(Index index) {
+    Path path = Paths.get(uri);
+    String relative = PathUtils.sanitize(PathResolver.relativePath(baseDir, path));
+    if (relative == null) {
+      return Collections.emptyList();
+    }
+    InputFile f = index.inputFile(relative);
+    return f != null ? Arrays.asList(f) : Collections.<InputFile>emptyList();
+  }
+
+  @Override
+  public int priority() {
+    return USE_INDEX;
+  }
+}
index a960b34257334d5afdbb16879d0e9098b2329dec..8efcbe6d3cd1b3c747b07315154be564494aa738 100644 (file)
  */
 package org.sonar.api.batch.fs.internal;
 
+import java.io.File;
+import java.io.IOException;
+import java.net.URI;
+import java.nio.file.Path;
+import java.util.Arrays;
+import java.util.Collections;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -27,12 +33,6 @@ import org.sonar.api.batch.fs.FilePredicate;
 import org.sonar.api.batch.fs.FilePredicates;
 import org.sonar.api.batch.fs.InputFile;
 
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Path;
-import java.util.Arrays;
-import java.util.Collections;
-
 import static org.assertj.core.api.Assertions.assertThat;
 
 public class DefaultFilePredicatesTest {
@@ -57,6 +57,7 @@ public class DefaultFilePredicatesTest {
       .setModuleBaseDir(moduleBasePath)
       .setLanguage("java")
       .build();
+
   }
 
   @Test
@@ -120,6 +121,14 @@ public class DefaultFilePredicatesTest {
     assertThat(predicates.hasAbsolutePath("src/main/java/struts/Action.java").apply(javaFile)).isFalse();
   }
 
+  @Test
+  public void has_uri() throws Exception {
+    URI uri = javaFile.uri();
+    assertThat(predicates.hasURI(uri).apply(javaFile)).isTrue();
+
+    assertThat(predicates.hasURI(temp.newFile().toURI()).apply(javaFile)).isFalse();
+  }
+
   @Test
   public void has_path() throws Exception {
     // is relative path
index d3ba5dbbf8633a6b436113cc92a203da1d0c60e6..60908c4816619db5ea939dc04eabf7bf86f21f36 100644 (file)
@@ -89,6 +89,14 @@ public class DefaultFileSystemTest {
     assertThat(fs.inputFile(fs.predicates().hasRelativePath("src/Bar.java"))).isNotNull();
     assertThat(fs.inputFile(fs.predicates().hasRelativePath("does/not/exist"))).isNull();
 
+    assertThat(fs.inputFile(fs.predicates().hasAbsolutePath(new File(basedir, "src/Bar.java").getAbsolutePath()))).isNotNull();
+    assertThat(fs.inputFile(fs.predicates().hasAbsolutePath(new File(basedir, "does/not/exist").getAbsolutePath()))).isNull();
+    assertThat(fs.inputFile(fs.predicates().hasAbsolutePath(new File(basedir, "../src/Bar.java").getAbsolutePath()))).isNull();
+
+    assertThat(fs.inputFile(fs.predicates().hasURI(new File(basedir, "src/Bar.java").toURI()))).isNotNull();
+    assertThat(fs.inputFile(fs.predicates().hasURI(new File(basedir, "does/not/exist").toURI()))).isNull();
+    assertThat(fs.inputFile(fs.predicates().hasURI(new File(basedir, "../src/Bar.java").toURI()))).isNull();
+
     assertThat(fs.files(fs.predicates().all())).hasSize(4);
     assertThat(fs.files(fs.predicates().hasLanguage("java"))).hasSize(2);
     assertThat(fs.files(fs.predicates().hasLanguage("cobol"))).isEmpty();
index 60b40edebf4e09699a36a27a94bbb07f3712d88b..dff20fff8df14072cf7a5deeecfdc0744a23eeca 100644 (file)
  */
 package org.sonar.api.batch.fs.internal;
 
-import java.io.File;
 import java.io.IOException;
-import org.junit.*;
+import org.junit.Test;
 import org.sonar.api.batch.fs.InputFile;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 import static org.sonar.api.batch.fs.internal.FileExtensionPredicate.getExtension;
 
 public class FileExtensionPredicateTest {
@@ -66,7 +66,7 @@ public class FileExtensionPredicateTest {
 
   private InputFile mockWithName(String filename) throws IOException {
     InputFile inputFile = mock(InputFile.class);
-    when(inputFile.file()).thenReturn(new File("dummy parent", filename));
+    when(inputFile.filename()).thenReturn(filename);
     return inputFile;
   }
 }
index 6383dc243c8390a759bd82c263a6e02a75013af8..68eb284219b798bafc878d6ed2737370d6006a42 100644 (file)
  */
 package org.sonar.api.batch.fs.internal;
 
-import java.io.File;
 import java.io.IOException;
 import java.util.Collections;
-import org.junit.*;
+import org.junit.Test;
 import org.sonar.api.batch.fs.FileSystem;
 import org.sonar.api.batch.fs.InputFile;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 public class FilenamePredicateTest {
   @Test
   public void should_match_file_by_filename() throws IOException {
     String filename = "some name";
     InputFile inputFile = mock(InputFile.class);
-    when(inputFile.file()).thenReturn(newDummyFile(filename));
+    when(inputFile.filename()).thenReturn(filename);
 
     assertThat(new FilenamePredicate(filename).apply(inputFile)).isTrue();
   }
@@ -43,7 +43,7 @@ public class FilenamePredicateTest {
   public void should_not_match_file_by_different_filename() throws IOException {
     String filename = "some name";
     InputFile inputFile = mock(InputFile.class);
-    when(inputFile.file()).thenReturn(newDummyFile(filename + "x"));
+    when(inputFile.filename()).thenReturn(filename + "x");
 
     assertThat(new FilenamePredicate(filename).apply(inputFile)).isFalse();
   }
@@ -52,7 +52,7 @@ public class FilenamePredicateTest {
   public void should_find_matching_file_in_index() throws IOException {
     String filename = "some name";
     InputFile inputFile = mock(InputFile.class);
-    when(inputFile.file()).thenReturn(newDummyFile(filename));
+    when(inputFile.filename()).thenReturn(filename);
 
     FileSystem.Index index = mock(FileSystem.Index.class);
     when(index.getFilesByName(filename)).thenReturn(Collections.singleton(inputFile));
@@ -60,7 +60,4 @@ public class FilenamePredicateTest {
     assertThat(new FilenamePredicate(filename).get(index)).containsOnly(inputFile);
   }
 
-  private File newDummyFile(String filename) {
-    return new File("dummy parent", filename);
-  }
 }
index a1734423701e0ea5315cd0a62f37a4e6232c948c..b120e1fd7a8a84300ce7d8b2b8d575f0b9d659ca 100644 (file)
@@ -185,7 +185,7 @@ public class FileIndexer {
     }
     String parentRelativePath = getParentRelativePath(inputFile);
     synchronized (this) {
-      indexParentDir(inputFile, parentRelativePath);
+      indexFileAndParentDir(inputFile, parentRelativePath);
       progress.markAsIndexed(inputFile);
     }
     LOG.debug("'{}' indexed {}with language '{}'", relativePathStr, type == Type.TEST ? "as test " : "", inputFile.language());
@@ -202,7 +202,7 @@ public class FileIndexer {
     return relativePath;
   }
 
-  private void indexParentDir(InputFile inputFile, String parentRelativePath) {
+  private void indexFileAndParentDir(InputFile inputFile, String parentRelativePath) {
     DefaultInputDir inputDir = (DefaultInputDir) componentStore.getDir(module.key(), parentRelativePath);
     if (inputDir == null) {
       inputDir = new DefaultInputDir(module.key(), parentRelativePath, batchIdGenerator.get());
index c43c8b05025be6cf6c62dc1a7a100bb399a65667..bec0e176f103d1cb0f43f263ecded9d3753eb950 100644 (file)
@@ -41,7 +41,6 @@ import org.sonar.api.batch.fs.internal.DefaultInputDir;
 import org.sonar.api.batch.fs.internal.DefaultInputFile;
 import org.sonar.api.batch.fs.internal.DefaultInputModule;
 import org.sonar.api.batch.fs.internal.FileExtensionPredicate;
-import org.sonar.api.batch.fs.internal.FilenamePredicate;
 import org.sonar.api.scan.filesystem.PathResolver;
 
 /**
@@ -51,7 +50,6 @@ import org.sonar.api.scan.filesystem.PathResolver;
 @ScannerSide
 public class InputComponentStore {
 
-  private final PathResolver pathResolver;
   private final SortedSet<String> globalLanguagesCache = new TreeSet<>();
   private final Map<String, SortedSet<String>> languagesCache = new HashMap<>();
   private final Map<String, InputFile> globalInputFileCache = new HashMap<>();
@@ -65,8 +63,7 @@ public class InputComponentStore {
   private final SetMultimap<String, InputFile> filesByExtensionCache = LinkedHashMultimap.create();
   private final InputModule root;
 
-  public InputComponentStore(PathResolver pathResolver, DefaultInputModule root) {
-    this.pathResolver = pathResolver;
+  public InputComponentStore(DefaultInputModule root) {
     this.root = root;
     this.put(root);
   }
@@ -129,7 +126,7 @@ public class InputComponentStore {
     inputFileCache.put(file.moduleKey(), inputFile.relativePath(), inputFile);
     globalInputFileCache.put(getProjectRelativePath(file), inputFile);
     inputComponents.put(inputFile.key(), inputFile);
-    filesByNameCache.put(FilenamePredicate.getFilename(inputFile), inputFile);
+    filesByNameCache.put(inputFile.filename(), inputFile);
     filesByExtensionCache.put(FileExtensionPredicate.getExtension(inputFile), inputFile);
     return this;
   }
@@ -151,11 +148,11 @@ public class InputComponentStore {
   }
 
   private String getProjectRelativePath(DefaultInputFile file) {
-    return pathResolver.relativePath(getProjectBaseDir(), file.path());
+    return PathResolver.relativePath(getProjectBaseDir(), file.path());
   }
 
   private String getProjectRelativePath(DefaultInputDir dir) {
-    return pathResolver.relativePath(getProjectBaseDir(), dir.path());
+    return PathResolver.relativePath(getProjectBaseDir(), dir.path());
   }
 
   private Path getProjectBaseDir() {
index 65e78e623e6345c0f0b45869cf2262e7570acf78..6f8ecbb655c7564ec1741981406a35d645106d3f 100644 (file)
@@ -21,14 +21,13 @@ package org.sonar.scanner.scan.filesystem;
 
 import org.picocontainer.injectors.ProviderAdapter;
 import org.sonar.api.batch.fs.internal.InputModuleHierarchy;
-import org.sonar.api.scan.filesystem.PathResolver;
 
 public class InputComponentStoreProvider extends ProviderAdapter {
   private InputComponentStore store;
 
-  public InputComponentStore provide(PathResolver pathResolver, InputModuleHierarchy hierarchy) {
+  public InputComponentStore provide(InputModuleHierarchy hierarchy) {
     if (store == null) {
-      store = new InputComponentStore(pathResolver, hierarchy.root());
+      store = new InputComponentStore(hierarchy.root());
     }
     return store;
   }
index 33717366d0715b2c5aed485d5f8f1f8fce13fcb7..e3407fc6fe0ad960e46f9accd09b59eea146dc55 100644 (file)
  */
 package org.sonar.scanner.cpd;
 
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
-
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -39,7 +34,6 @@ import org.sonar.api.batch.fs.InputFile;
 import org.sonar.api.batch.fs.internal.DefaultInputFile;
 import org.sonar.api.batch.fs.internal.DefaultInputModule;
 import org.sonar.api.batch.fs.internal.TestInputFileBuilder;
-import org.sonar.api.scan.filesystem.PathResolver;
 import org.sonar.api.utils.log.LogTester;
 import org.sonar.api.utils.log.LoggerLevel;
 import org.sonar.core.util.CloseableIterator;
@@ -55,6 +49,10 @@ import org.sonar.scanner.protocol.output.ScannerReportWriter;
 import org.sonar.scanner.report.ReportPublisher;
 import org.sonar.scanner.scan.filesystem.InputComponentStore;
 
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
 public class CpdExecutorTest {
   @Rule
   public LogTester logTester = new LogTester();
@@ -87,7 +85,7 @@ public class CpdExecutorTest {
 
     index = new SonarCpdBlockIndex(publisher, settings);
     DefaultInputModule inputModule = TestInputFileBuilder.newDefaultInputModule("foo", baseDir);
-    componentStore = new InputComponentStore(new PathResolver(), inputModule);
+    componentStore = new InputComponentStore(inputModule);
     executor = new CpdExecutor(settings, index, publisher, componentStore);
     reader = new ScannerReportReader(outputDir);
 
index 9f19852e6fd900554b2d60eaadd4e829e89179d0..d1bcef89d99def5120eab9a8e69bec77601e0df6 100644 (file)
@@ -31,7 +31,6 @@ import org.sonar.api.batch.fs.internal.TestInputFileBuilder;
 import org.sonar.api.batch.postjob.issue.PostJobIssue;
 import org.sonar.api.batch.rule.Severity;
 import org.sonar.api.config.internal.MapSettings;
-import org.sonar.api.scan.filesystem.PathResolver;
 import org.sonar.scanner.issue.IssueCache;
 import org.sonar.scanner.issue.tracking.TrackedIssue;
 import org.sonar.scanner.scan.filesystem.InputComponentStore;
@@ -55,7 +54,7 @@ public class DefaultPostJobContextTest {
   public void setUp() throws IOException {
     issueCache = mock(IssueCache.class);
     DefaultInputModule rootModule = TestInputFileBuilder.newDefaultInputModule("foo", temp.newFolder());
-    componentStore = new InputComponentStore(new PathResolver(), rootModule);
+    componentStore = new InputComponentStore(rootModule);
     settings = new MapSettings();
     analysisMode = mock(AnalysisMode.class);
     context = new DefaultPostJobContext(settings.asConfig(), settings, issueCache, componentStore, analysisMode);
index 395d227be622e7d386099f0ea39635a7f233ade6..794345ebdf7c8422e9692bc5d20a9c142d8571e7 100644 (file)
@@ -30,7 +30,6 @@ import org.sonar.api.batch.fs.internal.DefaultInputModule;
 import org.sonar.api.batch.fs.internal.TestInputFileBuilder;
 import org.sonar.api.batch.sensor.measure.internal.DefaultMeasure;
 import org.sonar.api.measures.CoreMetrics;
-import org.sonar.api.scan.filesystem.PathResolver;
 import org.sonar.core.util.CloseableIterator;
 import org.sonar.scanner.protocol.output.ScannerReport.LineCoverage;
 import org.sonar.scanner.protocol.output.ScannerReportReader;
@@ -58,7 +57,7 @@ public class CoveragePublisherTest {
     String moduleKey = "foo";
     inputFile = new TestInputFileBuilder(moduleKey, "src/Foo.php").setLines(5).build();
     DefaultInputModule rootModule = TestInputFileBuilder.newDefaultInputModule(moduleKey, temp.newFolder());
-    InputComponentStore componentCache = new InputComponentStore(new PathResolver(), rootModule);
+    InputComponentStore componentCache = new InputComponentStore(rootModule);
     componentCache.put(inputFile);
 
     measureCache = mock(MeasureCache.class);
index 6f513738f458d48813d86e96409647c412ce02fd..224d3533423113b2dffd3b9a379d1aa3258b12c8 100644 (file)
@@ -33,7 +33,6 @@ import org.sonar.api.batch.fs.internal.DefaultInputModule;
 import org.sonar.api.batch.fs.internal.TestInputFileBuilder;
 import org.sonar.api.batch.sensor.measure.internal.DefaultMeasure;
 import org.sonar.api.measures.CoreMetrics;
-import org.sonar.api.scan.filesystem.PathResolver;
 import org.sonar.core.util.CloseableIterator;
 import org.sonar.scanner.deprecated.test.TestPlanBuilder;
 import org.sonar.scanner.protocol.output.ScannerReport;
@@ -69,7 +68,7 @@ public class MeasuresPublisherTest {
     String moduleKey = "foo";
     inputModule = TestInputFileBuilder.newDefaultInputModule(moduleKey, temp.newFolder());
     inputFile = new TestInputFileBuilder(moduleKey, "src/Foo.php").setPublish(true).build();
-    InputComponentStore componentCache = new InputComponentStore(new PathResolver(), inputModule);
+    InputComponentStore componentCache = new InputComponentStore(inputModule);
     componentCache.put(inputFile);
     measureCache = mock(MeasureCache.class);
     when(measureCache.byComponentKey(anyString())).thenReturn(Collections.<DefaultMeasure<?>>emptyList());
index 76f0dc7aee67d9b24003e4f1c247b2522d4ba458..8745a546aed2e204fffa0696b122c1fa67c149b0 100644 (file)
@@ -30,7 +30,6 @@ import org.junit.rules.TemporaryFolder;
 import org.sonar.api.batch.fs.internal.DefaultInputFile;
 import org.sonar.api.batch.fs.internal.DefaultInputModule;
 import org.sonar.api.batch.fs.internal.TestInputFileBuilder;
-import org.sonar.api.scan.filesystem.PathResolver;
 import org.sonar.scanner.protocol.output.ScannerReportWriter;
 import org.sonar.scanner.scan.filesystem.InputComponentStore;
 
@@ -57,7 +56,7 @@ public class SourcePublisherTest {
       .build();
 
     DefaultInputModule rootModule = TestInputFileBuilder.newDefaultInputModule(moduleKey, baseDir);
-    InputComponentStore componentStore = new InputComponentStore(new PathResolver(), rootModule);
+    InputComponentStore componentStore = new InputComponentStore(rootModule);
     componentStore.put(inputFile);
 
     publisher = new SourcePublisher(componentStore);
index 63bd38a6ada3569b522b9dac1d102984d8a978cf..c25b4ce33f14bb04b4dbbe06af4d0fa4d8d8ebdc 100644 (file)
  */
 package org.sonar.scanner.scan;
 
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
 import java.util.Arrays;
-
 import org.junit.Test;
 import org.sonar.api.batch.bootstrap.ProjectDefinition;
 import org.sonar.api.batch.fs.InputModule;
 import org.sonar.api.batch.fs.internal.DefaultInputModule;
-import org.sonar.api.scan.filesystem.PathResolver;
 import org.sonar.scanner.scan.filesystem.InputComponentStore;
 
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
 public class ModuleIndexerTest {
   private ModuleIndexer indexer;
   private DefaultComponentTree tree;
@@ -39,19 +37,19 @@ public class ModuleIndexerTest {
   private InputComponentStore componentStore;
 
   public void createIndexer(DefaultInputModule rootModule) {
-    componentStore = new InputComponentStore(new PathResolver(), rootModule);
+    componentStore = new InputComponentStore(rootModule);
     tree = new DefaultComponentTree();
     moduleHierarchy = mock(DefaultInputModuleHierarchy.class);
     indexer = new ModuleIndexer(tree, componentStore, moduleHierarchy);
   }
-  
+
   @Test
   public void testIndex() {
     ProjectDefinition rootDef = mock(ProjectDefinition.class);
     ProjectDefinition def = mock(ProjectDefinition.class);
     when(rootDef.getParent()).thenReturn(null);
     when(def.getParent()).thenReturn(rootDef);
-    
+
     DefaultInputModule root = mock(DefaultInputModule.class);
     DefaultInputModule mod1 = mock(DefaultInputModule.class);
     DefaultInputModule mod2 = mock(DefaultInputModule.class);
@@ -61,7 +59,7 @@ public class ModuleIndexerTest {
     when(mod1.key()).thenReturn("mod1");
     when(mod2.key()).thenReturn("mod2");
     when(mod3.key()).thenReturn("mod3");
-    
+
     when(root.getKeyWithBranch()).thenReturn("root");
     when(mod1.getKeyWithBranch()).thenReturn("mod1");
     when(mod2.getKeyWithBranch()).thenReturn("mod2");
index 38e480e8b7d1fdf05b239882be681ebdd8fed959..097d9b918b428b629cbee7602d349c3f770ed60e 100644 (file)
@@ -35,7 +35,6 @@ import org.sonar.api.batch.fs.InputPath;
 import org.sonar.api.batch.fs.internal.DefaultInputFile;
 import org.sonar.api.batch.fs.internal.DefaultInputModule;
 import org.sonar.api.batch.fs.internal.TestInputFileBuilder;
-import org.sonar.api.scan.filesystem.PathResolver;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
@@ -58,7 +57,7 @@ public class InputComponentStoreTest {
     DefaultInputModule rootModule = TestInputFileBuilder.newDefaultInputModule(rootDef);
     DefaultInputModule subModule = TestInputFileBuilder.newDefaultInputModule(moduleDef);
 
-    InputComponentStore cache = new InputComponentStore(new PathResolver(), rootModule);
+    InputComponentStore cache = new InputComponentStore(rootModule);
     cache.put(subModule);
 
     DefaultInputFile fooFile = new TestInputFileBuilder(rootModuleKey, "src/main/java/Foo.java")
@@ -102,7 +101,7 @@ public class InputComponentStoreTest {
 
   static class InputComponentStoreTester extends InputComponentStore {
     InputComponentStoreTester() throws IOException {
-      super(new PathResolver(), TestInputFileBuilder.newDefaultInputModule("root", temp.newFolder()));
+      super(TestInputFileBuilder.newDefaultInputModule("root", temp.newFolder()));
     }
 
     InputFile addFile(String moduleKey, String relpath, String language) {
index 8451685ee3c3e033132316e66b45aaf37ae97cc9..4d2e97d0c23e6d87db050cb89114d406b807a6cc 100644 (file)
@@ -28,7 +28,6 @@ import org.sonar.api.batch.fs.InputFile;
 import org.sonar.api.batch.fs.InputModule;
 import org.sonar.api.batch.fs.internal.DefaultInputModule;
 import org.sonar.api.batch.fs.internal.TestInputFileBuilder;
-import org.sonar.api.scan.filesystem.PathResolver;
 import org.sonar.scanner.sensor.SensorStrategy;
 
 import static org.assertj.core.api.Assertions.assertThat;
@@ -48,7 +47,7 @@ public class ModuleInputComponentStoreTest {
   @Before
   public void setUp() throws IOException {
     DefaultInputModule root = TestInputFileBuilder.newDefaultInputModule(moduleKey, temp.newFolder());
-    componentStore = new InputComponentStore(new PathResolver(), root);
+    componentStore = new InputComponentStore(root);
   }
 
   @Test
index 276987ed552370e55d791ecb699ad5fa449d5f7c..876fcb13286dffc6bd4317456bed955ea83f2536 100644 (file)
@@ -45,7 +45,6 @@ import org.sonar.api.config.internal.MapSettings;
 import org.sonar.api.issue.Issue;
 import org.sonar.api.platform.Server;
 import org.sonar.api.rule.RuleKey;
-import org.sonar.api.scan.filesystem.PathResolver;
 import org.sonar.scanner.issue.IssueCache;
 import org.sonar.scanner.issue.tracking.TrackedIssue;
 import org.sonar.scanner.scan.DefaultComponentTree;
@@ -83,7 +82,7 @@ public class JSONReportTest {
     DefaultComponentTree inputComponentTree = new DefaultComponentTree();
     ProjectDefinition def = ProjectDefinition.create().setBaseDir(projectBaseDir).setWorkDir(temp.newFolder()).setKey("struts");
     DefaultInputModule rootModule = new DefaultInputModule(def, 1);
-    InputComponentStore inputComponentStore = new InputComponentStore(new PathResolver(), rootModule);
+    InputComponentStore inputComponentStore = new InputComponentStore(rootModule);
 
     DefaultInputModule moduleA = new DefaultInputModule(ProjectDefinition.create().setKey("struts-core").setBaseDir(temp.newFolder()).setWorkDir(temp.newFolder()));
     inputComponentTree.index(moduleA, rootModule);