@@ -31,7 +31,7 @@ import org.slf4j.LoggerFactory; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.api.utils.internal.Uuids; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import org.sonar.db.source.FileSourceDao; | |||
import org.sonar.db.source.FileSourceDto; | |||
import org.sonar.server.source.index.FileSourcesUpdaterHelper; | |||
@@ -110,8 +110,8 @@ public class SourceDbBenchmarkTest { | |||
} | |||
private byte[] generateData() { | |||
FileSources.Data.Builder dataBuilder = FileSources.Data.newBuilder(); | |||
FileSources.Line.Builder lineBuilder = FileSources.Line.newBuilder(); | |||
DbFileSources.Data.Builder dataBuilder = DbFileSources.Data.newBuilder(); | |||
DbFileSources.Line.Builder lineBuilder = DbFileSources.Line.newBuilder(); | |||
for (int i = 1; i <= NUMBER_OF_LINES; i++) { | |||
lineBuilder.clear(); | |||
dataBuilder.addLines(lineBuilder |
@@ -31,7 +31,7 @@ import org.junit.Rule; | |||
import org.junit.Test; | |||
import org.slf4j.Logger; | |||
import org.slf4j.LoggerFactory; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import org.sonar.server.es.EsClient; | |||
import org.sonar.server.source.index.FileSourcesUpdaterHelper; | |||
import org.sonar.server.source.index.SourceLineDoc; | |||
@@ -115,8 +115,8 @@ public class SourceIndexBenchmarkTest { | |||
private final int nbLinesPerFile; | |||
private int currentProject = 0; | |||
private AtomicLong count = new AtomicLong(0L); | |||
private final FileSources.Data.Builder dataBuilder = FileSources.Data.newBuilder(); | |||
private final FileSources.Line.Builder lineBuilder = FileSources.Line.newBuilder(); | |||
private final DbFileSources.Data.Builder dataBuilder = DbFileSources.Data.newBuilder(); | |||
private final DbFileSources.Line.Builder lineBuilder = DbFileSources.Line.newBuilder(); | |||
SourceIterator(long nbFiles, int nbLinesPerFile) { | |||
this.nbFiles = nbFiles; |
@@ -26,7 +26,7 @@ import java.util.List; | |||
import org.apache.commons.codec.binary.Hex; | |||
import org.apache.commons.codec.digest.DigestUtils; | |||
import org.apache.commons.lang.StringUtils; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import static java.nio.charset.StandardCharsets.UTF_8; | |||
@@ -68,7 +68,7 @@ public class ComputeFileSourceData { | |||
data.srcMd5Digest.update(source.getBytes(UTF_8)); | |||
} | |||
FileSources.Line.Builder lineBuilder = data.fileSourceBuilder.addLinesBuilder() | |||
DbFileSources.Line.Builder lineBuilder = data.fileSourceBuilder.addLinesBuilder() | |||
.setSource(source) | |||
.setLine(currentLine); | |||
for (LineReader lineReader : lineReaders) { | |||
@@ -91,10 +91,10 @@ public class ComputeFileSourceData { | |||
public static class Data { | |||
private final StringBuilder lineHashes; | |||
private final MessageDigest srcMd5Digest; | |||
private final FileSources.Data.Builder fileSourceBuilder; | |||
private final DbFileSources.Data.Builder fileSourceBuilder; | |||
public Data() { | |||
this.fileSourceBuilder = FileSources.Data.newBuilder(); | |||
this.fileSourceBuilder = DbFileSources.Data.newBuilder(); | |||
this.lineHashes = new StringBuilder(); | |||
this.srcMd5Digest = DigestUtils.getMd5Digest(); | |||
} | |||
@@ -107,7 +107,7 @@ public class ComputeFileSourceData { | |||
return lineHashes.toString(); | |||
} | |||
public FileSources.Data getFileSourceData() { | |||
public DbFileSources.Data getFileSourceData() { | |||
return fileSourceBuilder.build(); | |||
} | |||
} |
@@ -20,12 +20,10 @@ | |||
package org.sonar.server.computation.source; | |||
import org.sonar.batch.protocol.output.BatchReport; | |||
import org.sonar.db.FileSources; | |||
import javax.annotation.CheckForNull; | |||
import java.util.Iterator; | |||
import javax.annotation.CheckForNull; | |||
import org.sonar.batch.protocol.output.BatchReport; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
public class CoverageLineReader implements LineReader { | |||
@@ -37,7 +35,7 @@ public class CoverageLineReader implements LineReader { | |||
} | |||
@Override | |||
public void read(FileSources.Line.Builder lineBuilder) { | |||
public void read(DbFileSources.Line.Builder lineBuilder) { | |||
BatchReport.Coverage reportCoverage = getNextLineCoverageIfMatchLine(lineBuilder.getLine()); | |||
if (reportCoverage != null) { | |||
processUnitTest(lineBuilder, reportCoverage); | |||
@@ -47,7 +45,7 @@ public class CoverageLineReader implements LineReader { | |||
} | |||
} | |||
private static void processUnitTest(FileSources.Line.Builder lineBuilder, BatchReport.Coverage reportCoverage){ | |||
private static void processUnitTest(DbFileSources.Line.Builder lineBuilder, BatchReport.Coverage reportCoverage) { | |||
if (reportCoverage.hasUtHits()) { | |||
lineBuilder.setUtLineHits(reportCoverage.getUtHits() ? 1 : 0); | |||
} | |||
@@ -57,7 +55,7 @@ public class CoverageLineReader implements LineReader { | |||
} | |||
} | |||
private static void processIntegrationTest(FileSources.Line.Builder lineBuilder, BatchReport.Coverage reportCoverage){ | |||
private static void processIntegrationTest(DbFileSources.Line.Builder lineBuilder, BatchReport.Coverage reportCoverage) { | |||
if (reportCoverage.hasItHits()) { | |||
lineBuilder.setItLineHits(reportCoverage.getItHits() ? 1 : 0); | |||
} | |||
@@ -67,7 +65,7 @@ public class CoverageLineReader implements LineReader { | |||
} | |||
} | |||
private static void processOverallTest(FileSources.Line.Builder lineBuilder, BatchReport.Coverage reportCoverage){ | |||
private static void processOverallTest(DbFileSources.Line.Builder lineBuilder, BatchReport.Coverage reportCoverage) { | |||
if (reportCoverage.hasUtHits() || reportCoverage.hasItHits()) { | |||
lineBuilder.setOverallLineHits((reportCoverage.getUtHits() || reportCoverage.getItHits()) ? 1 : 0); | |||
} |
@@ -27,7 +27,7 @@ import java.util.Iterator; | |||
import java.util.List; | |||
import java.util.Map; | |||
import org.sonar.batch.protocol.output.BatchReport; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import static com.google.common.collect.Lists.newArrayList; | |||
import static com.google.common.collect.Maps.newHashMap; | |||
@@ -47,7 +47,7 @@ public class DuplicationLineReader implements LineReader { | |||
} | |||
@Override | |||
public void read(FileSources.Line.Builder lineBuilder) { | |||
public void read(DbFileSources.Line.Builder lineBuilder) { | |||
int line = lineBuilder.getLine(); | |||
List<BatchReport.TextRange> blocks = findDuplicationBlockMatchingLine(line); | |||
for (BatchReport.TextRange block : blocks) { |
@@ -27,7 +27,7 @@ import java.util.Map; | |||
import javax.annotation.CheckForNull; | |||
import org.sonar.batch.protocol.Constants; | |||
import org.sonar.batch.protocol.output.BatchReport; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import static com.google.common.collect.Lists.newArrayList; | |||
@@ -56,7 +56,7 @@ public class HighlightingLineReader implements LineReader { | |||
} | |||
@Override | |||
public void read(FileSources.Line.Builder lineBuilder) { | |||
public void read(DbFileSources.Line.Builder lineBuilder) { | |||
int line = lineBuilder.getLine(); | |||
StringBuilder highlighting = new StringBuilder(); | |||
@@ -20,10 +20,10 @@ | |||
package org.sonar.server.computation.source; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
public interface LineReader { | |||
void read(FileSources.Line.Builder lineBuilder); | |||
void read(DbFileSources.Line.Builder lineBuilder); | |||
} |
@@ -21,7 +21,7 @@ | |||
package org.sonar.server.computation.source; | |||
import org.sonar.batch.protocol.output.BatchReport; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
public class ScmLineReader implements LineReader { | |||
@@ -32,7 +32,7 @@ public class ScmLineReader implements LineReader { | |||
} | |||
@Override | |||
public void read(FileSources.Line.Builder lineBuilder) { | |||
public void read(DbFileSources.Line.Builder lineBuilder) { | |||
int changeSetIndex = scmReport.getChangesetIndexByLine(lineBuilder.getLine() - 1); | |||
BatchReport.Changesets.Changeset changeset = scmReport.getChangeset(changeSetIndex); | |||
boolean hasAuthor = changeset.hasAuthor(); |
@@ -32,7 +32,7 @@ import java.util.List; | |||
import java.util.Map; | |||
import java.util.Set; | |||
import org.sonar.batch.protocol.output.BatchReport; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
public class SymbolsLineReader implements LineReader { | |||
@@ -49,7 +49,7 @@ public class SymbolsLineReader implements LineReader { | |||
} | |||
@Override | |||
public void read(FileSources.Line.Builder lineBuilder) { | |||
public void read(DbFileSources.Line.Builder lineBuilder) { | |||
int line = lineBuilder.getLine(); | |||
List<BatchReport.Symbol> lineSymbols = findSymbolsMatchingLine(line); | |||
for (BatchReport.Symbol lineSymbol : lineSymbols) { |
@@ -47,7 +47,7 @@ import org.sonar.server.computation.source.HighlightingLineReader; | |||
import org.sonar.server.computation.source.LineReader; | |||
import org.sonar.server.computation.source.ScmLineReader; | |||
import org.sonar.server.computation.source.SymbolsLineReader; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import static org.sonar.server.computation.component.ComponentVisitor.Order.PRE_ORDER; | |||
@@ -120,7 +120,7 @@ public class PersistFileSourcesStep implements ComputationStep { | |||
} | |||
private void persistSource(ComputeFileSourceData.Data fileSourceData, String componentUuid) { | |||
FileSources.Data fileData = fileSourceData.getFileSourceData(); | |||
DbFileSources.Data fileData = fileSourceData.getFileSourceData(); | |||
byte[] data = FileSourceDto.encodeSourceData(fileData); | |||
String dataHash = DigestUtils.md5Hex(data); |
@@ -43,8 +43,8 @@ import org.sonar.batch.protocol.output.BatchReport; | |||
import org.sonar.core.util.CloseableIterator; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.MyBatis; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import org.sonar.db.source.FileSourceDto; | |||
import org.sonar.db.source.FileSourceDto.Type; | |||
import org.sonar.server.computation.batch.BatchReportReader; | |||
@@ -120,9 +120,9 @@ public class PersistTestsStep implements ComputationStep { | |||
} | |||
private void persistTestResults(Component component) { | |||
Multimap<String, FileSources.Test.Builder> testsByName = buildDbTests(component.getRef()); | |||
Table<String, String, FileSources.Test.CoveredFile.Builder> coveredFilesByName = loadCoverageDetails(component.getRef()); | |||
List<FileSources.Test> tests = addCoveredFilesToTests(testsByName, coveredFilesByName); | |||
Multimap<String, DbFileSources.Test.Builder> testsByName = buildDbTests(component.getRef()); | |||
Table<String, String, DbFileSources.Test.CoveredFile.Builder> coveredFilesByName = loadCoverageDetails(component.getRef()); | |||
List<DbFileSources.Test> tests = addCoveredFilesToTests(testsByName, coveredFilesByName); | |||
if (checkIfThereAreUnprocessedCoverageDetails(testsByName, coveredFilesByName, component.getKey())) { | |||
hasUnprocessedCoverageDetails = true; | |||
} | |||
@@ -153,8 +153,8 @@ public class PersistTestsStep implements ComputationStep { | |||
} | |||
} | |||
private boolean checkIfThereAreUnprocessedCoverageDetails(Multimap<String, FileSources.Test.Builder> testsByName, | |||
Table<String, String, FileSources.Test.CoveredFile.Builder> coveredFilesByName, String componentKey) { | |||
private boolean checkIfThereAreUnprocessedCoverageDetails(Multimap<String, DbFileSources.Test.Builder> testsByName, | |||
Table<String, String, DbFileSources.Test.CoveredFile.Builder> coveredFilesByName, String componentKey) { | |||
Set<String> unprocessedCoverageDetailNames = new HashSet<>(coveredFilesByName.rowKeySet()); | |||
unprocessedCoverageDetailNames.removeAll(testsByName.keySet()); | |||
boolean hasUnprocessedCoverage = !unprocessedCoverageDetailNames.isEmpty(); | |||
@@ -164,13 +164,13 @@ public class PersistTestsStep implements ComputationStep { | |||
return hasUnprocessedCoverage; | |||
} | |||
private List<FileSources.Test> addCoveredFilesToTests(Multimap<String, FileSources.Test.Builder> testsByName, | |||
Table<String, String, FileSources.Test.CoveredFile.Builder> coveredFilesByName) { | |||
List<FileSources.Test> tests = new ArrayList<>(); | |||
for (FileSources.Test.Builder test : testsByName.values()) { | |||
Collection<FileSources.Test.CoveredFile.Builder> coveredFiles = coveredFilesByName.row(test.getName()).values(); | |||
private List<DbFileSources.Test> addCoveredFilesToTests(Multimap<String, DbFileSources.Test.Builder> testsByName, | |||
Table<String, String, DbFileSources.Test.CoveredFile.Builder> coveredFilesByName) { | |||
List<DbFileSources.Test> tests = new ArrayList<>(); | |||
for (DbFileSources.Test.Builder test : testsByName.values()) { | |||
Collection<DbFileSources.Test.CoveredFile.Builder> coveredFiles = coveredFilesByName.row(test.getName()).values(); | |||
if (!coveredFiles.isEmpty()) { | |||
for (FileSources.Test.CoveredFile.Builder coveredFile : coveredFiles) { | |||
for (DbFileSources.Test.CoveredFile.Builder coveredFile : coveredFiles) { | |||
test.addCoveredFile(coveredFile); | |||
} | |||
} | |||
@@ -180,20 +180,20 @@ public class PersistTestsStep implements ComputationStep { | |||
return tests; | |||
} | |||
private Multimap<String, FileSources.Test.Builder> buildDbTests(int componentRed) { | |||
Multimap<String, FileSources.Test.Builder> tests = ArrayListMultimap.create(); | |||
private Multimap<String, DbFileSources.Test.Builder> buildDbTests(int componentRed) { | |||
Multimap<String, DbFileSources.Test.Builder> tests = ArrayListMultimap.create(); | |||
try (CloseableIterator<BatchReport.Test> testIterator = reportReader.readTests(componentRed)) { | |||
while (testIterator.hasNext()) { | |||
BatchReport.Test batchTest = testIterator.next(); | |||
FileSources.Test.Builder dbTest = FileSources.Test.newBuilder(); | |||
DbFileSources.Test.Builder dbTest = DbFileSources.Test.newBuilder(); | |||
dbTest.setUuid(Uuids.create()); | |||
dbTest.setName(batchTest.getName()); | |||
if (batchTest.hasStacktrace()) { | |||
dbTest.setStacktrace(batchTest.getStacktrace()); | |||
} | |||
if (batchTest.hasStatus()) { | |||
dbTest.setStatus(FileSources.Test.TestStatus.valueOf(batchTest.getStatus().name())); | |||
dbTest.setStatus(DbFileSources.Test.TestStatus.valueOf(batchTest.getStatus().name())); | |||
} | |||
if (batchTest.hasMsg()) { | |||
dbTest.setMsg(batchTest.getMsg()); | |||
@@ -212,8 +212,8 @@ public class PersistTestsStep implements ComputationStep { | |||
/** | |||
* returns a Table of (test name, main file uuid, covered file) | |||
*/ | |||
private Table<String, String, FileSources.Test.CoveredFile.Builder> loadCoverageDetails(int testFileRef) { | |||
Table<String, String, FileSources.Test.CoveredFile.Builder> nameToCoveredFiles = HashBasedTable.create(); | |||
private Table<String, String, DbFileSources.Test.CoveredFile.Builder> loadCoverageDetails(int testFileRef) { | |||
Table<String, String, DbFileSources.Test.CoveredFile.Builder> nameToCoveredFiles = HashBasedTable.create(); | |||
try (CloseableIterator<BatchReport.CoverageDetail> coverageIterator = reportReader.readCoverageDetails(testFileRef)) { | |||
while (coverageIterator.hasNext()) { | |||
@@ -221,10 +221,10 @@ public class PersistTestsStep implements ComputationStep { | |||
for (BatchReport.CoverageDetail.CoveredFile batchCoveredFile : batchCoverageDetail.getCoveredFileList()) { | |||
String testName = batchCoverageDetail.getTestName(); | |||
String mainFileUuid = getUuid(batchCoveredFile.getFileRef()); | |||
FileSources.Test.CoveredFile.Builder existingDbCoveredFile = nameToCoveredFiles.get(testName, mainFileUuid); | |||
DbFileSources.Test.CoveredFile.Builder existingDbCoveredFile = nameToCoveredFiles.get(testName, mainFileUuid); | |||
List<Integer> batchCoveredLines = batchCoveredFile.getCoveredLineList(); | |||
if (existingDbCoveredFile == null) { | |||
FileSources.Test.CoveredFile.Builder dbCoveredFile = FileSources.Test.CoveredFile.newBuilder() | |||
DbFileSources.Test.CoveredFile.Builder dbCoveredFile = DbFileSources.Test.CoveredFile.newBuilder() | |||
.setFileUuid(getUuid(batchCoveredFile.getFileRef())) | |||
.addAllCoveredLine(batchCoveredLines); | |||
nameToCoveredFiles.put(testName, mainFileUuid, dbCoveredFile); |
@@ -19,17 +19,6 @@ | |||
*/ | |||
package org.sonar.server.source.index; | |||
import org.elasticsearch.action.update.UpdateRequest; | |||
import org.sonar.api.utils.text.JsonWriter; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.source.FileSourceDto; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.ResultSetIterator; | |||
import org.sonar.server.es.EsUtils; | |||
import javax.annotation.Nullable; | |||
import java.io.ByteArrayOutputStream; | |||
import java.io.OutputStreamWriter; | |||
import java.nio.charset.StandardCharsets; | |||
@@ -37,6 +26,15 @@ import java.sql.PreparedStatement; | |||
import java.sql.ResultSet; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import javax.annotation.Nullable; | |||
import org.elasticsearch.action.update.UpdateRequest; | |||
import org.sonar.api.utils.text.JsonWriter; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.ResultSetIterator; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import org.sonar.db.source.FileSourceDto; | |||
import org.sonar.server.es.EsUtils; | |||
import static org.sonar.server.source.index.FileSourcesUpdaterHelper.Row; | |||
@@ -64,16 +62,16 @@ public class SourceLineResultSetIterator extends ResultSetIterator<FileSourcesUp | |||
String projectUuid = rs.getString(1); | |||
String fileUuid = rs.getString(2); | |||
Date updatedAt = new Date(rs.getLong(3)); | |||
FileSources.Data data = FileSourceDto.decodeSourceData(rs.getBinaryStream(4)); | |||
DbFileSources.Data data = FileSourceDto.decodeSourceData(rs.getBinaryStream(4)); | |||
return toRow(projectUuid, fileUuid, updatedAt, data); | |||
} | |||
/** | |||
* Convert protobuf message to data required for Elasticsearch indexing | |||
*/ | |||
public static Row toRow(String projectUuid, String fileUuid, Date updatedAt, FileSources.Data data) { | |||
public static Row toRow(String projectUuid, String fileUuid, Date updatedAt, DbFileSources.Data data) { | |||
Row result = new Row(projectUuid, fileUuid, updatedAt.getTime()); | |||
for (FileSources.Line line : data.getLinesList()) { | |||
for (DbFileSources.Line line : data.getLinesList()) { | |||
ByteArrayOutputStream bytes = new ByteArrayOutputStream(); | |||
// all the fields must be present, even if value is null |
@@ -33,8 +33,8 @@ import org.elasticsearch.action.update.UpdateRequest; | |||
import org.sonar.api.utils.text.JsonWriter; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.ResultSetIterator; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import org.sonar.db.source.FileSourceDto; | |||
import org.sonar.server.source.index.FileSourcesUpdaterHelper; | |||
import org.sonar.server.source.index.FileSourcesUpdaterHelper.Row; | |||
@@ -76,16 +76,16 @@ public class TestResultSetIterator extends ResultSetIterator<Row> { | |||
String projectUuid = rs.getString(1); | |||
String fileUuid = rs.getString(2); | |||
Date updatedAt = new Date(rs.getLong(3)); | |||
List<FileSources.Test> data = FileSourceDto.decodeTestData(rs.getBinaryStream(4)); | |||
List<DbFileSources.Test> data = FileSourceDto.decodeTestData(rs.getBinaryStream(4)); | |||
return toRow(projectUuid, fileUuid, updatedAt, data); | |||
} | |||
/** | |||
* Convert protobuf message to tests required for Elasticsearch indexing | |||
*/ | |||
public static Row toRow(String projectUuid, String fileUuid, Date updatedAt, List<FileSources.Test> tests) { | |||
public static Row toRow(String projectUuid, String fileUuid, Date updatedAt, List<DbFileSources.Test> tests) { | |||
Row result = new Row(projectUuid, fileUuid, updatedAt.getTime()); | |||
for (FileSources.Test test : tests) { | |||
for (DbFileSources.Test test : tests) { | |||
ByteArrayOutputStream bytes = new ByteArrayOutputStream(); | |||
// all the fields must be present, even if value is null | |||
@@ -101,7 +101,7 @@ public class TestResultSetIterator extends ResultSetIterator<Row> { | |||
writer.prop(FIELD_STACKTRACE, test.hasStacktrace() ? test.getStacktrace() : null); | |||
writer.name(FIELD_COVERED_FILES); | |||
writer.beginArray(); | |||
for (FileSources.Test.CoveredFile coveredFile : test.getCoveredFileList()) { | |||
for (DbFileSources.Test.CoveredFile coveredFile : test.getCoveredFileList()) { | |||
writer.beginObject(); | |||
writer.prop(FIELD_COVERED_FILE_UUID, coveredFile.getFileUuid()); | |||
writer.name(FIELD_COVERED_FILE_LINES).valueObject(coveredFile.getCoveredLineList()); |
@@ -22,7 +22,7 @@ package org.sonar.server.computation.source; | |||
import com.google.common.collect.Lists; | |||
import org.junit.Test; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import static com.google.common.collect.Lists.newArrayList; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
@@ -97,7 +97,7 @@ public class ComputeFileSourceDataTest { | |||
private static class MockLineReader implements LineReader { | |||
@Override | |||
public void read(FileSources.Line.Builder lineBuilder) { | |||
public void read(DbFileSources.Line.Builder lineBuilder) { | |||
lineBuilder.setHighlighting("h-" + lineBuilder.getLine()); | |||
} | |||
} |
@@ -23,7 +23,7 @@ package org.sonar.server.computation.source; | |||
import java.util.Collections; | |||
import org.junit.Test; | |||
import org.sonar.batch.protocol.output.BatchReport; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import static com.google.common.collect.Lists.newArrayList; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
@@ -42,7 +42,7 @@ public class CoverageLineReaderTest { | |||
.setOverallCoveredConditions(4) | |||
.build()).iterator()); | |||
FileSources.Line.Builder lineBuilder = FileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
computeCoverageLine.read(lineBuilder); | |||
assertThat(lineBuilder.getUtLineHits()).isEqualTo(1); | |||
@@ -62,7 +62,7 @@ public class CoverageLineReaderTest { | |||
.setItHits(false) | |||
.build()).iterator()); | |||
FileSources.Line.Builder lineBuilder = FileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
computeCoverageLine.read(lineBuilder); | |||
assertThat(lineBuilder.hasUtLineHits()).isTrue(); | |||
@@ -79,7 +79,7 @@ public class CoverageLineReaderTest { | |||
.setLine(1) | |||
.build()).iterator()); | |||
FileSources.Line.Builder lineBuilder = FileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
computeCoverageLine.read(lineBuilder); | |||
assertThat(lineBuilder.hasUtLineHits()).isFalse(); | |||
@@ -95,7 +95,7 @@ public class CoverageLineReaderTest { | |||
.setItHits(false) | |||
.build()).iterator()); | |||
FileSources.Line.Builder lineBuilder = FileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
computeCoverageLine.read(lineBuilder); | |||
assertThat(lineBuilder.getOverallLineHits()).isEqualTo(1); | |||
@@ -109,7 +109,7 @@ public class CoverageLineReaderTest { | |||
.setItHits(true) | |||
.build()).iterator()); | |||
FileSources.Line.Builder lineBuilder = FileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
computeCoverageLine.read(lineBuilder); | |||
assertThat(lineBuilder.getOverallLineHits()).isEqualTo(1); | |||
@@ -123,7 +123,7 @@ public class CoverageLineReaderTest { | |||
.setItHits(true) | |||
.build()).iterator()); | |||
FileSources.Line.Builder lineBuilder = FileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
computeCoverageLine.read(lineBuilder); | |||
assertThat(lineBuilder.getOverallLineHits()).isEqualTo(1); | |||
@@ -133,7 +133,7 @@ public class CoverageLineReaderTest { | |||
public void nothing_to_do_when_no_coverage_info() { | |||
CoverageLineReader computeCoverageLine = new CoverageLineReader(Collections.<BatchReport.Coverage>emptyList().iterator()); | |||
FileSources.Line.Builder lineBuilder = FileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
computeCoverageLine.read(lineBuilder); | |||
assertThat(lineBuilder.hasUtLineHits()).isFalse(); | |||
@@ -160,7 +160,7 @@ public class CoverageLineReaderTest { | |||
// No coverage info on line 2 | |||
).iterator()); | |||
FileSources.Line.Builder line2Builder = FileSources.Data.newBuilder().addLinesBuilder().setLine(2); | |||
DbFileSources.Line.Builder line2Builder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(2); | |||
computeCoverageLine.read(line2Builder); | |||
assertThat(line2Builder.hasUtLineHits()).isFalse(); | |||
@@ -187,9 +187,9 @@ public class CoverageLineReaderTest { | |||
// No coverage info on line 2 | |||
).iterator()); | |||
FileSources.Data.Builder fileSourceBuilder = FileSources.Data.newBuilder(); | |||
FileSources.Line.Builder line1Builder = fileSourceBuilder.addLinesBuilder().setLine(1); | |||
FileSources.Line.Builder line2Builder = fileSourceBuilder.addLinesBuilder().setLine(2); | |||
DbFileSources.Data.Builder fileSourceBuilder = DbFileSources.Data.newBuilder(); | |||
DbFileSources.Line.Builder line1Builder = fileSourceBuilder.addLinesBuilder().setLine(1); | |||
DbFileSources.Line.Builder line2Builder = fileSourceBuilder.addLinesBuilder().setLine(2); | |||
computeCoverageLine.read(line1Builder); | |||
computeCoverageLine.read(line2Builder); | |||
@@ -24,17 +24,17 @@ import com.google.common.collect.Iterators; | |||
import org.junit.Test; | |||
import org.sonar.batch.protocol.output.BatchReport; | |||
import org.sonar.core.util.CloseableIterator; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
public class DuplicationLineReaderTest { | |||
FileSources.Data.Builder sourceData = FileSources.Data.newBuilder(); | |||
FileSources.Line.Builder line1 = sourceData.addLinesBuilder().setSource("line1").setLine(1); | |||
FileSources.Line.Builder line2 = sourceData.addLinesBuilder().setSource("line2").setLine(2); | |||
FileSources.Line.Builder line3 = sourceData.addLinesBuilder().setSource("line3").setLine(3); | |||
FileSources.Line.Builder line4 = sourceData.addLinesBuilder().setSource("line4").setLine(4); | |||
DbFileSources.Data.Builder sourceData = DbFileSources.Data.newBuilder(); | |||
DbFileSources.Line.Builder line1 = sourceData.addLinesBuilder().setSource("line1").setLine(1); | |||
DbFileSources.Line.Builder line2 = sourceData.addLinesBuilder().setSource("line2").setLine(2); | |||
DbFileSources.Line.Builder line3 = sourceData.addLinesBuilder().setSource("line3").setLine(3); | |||
DbFileSources.Line.Builder line4 = sourceData.addLinesBuilder().setSource("line4").setLine(4); | |||
@Test | |||
public void read_nothing() { |
@@ -24,7 +24,7 @@ import java.util.Collections; | |||
import org.junit.Test; | |||
import org.sonar.batch.protocol.Constants; | |||
import org.sonar.batch.protocol.output.BatchReport; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import static com.google.common.collect.Lists.newArrayList; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
@@ -32,17 +32,17 @@ import static org.assertj.core.api.Assertions.failBecauseExceptionWasNotThrown; | |||
public class HighlightingLineReaderTest { | |||
FileSources.Data.Builder sourceData = FileSources.Data.newBuilder(); | |||
FileSources.Line.Builder line1 = sourceData.addLinesBuilder().setSource("line1").setLine(1); | |||
FileSources.Line.Builder line2 = sourceData.addLinesBuilder().setSource("line2").setLine(2); | |||
FileSources.Line.Builder line3 = sourceData.addLinesBuilder().setSource("line3").setLine(3); | |||
FileSources.Line.Builder line4 = sourceData.addLinesBuilder().setSource("line4").setLine(4); | |||
DbFileSources.Data.Builder sourceData = DbFileSources.Data.newBuilder(); | |||
DbFileSources.Line.Builder line1 = sourceData.addLinesBuilder().setSource("line1").setLine(1); | |||
DbFileSources.Line.Builder line2 = sourceData.addLinesBuilder().setSource("line2").setLine(2); | |||
DbFileSources.Line.Builder line3 = sourceData.addLinesBuilder().setSource("line3").setLine(3); | |||
DbFileSources.Line.Builder line4 = sourceData.addLinesBuilder().setSource("line4").setLine(4); | |||
@Test | |||
public void nothing_to_read() { | |||
HighlightingLineReader highlightingLineReader = new HighlightingLineReader(Collections.<BatchReport.SyntaxHighlighting>emptyList().iterator()); | |||
FileSources.Line.Builder lineBuilder = FileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
highlightingLineReader.read(lineBuilder); | |||
assertThat(lineBuilder.hasHighlighting()).isFalse(); | |||
@@ -159,7 +159,7 @@ public class HighlightingLineReaderTest { | |||
.build()).iterator()); | |||
highlightingLineReader.read(line1); | |||
FileSources.Line.Builder line2 = sourceData.addLinesBuilder().setSource("line 2").setLine(2); | |||
DbFileSources.Line.Builder line2 = sourceData.addLinesBuilder().setSource("line 2").setLine(2); | |||
highlightingLineReader.read(line2); | |||
highlightingLineReader.read(line3); | |||
@@ -22,7 +22,7 @@ package org.sonar.server.computation.source; | |||
import org.junit.Test; | |||
import org.sonar.batch.protocol.output.BatchReport; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.assertj.core.api.Assertions.failBecauseExceptionWasNotThrown; | |||
@@ -42,7 +42,7 @@ public class ScmLineReaderTest { | |||
ScmLineReader lineScm = new ScmLineReader(scmReport); | |||
FileSources.Line.Builder lineBuilder = FileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
lineScm.read(lineBuilder); | |||
assertThat(lineBuilder.getScmAuthor()).isEqualTo("john"); | |||
@@ -61,7 +61,7 @@ public class ScmLineReaderTest { | |||
ScmLineReader lineScm = new ScmLineReader(scmReport); | |||
FileSources.Line.Builder lineBuilder = FileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
lineScm.read(lineBuilder); | |||
assertThat(lineBuilder.getScmAuthor()).isEqualTo("john"); | |||
@@ -80,7 +80,7 @@ public class ScmLineReaderTest { | |||
ScmLineReader lineScm = new ScmLineReader(scmReport); | |||
FileSources.Line.Builder lineBuilder = FileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
lineScm.read(lineBuilder); | |||
assertThat(lineBuilder.hasScmAuthor()).isFalse(); | |||
@@ -99,7 +99,7 @@ public class ScmLineReaderTest { | |||
ScmLineReader lineScm = new ScmLineReader(scmReport); | |||
FileSources.Line.Builder lineBuilder = FileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
lineScm.read(lineBuilder); | |||
assertThat(lineBuilder.hasScmAuthor()).isFalse(); | |||
@@ -117,7 +117,7 @@ public class ScmLineReaderTest { | |||
ScmLineReader lineScm = new ScmLineReader(scmReport); | |||
FileSources.Line.Builder lineBuilder = FileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
DbFileSources.Line.Builder lineBuilder = DbFileSources.Data.newBuilder().addLinesBuilder().setLine(1); | |||
try { | |||
lineScm.read(lineBuilder); | |||
failBecauseExceptionWasNotThrown(IllegalArgumentException.class); |
@@ -24,18 +24,18 @@ import java.util.List; | |||
import org.junit.Test; | |||
import org.sonar.batch.protocol.output.BatchReport; | |||
import org.sonar.core.util.CloseableIterator; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import static com.google.common.collect.Lists.newArrayList; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
public class SymbolsLineReaderTest { | |||
FileSources.Data.Builder sourceData = FileSources.Data.newBuilder(); | |||
FileSources.Line.Builder line1 = sourceData.addLinesBuilder().setSource("line1").setLine(1); | |||
FileSources.Line.Builder line2 = sourceData.addLinesBuilder().setSource("line2").setLine(2); | |||
FileSources.Line.Builder line3 = sourceData.addLinesBuilder().setSource("line3").setLine(3); | |||
FileSources.Line.Builder line4 = sourceData.addLinesBuilder().setSource("line4").setLine(4); | |||
DbFileSources.Data.Builder sourceData = DbFileSources.Data.newBuilder(); | |||
DbFileSources.Line.Builder line1 = sourceData.addLinesBuilder().setSource("line1").setLine(1); | |||
DbFileSources.Line.Builder line2 = sourceData.addLinesBuilder().setSource("line2").setLine(2); | |||
DbFileSources.Line.Builder line3 = sourceData.addLinesBuilder().setSource("line3").setLine(3); | |||
DbFileSources.Line.Builder line4 = sourceData.addLinesBuilder().setSource("line4").setLine(4); | |||
@Test | |||
public void read_nothing() { |
@@ -33,7 +33,7 @@ import org.sonar.batch.protocol.Constants; | |||
import org.sonar.batch.protocol.output.BatchReport; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import org.sonar.db.source.FileSourceDto; | |||
import org.sonar.db.source.FileSourceDto.Type; | |||
import org.sonar.server.computation.batch.BatchReportReaderRule; | |||
@@ -105,7 +105,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest { | |||
assertThat(fileSourceDto.getCreatedAt()).isEqualTo(now); | |||
assertThat(fileSourceDto.getUpdatedAt()).isEqualTo(now); | |||
FileSources.Data data = FileSourceDto.decodeSourceData(fileSourceDto.getBinaryData()); | |||
DbFileSources.Data data = FileSourceDto.decodeSourceData(fileSourceDto.getBinaryData()); | |||
assertThat(data.getLinesCount()).isEqualTo(2); | |||
assertThat(data.getLines(0).getLine()).isEqualTo(1); | |||
assertThat(data.getLines(0).getSource()).isEqualTo("line1"); | |||
@@ -136,7 +136,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest { | |||
assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1); | |||
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID); | |||
FileSources.Data data = FileSourceDto.decodeSourceData(fileSourceDto.getBinaryData()); | |||
DbFileSources.Data data = FileSourceDto.decodeSourceData(fileSourceDto.getBinaryData()); | |||
assertThat(data.getLinesCount()).isEqualTo(3); | |||
assertThat(data.getLines(2).getLine()).isEqualTo(3); | |||
assertThat(data.getLines(2).getSource()).isEmpty(); | |||
@@ -172,7 +172,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest { | |||
assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1); | |||
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID); | |||
FileSources.Data data = FileSourceDto.decodeSourceData(fileSourceDto.getBinaryData()); | |||
DbFileSources.Data data = FileSourceDto.decodeSourceData(fileSourceDto.getBinaryData()); | |||
assertThat(data.getLinesList()).hasSize(1); | |||
@@ -205,7 +205,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest { | |||
assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1); | |||
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID); | |||
FileSources.Data data = FileSourceDto.decodeSourceData(fileSourceDto.getBinaryData()); | |||
DbFileSources.Data data = FileSourceDto.decodeSourceData(fileSourceDto.getBinaryData()); | |||
assertThat(data.getLinesList()).hasSize(1); | |||
@@ -230,7 +230,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest { | |||
assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1); | |||
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID); | |||
FileSources.Data data = FileSourceDto.decodeSourceData(fileSourceDto.getBinaryData()); | |||
DbFileSources.Data data = FileSourceDto.decodeSourceData(fileSourceDto.getBinaryData()); | |||
assertThat(data.getLinesList()).hasSize(1); | |||
@@ -255,7 +255,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest { | |||
assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1); | |||
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID); | |||
FileSources.Data data = FileSourceDto.decodeSourceData(fileSourceDto.getBinaryData()); | |||
DbFileSources.Data data = FileSourceDto.decodeSourceData(fileSourceDto.getBinaryData()); | |||
assertThat(data.getLinesList()).hasSize(3); | |||
@@ -286,7 +286,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest { | |||
assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1); | |||
FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID); | |||
FileSources.Data data = FileSourceDto.decodeSourceData(fileSourceDto.getBinaryData()); | |||
DbFileSources.Data data = FileSourceDto.decodeSourceData(fileSourceDto.getBinaryData()); | |||
assertThat(data.getLinesList()).hasSize(1); | |||
@@ -307,8 +307,8 @@ public class PersistFileSourcesStepTest extends BaseStepTest { | |||
.setSrcHash(srcHash) | |||
.setLineHashes(lineHashes) | |||
.setDataHash(dataHash) | |||
.setSourceData(FileSources.Data.newBuilder() | |||
.addLines(FileSources.Line.newBuilder() | |||
.setSourceData(DbFileSources.Data.newBuilder() | |||
.addLines(DbFileSources.Line.newBuilder() | |||
.setLine(1) | |||
.setSource("line1") | |||
.build()) | |||
@@ -342,8 +342,8 @@ public class PersistFileSourcesStepTest extends BaseStepTest { | |||
.setSrcHash("5b4bd9815cdb17b8ceae19eb1810c34c") | |||
.setLineHashes("6438c669e0d0de98e6929c2cc0fac474\n") | |||
.setDataHash("6cad150e3d065976c230cddc5a09efaa") | |||
.setSourceData(FileSources.Data.newBuilder() | |||
.addLines(FileSources.Line.newBuilder() | |||
.setSourceData(DbFileSources.Data.newBuilder() | |||
.addLines(DbFileSources.Line.newBuilder() | |||
.setLine(1) | |||
.setSource("old line") | |||
.build()) | |||
@@ -373,8 +373,8 @@ public class PersistFileSourcesStepTest extends BaseStepTest { | |||
// Source hash is missing, update will be made | |||
.setLineHashes("137f72c3708c6bd0de00a0e5a69c699b") | |||
.setDataHash("29f25900140c94db38035128cb6de6a2") | |||
.setSourceData(FileSources.Data.newBuilder() | |||
.addLines(FileSources.Line.newBuilder() | |||
.setSourceData(DbFileSources.Data.newBuilder() | |||
.addLines(DbFileSources.Line.newBuilder() | |||
.setLine(1) | |||
.setSource("line") | |||
.build()) |
@@ -33,7 +33,7 @@ import org.sonar.batch.protocol.output.BatchReport; | |||
import org.sonar.batch.protocol.output.BatchReport.CoverageDetail; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import org.sonar.db.source.FileSourceDto; | |||
import org.sonar.server.computation.batch.BatchReportReaderRule; | |||
import org.sonar.server.computation.batch.TreeRootHolderRule; | |||
@@ -150,12 +150,12 @@ public class PersistTestsStepTest extends BaseStepTest { | |||
assertThat(dto.getFileUuid()).isEqualTo(TEST_FILE_UUID_1); | |||
assertThat(dto.getTestData()).hasSize(1); | |||
FileSources.Test test1 = dto.getTestData().get(0); | |||
DbFileSources.Test test1 = dto.getTestData().get(0); | |||
assertThat(test1.getUuid()).isNotEmpty(); | |||
assertThat(test1.getName()).isEqualTo("name#1"); | |||
assertThat(test1.getMsg()).isEqualTo("message#1"); | |||
assertThat(test1.getStacktrace()).isEqualTo("stacktrace#1"); | |||
assertThat(test1.getStatus()).isEqualTo(FileSources.Test.TestStatus.FAILURE); | |||
assertThat(test1.getStatus()).isEqualTo(DbFileSources.Test.TestStatus.FAILURE); | |||
assertThat(test1.getExecutionTimeMs()).isEqualTo(1_000); | |||
assertThat(test1.getCoveredFileCount()).isEqualTo(1); | |||
assertThat(test1.getCoveredFile(0).getCoveredLineList()).containsOnly(1, 2, 3); | |||
@@ -171,7 +171,7 @@ public class PersistTestsStepTest extends BaseStepTest { | |||
FileSourceDto dto = dbClient.fileSourceDao().selectTest(TEST_FILE_UUID_1); | |||
assertThat(dto.getFileUuid()).isEqualTo(TEST_FILE_UUID_1); | |||
List<FileSources.Test> tests = dto.getTestData(); | |||
List<DbFileSources.Test> tests = dto.getTestData(); | |||
assertThat(tests).hasSize(1); | |||
assertThat(tests.get(0).getCoveredFileList()).isEmpty(); | |||
assertThat(tests.get(0).getMsg()).isEqualTo("message#1"); | |||
@@ -215,10 +215,10 @@ public class PersistTestsStepTest extends BaseStepTest { | |||
dbClient.fileSourceDao().insert(db.getSession(), new FileSourceDto() | |||
.setProjectUuid(PROJECT_UUID) | |||
.setFileUuid(TEST_FILE_UUID_1) | |||
.setTestData(Arrays.asList(FileSources.Test.newBuilder() | |||
.setTestData(Arrays.asList(DbFileSources.Test.newBuilder() | |||
.setUuid("test-uuid-1") | |||
.setName("name#1") | |||
.setStatus(FileSources.Test.TestStatus.ERROR) | |||
.setStatus(DbFileSources.Test.TestStatus.ERROR) | |||
.setStacktrace("old-stacktrace#1") | |||
.setMsg("old-message#1") | |||
.setExecutionTimeMs(987_654_321L) | |||
@@ -243,10 +243,10 @@ public class PersistTestsStepTest extends BaseStepTest { | |||
assertThat(dto.getUpdatedAt()).isEqualTo(now); | |||
assertThat(dto.getTestData()).hasSize(1); | |||
FileSources.Test test = dto.getTestData().get(0); | |||
DbFileSources.Test test = dto.getTestData().get(0); | |||
assertThat(test.getUuid()).isNotEqualTo("test-uuid-1"); | |||
assertThat(test.getName()).isEqualTo("name#1"); | |||
assertThat(test.getStatus()).isEqualTo(FileSources.Test.TestStatus.valueOf(newBatchTest.getStatus().name())); | |||
assertThat(test.getStatus()).isEqualTo(DbFileSources.Test.TestStatus.valueOf(newBatchTest.getStatus().name())); | |||
assertThat(test.getMsg()).isEqualTo(newBatchTest.getMsg()); | |||
assertThat(test.getStacktrace()).isEqualTo(newBatchTest.getStacktrace()); | |||
assertThat(test.getExecutionTimeMs()).isEqualTo(newBatchTest.getDurationInMs()); |
@@ -42,14 +42,15 @@ import org.sonar.core.issue.workflow.Transition; | |||
import org.sonar.core.permission.GlobalPermissions; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.component.ComponentDao; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.issue.ActionPlanDto; | |||
import org.sonar.db.issue.IssueDao; | |||
import org.sonar.db.issue.IssueDto; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import org.sonar.db.rule.RuleDto; | |||
import org.sonar.db.rule.RuleTesting; | |||
import org.sonar.db.user.GroupDao; | |||
import org.sonar.db.user.GroupDto; | |||
import org.sonar.db.user.UserDto; | |||
import org.sonar.server.component.ComponentTesting; | |||
@@ -61,8 +62,8 @@ import org.sonar.server.issue.index.IssueDoc; | |||
import org.sonar.server.issue.index.IssueIndex; | |||
import org.sonar.server.issue.index.IssueIndexDefinition; | |||
import org.sonar.server.issue.index.IssueIndexer; | |||
import org.sonar.server.permission.PermissionService; | |||
import org.sonar.server.permission.PermissionChange; | |||
import org.sonar.server.permission.PermissionService; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import org.sonar.server.source.index.FileSourcesUpdaterHelper; | |||
import org.sonar.server.source.index.SourceLineIndexer; | |||
@@ -71,7 +72,6 @@ import org.sonar.server.tester.ServerTester; | |||
import org.sonar.server.tester.UserSessionRule; | |||
import org.sonar.server.user.NewUser; | |||
import org.sonar.server.user.UserUpdater; | |||
import org.sonar.db.user.GroupDao; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.assertj.core.api.Assertions.entry; | |||
@@ -609,7 +609,7 @@ public class IssueServiceMediumTest { | |||
} | |||
private void newSourceLine(ComponentDto file, int line, String scmAuthor) { | |||
FileSources.Data.Builder dataBuilder = FileSources.Data.newBuilder(); | |||
DbFileSources.Data.Builder dataBuilder = DbFileSources.Data.newBuilder(); | |||
dataBuilder.addLinesBuilder() | |||
.setLine(line) | |||
.setScmAuthor(scmAuthor) |
@@ -26,7 +26,7 @@ import java.sql.SQLException; | |||
import java.util.Arrays; | |||
import org.apache.commons.lang.RandomStringUtils; | |||
import org.apache.commons.lang.math.RandomUtils; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import org.sonar.db.source.FileSourceDto; | |||
public class FileSourceTesting { | |||
@@ -35,7 +35,7 @@ public class FileSourceTesting { | |||
// only static stuff | |||
} | |||
public static void updateDataColumn(Connection connection, String fileUuid, FileSources.Data data) throws SQLException { | |||
public static void updateDataColumn(Connection connection, String fileUuid, DbFileSources.Data data) throws SQLException { | |||
updateDataColumn(connection, fileUuid, FileSourceDto.encodeSourceData(data)); | |||
} | |||
@@ -50,8 +50,8 @@ public class FileSourceTesting { | |||
/** | |||
* Generate predefined fake data. Result is mutable. | |||
*/ | |||
public static FileSources.Data.Builder newFakeData(int numberOfLines) throws IOException { | |||
FileSources.Data.Builder dataBuilder = FileSources.Data.newBuilder(); | |||
public static DbFileSources.Data.Builder newFakeData(int numberOfLines) throws IOException { | |||
DbFileSources.Data.Builder dataBuilder = DbFileSources.Data.newBuilder(); | |||
for (int i = 1; i <= numberOfLines; i++) { | |||
dataBuilder.addLinesBuilder() | |||
.setLine(i) | |||
@@ -79,8 +79,8 @@ public class FileSourceTesting { | |||
/** | |||
* Generate random data. Result is mutable. | |||
*/ | |||
public static FileSources.Data.Builder newRandomData(int numberOfLines) throws IOException { | |||
FileSources.Data.Builder dataBuilder = FileSources.Data.newBuilder(); | |||
public static DbFileSources.Data.Builder newRandomData(int numberOfLines) throws IOException { | |||
DbFileSources.Data.Builder dataBuilder = DbFileSources.Data.newBuilder(); | |||
for (int i = 1; i <= numberOfLines; i++) { | |||
dataBuilder.addLinesBuilder() | |||
.setLine(i) |
@@ -40,7 +40,7 @@ import org.sonar.api.config.Settings; | |||
import org.sonar.api.utils.DateUtils; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.es.EsTester; | |||
import org.sonar.test.DbTests; | |||
@@ -131,7 +131,7 @@ public class SourceLineIndexerTest { | |||
indexLine("P1", "F2", 1); | |||
List<Integer> duplications = ImmutableList.of(1, 2, 3); | |||
FileSources.Data.Builder dataBuilder = FileSources.Data.newBuilder(); | |||
DbFileSources.Data.Builder dataBuilder = DbFileSources.Data.newBuilder(); | |||
dataBuilder.addLinesBuilder() | |||
.setLine(1) | |||
.setScmRevision("new_revision") | |||
@@ -194,7 +194,7 @@ public class SourceLineIndexerTest { | |||
public void index_source_lines_with_big_test_data() { | |||
Integer bigValue = Short.MAX_VALUE * 2; | |||
FileSources.Data.Builder dataBuilder = FileSources.Data.newBuilder(); | |||
DbFileSources.Data.Builder dataBuilder = DbFileSources.Data.newBuilder(); | |||
dataBuilder.addLinesBuilder() | |||
.setLine(1) | |||
.setScmRevision("cafebabe") |
@@ -28,7 +28,7 @@ import org.junit.Test; | |||
import org.junit.experimental.categories.Category; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import org.sonar.test.DbTests; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
@@ -90,7 +90,7 @@ public class SourceLineResultSetIteratorTest { | |||
@Test | |||
public void minimal_data() throws Exception { | |||
db.prepareDbUnit(getClass(), "shared.xml"); | |||
FileSources.Data.Builder dataBuilder = FileSources.Data.newBuilder(); | |||
DbFileSources.Data.Builder dataBuilder = DbFileSources.Data.newBuilder(); | |||
dataBuilder.addLinesBuilder().setLine(1).build(); | |||
try (Connection connection = db.openConnection()) { | |||
FileSourceTesting.updateDataColumn(connection, "F1", dataBuilder.build()); | |||
@@ -136,7 +136,7 @@ public class SourceLineResultSetIteratorTest { | |||
@Test | |||
public void filter_by_project() throws Exception { | |||
db.prepareDbUnit(getClass(), "filter_by_project.xml"); | |||
FileSources.Data.Builder dataBuilder = FileSources.Data.newBuilder(); | |||
DbFileSources.Data.Builder dataBuilder = DbFileSources.Data.newBuilder(); | |||
dataBuilder.addLinesBuilder().setLine(1).build(); | |||
try (Connection connection = db.openConnection()) { | |||
FileSourceTesting.updateDataColumn(connection, "F1", dataBuilder.build()); | |||
@@ -155,7 +155,7 @@ public class SourceLineResultSetIteratorTest { | |||
@Test | |||
public void filter_by_project_and_date() throws Exception { | |||
db.prepareDbUnit(getClass(), "filter_by_project_and_date.xml"); | |||
FileSources.Data.Builder dataBuilder = FileSources.Data.newBuilder(); | |||
DbFileSources.Data.Builder dataBuilder = DbFileSources.Data.newBuilder(); | |||
dataBuilder.addLinesBuilder().setLine(1).build(); | |||
try (Connection connection = db.openConnection()) { | |||
FileSourceTesting.updateDataColumn(connection, "F1", dataBuilder.build()); |
@@ -30,7 +30,7 @@ import org.apache.commons.lang.RandomStringUtils; | |||
import org.apache.commons.lang.math.RandomUtils; | |||
import org.sonar.api.utils.internal.Uuids; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import org.sonar.db.source.FileSourceDto; | |||
public class TestTesting { | |||
@@ -39,7 +39,7 @@ public class TestTesting { | |||
// only static stuff | |||
} | |||
public static void updateDataColumn(DbSession session, String fileUuid, List<FileSources.Test> tests) throws SQLException { | |||
public static void updateDataColumn(DbSession session, String fileUuid, List<DbFileSources.Test> tests) throws SQLException { | |||
updateDataColumn(session, fileUuid, FileSourceDto.encodeTestData(tests)); | |||
} | |||
@@ -56,19 +56,19 @@ public class TestTesting { | |||
/** | |||
* Generate random data. | |||
*/ | |||
public static List<FileSources.Test> newRandomTests(int numberOfTests) throws IOException { | |||
List<FileSources.Test> tests = new ArrayList<>(); | |||
public static List<DbFileSources.Test> newRandomTests(int numberOfTests) throws IOException { | |||
List<DbFileSources.Test> tests = new ArrayList<>(); | |||
for (int i = 1; i <= numberOfTests; i++) { | |||
FileSources.Test.Builder test = FileSources.Test.newBuilder() | |||
DbFileSources.Test.Builder test = DbFileSources.Test.newBuilder() | |||
.setUuid(Uuids.create()) | |||
.setName(RandomStringUtils.randomAlphanumeric(20)) | |||
.setStatus(FileSources.Test.TestStatus.FAILURE) | |||
.setStatus(DbFileSources.Test.TestStatus.FAILURE) | |||
.setStacktrace(RandomStringUtils.randomAlphanumeric(50)) | |||
.setMsg(RandomStringUtils.randomAlphanumeric(30)) | |||
.setExecutionTimeMs(RandomUtils.nextLong()); | |||
for (int j = 0; j < numberOfTests; j++) { | |||
test.addCoveredFile( | |||
FileSources.Test.CoveredFile.newBuilder() | |||
DbFileSources.Test.CoveredFile.newBuilder() | |||
.setFileUuid(Uuids.create()) | |||
.addCoveredLine(RandomUtils.nextInt(500))); | |||
} |
@@ -39,7 +39,7 @@ import org.junit.experimental.categories.Category; | |||
import org.sonar.api.config.Settings; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.es.EsTester; | |||
import org.sonar.server.source.index.FileSourcesUpdaterHelper; | |||
@@ -120,14 +120,14 @@ public class TestIndexerTest { | |||
indexTest("P1", "F2", "T1", "U121"); | |||
FileSourcesUpdaterHelper.Row dbRow = TestResultSetIterator.toRow("P1", "F1", new Date(), Arrays.asList( | |||
FileSources.Test.newBuilder() | |||
DbFileSources.Test.newBuilder() | |||
.setUuid("U111") | |||
.setName("NAME_1") | |||
.setStatus(FileSources.Test.TestStatus.FAILURE) | |||
.setStatus(DbFileSources.Test.TestStatus.FAILURE) | |||
.setMsg("NEW_MESSAGE_1") | |||
.setStacktrace("NEW_STACKTRACE_1") | |||
.setExecutionTimeMs(123_456L) | |||
.addCoveredFile(FileSources.Test.CoveredFile.newBuilder().setFileUuid("MAIN_UUID_1").addCoveredLine(42)) | |||
.addCoveredFile(DbFileSources.Test.CoveredFile.newBuilder().setFileUuid("MAIN_UUID_1").addCoveredLine(42)) | |||
.build())); | |||
underTest.index(Iterators.singletonIterator(dbRow)); | |||
@@ -32,7 +32,7 @@ import org.junit.Test; | |||
import org.junit.experimental.categories.Category; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import org.sonar.server.source.index.FileSourcesUpdaterHelper; | |||
import org.sonar.server.test.db.TestTesting; | |||
import org.sonar.test.DbTests; | |||
@@ -86,8 +86,8 @@ public class TestResultSetIteratorTest { | |||
@Test | |||
public void minimal_data() throws Exception { | |||
dbTester.prepareDbUnit(getClass(), "shared.xml"); | |||
List<FileSources.Test> tests = Arrays.asList( | |||
FileSources.Test.newBuilder() | |||
List<DbFileSources.Test> tests = Arrays.asList( | |||
DbFileSources.Test.newBuilder() | |||
.setUuid("U1") | |||
.setName("N1") | |||
.build()); | |||
@@ -170,19 +170,19 @@ public class TestResultSetIteratorTest { | |||
} | |||
} | |||
private static List<FileSources.Test> newFakeTests(int numberOfTests) { | |||
List<FileSources.Test> tests = new ArrayList<>(); | |||
private static List<DbFileSources.Test> newFakeTests(int numberOfTests) { | |||
List<DbFileSources.Test> tests = new ArrayList<>(); | |||
for (int i = 1; i <= numberOfTests; i++) { | |||
FileSources.Test.Builder test = FileSources.Test.newBuilder() | |||
DbFileSources.Test.Builder test = DbFileSources.Test.newBuilder() | |||
.setUuid("TEST_FILE_UUID_" + i) | |||
.setName("NAME_" + i) | |||
.setStatus(FileSources.Test.TestStatus.FAILURE) | |||
.setStatus(DbFileSources.Test.TestStatus.FAILURE) | |||
.setStacktrace("STACKTRACE_" + i) | |||
.setMsg("MESSAGE_" + i) | |||
.setExecutionTimeMs(i); | |||
for (int j = 1; j <= numberOfTests; j++) { | |||
test.addCoveredFile( | |||
FileSources.Test.CoveredFile.newBuilder() | |||
DbFileSources.Test.CoveredFile.newBuilder() | |||
.setFileUuid("MAIN_FILE_UUID_" + j) | |||
.addCoveredLine(j)); | |||
} |
@@ -0,0 +1,818 @@ | |||
// Generated by the protocol buffer compiler. DO NOT EDIT! | |||
// source: db-commons.proto | |||
package org.sonar.db.protobuf; | |||
public final class DbCommons { | |||
private DbCommons() {} | |||
public static void registerAllExtensions( | |||
com.google.protobuf.ExtensionRegistry registry) { | |||
} | |||
public interface TextRangeOrBuilder extends | |||
// @@protoc_insertion_point(interface_extends:sonarqube.db.commons.TextRange) | |||
com.google.protobuf.MessageOrBuilder { | |||
/** | |||
* <code>optional int32 start_line = 1;</code> | |||
* | |||
* <pre> | |||
* Start line. Should never be absent | |||
* </pre> | |||
*/ | |||
boolean hasStartLine(); | |||
/** | |||
* <code>optional int32 start_line = 1;</code> | |||
* | |||
* <pre> | |||
* Start line. Should never be absent | |||
* </pre> | |||
*/ | |||
int getStartLine(); | |||
/** | |||
* <code>optional int32 end_line = 2;</code> | |||
* | |||
* <pre> | |||
* End line (inclusive). Absent means it is same as start line | |||
* </pre> | |||
*/ | |||
boolean hasEndLine(); | |||
/** | |||
* <code>optional int32 end_line = 2;</code> | |||
* | |||
* <pre> | |||
* End line (inclusive). Absent means it is same as start line | |||
* </pre> | |||
*/ | |||
int getEndLine(); | |||
/** | |||
* <code>optional int32 start_offset = 3;</code> | |||
* | |||
* <pre> | |||
* If absent it means range starts at the first offset of start line | |||
* </pre> | |||
*/ | |||
boolean hasStartOffset(); | |||
/** | |||
* <code>optional int32 start_offset = 3;</code> | |||
* | |||
* <pre> | |||
* If absent it means range starts at the first offset of start line | |||
* </pre> | |||
*/ | |||
int getStartOffset(); | |||
/** | |||
* <code>optional int32 end_offset = 4;</code> | |||
* | |||
* <pre> | |||
* If absent it means range ends at the last offset of end line | |||
* </pre> | |||
*/ | |||
boolean hasEndOffset(); | |||
/** | |||
* <code>optional int32 end_offset = 4;</code> | |||
* | |||
* <pre> | |||
* If absent it means range ends at the last offset of end line | |||
* </pre> | |||
*/ | |||
int getEndOffset(); | |||
} | |||
/** | |||
* Protobuf type {@code sonarqube.db.commons.TextRange} | |||
* | |||
* <pre> | |||
* Lines start at 1 and line offsets start at 0 | |||
* </pre> | |||
*/ | |||
public static final class TextRange extends | |||
com.google.protobuf.GeneratedMessage implements | |||
// @@protoc_insertion_point(message_implements:sonarqube.db.commons.TextRange) | |||
TextRangeOrBuilder { | |||
// Use TextRange.newBuilder() to construct. | |||
private TextRange(com.google.protobuf.GeneratedMessage.Builder<?> builder) { | |||
super(builder); | |||
this.unknownFields = builder.getUnknownFields(); | |||
} | |||
private TextRange(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } | |||
private static final TextRange defaultInstance; | |||
public static TextRange getDefaultInstance() { | |||
return defaultInstance; | |||
} | |||
public TextRange getDefaultInstanceForType() { | |||
return defaultInstance; | |||
} | |||
private final com.google.protobuf.UnknownFieldSet unknownFields; | |||
@java.lang.Override | |||
public final com.google.protobuf.UnknownFieldSet | |||
getUnknownFields() { | |||
return this.unknownFields; | |||
} | |||
private TextRange( | |||
com.google.protobuf.CodedInputStream input, | |||
com.google.protobuf.ExtensionRegistryLite extensionRegistry) | |||
throws com.google.protobuf.InvalidProtocolBufferException { | |||
initFields(); | |||
int mutable_bitField0_ = 0; | |||
com.google.protobuf.UnknownFieldSet.Builder unknownFields = | |||
com.google.protobuf.UnknownFieldSet.newBuilder(); | |||
try { | |||
boolean done = false; | |||
while (!done) { | |||
int tag = input.readTag(); | |||
switch (tag) { | |||
case 0: | |||
done = true; | |||
break; | |||
default: { | |||
if (!parseUnknownField(input, unknownFields, | |||
extensionRegistry, tag)) { | |||
done = true; | |||
} | |||
break; | |||
} | |||
case 8: { | |||
bitField0_ |= 0x00000001; | |||
startLine_ = input.readInt32(); | |||
break; | |||
} | |||
case 16: { | |||
bitField0_ |= 0x00000002; | |||
endLine_ = input.readInt32(); | |||
break; | |||
} | |||
case 24: { | |||
bitField0_ |= 0x00000004; | |||
startOffset_ = input.readInt32(); | |||
break; | |||
} | |||
case 32: { | |||
bitField0_ |= 0x00000008; | |||
endOffset_ = input.readInt32(); | |||
break; | |||
} | |||
} | |||
} | |||
} catch (com.google.protobuf.InvalidProtocolBufferException e) { | |||
throw e.setUnfinishedMessage(this); | |||
} catch (java.io.IOException e) { | |||
throw new com.google.protobuf.InvalidProtocolBufferException( | |||
e.getMessage()).setUnfinishedMessage(this); | |||
} finally { | |||
this.unknownFields = unknownFields.build(); | |||
makeExtensionsImmutable(); | |||
} | |||
} | |||
public static final com.google.protobuf.Descriptors.Descriptor | |||
getDescriptor() { | |||
return org.sonar.db.protobuf.DbCommons.internal_static_sonarqube_db_commons_TextRange_descriptor; | |||
} | |||
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable | |||
internalGetFieldAccessorTable() { | |||
return org.sonar.db.protobuf.DbCommons.internal_static_sonarqube_db_commons_TextRange_fieldAccessorTable | |||
.ensureFieldAccessorsInitialized( | |||
org.sonar.db.protobuf.DbCommons.TextRange.class, org.sonar.db.protobuf.DbCommons.TextRange.Builder.class); | |||
} | |||
public static com.google.protobuf.Parser<TextRange> PARSER = | |||
new com.google.protobuf.AbstractParser<TextRange>() { | |||
public TextRange parsePartialFrom( | |||
com.google.protobuf.CodedInputStream input, | |||
com.google.protobuf.ExtensionRegistryLite extensionRegistry) | |||
throws com.google.protobuf.InvalidProtocolBufferException { | |||
return new TextRange(input, extensionRegistry); | |||
} | |||
}; | |||
@java.lang.Override | |||
public com.google.protobuf.Parser<TextRange> getParserForType() { | |||
return PARSER; | |||
} | |||
private int bitField0_; | |||
public static final int START_LINE_FIELD_NUMBER = 1; | |||
private int startLine_; | |||
/** | |||
* <code>optional int32 start_line = 1;</code> | |||
* | |||
* <pre> | |||
* Start line. Should never be absent | |||
* </pre> | |||
*/ | |||
public boolean hasStartLine() { | |||
return ((bitField0_ & 0x00000001) == 0x00000001); | |||
} | |||
/** | |||
* <code>optional int32 start_line = 1;</code> | |||
* | |||
* <pre> | |||
* Start line. Should never be absent | |||
* </pre> | |||
*/ | |||
public int getStartLine() { | |||
return startLine_; | |||
} | |||
public static final int END_LINE_FIELD_NUMBER = 2; | |||
private int endLine_; | |||
/** | |||
* <code>optional int32 end_line = 2;</code> | |||
* | |||
* <pre> | |||
* End line (inclusive). Absent means it is same as start line | |||
* </pre> | |||
*/ | |||
public boolean hasEndLine() { | |||
return ((bitField0_ & 0x00000002) == 0x00000002); | |||
} | |||
/** | |||
* <code>optional int32 end_line = 2;</code> | |||
* | |||
* <pre> | |||
* End line (inclusive). Absent means it is same as start line | |||
* </pre> | |||
*/ | |||
public int getEndLine() { | |||
return endLine_; | |||
} | |||
public static final int START_OFFSET_FIELD_NUMBER = 3; | |||
private int startOffset_; | |||
/** | |||
* <code>optional int32 start_offset = 3;</code> | |||
* | |||
* <pre> | |||
* If absent it means range starts at the first offset of start line | |||
* </pre> | |||
*/ | |||
public boolean hasStartOffset() { | |||
return ((bitField0_ & 0x00000004) == 0x00000004); | |||
} | |||
/** | |||
* <code>optional int32 start_offset = 3;</code> | |||
* | |||
* <pre> | |||
* If absent it means range starts at the first offset of start line | |||
* </pre> | |||
*/ | |||
public int getStartOffset() { | |||
return startOffset_; | |||
} | |||
public static final int END_OFFSET_FIELD_NUMBER = 4; | |||
private int endOffset_; | |||
/** | |||
* <code>optional int32 end_offset = 4;</code> | |||
* | |||
* <pre> | |||
* If absent it means range ends at the last offset of end line | |||
* </pre> | |||
*/ | |||
public boolean hasEndOffset() { | |||
return ((bitField0_ & 0x00000008) == 0x00000008); | |||
} | |||
/** | |||
* <code>optional int32 end_offset = 4;</code> | |||
* | |||
* <pre> | |||
* If absent it means range ends at the last offset of end line | |||
* </pre> | |||
*/ | |||
public int getEndOffset() { | |||
return endOffset_; | |||
} | |||
private void initFields() { | |||
startLine_ = 0; | |||
endLine_ = 0; | |||
startOffset_ = 0; | |||
endOffset_ = 0; | |||
} | |||
private byte memoizedIsInitialized = -1; | |||
public final boolean isInitialized() { | |||
byte isInitialized = memoizedIsInitialized; | |||
if (isInitialized == 1) return true; | |||
if (isInitialized == 0) return false; | |||
memoizedIsInitialized = 1; | |||
return true; | |||
} | |||
public void writeTo(com.google.protobuf.CodedOutputStream output) | |||
throws java.io.IOException { | |||
getSerializedSize(); | |||
if (((bitField0_ & 0x00000001) == 0x00000001)) { | |||
output.writeInt32(1, startLine_); | |||
} | |||
if (((bitField0_ & 0x00000002) == 0x00000002)) { | |||
output.writeInt32(2, endLine_); | |||
} | |||
if (((bitField0_ & 0x00000004) == 0x00000004)) { | |||
output.writeInt32(3, startOffset_); | |||
} | |||
if (((bitField0_ & 0x00000008) == 0x00000008)) { | |||
output.writeInt32(4, endOffset_); | |||
} | |||
getUnknownFields().writeTo(output); | |||
} | |||
private int memoizedSerializedSize = -1; | |||
public int getSerializedSize() { | |||
int size = memoizedSerializedSize; | |||
if (size != -1) return size; | |||
size = 0; | |||
if (((bitField0_ & 0x00000001) == 0x00000001)) { | |||
size += com.google.protobuf.CodedOutputStream | |||
.computeInt32Size(1, startLine_); | |||
} | |||
if (((bitField0_ & 0x00000002) == 0x00000002)) { | |||
size += com.google.protobuf.CodedOutputStream | |||
.computeInt32Size(2, endLine_); | |||
} | |||
if (((bitField0_ & 0x00000004) == 0x00000004)) { | |||
size += com.google.protobuf.CodedOutputStream | |||
.computeInt32Size(3, startOffset_); | |||
} | |||
if (((bitField0_ & 0x00000008) == 0x00000008)) { | |||
size += com.google.protobuf.CodedOutputStream | |||
.computeInt32Size(4, endOffset_); | |||
} | |||
size += getUnknownFields().getSerializedSize(); | |||
memoizedSerializedSize = size; | |||
return size; | |||
} | |||
private static final long serialVersionUID = 0L; | |||
@java.lang.Override | |||
protected java.lang.Object writeReplace() | |||
throws java.io.ObjectStreamException { | |||
return super.writeReplace(); | |||
} | |||
public static org.sonar.db.protobuf.DbCommons.TextRange parseFrom( | |||
com.google.protobuf.ByteString data) | |||
throws com.google.protobuf.InvalidProtocolBufferException { | |||
return PARSER.parseFrom(data); | |||
} | |||
public static org.sonar.db.protobuf.DbCommons.TextRange parseFrom( | |||
com.google.protobuf.ByteString data, | |||
com.google.protobuf.ExtensionRegistryLite extensionRegistry) | |||
throws com.google.protobuf.InvalidProtocolBufferException { | |||
return PARSER.parseFrom(data, extensionRegistry); | |||
} | |||
public static org.sonar.db.protobuf.DbCommons.TextRange parseFrom(byte[] data) | |||
throws com.google.protobuf.InvalidProtocolBufferException { | |||
return PARSER.parseFrom(data); | |||
} | |||
public static org.sonar.db.protobuf.DbCommons.TextRange parseFrom( | |||
byte[] data, | |||
com.google.protobuf.ExtensionRegistryLite extensionRegistry) | |||
throws com.google.protobuf.InvalidProtocolBufferException { | |||
return PARSER.parseFrom(data, extensionRegistry); | |||
} | |||
public static org.sonar.db.protobuf.DbCommons.TextRange parseFrom(java.io.InputStream input) | |||
throws java.io.IOException { | |||
return PARSER.parseFrom(input); | |||
} | |||
public static org.sonar.db.protobuf.DbCommons.TextRange parseFrom( | |||
java.io.InputStream input, | |||
com.google.protobuf.ExtensionRegistryLite extensionRegistry) | |||
throws java.io.IOException { | |||
return PARSER.parseFrom(input, extensionRegistry); | |||
} | |||
public static org.sonar.db.protobuf.DbCommons.TextRange parseDelimitedFrom(java.io.InputStream input) | |||
throws java.io.IOException { | |||
return PARSER.parseDelimitedFrom(input); | |||
} | |||
public static org.sonar.db.protobuf.DbCommons.TextRange parseDelimitedFrom( | |||
java.io.InputStream input, | |||
com.google.protobuf.ExtensionRegistryLite extensionRegistry) | |||
throws java.io.IOException { | |||
return PARSER.parseDelimitedFrom(input, extensionRegistry); | |||
} | |||
public static org.sonar.db.protobuf.DbCommons.TextRange parseFrom( | |||
com.google.protobuf.CodedInputStream input) | |||
throws java.io.IOException { | |||
return PARSER.parseFrom(input); | |||
} | |||
public static org.sonar.db.protobuf.DbCommons.TextRange parseFrom( | |||
com.google.protobuf.CodedInputStream input, | |||
com.google.protobuf.ExtensionRegistryLite extensionRegistry) | |||
throws java.io.IOException { | |||
return PARSER.parseFrom(input, extensionRegistry); | |||
} | |||
public static Builder newBuilder() { return Builder.create(); } | |||
public Builder newBuilderForType() { return newBuilder(); } | |||
public static Builder newBuilder(org.sonar.db.protobuf.DbCommons.TextRange prototype) { | |||
return newBuilder().mergeFrom(prototype); | |||
} | |||
public Builder toBuilder() { return newBuilder(this); } | |||
@java.lang.Override | |||
protected Builder newBuilderForType( | |||
com.google.protobuf.GeneratedMessage.BuilderParent parent) { | |||
Builder builder = new Builder(parent); | |||
return builder; | |||
} | |||
/** | |||
* Protobuf type {@code sonarqube.db.commons.TextRange} | |||
* | |||
* <pre> | |||
* Lines start at 1 and line offsets start at 0 | |||
* </pre> | |||
*/ | |||
public static final class Builder extends | |||
com.google.protobuf.GeneratedMessage.Builder<Builder> implements | |||
// @@protoc_insertion_point(builder_implements:sonarqube.db.commons.TextRange) | |||
org.sonar.db.protobuf.DbCommons.TextRangeOrBuilder { | |||
public static final com.google.protobuf.Descriptors.Descriptor | |||
getDescriptor() { | |||
return org.sonar.db.protobuf.DbCommons.internal_static_sonarqube_db_commons_TextRange_descriptor; | |||
} | |||
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable | |||
internalGetFieldAccessorTable() { | |||
return org.sonar.db.protobuf.DbCommons.internal_static_sonarqube_db_commons_TextRange_fieldAccessorTable | |||
.ensureFieldAccessorsInitialized( | |||
org.sonar.db.protobuf.DbCommons.TextRange.class, org.sonar.db.protobuf.DbCommons.TextRange.Builder.class); | |||
} | |||
// Construct using org.sonar.db.protobuf.DbCommons.TextRange.newBuilder() | |||
private Builder() { | |||
maybeForceBuilderInitialization(); | |||
} | |||
private Builder( | |||
com.google.protobuf.GeneratedMessage.BuilderParent parent) { | |||
super(parent); | |||
maybeForceBuilderInitialization(); | |||
} | |||
private void maybeForceBuilderInitialization() { | |||
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { | |||
} | |||
} | |||
private static Builder create() { | |||
return new Builder(); | |||
} | |||
public Builder clear() { | |||
super.clear(); | |||
startLine_ = 0; | |||
bitField0_ = (bitField0_ & ~0x00000001); | |||
endLine_ = 0; | |||
bitField0_ = (bitField0_ & ~0x00000002); | |||
startOffset_ = 0; | |||
bitField0_ = (bitField0_ & ~0x00000004); | |||
endOffset_ = 0; | |||
bitField0_ = (bitField0_ & ~0x00000008); | |||
return this; | |||
} | |||
public Builder clone() { | |||
return create().mergeFrom(buildPartial()); | |||
} | |||
public com.google.protobuf.Descriptors.Descriptor | |||
getDescriptorForType() { | |||
return org.sonar.db.protobuf.DbCommons.internal_static_sonarqube_db_commons_TextRange_descriptor; | |||
} | |||
public org.sonar.db.protobuf.DbCommons.TextRange getDefaultInstanceForType() { | |||
return org.sonar.db.protobuf.DbCommons.TextRange.getDefaultInstance(); | |||
} | |||
public org.sonar.db.protobuf.DbCommons.TextRange build() { | |||
org.sonar.db.protobuf.DbCommons.TextRange result = buildPartial(); | |||
if (!result.isInitialized()) { | |||
throw newUninitializedMessageException(result); | |||
} | |||
return result; | |||
} | |||
public org.sonar.db.protobuf.DbCommons.TextRange buildPartial() { | |||
org.sonar.db.protobuf.DbCommons.TextRange result = new org.sonar.db.protobuf.DbCommons.TextRange(this); | |||
int from_bitField0_ = bitField0_; | |||
int to_bitField0_ = 0; | |||
if (((from_bitField0_ & 0x00000001) == 0x00000001)) { | |||
to_bitField0_ |= 0x00000001; | |||
} | |||
result.startLine_ = startLine_; | |||
if (((from_bitField0_ & 0x00000002) == 0x00000002)) { | |||
to_bitField0_ |= 0x00000002; | |||
} | |||
result.endLine_ = endLine_; | |||
if (((from_bitField0_ & 0x00000004) == 0x00000004)) { | |||
to_bitField0_ |= 0x00000004; | |||
} | |||
result.startOffset_ = startOffset_; | |||
if (((from_bitField0_ & 0x00000008) == 0x00000008)) { | |||
to_bitField0_ |= 0x00000008; | |||
} | |||
result.endOffset_ = endOffset_; | |||
result.bitField0_ = to_bitField0_; | |||
onBuilt(); | |||
return result; | |||
} | |||
public Builder mergeFrom(com.google.protobuf.Message other) { | |||
if (other instanceof org.sonar.db.protobuf.DbCommons.TextRange) { | |||
return mergeFrom((org.sonar.db.protobuf.DbCommons.TextRange)other); | |||
} else { | |||
super.mergeFrom(other); | |||
return this; | |||
} | |||
} | |||
public Builder mergeFrom(org.sonar.db.protobuf.DbCommons.TextRange other) { | |||
if (other == org.sonar.db.protobuf.DbCommons.TextRange.getDefaultInstance()) return this; | |||
if (other.hasStartLine()) { | |||
setStartLine(other.getStartLine()); | |||
} | |||
if (other.hasEndLine()) { | |||
setEndLine(other.getEndLine()); | |||
} | |||
if (other.hasStartOffset()) { | |||
setStartOffset(other.getStartOffset()); | |||
} | |||
if (other.hasEndOffset()) { | |||
setEndOffset(other.getEndOffset()); | |||
} | |||
this.mergeUnknownFields(other.getUnknownFields()); | |||
return this; | |||
} | |||
public final boolean isInitialized() { | |||
return true; | |||
} | |||
public Builder mergeFrom( | |||
com.google.protobuf.CodedInputStream input, | |||
com.google.protobuf.ExtensionRegistryLite extensionRegistry) | |||
throws java.io.IOException { | |||
org.sonar.db.protobuf.DbCommons.TextRange parsedMessage = null; | |||
try { | |||
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); | |||
} catch (com.google.protobuf.InvalidProtocolBufferException e) { | |||
parsedMessage = (org.sonar.db.protobuf.DbCommons.TextRange) e.getUnfinishedMessage(); | |||
throw e; | |||
} finally { | |||
if (parsedMessage != null) { | |||
mergeFrom(parsedMessage); | |||
} | |||
} | |||
return this; | |||
} | |||
private int bitField0_; | |||
private int startLine_ ; | |||
/** | |||
* <code>optional int32 start_line = 1;</code> | |||
* | |||
* <pre> | |||
* Start line. Should never be absent | |||
* </pre> | |||
*/ | |||
public boolean hasStartLine() { | |||
return ((bitField0_ & 0x00000001) == 0x00000001); | |||
} | |||
/** | |||
* <code>optional int32 start_line = 1;</code> | |||
* | |||
* <pre> | |||
* Start line. Should never be absent | |||
* </pre> | |||
*/ | |||
public int getStartLine() { | |||
return startLine_; | |||
} | |||
/** | |||
* <code>optional int32 start_line = 1;</code> | |||
* | |||
* <pre> | |||
* Start line. Should never be absent | |||
* </pre> | |||
*/ | |||
public Builder setStartLine(int value) { | |||
bitField0_ |= 0x00000001; | |||
startLine_ = value; | |||
onChanged(); | |||
return this; | |||
} | |||
/** | |||
* <code>optional int32 start_line = 1;</code> | |||
* | |||
* <pre> | |||
* Start line. Should never be absent | |||
* </pre> | |||
*/ | |||
public Builder clearStartLine() { | |||
bitField0_ = (bitField0_ & ~0x00000001); | |||
startLine_ = 0; | |||
onChanged(); | |||
return this; | |||
} | |||
private int endLine_ ; | |||
/** | |||
* <code>optional int32 end_line = 2;</code> | |||
* | |||
* <pre> | |||
* End line (inclusive). Absent means it is same as start line | |||
* </pre> | |||
*/ | |||
public boolean hasEndLine() { | |||
return ((bitField0_ & 0x00000002) == 0x00000002); | |||
} | |||
/** | |||
* <code>optional int32 end_line = 2;</code> | |||
* | |||
* <pre> | |||
* End line (inclusive). Absent means it is same as start line | |||
* </pre> | |||
*/ | |||
public int getEndLine() { | |||
return endLine_; | |||
} | |||
/** | |||
* <code>optional int32 end_line = 2;</code> | |||
* | |||
* <pre> | |||
* End line (inclusive). Absent means it is same as start line | |||
* </pre> | |||
*/ | |||
public Builder setEndLine(int value) { | |||
bitField0_ |= 0x00000002; | |||
endLine_ = value; | |||
onChanged(); | |||
return this; | |||
} | |||
/** | |||
* <code>optional int32 end_line = 2;</code> | |||
* | |||
* <pre> | |||
* End line (inclusive). Absent means it is same as start line | |||
* </pre> | |||
*/ | |||
public Builder clearEndLine() { | |||
bitField0_ = (bitField0_ & ~0x00000002); | |||
endLine_ = 0; | |||
onChanged(); | |||
return this; | |||
} | |||
private int startOffset_ ; | |||
/** | |||
* <code>optional int32 start_offset = 3;</code> | |||
* | |||
* <pre> | |||
* If absent it means range starts at the first offset of start line | |||
* </pre> | |||
*/ | |||
public boolean hasStartOffset() { | |||
return ((bitField0_ & 0x00000004) == 0x00000004); | |||
} | |||
/** | |||
* <code>optional int32 start_offset = 3;</code> | |||
* | |||
* <pre> | |||
* If absent it means range starts at the first offset of start line | |||
* </pre> | |||
*/ | |||
public int getStartOffset() { | |||
return startOffset_; | |||
} | |||
/** | |||
* <code>optional int32 start_offset = 3;</code> | |||
* | |||
* <pre> | |||
* If absent it means range starts at the first offset of start line | |||
* </pre> | |||
*/ | |||
public Builder setStartOffset(int value) { | |||
bitField0_ |= 0x00000004; | |||
startOffset_ = value; | |||
onChanged(); | |||
return this; | |||
} | |||
/** | |||
* <code>optional int32 start_offset = 3;</code> | |||
* | |||
* <pre> | |||
* If absent it means range starts at the first offset of start line | |||
* </pre> | |||
*/ | |||
public Builder clearStartOffset() { | |||
bitField0_ = (bitField0_ & ~0x00000004); | |||
startOffset_ = 0; | |||
onChanged(); | |||
return this; | |||
} | |||
private int endOffset_ ; | |||
/** | |||
* <code>optional int32 end_offset = 4;</code> | |||
* | |||
* <pre> | |||
* If absent it means range ends at the last offset of end line | |||
* </pre> | |||
*/ | |||
public boolean hasEndOffset() { | |||
return ((bitField0_ & 0x00000008) == 0x00000008); | |||
} | |||
/** | |||
* <code>optional int32 end_offset = 4;</code> | |||
* | |||
* <pre> | |||
* If absent it means range ends at the last offset of end line | |||
* </pre> | |||
*/ | |||
public int getEndOffset() { | |||
return endOffset_; | |||
} | |||
/** | |||
* <code>optional int32 end_offset = 4;</code> | |||
* | |||
* <pre> | |||
* If absent it means range ends at the last offset of end line | |||
* </pre> | |||
*/ | |||
public Builder setEndOffset(int value) { | |||
bitField0_ |= 0x00000008; | |||
endOffset_ = value; | |||
onChanged(); | |||
return this; | |||
} | |||
/** | |||
* <code>optional int32 end_offset = 4;</code> | |||
* | |||
* <pre> | |||
* If absent it means range ends at the last offset of end line | |||
* </pre> | |||
*/ | |||
public Builder clearEndOffset() { | |||
bitField0_ = (bitField0_ & ~0x00000008); | |||
endOffset_ = 0; | |||
onChanged(); | |||
return this; | |||
} | |||
// @@protoc_insertion_point(builder_scope:sonarqube.db.commons.TextRange) | |||
} | |||
static { | |||
defaultInstance = new TextRange(true); | |||
defaultInstance.initFields(); | |||
} | |||
// @@protoc_insertion_point(class_scope:sonarqube.db.commons.TextRange) | |||
} | |||
private static final com.google.protobuf.Descriptors.Descriptor | |||
internal_static_sonarqube_db_commons_TextRange_descriptor; | |||
private static | |||
com.google.protobuf.GeneratedMessage.FieldAccessorTable | |||
internal_static_sonarqube_db_commons_TextRange_fieldAccessorTable; | |||
public static com.google.protobuf.Descriptors.FileDescriptor | |||
getDescriptor() { | |||
return descriptor; | |||
} | |||
private static com.google.protobuf.Descriptors.FileDescriptor | |||
descriptor; | |||
static { | |||
java.lang.String[] descriptorData = { | |||
"\n\020db-commons.proto\022\024sonarqube.db.commons" + | |||
"\"[\n\tTextRange\022\022\n\nstart_line\030\001 \001(\005\022\020\n\010end" + | |||
"_line\030\002 \001(\005\022\024\n\014start_offset\030\003 \001(\005\022\022\n\nend" + | |||
"_offset\030\004 \001(\005B\031\n\025org.sonar.db.protobufH\001" | |||
}; | |||
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = | |||
new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { | |||
public com.google.protobuf.ExtensionRegistry assignDescriptors( | |||
com.google.protobuf.Descriptors.FileDescriptor root) { | |||
descriptor = root; | |||
return null; | |||
} | |||
}; | |||
com.google.protobuf.Descriptors.FileDescriptor | |||
.internalBuildGeneratedFileFrom(descriptorData, | |||
new com.google.protobuf.Descriptors.FileDescriptor[] { | |||
}, assigner); | |||
internal_static_sonarqube_db_commons_TextRange_descriptor = | |||
getDescriptor().getMessageTypes().get(0); | |||
internal_static_sonarqube_db_commons_TextRange_fieldAccessorTable = new | |||
com.google.protobuf.GeneratedMessage.FieldAccessorTable( | |||
internal_static_sonarqube_db_commons_TextRange_descriptor, | |||
new java.lang.String[] { "StartLine", "EndLine", "StartOffset", "EndOffset", }); | |||
} | |||
// @@protoc_insertion_point(outer_class_scope) | |||
} |
@@ -30,7 +30,7 @@ import javax.annotation.Nullable; | |||
import net.jpountz.lz4.LZ4BlockInputStream; | |||
import net.jpountz.lz4.LZ4BlockOutputStream; | |||
import org.apache.commons.io.IOUtils; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
public class FileSourceDto { | |||
@@ -85,7 +85,7 @@ public class FileSourceDto { | |||
return this; | |||
} | |||
public static FileSources.Data decodeSourceData(byte[] binaryData) { | |||
public static DbFileSources.Data decodeSourceData(byte[] binaryData) { | |||
// stream is always closed | |||
return decodeSourceData(new ByteArrayInputStream(binaryData)); | |||
} | |||
@@ -94,11 +94,11 @@ public class FileSourceDto { | |||
* Decompress and deserialize content of column FILE_SOURCES.BINARY_DATA. | |||
* The parameter "input" is always closed by this method. | |||
*/ | |||
public static FileSources.Data decodeSourceData(InputStream binaryInput) { | |||
public static DbFileSources.Data decodeSourceData(InputStream binaryInput) { | |||
LZ4BlockInputStream lz4Input = null; | |||
try { | |||
lz4Input = new LZ4BlockInputStream(binaryInput); | |||
return FileSources.Data.parseFrom(lz4Input); | |||
return DbFileSources.Data.parseFrom(lz4Input); | |||
} catch (IOException e) { | |||
throw new IllegalStateException("Fail to decompress and deserialize source data", e); | |||
} finally { | |||
@@ -107,10 +107,10 @@ public class FileSourceDto { | |||
} | |||
/** | |||
* Serialize and compress protobuf message {@link org.sonar.db.FileSources.Data} | |||
* Serialize and compress protobuf message {@link org.sonar.db.protobuf.DbFileSources.Data} | |||
* in the column BINARY_DATA. | |||
*/ | |||
public static byte[] encodeSourceData(FileSources.Data data) { | |||
public static byte[] encodeSourceData(DbFileSources.Data data) { | |||
ByteArrayOutputStream byteOutput = new ByteArrayOutputStream(); | |||
LZ4BlockOutputStream compressedOutput = new LZ4BlockOutputStream(byteOutput); | |||
try { | |||
@@ -124,7 +124,7 @@ public class FileSourceDto { | |||
} | |||
} | |||
public static List<FileSources.Test> decodeTestData(byte[] binaryData) { | |||
public static List<DbFileSources.Test> decodeTestData(byte[] binaryData) { | |||
// stream is always closed | |||
return decodeTestData(new ByteArrayInputStream(binaryData)); | |||
} | |||
@@ -133,15 +133,15 @@ public class FileSourceDto { | |||
* Decompress and deserialize content of column FILE_SOURCES.BINARY_DATA. | |||
* The parameter "input" is always closed by this method. | |||
*/ | |||
public static List<FileSources.Test> decodeTestData(InputStream binaryInput) { | |||
public static List<DbFileSources.Test> decodeTestData(InputStream binaryInput) { | |||
LZ4BlockInputStream lz4Input = null; | |||
List<FileSources.Test> tests = new ArrayList<>(); | |||
List<DbFileSources.Test> tests = new ArrayList<>(); | |||
try { | |||
lz4Input = new LZ4BlockInputStream(binaryInput); | |||
FileSources.Test currentTest; | |||
DbFileSources.Test currentTest; | |||
do { | |||
currentTest = FileSources.Test.parseDelimitedFrom(lz4Input); | |||
currentTest = DbFileSources.Test.parseDelimitedFrom(lz4Input); | |||
if (currentTest != null) { | |||
tests.add(currentTest); | |||
} | |||
@@ -155,14 +155,14 @@ public class FileSourceDto { | |||
} | |||
/** | |||
* Serialize and compress protobuf message {@link org.sonar.db.FileSources.Data} | |||
* Serialize and compress protobuf message {@link org.sonar.db.protobuf.DbFileSources.Data} | |||
* in the column BINARY_DATA. | |||
*/ | |||
public static byte[] encodeTestData(List<FileSources.Test> tests) { | |||
public static byte[] encodeTestData(List<DbFileSources.Test> tests) { | |||
ByteArrayOutputStream byteOutput = new ByteArrayOutputStream(); | |||
LZ4BlockOutputStream compressedOutput = new LZ4BlockOutputStream(byteOutput); | |||
try { | |||
for (FileSources.Test test : tests) { | |||
for (DbFileSources.Test test : tests) { | |||
test.writeDelimitedTo(compressedOutput); | |||
} | |||
compressedOutput.close(); | |||
@@ -175,14 +175,14 @@ public class FileSourceDto { | |||
} | |||
/** | |||
* Compressed value of serialized protobuf message {@link org.sonar.db.FileSources.Data} | |||
* Compressed value of serialized protobuf message {@link org.sonar.db.protobuf.DbFileSources.Data} | |||
*/ | |||
public byte[] getBinaryData() { | |||
return binaryData; | |||
} | |||
/** | |||
* Set compressed value of the protobuf message {@link org.sonar.db.FileSources.Data} | |||
* Set compressed value of the protobuf message {@link org.sonar.db.protobuf.DbFileSources.Data} | |||
*/ | |||
public FileSourceDto setBinaryData(byte[] data) { | |||
this.binaryData = data; | |||
@@ -190,26 +190,26 @@ public class FileSourceDto { | |||
} | |||
/** | |||
* Compressed value of serialized protobuf message {@link org.sonar.db.FileSources.Data} | |||
* Compressed value of serialized protobuf message {@link org.sonar.db.protobuf.DbFileSources.Data} | |||
*/ | |||
public FileSources.Data getSourceData() { | |||
public DbFileSources.Data getSourceData() { | |||
return decodeSourceData(binaryData); | |||
} | |||
public FileSourceDto setSourceData(FileSources.Data data) { | |||
public FileSourceDto setSourceData(DbFileSources.Data data) { | |||
this.dataType = Type.SOURCE; | |||
this.binaryData = encodeSourceData(data); | |||
return this; | |||
} | |||
/** | |||
* Compressed value of serialized protobuf message {@link org.sonar.db.FileSources.Data} | |||
* Compressed value of serialized protobuf message {@link org.sonar.db.protobuf.DbFileSources.Data} | |||
*/ | |||
public List<FileSources.Test> getTestData() { | |||
public List<DbFileSources.Test> getTestData() { | |||
return decodeTestData(binaryData); | |||
} | |||
public FileSourceDto setTestData(List<FileSources.Test> data) { | |||
public FileSourceDto setTestData(List<DbFileSources.Test> data) { | |||
this.dataType = Type.TEST; | |||
this.binaryData = encodeTestData(data); | |||
return this; |
@@ -33,12 +33,12 @@ import org.apache.commons.io.IOUtils; | |||
import org.apache.commons.lang.StringUtils; | |||
import org.sonar.api.utils.DateUtils; | |||
import org.sonar.db.Database; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import org.sonar.db.source.FileSourceDto; | |||
import org.sonar.db.version.BaseDataChange; | |||
import org.sonar.db.version.MassUpdate; | |||
import org.sonar.db.version.Select; | |||
import org.sonar.db.version.SqlStatement; | |||
import org.sonar.db.FileSources; | |||
public class FeedFileSourcesBinaryData extends BaseDataChange { | |||
@@ -63,7 +63,7 @@ public class FeedFileSourcesBinaryData extends BaseDataChange { | |||
} | |||
private byte[] toBinary(Long fileSourceId, @Nullable String data) { | |||
FileSources.Data.Builder dataBuilder = FileSources.Data.newBuilder(); | |||
DbFileSources.Data.Builder dataBuilder = DbFileSources.Data.newBuilder(); | |||
CSVParser parser = null; | |||
try { | |||
if (data != null) { | |||
@@ -74,7 +74,7 @@ public class FeedFileSourcesBinaryData extends BaseDataChange { | |||
CSVRecord row = rows.next(); | |||
if (row.size() == 16) { | |||
FileSources.Line.Builder lineBuilder = dataBuilder.addLinesBuilder(); | |||
DbFileSources.Line.Builder lineBuilder = dataBuilder.addLinesBuilder(); | |||
lineBuilder.setLine(line); | |||
String s = row.get(0); | |||
if (StringUtils.isNotEmpty(s)) { |
@@ -28,7 +28,7 @@ package org.sonar.server.source.db; | |||
// The java package can be changed without breaking compatibility. | |||
// it impacts only the generated Java code. | |||
option java_package = "org.sonar.db"; | |||
option java_package = "org.sonar.db.protobuf"; | |||
option optimize_for = SPEED; | |||
message Line { |
@@ -23,7 +23,7 @@ syntax = "proto2"; | |||
package sonarqube.db.issues; | |||
import "db_commons.proto"; | |||
import "db-commons.proto"; | |||
// The java package can be changed without breaking compatibility. | |||
// it impacts only the generated Java code. |
@@ -23,7 +23,7 @@ package org.sonar.db.source; | |||
import java.util.Arrays; | |||
import java.util.List; | |||
import org.junit.Test; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
@@ -31,11 +31,11 @@ public class FileSourceDtoTest { | |||
@Test | |||
public void encode_and_decode_test_data() { | |||
List<FileSources.Test> tests = Arrays.asList( | |||
FileSources.Test.newBuilder() | |||
List<DbFileSources.Test> tests = Arrays.asList( | |||
DbFileSources.Test.newBuilder() | |||
.setName("name#1") | |||
.build(), | |||
FileSources.Test.newBuilder() | |||
DbFileSources.Test.newBuilder() | |||
.setName("name#2") | |||
.build()); | |||
@@ -30,7 +30,7 @@ import org.junit.Test; | |||
import org.junit.rules.ExpectedException; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.FileSources; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
import org.sonar.db.source.FileSourceDto; | |||
import org.sonar.db.version.MigrationStep; | |||
@@ -55,7 +55,7 @@ public class FeedFileSourcesBinaryDataTest { | |||
assertThat(count).isEqualTo(3); | |||
try (Connection connection = db.openConnection()) { | |||
FileSources.Data data = selectData(connection, 1L); | |||
DbFileSources.Data data = selectData(connection, 1L); | |||
assertThat(data.getLinesCount()).isEqualTo(4); | |||
assertThat(data.getLines(0).getScmRevision()).isEqualTo("aef12a"); | |||
@@ -80,7 +80,7 @@ public class FeedFileSourcesBinaryDataTest { | |||
migration.execute(); | |||
} | |||
private FileSources.Data selectData(Connection connection, long fileSourceId) throws SQLException { | |||
private DbFileSources.Data selectData(Connection connection, long fileSourceId) throws SQLException { | |||
PreparedStatement pstmt = connection.prepareStatement("select binary_data from file_sources where id=?"); | |||
ResultSet rs = null; | |||
try { |