diff options
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 { |