aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@gmail.com>2014-02-24 22:58:22 +0100
committerSimon Brandhof <simon.brandhof@gmail.com>2014-02-26 12:15:58 +0100
commite4810500228a85c72bf4937874de3f37dba39d48 (patch)
tree8ae86202e20d3f8db52f8f981f0bd075a134db75
parenta7b8340e5f16f8411e44d7cffe472a28bf63c8b9 (diff)
downloadsonarqube-e4810500228a85c72bf4937874de3f37dba39d48.tar.gz
sonarqube-e4810500228a85c72bf4937874de3f37dba39d48.zip
Remove unused classes
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/AdditionalFilePredicates.java (renamed from sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FilePredicateAdapters.java)11
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DefaultModuleFileSystem.java8
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ExclusionFilter.java43
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ExclusionFilters.java6
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FileIndexer.java35
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/InclusionFilter.java43
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/InputFileBuilder.java16
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/index/MeasurePersisterTest.java18
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/AdditionalFilePredicatesTest.java81
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/ExclusionFilterTest.java63
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/ExclusionFiltersTest.java68
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/FileSystemLoggerTest.java56
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InclusionFilterTest.java63
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputFileBuilderTest.java17
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputFileCacheTest.java33
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/PathPattern.java16
16 files changed, 220 insertions, 357 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FilePredicateAdapters.java b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/AdditionalFilePredicates.java
index beb959fa65f..41f7efc4a50 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FilePredicateAdapters.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/AdditionalFilePredicates.java
@@ -24,7 +24,16 @@ import org.sonar.api.batch.fs.FilePredicate;
import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.fs.internal.DefaultInputFile;
-class FilePredicateAdapters {
+/**
+ * Additional {@link org.sonar.api.batch.fs.FilePredicate}s that are
+ * not published in public API
+ */
+class AdditionalFilePredicates {
+
+ private AdditionalFilePredicates() {
+ // only static inner classes
+ }
+
static class KeyPredicate implements FilePredicate {
private final String key;
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DefaultModuleFileSystem.java b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DefaultModuleFileSystem.java
index d3ef6c52cf6..67c194ab0c4 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DefaultModuleFileSystem.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DefaultModuleFileSystem.java
@@ -259,7 +259,7 @@ public class DefaultModuleFileSystem extends DefaultFileSystem implements Module
return FilePredicates.or(Collections2.transform(value, new Function<String, FilePredicate>() {
@Override
public FilePredicate apply(@Nullable String s) {
- return s == null ? FilePredicates.all() : new FilePredicateAdapters.KeyPredicate(s);
+ return s == null ? FilePredicates.all() : new AdditionalFilePredicates.KeyPredicate(s);
}
}));
}
@@ -267,7 +267,7 @@ public class DefaultModuleFileSystem extends DefaultFileSystem implements Module
return FilePredicates.or(Collections2.transform(value, new Function<String, FilePredicate>() {
@Override
public FilePredicate apply(@Nullable String s) {
- return s == null ? FilePredicates.all() : new FilePredicateAdapters.DeprecatedKeyPredicate(s);
+ return s == null ? FilePredicates.all() : new AdditionalFilePredicates.DeprecatedKeyPredicate(s);
}
}));
}
@@ -275,7 +275,7 @@ public class DefaultModuleFileSystem extends DefaultFileSystem implements Module
return FilePredicates.or(Collections2.transform(value, new Function<String, FilePredicate>() {
@Override
public FilePredicate apply(@Nullable String s) {
- return s == null ? FilePredicates.all() : new FilePredicateAdapters.SourceRelativePathPredicate(s);
+ return s == null ? FilePredicates.all() : new AdditionalFilePredicates.SourceRelativePathPredicate(s);
}
}));
}
@@ -283,7 +283,7 @@ public class DefaultModuleFileSystem extends DefaultFileSystem implements Module
return FilePredicates.or(Collections2.transform(value, new Function<String, FilePredicate>() {
@Override
public FilePredicate apply(@Nullable String s) {
- return s == null ? FilePredicates.all() : new FilePredicateAdapters.SourceDirPredicate(s);
+ return s == null ? FilePredicates.all() : new AdditionalFilePredicates.SourceDirPredicate(s);
}
}));
}
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ExclusionFilter.java b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ExclusionFilter.java
deleted file mode 100644
index e9ec3793260..00000000000
--- a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ExclusionFilter.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * SonarQube, open source software quality management tool.
- * Copyright (C) 2008-2013 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.scan.filesystem;
-
-
-import org.sonar.api.batch.fs.InputFile;
-import org.sonar.api.batch.fs.InputFileFilter;
-import org.sonar.api.batch.fs.internal.PathPattern;
-
-class ExclusionFilter implements InputFileFilter {
- private final PathPattern pattern;
-
- ExclusionFilter(String s) {
- this.pattern = PathPattern.create(s);
- }
-
- @Override
- public boolean accept(InputFile inputFile) {
- return !pattern.match(inputFile);
- }
-
- @Override
- public String toString() {
- return "Excludes: " + pattern;
- }
-}
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ExclusionFilters.java b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ExclusionFilters.java
index 50acca5c074..68a75c21cab 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ExclusionFilters.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ExclusionFilters.java
@@ -65,7 +65,7 @@ public class ExclusionFilters implements BatchComponent {
}
}
- public boolean accept(File ioFile, String relativePathFromBasedir, InputFile.Type type) {
+ public boolean accept(InputFile inputFile, InputFile.Type type) {
PathPattern[] inclusionPatterns = null;
PathPattern[] exclusionPatterns = null;
if (InputFile.Type.MAIN==type) {
@@ -78,7 +78,7 @@ public class ExclusionFilters implements BatchComponent {
boolean matchInclusion = false;
if (inclusionPatterns != null && inclusionPatterns.length > 0) {
for (PathPattern pattern : inclusionPatterns) {
- matchInclusion |= pattern.match(ioFile, relativePathFromBasedir);
+ matchInclusion |= pattern.match(inputFile);
}
if (!matchInclusion) {
return false;
@@ -86,7 +86,7 @@ public class ExclusionFilters implements BatchComponent {
}
if (exclusionPatterns != null && exclusionPatterns.length > 0) {
for (PathPattern pattern : exclusionPatterns) {
- if (pattern.match(ioFile, relativePathFromBasedir)) {
+ if (pattern.match(inputFile)) {
return false;
}
}
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FileIndexer.java b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FileIndexer.java
index 7ad6bc13143..c0f0e4a3aa0 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FileIndexer.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FileIndexer.java
@@ -29,6 +29,7 @@ import org.slf4j.LoggerFactory;
import org.sonar.api.BatchComponent;
import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.fs.InputFileFilter;
+import org.sonar.api.batch.fs.internal.DefaultInputFile;
import org.sonar.api.resources.Project;
import org.sonar.api.scan.filesystem.PathResolver;
import org.sonar.api.utils.SonarException;
@@ -73,7 +74,6 @@ public class FileIndexer implements BatchComponent {
}
logger.info("Index files");
exclusionFilters.prepare(fileSystem);
- // TODO log configuration too (replace FileSystemLogger)
Progress progress = new Progress(fileCache.byModule(fileSystem.moduleKey()));
@@ -98,15 +98,9 @@ public class FileIndexer implements BatchComponent {
private void indexFiles(InputFileBuilder inputFileBuilder, DefaultModuleFileSystem fileSystem, Progress progress, List<File> sourceFiles, InputFile.Type type) {
for (File sourceFile : sourceFiles) {
- String path = pathResolver.relativePath(fileSystem.baseDir(), sourceFile);
- if (path == null) {
- LoggerFactory.getLogger(getClass()).warn(String.format(
- FILE_IS_NOT_DECLARED_IN_MODULE_BASEDIR, sourceFile.getAbsoluteFile(), fileSystem.baseDir()
- ));
- } else {
- if (exclusionFilters.accept(sourceFile, path, type)) {
- indexFile(inputFileBuilder, fileSystem, progress, sourceFile, path, type);
- }
+ DefaultInputFile inputFile = inputFileBuilder.create(sourceFile);
+ if (inputFile != null && exclusionFilters.accept(inputFile, type)) {
+ indexFile(inputFileBuilder, fileSystem, progress, inputFile, type);
}
}
}
@@ -114,24 +108,21 @@ public class FileIndexer implements BatchComponent {
private void indexDirectory(InputFileBuilder inputFileBuilder, DefaultModuleFileSystem fileSystem, Progress status, File dirToIndex) {
Collection<File> files = FileUtils.listFiles(dirToIndex, FILE_FILTER, DIR_FILTER);
for (File sourceFile : files) {
- String path = pathResolver.relativePath(fileSystem.baseDir(), sourceFile);
- if (path == null) {
- LoggerFactory.getLogger(getClass()).warn(String.format(
- FILE_IS_NOT_DECLARED_IN_MODULE_BASEDIR, sourceFile.getAbsoluteFile(), fileSystem.baseDir()
- ));
- } else {
- if (exclusionFilters.accept(sourceFile, path, InputFile.Type.MAIN)) {
- indexFile(inputFileBuilder, fileSystem, status, sourceFile, path, InputFile.Type.MAIN);
+ DefaultInputFile inputFile = inputFileBuilder.create(sourceFile);
+ if (inputFile != null) {
+ if (exclusionFilters.accept(inputFile, InputFile.Type.MAIN)) {
+ indexFile(inputFileBuilder, fileSystem, status, inputFile, InputFile.Type.MAIN);
}
- if (exclusionFilters.accept(sourceFile, path, InputFile.Type.TEST)) {
- indexFile(inputFileBuilder, fileSystem, status, sourceFile, path, InputFile.Type.TEST);
+ if (exclusionFilters.accept(inputFile, InputFile.Type.TEST)) {
+ indexFile(inputFileBuilder, fileSystem, status, inputFile, InputFile.Type.TEST);
}
}
}
}
- private void indexFile(InputFileBuilder inputFileBuilder, DefaultModuleFileSystem fs, Progress status, File file, String path, InputFile.Type type) {
- InputFile inputFile = inputFileBuilder.create(file, type);
+ private void indexFile(InputFileBuilder inputFileBuilder, DefaultModuleFileSystem fs,
+ Progress status, DefaultInputFile inputFile, InputFile.Type type) {
+ inputFile = inputFileBuilder.complete(inputFile, type);
if (inputFile != null && accept(inputFile)) {
fs.add(inputFile);
status.markAsIndexed(inputFile);
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/InclusionFilter.java b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/InclusionFilter.java
deleted file mode 100644
index 6464f151968..00000000000
--- a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/InclusionFilter.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * SonarQube, open source software quality management tool.
- * Copyright (C) 2008-2013 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.scan.filesystem;
-
-
-import org.sonar.api.batch.fs.InputFile;
-import org.sonar.api.batch.fs.InputFileFilter;
-import org.sonar.api.batch.fs.internal.PathPattern;
-
-class InclusionFilter implements InputFileFilter {
- private final PathPattern pattern;
-
- InclusionFilter(String s) {
- this.pattern = PathPattern.create(s);
- }
-
- @Override
- public boolean accept(InputFile inputFile) {
- return pattern.match(inputFile);
- }
-
- @Override
- public String toString() {
- return "Includes: " + pattern;
- }
-}
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/InputFileBuilder.java b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/InputFileBuilder.java
index 9f8f79f7dd7..142f2d1c252 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/InputFileBuilder.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/InputFileBuilder.java
@@ -73,19 +73,27 @@ class InputFileBuilder {
}
@CheckForNull
- DefaultInputFile create(File file, InputFile.Type type) {
+ DefaultInputFile create(File file) {
String relativePath = pathResolver.relativePath(fs.baseDir(), file);
if (relativePath == null) {
LoggerFactory.getLogger(getClass()).warn(
- "File '%s' is ignored. It is not in module basedir '%s'.", file.getAbsolutePath(), fs.baseDir());
+ "File '%s' is ignored. It is not located in module basedir '%s'.", file.getAbsolutePath(), fs.baseDir());
return null;
}
DefaultInputFile inputFile = new DefaultInputFile(relativePath);
+ inputFile.setBasedir(fs.baseDir());
+ inputFile.setFile(file);
+ return inputFile;
+ }
+
+ /**
+ * Optimization to not set all InputFile data if the file is excluded from analysis.
+ */
+ @CheckForNull
+ DefaultInputFile complete(DefaultInputFile inputFile, InputFile.Type type) {
inputFile.setType(type);
inputFile.setKey(new StringBuilder().append(moduleKey).append(":").append(inputFile.relativePath()).toString());
inputFile.setBasedir(fs.baseDir());
- inputFile.setAbsolutePath(file.getAbsolutePath());
- inputFile.setFile(file);
FileMetadata.Metadata metadata = FileMetadata.INSTANCE.read(inputFile.file(), fs.encoding());
inputFile.setLines(metadata.lines);
inputFile.setHash(metadata.hash);
diff --git a/sonar-batch/src/test/java/org/sonar/batch/index/MeasurePersisterTest.java b/sonar-batch/src/test/java/org/sonar/batch/index/MeasurePersisterTest.java
index 372a863bd88..7acfba1e423 100644
--- a/sonar-batch/src/test/java/org/sonar/batch/index/MeasurePersisterTest.java
+++ b/sonar-batch/src/test/java/org/sonar/batch/index/MeasurePersisterTest.java
@@ -55,15 +55,15 @@ public class MeasurePersisterTest extends AbstractDaoTestCase {
public static final int FILE_SNAPSHOT_ID = 3003;
public static final int COVERAGE_METRIC_ID = 2;
- private MeasurePersister measurePersister;
- private RuleFinder ruleFinder = mock(RuleFinder.class);
- private ResourcePersister resourcePersister = mock(ResourcePersister.class);
- private MemoryOptimizer memoryOptimizer = mock(MemoryOptimizer.class);
- private Project project = new Project("foo");
- private JavaPackage aPackage = new JavaPackage("org.foo");
- private JavaFile aFile = new JavaFile("org.foo.Bar");
- private Snapshot projectSnapshot = snapshot(PROJECT_SNAPSHOT_ID);
- private Snapshot packageSnapshot = snapshot(PACKAGE_SNAPSHOT_ID);
+ MeasurePersister measurePersister;
+ RuleFinder ruleFinder = mock(RuleFinder.class);
+ ResourcePersister resourcePersister = mock(ResourcePersister.class);
+ MemoryOptimizer memoryOptimizer = mock(MemoryOptimizer.class);
+ Project project = new Project("foo");
+ JavaPackage aPackage = new JavaPackage("org.foo");
+ JavaFile aFile = new JavaFile("org.foo.Bar");
+ Snapshot projectSnapshot = snapshot(PROJECT_SNAPSHOT_ID);
+ Snapshot packageSnapshot = snapshot(PACKAGE_SNAPSHOT_ID);
@Before
public void mockResourcePersister() {
diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/AdditionalFilePredicatesTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/AdditionalFilePredicatesTest.java
new file mode 100644
index 00000000000..20680042062
--- /dev/null
+++ b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/AdditionalFilePredicatesTest.java
@@ -0,0 +1,81 @@
+/*
+ * SonarQube, open source software quality management tool.
+ * Copyright (C) 2008-2013 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.scan.filesystem;
+
+import org.junit.Rule;
+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 java.io.File;
+
+import static org.fest.assertions.Assertions.assertThat;
+
+public class AdditionalFilePredicatesTest {
+
+ @Rule
+ public TemporaryFolder temp = new TemporaryFolder();
+
+ @Test
+ public void key() throws Exception {
+ FilePredicate predicate = new AdditionalFilePredicates.KeyPredicate("struts:Action.java");
+
+ DefaultInputFile inputFile = new DefaultInputFile("Action.java").setKey("struts:Action.java");
+ assertThat(predicate.apply(inputFile)).isTrue();
+
+ inputFile = new DefaultInputFile("Filter.java").setKey("struts:Filter.java");
+ assertThat(predicate.apply(inputFile)).isFalse();
+ }
+
+ @Test
+ public void deprecated_key() throws Exception {
+ FilePredicate predicate = new AdditionalFilePredicates.DeprecatedKeyPredicate("struts:Action.java");
+
+ DefaultInputFile inputFile = new DefaultInputFile("Action.java").setDeprecatedKey("struts:Action.java");
+ assertThat(predicate.apply(inputFile)).isTrue();
+
+ inputFile = new DefaultInputFile("Filter.java").setDeprecatedKey("struts:Filter.java");
+ assertThat(predicate.apply(inputFile)).isFalse();
+ }
+
+ @Test
+ public void absolute_path_of_source_dir() throws Exception {
+ File dir = temp.newFolder();
+ FilePredicate predicate = new AdditionalFilePredicates.SourceDirPredicate(dir.getAbsolutePath());
+
+ DefaultInputFile inputFile = new DefaultInputFile("Action.java").setSourceDirAbsolutePath(dir.getAbsolutePath());
+ assertThat(predicate.apply(inputFile)).isTrue();
+
+ inputFile = new DefaultInputFile("Filter.java").setSourceDirAbsolutePath(temp.newFolder().getAbsolutePath());
+ assertThat(predicate.apply(inputFile)).isFalse();
+ }
+
+ @Test
+ public void path_relative_to_source_dir() throws Exception {
+ FilePredicate predicate = new AdditionalFilePredicates.SourceRelativePathPredicate("foo/Bar.php");
+
+ DefaultInputFile inputFile = new DefaultInputFile("src/php/foo/Bar.php").setPathRelativeToSourceDir("foo/Bar.php");
+ assertThat(predicate.apply(inputFile)).isTrue();
+
+ inputFile = new DefaultInputFile("foo/Bar.php").setPathRelativeToSourceDir("Bar.php");
+ assertThat(predicate.apply(inputFile)).isFalse();
+ }
+}
diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/ExclusionFilterTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/ExclusionFilterTest.java
deleted file mode 100644
index c08dbe3b1c4..00000000000
--- a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/ExclusionFilterTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * SonarQube, open source software quality management tool.
- * Copyright (C) 2008-2013 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.scan.filesystem;
-
-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.DefaultInputFile;
-
-import java.io.File;
-
-import static org.fest.assertions.Assertions.assertThat;
-
-public class ExclusionFilterTest {
-
- @Rule
- public TemporaryFolder temp = new TemporaryFolder();
-
- @Test
- public void accept() throws Exception {
- ExclusionFilter sourceRelativeFilter = new ExclusionFilter("**/*Foo.java");
- ExclusionFilter absoluteFilter = new ExclusionFilter("file:**/src/main/**Foo.java");
-
- File file = new File(temp.newFolder(), "src/main/java/org/MyFoo.java");
- InputFile inputFile = new DefaultInputFile("src/main/java/org/MyFoo.java")
- .setFile(file)
- .setPathRelativeToSourceDir("org/MyFoo.java");
-
- assertThat(sourceRelativeFilter.accept(inputFile)).isFalse();
- assertThat(absoluteFilter.accept(inputFile)).isFalse();
-
- file = new File(temp.newFolder(), "src/main/java/org/Other.java");
- inputFile = new DefaultInputFile("src/main/java/org/Other.java")
- .setFile(file)
- .setPathRelativeToSourceDir("org/Other.java");
- assertThat(sourceRelativeFilter.accept(inputFile)).isTrue();
- assertThat(absoluteFilter.accept(inputFile)).isTrue();
- }
-
- @Test
- public void test_toString() {
- ExclusionFilter filter = new ExclusionFilter("**/*Foo.java");
- assertThat(filter.toString()).isEqualTo("Excludes: **/*Foo.java");
- }
-}
diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/ExclusionFiltersTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/ExclusionFiltersTest.java
index 6083f224a5c..4c0cd44c4cc 100644
--- a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/ExclusionFiltersTest.java
+++ b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/ExclusionFiltersTest.java
@@ -25,6 +25,7 @@ import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.sonar.api.CoreProperties;
import org.sonar.api.batch.fs.InputFile;
+import org.sonar.api.batch.fs.internal.DefaultInputFile;
import org.sonar.api.config.Settings;
import org.sonar.api.scan.filesystem.FileExclusions;
import org.sonar.api.scan.filesystem.ModuleFileSystem;
@@ -59,13 +60,17 @@ public class ExclusionFiltersTest {
filter.prepare(fs);
java.io.File file = temp.newFile();
+ DefaultInputFile inputFile = new DefaultInputFile("src/main/java/com/mycompany/FooDao.java").setFile(file);
+ assertThat(filter.accept(inputFile, InputFile.Type.MAIN)).isTrue();
- assertThat(filter.accept(file, "src/main/java/com/mycompany/Foo.java", InputFile.Type.MAIN)).isFalse();
+ // test are excluded by default if no sonar.tests nor sonar.test.inclusions
+ assertThat(filter.accept(inputFile, InputFile.Type.TEST)).isFalse();
- assertThat(filter.accept(file, "src/main/java/com/mycompany/FooDao.java", InputFile.Type.MAIN)).isTrue();
+ inputFile = new DefaultInputFile("src/main/java/com/mycompany/Foo.java").setFile(file);
+ assertThat(filter.accept(inputFile, InputFile.Type.MAIN)).isFalse();
// test are excluded by default if no sonar.tests nor sonar.test.inclusions
- assertThat(filter.accept(file, "src/main/java/com/mycompany/Foo.java", InputFile.Type.TEST)).isFalse();
+ assertThat(filter.accept(inputFile, InputFile.Type.TEST)).isFalse();
}
@Test
@@ -78,12 +83,15 @@ public class ExclusionFiltersTest {
java.io.File file = temp.newFile();
- assertThat(filter.accept(file, "src/main/java/com/mycompany/Foo.java", InputFile.Type.MAIN)).isTrue();
+ DefaultInputFile inputFile = new DefaultInputFile("src/main/java/com/mycompany/Foo.java").setFile(file);
+ assertThat(filter.accept(inputFile, InputFile.Type.MAIN)).isTrue();
- assertThat(filter.accept(file, "src/main/java2/com/mycompany/FooDao.java", InputFile.Type.MAIN)).isFalse();
+ inputFile = new DefaultInputFile("src/main/java2/com/mycompany/FooDao.java").setFile(file);
+ assertThat(filter.accept(inputFile, InputFile.Type.MAIN)).isFalse();
// source inclusions do not apply to tests
- assertThat(filter.accept(file, "src/main/java/com/mycompany/Foo.java", InputFile.Type.TEST)).isFalse();
+ inputFile = new DefaultInputFile("src/main/java/com/mycompany/FooDao.java").setFile(file);
+ assertThat(filter.accept(inputFile, InputFile.Type.TEST)).isFalse();
}
@Test
@@ -97,11 +105,12 @@ public class ExclusionFiltersTest {
java.io.File file = temp.newFile();
- assertThat(filter.accept(file, "src/main/java/com/mycompany/Foo.java", InputFile.Type.MAIN)).isTrue();
-
- assertThat(filter.accept(file, "src/main/java/com/mycompany/Foo.java", InputFile.Type.TEST)).isFalse();
+ DefaultInputFile inputFile = new DefaultInputFile("src/main/java/com/mycompany/Foo.java").setFile(file);
+ assertThat(filter.accept(inputFile, InputFile.Type.MAIN)).isTrue();
+ assertThat(filter.accept(inputFile, InputFile.Type.TEST)).isFalse();
- assertThat(filter.accept(file, "src/test/java/com/mycompany/Foo.java", InputFile.Type.TEST)).isTrue();
+ inputFile = new DefaultInputFile("src/test/java/com/mycompany/Foo.java").setFile(file);
+ assertThat(filter.accept(inputFile, InputFile.Type.TEST)).isTrue();
}
@Test
@@ -115,12 +124,15 @@ public class ExclusionFiltersTest {
java.io.File file = temp.newFile();
- assertThat(filter.accept(file, "src/main/java/com/mycompany/Foo.java", InputFile.Type.MAIN)).isFalse();
+ DefaultInputFile inputFile = new DefaultInputFile("src/main/java/com/mycompany/Foo.java").setFile(file);
+ assertThat(filter.accept(inputFile, InputFile.Type.MAIN)).isFalse();
- assertThat(filter.accept(file, "src/main/java2/com/mycompany/FooDao.java", InputFile.Type.MAIN)).isTrue();
+ inputFile = new DefaultInputFile("src/main/java2/com/mycompany/FooDao.java").setFile(file);
+ assertThat(filter.accept(inputFile, InputFile.Type.MAIN)).isTrue();
// source inclusions do not apply to tests
- assertThat(filter.accept(file, "src/main/java/com/mycompany/Foo.java", InputFile.Type.TEST)).isFalse();
+ inputFile = new DefaultInputFile("src/main/java/com/mycompany/Foo.java").setFile(file);
+ assertThat(filter.accept(inputFile, InputFile.Type.TEST)).isFalse();
}
@Test
@@ -134,11 +146,14 @@ public class ExclusionFiltersTest {
java.io.File file = temp.newFile();
// test inclusions do not apply to main code
- assertThat(filter.accept(file, "src/test/java/com/mycompany/Foo.java", InputFile.Type.MAIN)).isFalse();
+ DefaultInputFile inputFile = new DefaultInputFile("src/test/java/com/mycompany/Foo.java").setFile(file);
+ assertThat(filter.accept(inputFile, InputFile.Type.MAIN)).isFalse();
- assertThat(filter.accept(file, "src/test2/java/com/mycompany/FooTest.java", InputFile.Type.TEST)).isFalse();
+ inputFile = new DefaultInputFile("src/test2/java/com/mycompany/FooTest.java").setFile(file);
+ assertThat(filter.accept(inputFile, InputFile.Type.TEST)).isFalse();
- assertThat(filter.accept(file, "src/test/java/com/mycompany/Foo.java", InputFile.Type.TEST)).isTrue();
+ inputFile = new DefaultInputFile("src/test/java/com/mycompany/Foo.java").setFile(file);
+ assertThat(filter.accept(inputFile, InputFile.Type.TEST)).isTrue();
}
@Test
@@ -151,9 +166,11 @@ public class ExclusionFiltersTest {
java.io.File file = temp.newFile();
- assertThat(filter.accept(file, "src/main/java/com/mycompany/Foo.java", InputFile.Type.MAIN)).isFalse();
+ DefaultInputFile inputFile = new DefaultInputFile("src/main/java/com/mycompany/Foo.java").setFile(file);
+ assertThat(filter.accept(inputFile, InputFile.Type.MAIN)).isFalse();
- assertThat(filter.accept(file, "src/main/java/com/mycompany/FooDto.java", InputFile.Type.MAIN)).isTrue();
+ inputFile = new DefaultInputFile("src/main/java/com/mycompany/FooDto.java").setFile(file);
+ assertThat(filter.accept(inputFile, InputFile.Type.MAIN)).isTrue();
}
@Test
@@ -167,12 +184,15 @@ public class ExclusionFiltersTest {
filter.prepare(fs);
java.io.File file = temp.newFile();
- assertThat(filter.accept(file, "src/main/java/com/mycompany/FooDao.java", InputFile.Type.MAIN)).isFalse();
+ DefaultInputFile inputFile = new DefaultInputFile("src/main/java/com/mycompany/FooDao.java").setFile(file);
+ assertThat(filter.accept(inputFile, InputFile.Type.MAIN)).isFalse();
- assertThat(filter.accept(file, "src/main/java/com/mycompany/Foo.java", InputFile.Type.MAIN)).isTrue();
+ inputFile = new DefaultInputFile("src/main/java/com/mycompany/Foo.java").setFile(file);
+ assertThat(filter.accept(inputFile, InputFile.Type.MAIN)).isTrue();
// source exclusions do not apply to tests
- assertThat(filter.accept(file, "src/test/java/com/mycompany/FooDao.java", InputFile.Type.TEST)).isTrue();
+ inputFile = new DefaultInputFile("src/test/java/com/mycompany/FooDao.java").setFile(file);
+ assertThat(filter.accept(inputFile, InputFile.Type.TEST)).isTrue();
}
@Test
@@ -187,9 +207,11 @@ public class ExclusionFiltersTest {
filter.prepare(fs);
- assertThat(filter.accept(includedFile, "src/main/java/org/bar/Foo.java", InputFile.Type.MAIN)).isTrue();
+ DefaultInputFile inputFile = new DefaultInputFile("src/main/java/org/bar/Foo.java").setFile(includedFile);
+ assertThat(filter.accept(inputFile, InputFile.Type.MAIN)).isTrue();
- assertThat(filter.accept(excludedFile, "src/main/java/org/bar/Bar.java", InputFile.Type.MAIN)).isFalse();
+ inputFile = new DefaultInputFile("src/main/java/org/bar/Bar.java").setFile(excludedFile);
+ assertThat(filter.accept(inputFile, InputFile.Type.MAIN)).isFalse();
}
@Test
diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/FileSystemLoggerTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/FileSystemLoggerTest.java
deleted file mode 100644
index e1f852e3f09..00000000000
--- a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/FileSystemLoggerTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * SonarQube, open source software quality management tool.
- * Copyright (C) 2008-2013 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.scan.filesystem;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
-import org.slf4j.Logger;
-import org.sonar.api.config.Settings;
-
-import java.io.File;
-
-import static org.mockito.AdditionalMatchers.and;
-import static org.mockito.Matchers.contains;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-
-public class FileSystemLoggerTest {
- @Rule
- public TemporaryFolder temp = new TemporaryFolder();
-
- @Test
- public void log() {
-// DefaultModuleFileSystem fs = new DefaultModuleFileSystem("foo", mock(Settings.class), mock(InputFileCache.class), mock(FileIndex.class));
-// File src = temp.newFolder("src");
-// File test = temp.newFolder("test");
-// File base = temp.newFolder("base");
-// fs.setBaseDir(base);
-// fs.addSourceDir(src);
-// fs.addTestDir(test);
-//
-// Logger slf4j = mock(Logger.class);
-// new FileSystemLogger(fs).doLog(slf4j);
-//
-// verify(slf4j).info(and(contains("Base dir:"), contains(base.getAbsolutePath())));
-// verify(slf4j).info(and(contains("Source dirs:"), contains(src.getAbsolutePath())));
-// verify(slf4j).info(and(contains("Test dirs:"), contains(test.getAbsolutePath())));
- }
-}
diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InclusionFilterTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InclusionFilterTest.java
deleted file mode 100644
index 21afc18791c..00000000000
--- a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InclusionFilterTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * SonarQube, open source software quality management tool.
- * Copyright (C) 2008-2013 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.scan.filesystem;
-
-
-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.DefaultInputFile;
-
-import java.io.File;
-
-import static org.fest.assertions.Assertions.assertThat;
-
-public class InclusionFilterTest {
- @Rule
- public TemporaryFolder temp = new TemporaryFolder();
-
- @Test
- public void accept() throws Exception {
- InclusionFilter sourceRelativeFilter = new InclusionFilter("**/*Foo.java");
- InclusionFilter absoluteFilter = new InclusionFilter("file:**/src/main/**Foo.java");
-
- File file = new File(temp.newFolder(), "src/main/java/org/MyFoo.java");
- InputFile inputFile = new DefaultInputFile("src/main/java/org/MyFoo.java")
- .setFile(file)
- .setPathRelativeToSourceDir("org/MyFoo.java");
-
- assertThat(sourceRelativeFilter.accept(inputFile)).isTrue();
- assertThat(absoluteFilter.accept(inputFile)).isTrue();
-
- file = new File(temp.newFolder(), "src/main/java/org/Other.java");
- inputFile = new DefaultInputFile("src/main/java/org/Other.java")
- .setFile(file)
- .setPathRelativeToSourceDir("org/Other.java");
- assertThat(sourceRelativeFilter.accept(inputFile)).isFalse();
- assertThat(absoluteFilter.accept(inputFile)).isFalse();
- }
-
- @Test
- public void test_toString() {
- InclusionFilter filter = new InclusionFilter("**/*Foo.java");
- assertThat(filter.toString()).isEqualTo("Includes: **/*Foo.java");
- }
-}
diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputFileBuilderTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputFileBuilderTest.java
index fadd7426a0c..b4b0100ec02 100644
--- a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputFileBuilderTest.java
+++ b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputFileBuilderTest.java
@@ -49,7 +49,7 @@ public class InputFileBuilderTest {
AnalysisMode analysisMode = mock(AnalysisMode.class);
@Test
- public void create_input_file() throws Exception {
+ public void complete_input_file() throws Exception {
// file system
File basedir = temp.newFolder();
File srcFile = new File(basedir, "src/main/java/foo/Bar.java");
@@ -67,8 +67,10 @@ public class InputFileBuilderTest {
InputFileBuilder builder = new InputFileBuilder("struts", new PathResolver(),
langDetection, statusDetection, fs, analysisMode);
- DefaultInputFile inputFile = builder.create(srcFile, InputFile.Type.MAIN);
+ DefaultInputFile inputFile = builder.create(srcFile);
+ inputFile = builder.complete(inputFile, InputFile.Type.MAIN);
+ assertThat(inputFile.type()).isEqualTo(InputFile.Type.MAIN);
assertThat(inputFile.file()).isEqualTo(srcFile.getAbsoluteFile());
assertThat(inputFile.absolutePath()).isEqualTo(PathUtils.sanitize(srcFile.getAbsolutePath()));
assertThat(inputFile.language()).isEqualTo("java");
@@ -91,7 +93,7 @@ public class InputFileBuilderTest {
InputFileBuilder builder = new InputFileBuilder("struts", new PathResolver(),
langDetection, statusDetection, fs, analysisMode);
- DefaultInputFile inputFile = builder.create(srcFile, InputFile.Type.MAIN);
+ DefaultInputFile inputFile = builder.create(srcFile);
assertThat(inputFile).isNull();
}
@@ -111,7 +113,8 @@ public class InputFileBuilderTest {
InputFileBuilder builder = new InputFileBuilder("struts", new PathResolver(),
langDetection, statusDetection, fs, analysisMode);
- DefaultInputFile inputFile = builder.create(srcFile, InputFile.Type.MAIN);
+ DefaultInputFile inputFile = builder.create(srcFile);
+ inputFile = builder.complete(inputFile, InputFile.Type.MAIN);
assertThat(inputFile).isNull();
}
@@ -137,7 +140,8 @@ public class InputFileBuilderTest {
InputFileBuilder builder = new InputFileBuilder("struts", new PathResolver(),
langDetection, statusDetection, fs, analysisMode);
- DefaultInputFile inputFile = builder.create(srcFile, InputFile.Type.MAIN);
+ DefaultInputFile inputFile = builder.create(srcFile);
+ inputFile = builder.complete(inputFile, InputFile.Type.MAIN);
assertThat(inputFile.pathRelativeToSourceDir()).isEqualTo("foo/Bar.java");
assertThat(inputFile.sourceDirAbsolutePath()).isEqualTo(PathUtils.sanitize(sourceDir.getAbsolutePath()));
@@ -165,7 +169,8 @@ public class InputFileBuilderTest {
InputFileBuilder builder = new InputFileBuilder("struts", new PathResolver(),
langDetection, statusDetection, fs, analysisMode);
- DefaultInputFile inputFile = builder.create(srcFile, InputFile.Type.MAIN);
+ DefaultInputFile inputFile = builder.create(srcFile);
+ inputFile = builder.complete(inputFile, InputFile.Type.MAIN);
assertThat(inputFile.pathRelativeToSourceDir()).isEqualTo("foo/Bar.php");
assertThat(inputFile.sourceDirAbsolutePath()).isEqualTo(PathUtils.sanitize(sourceDir.getAbsolutePath()));
diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputFileCacheTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputFileCacheTest.java
index 3cfbb4bd64d..ae0b094f25d 100644
--- a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputFileCacheTest.java
+++ b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputFileCacheTest.java
@@ -26,10 +26,12 @@ import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.fs.internal.DefaultInputFile;
+import org.sonar.api.batch.fs.internal.RelativePathIndex;
import org.sonar.batch.index.Caches;
import org.sonar.batch.index.CachesTest;
import static org.fest.assertions.Assertions.assertThat;
+import static org.fest.assertions.Fail.fail;
public class InputFileCacheTest {
@@ -52,18 +54,47 @@ public class InputFileCacheTest {
@Test
public void should_add_input_file() throws Exception {
InputFileCache cache = new InputFileCache(caches);
- cache.put("struts", new DefaultInputFile("src/main/java/Foo.java").setFile(temp.newFile("Foo.java")));
+ DefaultInputFile fooFile = new DefaultInputFile("src/main/java/Foo.java").setFile(temp.newFile("Foo.java"));
+ cache.put("struts", fooFile);
cache.put("struts-core", new DefaultInputFile("src/main/java/Bar.java").setFile(temp.newFile("Bar.java")));
+ // index by relative path is automatically fed
+ assertThat(cache.get("struts", RelativePathIndex.ID, "src/main/java/Foo.java").relativePath())
+ .isEqualTo("src/main/java/Foo.java");
+
assertThat(cache.byModule("struts")).hasSize(1);
assertThat(cache.byModule("struts-core")).hasSize(1);
assertThat(cache.all()).hasSize(2);
for (InputFile inputFile : cache.all()) {
assertThat(inputFile.relativePath()).startsWith("src/main/java/");
}
+
+ cache.remove("struts", fooFile);
+ assertThat(cache.all()).hasSize(1);
+
cache.removeModule("struts");
assertThat(cache.byModule("struts")).hasSize(0);
assertThat(cache.byModule("struts-core")).hasSize(1);
assertThat(cache.all()).hasSize(1);
}
+
+ @Test
+ public void only_relative_path_index_is_supported() throws Exception {
+ InputFileCache cache = new InputFileCache(caches);
+ DefaultInputFile input = new DefaultInputFile("src/main/java/Foo.java").setFile(temp.newFile("Foo.java"));
+
+ try {
+ cache.index("struts", "unsupported-index", "index-value", input);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ assertThat(e).hasMessage("Only relative path index is supported yet");
+ }
+
+ try {
+ cache.get("struts", "unsupported-index", "index-value");
+ fail();
+ } catch (UnsupportedOperationException e) {
+ assertThat(e).hasMessage("Only relative path index is supported yet");
+ }
+ }
}
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/PathPattern.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/PathPattern.java
index 6b34b4b1d3b..c56f951126e 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/PathPattern.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/fs/internal/PathPattern.java
@@ -22,11 +22,8 @@ package org.sonar.api.batch.fs.internal;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang.StringUtils;
import org.sonar.api.batch.fs.InputFile;
-import org.sonar.api.utils.PathUtils;
import org.sonar.api.utils.WildcardPattern;
-import java.io.File;
-
public abstract class PathPattern {
final WildcardPattern pattern;
@@ -37,8 +34,6 @@ public abstract class PathPattern {
public abstract boolean match(InputFile inputFile);
- public abstract boolean match(File ioFile, String relativePathFromBasedir);
-
public abstract boolean match(InputFile inputFile, boolean caseSensitiveFileExtension);
public static PathPattern create(String s) {
@@ -63,12 +58,6 @@ public abstract class PathPattern {
}
@Override
- public boolean match(File ioFile, String relativePathFromBasedir) {
- String path = PathUtils.sanitize(ioFile.getAbsolutePath());
- return pattern.match(path);
- }
-
- @Override
public boolean match(InputFile inputFile) {
return match(inputFile, true);
}
@@ -101,11 +90,6 @@ public abstract class PathPattern {
}
@Override
- public boolean match(File ioFile, String relativePathFromBasedir) {
- return relativePathFromBasedir != null && pattern.match(relativePathFromBasedir);
- }
-
- @Override
public boolean match(InputFile inputFile) {
return match(inputFile, true);
}