public SonarComponents(FileLinesContextFactory fileLinesContextFactory, ResourcePerspectives resourcePerspectives, Project project, JavaClasspath javaClasspath, JavaTestClasspath javaTestClasspath, CheckFactory checkFactory, @Nullable CheckRegistrar[] checkRegistrars) { this.fileLinesContextFactory = fileLinesContextFactory; this.resourcePerspectives = resourcePerspectives; this.project = project; this.javaClasspath = javaClasspath; this.javaTestClasspath = javaTestClasspath; this.checkFactory = checkFactory; checks = Lists.newArrayList(); if(checkRegistrars != null) { CheckRegistrar.RegistrarContext registrarContext = new CheckRegistrar.RegistrarContext(); for (CheckRegistrar checkClassesRegister : checkRegistrars) { checkClassesRegister.register(registrarContext); registerCheckClasses(registrarContext.repositoryKey(), Lists.newArrayList(registrarContext.checkClasses())); } } }
/** * ProjectDefinition class is not available in SonarLint context, so this constructor will never be called when using SonarLint */ public SonarComponents(FileLinesContextFactory fileLinesContextFactory, FileSystem fs, JavaClasspath javaClasspath, JavaTestClasspath javaTestClasspath, CheckFactory checkFactory, @Nullable CheckRegistrar[] checkRegistrars, @Nullable ProjectDefinition projectDefinition) { this.fileLinesContextFactory = fileLinesContextFactory; this.fs = fs; this.javaClasspath = javaClasspath; this.javaTestClasspath = javaTestClasspath; this.checkFactory = checkFactory; this.projectDefinition = projectDefinition; this.checks = new ArrayList<>(); this.testChecks = new ArrayList<>(); this.allChecks = new ArrayList<>(); this.analysisErrors = new ArrayList<>(); if (checkRegistrars != null) { CheckRegistrar.RegistrarContext registrarContext = new CheckRegistrar.RegistrarContext(); for (CheckRegistrar checkClassesRegister : checkRegistrars) { checkClassesRegister.register(registrarContext); Iterable<Class<? extends JavaCheck>> checkClasses = registrarContext.checkClasses(); Iterable<Class<? extends JavaCheck>> testCheckClasses = registrarContext.testCheckClasses(); registerCheckClasses(registrarContext.repositoryKey(), Lists.newArrayList(checkClasses != null ? checkClasses : new ArrayList<>())); registerTestCheckClasses(registrarContext.repositoryKey(), Lists.newArrayList(testCheckClasses != null ? testCheckClasses : new ArrayList<>())); } } }
/** * ProjectDefinition class is not available in SonarLint context, so this constructor will never be called when using SonarLint */ public SonarComponents(FileLinesContextFactory fileLinesContextFactory, FileSystem fs, JavaClasspath javaClasspath, JavaTestClasspath javaTestClasspath, CheckFactory checkFactory, @Nullable CheckRegistrar[] checkRegistrars, @Nullable ProjectDefinition projectDefinition) { this.fileLinesContextFactory = fileLinesContextFactory; this.fs = fs; this.javaClasspath = javaClasspath; this.javaTestClasspath = javaTestClasspath; this.checkFactory = checkFactory; this.projectDefinition = projectDefinition; this.checks = new ArrayList<>(); this.testChecks = new ArrayList<>(); this.allChecks = new ArrayList<>(); this.analysisErrors = new ArrayList<>(); if (checkRegistrars != null) { CheckRegistrar.RegistrarContext registrarContext = new CheckRegistrar.RegistrarContext(); for (CheckRegistrar checkClassesRegister : checkRegistrars) { checkClassesRegister.register(registrarContext); Iterable<Class<? extends JavaCheck>> checkClasses = registrarContext.checkClasses(); Iterable<Class<? extends JavaCheck>> testCheckClasses = registrarContext.testCheckClasses(); registerCheckClasses(registrarContext.repositoryKey(), Lists.newArrayList(checkClasses != null ? checkClasses : new ArrayList<>())); registerTestCheckClasses(registrarContext.repositoryKey(), Lists.newArrayList(testCheckClasses != null ? testCheckClasses : new ArrayList<>())); } } }
public SonarComponents(FileLinesContextFactory fileLinesContextFactory, ResourcePerspectives resourcePerspectives, FileSystem fs, JavaClasspath javaClasspath, JavaTestClasspath javaTestClasspath, CheckFactory checkFactory, SensorContext context, @Nullable CheckRegistrar[] checkRegistrars) { this.fileLinesContextFactory = fileLinesContextFactory; this.resourcePerspectives = resourcePerspectives; this.fs = fs; this.javaClasspath = javaClasspath; this.javaTestClasspath = javaTestClasspath; this.checkFactory = checkFactory; this.context = context; this.checks = Lists.newArrayList(); this.testChecks = Lists.newArrayList(); if (checkRegistrars != null) { CheckRegistrar.RegistrarContext registrarContext = new CheckRegistrar.RegistrarContext(); for (CheckRegistrar checkClassesRegister : checkRegistrars) { checkClassesRegister.register(registrarContext); Iterable<Class<? extends JavaCheck>> checkClasses = registrarContext.checkClasses(); Iterable<Class<? extends JavaCheck>> testCheckClasses = registrarContext.testCheckClasses(); registerCheckClasses(registrarContext.repositoryKey(), Lists.newArrayList(checkClasses != null ? checkClasses : new ArrayList<Class<? extends JavaCheck>>())); registerTestCheckClasses(registrarContext.repositoryKey(), Lists.newArrayList(testCheckClasses != null ? testCheckClasses : new ArrayList<Class<? extends JavaCheck>>())); } } }
@Override public void execute(SensorContext context) { javaResourceLocator.setSensorContext(context); sonarComponents.setSensorContext(context); List<Class<? extends JavaCheck>> checks = ImmutableList.<Class<? extends JavaCheck>>builder() .addAll(CheckList.getJavaChecks()) .addAll(CheckList.getDebugChecks()) .build(); sonarComponents.registerCheckClasses(CheckList.REPOSITORY_KEY, checks); sonarComponents.registerTestCheckClasses(CheckList.REPOSITORY_KEY, CheckList.getJavaTestChecks()); Measurer measurer = new Measurer(fs, context, noSonarFilter); JavaSquid squid = new JavaSquid(getJavaVersion(), isXFileEnabled(), sonarComponents, measurer, javaResourceLocator, postAnalysisIssueFilter, sonarComponents.checkClasses()); squid.scan(getSourceFiles(), getTestFiles()); sonarComponents.saveAnalysisErrors(); }
@Override public void analyse(Project project, SensorContext context) { javaResourceLocator.setSensorContext(context); sonarComponents.registerCheckClasses(CheckList.REPOSITORY_KEY, CheckList.getJavaChecks()); sonarComponents.registerTestCheckClasses(CheckList.REPOSITORY_KEY, CheckList.getJavaTestChecks()); JavaConfiguration configuration = createConfiguration(); Measurer measurer = new Measurer(project, context, configuration.separatesAccessorsFromMethods()); JavaSquid squid = new JavaSquid(configuration, sonarComponents, measurer, javaResourceLocator, sonarComponents.checkClasses()); squid.scan(getSourceFiles(), getTestFiles(), getBytecodeFiles()); new Bridges(squid, settings).save(context, project, sonarComponents, javaResourceLocator.getResourceMapping(), noSonarFilter, profile); }