From 3bc9089b440e130ecce517572d183b1f03393f50 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Lesaint?= Date: Wed, 12 Aug 2015 14:43:01 +0200 Subject: [PATCH] add Component#getReportAttributes() this is a preparatory change to add support for Views components in CE's Component interface remove Component#getRef and Component#getVersion --- .../computation/component/Component.java | 21 ++++---- .../computation/component/ComponentImpl.java | 40 +++++++------- .../component/DbIdsRepository.java | 8 +-- .../component/ReportAttributes.java | 53 +++++++++++++++++++ .../component/TreeRootHolderImpl.java | 2 +- .../event/EventRepositoryImpl.java | 4 +- .../computation/issue/DebtAggregator.java | 4 +- .../computation/issue/IssueAssigner.java | 4 +- .../computation/issue/IssueCounter.java | 4 +- .../computation/issue/NewDebtAggregator.java | 4 +- .../issue/TrackerRawInputFactory.java | 6 +-- .../measure/MeasureRepositoryImpl.java | 16 +++--- .../computation/step/FeedPeriodsStep.java | 2 +- .../computation/step/FillComponentsStep.java | 4 +- .../step/NewCoverageMeasuresStep.java | 2 +- .../step/PersistComponentsStep.java | 10 ++-- .../step/PersistDuplicationsStep.java | 2 +- .../computation/step/PersistEventsStep.java | 2 +- .../step/PersistFileSourcesStep.java | 2 +- ...ersistNumberOfDaysSinceLastCommitStep.java | 2 +- .../step/PersistProjectLinksStep.java | 2 +- .../step/PersistSnapshotsStep.java | 4 +- .../computation/step/PersistTestsStep.java | 6 +-- .../step/QualityProfileEventsStep.java | 2 +- .../computation/step/ValidateProjectStep.java | 2 +- .../computation/batch/TreeRootHolderRule.java | 2 +- .../component/ComponentImplTest.java | 2 +- .../component/DbIdsRepositoryTest.java | 8 +-- .../computation/component/DumbComponent.java | 39 ++++++-------- .../component/PathAwareCrawlerTest.java | 4 +- .../component/TreeRootHolderImplTest.java | 2 +- .../component/VisitorsCrawlerTest.java | 2 +- ...sitorsCrawlerWithPathAwareVisitorTest.java | 4 +- .../FormulaExecutorComponentCrawlerTest.java | 4 +- .../issue/TrackerRawInputFactoryTest.java | 12 ++--- .../commonrule/CommentDensityRuleTest.java | 20 +++---- .../issue/commonrule/CoverageRuleTest.java | 10 ++-- .../commonrule/DuplicatedBlockRuleTest.java | 4 +- .../issue/commonrule/SkippedTestRuleTest.java | 4 +- .../issue/commonrule/TestErrorRuleTest.java | 8 +-- .../measure/MeasureRepositoryImplTest.java | 10 ++-- .../measure/MeasureRepositoryRule.java | 20 +++---- .../sqale/SqaleMeasuresVisitorTest.java | 6 +-- .../step/BuildComponentTreeStepTest.java | 4 +- .../step/FillComponentsStepTest.java | 2 +- .../FillMeasuresWithVariationsStepTest.java | 2 +- .../step/NewCoverageMeasuresStepTest.java | 24 ++++----- 47 files changed, 220 insertions(+), 181 deletions(-) create mode 100644 server/sonar-server/src/main/java/org/sonar/server/computation/component/ReportAttributes.java diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/component/Component.java b/server/sonar-server/src/main/java/org/sonar/server/computation/component/Component.java index bf068057d6f..5658daf4aa3 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/component/Component.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/component/Component.java @@ -20,7 +20,6 @@ package org.sonar.server.computation.component; import java.util.List; -import javax.annotation.CheckForNull; import org.sonar.server.computation.step.FillComponentsStep; public interface Component { @@ -49,31 +48,29 @@ public interface Component { Type getType(); /** - * Return the component uuid only when {@link FillComponentsStep} has been executed, otherwise it will throw an exception. + * Returns the component uuid only when {@link FillComponentsStep} has been executed, otherwise it will throw an exception. */ String getUuid(); /** - * Return the component key only when {@link FillComponentsStep} has been executed, otherwise it will throw an exception. + * Returns the component key only when {@link FillComponentsStep} has been executed, otherwise it will throw an exception. */ String getKey(); /** - * The component ref in the batch report. + * Returns the attributes specific to components of type {@link Type#PROJECT}, {@link Type#MODULE}, + * {@link Type#DIRECTORY} or {@link Type#FILE}. + * + * @throws IllegalStateException when the component's type is neither {@link Type#PROJECT}, {@link Type#MODULE}, + * {@link Type#DIRECTORY} nor {@link Type#FILE}. */ - int getRef(); + ReportAttributes getReportAttributes(); /** - * The component name as defined in the batch report. + * The component name. */ String getName(); - /** - * The project or module version as defined in the batch report. - */ - @CheckForNull - String getVersion(); - /** * The attributes of the Component if it's type is File. * diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/component/ComponentImpl.java b/server/sonar-server/src/main/java/org/sonar/server/computation/component/ComponentImpl.java index 06cacdabeee..cf708999f17 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/component/ComponentImpl.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/component/ComponentImpl.java @@ -26,6 +26,7 @@ import javax.annotation.Nullable; import org.sonar.batch.protocol.Constants; import org.sonar.batch.protocol.output.BatchReport; +import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Predicates.notNull; import static com.google.common.collect.ImmutableList.copyOf; @@ -33,9 +34,9 @@ import static com.google.common.collect.Iterables.filter; public class ComponentImpl implements Component { private final Type type; - private final int ref; private final String name; - private final String version; + @CheckForNull + private final ReportAttributes reportAttributes; @CheckForNull private final FileAttributes fileAttributes; private final List children; @@ -45,14 +46,17 @@ public class ComponentImpl implements Component { private String uuid; public ComponentImpl(BatchReport.Component component, @Nullable Iterable children) { - this.ref = component.getRef(); this.type = convertType(component.getType()); - this.name = component.getName(); - this.version = component.hasVersion() ? component.getVersion() : null; + this.name = checkNotNull(component.getName()); + this.reportAttributes = createBatchAttributes(component); this.fileAttributes = createFileAttributes(component); this.children = children == null ? Collections.emptyList() : copyOf(filter(children, notNull())); } + private static ReportAttributes createBatchAttributes(BatchReport.Component component) { + return new ReportAttributes(component.getRef(), component.hasVersion() ? component.getVersion() : null); + } + @CheckForNull private static FileAttributes createFileAttributes(BatchReport.Component component) { if (component.getType() != Constants.ComponentType.FILE) { @@ -84,15 +88,10 @@ public class ComponentImpl implements Component { return type; } - @Override - public int getRef() { - return ref; - } - @Override public String getUuid() { if (uuid == null) { - throw new UnsupportedOperationException(String.format("Component uuid of ref '%s' has not be fed yet", getRef())); + throw new UnsupportedOperationException(String.format("Component uuid of ref '%s' has not be fed yet", this.reportAttributes.getRef())); } return uuid; } @@ -105,25 +104,24 @@ public class ComponentImpl implements Component { @Override public String getKey() { if (key == null) { - throw new UnsupportedOperationException(String.format("Component key of ref '%s' has not be fed yet", getRef())); + throw new UnsupportedOperationException(String.format("Component key of ref '%s' has not be fed yet", this.reportAttributes.getRef())); } return key; } - @Override - public String getName() { - return name; + public ComponentImpl setKey(String key) { + this.key = key; + return this; } @Override - @CheckForNull - public String getVersion() { - return version; + public ReportAttributes getReportAttributes() { + return this.reportAttributes; } - public ComponentImpl setKey(String key) { - this.key = key; - return this; + @Override + public String getName() { + return this.name; } @Override diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/component/DbIdsRepository.java b/server/sonar-server/src/main/java/org/sonar/server/computation/component/DbIdsRepository.java index 1d465ba2183..337b1e0b7ce 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/component/DbIdsRepository.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/component/DbIdsRepository.java @@ -32,7 +32,7 @@ public class DbIdsRepository { private final Map snapshotIdsByRef = new HashMap<>(); public DbIdsRepository setComponentId(Component component, long componentId) { - int ref = component.getRef(); + int ref = component.getReportAttributes().getRef(); Long existingComponentId = componentIdsByRef.get(ref); if (existingComponentId != null) { throw new IllegalArgumentException(String.format("Component ref '%s' has already a component id", ref)); @@ -42,7 +42,7 @@ public class DbIdsRepository { } public long getComponentId(Component component) { - int ref = component.getRef(); + int ref = component.getReportAttributes().getRef(); Long componentId = componentIdsByRef.get(ref); if (componentId == null) { throw new IllegalArgumentException(String.format("Component ref '%s' has no component id", ref)); @@ -51,7 +51,7 @@ public class DbIdsRepository { } public DbIdsRepository setSnapshotId(Component component, long snapshotId) { - int ref = component.getRef(); + int ref = component.getReportAttributes().getRef(); Long existingSnapshotId = snapshotIdsByRef.get(ref); if (existingSnapshotId != null) { throw new IllegalArgumentException(String.format("Component ref '%s' has already a snapshot id", ref)); @@ -61,7 +61,7 @@ public class DbIdsRepository { } public long getSnapshotId(Component component) { - int ref = component.getRef(); + int ref = component.getReportAttributes().getRef(); Long snapshotId = snapshotIdsByRef.get(ref); if (snapshotId == null) { throw new IllegalArgumentException(String.format("Component ref '%s' has no snapshot id", ref)); diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/component/ReportAttributes.java b/server/sonar-server/src/main/java/org/sonar/server/computation/component/ReportAttributes.java new file mode 100644 index 00000000000..53c32ca3773 --- /dev/null +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/component/ReportAttributes.java @@ -0,0 +1,53 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2014 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * SonarQube is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * 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.server.computation.component; + +import javax.annotation.CheckForNull; +import javax.annotation.Nullable; +import javax.annotation.concurrent.Immutable; + +import static java.util.Objects.requireNonNull; + +@Immutable +public class ReportAttributes { + private final int ref; + private final String version; + + public ReportAttributes(int ref, @Nullable String version) { + this.ref = ref; + this.version = version; + } + + /** + * The component ref in the batch report. + */ + public int getRef() { + return ref; + } + + /** + * The project or module version as defined in the batch report. + */ + @CheckForNull + public String getVersion() { + return this.version; + } + +} diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/component/TreeRootHolderImpl.java b/server/sonar-server/src/main/java/org/sonar/server/computation/component/TreeRootHolderImpl.java index edd7124819e..40f95777e3f 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/component/TreeRootHolderImpl.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/component/TreeRootHolderImpl.java @@ -66,7 +66,7 @@ public class TreeRootHolderImpl implements MutableTreeRootHolder { new DepthTraversalTypeAwareCrawler(Component.Type.FILE, POST_ORDER) { @Override public void visitAny(Component component) { - componentsByRef.put(component.getRef(), component); + componentsByRef.put(component.getReportAttributes().getRef(), component); } }.visit(root); } diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/event/EventRepositoryImpl.java b/server/sonar-server/src/main/java/org/sonar/server/computation/event/EventRepositoryImpl.java index f309541e051..2f90627171d 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/event/EventRepositoryImpl.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/event/EventRepositoryImpl.java @@ -30,11 +30,11 @@ public class EventRepositoryImpl implements EventRepository { @Override public void add(Component component, Event event) { - events.put(component.getRef(), requireNonNull(event)); + events.put(component.getReportAttributes().getRef(), requireNonNull(event)); } @Override public Iterable getEvents(Component component) { - return this.events.get(component.getRef()); + return this.events.get(component.getReportAttributes().getRef()); } } diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/issue/DebtAggregator.java b/server/sonar-server/src/main/java/org/sonar/server/computation/issue/DebtAggregator.java index 68ac76489ab..2d19c550c37 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/issue/DebtAggregator.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/issue/DebtAggregator.java @@ -57,12 +57,12 @@ public class DebtAggregator extends IssueVisitor { @Override public void beforeComponent(Component component) { currentDebt = new Debt(); - debtsByComponentRef.put(component.getRef(), currentDebt); + debtsByComponentRef.put(component.getReportAttributes().getRef(), currentDebt); // aggregate children counters for (Component child : component.getChildren()) { // no need to keep the children in memory. They can be garbage-collected. - Debt childDebt = debtsByComponentRef.remove(child.getRef()); + Debt childDebt = debtsByComponentRef.remove(child.getReportAttributes().getRef()); if (childDebt != null) { currentDebt.add(childDebt); } diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/issue/IssueAssigner.java b/server/sonar-server/src/main/java/org/sonar/server/computation/issue/IssueAssigner.java index 937a8d217d7..7355c5b0663 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/issue/IssueAssigner.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/issue/IssueAssigner.java @@ -112,14 +112,14 @@ public class IssueAssigner extends IssueVisitor { } private BatchReport.Changesets loadScmChangesetsFromReport(Component component) { - return reportReader.readChangesets(component.getRef()); + return reportReader.readChangesets(component.getReportAttributes().getRef()); } private BatchReport.Changesets loadScmChangesetsFromIndex(Component component) { List lines = sourceLineIndex.getLines(component.getUuid()); Map changesetByRevision = new HashMap<>(); BatchReport.Changesets.Builder scmBuilder = BatchReport.Changesets.newBuilder() - .setComponentRef(component.getRef()); + .setComponentRef(component.getReportAttributes().getRef()); for (SourceLineDoc sourceLine : lines) { String scmRevision = sourceLine.scmRevision(); if (scmRevision == null || changesetByRevision.get(scmRevision) == null) { diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/issue/IssueCounter.java b/server/sonar-server/src/main/java/org/sonar/server/computation/issue/IssueCounter.java index 957ed281c27..20ba83fcd1f 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/issue/IssueCounter.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/issue/IssueCounter.java @@ -108,12 +108,12 @@ public class IssueCounter extends IssueVisitor { public void beforeComponent(Component component) { // TODO optimization no need to instantiate counter if no open issues currentCounters = new Counters(); - countersByComponentRef.put(component.getRef(), currentCounters); + countersByComponentRef.put(component.getReportAttributes().getRef(), currentCounters); // aggregate children counters for (Component child : component.getChildren()) { // no need to keep the children in memory. They can be garbage-collected. - Counters childCounters = countersByComponentRef.remove(child.getRef()); + Counters childCounters = countersByComponentRef.remove(child.getReportAttributes().getRef()); currentCounters.add(childCounters); } } diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/issue/NewDebtAggregator.java b/server/sonar-server/src/main/java/org/sonar/server/computation/issue/NewDebtAggregator.java index b616f550890..f82f8d6db82 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/issue/NewDebtAggregator.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/issue/NewDebtAggregator.java @@ -62,13 +62,13 @@ public class NewDebtAggregator extends IssueVisitor { @Override public void beforeComponent(Component component) { currentSum = new DebtSum(); - sumsByComponentRef.put(component.getRef(), currentSum); + sumsByComponentRef.put(component.getReportAttributes().getRef(), currentSum); List changes = dbClient.issueChangeDao().selectChangelogOfNonClosedIssuesByComponent(component.getUuid()); for (IssueChangeDto change : changes) { changesByIssueUuid.put(change.getIssueKey(), change); } for (Component child : component.getChildren()) { - DebtSum childSum = sumsByComponentRef.remove(child.getRef()); + DebtSum childSum = sumsByComponentRef.remove(child.getReportAttributes().getRef()); if (childSum != null) { currentSum.add(childSum); } diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/issue/TrackerRawInputFactory.java b/server/sonar-server/src/main/java/org/sonar/server/computation/issue/TrackerRawInputFactory.java index 59ca037c8bd..dce8471876e 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/issue/TrackerRawInputFactory.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/issue/TrackerRawInputFactory.java @@ -69,7 +69,7 @@ public class TrackerRawInputFactory { protected LineHashSequence loadLineHashSequence() { Iterable lines; if (component.getType() == Component.Type.FILE) { - lines = Lists.newArrayList(reportReader.readFileSource(component.getRef())); + lines = Lists.newArrayList(reportReader.readFileSource(component.getReportAttributes().getRef())); } else { lines = Collections.emptyList(); } @@ -83,7 +83,7 @@ public class TrackerRawInputFactory { for (DefaultIssue commonRuleIssue : commonRuleEngine.process(component)) { result.add(init(commonRuleIssue)); } - try (CloseableIterator reportIssues = reportReader.readComponentIssues(component.getRef())) { + try (CloseableIterator reportIssues = reportReader.readComponentIssues(component.getReportAttributes().getRef())) { // optimization - do not load line hashes if there are no issues -> getLineHashSequence() is executed // as late as possible while (reportIssues.hasNext()) { @@ -161,7 +161,7 @@ public class TrackerRawInputFactory { private DbIssues.Location convertLocation(BatchReport.IssueLocation source) { DbIssues.Location.Builder target = DbIssues.Location.newBuilder(); - if (source.hasComponentRef() && source.getComponentRef() != component.getRef()) { + if (source.hasComponentRef() && source.getComponentRef() != component.getReportAttributes().getRef()) { target.setComponentId(treeRootHolder.getComponentByRef(source.getComponentRef()).getUuid()); } if (source.hasMsg()) { diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/measure/MeasureRepositoryImpl.java b/server/sonar-server/src/main/java/org/sonar/server/computation/measure/MeasureRepositoryImpl.java index e1041e58fea..4a921fcd32e 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/measure/MeasureRepositoryImpl.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/measure/MeasureRepositoryImpl.java @@ -168,7 +168,7 @@ public class MeasureRepositoryImpl implements MeasureRepository { @Override public SetMultimap getRawMeasures(Component component) { loadBatchMeasuresForComponent(component); - Map rawMeasures = measures.get(component.getRef()); + Map rawMeasures = measures.get(component.getReportAttributes().getRef()); if (rawMeasures == null) { return ImmutableSetMultimap.of(); } @@ -181,11 +181,11 @@ public class MeasureRepositoryImpl implements MeasureRepository { } private void loadBatchMeasuresForComponent(Component component) { - if (loadedComponents.contains(component.getRef())) { + if (loadedComponents.contains(component.getReportAttributes().getRef())) { return; } - try (CloseableIterator readIt = reportReader.readComponentMeasures(component.getRef())) { + try (CloseableIterator readIt = reportReader.readComponentMeasures(component.getReportAttributes().getRef())) { while (readIt.hasNext()) { BatchReport.Measure batchMeasure = readIt.next(); String metricKey = batchMeasure.getMetricKey(); @@ -195,12 +195,12 @@ public class MeasureRepositoryImpl implements MeasureRepository { } } } - loadedComponents.add(component.getRef()); + loadedComponents.add(component.getReportAttributes().getRef()); } private Optional findLocal(Component component, Metric metric, @Nullable RuleDto rule, @Nullable Characteristic characteristic) { - Map measuresPerMetric = measures.get(component.getRef()); + Map measuresPerMetric = measures.get(component.getReportAttributes().getRef()); if (measuresPerMetric == null) { return Optional.absent(); } @@ -208,7 +208,7 @@ public class MeasureRepositoryImpl implements MeasureRepository { } private Optional findLocal(Component component, Metric metric, Measure measure) { - Map measuresPerMetric = measures.get(component.getRef()); + Map measuresPerMetric = measures.get(component.getReportAttributes().getRef()); if (measuresPerMetric == null) { return Optional.absent(); } @@ -216,10 +216,10 @@ public class MeasureRepositoryImpl implements MeasureRepository { } private void addLocal(Component component, Metric metric, Measure measure, OverridePolicy overridePolicy) { - Map measuresPerMetric = measures.get(component.getRef()); + Map measuresPerMetric = measures.get(component.getReportAttributes().getRef()); if (measuresPerMetric == null) { measuresPerMetric = new HashMap<>(); - measures.put(component.getRef(), measuresPerMetric); + measures.put(component.getReportAttributes().getRef(), measuresPerMetric); } MeasureKey key = new MeasureKey(metric.getKey(), measure.getRuleId(), measure.getCharacteristicId()); if (!measuresPerMetric.containsKey(key) || overridePolicy == OverridePolicy.OVERRIDE) { diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/step/FeedPeriodsStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/step/FeedPeriodsStep.java index 31b83cc8f52..2b3b8a5d5ad 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/step/FeedPeriodsStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/step/FeedPeriodsStep.java @@ -96,7 +96,7 @@ public class FeedPeriodsStep implements ComputationStep { // No project on first analysis, no period if (projectDto.isPresent()) { List periods = new ArrayList<>(5); - PeriodResolver periodResolver = new PeriodResolver(session, projectDto.get().getId(), batchReportReader.readMetadata().getAnalysisDate(), project.getVersion(), + PeriodResolver periodResolver = new PeriodResolver(session, projectDto.get().getId(), batchReportReader.readMetadata().getAnalysisDate(), project.getReportAttributes().getVersion(), // TODO qualifier will be different for Views Qualifiers.PROJECT); diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/step/FillComponentsStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/step/FillComponentsStep.java index a8a7c697cf1..f569bccb027 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/step/FillComponentsStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/step/FillComponentsStep.java @@ -92,14 +92,14 @@ public class FillComponentsStep implements ComputationStep { BatchReport.Metadata reportMetadata = reportReader.readMetadata(); String branch = reportMetadata.hasBranch() ? reportMetadata.getBranch() : null; - BatchReport.Component reportComponent = reportReader.readComponent(component.getRef()); + BatchReport.Component reportComponent = reportReader.readComponent(component.getReportAttributes().getRef()); String key = ComponentKeys.createKey(reportComponent.getKey(), branch); component.setKey(key); component.setUuid(uuidFactory.getOrCreateForKey(key)); } private void processDirectoryAndFile(UuidFactory uuidFactory, ComponentImpl component, Component nearestModule) { - BatchReport.Component reportComponent = reportReader.readComponent(component.getRef()); + BatchReport.Component reportComponent = reportReader.readComponent(component.getReportAttributes().getRef()); // TODO fail if path is null String key = ComponentKeys.createEffectiveKey(nearestModule.getKey(), reportComponent.getPath()); component.setKey(key); diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/step/NewCoverageMeasuresStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/step/NewCoverageMeasuresStep.java index 973cbd947c1..94254431f24 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/step/NewCoverageMeasuresStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/step/NewCoverageMeasuresStep.java @@ -310,7 +310,7 @@ public class NewCoverageMeasuresStep implements ComputationStep { @Override public void aggregate(FileAggregateContext context) { Component fileComponent = context.getFile(); - BatchReport.Changesets componentScm = batchReportReader.readChangesets(fileComponent.getRef()); + BatchReport.Changesets componentScm = batchReportReader.readChangesets(fileComponent.getReportAttributes().getRef()); if (componentScm == null) { return; } diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistComponentsStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistComponentsStep.java index 3e4c523650d..3f857f9890b 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistComponentsStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistComponentsStep.java @@ -92,7 +92,7 @@ public class PersistComponentsStep implements ComputationStep { } public void recursivelyProcessComponent(Component component, @Nullable ComponentDto lastModule) { - BatchReport.Component reportComponent = reportReader.readComponent(component.getRef()); + BatchReport.Component reportComponent = reportReader.readComponent(component.getReportAttributes().getRef()); switch (component.getType()) { case PROJECT: @@ -138,7 +138,7 @@ public class PersistComponentsStep implements ComputationStep { componentDto.setProjectUuid(componentDto.uuid()); componentDto.setModuleUuidPath(ComponentDto.MODULE_UUID_PATH_SEP + componentDto.uuid() + ComponentDto.MODULE_UUID_PATH_SEP); - ComponentDto projectDto = persistComponent(project.getRef(), componentDto); + ComponentDto projectDto = persistComponent(project.getReportAttributes().getRef(), componentDto); addToCache(project, projectDto); return projectDto; } @@ -161,7 +161,7 @@ public class PersistComponentsStep implements ComputationStep { componentDto.setModuleUuid(lastModule.uuid()); componentDto.setModuleUuidPath(lastModule.moduleUuidPath() + componentDto.uuid() + ComponentDto.MODULE_UUID_PATH_SEP); - ComponentDto moduleDto = persistComponent(module.getRef(), componentDto); + ComponentDto moduleDto = persistComponent(module.getReportAttributes().getRef(), componentDto); addToCache(module, moduleDto); return moduleDto; } @@ -182,7 +182,7 @@ public class PersistComponentsStep implements ComputationStep { componentDto.setModuleUuid(lastModule.uuid()); componentDto.setModuleUuidPath(lastModule.moduleUuidPath()); - ComponentDto directoryDto = persistComponent(directory.getRef(), componentDto); + ComponentDto directoryDto = persistComponent(directory.getReportAttributes().getRef(), componentDto); addToCache(directory, directoryDto); return directoryDto; } @@ -206,7 +206,7 @@ public class PersistComponentsStep implements ComputationStep { componentDto.setModuleUuid(lastModule.uuid()); componentDto.setModuleUuidPath(lastModule.moduleUuidPath()); - ComponentDto fileDto = persistComponent(file.getRef(), componentDto); + ComponentDto fileDto = persistComponent(file.getReportAttributes().getRef(), componentDto); addToCache(file, fileDto); } diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistDuplicationsStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistDuplicationsStep.java index 0f114952347..fec6a0f48d5 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistDuplicationsStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistDuplicationsStep.java @@ -84,7 +84,7 @@ public class PersistDuplicationsStep implements ComputationStep { } private void visitComponent(Component component) { - try (CloseableIterator duplications = reportReader.readComponentDuplications(component.getRef())) { + try (CloseableIterator duplications = reportReader.readComponentDuplications(component.getReportAttributes().getRef())) { if (duplications.hasNext()) { saveDuplications(component, duplications); } diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistEventsStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistEventsStep.java index 2fa50e97872..03bd3941d52 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistEventsStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistEventsStep.java @@ -92,7 +92,7 @@ public class PersistEventsStep implements ComputationStep { } private void saveVersionEvent(DbSession session, Component component, Long analysisDate) { - String version = component.getVersion(); + String version = component.getReportAttributes().getVersion(); if (version != null) { deletePreviousEventsHavingSameVersion(session, version, component); dbClient.eventDao().insert(session, newBaseEvent(component, analysisDate) diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistFileSourcesStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistFileSourcesStep.java index f1b058ee6e6..ef49705e5f7 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistFileSourcesStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistFileSourcesStep.java @@ -103,7 +103,7 @@ public class PersistFileSourcesStep implements ComputationStep { @Override public void visitFile(Component file) { - int fileRef = file.getRef(); + int fileRef = file.getReportAttributes().getRef(); BatchReport.Component component = reportReader.readComponent(fileRef); CloseableIterator linesIterator = reportReader.readFileSource(fileRef); LineReaders lineReaders = new LineReaders(reportReader, fileRef); diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistNumberOfDaysSinceLastCommitStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistNumberOfDaysSinceLastCommitStep.java index 2f2f59459d8..ce75ea71a95 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistNumberOfDaysSinceLastCommitStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistNumberOfDaysSinceLastCommitStep.java @@ -116,7 +116,7 @@ public class PersistNumberOfDaysSinceLastCommitStep implements ComputationStep { @Override public void visitFile(Component component) { - BatchReport.Changesets scm = reportReader.readChangesets(component.getRef()); + BatchReport.Changesets scm = reportReader.readChangesets(component.getReportAttributes().getRef()); processScm(scm); } diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistProjectLinksStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistProjectLinksStep.java index 3c5c8e3bce3..95355e7c4bc 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistProjectLinksStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistProjectLinksStep.java @@ -99,7 +99,7 @@ public class PersistProjectLinksStep implements ComputationStep { } private void processComponent(Component component) { - BatchReport.Component batchComponent = reportReader.readComponent(component.getRef()); + BatchReport.Component batchComponent = reportReader.readComponent(component.getReportAttributes().getRef()); processLinks(component.getUuid(), batchComponent.getLinkList()); } diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistSnapshotsStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistSnapshotsStep.java index 3190f5e45fd..667a2e36f36 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistSnapshotsStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistSnapshotsStep.java @@ -88,12 +88,12 @@ public class PersistSnapshotsStep implements ComputationStep { switch (component.getType()) { case PROJECT: this.projectId = componentId; - SnapshotDto projectSnapshot = persistSnapshot(componentId, Qualifiers.PROJECT, Scopes.PROJECT, component.getVersion(), parentSnapshot, true); + SnapshotDto projectSnapshot = persistSnapshot(componentId, Qualifiers.PROJECT, Scopes.PROJECT, component.getReportAttributes().getVersion(), parentSnapshot, true); addToCache(component, projectSnapshot); processChildren(component, projectSnapshot); break; case MODULE: - SnapshotDto moduleSnapshot = persistSnapshot(componentId, Qualifiers.MODULE, Scopes.PROJECT, component.getVersion(), parentSnapshot, true); + SnapshotDto moduleSnapshot = persistSnapshot(componentId, Qualifiers.MODULE, Scopes.PROJECT, component.getReportAttributes().getVersion(), parentSnapshot, true); addToCache(component, moduleSnapshot); processChildren(component, moduleSnapshot); break; diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistTestsStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistTestsStep.java index 373717e58ec..6287e1787ae 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistTestsStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistTestsStep.java @@ -121,8 +121,8 @@ public class PersistTestsStep implements ComputationStep { } private void persistTestResults(Component component) { - Multimap testsByName = buildDbTests(component.getRef()); - Table coveredFilesByName = loadCoverageDetails(component.getRef()); + Multimap testsByName = buildDbTests(component.getReportAttributes().getRef()); + Table coveredFilesByName = loadCoverageDetails(component.getReportAttributes().getRef()); List tests = addCoveredFilesToTests(testsByName, coveredFilesByName); if (checkIfThereAreUnprocessedCoverageDetails(testsByName, coveredFilesByName, component.getKey())) { hasUnprocessedCoverageDetails = true; @@ -132,7 +132,7 @@ public class PersistTestsStep implements ComputationStep { return; } - String componentUuid = getUuid(component.getRef()); + String componentUuid = getUuid(component.getReportAttributes().getRef()); FileSourceDto existingDto = existingFileSourcesByUuid.get(componentUuid); long now = system.now(); if (existingDto != null) { diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/step/QualityProfileEventsStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/step/QualityProfileEventsStep.java index 5b5e8593eba..cea9f468759 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/step/QualityProfileEventsStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/step/QualityProfileEventsStep.java @@ -86,7 +86,7 @@ public class QualityProfileEventsStep implements ComputationStep { // Load base profiles Optional rawMeasure = measureRepository.getRawMeasure(projectComponent, metricRepository.getByKey(CoreMetrics.QUALITY_PROFILES_KEY)); if (!rawMeasure.isPresent()) { - throw new IllegalStateException("Missing measure " + CoreMetrics.QUALITY_PROFILES + " for component " + projectComponent.getRef()); + throw new IllegalStateException("Missing measure " + CoreMetrics.QUALITY_PROFILES + " for component " + projectComponent.getReportAttributes().getRef()); } Map rawProfiles = QPMeasureData.fromJson(rawMeasure.get().getStringValue()).getProfilesByKey(); diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/step/ValidateProjectStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/step/ValidateProjectStep.java index 41efe8506c7..d190ce631d1 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/step/ValidateProjectStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/step/ValidateProjectStep.java @@ -189,7 +189,7 @@ public class ValidateProjectStep implements ComputationStep { } private void validateBatchKey(Component rawComponent) { - String batchKey = reportReader.readComponent(rawComponent.getRef()).getKey(); + String batchKey = reportReader.readComponent(rawComponent.getReportAttributes().getRef()).getKey(); if (!ComponentKeys.isValidModuleKey(batchKey)) { validationMessages.add(String.format("\"%s\" is not a valid project or module key. " + "Allowed characters are alphanumeric, '-', '_', '.' and ':', with at least one non-digit.", batchKey)); diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/batch/TreeRootHolderRule.java b/server/sonar-server/src/test/java/org/sonar/server/computation/batch/TreeRootHolderRule.java index e77c132b607..50e759ec1ec 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/batch/TreeRootHolderRule.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/batch/TreeRootHolderRule.java @@ -80,7 +80,7 @@ public class TreeRootHolderRule implements TestRule, MutableTreeRootHolder { new DepthTraversalTypeAwareCrawler(Component.Type.FILE, POST_ORDER) { @Override public void visitAny(Component component) { - componentsByRef.put(component.getRef(), component); + componentsByRef.put(component.getReportAttributes().getRef(), component); } }.visit(root); return this; diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/component/ComponentImplTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/component/ComponentImplTest.java index e71f43b906c..a9074d27180 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/component/ComponentImplTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/component/ComponentImplTest.java @@ -78,7 +78,7 @@ public class ComponentImplTest { public void get_version_from_batch_component() { String version = "1.0"; ComponentImpl component = new ComponentImpl(BatchReport.Component.newBuilder().setVersion(version).build(), EMPTY_CHILD_LIST); - assertThat(component.getVersion()).isEqualTo(version); + assertThat(component.getReportAttributes().getVersion()).isEqualTo(version); } @Test diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/component/DbIdsRepositoryTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/component/DbIdsRepositoryTest.java index 692ccac4dc3..f9627f04dbb 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/component/DbIdsRepositoryTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/component/DbIdsRepositoryTest.java @@ -44,7 +44,7 @@ public class DbIdsRepositoryTest { @Test public void fail_to_get_component_id_on_unknown_ref() { thrown.expect(IllegalArgumentException.class); - thrown.expectMessage("Component ref '" + component.getRef() + "' has no component id"); + thrown.expectMessage("Component ref '" + component.getReportAttributes().getRef() + "' has no component id"); new DbIdsRepository().getComponentId(DumbComponent.DUMB_PROJECT); } @@ -52,7 +52,7 @@ public class DbIdsRepositoryTest { @Test public void fail_if_component_id_already_set() { thrown.expect(IllegalArgumentException.class); - thrown.expectMessage("Component ref '" + component.getRef() + "' has already a component id"); + thrown.expectMessage("Component ref '" + component.getReportAttributes().getRef() + "' has already a component id"); DbIdsRepository cache = new DbIdsRepository(); cache.setComponentId(component, 10L); @@ -70,7 +70,7 @@ public class DbIdsRepositoryTest { @Test public void fail_to_get_snapshot_id_on_unknown_ref() { thrown.expect(IllegalArgumentException.class); - thrown.expectMessage("Component ref '" + component.getRef() + "' has no snapshot id"); + thrown.expectMessage("Component ref '" + component.getReportAttributes().getRef() + "' has no snapshot id"); new DbIdsRepository().getSnapshotId(DumbComponent.DUMB_PROJECT); } @@ -78,7 +78,7 @@ public class DbIdsRepositoryTest { @Test public void fail_if_snapshot_id_already_set() { thrown.expect(IllegalArgumentException.class); - thrown.expectMessage("Component ref '" + component.getRef() + "' has already a snapshot id"); + thrown.expectMessage("Component ref '" + component.getReportAttributes().getRef() + "' has already a snapshot id"); DbIdsRepository cache = new DbIdsRepository(); cache.setSnapshotId(component, 10L); diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/component/DumbComponent.java b/server/sonar-server/src/test/java/org/sonar/server/computation/component/DumbComponent.java index ef9f04ec00a..c390e5ccec8 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/component/DumbComponent.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/component/DumbComponent.java @@ -22,7 +22,6 @@ package org.sonar.server.computation.component; import com.google.common.collect.ImmutableList; import java.util.ArrayList; import java.util.List; -import javax.annotation.CheckForNull; import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkState; @@ -39,21 +38,19 @@ public class DumbComponent implements Component { public static final Component DUMB_PROJECT = builder(Type.PROJECT, 1).setKey("PROJECT_KEY").setUuid("PROJECT_UUID").setName("Project Name").setVersion("1.0-SNAPSHOT").build(); private final Type type; - private final int ref; - private final String uuid; - private final String key; private final String name; - private final String version; + private final String key; + private final String uuid; + private final ReportAttributes reportAttributes; private final FileAttributes fileAttributes; private final List children; private DumbComponent(Builder builder) { this.type = builder.type; - this.ref = builder.ref; - this.uuid = builder.uuid; this.key = builder.key; - this.name = builder.name; - this.version = builder.version; + this.name = builder.name == null ? String.valueOf(builder.key) : builder.name; + this.uuid = builder.uuid; + this.reportAttributes = new ReportAttributes(builder.ref, builder.version); this.fileAttributes = builder.fileAttributes == null ? DEFAULT_FILE_ATTRIBUTES : builder.fileAttributes; this.children = ImmutableList.copyOf(builder.children); } @@ -66,7 +63,7 @@ public class DumbComponent implements Component { @Override public String getUuid() { if (uuid == null) { - throw new UnsupportedOperationException(String.format("Component uuid of ref '%d' has not be fed yet", ref)); + throw new UnsupportedOperationException(String.format("Component uuid of ref '%d' has not be fed yet", this.reportAttributes.getRef())); } return uuid; } @@ -74,25 +71,19 @@ public class DumbComponent implements Component { @Override public String getKey() { if (key == null) { - throw new UnsupportedOperationException(String.format("Component key of ref '%d' has not be fed yet", ref)); + throw new UnsupportedOperationException(String.format("Component key of ref '%d' has not be fed yet", this.reportAttributes.getRef())); } return key; } @Override - public String getName() { - return name; + public ReportAttributes getReportAttributes() { + return this.reportAttributes; } @Override - @CheckForNull - public String getVersion() { - return version; - } - - @Override - public int getRef() { - return ref; + public String getName() { + return this.name; } @Override @@ -115,18 +106,18 @@ public class DumbComponent implements Component { return false; } DumbComponent that = (DumbComponent) o; - return ref == that.ref; + return reportAttributes.getRef() == that.reportAttributes.getRef(); } @Override public int hashCode() { - return ref; + return this.reportAttributes.getRef(); } @Override public String toString() { return "DumbComponent{" + - "ref=" + ref + + "ref=" + this.reportAttributes.getRef() + ", key='" + key + '\'' + ", type=" + type + '}'; diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/component/PathAwareCrawlerTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/component/PathAwareCrawlerTest.java index 615c413fc67..c284c6dedfa 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/component/PathAwareCrawlerTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/component/PathAwareCrawlerTest.java @@ -262,7 +262,7 @@ public class PathAwareCrawlerTest { super(maxDepth, order, new SimpleStackElementFactory() { @Override public Integer createForAny(Component component) { - return component.getRef(); + return component.getReportAttributes().getRef(); } }); } @@ -298,7 +298,7 @@ public class PathAwareCrawlerTest { } private static CallRecord newCallRecord(Component project, Path path, String method) { - return new CallRecord(method, project.getRef(), path.current(), getParent(path), path.root(), + return new CallRecord(method, project.getReportAttributes().getRef(), path.current(), getParent(path), path.root(), toValueList(path)); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/component/TreeRootHolderImplTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/component/TreeRootHolderImplTest.java index 6f9447cfb82..1bf393f9451 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/component/TreeRootHolderImplTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/component/TreeRootHolderImplTest.java @@ -68,7 +68,7 @@ public class TreeRootHolderImplTest { @Test public void fail_to_get_by_ref_if_root_not_set() { thrown.expect(IllegalStateException.class); - treeRootHolder.getComponentByRef(project.getRef()); + treeRootHolder.getComponentByRef(project.getReportAttributes().getRef()); } @Test diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/component/VisitorsCrawlerTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/component/VisitorsCrawlerTest.java index da80d003f7d..5e1624981d8 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/component/VisitorsCrawlerTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/component/VisitorsCrawlerTest.java @@ -139,7 +139,7 @@ public class VisitorsCrawlerTest { super(maxDepth, order, new SimpleStackElementFactory() { @Override public Integer createForAny(Component component) { - return component.getRef(); + return component.getReportAttributes().getRef(); } }); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/component/VisitorsCrawlerWithPathAwareVisitorTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/component/VisitorsCrawlerWithPathAwareVisitorTest.java index 24b9162fd5e..5b0b9950bb1 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/component/VisitorsCrawlerWithPathAwareVisitorTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/component/VisitorsCrawlerWithPathAwareVisitorTest.java @@ -276,7 +276,7 @@ public class VisitorsCrawlerWithPathAwareVisitorTest { super(maxDepth, order, new SimpleStackElementFactory() { @Override public Integer createForAny(Component component) { - return component.getRef(); + return component.getReportAttributes().getRef(); } }); } @@ -312,7 +312,7 @@ public class VisitorsCrawlerWithPathAwareVisitorTest { } private static CallRecord newCallRecord(Component project, Path path, String method) { - return new CallRecord(method, project.getRef(), path.current(), getParent(path), path.root(), + return new CallRecord(method, project.getReportAttributes().getRef(), path.current(), getParent(path), path.root(), toValueList(path)); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/formula/FormulaExecutorComponentCrawlerTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/formula/FormulaExecutorComponentCrawlerTest.java index fec938afcf1..e9bf9a7cc83 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/formula/FormulaExecutorComponentCrawlerTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/formula/FormulaExecutorComponentCrawlerTest.java @@ -288,7 +288,7 @@ public class FormulaExecutorComponentCrawlerTest { @Override public void aggregate(FileAggregateContext context) { // verify the context which is passed to the method - assertThat(context.getFile().getRef()).isIn(1111, 1112, 1211); + assertThat(context.getFile().getReportAttributes().getRef()).isIn(1111, 1112, 1211); assertThat(context.getPeriods()).isEqualTo(periodsHolder.getPeriods()); Optional measureOptional = context.getMeasure(LINES_KEY); @@ -340,7 +340,7 @@ public class FormulaExecutorComponentCrawlerTest { @Override public void aggregate(FileAggregateContext context) { // verify the context which is passed to the method - assertThat(context.getFile().getRef()).isIn(1111, 1112, 1211); + assertThat(context.getFile().getReportAttributes().getRef()).isIn(1111, 1112, 1211); assertThat(context.getPeriods()).isEqualTo(periodsHolder.getPeriods()); Optional measureOptional = context.getMeasure(NEW_LINES_TO_COVER_KEY); diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/issue/TrackerRawInputFactoryTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/issue/TrackerRawInputFactoryTest.java index e6c3a1f5ec9..b54f45048b4 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/issue/TrackerRawInputFactoryTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/issue/TrackerRawInputFactoryTest.java @@ -59,7 +59,7 @@ public class TrackerRawInputFactoryTest { @Test public void load_source_hash_sequences() throws Exception { - reportReader.putFileSourceLines(FILE.getRef(), "line 1;", "line 2;"); + reportReader.putFileSourceLines(FILE.getReportAttributes().getRef(), "line 1;", "line 2;"); Input input = underTest.create(FILE); assertThat(input.getLineHashSequence()).isNotNull(); @@ -80,7 +80,7 @@ public class TrackerRawInputFactoryTest { @Test public void load_issues() throws Exception { - reportReader.putFileSourceLines(FILE.getRef(), "line 1;", "line 2;"); + reportReader.putFileSourceLines(FILE.getReportAttributes().getRef(), "line 1;", "line 2;"); BatchReport.Issue reportIssue = BatchReport.Issue.newBuilder() .setLine(2) .setMsg("the message") @@ -89,7 +89,7 @@ public class TrackerRawInputFactoryTest { .setSeverity(Constants.Severity.BLOCKER) .setEffortToFix(3.14) .build(); - reportReader.putIssues(FILE.getRef(), asList(reportIssue)); + reportReader.putIssues(FILE.getReportAttributes().getRef(), asList(reportIssue)); Input input = underTest.create(FILE); Collection issues = input.getIssues(); @@ -111,14 +111,14 @@ public class TrackerRawInputFactoryTest { @Test public void ignore_report_issues_on_common_rules() throws Exception { - reportReader.putFileSourceLines(FILE.getRef(), "line 1;", "line 2;"); + reportReader.putFileSourceLines(FILE.getReportAttributes().getRef(), "line 1;", "line 2;"); BatchReport.Issue reportIssue = BatchReport.Issue.newBuilder() .setMsg("the message") .setRuleRepository(CommonRuleKeys.commonRepositoryForLang("java")) .setRuleKey("S001") .setSeverity(Constants.Severity.BLOCKER) .build(); - reportReader.putIssues(FILE.getRef(), asList(reportIssue)); + reportReader.putIssues(FILE.getReportAttributes().getRef(), asList(reportIssue)); Input input = underTest.create(FILE); @@ -127,7 +127,7 @@ public class TrackerRawInputFactoryTest { @Test public void load_issues_of_compute_engine_common_rules() throws Exception { - reportReader.putFileSourceLines(FILE.getRef(), "line 1;", "line 2;"); + reportReader.putFileSourceLines(FILE.getReportAttributes().getRef(), "line 1;", "line 2;"); DefaultIssue ceIssue = new DefaultIssue() .setRuleKey(RuleKey.of(CommonRuleKeys.commonRepositoryForLang("java"), "InsufficientCoverage")) .setMessage("not enough coverage") diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/CommentDensityRuleTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/CommentDensityRuleTest.java index 051b9a1bdda..ae74ffa6867 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/CommentDensityRuleTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/CommentDensityRuleTest.java @@ -72,7 +72,7 @@ public class CommentDensityRuleTest { @Test public void no_issues_if_enough_comments() { activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, ImmutableMap.of(CommonRuleKeys.INSUFFICIENT_COMMENT_DENSITY_PROPERTY, "25"))); - measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.COMMENT_LINES_DENSITY_KEY, Measure.newMeasureBuilder().create(90.0)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.COMMENT_LINES_DENSITY_KEY, Measure.newMeasureBuilder().create(90.0)); DefaultIssue issue = underTest.processFile(FILE, "java"); @@ -82,9 +82,9 @@ public class CommentDensityRuleTest { @Test public void issue_if_not_enough_comments() { activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, ImmutableMap.of(CommonRuleKeys.INSUFFICIENT_COMMENT_DENSITY_PROPERTY, "25"))); - measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.COMMENT_LINES_DENSITY_KEY, Measure.newMeasureBuilder().create(10.0)); - measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.COMMENT_LINES_KEY, Measure.newMeasureBuilder().create(40)); - measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.NCLOC_KEY, Measure.newMeasureBuilder().create(360)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.COMMENT_LINES_DENSITY_KEY, Measure.newMeasureBuilder().create(10.0)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.COMMENT_LINES_KEY, Measure.newMeasureBuilder().create(40)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.NCLOC_KEY, Measure.newMeasureBuilder().create(360)); DefaultIssue issue = underTest.processFile(FILE, "java"); @@ -99,9 +99,9 @@ public class CommentDensityRuleTest { @Test public void issue_if_not_enough_comments__test_ceil() { activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, ImmutableMap.of(CommonRuleKeys.INSUFFICIENT_COMMENT_DENSITY_PROPERTY, "25"))); - measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.COMMENT_LINES_DENSITY_KEY, Measure.newMeasureBuilder().create(0.0)); - measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.COMMENT_LINES_KEY, Measure.newMeasureBuilder().create(0)); - measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.NCLOC_KEY, Measure.newMeasureBuilder().create(1)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.COMMENT_LINES_DENSITY_KEY, Measure.newMeasureBuilder().create(0.0)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.COMMENT_LINES_KEY, Measure.newMeasureBuilder().create(0)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.NCLOC_KEY, Measure.newMeasureBuilder().create(1)); DefaultIssue issue = underTest.processFile(FILE, "java"); @@ -121,9 +121,9 @@ public class CommentDensityRuleTest { thrown.expectMessage("Minimum density of rule [common-java:InsufficientCommentDensity] is incorrect. Got [100] but must be strictly less than 100."); activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, ImmutableMap.of(CommonRuleKeys.INSUFFICIENT_COMMENT_DENSITY_PROPERTY, "100"))); - measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.COMMENT_LINES_DENSITY_KEY, Measure.newMeasureBuilder().create(0.0)); - measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.COMMENT_LINES_KEY, Measure.newMeasureBuilder().create(0)); - measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.NCLOC_KEY, Measure.newMeasureBuilder().create(1)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.COMMENT_LINES_DENSITY_KEY, Measure.newMeasureBuilder().create(0.0)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.COMMENT_LINES_KEY, Measure.newMeasureBuilder().create(0)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.NCLOC_KEY, Measure.newMeasureBuilder().create(1)); underTest.processFile(FILE, "java"); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/CoverageRuleTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/CoverageRuleTest.java index e3d71cd039e..c20848fd731 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/CoverageRuleTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/CoverageRuleTest.java @@ -86,7 +86,7 @@ public abstract class CoverageRuleTest { @Test public void no_issue_if_enough_coverage() { activeRuleHolder.put(new ActiveRule(getRuleKey(), Severity.CRITICAL, ImmutableMap.of(getMinPropertyKey(), "65"))); - measureRepository.addRawMeasure(FILE.getRef(), getCoverageMetricKey(), Measure.newMeasureBuilder().create(90.0)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), getCoverageMetricKey(), Measure.newMeasureBuilder().create(90.0)); DefaultIssue issue = underTest.processFile(FILE, "java"); @@ -96,9 +96,9 @@ public abstract class CoverageRuleTest { @Test public void issue_if_coverage_is_too_low() { activeRuleHolder.put(new ActiveRule(getRuleKey(), Severity.CRITICAL, ImmutableMap.of(getMinPropertyKey(), "65"))); - measureRepository.addRawMeasure(FILE.getRef(), getCoverageMetricKey(), Measure.newMeasureBuilder().create(20.0)); - measureRepository.addRawMeasure(FILE.getRef(), getUncoveredMetricKey(), Measure.newMeasureBuilder().create(40)); - measureRepository.addRawMeasure(FILE.getRef(), getToCoverMetricKey(), Measure.newMeasureBuilder().create(50)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), getCoverageMetricKey(), Measure.newMeasureBuilder().create(20.0)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), getUncoveredMetricKey(), Measure.newMeasureBuilder().create(40)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), getToCoverMetricKey(), Measure.newMeasureBuilder().create(50)); DefaultIssue issue = underTest.processFile(FILE, "java"); @@ -123,7 +123,7 @@ public abstract class CoverageRuleTest { @Test public void ignored_if_rule_is_deactivated() { // coverage is too low, but rule is not activated - measureRepository.addRawMeasure(FILE.getRef(), getCoverageMetricKey(), Measure.newMeasureBuilder().create(20.0)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), getCoverageMetricKey(), Measure.newMeasureBuilder().create(20.0)); DefaultIssue issue = underTest.processFile(FILE, "java"); diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/DuplicatedBlockRuleTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/DuplicatedBlockRuleTest.java index 7e3e40d7bf4..6bbe64ef1ed 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/DuplicatedBlockRuleTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/DuplicatedBlockRuleTest.java @@ -66,7 +66,7 @@ public class DuplicatedBlockRuleTest { @Test public void no_issue_if_no_duplicated_blocks() throws Exception { activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, Collections.emptyMap())); - measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.DUPLICATED_BLOCKS_KEY, Measure.newMeasureBuilder().create(0)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.DUPLICATED_BLOCKS_KEY, Measure.newMeasureBuilder().create(0)); DefaultIssue issue = underTest.processFile(FILE, "java"); @@ -76,7 +76,7 @@ public class DuplicatedBlockRuleTest { @Test public void issue_if_duplicated_blocks() throws Exception { activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, Collections.emptyMap())); - measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.DUPLICATED_BLOCKS_KEY, Measure.newMeasureBuilder().create(3)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.DUPLICATED_BLOCKS_KEY, Measure.newMeasureBuilder().create(3)); DefaultIssue issue = underTest.processFile(FILE, "java"); diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/SkippedTestRuleTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/SkippedTestRuleTest.java index 1c5882f0a8d..9a4c3d8a083 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/SkippedTestRuleTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/SkippedTestRuleTest.java @@ -67,7 +67,7 @@ public class SkippedTestRuleTest { @Test public void issue_if_skipped_tests() throws Exception { activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, Collections.emptyMap())); - measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.SKIPPED_TESTS_KEY, Measure.newMeasureBuilder().create(2)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.SKIPPED_TESTS_KEY, Measure.newMeasureBuilder().create(2)); DefaultIssue issue = underTest.processFile(FILE, "java"); @@ -80,7 +80,7 @@ public class SkippedTestRuleTest { @Test public void no_issues_if_zero_skipped_tests() throws Exception { activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, Collections.emptyMap())); - measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.SKIPPED_TESTS_KEY, Measure.newMeasureBuilder().create(0)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.SKIPPED_TESTS_KEY, Measure.newMeasureBuilder().create(0)); DefaultIssue issue = underTest.processFile(FILE, "java"); diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/TestErrorRuleTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/TestErrorRuleTest.java index 35bdd49c704..826439a0ad0 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/TestErrorRuleTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/issue/commonrule/TestErrorRuleTest.java @@ -68,8 +68,8 @@ public class TestErrorRuleTest { @Test public void issue_if_errors_or_failures() throws Exception { activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, Collections.emptyMap())); - measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.TEST_ERRORS_KEY, Measure.newMeasureBuilder().create(2)); - measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.TEST_FAILURES_KEY, Measure.newMeasureBuilder().create(1)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.TEST_ERRORS_KEY, Measure.newMeasureBuilder().create(2)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.TEST_FAILURES_KEY, Measure.newMeasureBuilder().create(1)); DefaultIssue issue = underTest.processFile(FILE, "java"); @@ -82,8 +82,8 @@ public class TestErrorRuleTest { @Test public void no_issues_if_zero_errors_and_failures() throws Exception { activeRuleHolder.put(new ActiveRule(RULE_KEY, Severity.CRITICAL, Collections.emptyMap())); - measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.TEST_ERRORS_KEY, Measure.newMeasureBuilder().create(0)); - measureRepository.addRawMeasure(FILE.getRef(), CoreMetrics.TEST_FAILURES_KEY, Measure.newMeasureBuilder().create(0)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.TEST_ERRORS_KEY, Measure.newMeasureBuilder().create(0)); + measureRepository.addRawMeasure(FILE.getReportAttributes().getRef(), CoreMetrics.TEST_FAILURES_KEY, Measure.newMeasureBuilder().create(0)); DefaultIssue issue = underTest.processFile(FILE, "java"); diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureRepositoryImplTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureRepositoryImplTest.java index 2ca62106849..44f428e5557 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureRepositoryImplTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureRepositoryImplTest.java @@ -353,7 +353,7 @@ public class MeasureRepositoryImplTest { when(reportMetricValidator.validate(METRIC_KEY_1)).thenReturn(true); - reportReader.putMeasures(FILE_COMPONENT.getRef(), ImmutableList.of( + reportReader.putMeasures(FILE_COMPONENT.getReportAttributes().getRef(), ImmutableList.of( BatchReport.Measure.newBuilder().setMetricKey(METRIC_KEY_1).setStringValue(value).build() )); @@ -372,7 +372,7 @@ public class MeasureRepositoryImplTest { when(reportMetricValidator.validate(METRIC_KEY_1)).thenReturn(true); when(reportMetricValidator.validate(METRIC_KEY_2)).thenReturn(false); - reportReader.putMeasures(FILE_COMPONENT.getRef(), ImmutableList.of( + reportReader.putMeasures(FILE_COMPONENT.getReportAttributes().getRef(), ImmutableList.of( BatchReport.Measure.newBuilder().setMetricKey(METRIC_KEY_1).setStringValue("value1").build(), BatchReport.Measure.newBuilder().setMetricKey(METRIC_KEY_2).setStringValue("value2").build() )); @@ -384,7 +384,7 @@ public class MeasureRepositoryImplTest { @Test public void getRawMeasure_retrieves_added_measure_over_batch_measure() { when(reportMetricValidator.validate(METRIC_KEY_1)).thenReturn(true); - reportReader.putMeasures(FILE_COMPONENT.getRef(), ImmutableList.of( + reportReader.putMeasures(FILE_COMPONENT.getReportAttributes().getRef(), ImmutableList.of( BatchReport.Measure.newBuilder().setMetricKey(METRIC_KEY_1).setStringValue("some value").build() )); @@ -400,7 +400,7 @@ public class MeasureRepositoryImplTest { @Test public void getRawMeasure_retrieves_measure_from_batch_and_caches_it_locally_so_that_it_can_be_updated() { when(reportMetricValidator.validate(METRIC_KEY_1)).thenReturn(true); - reportReader.putMeasures(FILE_COMPONENT.getRef(), ImmutableList.of( + reportReader.putMeasures(FILE_COMPONENT.getReportAttributes().getRef(), ImmutableList.of( BatchReport.Measure.newBuilder().setMetricKey(METRIC_KEY_1).setStringValue("some value").build() )); @@ -476,7 +476,7 @@ public class MeasureRepositoryImplTest { when(reportMetricValidator.validate(METRIC_KEY_2)).thenReturn(true); BatchReport.Measure batchMeasure1 = BatchReport.Measure.newBuilder().setMetricKey(METRIC_KEY_1).setStringValue("some value").build(); BatchReport.Measure batchMeasure2 = BatchReport.Measure.newBuilder().setMetricKey(METRIC_KEY_2).setStringValue("some value").build(); - reportReader.putMeasures(FILE_COMPONENT.getRef(), ImmutableList.of(batchMeasure1, batchMeasure2)); + reportReader.putMeasures(FILE_COMPONENT.getReportAttributes().getRef(), ImmutableList.of(batchMeasure1, batchMeasure2)); Measure addedMeasure = SOME_MEASURE; underTest.add(FILE_COMPONENT, metric1, addedMeasure); diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureRepositoryRule.java b/server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureRepositoryRule.java index 80828720b7c..5b1cc83a36f 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureRepositoryRule.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureRepositoryRule.java @@ -100,7 +100,7 @@ public class MeasureRepositoryRule extends ExternalResource implements MeasureRe checkAndInitProvidersState(); InternalKey internalKey = new InternalKey(component, metric); - checkState(!baseMeasures.containsKey(internalKey), format("Can not add a BaseMeasure twice for a Component (ref=%s) and Metric (key=%s)", component.getRef(), metric.getKey())); + checkState(!baseMeasures.containsKey(internalKey), format("Can not add a BaseMeasure twice for a Component (ref=%s) and Metric (key=%s)", component.getReportAttributes().getRef(), metric.getKey())); baseMeasures.put(internalKey, measure); @@ -226,22 +226,22 @@ public class MeasureRepositoryRule extends ExternalResource implements MeasureRe @Override public void add(Component component, Metric metric, Measure measure) { - InternalKey internalKey = new InternalKey(component.getRef(), metric.getKey(), measure.getRuleId(), measure.getCharacteristicId()); + InternalKey internalKey = new InternalKey(component.getReportAttributes().getRef(), metric.getKey(), measure.getRuleId(), measure.getCharacteristicId()); if (rawMeasures.containsKey(internalKey)) { throw new UnsupportedOperationException(format( "A measure can only be set once for Component (ref=%s), Metric (key=%s), ruleId=%s, characteristicId=%s", - component.getRef(), metric.getKey(), measure.getRuleId(), measure.getCharacteristicId())); + component.getReportAttributes().getRef(), metric.getKey(), measure.getRuleId(), measure.getCharacteristicId())); } rawMeasures.put(internalKey, measure); } @Override public void update(Component component, Metric metric, Measure measure) { - InternalKey internalKey = new InternalKey(component.getRef(), metric.getKey(), measure.getRuleId(), measure.getCharacteristicId()); + InternalKey internalKey = new InternalKey(component.getReportAttributes().getRef(), metric.getKey(), measure.getRuleId(), measure.getCharacteristicId()); if (!rawMeasures.containsKey(internalKey)) { throw new UnsupportedOperationException(format( "A measure can only be updated if it has been added first for Component (ref=%s), Metric (key=%s), ruleId=%s, characteristicId=%s", - component.getRef(), metric.getKey(), measure.getRuleId(), measure.getCharacteristicId())); + component.getReportAttributes().getRef(), metric.getKey(), measure.getRuleId(), measure.getCharacteristicId())); } rawMeasures.put(internalKey, measure); } @@ -265,11 +265,11 @@ public class MeasureRepositoryRule extends ExternalResource implements MeasureRe private final int characteristicId; public InternalKey(Component component, Metric metric) { - this(component.getRef(), metric.getKey(), null, null); + this(component.getReportAttributes().getRef(), metric.getKey(), null, null); } public InternalKey(Component component, Metric metric, @Nullable Integer ruleId, @Nullable Integer characteristicId) { - this(component.getRef(), metric.getKey(), ruleId, characteristicId); + this(component.getReportAttributes().getRef(), metric.getKey(), ruleId, characteristicId); } public InternalKey(int componentRef, String metricKey) { @@ -340,7 +340,7 @@ public class MeasureRepositoryRule extends ExternalResource implements MeasureRe @Override public boolean apply(@Nonnull InternalKey input) { - return input.getComponentRef() == component.getRef(); + return input.getComponentRef() == component.getReportAttributes().getRef(); } } @@ -389,8 +389,8 @@ public class MeasureRepositoryRule extends ExternalResource implements MeasureRe new DepthTraversalTypeAwareCrawler(Component.Type.FILE, ComponentVisitor.Order.PRE_ORDER) { @Override public void visitAny(Component component) { - checkState(!componentsByRef.containsKey(component.getRef()), "Tree contains more than one component with ref " + component.getRef()); - componentsByRef.put(component.getRef(), component); + checkState(!componentsByRef.containsKey(component.getReportAttributes().getRef()), "Tree contains more than one component with ref " + component.getReportAttributes().getRef()); + componentsByRef.put(component.getReportAttributes().getRef(), component); } }.visit(root); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/sqale/SqaleMeasuresVisitorTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/sqale/SqaleMeasuresVisitorTest.java index 4e4e7f9e3e7..3227782a9e1 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/sqale/SqaleMeasuresVisitorTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/sqale/SqaleMeasuresVisitorTest.java @@ -132,12 +132,12 @@ public class SqaleMeasuresVisitorTest { DumbComponent fileComponent = createFileComponent(languageKey, 1); treeRootHolder.setRoot(fileComponent); - measureRepository.addRawMeasure(fileComponent.getRef(), metricKey, newMeasureBuilder().create(measureValue)); - measureRepository.addRawMeasure(fileComponent.getRef(), TECHNICAL_DEBT_KEY, newMeasureBuilder().create(debt)); + measureRepository.addRawMeasure(fileComponent.getReportAttributes().getRef(), metricKey, newMeasureBuilder().create(measureValue)); + measureRepository.addRawMeasure(fileComponent.getReportAttributes().getRef(), TECHNICAL_DEBT_KEY, newMeasureBuilder().create(debt)); underTest.visit(fileComponent); - verifyFileMeasures(fileComponent.getRef(), measureValue, debt, languageCost, expectedRating); + verifyFileMeasures(fileComponent.getReportAttributes().getRef(), measureValue, debt, languageCost, expectedRating); } @Test diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/step/BuildComponentTreeStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/step/BuildComponentTreeStepTest.java index f73fc138aaf..f7d0daabdf4 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/step/BuildComponentTreeStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/step/BuildComponentTreeStepTest.java @@ -72,7 +72,7 @@ public class BuildComponentTreeStepTest { Component root = treeRootHolder.getRoot(); assertThat(root).isNotNull(); assertThat(root.getType()).isEqualTo(Component.Type.valueOf(componentType.name())); - assertThat(root.getRef()).isEqualTo(ROOT_REF); + assertThat(root.getReportAttributes().getRef()).isEqualTo(ROOT_REF); assertThat(root.getChildren()).isEmpty(); } } @@ -105,7 +105,7 @@ public class BuildComponentTreeStepTest { private void verifyComponent(Component component, Component.Type type, int componentRef, int size) { assertThat(component.getType()).isEqualTo(type); - assertThat(component.getRef()).isEqualTo(componentRef); + assertThat(component.getReportAttributes().getRef()).isEqualTo(componentRef); assertThat(component.getChildren()).hasSize(size); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/step/FillComponentsStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/step/FillComponentsStepTest.java index ad472a9629d..ba491b0accc 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/step/FillComponentsStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/step/FillComponentsStepTest.java @@ -457,7 +457,7 @@ public class FillComponentsStepTest extends BaseStepTest { } private static void feedComponentByRef(Component component, Map map) { - map.put(component.getRef(), component); + map.put(component.getReportAttributes().getRef(), component); for (Component child : component.getChildren()) { feedComponentByRef(child, map); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/step/FillMeasuresWithVariationsStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/step/FillMeasuresWithVariationsStepTest.java index 586dd4f27f5..f466b1e0b65 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/step/FillMeasuresWithVariationsStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/step/FillMeasuresWithVariationsStepTest.java @@ -235,6 +235,6 @@ public class FillMeasuresWithVariationsStepTest { } private void addRawMeasure(Component component, Metric metric, Measure measure) { - measureRepository.addRawMeasure(component.getRef(), metric.getKey(), measure); + measureRepository.addRawMeasure(component.getReportAttributes().getRef(), metric.getKey(), measure); } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/step/NewCoverageMeasuresStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/step/NewCoverageMeasuresStepTest.java index 626c7f95239..4f7bd2a7807 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/step/NewCoverageMeasuresStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/step/NewCoverageMeasuresStepTest.java @@ -196,7 +196,7 @@ public class NewCoverageMeasuresStepTest { public void verify_measure_of_condition_not_computed_if_there_is_none() { treeRootHolder.setRoot(FILE_COMPONENT); reportReader.putChangesets(Changesets.newBuilder() - .setComponentRef(FILE_COMPONENT.getRef()) + .setComponentRef(FILE_COMPONENT.getReportAttributes().getRef()) .addChangeset(Changesets.Changeset.newBuilder().build()) .addChangeset(Changesets.Changeset.newBuilder() .setDate(parseDate("2007-01-15").getTime()) @@ -219,7 +219,7 @@ public class NewCoverageMeasuresStepTest { public void verify_no_measure_when_nothing_has_changed() { treeRootHolder.setRoot(FILE_COMPONENT); reportReader.putChangesets(BatchReport.Changesets.newBuilder() - .setComponentRef(FILE_COMPONENT.getRef()) + .setComponentRef(FILE_COMPONENT.getReportAttributes().getRef()) .addChangeset(Changesets.Changeset.newBuilder() .setDate(parseDate("2008-08-02").getTime()) .build()) @@ -228,13 +228,13 @@ public class NewCoverageMeasuresStepTest { .addChangesetIndexByLine(0) .addChangesetIndexByLine(0) .build()); - measureRepository.addRawMeasure(FILE_COMPONENT.getRef(), COVERAGE_LINE_HITS_DATA_KEY, newMeasureBuilder().create("2=1;3=1")); - measureRepository.addRawMeasure(FILE_COMPONENT.getRef(), CONDITIONS_BY_LINE_KEY, newMeasureBuilder().create("2=1")); - measureRepository.addRawMeasure(FILE_COMPONENT.getRef(), COVERED_CONDITIONS_BY_LINE_KEY, newMeasureBuilder().create("2=1")); + measureRepository.addRawMeasure(FILE_COMPONENT.getReportAttributes().getRef(), COVERAGE_LINE_HITS_DATA_KEY, newMeasureBuilder().create("2=1;3=1")); + measureRepository.addRawMeasure(FILE_COMPONENT.getReportAttributes().getRef(), CONDITIONS_BY_LINE_KEY, newMeasureBuilder().create("2=1")); + measureRepository.addRawMeasure(FILE_COMPONENT.getReportAttributes().getRef(), COVERED_CONDITIONS_BY_LINE_KEY, newMeasureBuilder().create("2=1")); underTest.execute(); - assertThat(measureRepository.getAddedRawMeasures(FILE_COMPONENT.getRef())).isEmpty(); + assertThat(measureRepository.getAddedRawMeasures(FILE_COMPONENT.getReportAttributes().getRef())).isEmpty(); } @Test @@ -243,7 +243,7 @@ public class NewCoverageMeasuresStepTest { treeRootHolder.setRoot(fileComponent); reportReader.putChangesets(Changesets.newBuilder() - .setComponentRef(fileComponent.getRef()) + .setComponentRef(fileComponent.getReportAttributes().getRef()) .addChangeset(Changesets.Changeset.newBuilder() .setDate(parseDate("2008-05-18").getTime()) .build()) @@ -295,7 +295,7 @@ public class NewCoverageMeasuresStepTest { String newLinesToCover, String newUncoveredLines, String newConditionsToCover, String newUncoveredConditions) { treeRootHolder.setRoot(FILE_COMPONENT); reportReader.putChangesets(Changesets.newBuilder() - .setComponentRef(FILE_COMPONENT.getRef()) + .setComponentRef(FILE_COMPONENT.getReportAttributes().getRef()) .addChangeset(Changesets.Changeset.newBuilder().build()) .addChangeset(Changesets.Changeset.newBuilder() .setDate(parseDate("2007-01-15").getTime()) @@ -308,11 +308,11 @@ public class NewCoverageMeasuresStepTest { .addChangesetIndexByLine(1) // line 3 .addChangesetIndexByLine(2) // line 4 .build()); - measureRepository.addRawMeasure(FILE_COMPONENT.getRef(), coverageLineHitsData, newMeasureBuilder().create("2=0;3=2;4=3")); + measureRepository.addRawMeasure(FILE_COMPONENT.getReportAttributes().getRef(), coverageLineHitsData, newMeasureBuilder().create("2=0;3=2;4=3")); underTest.execute(); - assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_COMPONENT.getRef()))).contains( + assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_COMPONENT.getReportAttributes().getRef()))).contains( entryOf(newLinesToCover, createMeasure(2d, null)), entryOf(newUncoveredLines, createMeasure(1d, null)), entryOf(newConditionsToCover, createMeasure(0d, null)), @@ -577,11 +577,11 @@ public class NewCoverageMeasuresStepTest { private void verify_computation_of_measures_for_new_conditions(MetricKeys metricKeys) { treeRootHolder.setRoot(FILE_COMPONENT); - defineChangeSetsAndMeasures(FILE_COMPONENT.getRef(), metricKeys, new MeasureValues(3, 4, 1), new MeasureValues(0, 3, 2)); + defineChangeSetsAndMeasures(FILE_COMPONENT.getReportAttributes().getRef(), metricKeys, new MeasureValues(3, 4, 1), new MeasureValues(0, 3, 2)); underTest.execute(); - assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_COMPONENT.getRef()))).contains( + assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_COMPONENT.getReportAttributes().getRef()))).contains( entryOf(metricKeys.newLinesToCover, createMeasure(5d, 3d)), entryOf(metricKeys.newUncoveredLines, createMeasure(3d, 2d)), entryOf(metricKeys.newConditionsToCover, createMeasure(7d, 3d)), -- 2.39.5