]> source.dussan.org Git - sonarqube.git/commitdiff
SONARCLOUD-89 Implements non blocking NLOC check
authorEric Hartmann <hartmann.eric@gmail.com>
Tue, 17 Jul 2018 14:19:06 +0000 (16:19 +0200)
committersonartech <sonartech@sonarsource.com>
Tue, 24 Jul 2018 07:31:49 +0000 (09:31 +0200)
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/PostMeasuresComputationCheck.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/PostMeasuresComputationChecksStep.java
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/VerifyBillingStep.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/VerifyBillingStepTest.java
server/sonar-server-common/src/main/java/org/sonar/server/organization/BillingValidations.java
server/sonar-server-common/src/main/java/org/sonar/server/organization/BillingValidationsProxyImpl.java
server/sonar-server-common/src/test/java/org/sonar/server/organization/BillingValidationsProxyImplTest.java

index 6262ba88030407e694147107e9787d24d4e2adef..e25d30a600a40802851d414772b9c3cc9f09037e 100644 (file)
@@ -22,6 +22,7 @@ package org.sonar.ce.task.projectanalysis.measure;
 import org.sonar.api.ExtensionPoint;
 import org.sonar.api.ce.ComputeEngineSide;
 import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
+import org.sonar.ce.task.projectanalysis.analysis.Branch;
 
 /**
  * Extension point that is called during processing of a task
@@ -53,6 +54,21 @@ public interface PostMeasuresComputationCheck {
      * Return the ncloc computed for the current analysis
      */
     int getNcloc();
+
+    /**
+     * Return the organization
+     */
+    String getOrganizationUuid();
+
+    /**
+     * Return the organization
+     */
+    String getOrganizationKey();
+
+    /**
+     * Return the branch of the project
+     */
+    Branch getBranch();
   }
 
 }
index a7369b4e687ff4a800db88d611a30aacc882521d..2fb140e654d3eceb716499ba90daddfe39b58cea 100644 (file)
@@ -23,6 +23,7 @@ import com.google.common.base.Optional;
 import org.sonar.api.ce.ComputeEngineSide;
 import org.sonar.api.measures.CoreMetrics;
 import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
+import org.sonar.ce.task.projectanalysis.analysis.Branch;
 import org.sonar.ce.task.projectanalysis.component.TreeRootHolder;
 import org.sonar.ce.task.projectanalysis.metric.Metric;
 import org.sonar.ce.task.projectanalysis.metric.MetricRepository;
@@ -43,8 +44,7 @@ public class PostMeasuresComputationChecksStep implements ComputationStep {
   private final PostMeasuresComputationCheck[] extensions;
 
   public PostMeasuresComputationChecksStep(TreeRootHolder treeRootHolder, MetricRepository metricRepository, MeasureRepository measureRepository,
-    AnalysisMetadataHolder analysisMetadataHolder,
-    PostMeasuresComputationCheck[] extensions) {
+    AnalysisMetadataHolder analysisMetadataHolder, PostMeasuresComputationCheck[] extensions) {
     this.treeRootHolder = treeRootHolder;
     this.metricRepository = metricRepository;
     this.measureRepository = measureRepository;
@@ -86,5 +86,20 @@ public class PostMeasuresComputationChecksStep implements ComputationStep {
       Optional<Measure> nclocMeasure = measureRepository.getRawMeasure(treeRootHolder.getRoot(), nclocMetric);
       return nclocMeasure.isPresent() ? nclocMeasure.get().getIntValue() : 0;
     }
+
+    @Override
+    public String getOrganizationUuid() {
+      return analysisMetadataHolder.getOrganization().getUuid();
+    }
+
+    @Override
+    public String getOrganizationKey() {
+      return analysisMetadataHolder.getOrganization().getKey();
+    }
+
+    @Override
+    public Branch getBranch() {
+      return analysisMetadataHolder.getBranch();
+    }
   }
 }
index 5eb0baef0a89eada5a2211fd624366173ebad107..0080f7c8c3b4a97c24110841fc7784bd7572082c 100644 (file)
@@ -44,7 +44,7 @@ public class VerifyBillingStep implements ComputationStep {
     try {
       Organization organization = analysisMetadata.getOrganization();
       BillingValidations.Organization billingOrganization = new BillingValidations.Organization(organization.getKey(), organization.getUuid());
-      billingValidations.checkOnProjectAnalysis(billingOrganization);
+      billingValidations.checkBeforeProjectAnalysis(billingOrganization);
     } catch (BillingValidations.BillingValidationsException e) {
       throw MessageException.of(e.getMessage());
     }
index e278e63de42778d574f3f61722ee89157fbcfbe8..975b31edb02cfad402449eadde244d4ad8979702 100644 (file)
@@ -54,7 +54,7 @@ public class VerifyBillingStepTest {
   public void execute_fails_with_MessageException_when_organization_is_not_allowed_to_execute_analysis() {
     doThrow(new BillingValidationsException("This organization cannot execute project analysis"))
       .when(validations)
-      .checkOnProjectAnalysis(any(BillingValidations.Organization.class));
+      .checkBeforeProjectAnalysis(any(BillingValidations.Organization.class));
 
     VerifyBillingStep underTest = new VerifyBillingStep(analysisMetadata, validations);
 
@@ -72,7 +72,7 @@ public class VerifyBillingStepTest {
     VerifyBillingStep underTest = new VerifyBillingStep(analysisMetadata, validations);
     underTest.execute();
 
-    verify(validations).checkOnProjectAnalysis(orgCaptor.capture());
+    verify(validations).checkBeforeProjectAnalysis(orgCaptor.capture());
     BillingValidations.Organization calledOrg = orgCaptor.getValue();
     assertThat(calledOrg.getKey()).isEqualTo(organization.getKey());
   }
index 797211a328be91da577fc555c8ffc9d1cd9a8fb6..d151b2e75fdd657369176d98ba8122bac83d566a 100644 (file)
@@ -36,7 +36,7 @@ public interface BillingValidations {
   /**
    * @throws BillingValidationsException when projects analysis on organization is not allowed
    */
-  void checkOnProjectAnalysis(Organization organization);
+  void checkBeforeProjectAnalysis(Organization organization);
 
   /**
    * @throws BillingValidationsException when the organization cannot use private projects
index 717c323dd97d1a831a17ade416b9f7326729889d..9ae7d6c8d5eb20b462edf0ef1aa43b5a52813a80 100644 (file)
@@ -36,11 +36,11 @@ public class BillingValidationsProxyImpl implements BillingValidationsProxy {
   }
 
   @Override
-  public void checkOnProjectAnalysis(Organization organization) {
+  public void checkBeforeProjectAnalysis(Organization organization) {
     if (billingValidationsExtension == null) {
       return;
     }
-    billingValidationsExtension.checkOnProjectAnalysis(organization);
+    billingValidationsExtension.checkBeforeProjectAnalysis(organization);
   }
 
   @Override
index 3ead0f5070a94a5a7c6889a65896df7d544f36b5..0b6f785ac12fd6b54d84816afe649d7e827db29b 100644 (file)
@@ -42,9 +42,9 @@ public class BillingValidationsProxyImplTest {
     underTest = new BillingValidationsProxyImpl(billingValidationsExtension);
     Organization organization = new Organization(ORGANIZATION_KEY, ORGANIZATION_UUID);
 
-    underTest.checkOnProjectAnalysis(organization);
+    underTest.checkBeforeProjectAnalysis(organization);
 
-    verify(billingValidationsExtension).checkOnProjectAnalysis(organization);
+    verify(billingValidationsExtension).checkBeforeProjectAnalysis(organization);
   }
 
   @Test
@@ -52,7 +52,7 @@ public class BillingValidationsProxyImplTest {
     underTest = new BillingValidationsProxyImpl();
     Organization organization = new Organization(ORGANIZATION_KEY, ORGANIZATION_UUID);
 
-    underTest.checkOnProjectAnalysis(organization);
+    underTest.checkBeforeProjectAnalysis(organization);
 
     verifyZeroInteractions(billingValidationsExtension);
   }