use of org.sonar.api.batch.fs.FileSystem in project sonar-java by SonarSource.
the class InternalFileSystemTest method methods.
@Test
void methods() {
FileSystem fs = new InternalFileSystem();
assertThat(fs.baseDir()).isNotNull();
assertThat(fs.encoding()).isEqualTo(StandardCharsets.UTF_8);
assertThat(fs.files(null)).isEmpty();
assertThat(fs.hasFiles(null)).isFalse();
assertThat(fs.languages()).containsOnly("java");
assertMethodNotSupported(() -> fs.inputDir(null), "InternalFileSystem::inputDir(File)");
assertMethodNotSupported(() -> fs.inputFile(null), "InternalFileSystem::inputFile(FilePredicate)");
assertMethodNotSupported(() -> fs.inputFiles(null), "InternalFileSystem::inputFiles(FilePredicate)");
assertMethodNotSupported(() -> fs.predicates(), "InternalFileSystem::predicates()");
assertMethodNotSupported(() -> fs.resolvePath(null), "InternalFileSystem::resolvePath(String)");
assertMethodNotSupported(() -> fs.workDir(), "InternalFileSystem::workDir()");
}
use of org.sonar.api.batch.fs.FileSystem in project sonar-checkstyle by checkstyle.
the class CheckstyleAuditListenerTest method before.
@Before
public void before() {
fileSystem = mock(FileSystem.class);
context = mock(SensorContext.class);
inputFile = mock(InputFile.class);
ruleFinder = mock(ActiveRules.class);
final FilePredicates predicates = mock(FilePredicates.class);
final FilePredicate filePredicate = mock(FilePredicate.class);
when(fileSystem.inputFile(any(FilePredicate.class))).thenReturn(inputFile);
when(fileSystem.predicates()).thenReturn(predicates);
when(predicates.hasAbsolutePath(anyString())).thenReturn(filePredicate);
}
use of org.sonar.api.batch.fs.FileSystem in project sonar-bsl-plugin-community by 1c-syntax.
the class BSLCoreSensor method execute.
@Override
public void execute(SensorContext context) {
LOGGER.info("Parsing files...");
FileSystem fileSystem = context.fileSystem();
File baseDir = fileSystem.baseDir();
var absoluteSourceDirs = sourcesList.stream().map((String sourceDir) -> {
Path sourcePath = Path.of(sourceDir.trim());
if (sourcePath.isAbsolute()) {
return sourcePath;
} else {
return Path.of(baseDir.toString(), sourceDir);
}
}).map(Absolute::path).collect(Collectors.toList());
FilePredicates predicates = fileSystem.predicates();
Iterable<InputFile> inputFiles = fileSystem.inputFiles(predicates.hasLanguage(BSLLanguage.KEY));
Map<Path, List<InputFile>> inputFilesByPath = StreamSupport.stream(inputFiles.spliterator(), true).collect(Collectors.groupingBy((InputFile inputFile) -> {
var filePath = Absolute.path(inputFile.uri());
return absoluteSourceDirs.stream().filter(filePath::startsWith).findAny().orElse(baseDir.toPath());
}));
LanguageServerConfiguration languageServerConfiguration = getLanguageServerConfiguration();
inputFilesByPath.forEach((Path sourceDir, List<InputFile> inputFilesList) -> {
LOGGER.info("Source dir: {}", sourceDir);
Path configurationRoot = LanguageServerConfiguration.getCustomConfigurationRoot(languageServerConfiguration, sourceDir);
var bslServerContext = BSLLSBinding.getServerContext();
bslServerContext.setConfigurationRoot(configurationRoot);
bslServerContext.populateContext();
try (ProgressBar pb = new ProgressBarBuilder().setTaskName("").setInitialMax(inputFilesList.size()).setStyle(ProgressBarStyle.ASCII).build()) {
inputFilesList.parallelStream().forEach((InputFile inputFile) -> {
URI uri = inputFile.uri();
LOGGER.debug(uri.toString());
pb.step();
processFile(inputFile, bslServerContext);
});
}
bslServerContext.clear();
});
BSLLSBinding.getApplicationContext().close();
}
use of org.sonar.api.batch.fs.FileSystem in project sonarqube by SonarSource.
the class CreateIssueByInternalKeySensor method execute.
@Override
public void execute(SensorContext context) {
FileSystem fs = context.fileSystem();
FilePredicates p = fs.predicates();
for (InputFile file : fs.inputFiles(p.and(p.hasLanguages(Xoo.KEY), p.hasType(Type.MAIN)))) {
createIssues(file, context);
}
}
use of org.sonar.api.batch.fs.FileSystem in project sonarqube by SonarSource.
the class OneBugIssuePerLineSensor method analyse.
private void analyse(SensorContext context, String language, String repo) {
FileSystem fs = context.fileSystem();
FilePredicates p = fs.predicates();
for (InputFile file : fs.inputFiles(p.and(p.hasLanguages(language), p.hasType(Type.MAIN)))) {
createIssues(file, context, repo);
}
}
Aggregations