Skip to content

Commit

Permalink
SONAR-6730 Replace ComponentVisitors and inject directly ComponentVis…
Browse files Browse the repository at this point in the history
…itor in CE container
  • Loading branch information
julienlancelot committed Sep 2, 2015
1 parent 32428f4 commit 65ebf5e
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 92 deletions.
Expand Up @@ -36,16 +36,19 @@
import org.sonar.server.computation.debt.DebtModelHolderImpl;
import org.sonar.server.computation.event.EventRepositoryImpl;
import org.sonar.server.computation.issue.BaseIssuesLoader;
import org.sonar.server.computation.issue.CloseIssuesOnRemovedComponentsVisitor;
import org.sonar.server.computation.issue.ComponentIssuesRepositoryImpl;
import org.sonar.server.computation.issue.ComponentsWithUnprocessedIssues;
import org.sonar.server.computation.issue.DebtAggregator;
import org.sonar.server.computation.issue.DebtCalculator;
import org.sonar.server.computation.issue.DefaultAssignee;
import org.sonar.server.computation.issue.IntegrateIssuesVisitor;
import org.sonar.server.computation.issue.IssueAssigner;
import org.sonar.server.computation.issue.IssueCache;
import org.sonar.server.computation.issue.IssueCounter;
import org.sonar.server.computation.issue.IssueLifecycle;
import org.sonar.server.computation.issue.IssueVisitors;
import org.sonar.server.computation.issue.LoadComponentUuidsHavingOpenIssuesVisitor;
import org.sonar.server.computation.issue.NewDebtAggregator;
import org.sonar.server.computation.issue.NewDebtCalculator;
import org.sonar.server.computation.issue.RuleCacheLoader;
Expand All @@ -66,15 +69,16 @@
import org.sonar.server.computation.issue.commonrule.TestErrorRule;
import org.sonar.server.computation.language.LanguageRepositoryImpl;
import org.sonar.server.computation.measure.MeasureComputersHolderImpl;
import org.sonar.server.computation.measure.MeasureComputersVisitor;
import org.sonar.server.computation.measure.MeasureRepositoryImpl;
import org.sonar.server.computation.metric.MetricModule;
import org.sonar.server.computation.period.PeriodsHolderImpl;
import org.sonar.server.computation.qualitygate.EvaluationResultTextConverterImpl;
import org.sonar.server.computation.qualitygate.QualityGateHolderImpl;
import org.sonar.server.computation.qualitygate.QualityGateServiceImpl;
import org.sonar.server.computation.qualityprofile.ActiveRulesHolderImpl;
import org.sonar.server.computation.sqale.SqaleMeasuresVisitor;
import org.sonar.server.computation.sqale.SqaleRatingSettings;
import org.sonar.server.computation.step.ComponentVisitors;
import org.sonar.server.computation.step.ComputationSteps;
import org.sonar.server.computation.step.ReportComputationSteps;
import org.sonar.server.view.index.ViewIndex;
Expand All @@ -89,13 +93,10 @@ public ReportComputeEngineContainerPopulator(ReportQueue.Item item) {
@Override
public void populateContainer(ComputeEngineContainer container) {
ComputationSteps steps = new ReportComputationSteps(container);
ComponentVisitors visitors = new ComponentVisitors(container);
container.add(item);
container.add(steps);
container.add(visitors);
container.addSingletons(componentClasses());
container.addSingletons(steps.orderedStepClasses());
container.addSingletons(visitors.orderedClasses());
}

/**
Expand Down Expand Up @@ -162,6 +163,13 @@ private static List componentClasses() {
RuleTagsCopier.class,
IssueCounter.class,

// visitors : order is important, measure computers must be executed at the end in order to access to every measures / issues
LoadComponentUuidsHavingOpenIssuesVisitor.class,
IntegrateIssuesVisitor.class,
CloseIssuesOnRemovedComponentsVisitor.class,
SqaleMeasuresVisitor.class,
MeasureComputersVisitor.class,

UpdateConflictResolver.class,
TrackerBaseInputFactory.class,
TrackerRawInputFactory.class,
Expand Down

This file was deleted.

Expand Up @@ -20,17 +20,18 @@

package org.sonar.server.computation.step;

import java.util.List;
import org.sonar.server.computation.component.ComponentVisitor;
import org.sonar.server.computation.component.TreeRootHolder;
import org.sonar.server.computation.component.VisitorsCrawler;

public class ExecuteVisitorsStep implements ComputationStep {
private final TreeRootHolder treeRootHolder;
private final Iterable<ComponentVisitor> visitors;
private final List<ComponentVisitor> visitors;

public ExecuteVisitorsStep(TreeRootHolder treeRootHolder, ComponentVisitors visitors) {
public ExecuteVisitorsStep(TreeRootHolder treeRootHolder, List<ComponentVisitor> visitors) {
this.treeRootHolder = treeRootHolder;
this.visitors = visitors.instances();
this.visitors = visitors;
}

@Override
Expand Down
Expand Up @@ -36,8 +36,6 @@
import org.sonar.server.computation.metric.MetricRepositoryRule;

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.sonar.api.measures.CoreMetrics.NCLOC;
import static org.sonar.api.measures.CoreMetrics.NCLOC_KEY;
import static org.sonar.server.computation.component.Component.Type.DIRECTORY;
Expand Down Expand Up @@ -84,12 +82,9 @@ public void setUp() throws Exception {
).build());
}

ComponentVisitors visitors = mock(ComponentVisitors.class);

@Test
public void execute_with_type_aware_visitor() throws Exception {
when(visitors.instances()).thenReturn(Arrays.<ComponentVisitor>asList(new TestTypeAwareVisitor()));
ExecuteVisitorsStep underStep = new ExecuteVisitorsStep(treeRootHolder, visitors);
ExecuteVisitorsStep underStep = new ExecuteVisitorsStep(treeRootHolder, Arrays.<ComponentVisitor>asList(new TestTypeAwareVisitor()));

measureRepository.addRawMeasure(FILE_1_REF, NCLOC_KEY, newMeasureBuilder().create(1));
measureRepository.addRawMeasure(FILE_2_REF, NCLOC_KEY, newMeasureBuilder().create(2));
Expand All @@ -108,8 +103,7 @@ public void execute_with_type_aware_visitor() throws Exception {

@Test
public void execute_with_path_aware_visitor() throws Exception {
when(visitors.instances()).thenReturn(Arrays.<ComponentVisitor>asList(new TestPathAwareVisitor()));
ExecuteVisitorsStep underStep = new ExecuteVisitorsStep(treeRootHolder, visitors);
ExecuteVisitorsStep underStep = new ExecuteVisitorsStep(treeRootHolder, Arrays.<ComponentVisitor>asList(new TestPathAwareVisitor()));

measureRepository.addRawMeasure(FILE_1_REF, NCLOC_KEY, newMeasureBuilder().create(1));
measureRepository.addRawMeasure(FILE_2_REF, NCLOC_KEY, newMeasureBuilder().create(1));
Expand Down

0 comments on commit 65ebf5e

Please sign in to comment.