aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-core
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2015-04-03 14:09:31 +0200
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2015-04-17 15:14:59 +0200
commitc33a85a242df055f53dceafa26837613966a123e (patch)
treea849c52a5c58c2a33778104d65c98c41504d4927 /sonar-core
parent56f97c01d574701e04b1eff64e4b4f35e4311319 (diff)
downloadsonarqube-c33a85a242df055f53dceafa26837613966a123e.tar.gz
sonarqube-c33a85a242df055f53dceafa26837613966a123e.zip
SONAR-6366 add supportsMigration() on Dialect interface
Diffstat (limited to 'sonar-core')
-rw-r--r--sonar-core/src/main/java/org/sonar/core/persistence/dialect/Dialect.java7
-rw-r--r--sonar-core/src/main/java/org/sonar/core/persistence/dialect/H2.java5
-rw-r--r--sonar-core/src/main/java/org/sonar/core/persistence/dialect/MsSql.java5
-rw-r--r--sonar-core/src/main/java/org/sonar/core/persistence/dialect/MySql.java5
-rw-r--r--sonar-core/src/main/java/org/sonar/core/persistence/dialect/Oracle.java5
-rw-r--r--sonar-core/src/main/java/org/sonar/core/persistence/dialect/PostgreSql.java16
-rw-r--r--sonar-core/src/test/java/org/sonar/core/persistence/dialect/H2Test.java5
-rw-r--r--sonar-core/src/test/java/org/sonar/core/persistence/dialect/MsSqlTest.java5
-rw-r--r--sonar-core/src/test/java/org/sonar/core/persistence/dialect/MySqlTest.java5
-rw-r--r--sonar-core/src/test/java/org/sonar/core/persistence/dialect/OracleTest.java5
-rw-r--r--sonar-core/src/test/java/org/sonar/core/persistence/dialect/PostgreSqlTest.java5
11 files changed, 63 insertions, 5 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/dialect/Dialect.java b/sonar-core/src/main/java/org/sonar/core/persistence/dialect/Dialect.java
index a15fbbcc261..bcaeb161fc9 100644
--- a/sonar-core/src/main/java/org/sonar/core/persistence/dialect/Dialect.java
+++ b/sonar-core/src/main/java/org/sonar/core/persistence/dialect/Dialect.java
@@ -87,4 +87,11 @@ public interface Dialect {
* @since 5.0
*/
int getScrollSingleRowFetchSize();
+
+ /**
+ * Indicates whether DB migration can be perform on the DB vendor implementation associated with the current dialect.
+ *
+ * @return a boolean
+ */
+ boolean supportsMigration();
}
diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/dialect/H2.java b/sonar-core/src/main/java/org/sonar/core/persistence/dialect/H2.java
index d182cf6f9db..9361095d7d6 100644
--- a/sonar-core/src/main/java/org/sonar/core/persistence/dialect/H2.java
+++ b/sonar-core/src/main/java/org/sonar/core/persistence/dialect/H2.java
@@ -43,4 +43,9 @@ public class H2 extends AbstractDialect {
return StringUtils.startsWithIgnoreCase(jdbcConnectionURL, "jdbc:h2:");
}
+ @Override
+ public boolean supportsMigration() {
+ return false;
+ }
+
}
diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/dialect/MsSql.java b/sonar-core/src/main/java/org/sonar/core/persistence/dialect/MsSql.java
index 9fc40daed89..aff31dd5d2e 100644
--- a/sonar-core/src/main/java/org/sonar/core/persistence/dialect/MsSql.java
+++ b/sonar-core/src/main/java/org/sonar/core/persistence/dialect/MsSql.java
@@ -44,6 +44,11 @@ public class MsSql extends AbstractDialect {
|| StringUtils.startsWithIgnoreCase(jdbcConnectionURL, "jdbc:jtds:sqlserver:");
}
+ @Override
+ public boolean supportsMigration() {
+ return true;
+ }
+
public static class MsSqlDialect extends SQLServerDialect {
public MsSqlDialect() {
super();
diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/dialect/MySql.java b/sonar-core/src/main/java/org/sonar/core/persistence/dialect/MySql.java
index 47b1c3d3bbc..756a39a891c 100644
--- a/sonar-core/src/main/java/org/sonar/core/persistence/dialect/MySql.java
+++ b/sonar-core/src/main/java/org/sonar/core/persistence/dialect/MySql.java
@@ -65,4 +65,9 @@ public class MySql extends AbstractDialect {
public int getScrollSingleRowFetchSize() {
return Integer.MIN_VALUE;
}
+
+ @Override
+ public boolean supportsMigration() {
+ return true;
+ }
}
diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/dialect/Oracle.java b/sonar-core/src/main/java/org/sonar/core/persistence/dialect/Oracle.java
index d6673158a05..7333f13f1f0 100644
--- a/sonar-core/src/main/java/org/sonar/core/persistence/dialect/Oracle.java
+++ b/sonar-core/src/main/java/org/sonar/core/persistence/dialect/Oracle.java
@@ -46,6 +46,11 @@ public class Oracle extends AbstractDialect {
return StringUtils.startsWithIgnoreCase(jdbcConnectionURL, "jdbc:oracle:");
}
+ @Override
+ public boolean supportsMigration() {
+ return true;
+ }
+
public static class Oracle10gWithDecimalDialect extends Oracle10gDialect {
public Oracle10gWithDecimalDialect() {
super();
diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/dialect/PostgreSql.java b/sonar-core/src/main/java/org/sonar/core/persistence/dialect/PostgreSql.java
index 3f33da58317..b9bfc5eff26 100644
--- a/sonar-core/src/main/java/org/sonar/core/persistence/dialect/PostgreSql.java
+++ b/sonar-core/src/main/java/org/sonar/core/persistence/dialect/PostgreSql.java
@@ -48,20 +48,26 @@ public class PostgreSql extends AbstractDialect {
return StringUtils.startsWithIgnoreCase(jdbcConnectionURL, "jdbc:postgresql:");
}
+ @Override
+ public List<String> getConnectionInitStatements() {
+ return INIT_STATEMENTS;
+ }
+
+ @Override
+ public boolean supportsMigration() {
+ return true;
+ }
+
public static class PostgreSQLWithDecimalDialect extends PostgreSQLDialect {
+
public PostgreSQLWithDecimalDialect() {
super();
registerColumnType(Types.DOUBLE, "numeric($p,$s)");
}
-
@Override
public Class getNativeIdentifierGeneratorClass() {
return PostgreSQLSequenceGenerator.class;
}
- }
- @Override
- public List<String> getConnectionInitStatements() {
- return INIT_STATEMENTS;
}
}
diff --git a/sonar-core/src/test/java/org/sonar/core/persistence/dialect/H2Test.java b/sonar-core/src/test/java/org/sonar/core/persistence/dialect/H2Test.java
index 86e4838c3ff..ae6f853a60b 100644
--- a/sonar-core/src/test/java/org/sonar/core/persistence/dialect/H2Test.java
+++ b/sonar-core/src/test/java/org/sonar/core/persistence/dialect/H2Test.java
@@ -51,4 +51,9 @@ public class H2Test {
public void testFetchSizeForScrolling() throws Exception {
assertThat(dialect.getScrollDefaultFetchSize()).isEqualTo(200);
}
+
+ @Test
+ public void h2_does_not_supportMigration() throws Exception {
+ assertThat(dialect.supportsMigration()).isFalse();
+ }
}
diff --git a/sonar-core/src/test/java/org/sonar/core/persistence/dialect/MsSqlTest.java b/sonar-core/src/test/java/org/sonar/core/persistence/dialect/MsSqlTest.java
index 930bd8398f2..33c92f224eb 100644
--- a/sonar-core/src/test/java/org/sonar/core/persistence/dialect/MsSqlTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/persistence/dialect/MsSqlTest.java
@@ -49,4 +49,9 @@ public class MsSqlTest {
assertThat(msSql.getDefaultDriverClassName()).isEqualTo("net.sourceforge.jtds.jdbc.Driver");
assertThat(msSql.getValidationQuery()).isEqualTo("SELECT 1");
}
+
+ @Test
+ public void msSql_does_supportMigration() throws Exception {
+ assertThat(msSql.supportsMigration()).isTrue();
+ }
}
diff --git a/sonar-core/src/test/java/org/sonar/core/persistence/dialect/MySqlTest.java b/sonar-core/src/test/java/org/sonar/core/persistence/dialect/MySqlTest.java
index 32ad0160c39..6694d035f68 100644
--- a/sonar-core/src/test/java/org/sonar/core/persistence/dialect/MySqlTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/persistence/dialect/MySqlTest.java
@@ -55,4 +55,9 @@ public class MySqlTest {
assertThat(mySql.getScrollDefaultFetchSize()).isEqualTo(Integer.MIN_VALUE);
assertThat(mySql.getScrollSingleRowFetchSize()).isEqualTo(Integer.MIN_VALUE);
}
+
+ @Test
+ public void mysql_does_supportMigration() throws Exception {
+ assertThat(mySql.supportsMigration()).isTrue();
+ }
}
diff --git a/sonar-core/src/test/java/org/sonar/core/persistence/dialect/OracleTest.java b/sonar-core/src/test/java/org/sonar/core/persistence/dialect/OracleTest.java
index d50f7ccc2b0..b3710e9f27e 100644
--- a/sonar-core/src/test/java/org/sonar/core/persistence/dialect/OracleTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/persistence/dialect/OracleTest.java
@@ -52,4 +52,9 @@ public class OracleTest {
assertThat(dialect.getScrollDefaultFetchSize()).isEqualTo(200);
assertThat(dialect.getScrollSingleRowFetchSize()).isEqualTo(1);
}
+
+ @Test
+ public void oracle_does_supportMigration() throws Exception {
+ assertThat(dialect.supportsMigration()).isTrue();
+ }
}
diff --git a/sonar-core/src/test/java/org/sonar/core/persistence/dialect/PostgreSqlTest.java b/sonar-core/src/test/java/org/sonar/core/persistence/dialect/PostgreSqlTest.java
index 5eeabda0239..61a71212ac1 100644
--- a/sonar-core/src/test/java/org/sonar/core/persistence/dialect/PostgreSqlTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/persistence/dialect/PostgreSqlTest.java
@@ -57,4 +57,9 @@ public class PostgreSqlTest {
public void testFetchSizeForScrolling() throws Exception {
assertThat(dialect.getScrollDefaultFetchSize()).isEqualTo(200);
}
+
+ @Test
+ public void postgres_does_supportMigration() throws Exception {
+ assertThat(dialect.supportsMigration()).isTrue();
+ }
}