]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-7692 add DdlChange#getDialect() and use it in subclasses
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Thu, 9 Jun 2016 13:55:10 +0000 (15:55 +0200)
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Mon, 13 Jun 2016 06:45:48 +0000 (08:45 +0200)
this avoid having two private property with the same object

17 files changed:
sonar-db/src/main/java/org/sonar/db/version/DdlChange.java
sonar-db/src/main/java/org/sonar/db/version/v51/AddIssuesColumns.java
sonar-db/src/main/java/org/sonar/db/version/v51/DropIssuesColumns.java
sonar-db/src/main/java/org/sonar/db/version/v52/AddManualMeasuresComponentUuidColumn.java
sonar-db/src/main/java/org/sonar/db/version/v52/IncreasePrecisionOfNumerics.java
sonar-db/src/main/java/org/sonar/db/version/v54/AddUsersIdentityColumns.java
sonar-db/src/main/java/org/sonar/db/version/v54/IncreaseProjectsNameColumnsSize.java
sonar-db/src/main/java/org/sonar/db/version/v55/AddActiveRulesLongDateColumns.java
sonar-db/src/main/java/org/sonar/db/version/v55/AddIssuesType.java
sonar-db/src/main/java/org/sonar/db/version/v55/AddRulesColumns.java
sonar-db/src/main/java/org/sonar/db/version/v55/DropActiveRulesDateColumns.java
sonar-db/src/main/java/org/sonar/db/version/v55/DropRulesDatesAndCharacteristics.java
sonar-db/src/main/java/org/sonar/db/version/v56/FixLengthOfIssuesMessageOnOracle.java
sonar-db/src/main/java/org/sonar/db/version/v56/FixTypeOfRuleTypeOnMysql.java
sonar-db/src/main/java/org/sonar/db/version/v60/AddUuidColumnsToResourceIndex.java
sonar-db/src/main/java/org/sonar/db/version/v60/DropIdColumnsFromResourceIndex.java
sonar-db/src/main/java/org/sonar/db/version/v60/MakeUuidColumnsNotNullOnResourceIndex.java

index 559649f6ebe93dd79a5c62fc45d0a2f8a6399c55..8c03055856f46e4a82df7e96b2d61b14de4671a4 100644 (file)
@@ -24,6 +24,7 @@ import java.sql.SQLException;
 import java.util.List;
 import org.apache.commons.dbutils.DbUtils;
 import org.sonar.db.Database;
+import org.sonar.db.dialect.Dialect;
 
 import static java.lang.String.*;
 import static java.util.Arrays.asList;
@@ -56,6 +57,10 @@ public abstract class DdlChange implements MigrationStep {
     return db;
   }
 
+  protected Dialect getDialect() {
+    return db.getDialect();
+  }
+
   public static class Context {
     private final Connection writeConnection;
 
index 0f6c81883d2b4246b518793eb6a2574b6659a5cf..6eeaeb3166de34f3a724a0affd833fc5b14ebc7a 100644 (file)
@@ -38,11 +38,8 @@ import static org.sonar.db.version.VarcharColumnDef.newVarcharColumnDefBuilder;
  */
 public class AddIssuesColumns extends DdlChange {
 
-  private final Database db;
-
   public AddIssuesColumns(Database db) {
     super(db);
-    this.db = db;
   }
 
   @Override
@@ -51,7 +48,7 @@ public class AddIssuesColumns extends DdlChange {
   }
 
   private String generateSql() {
-    return new AddColumnsBuilder(db.getDialect(), "issues")
+    return new AddColumnsBuilder(getDialect(), "issues")
       .addColumn(newBigDecimalColumnDefBuilder().setColumnName("issue_creation_date_ms").setIsNullable(true).build())
       .addColumn(newBigDecimalColumnDefBuilder().setColumnName("issue_update_date_ms").setIsNullable(true).build())
       .addColumn(newBigDecimalColumnDefBuilder().setColumnName("issue_close_date_ms").setIsNullable(true).build())
index 4816579d3d618696e3c4d1c6c17db65aaff0c3bc..15256fddbf43849fe0268f7673c9091940116d28 100644 (file)
@@ -35,11 +35,8 @@ import org.sonar.db.version.DropColumnsBuilder;
  */
 public class DropIssuesColumns extends DdlChange {
 
-  private final Database db;
-
   public DropIssuesColumns(Database db) {
     super(db);
-    this.db = db;
   }
 
   @Override
@@ -49,7 +46,7 @@ public class DropIssuesColumns extends DdlChange {
 
   @VisibleForTesting
   String generateSql() {
-    return new DropColumnsBuilder(db.getDialect(), "issues",
+    return new DropColumnsBuilder(getDialect(), "issues",
       "issue_creation_date", "issue_update_date", "issue_close_date", "component_id", "root_component_id")
       .build();
   }
index a7187a3aa16db9cc79b5958fc36957f17fbf4d47..9dc46ec7c07470f2995ff2cc5bf928076f53c4eb 100644 (file)
@@ -42,7 +42,7 @@ public class AddManualMeasuresComponentUuidColumn extends DdlChange {
   }
 
   private String generateSql() {
-    return new AddColumnsBuilder(getDatabase().getDialect(), "manual_measures")
+    return new AddColumnsBuilder(getDialect(), "manual_measures")
       .addColumn(newVarcharColumnDefBuilder().setColumnName("component_uuid").setLimit(50).setIsNullable(true).build())
       .build();
   }
index 8e47e7e8b8a3bad480d11306c824fe8a5f31b1ae..3f77dd686bc41205f9df627ce154cee3cfa18983 100644 (file)
@@ -63,7 +63,7 @@ public class IncreasePrecisionOfNumerics extends DdlChange {
   }
 
   private List<String> generateSql(String table, String... columns) {
-    AlterColumnsTypeBuilder columnsBuilder = new AlterColumnsTypeBuilder(getDatabase().getDialect(), table);
+    AlterColumnsTypeBuilder columnsBuilder = new AlterColumnsTypeBuilder(getDialect(), table);
     for (String column : columns) {
       columnsBuilder.updateColumn(newDecimalColumnDefBuilder().setColumnName(column).build());
     }
index e9fcdd6e4409fb917f62493326f09e3fa8a327a7..95b1435ebafea213d1f2650e9698b0fd6ae177a5 100644 (file)
@@ -33,11 +33,8 @@ import static org.sonar.db.version.VarcharColumnDef.newVarcharColumnDefBuilder;
  */
 public class AddUsersIdentityColumns extends DdlChange {
 
-  private final Database db;
-
   public AddUsersIdentityColumns(Database db) {
     super(db);
-    this.db = db;
   }
 
   @Override
@@ -46,7 +43,7 @@ public class AddUsersIdentityColumns extends DdlChange {
   }
 
   private String generateSql() {
-    return new AddColumnsBuilder(db.getDialect(), "users")
+    return new AddColumnsBuilder(getDialect(), "users")
       .addColumn(newVarcharColumnDefBuilder().setColumnName("external_identity").setLimit(255).setIsNullable(true).build())
       .addColumn(newVarcharColumnDefBuilder().setColumnName("external_identity_provider").setLimit(100).setIsNullable(true).build())
       .build();
index 0cc378ec74d14e2f8654e84d70bab1b9a798a68e..6ab6727743f62ca2145b87e6e5230f34b478ddd0 100644 (file)
@@ -34,11 +34,8 @@ import static org.sonar.db.version.VarcharColumnDef.newVarcharColumnDefBuilder;
  */
 public class IncreaseProjectsNameColumnsSize extends DdlChange {
 
-  private final Database db;
-
   public IncreaseProjectsNameColumnsSize(Database db) {
     super(db);
-    this.db = db;
   }
 
   @Override
@@ -47,7 +44,7 @@ public class IncreaseProjectsNameColumnsSize extends DdlChange {
   }
 
   private List<String> generateSql() {
-    return new AlterColumnsTypeBuilder(db.getDialect(), "projects")
+    return new AlterColumnsTypeBuilder(getDialect(), "projects")
       .updateColumn(newVarcharColumnDefBuilder().setColumnName("name").setLimit(2000).setIsNullable(true).build())
       .updateColumn(newVarcharColumnDefBuilder().setColumnName("long_name").setLimit(2000).setIsNullable(true).build())
       .build();
index 4074e238fb53c6f46144e0adb5110974f97834e9..f9e381b226d88c61a26f45f4952db65557ef950c 100644 (file)
@@ -33,11 +33,8 @@ import static org.sonar.db.version.BigDecimalColumnDef.newBigDecimalColumnDefBui
  */
 public class AddActiveRulesLongDateColumns extends DdlChange {
 
-  private final Database db;
-
   public AddActiveRulesLongDateColumns(Database db) {
     super(db);
-    this.db = db;
   }
 
   @Override
@@ -46,7 +43,7 @@ public class AddActiveRulesLongDateColumns extends DdlChange {
   }
 
   private String generateSql() {
-    return new AddColumnsBuilder(db.getDialect(), "active_rules")
+    return new AddColumnsBuilder(getDialect(), "active_rules")
       .addColumn(newBigDecimalColumnDefBuilder().setColumnName("created_at_ms").setIsNullable(true).build())
       .addColumn(newBigDecimalColumnDefBuilder().setColumnName("updated_at_ms").setIsNullable(true).build())
       .build();
index 734dc8bb31b7fb7072e0d73fd5d41fa271dee14b..f1e5d602487ca722fd538115be704a5eca833f43 100644 (file)
@@ -27,11 +27,8 @@ import org.sonar.db.version.TinyIntColumnDef;
 
 public class AddIssuesType extends DdlChange {
 
-  private final Database db;
-
   public AddIssuesType(Database db) {
     super(db);
-    this.db = db;
   }
 
   @Override
@@ -40,7 +37,7 @@ public class AddIssuesType extends DdlChange {
   }
 
   private String generateSql() {
-    return new AddColumnsBuilder(db.getDialect(), "issues")
+    return new AddColumnsBuilder(getDialect(), "issues")
       .addColumn(new TinyIntColumnDef.Builder().setColumnName("issue_type").setIsNullable(true).build())
       .build();
   }
index 8b2d748d521a5452cfce2221031810bd8060883a..400b4c7702f91cbf13aa6763182d8b827fb2ce2f 100644 (file)
@@ -35,11 +35,8 @@ import static org.sonar.db.version.BigDecimalColumnDef.newBigDecimalColumnDefBui
  */
 public class AddRulesColumns extends DdlChange {
 
-  private final Database db;
-
   public AddRulesColumns(Database db) {
     super(db);
-    this.db = db;
   }
 
   @Override
@@ -48,7 +45,7 @@ public class AddRulesColumns extends DdlChange {
   }
 
   private String generateSql() {
-    return new AddColumnsBuilder(db.getDialect(), "rules")
+    return new AddColumnsBuilder(getDialect(), "rules")
       .addColumn(newBigDecimalColumnDefBuilder().setColumnName("created_at_ms").setIsNullable(true).build())
       .addColumn(newBigDecimalColumnDefBuilder().setColumnName("updated_at_ms").setIsNullable(true).build())
       .addColumn(new TinyIntColumnDef.Builder().setColumnName("rule_type").setIsNullable(true).build())
index 73d48056fde6fe3371150d8b47c5544a0b2d0bb7..79de7e585fe377ad458397f055cf96488b12f359 100644 (file)
@@ -32,11 +32,8 @@ import org.sonar.db.version.DropColumnsBuilder;
  */
 public class DropActiveRulesDateColumns extends DdlChange {
 
-  private final Database db;
-
   public DropActiveRulesDateColumns(Database db) {
     super(db);
-    this.db = db;
   }
 
   @Override
@@ -46,7 +43,7 @@ public class DropActiveRulesDateColumns extends DdlChange {
 
   @VisibleForTesting
   String generateSql() {
-    return new DropColumnsBuilder(db.getDialect(), "active_rules",
+    return new DropColumnsBuilder(getDialect(), "active_rules",
       "created_at", "updated_at")
       .build();
   }
index 5eb37083e1eaa97a8c95a3fc04769d030ffabb95..05f48dfdedc0946e88deadd4a72d00bb2c0f0bcf 100644 (file)
@@ -32,11 +32,8 @@ import org.sonar.db.version.DropColumnsBuilder;
  */
 public class DropRulesDatesAndCharacteristics extends DdlChange {
 
-  private final Database db;
-
   public DropRulesDatesAndCharacteristics(Database db) {
     super(db);
-    this.db = db;
   }
 
   @Override
@@ -46,7 +43,7 @@ public class DropRulesDatesAndCharacteristics extends DdlChange {
 
   @VisibleForTesting
   String generateSql() {
-    return new DropColumnsBuilder(db.getDialect(), "rules",
+    return new DropColumnsBuilder(getDialect(), "rules",
       "created_at", "updated_at", "characteristic_id", "default_characteristic_id")
       .build();
   }
index 4ad5ae6f61b121ef8408f3a00c42f73c0a68ed3a..3fcf5de327138cfed825b260f68cc129c604c842 100644 (file)
@@ -32,7 +32,7 @@ public class FixLengthOfIssuesMessageOnOracle extends DdlChange {
 
   @Override
   public void execute(Context context) throws SQLException {
-    if (getDatabase().getDialect().getId().equals(Oracle.ID)) {
+    if (getDialect().getId().equals(Oracle.ID)) {
       // in order to not depend on value of variable NLS_LENGTH_SEMANTICS, unit of length
       // is enforced to CHAR so that we're sure that type can't be 4000 BYTE.
       context.execute("ALTER TABLE issues MODIFY (message VARCHAR (4000 CHAR))");
index 09820a00ee6ab38d5490d354c560e74a597d54d5..e0b528435758348fb86915dbd6fa8f2582efe87e 100644 (file)
@@ -44,7 +44,7 @@ public class FixTypeOfRuleTypeOnMysql extends DdlChange {
     // In SQ 5.5, migration 1100 create columns with type TINYINT(1) instead of TINYINT(2)
     // In SQ 5.4 and lower, the type TINYINT(1) was used only for boolean columns, so no problem
     // As an optimization fix must be applied only for instances upgrading from 5.5.x
-    if (getDatabase().getDialect().getId().equals(MySql.ID) &&
+    if (getDialect().getId().equals(MySql.ID) &&
       dbVersion.getInitialDbVersion() >= SQ_5_5 && dbVersion.getInitialDbVersion() < SQ_5_6) {
       Loggers.get(getClass()).info("Changing TINYINT(1) to TINYINT(2)");
       context.execute("ALTER TABLE rules MODIFY COLUMN rule_type TINYINT (2)");
index 784db31149067d40cabe865552996ad2e510a3fe..45f54d9d1c3a159a8c3da0f65df38c168c4441c9 100644 (file)
@@ -31,16 +31,13 @@ public class AddUuidColumnsToResourceIndex extends DdlChange {
 
   private static final String TABLE_RESOURCE_INDEX = "resource_index";
 
-  private final Database db;
-
   public AddUuidColumnsToResourceIndex(Database db) {
     super(db);
-    this.db = db;
   }
 
   @Override
   public void execute(Context context) throws SQLException {
-    context.execute(new AddColumnsBuilder(db.getDialect(), TABLE_RESOURCE_INDEX)
+    context.execute(new AddColumnsBuilder(getDialect(), TABLE_RESOURCE_INDEX)
       .addColumn(newVarcharColumnDefBuilder().setColumnName("component_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(true).build())
       .addColumn(newVarcharColumnDefBuilder().setColumnName("root_component_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(true).build())
       .build());
index f7fe94c38e01440eb029318d625b76152e028b56..19f4ac4e22ab0409950bb77f5bea95c46d50bf07 100644 (file)
@@ -28,18 +28,15 @@ public class DropIdColumnsFromResourceIndex extends DdlChange {
 
   private static final String TABLE_RESOURCE_INDEX = "resource_index";
 
-  private final Database db;
-
   public DropIdColumnsFromResourceIndex(Database db) {
     super(db);
-    this.db = db;
   }
 
   @Override
   public void execute(Context context) throws SQLException {
     context.execute(
       new DropColumnsBuilder(
-        db.getDialect(), TABLE_RESOURCE_INDEX,
+        getDialect(), TABLE_RESOURCE_INDEX,
         "resource_id", "root_project_id")
           .build());
   }
index 16e01b3032399d3025bbaeb60186107d294822e1..fb50b2dfdf79a520f12c0a65872c9d52bda4071d 100644 (file)
@@ -31,16 +31,13 @@ public class MakeUuidColumnsNotNullOnResourceIndex extends DdlChange {
 
   private static final String TABLE_RESOURCE_INDEX = "resource_index";
 
-  private final Database db;
-
   public MakeUuidColumnsNotNullOnResourceIndex(Database db) {
     super(db);
-    this.db = db;
   }
 
   @Override
   public void execute(Context context) throws SQLException {
-    context.execute(new AlterColumnsTypeBuilder(db.getDialect(), TABLE_RESOURCE_INDEX)
+    context.execute(new AlterColumnsTypeBuilder(getDialect(), TABLE_RESOURCE_INDEX)
       .updateColumn(newVarcharColumnDefBuilder().setColumnName("component_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(false).build())
       .updateColumn(newVarcharColumnDefBuilder().setColumnName("root_component_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(false).build())
       .build());