summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2015-11-10 16:59:46 +0100
committerJulien Lancelot <julien.lancelot@sonarsource.com>2015-11-12 11:01:29 +0100
commit0b18f3b8e72a7576dd0e2d778de290489565dd69 (patch)
tree60c746f3b2b1995b55135e46b1fe853c24e76b8d /server
parentdc752be6e8dad85bd8000297ea650e22133f7839 (diff)
downloadsonarqube-0b18f3b8e72a7576dd0e2d778de290489565dd69.tar.gz
sonarqube-0b18f3b8e72a7576dd0e2d778de290489565dd69.zip
SONAR-6993 Add root component ref in analysis metadata holder
Diffstat (limited to 'server')
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/computation/analysis/AnalysisMetadataHolder.java5
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/computation/analysis/AnalysisMetadataHolderImpl.java18
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/computation/analysis/MutableAnalysisMetadataHolder.java5
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/computation/analysis/AnalysisMetadataHolderImplTest.java27
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/computation/analysis/MutableAnalysisMetadataHolderRule.java10
5 files changed, 63 insertions, 2 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/analysis/AnalysisMetadataHolder.java b/server/sonar-server/src/main/java/org/sonar/server/computation/analysis/AnalysisMetadataHolder.java
index c916fc8feb8..595afb2817f 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/computation/analysis/AnalysisMetadataHolder.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/computation/analysis/AnalysisMetadataHolder.java
@@ -56,4 +56,9 @@ public interface AnalysisMetadataHolder {
@CheckForNull
String getBranch();
+ /**
+ * @throws IllegalStateException if root component ref has not been set
+ */
+ int getRootComponentRef();
+
}
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/analysis/AnalysisMetadataHolderImpl.java b/server/sonar-server/src/main/java/org/sonar/server/computation/analysis/AnalysisMetadataHolderImpl.java
index 81f10bef2ca..6cd49d3bd14 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/computation/analysis/AnalysisMetadataHolderImpl.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/computation/analysis/AnalysisMetadataHolderImpl.java
@@ -28,16 +28,17 @@ import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;
public class AnalysisMetadataHolderImpl implements MutableAnalysisMetadataHolder {
- @CheckForNull
+
private InitializedProperty<Long> analysisDate = new InitializedProperty<>();
private InitializedProperty<Snapshot> baseProjectSnapshot = new InitializedProperty<>();
- @CheckForNull
private InitializedProperty<Boolean> crossProjectDuplicationEnabled = new InitializedProperty<>();
private InitializedProperty<String> branch = new InitializedProperty<>();
+ private InitializedProperty<Integer> rootComponentRef = new InitializedProperty<>();
+
@Override
public void setAnalysisDate(Date date) {
checkNotNull(date, "Date must not be null");
@@ -93,6 +94,18 @@ public class AnalysisMetadataHolderImpl implements MutableAnalysisMetadataHolder
return branch.getProperty();
}
+ @Override
+ public void setRootComponentRef(int rootComponentRef) {
+ checkState(!this.rootComponentRef.isInitialized(), "Root component ref has already been set");
+ this.rootComponentRef.setProperty(rootComponentRef);
+ }
+
+ @Override
+ public int getRootComponentRef() {
+ checkState(rootComponentRef.isInitialized(), "Root component ref has not been set");
+ return rootComponentRef.getProperty();
+ }
+
private static class InitializedProperty<E> {
private E property;
private boolean initialized = false;
@@ -112,4 +125,5 @@ public class AnalysisMetadataHolderImpl implements MutableAnalysisMetadataHolder
return initialized;
}
}
+
}
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/analysis/MutableAnalysisMetadataHolder.java b/server/sonar-server/src/main/java/org/sonar/server/computation/analysis/MutableAnalysisMetadataHolder.java
index 8c3f0ca98ec..eec006c0591 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/computation/analysis/MutableAnalysisMetadataHolder.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/computation/analysis/MutableAnalysisMetadataHolder.java
@@ -46,4 +46,9 @@ public interface MutableAnalysisMetadataHolder extends AnalysisMetadataHolder {
*/
void setBranch(@Nullable String branch);
+ /**
+ * @throws IllegalStateException if root component ref has already been set
+ */
+ void setRootComponentRef(int rootComponentRef);
+
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/analysis/AnalysisMetadataHolderImplTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/analysis/AnalysisMetadataHolderImplTest.java
index f0aca8636a8..a204ab73c57 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/computation/analysis/AnalysisMetadataHolderImplTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/computation/analysis/AnalysisMetadataHolderImplTest.java
@@ -194,4 +194,31 @@ public class AnalysisMetadataHolderImplTest {
expectedException.expectMessage("Branch has already been set");
underTest.setBranch("origin/master");
}
+
+ @Test
+ public void getRootComponentRef() throws InterruptedException {
+ AnalysisMetadataHolderImpl underTest = new AnalysisMetadataHolderImpl();
+
+ underTest.setRootComponentRef(10);
+
+ assertThat(underTest.getRootComponentRef()).isEqualTo(10);
+ }
+
+ @Test
+ public void getRootComponentRef_throws_ISE_when_holder_is_not_initialized() {
+ expectedException.expect(IllegalStateException.class);
+ expectedException.expectMessage("Root component ref has not been set");
+
+ new AnalysisMetadataHolderImpl().getRootComponentRef();
+ }
+
+ @Test
+ public void setRootComponentRef_throws_ISE_when_called_twice() {
+ AnalysisMetadataHolderImpl underTest = new AnalysisMetadataHolderImpl();
+ underTest.setRootComponentRef(10);
+
+ expectedException.expect(IllegalStateException.class);
+ expectedException.expectMessage("Root component ref has already been set");
+ underTest.setRootComponentRef(9);
+ }
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/analysis/MutableAnalysisMetadataHolderRule.java b/server/sonar-server/src/test/java/org/sonar/server/computation/analysis/MutableAnalysisMetadataHolderRule.java
index fed4344a683..51a9fb5295b 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/computation/analysis/MutableAnalysisMetadataHolderRule.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/computation/analysis/MutableAnalysisMetadataHolderRule.java
@@ -79,4 +79,14 @@ public class MutableAnalysisMetadataHolderRule extends ExternalResource implemen
public void setBranch(@Nullable String branch) {
delegate.setBranch(branch);
}
+
+ @Override
+ public void setRootComponentRef(int rootComponentRef) {
+ delegate.setRootComponentRef(rootComponentRef);
+ }
+
+ @Override
+ public int getRootComponentRef() {
+ return delegate.getRootComponentRef();
+ }
}