diff options
author | Julien HENRY <julien.henry@sonarsource.com> | 2014-02-12 11:33:13 +0100 |
---|---|---|
committer | Julien HENRY <julien.henry@sonarsource.com> | 2014-02-12 11:34:46 +0100 |
commit | 9cc87b7ac82818ae37dab4bbf8f296ff388b6d74 (patch) | |
tree | 051a5cf1a043f93104dc6b7651e80d111b5ba1df /sonar-batch | |
parent | 039316de80b7e71a349f4ed8f6b2730aa01c457e (diff) | |
download | sonarqube-9cc87b7ac82818ae37dab4bbf8f296ff388b6d74.tar.gz sonarqube-9cc87b7ac82818ae37dab4bbf8f296ff388b6d74.zip |
SONAR-926 Move JavaFile/JavaPackage to sonar deprecated and remove all usages of them
Diffstat (limited to 'sonar-batch')
6 files changed, 19 insertions, 71 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchExtensionDictionnary.java b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchExtensionDictionnary.java index 3779471971c..6e246f19f0f 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchExtensionDictionnary.java +++ b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchExtensionDictionnary.java @@ -23,7 +23,6 @@ import com.google.common.collect.Lists; import org.apache.commons.lang.ClassUtils; import org.sonar.api.BatchExtension; import org.sonar.api.batch.CheckProject; -import org.sonar.api.batch.Sensor; import org.sonar.api.platform.ComponentContainer; import org.sonar.api.resources.Project; @@ -59,9 +58,7 @@ public class BatchExtensionDictionnary extends org.sonar.api.batch.BatchExtensio private boolean shouldKeep(Class type, Object extension, Project project, ExtensionMatcher matcher) { boolean keep = ClassUtils.isAssignable(extension.getClass(), type) && (matcher == null || matcher.accept(extension)); - // For Sensors we no longer filter on shouldExecuteOnProject - if (keep && project != null && ClassUtils.isAssignable(extension.getClass(), CheckProject.class) - && !ClassUtils.isAssignable(extension.getClass(), Sensor.class)) { + if (keep && project != null && ClassUtils.isAssignable(extension.getClass(), CheckProject.class)) { keep = ((CheckProject) extension).shouldExecuteOnProject(project); } return keep; diff --git a/sonar-batch/src/main/java/org/sonar/batch/phases/SensorsExecutor.java b/sonar-batch/src/main/java/org/sonar/batch/phases/SensorsExecutor.java index 249a492a19a..1fb8949841e 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/phases/SensorsExecutor.java +++ b/sonar-batch/src/main/java/org/sonar/batch/phases/SensorsExecutor.java @@ -23,19 +23,16 @@ import com.google.common.collect.Lists; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sonar.api.BatchComponent; -import org.sonar.api.CoreProperties; import org.sonar.api.batch.Sensor; import org.sonar.api.batch.SensorContext; import org.sonar.api.batch.maven.DependsUponMavenPlugin; import org.sonar.api.batch.maven.MavenPluginHandler; import org.sonar.api.database.DatabaseSession; -import org.sonar.api.resources.Language; import org.sonar.api.resources.Project; import org.sonar.api.utils.TimeProfiler; import org.sonar.batch.bootstrap.BatchExtensionDictionnary; import org.sonar.batch.events.EventBus; import org.sonar.batch.scan.filesystem.DefaultModuleFileSystem; -import org.sonar.batch.scan.language.DefaultModuleLanguages; import org.sonar.batch.scan.maven.MavenPluginExecutor; import java.util.Collection; @@ -50,10 +47,9 @@ public class SensorsExecutor implements BatchComponent { private BatchExtensionDictionnary selector; private final DatabaseSession session; private final SensorMatcher sensorMatcher; - private final DefaultModuleLanguages moduleLanguages; public SensorsExecutor(BatchExtensionDictionnary selector, Project project, DefaultModuleFileSystem fs, MavenPluginExecutor mavenExecutor, EventBus eventBus, - DatabaseSession session, SensorMatcher sensorMatcher, DefaultModuleLanguages moduleLanguages) { + DatabaseSession session, SensorMatcher sensorMatcher) { this.selector = selector; this.mavenExecutor = mavenExecutor; this.eventBus = eventBus; @@ -61,7 +57,6 @@ public class SensorsExecutor implements BatchComponent { this.fs = fs; this.session = session; this.sensorMatcher = sensorMatcher; - this.moduleLanguages = moduleLanguages; } public void execute(SensorContext context) { @@ -72,25 +67,7 @@ public class SensorsExecutor implements BatchComponent { // SONAR-2965 In case the sensor takes too much time we close the session to not face a timeout session.commitAndClose(); - if (sensor.shouldExecuteOnProject(module)) { - executeSensor(context, sensor); - } else { - // For backward compatibility try to execute Sensor for each language until it is executed once (or never) - String oldLanguageKey = module.getLanguageKey(); - Language oldLanguage = module.getLanguage(); - for (Language language : moduleLanguages.languages()) { - module.setLanguage(language); - module.getConfiguration().setProperty(CoreProperties.PROJECT_LANGUAGE_PROPERTY, language.getKey()); - if (sensor.shouldExecuteOnProject(module)) { - LOG.warn("Sensor {} should be updated to not depends on deprecated Project::getLanguage or Project::getLanguageKey", sensor); - executeSensor(context, sensor); - break; - } - } - // Restore module language - module.setLanguage(oldLanguage); - module.getConfiguration().setProperty(CoreProperties.PROJECT_LANGUAGE_PROPERTY, oldLanguageKey); - } + executeSensor(context, sensor); } eventBus.fireEvent(new SensorsPhaseEvent(Lists.newArrayList(sensors), false)); 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 8070a0a0574..bf8696b057e 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,8 +27,6 @@ import org.sonar.api.CoreProperties; import org.sonar.api.batch.SonarIndex; import org.sonar.api.config.Settings; 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; @@ -74,15 +72,14 @@ public class ComponentIndexer implements BatchComponent { for (InputFile inputFile : inputFiles) { String languageKey = inputFile.attribute(InputFile.ATTRIBUTE_LANGUAGE); boolean unitTest = InputFile.TYPE_TEST.equals(inputFile.attribute(InputFile.ATTRIBUTE_TYPE)); - Resource sonarFile; String pathFromSourceDir = inputFile.attribute(DefaultInputFile.ATTRIBUTE_SOURCE_RELATIVE_PATH); if (pathFromSourceDir == null) { pathFromSourceDir = inputFile.path(); } - if (Java.KEY.equals(languageKey)) { - sonarFile = JavaFile.create(inputFile.path(), pathFromSourceDir, unitTest); - } else { - sonarFile = File.create(inputFile.path(), pathFromSourceDir, languages.get(languageKey), unitTest); + Resource sonarFile = File.create(inputFile.path(), pathFromSourceDir, languages.get(languageKey), unitTest); + String deprecatedKey = inputFile.attribute(DefaultInputFile.ATTRIBUTE_COMPONENT_DEPRECATED_KEY); + if (deprecatedKey != null) { + sonarFile.setDeprecatedKey(deprecatedKey); } if (sonarFile != null) { moduleLanguages.addLanguage(languageKey); 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 f4e10352caf..d27c313175b 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 @@ -29,7 +29,6 @@ import org.sonar.api.CoreProperties; import org.sonar.api.config.Settings; import org.sonar.api.resources.Project; import org.sonar.api.scan.filesystem.FileQuery; -import org.sonar.api.scan.filesystem.InputDir; import org.sonar.api.scan.filesystem.InputFile; import org.sonar.api.scan.filesystem.ModuleFileSystem; import org.sonar.api.scan.filesystem.internal.InputFiles; @@ -191,14 +190,6 @@ public class DefaultModuleFileSystem implements ModuleFileSystem { } @Override - public InputDir inputDir(File ioFile) { - if (!ioFile.isDirectory()) { - throw new SonarException(ioFile.getAbsolutePath() + "is not a directory"); - } - return index.inputDir(this, ioFile); - } - - @Override public List<File> files(FileQuery query) { return InputFiles.toFiles(inputFiles(query)); } 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 4c037133b8f..226f84a198d 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 @@ -20,7 +20,6 @@ package org.sonar.batch.scan.filesystem; import org.apache.commons.io.FileUtils; -import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.filefilter.FileFilterUtils; import org.apache.commons.io.filefilter.HiddenFileFilter; import org.apache.commons.io.filefilter.IOFileFilter; @@ -28,12 +27,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sonar.api.BatchComponent; 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.PathResolver; -import org.sonar.api.scan.filesystem.internal.DefaultInputDir; import org.sonar.api.scan.filesystem.InputFileFilter; -import org.sonar.api.utils.PathUtils; +import org.sonar.api.scan.filesystem.PathResolver; import org.sonar.api.utils.SonarException; import java.io.File; @@ -81,7 +77,7 @@ public class FileIndex implements BatchComponent { private final InputFileBuilderFactory inputFileBuilderFactory; public FileIndex(List<InputFileFilter> filters, ExclusionFilters exclusionFilters, InputFileBuilderFactory inputFileBuilderFactory, - InputFileCache cache, PathResolver pathResolver, Project project) { + InputFileCache cache, PathResolver pathResolver, Project project) { this.filters = filters; this.exclusionFilters = exclusionFilters; this.inputFileBuilderFactory = inputFileBuilderFactory; @@ -127,7 +123,7 @@ public class FileIndex implements BatchComponent { if (path == null) { LoggerFactory.getLogger(getClass()).warn(String.format( "File '%s' is not declared in module basedir %s", sourceFile.getAbsoluteFile(), fileSystem.baseDir() - )); + )); } else { if (exclusionFilters.accept(sourceFile, path, type)) { indexFile(inputFileBuilder, fileSystem, progress, sourceFile, path, type); @@ -145,14 +141,6 @@ public class FileIndex implements BatchComponent { return fileCache.byPath(fileSystem.moduleKey(), path); } - InputDir inputDir(DefaultModuleFileSystem fileSystem, File ioFile) { - String path = computeFilePath(fileSystem, ioFile); - DefaultInputDir inputDir = new DefaultInputDir(FilenameUtils.normalize(ioFile.getAbsolutePath(), true), path); - String resourceKey = PathUtils.sanitize(path); - inputDir.setKey(module.getEffectiveKey() + ":" + resourceKey); - return inputDir; - } - 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) { @@ -160,7 +148,7 @@ public class FileIndex implements BatchComponent { if (path == null) { LoggerFactory.getLogger(getClass()).warn(String.format( "File '%s' is not declared in module basedir %s", sourceFile.getAbsoluteFile(), fileSystem.baseDir() - )); + )); } else { if (exclusionFilters.accept(sourceFile, path, InputFile.TYPE_MAIN)) { indexFile(inputFileBuilder, fileSystem, status, sourceFile, path, InputFile.TYPE_MAIN); @@ -184,7 +172,6 @@ public class FileIndex implements BatchComponent { return pathResolver.relativePath(fileSystem.baseDir(), file); } - private boolean accept(InputFile inputFile) { // InputFileFilter extensions for (InputFileFilter filter : filters) { diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/ComponentIndexerTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/ComponentIndexerTest.java index 919b3b3e74e..5ca14958749 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/ComponentIndexerTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/ComponentIndexerTest.java @@ -33,7 +33,6 @@ import org.sonar.api.batch.SonarIndex; import org.sonar.api.config.Settings; import org.sonar.api.resources.AbstractLanguage; 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.Qualifiers; @@ -101,13 +100,13 @@ public class ComponentIndexerTest { mock(ResourceDao.class), mock(InputFileCache.class)); indexer.execute(fs); - verify(sonarIndex).index(JavaFile.create("src/main/java/foo/bar/Foo.java", "foo/bar/Foo.java", false)); - verify(sonarIndex).index(JavaFile.create("src/main/java2/foo/bar/Foo.java", "foo/bar/Foo.java", false)); - verify(sonarIndex).index(argThat(new ArgumentMatcher<JavaFile>() { + verify(sonarIndex).index(org.sonar.api.resources.File.create("src/main/java/foo/bar/Foo.java", "foo/bar/Foo.java", Java.INSTANCE, false)); + verify(sonarIndex).index(org.sonar.api.resources.File.create("src/main/java2/foo/bar/Foo.java", "foo/bar/Foo.java", Java.INSTANCE, false)); + verify(sonarIndex).index(argThat(new ArgumentMatcher<org.sonar.api.resources.File>() { @Override public boolean matches(Object arg0) { - JavaFile javaFile = (JavaFile) arg0; - return javaFile.getKey().equals("src/test/java/foo/bar/FooTest.java") && javaFile.getDeprecatedKey().equals("foo.bar.FooTest") + org.sonar.api.resources.File javaFile = (org.sonar.api.resources.File) arg0; + return javaFile.getKey().equals("src/test/java/foo/bar/FooTest.java") && javaFile.getPath().equals("src/test/java/foo/bar/FooTest.java") && javaFile.getQualifier().equals(Qualifiers.UNIT_TEST_FILE); } @@ -142,7 +141,7 @@ public class ComponentIndexerTest { mock(ResourceDao.class), mock(InputFileCache.class)); indexer.execute(fs); - Resource sonarFile = JavaFile.create("src/main/java/foo/bar/Foo.java", "foo/bar/Foo.java", false); + Resource sonarFile = org.sonar.api.resources.File.create("src/main/java/foo/bar/Foo.java", "foo/bar/Foo.java", Java.INSTANCE, false); verify(sonarIndex).index(sonarFile); verify(sonarIndex).setSource(sonarFile, "sample code"); } @@ -184,7 +183,7 @@ public class ComponentIndexerTest { mock(ResourceDao.class), mock(InputFileCache.class)); indexer.execute(fs); - Resource sonarFile = JavaFile.create("src/main/java/foo/bar/Foo.java", "foo/bar/Foo.java", false); + Resource sonarFile = org.sonar.api.resources.File.create("src/main/java/foo/bar/Foo.java", "foo/bar/Foo.java", Java.INSTANCE, false); verify(sonarIndex).setSource(eq(sonarFile), argThat(new ArgumentMatcher<String>() { @Override @@ -212,7 +211,7 @@ public class ComponentIndexerTest { mock(ResourceDao.class), mock(InputFileCache.class)); indexer.execute(fs); - Resource sonarFile = JavaFile.create("/src/main/java/foo/bar/Foo.java", "foo/bar/Foo.java", false); + Resource sonarFile = org.sonar.api.resources.File.create("/src/main/java/foo/bar/Foo.java", "foo/bar/Foo.java", Java.INSTANCE, false); verify(sonarIndex).setSource(eq(sonarFile), argThat(new ArgumentMatcher<String>() { @Override |