summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2015-11-12 10:13:49 +0100
committerJulien Lancelot <julien.lancelot@sonarsource.com>2015-11-12 11:01:31 +0100
commit165e1f2b458fd3faf46ee1d46561874521cf8021 (patch)
tree0c84e55742ef6658f218f9271c8abe7a4d75b6d8 /server
parent86b52cb91e64c09db494cc3d62fbd00729ded2e5 (diff)
downloadsonarqube-165e1f2b458fd3faf46ee1d46561874521cf8021.tar.gz
sonarqube-165e1f2b458fd3faf46ee1d46561874521cf8021.zip
Replace usage of BatchReportReader.readMetadata() by AnalysisMetadataHolder
Diffstat (limited to 'server')
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/computation/step/SendIssueNotificationsStep.java10
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/computation/step/ValidateProjectStep.java13
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/computation/step/SendIssueNotificationsStepTest.java18
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/computation/step/ValidateProjectStepTest.java39
4 files changed, 36 insertions, 44 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/step/SendIssueNotificationsStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/step/SendIssueNotificationsStep.java
index e84ae899a00..8d6cf9d7c85 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/computation/step/SendIssueNotificationsStep.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/computation/step/SendIssueNotificationsStep.java
@@ -25,7 +25,7 @@ import java.util.Map;
import java.util.Set;
import org.sonar.core.issue.DefaultIssue;
import org.sonar.core.util.CloseableIterator;
-import org.sonar.server.computation.batch.BatchReportReader;
+import org.sonar.server.computation.analysis.AnalysisMetadataHolder;
import org.sonar.server.computation.component.Component;
import org.sonar.server.computation.component.TreeRootHolder;
import org.sonar.server.computation.issue.IssueCache;
@@ -52,17 +52,17 @@ public class SendIssueNotificationsStep implements ComputationStep {
private final RuleRepository rules;
private final TreeRootHolder treeRootHolder;
private final NotificationService service;
- private final BatchReportReader reportReader;
+ private final AnalysisMetadataHolder analysisMetadataHolder;
private NewIssuesNotificationFactory newIssuesNotificationFactory;
public SendIssueNotificationsStep(IssueCache issueCache, RuleRepository rules, TreeRootHolder treeRootHolder,
- NotificationService service, BatchReportReader reportReader,
+ NotificationService service, AnalysisMetadataHolder analysisMetadataHolder,
NewIssuesNotificationFactory newIssuesNotificationFactory) {
this.issueCache = issueCache;
this.rules = rules;
this.treeRootHolder = treeRootHolder;
this.service = service;
- this.reportReader = reportReader;
+ this.analysisMetadataHolder = analysisMetadataHolder;
this.newIssuesNotificationFactory = newIssuesNotificationFactory;
}
@@ -83,7 +83,7 @@ public class SendIssueNotificationsStep implements ComputationStep {
issues.close();
}
if (newIssuesStats.hasIssues()) {
- long analysisDate = reportReader.readMetadata().getAnalysisDate();
+ long analysisDate = analysisMetadataHolder.getAnalysisDate().getTime();
sendNewIssuesNotification(newIssuesStats, project, analysisDate);
sendNewIssuesNotificationToAssignees(newIssuesStats, project, analysisDate);
}
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/step/ValidateProjectStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/step/ValidateProjectStep.java
index 7177a62e46e..22a931809ff 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/computation/step/ValidateProjectStep.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/computation/step/ValidateProjectStep.java
@@ -29,13 +29,13 @@ import java.util.List;
import java.util.Map;
import javax.annotation.CheckForNull;
import org.sonar.api.utils.MessageException;
-import org.sonar.batch.protocol.output.BatchReport;
import org.sonar.core.component.ComponentKeys;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDao;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.component.SnapshotDto;
+import org.sonar.server.computation.analysis.AnalysisMetadataHolder;
import org.sonar.server.computation.batch.BatchReportReader;
import org.sonar.server.computation.component.Component;
import org.sonar.server.computation.component.ComponentVisitor;
@@ -64,11 +64,13 @@ public class ValidateProjectStep implements ComputationStep {
private final DbClient dbClient;
private final BatchReportReader reportReader;
private final TreeRootHolder treeRootHolder;
+ private final AnalysisMetadataHolder analysisMetadataHolder;
- public ValidateProjectStep(DbClient dbClient, BatchReportReader reportReader, TreeRootHolder treeRootHolder) {
+ public ValidateProjectStep(DbClient dbClient, BatchReportReader reportReader, TreeRootHolder treeRootHolder, AnalysisMetadataHolder analysisMetadataHolder) {
this.dbClient = dbClient;
this.reportReader = reportReader;
this.treeRootHolder = treeRootHolder;
+ this.analysisMetadataHolder = analysisMetadataHolder;
}
@Override
@@ -135,7 +137,7 @@ public class ValidateProjectStep implements ComputationStep {
private void validateAnalysisDate(Optional<ComponentDto> baseProject) {
if (baseProject.isPresent()) {
SnapshotDto snapshotDto = dbClient.snapshotDao().selectLastSnapshotByComponentId(session, baseProject.get().getId());
- long currentAnalysisDate = reportReader.readMetadata().getAnalysisDate();
+ long currentAnalysisDate = analysisMetadataHolder.getAnalysisDate().getTime();
Long lastAnalysisDate = snapshotDto != null ? snapshotDto.getCreatedAt() : null;
if (lastAnalysisDate != null && currentAnalysisDate <= snapshotDto.getCreatedAt()) {
validationMessages.add(String.format("Date of analysis cannot be older than the date of the last known analysis on this project. Value: \"%s\". " +
@@ -185,11 +187,10 @@ public class ValidateProjectStep implements ComputationStep {
@CheckForNull
private void validateBranch() {
- BatchReport.Metadata metadata = reportReader.readMetadata();
- if (!metadata.hasBranch()) {
+ String branch = analysisMetadataHolder.getBranch();
+ if (branch == null) {
return;
}
- String branch = metadata.getBranch();
if (!ComponentKeys.isValidBranch(branch)) {
validationMessages.add(String.format("\"%s\" is not a valid branch name. "
+ "Allowed characters are alphanumeric, '-', '_', '.' and '/'.", branch));
diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/step/SendIssueNotificationsStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/step/SendIssueNotificationsStepTest.java
index cd8512295df..e13692358eb 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/computation/step/SendIssueNotificationsStepTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/computation/step/SendIssueNotificationsStepTest.java
@@ -28,9 +28,8 @@ import org.sonar.api.notifications.Notification;
import org.sonar.api.rule.Severity;
import org.sonar.api.utils.Duration;
import org.sonar.api.utils.System2;
-import org.sonar.batch.protocol.output.BatchReport;
import org.sonar.core.issue.DefaultIssue;
-import org.sonar.server.computation.batch.BatchReportReaderRule;
+import org.sonar.server.computation.analysis.AnalysisMetadataHolderRule;
import org.sonar.server.computation.batch.TreeRootHolderRule;
import org.sonar.server.computation.component.Component;
import org.sonar.server.computation.component.Component.Type;
@@ -67,13 +66,14 @@ public class SendIssueNotificationsStepTest extends BaseStepTest {
static final Component PROJECT = builder(Type.PROJECT, 1).setUuid(PROJECT_UUID).setKey(PROJECT_KEY).setName(PROJECT_NAME).build();
@Rule
- public BatchReportReaderRule reportReader = new BatchReportReaderRule();
-
- @Rule
public TreeRootHolderRule treeRootHolder = new TreeRootHolderRule()
.setRoot(PROJECT);
@Rule
+ public AnalysisMetadataHolderRule analysisMetadataHolder = new AnalysisMetadataHolderRule()
+ .setAnalysisDate(new Date(ANALYSE_DATE));
+
+ @Rule
public TemporaryFolder temp = new TemporaryFolder();
NotificationService notificationService = mock(NotificationService.class);
@@ -87,15 +87,11 @@ public class SendIssueNotificationsStepTest extends BaseStepTest {
@Before
public void setUp() throws Exception {
issueCache = new IssueCache(temp.newFile(), System2.INSTANCE);
- underTest = new SendIssueNotificationsStep(issueCache, mock(RuleRepository.class), treeRootHolder, notificationService, reportReader, newIssuesNotificationFactory);
+ underTest = new SendIssueNotificationsStep(issueCache, mock(RuleRepository.class), treeRootHolder, notificationService, analysisMetadataHolder,
+ newIssuesNotificationFactory);
when(newIssuesNotificationFactory.newNewIssuesNotication()).thenReturn(newIssuesNotificationMock);
when(newIssuesNotificationFactory.newMyNewIssuesNotification()).thenReturn(myNewIssuesNotificationMock);
-
- reportReader.setMetadata(BatchReport.Metadata.newBuilder()
- .setRootComponentRef(1)
- .setAnalysisDate(ANALYSE_DATE)
- .build());
}
@Test
diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/step/ValidateProjectStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/step/ValidateProjectStepTest.java
index bc24a015cae..059ecab9c05 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/computation/step/ValidateProjectStepTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/computation/step/ValidateProjectStepTest.java
@@ -20,11 +20,13 @@
package org.sonar.server.computation.step;
+import java.util.Date;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.rules.ExpectedException;
+import org.sonar.api.utils.DateUtils;
import org.sonar.api.utils.MessageException;
import org.sonar.api.utils.System2;
import org.sonar.batch.protocol.Constants;
@@ -34,6 +36,7 @@ import org.sonar.db.DbTester;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.component.ComponentTesting;
import org.sonar.db.component.SnapshotTesting;
+import org.sonar.server.computation.analysis.AnalysisMetadataHolderRule;
import org.sonar.server.computation.batch.BatchReportReaderRule;
import org.sonar.server.computation.batch.TreeRootHolderRule;
import org.sonar.server.computation.component.Component;
@@ -43,9 +46,10 @@ import org.sonar.test.DbTests;
@Category(DbTests.class)
public class ValidateProjectStepTest {
- private static long DEFAULT_ANALYSIS_TIME = 1433131200000L; // 2015-06-01
- private static final String PROJECT_KEY = "PROJECT_KEY";
- private static final String MODULE_KEY = "MODULE_KEY";
+ static long DEFAULT_ANALYSIS_TIME = 1433131200000L; // 2015-06-01
+ static final String PROJECT_KEY = "PROJECT_KEY";
+ static final String MODULE_KEY = "MODULE_KEY";
+ static final String DEFAULT_BRANCH = "origin/master";
@Rule
public DbTester dbTester = DbTester.create(System2.INSTANCE);
@@ -59,9 +63,14 @@ public class ValidateProjectStepTest {
@Rule
public TreeRootHolderRule treeRootHolder = new TreeRootHolderRule();
+ @Rule
+ public AnalysisMetadataHolderRule analysisMetadataHolder = new AnalysisMetadataHolderRule()
+ .setAnalysisDate(new Date(DEFAULT_ANALYSIS_TIME))
+ .setBranch(DEFAULT_BRANCH);
+
DbClient dbClient = dbTester.getDbClient();
- ValidateProjectStep underTest = new ValidateProjectStep(dbClient, reportReader, treeRootHolder);
+ ValidateProjectStep underTest = new ValidateProjectStep(dbClient, reportReader, treeRootHolder, analysisMetadataHolder);
@Before
public void setUp() {
@@ -70,10 +79,7 @@ public class ValidateProjectStepTest {
@Test
public void not_fail_on_valid_branch() {
- reportReader.setMetadata(BatchReport.Metadata.newBuilder()
- .setAnalysisDate(DEFAULT_ANALYSIS_TIME)
- .setBranch("origin/master")
- .build());
+ analysisMetadataHolder.setBranch(DEFAULT_BRANCH);
reportReader.putComponent(BatchReport.Component.newBuilder()
.setRef(1)
.setType(Constants.ComponentType.PROJECT)
@@ -90,10 +96,7 @@ public class ValidateProjectStepTest {
thrown.expectMessage("Validation of project failed:\n" +
" o \"bran#ch\" is not a valid branch name. Allowed characters are alphanumeric, '-', '_', '.' and '/'.");
- reportReader.setMetadata(BatchReport.Metadata.newBuilder()
- .setAnalysisDate(DEFAULT_ANALYSIS_TIME)
- .setBranch("bran#ch")
- .build());
+ analysisMetadataHolder.setBranch("bran#ch");
reportReader.putComponent(BatchReport.Component.newBuilder()
.setRef(1)
.setType(Constants.ComponentType.PROJECT)
@@ -113,7 +116,6 @@ public class ValidateProjectStepTest {
" o \"Project\\Key\" is not a valid project or module key. Allowed characters are alphanumeric, '-', '_', '.' and ':', with at least one non-digit.\n" +
" o \"Module$Key\" is not a valid project or module key. Allowed characters are alphanumeric, '-', '_', '.' and ':', with at least one non-digit");
- reportReader.setMetadata(BatchReport.Metadata.newBuilder().setAnalysisDate(DEFAULT_ANALYSIS_TIME).build());
reportReader.putComponent(BatchReport.Component.newBuilder()
.setRef(1)
.setType(Constants.ComponentType.PROJECT)
@@ -140,7 +142,6 @@ public class ValidateProjectStepTest {
"If you really want to stop directly analysing project \"" + MODULE_KEY + "\", please first delete it from SonarQube and then relaunch the analysis of project \""
+ PROJECT_KEY + "\".");
- reportReader.setMetadata(BatchReport.Metadata.newBuilder().setAnalysisDate(DEFAULT_ANALYSIS_TIME).build());
reportReader.putComponent(BatchReport.Component.newBuilder()
.setRef(1)
.setType(Constants.ComponentType.PROJECT)
@@ -171,7 +172,6 @@ public class ValidateProjectStepTest {
thrown.expectMessage("Validation of project failed:\n" +
" o Module \"" + MODULE_KEY + "\" is already part of project \"" + anotherProjectKey + "\"");
- reportReader.setMetadata(BatchReport.Metadata.newBuilder().setAnalysisDate(DEFAULT_ANALYSIS_TIME).build());
reportReader.putComponent(BatchReport.Component.newBuilder()
.setRef(1)
.setType(Constants.ComponentType.PROJECT)
@@ -207,7 +207,6 @@ public class ValidateProjectStepTest {
"If you really want to stop directly analysing project \"" + anotherProjectKey + "\", please first delete it from SonarQube and then relaunch the analysis of project \""
+ PROJECT_KEY + "\".");
- reportReader.setMetadata(BatchReport.Metadata.newBuilder().setAnalysisDate(DEFAULT_ANALYSIS_TIME).build());
reportReader.putComponent(BatchReport.Component.newBuilder()
.setRef(1)
.setType(Constants.ComponentType.PROJECT)
@@ -235,9 +234,6 @@ public class ValidateProjectStepTest {
@Test
public void not_fail_if_analysis_date_is_after_last_analysis() {
- reportReader.setMetadata(BatchReport.Metadata.newBuilder()
- .setAnalysisDate(DEFAULT_ANALYSIS_TIME) // 2015-06-01
- .build());
reportReader.putComponent(BatchReport.Component.newBuilder()
.setRef(1)
.setType(Constants.ComponentType.PROJECT)
@@ -262,9 +258,8 @@ public class ValidateProjectStepTest {
thrown.expectMessage("Date of analysis cannot be older than the date of the last known analysis on this project. Value: ");
thrown.expectMessage("Latest analysis: ");
- reportReader.setMetadata(BatchReport.Metadata.newBuilder()
- .setAnalysisDate(1420088400000L) // 2015-01-01
- .build());
+ analysisMetadataHolder.setAnalysisDate(DateUtils.parseDate("2015-01-01"));
+
reportReader.putComponent(BatchReport.Component.newBuilder()
.setRef(1)
.setType(Constants.ComponentType.PROJECT)