Browse Source

SONAR-7957 Replace new ncloc by new lines

tags/6.1-RC1
Julien Lancelot 7 years ago
parent
commit
792d73d269

+ 0
- 1
it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures View File

@@ -1,2 +1 @@
ncloc:42
ncloc_data:1=0;2=0;3=0;4=0;5=1;6=1;7=0;8=1;9=1;10=1;11=1;12=1;13=1;14=1;15=1;16=1;17=1;18=1;19=1;20=1;21=1;22=1;23=1;24=1;25=1;26=1;27=1;28=1;29=1;30=1;31=1;32=1;33=1;34=1;35=1;36=1;37=1;38=1;39=1;40=1;41=0;42=0;

+ 0
- 1
it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures View File

@@ -1,3 +1,2 @@
ncloc:36
ncloc_data:1=0;2=0;3=0;4=0;5=1;6=1;7=0;8=1;9=1;10=1;11=1;12=1;13=1;14=1;15=1;16=1;17=1;18=1;19=1;20=1;21=1;22=1;23=1;24=1;25=1;26=1;27=1;28=1;29=1;30=1;31=1;32=1;33=1;34=1;35=0;36=0;


+ 0
- 1
it/it-projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures View File

@@ -1,3 +1,2 @@
ncloc:81
ncloc_data:1=0;2=0;3=0;4=0;5=1;6=1;7=0;8=1;9=1;10=1;11=1;12=1;13=1;14=1;15=1;16=1;17=1;18=1;19=1;20=1;21=1;22=1;23=1;24=1;25=1;26=1;27=1;28=1;29=1;30=1;31=1;32=1;33=1;34=1;35=1;36=1;37=1;38=0;39=1;40=1;41=0;42=0;43=1;44=1;45=1;46=1;47=1;48=0;49=1;50=1;51=1;52=1;53=0;54=0;55=0;56=1;57=1;58=1;59=1;60=1;61=1;62=1;63=1;64=1;65=1;66=1;67=1;68=1;69=1;70=1;71=1;72=0;73=1;74=1;75=1;76=1;77=1;78=1;79=0;80=0;81=0;


+ 6
- 6
it/it-tests/src/test/java/it/duplication/NewDuplicationsTest.java View File

@@ -52,16 +52,16 @@ public class NewDuplicationsTest {
@Test
public void new_duplications_on_project() throws Exception {
Resource project = getComponent("new-duplications");
assertThat(project.getMeasure("new_ncloc").getVariation1()).isEqualTo(75d, DEFAULT_OFFSET);
assertThat(project.getMeasure("new_lines").getVariation1()).isEqualTo(83d, DEFAULT_OFFSET);
assertThat(project.getMeasure("new_duplicated_lines").getVariation1()).isEqualTo(71d, DEFAULT_OFFSET);
assertThat(project.getMeasure("new_duplicated_lines_density").getVariation1()).isEqualTo(94.7d, DEFAULT_OFFSET);
assertThat(project.getMeasure("new_duplicated_lines_density").getVariation1()).isEqualTo(85.5d, DEFAULT_OFFSET);
assertThat(project.getMeasure("new_duplicated_blocks").getVariation1()).isEqualTo(12d, DEFAULT_OFFSET);
}

@Test
public void new_duplications_on_directory() throws Exception {
Resource project = getComponent("new-duplications:src/main/xoo/duplicated_lines_with_other_dir1");
assertThat(project.getMeasure("new_ncloc").getVariation1()).isEqualTo(24d, DEFAULT_OFFSET);
assertThat(project.getMeasure("new_lines").getVariation1()).isEqualTo(24d, DEFAULT_OFFSET);
assertThat(project.getMeasure("new_duplicated_lines").getVariation1()).isEqualTo(24d, DEFAULT_OFFSET);
assertThat(project.getMeasure("new_duplicated_lines_density").getVariation1()).isEqualTo(100d, DEFAULT_OFFSET);
assertThat(project.getMeasure("new_duplicated_blocks").getVariation1()).isEqualTo(7d, DEFAULT_OFFSET);
@@ -70,15 +70,15 @@ public class NewDuplicationsTest {
@Test
public void new_duplications_on_file() throws Exception {
Resource project = getComponent("new-duplications:src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo");
assertThat(project.getMeasure("new_ncloc").getVariation1()).isEqualTo(33d, DEFAULT_OFFSET);
assertThat(project.getMeasure("new_lines").getVariation1()).isEqualTo(41d, DEFAULT_OFFSET);
assertThat(project.getMeasure("new_duplicated_lines").getVariation1()).isEqualTo(29d, DEFAULT_OFFSET);
assertThat(project.getMeasure("new_duplicated_lines_density").getVariation1()).isEqualTo(87.9d, DEFAULT_OFFSET);
assertThat(project.getMeasure("new_duplicated_lines_density").getVariation1()).isEqualTo(70.7d, DEFAULT_OFFSET);
assertThat(project.getMeasure("new_duplicated_blocks").getVariation1()).isEqualTo(2d, DEFAULT_OFFSET);
}

private static Resource getComponent(String key) {
Resource component = orchestrator.getServer().getWsClient()
.find(ResourceQuery.createForMetrics(key, "new_ncloc", "new_duplicated_lines", "new_duplicated_lines_density", "new_duplicated_blocks").setIncludeTrends(true));
.find(ResourceQuery.createForMetrics(key, "new_lines", "new_duplicated_lines", "new_duplicated_lines_density", "new_duplicated_blocks").setIncludeTrends(true));
assertThat(component).isNotNull();
return component;
}

+ 12
- 45
server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/NewSizeMeasuresStep.java View File

@@ -35,7 +35,6 @@ import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import org.sonar.api.utils.KeyValueFormat;
import org.sonar.server.computation.task.projectanalysis.component.Component;
import org.sonar.server.computation.task.projectanalysis.component.PathAwareCrawler;
import org.sonar.server.computation.task.projectanalysis.component.TreeRootHolder;
@@ -53,7 +52,6 @@ import org.sonar.server.computation.task.projectanalysis.formula.counter.IntVari
import org.sonar.server.computation.task.projectanalysis.measure.Measure;
import org.sonar.server.computation.task.projectanalysis.measure.MeasureRepository;
import org.sonar.server.computation.task.projectanalysis.measure.MeasureVariations;
import org.sonar.server.computation.task.projectanalysis.metric.Metric;
import org.sonar.server.computation.task.projectanalysis.metric.MetricRepository;
import org.sonar.server.computation.task.projectanalysis.period.Period;
import org.sonar.server.computation.task.projectanalysis.period.PeriodsHolder;
@@ -63,12 +61,10 @@ import org.sonar.server.computation.task.projectanalysis.scm.ScmInfoRepository;
import org.sonar.server.computation.task.step.ComputationStep;

import static java.util.stream.Collectors.toMap;
import static org.sonar.api.measures.CoreMetrics.NCLOC_DATA_KEY;
import static org.sonar.api.measures.CoreMetrics.NEW_BLOCKS_DUPLICATED_KEY;
import static org.sonar.api.measures.CoreMetrics.NEW_DUPLICATED_LINES_DENSITY_KEY;
import static org.sonar.api.measures.CoreMetrics.NEW_DUPLICATED_LINES_KEY;
import static org.sonar.api.measures.CoreMetrics.NEW_NCLOC_KEY;
import static org.sonar.api.utils.KeyValueFormat.newIntegerConverter;
import static org.sonar.api.measures.CoreMetrics.NEW_LINES_KEY;

/**
* Computes measures on new code related to the size
@@ -87,7 +83,7 @@ public class NewSizeMeasuresStep implements ComputationStep {
this.periodsHolder = periodsHolder;
this.metricRepository = metricRepository;
this.measureRepository = measureRepository;
this.duplicationFormula = new NewDuplicationFormula(measureRepository, metricRepository, scmInfoRepository, duplicationRepository);
this.duplicationFormula = new NewDuplicationFormula(scmInfoRepository, duplicationRepository);
}

@Override
@@ -105,20 +101,16 @@ public class NewSizeMeasuresStep implements ComputationStep {
}

private static class NewSizeCounter implements Counter<NewSizeCounter> {
private final MeasureRepository measureRepository;
private final DuplicationRepository duplicationRepository;
private final ScmInfoRepository scmInfoRepository;
private final Metric nclocDataMetric;
private final IntVariationValue.Array newLines = IntVariationValue.newArray();
private final IntVariationValue.Array newDuplicatedLines = IntVariationValue.newArray();
private final IntVariationValue.Array newDuplicatedBlocks = IntVariationValue.newArray();

private NewSizeCounter(MeasureRepository measureRepository, MetricRepository metricRepository, DuplicationRepository duplicationRepository,
private NewSizeCounter(DuplicationRepository duplicationRepository,
ScmInfoRepository scmInfoRepository) {
this.measureRepository = measureRepository;
this.duplicationRepository = duplicationRepository;
this.scmInfoRepository = scmInfoRepository;
this.nclocDataMetric = metricRepository.getByKey(NCLOC_DATA_KEY);
}

@Override
@@ -144,20 +136,14 @@ public class NewSizeMeasuresStep implements ComputationStep {
return;
}

initNewLines(leaf, scmInfo.get(), context.getPeriods());
initNewLines(scmInfo.get(), context.getPeriods());
initNewDuplicated(leaf, scmInfo.get(), context.getPeriods());
}

private void initNewLines(Component component, ScmInfo scmInfo, List<Period> periods) {
Optional<Measure> nclocData = measureRepository.getRawMeasure(component, nclocDataMetric);
if (!nclocData.isPresent()) {
return;
}
nclocLineNumbers(nclocData.get()).stream()
.map(scmInfo::getChangesetForLine)
.forEach(changeset -> periods.stream()
.filter(period -> isLineInPeriod(changeset, period))
.forEach(period -> newLines.increment(period, 1)));
private void initNewLines(ScmInfo scmInfo, List<Period> periods) {
scmInfo.getAllChangesets().forEach(changeset -> periods.stream()
.filter(period -> isLineInPeriod(changeset, period))
.forEach(period -> newLines.increment(period, 1)));
}

private void initNewDuplicated(Component component, ScmInfo scmInfo, List<Period> periods) {
@@ -178,21 +164,6 @@ public class NewSizeMeasuresStep implements ComputationStep {
});
}

/**
* NCLOC_DATA contains Key-value pairs, where key - is a line number, and value - is an indicator of whether line
* contains code (1) or not (0).
*
* This method parses the value of the NCLOC_DATA measure and return the line numbers which contain code.
*/
private static List<Integer> nclocLineNumbers(Measure nclocDataMeasure) {
Map<Integer, Integer> parsedNclocData = KeyValueFormat.parse(nclocDataMeasure.getData(), newIntegerConverter(), newIntegerConverter());
return parsedNclocData.entrySet()
.stream()
.filter(entry -> entry.getValue() == 1)
.map(Map.Entry::getKey)
.collect(Collectors.toList());
}

private static boolean isLineInPeriod(Changeset changeset, Period period) {
return changeset.getDate() > period.getSnapshotDate();
}
@@ -237,29 +208,25 @@ public class NewSizeMeasuresStep implements ComputationStep {
}

private static final class NewDuplicationFormula implements Formula<NewSizeCounter> {
private final MeasureRepository measureRepository;
private final MetricRepository metricRepository;
private final DuplicationRepository duplicationRepository;
private final ScmInfoRepository scmInfoRepository;

private NewDuplicationFormula(MeasureRepository measureRepository, MetricRepository metricRepository, ScmInfoRepository scmInfoRepository,
private NewDuplicationFormula(ScmInfoRepository scmInfoRepository,
DuplicationRepository duplicationRepository) {
this.measureRepository = measureRepository;
this.metricRepository = metricRepository;
this.duplicationRepository = duplicationRepository;
this.scmInfoRepository = scmInfoRepository;
}

@Override
public NewSizeCounter createNewCounter() {
return new NewSizeCounter(measureRepository, metricRepository, duplicationRepository, scmInfoRepository);
return new NewSizeCounter(duplicationRepository, scmInfoRepository);
}

@Override
public Optional<Measure> createMeasure(NewSizeCounter counter, CreateMeasureContext context) {
String metricKey = context.getMetric().getKey();
switch (metricKey) {
case NEW_NCLOC_KEY:
case NEW_LINES_KEY:
return createMeasure(counter.newLines.toMeasureVariations());
case NEW_DUPLICATED_LINES_KEY:
return createMeasure(counter.newDuplicatedLines.toMeasureVariations());
@@ -298,7 +265,7 @@ public class NewSizeMeasuresStep implements ComputationStep {

@Override
public String[] getOutputMetricKeys() {
return new String[] {NEW_NCLOC_KEY, NEW_DUPLICATED_LINES_KEY, NEW_DUPLICATED_LINES_DENSITY_KEY, NEW_BLOCKS_DUPLICATED_KEY};
return new String[] {NEW_LINES_KEY, NEW_DUPLICATED_LINES_KEY, NEW_DUPLICATED_LINES_DENSITY_KEY, NEW_BLOCKS_DUPLICATED_KEY};
}
}
}

+ 22
- 53
server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/NewSizeMeasuresStepTest.java View File

@@ -21,20 +21,13 @@
package org.sonar.server.computation.task.projectanalysis.step;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import javax.annotation.Nullable;
import org.assertj.core.data.Offset;
import org.junit.Rule;
import org.junit.Test;
import org.sonar.api.utils.KeyValueFormat;
import org.sonar.server.computation.task.projectanalysis.component.TreeRootHolderRule;
import org.sonar.server.computation.task.projectanalysis.duplication.DuplicationRepositoryRule;
import org.sonar.server.computation.task.projectanalysis.duplication.TextBlock;
import org.sonar.server.computation.task.projectanalysis.measure.Measure;
import org.sonar.server.computation.task.projectanalysis.measure.MeasureRepositoryRule;
import org.sonar.server.computation.task.projectanalysis.measure.MeasureVariations;
import org.sonar.server.computation.task.projectanalysis.metric.MetricRepositoryRule;
@@ -46,16 +39,14 @@ import org.sonar.server.computation.task.projectanalysis.scm.ScmInfoRepositoryRu
import static com.google.common.base.Preconditions.checkArgument;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.guava.api.Assertions.assertThat;
import static org.sonar.api.measures.CoreMetrics.NCLOC_DATA;
import static org.sonar.api.measures.CoreMetrics.NCLOC_DATA_KEY;
import static org.sonar.api.measures.CoreMetrics.NEW_BLOCKS_DUPLICATED;
import static org.sonar.api.measures.CoreMetrics.NEW_BLOCKS_DUPLICATED_KEY;
import static org.sonar.api.measures.CoreMetrics.NEW_DUPLICATED_LINES;
import static org.sonar.api.measures.CoreMetrics.NEW_DUPLICATED_LINES_DENSITY;
import static org.sonar.api.measures.CoreMetrics.NEW_DUPLICATED_LINES_DENSITY_KEY;
import static org.sonar.api.measures.CoreMetrics.NEW_DUPLICATED_LINES_KEY;
import static org.sonar.api.measures.CoreMetrics.NEW_NCLOC;
import static org.sonar.api.measures.CoreMetrics.NEW_NCLOC_KEY;
import static org.sonar.api.measures.CoreMetrics.NEW_LINES;
import static org.sonar.api.measures.CoreMetrics.NEW_LINES_KEY;
import static org.sonar.api.utils.DateUtils.parseDate;
import static org.sonar.server.computation.task.projectanalysis.component.Component.Type.DIRECTORY;
import static org.sonar.server.computation.task.projectanalysis.component.Component.Type.FILE;
@@ -113,8 +104,7 @@ public class NewSizeMeasuresStepTest {

@Rule
public MetricRepositoryRule metricRepository = new MetricRepositoryRule()
.add(NCLOC_DATA)
.add(NEW_NCLOC)
.add(NEW_LINES)
.add(NEW_DUPLICATED_LINES)
.add(NEW_DUPLICATED_LINES_DENSITY)
.add(NEW_BLOCKS_DUPLICATED);
@@ -130,40 +120,34 @@ public class NewSizeMeasuresStepTest {

@Test
public void compute_new_lines() {
setChangesets(FILE_1_REF, FILE_2_REF, FILE_3_REF, FILE_4_REF);
setNclocsExcept(FILE_1_REF, 2, 4, 6);
setNclocsExcept(FILE_2_REF);
setNclocsExcept(FILE_3_REF, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
setNclocsExcept(FILE_4_REF, 1, 2);
setChangesets(FILE_1_REF, FILE_2_REF, FILE_4_REF);

underTest.execute();

assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(FILE_1_REF, NEW_NCLOC_KEY, 12 - 1 - 3);
assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(FILE_2_REF, NEW_NCLOC_KEY, 12 - 1);
assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(FILE_3_REF, NEW_NCLOC_KEY, 0);
assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(FILE_4_REF, NEW_NCLOC_KEY, 12 - 1 - 2);
assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(DIRECTORY_REF, NEW_NCLOC_KEY, 19);
assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(DIRECTORY_2_REF, NEW_NCLOC_KEY, 0);
assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(SUB_MODULE_1_REF, NEW_NCLOC_KEY, 19);
assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(SUB_MODULE_2_REF, NEW_NCLOC_KEY, 9);
assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(MODULE_REF, NEW_NCLOC_KEY, 28);
assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(ROOT_REF, NEW_NCLOC_KEY, 28);
assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(FILE_1_REF, NEW_LINES_KEY, 11);
assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(FILE_2_REF, NEW_LINES_KEY, 11);
assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(FILE_3_REF, NEW_LINES_KEY, 0);
assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(FILE_4_REF, NEW_LINES_KEY, 11);
assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(DIRECTORY_REF, NEW_LINES_KEY, 22);
assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(DIRECTORY_2_REF, NEW_LINES_KEY, 0);
assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(SUB_MODULE_1_REF, NEW_LINES_KEY, 22);
assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(SUB_MODULE_2_REF, NEW_LINES_KEY, 11);
assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(MODULE_REF, NEW_LINES_KEY, 33);
assertRawMeasureValueOnPeriod2AndZeroOnPeriod5(ROOT_REF, NEW_LINES_KEY, 33);
}

@Test
public void compute_new_lines_with_no_changeset() {
setNclocsExcept(FILE_1_REF);

underTest.execute();

assertComputedAndAggregatedToZeroInt(NEW_NCLOC_KEY);
assertComputedAndAggregatedToZeroInt(NEW_LINES_KEY);
}

@Test
public void compute_new_lines_with_no_ncloc_data() {
underTest.execute();

assertComputedAndAggregatedToZeroInt(NEW_NCLOC_KEY);
assertComputedAndAggregatedToZeroInt(NEW_LINES_KEY);
}

@Test
@@ -343,47 +327,32 @@ public class NewSizeMeasuresStepTest {

@Test
public void compute_new_duplicated_lines_density() {
setChangesets(FILE_1_REF, FILE_2_REF, FILE_3_REF, FILE_4_REF);
setNclocsExcept(FILE_1_REF, 2, 4, 6);
setNclocsExcept(FILE_2_REF);
setNclocsExcept(FILE_3_REF, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
setNclocsExcept(FILE_4_REF, 1, 2);
setChangesets(FILE_1_REF, FILE_2_REF, FILE_4_REF);
addDuplicatedBlock(FILE_1_REF, 2);
addDuplicatedBlock(FILE_3_REF, 10);
addDuplicatedBlock(FILE_4_REF, 12);

underTest.execute();

assertRawMeasureValue(FILE_1_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 25d, null);
assertRawMeasureValue(FILE_1_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 18.2d, null);
assertRawMeasureValue(FILE_2_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 0d, null);
assertNoRawMeasure(FILE_3_REF, NEW_DUPLICATED_LINES_DENSITY_KEY);
assertRawMeasureValue(FILE_4_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 100d, null);
assertRawMeasureValue(DIRECTORY_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 10.5d, null);
assertRawMeasureValue(DIRECTORY_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 9.1d, null);
assertNoRawMeasure(DIRECTORY_2_REF, NEW_DUPLICATED_LINES_DENSITY_KEY);
assertRawMeasureValue(SUB_MODULE_1_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 10.5d,null);
assertRawMeasureValue(SUB_MODULE_1_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 9.1d, null);
assertRawMeasureValue(SUB_MODULE_2_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 100d, null);
assertRawMeasureValue(MODULE_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 78.6d, null);
assertRawMeasureValue(ROOT_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 78.6d, null);
assertRawMeasureValue(MODULE_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 39.4d, null);
assertRawMeasureValue(ROOT_REF, NEW_DUPLICATED_LINES_DENSITY_KEY, 39.4d, null);
}

@Test
public void compute_no_new_duplicated_lines_density_when_no_lines() {
setChangesets(FILE_1_REF, FILE_2_REF, FILE_3_REF, FILE_4_REF);

underTest.execute();

assertNoRawMeasures(NEW_DUPLICATED_LINES_DENSITY_KEY);
}

private void setNclocsExcept(int componentRef, Integer... lineNumbersNotLineOfCode) {
List<Integer> notLocNumbers = Arrays.asList(lineNumbersNotLineOfCode);
Map<Integer, Integer> nclocData = IntStream.rangeClosed(1, 12)
.filter(lineNumber -> !notLocNumbers.contains(lineNumber))
.boxed()
.collect(Collectors.toMap(Function.identity(), lineNumber -> 1));
measureRepository.addRawMeasure(componentRef, NCLOC_DATA_KEY, Measure.newMeasureBuilder().create(KeyValueFormat.format(nclocData)));
}

/**
* Adds duplication blocks of a single line (each line is specific to its block).
*

+ 2
- 2
sonar-core/src/main/resources/org/sonar/l10n/core.properties View File

@@ -2503,8 +2503,8 @@ metric.new_major_violations.description=New Major issues
metric.new_major_violations.name=New Major Issues
metric.new_minor_violations.description=New Minor issues
metric.new_minor_violations.name=New Minor Issues
metric.new_ncloc.name=New Lines of Code
metric.new_ncloc.description=New non commenting lines of code
metric.new_lines.name=Lines on New Code
metric.new_lines.description=Non commenting lines on new code
metric.new_overall_branch_coverage.description=Condition coverage of new/changed code by all tests
metric.new_overall_branch_coverage.name=Overall Condition Coverage on New Code
metric.new_overall_conditions_to_cover.description=New conditions to cover by all tests

+ 3
- 3
sonar-plugin-api/src/main/java/org/sonar/api/measures/CoreMetrics.java View File

@@ -132,12 +132,12 @@ public final class CoreMetrics {
/**
* @since 6.1
*/
public static final String NEW_NCLOC_KEY = "new_ncloc";
public static final String NEW_LINES_KEY = "new_lines";
/**
* @since 6.1
*/
public static final Metric<Integer> NEW_NCLOC = new Metric.Builder(NEW_NCLOC_KEY, "New Lines of Code", Metric.ValueType.INT)
.setDescription("New non commenting lines of code")
public static final Metric<Integer> NEW_LINES = new Metric.Builder(NEW_LINES_KEY, "Lines on New Code", Metric.ValueType.INT)
.setDescription("Non commenting lines on new code")
.setDirection(Metric.DIRECTION_WORST)
.setQualitative(false)
.setDomain(DOMAIN_SIZE)

Loading…
Cancel
Save