aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2014-02-10 15:12:30 +0100
committerJulien HENRY <julien.henry@sonarsource.com>2014-02-10 15:14:39 +0100
commitbdee87ee4aa439e188604afd46d5c5b374599dbe (patch)
treec6ea2b0a81b2c887a24774a5387ae3f01cdd64b3
parent2fa3b42b98da171188aa8c2ff8b6a4ea882b031f (diff)
downloadsonarqube-bdee87ee4aa439e188604afd46d5c5b374599dbe.tar.gz
sonarqube-bdee87ee4aa439e188604afd46d5c5b374599dbe.zip
SONAR-926 * Deprecated FileSystemFilter in favor of InputFileFilter
* Return a fake language for Project::getLanguage to avoid some NPE in plugins * Try to remove use of deprecated InputFile attributes
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/DefaultFileLinesContextFactory.java13
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/DefaultSensorContext.java14
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/index/DefaultResourcePersister.java17
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/phases/ProjectInitializer.java2
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/AttributeFilter.java4
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ComponentIndexer.java9
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DeprecatedFileFilters.java4
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ExclusionFilter.java4
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FileIndex.java2
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FileQueryFilter.java4
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/InclusionFilter.java4
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/FileQueryFilterTest.java4
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/resources/File.java3
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/resources/Project.java13
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/FileSystemFilter.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/InputFileFilter.java (renamed from sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/internal/InputFileFilter.java)9
16 files changed, 54 insertions, 54 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/DefaultFileLinesContextFactory.java b/sonar-batch/src/main/java/org/sonar/batch/DefaultFileLinesContextFactory.java
index 438c698abda..5d3b49e8e9f 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/DefaultFileLinesContextFactory.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/DefaultFileLinesContextFactory.java
@@ -23,11 +23,8 @@ import org.sonar.api.batch.SonarIndex;
import org.sonar.api.measures.FileLinesContext;
import org.sonar.api.measures.FileLinesContextFactory;
import org.sonar.api.resources.File;
-import org.sonar.api.resources.Java;
-import org.sonar.api.resources.JavaFile;
import org.sonar.api.resources.Resource;
import org.sonar.api.scan.filesystem.InputFile;
-import org.sonar.api.scan.filesystem.internal.DefaultInputFile;
public class DefaultFileLinesContextFactory implements FileLinesContextFactory {
@@ -46,15 +43,7 @@ public class DefaultFileLinesContextFactory implements FileLinesContextFactory {
@Override
public FileLinesContext createFor(InputFile inputFile) {
- // FIXME remove that once DefaultFileLinesContext accept an InputFile
- String languageKey = inputFile.attribute(InputFile.ATTRIBUTE_LANGUAGE);
- boolean unitTest = InputFile.TYPE_TEST.equals(inputFile.attribute(InputFile.ATTRIBUTE_TYPE));
- Resource sonarFile;
- if (Java.KEY.equals(languageKey)) {
- sonarFile = JavaFile.create(inputFile.path(), inputFile.attribute(DefaultInputFile.ATTRIBUTE_SOURCE_RELATIVE_PATH), unitTest);
- } else {
- sonarFile = File.create(inputFile.path(), inputFile.attribute(DefaultInputFile.ATTRIBUTE_SOURCE_RELATIVE_PATH), null, unitTest);
- }
+ File sonarFile = File.create(inputFile.path());
// Reload resource from index
sonarFile = index.getResource(sonarFile);
return new DefaultFileLinesContext(index, sonarFile);
diff --git a/sonar-batch/src/main/java/org/sonar/batch/DefaultSensorContext.java b/sonar-batch/src/main/java/org/sonar/batch/DefaultSensorContext.java
index be1cedaaf91..26640dba5a3 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/DefaultSensorContext.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/DefaultSensorContext.java
@@ -19,9 +19,6 @@
*/
package org.sonar.batch;
-import org.sonar.api.scan.filesystem.internal.DefaultInputFile;
-
-import org.sonar.api.scan.filesystem.InputFile;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -33,14 +30,13 @@ import org.sonar.api.measures.Measure;
import org.sonar.api.measures.MeasuresFilter;
import org.sonar.api.measures.Metric;
import org.sonar.api.resources.File;
-import org.sonar.api.resources.Java;
-import org.sonar.api.resources.JavaFile;
import org.sonar.api.resources.Languages;
import org.sonar.api.resources.Project;
import org.sonar.api.resources.ProjectLink;
import org.sonar.api.resources.Resource;
import org.sonar.api.resources.Scopes;
import org.sonar.api.rules.Violation;
+import org.sonar.api.scan.filesystem.InputFile;
import org.sonar.api.utils.SonarException;
import org.sonar.core.measure.MeasurementFilters;
@@ -259,12 +255,6 @@ public class DefaultSensorContext implements SensorContext {
}
private Resource fromInputFile(InputFile inputFile) {
- String languageKey = inputFile.attribute(InputFile.ATTRIBUTE_LANGUAGE);
- boolean unitTest = InputFile.TYPE_TEST.equals(inputFile.attribute(InputFile.ATTRIBUTE_TYPE));
- if (Java.KEY.equals(languageKey)) {
- return JavaFile.create(inputFile.path(), inputFile.attribute(DefaultInputFile.ATTRIBUTE_SOURCE_RELATIVE_PATH), unitTest);
- } else {
- return File.create(inputFile.path(), inputFile.attribute(DefaultInputFile.ATTRIBUTE_SOURCE_RELATIVE_PATH), languages.get(languageKey), unitTest);
- }
+ return File.create(inputFile.path());
}
}
diff --git a/sonar-batch/src/main/java/org/sonar/batch/index/DefaultResourcePersister.java b/sonar-batch/src/main/java/org/sonar/batch/index/DefaultResourcePersister.java
index 61315db2d63..3397d3a05d8 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/index/DefaultResourcePersister.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/index/DefaultResourcePersister.java
@@ -25,9 +25,14 @@ import org.apache.commons.lang.StringUtils;
import org.sonar.api.database.DatabaseSession;
import org.sonar.api.database.model.ResourceModel;
import org.sonar.api.database.model.Snapshot;
-import org.sonar.api.resources.*;
+import org.sonar.api.resources.File;
+import org.sonar.api.resources.Library;
+import org.sonar.api.resources.Project;
+import org.sonar.api.resources.Qualifiers;
+import org.sonar.api.resources.Resource;
+import org.sonar.api.resources.ResourceUtils;
+import org.sonar.api.resources.Scopes;
import org.sonar.api.scan.filesystem.InputFile;
-import org.sonar.api.scan.filesystem.internal.DefaultInputFile;
import org.sonar.api.security.ResourcePermissions;
import org.sonar.api.utils.SonarException;
@@ -135,13 +140,7 @@ public final class DefaultResourcePersister implements ResourcePersister {
}
private Resource fromInputFile(InputFile inputFile) {
- String languageKey = inputFile.attribute(InputFile.ATTRIBUTE_LANGUAGE);
- boolean unitTest = InputFile.TYPE_TEST.equals(inputFile.attribute(InputFile.ATTRIBUTE_TYPE));
- if (Java.KEY.equals(languageKey)) {
- return JavaFile.create(inputFile.path(), inputFile.attribute(DefaultInputFile.ATTRIBUTE_SOURCE_RELATIVE_PATH), unitTest);
- } else {
- return File.create(inputFile.path(), inputFile.attribute(DefaultInputFile.ATTRIBUTE_SOURCE_RELATIVE_PATH), null, unitTest);
- }
+ return File.create(inputFile.path());
}
/**
diff --git a/sonar-batch/src/main/java/org/sonar/batch/phases/ProjectInitializer.java b/sonar-batch/src/main/java/org/sonar/batch/phases/ProjectInitializer.java
index e4d76a7c899..5cca74cdd03 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/phases/ProjectInitializer.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/phases/ProjectInitializer.java
@@ -54,6 +54,8 @@ public class ProjectInitializer implements BatchComponent {
throw new SonarException("Language with key '" + languageKey + "' not found");
}
project.setLanguage(language);
+ } else {
+ project.setLanguage(Project.NONE_LANGUAGE);
}
}
}
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/AttributeFilter.java b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/AttributeFilter.java
index 1276c11168a..1e5e37cae09 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/AttributeFilter.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/AttributeFilter.java
@@ -19,10 +19,10 @@
*/
package org.sonar.batch.scan.filesystem;
-import org.sonar.api.scan.filesystem.InputFile;
+import org.sonar.api.scan.filesystem.InputFileFilter;
+import org.sonar.api.scan.filesystem.InputFile;
import com.google.common.annotations.VisibleForTesting;
-import org.sonar.api.scan.filesystem.internal.InputFileFilter;
import java.util.Collection;
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ComponentIndexer.java b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ComponentIndexer.java
index 380f7ca026b..a0671818921 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ComponentIndexer.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/ComponentIndexer.java
@@ -27,7 +27,12 @@ import org.sonar.api.BatchComponent;
import org.sonar.api.CoreProperties;
import org.sonar.api.batch.SonarIndex;
import org.sonar.api.config.Settings;
-import org.sonar.api.resources.*;
+import org.sonar.api.resources.File;
+import org.sonar.api.resources.Java;
+import org.sonar.api.resources.JavaFile;
+import org.sonar.api.resources.Languages;
+import org.sonar.api.resources.Project;
+import org.sonar.api.resources.Resource;
import org.sonar.api.scan.filesystem.FileQuery;
import org.sonar.api.scan.filesystem.InputFile;
import org.sonar.api.scan.filesystem.internal.DefaultInputFile;
@@ -120,7 +125,7 @@ public class ComponentIndexer implements BatchComponent {
} else if (moduleLanguages.keys().size() > 1) {
dto.setLanguage(StringUtils.join(moduleLanguages.keys(), ","));
} else {
- dto.setLanguage("none");
+ dto.setLanguage(Project.NONE_LANGUAGE.getKey());
}
resourceDao.insertOrUpdate(dto);
}
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DeprecatedFileFilters.java b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DeprecatedFileFilters.java
index 5ce26537016..146d309268e 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DeprecatedFileFilters.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DeprecatedFileFilters.java
@@ -19,10 +19,10 @@
*/
package org.sonar.batch.scan.filesystem;
-import org.sonar.api.scan.filesystem.internal.DefaultInputFile;
+import org.sonar.api.scan.filesystem.InputFileFilter;
+import org.sonar.api.scan.filesystem.internal.DefaultInputFile;
import org.sonar.api.scan.filesystem.*;
-import org.sonar.api.scan.filesystem.internal.InputFileFilter;
import java.io.File;
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
index 8ce2feff037..27ec3f53f7b 100644
--- 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
@@ -19,9 +19,9 @@
*/
package org.sonar.batch.scan.filesystem;
-import org.sonar.api.scan.filesystem.InputFile;
+import org.sonar.api.scan.filesystem.InputFileFilter;
-import org.sonar.api.scan.filesystem.internal.InputFileFilter;
+import org.sonar.api.scan.filesystem.InputFile;
class ExclusionFilter implements InputFileFilter {
private final PathPattern pattern;
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FileIndex.java b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FileIndex.java
index 1a0f0a9d08b..a6af93b1247 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FileIndex.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FileIndex.java
@@ -33,11 +33,11 @@ import org.sonar.api.resources.JavaFile;
import org.sonar.api.resources.Project;
import org.sonar.api.scan.filesystem.InputDir;
import org.sonar.api.scan.filesystem.InputFile;
+import org.sonar.api.scan.filesystem.InputFileFilter;
import org.sonar.api.scan.filesystem.ModuleFileSystem;
import org.sonar.api.scan.filesystem.PathResolver;
import org.sonar.api.scan.filesystem.internal.DefaultInputDir;
import org.sonar.api.scan.filesystem.internal.DefaultInputFile;
-import org.sonar.api.scan.filesystem.internal.InputFileFilter;
import org.sonar.api.utils.PathUtils;
import org.sonar.api.utils.SonarException;
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FileQueryFilter.java b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FileQueryFilter.java
index 38affb34c3e..e7e5a07396c 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FileQueryFilter.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FileQueryFilter.java
@@ -19,12 +19,12 @@
*/
package org.sonar.batch.scan.filesystem;
-import org.sonar.api.scan.filesystem.InputFile;
+import org.sonar.api.scan.filesystem.InputFileFilter;
+import org.sonar.api.scan.filesystem.InputFile;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.Lists;
import org.sonar.api.scan.filesystem.FileQuery;
-import org.sonar.api.scan.filesystem.internal.InputFileFilter;
import org.sonar.batch.bootstrap.AnalysisMode;
import java.util.Collection;
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
index c9fe825027c..38b56313cc4 100644
--- 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
@@ -19,9 +19,9 @@
*/
package org.sonar.batch.scan.filesystem;
-import org.sonar.api.scan.filesystem.InputFile;
+import org.sonar.api.scan.filesystem.InputFileFilter;
-import org.sonar.api.scan.filesystem.internal.InputFileFilter;
+import org.sonar.api.scan.filesystem.InputFile;
class InclusionFilter implements InputFileFilter {
private final PathPattern pattern;
diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/FileQueryFilterTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/FileQueryFilterTest.java
index 791ec2f251b..443f7061f44 100644
--- a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/FileQueryFilterTest.java
+++ b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/FileQueryFilterTest.java
@@ -19,12 +19,12 @@
*/
package org.sonar.batch.scan.filesystem;
-import org.sonar.api.scan.filesystem.InputFile;
+import org.sonar.api.scan.filesystem.InputFileFilter;
+import org.sonar.api.scan.filesystem.InputFile;
import org.junit.Before;
import org.junit.Test;
import org.sonar.api.scan.filesystem.FileQuery;
-import org.sonar.api.scan.filesystem.internal.InputFileFilter;
import org.sonar.batch.bootstrap.AnalysisMode;
import static org.fest.assertions.Assertions.assertThat;
import static org.mockito.Mockito.mock;
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/resources/File.java b/sonar-plugin-api/src/main/java/org/sonar/api/resources/File.java
index 57c4f585c2c..f7445188f6c 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/resources/File.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/resources/File.java
@@ -243,8 +243,9 @@ public class File extends Resource {
* Create a File that is partially initialized. But that's enough to call for example
* {@link SensorContext#saveMeasure(Resource, org.sonar.api.measures.Measure)} when resources are already indexed.
* Internal use only.
+ * @since 4.2
*/
- private static File create(String relativePathFromBasedir) {
+ public static File create(String relativePathFromBasedir) {
File file = new File();
String normalizedPath = normalize(relativePathFromBasedir);
file.setKey(normalizedPath);
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/resources/Project.java b/sonar-plugin-api/src/main/java/org/sonar/api/resources/Project.java
index e6287d1cf02..a4aaf28b342 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/resources/Project.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/resources/Project.java
@@ -40,6 +40,16 @@ import java.util.List;
*/
public class Project extends Resource implements Component {
+ /**
+ * Internal use
+ */
+ public static final Language NONE_LANGUAGE = new AbstractLanguage("none", "None") {
+ @Override
+ public String[] getFileSuffixes() {
+ return null;
+ }
+ };
+
private static final String MAVEN_KEY_FORMAT = "%s:%s";
private static final String BRANCH_KEY_FORMAT = "%s:%s";
@@ -239,6 +249,9 @@ public class Project extends Resource implements Component {
return language;
}
+ /**
+ * Internal use
+ */
public Project setLanguage(Language language) {
this.language = language;
return this;
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/FileSystemFilter.java b/sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/FileSystemFilter.java
index 599b7db8595..2eacaf99bb4 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/FileSystemFilter.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/FileSystemFilter.java
@@ -31,7 +31,9 @@ import java.io.File;
* </ul>
*
* @since 3.5
+ * @deprecated since 4.2 use {@link InputFileFilter}
*/
+@Deprecated
public interface FileSystemFilter extends BatchExtension {
/**
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/internal/InputFileFilter.java b/sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/InputFileFilter.java
index d9c9adc8374..7c58519f9e9 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/internal/InputFileFilter.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/scan/filesystem/InputFileFilter.java
@@ -17,16 +17,15 @@
* 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.scan.filesystem.internal;
-
-import org.sonar.api.scan.filesystem.InputFile;
+package org.sonar.api.scan.filesystem;
import org.sonar.api.BatchExtension;
/**
- * TODO document lifecycle -> executed when initializing project
+ * Implement this extension to limit the set of files to be analyzed. Global file inclusion/exclusion patterns
+ * are already applied.
*
- * @since 4.0
+ * @since 4.2
*/
public interface InputFileFilter extends BatchExtension {