diff options
author | Fabrice Bellingard <bellingard@gmail.com> | 2012-05-18 11:46:45 +0200 |
---|---|---|
committer | Fabrice Bellingard <bellingard@gmail.com> | 2012-05-18 11:47:50 +0200 |
commit | f17956df52bef73f50547fe297124f36a84c7980 (patch) | |
tree | cc33e81f7678667e65a161ddba2ad4f0eb8cbfa2 /sonar-core/src | |
parent | c6db467f14c0b1b63fd40e5c48b5b3b5a8fb50c0 (diff) | |
download | sonarqube-f17956df52bef73f50547fe297124f36a84c7980.tar.gz sonarqube-f17956df52bef73f50547fe297124f36a84c7980.zip |
SONAR-3126 Add check for same server ID when launching a batch
=> Stop the Sonar Analysis when the Sonar batch and the Sonar server
are not using the same DB
Diffstat (limited to 'sonar-core/src')
3 files changed, 26 insertions, 0 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java b/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java index 43476f3f6cf..fc6290e80a4 100644 --- a/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java +++ b/sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java @@ -22,7 +22,10 @@ package org.sonar.core.persistence; import com.google.common.annotations.VisibleForTesting; import org.apache.ibatis.session.SqlSession; import org.sonar.api.BatchComponent; +import org.sonar.api.CoreProperties; import org.sonar.api.ServerComponent; +import org.sonar.core.properties.PropertiesMapper; +import org.sonar.core.properties.PropertyDto; import java.util.Collections; import java.util.List; @@ -63,6 +66,17 @@ public class DatabaseVersion implements BatchComponent, ServerComponent { } } + public String getSonarCoreId() { + SqlSession session = mybatis.openSession(); + try { + PropertyDto serverIdProperty = session.getMapper(PropertiesMapper.class).selectByKey(new PropertyDto().setKey(CoreProperties.SERVER_ID)); + // this property can't be NULL + return serverIdProperty.getValue(); + } finally { + MyBatis.closeQuietly(session); + } + } + public Status getStatus() { return getStatus(getVersion(), LAST_VERSION); } diff --git a/sonar-core/src/test/java/org/sonar/core/persistence/DatabaseVersionTest.java b/sonar-core/src/test/java/org/sonar/core/persistence/DatabaseVersionTest.java index 9dbee6dbe21..1ec1e6b84aa 100644 --- a/sonar-core/src/test/java/org/sonar/core/persistence/DatabaseVersionTest.java +++ b/sonar-core/src/test/java/org/sonar/core/persistence/DatabaseVersionTest.java @@ -46,6 +46,15 @@ public class DatabaseVersionTest extends DaoTestCase { } @Test + public void getSonarCoreId() { + setupData("getSonarCoreId"); + + String sonarCoreId = new DatabaseVersion(getMyBatis()).getSonarCoreId(); + + assertThat(sonarCoreId, is("123456")); + } + + @Test public void getStatus() { assertThat(DatabaseVersion.getStatus(null, 150), is(DatabaseVersion.Status.FRESH_INSTALL)); assertThat(DatabaseVersion.getStatus(123, 150), is(DatabaseVersion.Status.REQUIRES_UPGRADE)); diff --git a/sonar-core/src/test/resources/org/sonar/core/persistence/DatabaseVersionTest/getSonarCoreId.xml b/sonar-core/src/test/resources/org/sonar/core/persistence/DatabaseVersionTest/getSonarCoreId.xml new file mode 100644 index 00000000000..44b1e8eb5be --- /dev/null +++ b/sonar-core/src/test/resources/org/sonar/core/persistence/DatabaseVersionTest/getSonarCoreId.xml @@ -0,0 +1,3 @@ +<dataset> + <properties id="1" prop_key="sonar.core.id" resource_id="[null]" text_value="123456" user_id="[null]"/> +</dataset> |