diff options
author | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2019-10-08 11:12:12 +0200 |
---|---|---|
committer | SonarTech <sonartech@sonarsource.com> | 2019-10-09 20:21:06 +0200 |
commit | 140e84fbdfd4ec9ddc15a7574d984ff1c059f6a0 (patch) | |
tree | f90f9b95ee59ece7a2347a12316cb5a1c2d5ad11 | |
parent | 82c9246f858728ef01603989d129342fb9830785 (diff) | |
download | sonarqube-140e84fbdfd4ec9ddc15a7574d984ff1c059f6a0.tar.gz sonarqube-140e84fbdfd4ec9ddc15a7574d984ff1c059f6a0.zip |
fix some quality flaws on the new code period
22 files changed, 476 insertions, 257 deletions
diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/qualitymodel/ReliabilityAndSecurityRatingMeasuresVisitor.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/qualitymodel/ReliabilityAndSecurityRatingMeasuresVisitor.java index a4eb9234515..534c47cc351 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/qualitymodel/ReliabilityAndSecurityRatingMeasuresVisitor.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/qualitymodel/ReliabilityAndSecurityRatingMeasuresVisitor.java @@ -20,15 +20,12 @@ package org.sonar.ce.task.projectanalysis.qualitymodel; import com.google.common.collect.ImmutableMap; -import java.util.EnumMap; -import java.util.HashMap; import java.util.Map; import org.sonar.api.measures.CoreMetrics; import org.sonar.ce.task.projectanalysis.component.Component; import org.sonar.ce.task.projectanalysis.component.PathAwareVisitorAdapter; import org.sonar.ce.task.projectanalysis.formula.counter.RatingValue; import org.sonar.ce.task.projectanalysis.issue.ComponentIssuesRepository; -import org.sonar.ce.task.projectanalysis.measure.Measure; import org.sonar.ce.task.projectanalysis.measure.MeasureRepository; import org.sonar.ce.task.projectanalysis.measure.RatingMeasures; import org.sonar.ce.task.projectanalysis.metric.Metric; @@ -40,7 +37,6 @@ import static org.sonar.api.measures.CoreMetrics.SECURITY_RATING_KEY; import static org.sonar.api.rules.RuleType.BUG; import static org.sonar.api.rules.RuleType.VULNERABILITY; import static org.sonar.ce.task.projectanalysis.component.CrawlerDepthLimit.FILE; -import static org.sonar.ce.task.projectanalysis.measure.Measure.newMeasureBuilder; import static org.sonar.server.measure.Rating.RATING_BY_SEVERITY; /** diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/metric/MetricDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/metric/MetricDto.java index 33db00e3d25..52a16a46903 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/metric/MetricDto.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/metric/MetricDto.java @@ -22,9 +22,6 @@ package org.sonar.db.metric; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import static org.sonar.api.measures.Metric.ValueType.DATA; -import static org.sonar.api.measures.Metric.ValueType.DISTRIB; -import static org.sonar.api.measures.Metric.ValueType.STRING; import static org.sonar.db.metric.MetricValidator.checkMetricDescription; import static org.sonar.db.metric.MetricValidator.checkMetricDomain; import static org.sonar.db.metric.MetricValidator.checkMetricKey; diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QualityProfileExportDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QualityProfileExportDao.java index 5f2ff75ff8f..34a87233d2c 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QualityProfileExportDao.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QualityProfileExportDao.java @@ -44,7 +44,7 @@ public class QualityProfileExportDao implements Dao { return exportRules; } - private Map<Integer, List<ExportRuleParamDto>> selectParamsByActiveRuleIds(DbSession dbSession, Collection<Integer> activeRuleIds) { + private static Map<Integer, List<ExportRuleParamDto>> selectParamsByActiveRuleIds(DbSession dbSession, Collection<Integer> activeRuleIds) { return executeLargeInputs(activeRuleIds, ids -> mapper(dbSession).selectParamsByActiveRuleIds(ids)) .stream() .collect(Collectors.groupingBy(ExportRuleParamDto::getActiveRuleId)); diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v00/CreateInitialSchema.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v00/CreateInitialSchema.java index a999c797d2e..803104c4973 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v00/CreateInitialSchema.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v00/CreateInitialSchema.java @@ -25,12 +25,16 @@ import org.sonar.server.platform.db.migration.def.BigIntegerColumnDef; import org.sonar.server.platform.db.migration.def.BooleanColumnDef; import org.sonar.server.platform.db.migration.def.ColumnDef; import org.sonar.server.platform.db.migration.def.IntegerColumnDef; +import org.sonar.server.platform.db.migration.def.TimestampColumnDef; import org.sonar.server.platform.db.migration.def.TinyIntColumnDef; import org.sonar.server.platform.db.migration.def.VarcharColumnDef; import org.sonar.server.platform.db.migration.sql.CreateIndexBuilder; import org.sonar.server.platform.db.migration.sql.CreateTableBuilder; import org.sonar.server.platform.db.migration.step.DdlChange; +import static java.util.Arrays.stream; +import static java.util.stream.Stream.concat; +import static java.util.stream.Stream.of; import static org.sonar.server.platform.db.migration.def.BigIntegerColumnDef.newBigIntegerColumnDefBuilder; import static org.sonar.server.platform.db.migration.def.BlobColumnDef.newBlobColumnDefBuilder; import static org.sonar.server.platform.db.migration.def.BooleanColumnDef.newBooleanColumnDefBuilder; @@ -41,12 +45,38 @@ import static org.sonar.server.platform.db.migration.def.TimestampColumnDef.newT import static org.sonar.server.platform.db.migration.def.TinyIntColumnDef.newTinyIntColumnDefBuilder; import static org.sonar.server.platform.db.migration.def.VarcharColumnDef.MAX_SIZE; import static org.sonar.server.platform.db.migration.def.VarcharColumnDef.UUID_SIZE; -import static org.sonar.server.platform.db.migration.def.VarcharColumnDef.UUID_VARCHAR_SIZE; import static org.sonar.server.platform.db.migration.def.VarcharColumnDef.newVarcharColumnDefBuilder; import static org.sonar.server.platform.db.migration.sql.CreateTableBuilder.ColumnFlag.AUTO_INCREMENT; public class CreateInitialSchema extends DdlChange { + /** + * Initially, UUID columns were created with size 50 when only 40 is needed. {@link VarcharColumnDef#UUID_SIZE} + * should be used instead of this constant whenever reducing the column size is possible. + */ + private static final int OLD_UUID_VARCHAR_SIZE = 50; + + // keep column name constants in alphabetic order + private static final String ANALYSIS_UUID_COL_NAME = "analysis_uuid"; + private static final String COMPONENT_UUID_COL_NAME = "component_uuid"; + private static final String CREATED_AT_COL_NAME = "created_at"; + private static final String DESCRIPTION_COL_NAME = "description"; + private static final String METRIC_ID_COL_NAME = "metric_id"; + private static final String ORGANIZATION_UUID_COL_NAME = "organization_uuid"; + private static final String PROJECT_UUID_COL_NAME = "project_uuid"; + private static final String TASK_UUID_COL_NAME = "task_uuid"; + private static final String UPDATED_AT_COL_NAME = "updated_at"; + private static final String USER_UUID_COL_NAME = "user_uuid"; + + // usual technical columns + private static final IntegerColumnDef ID_COL = newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(); + private static final BigIntegerColumnDef TECHNICAL_CREATED_AT_COL = newBigIntegerColumnDefBuilder().setColumnName(CREATED_AT_COL_NAME).setIsNullable(false).build(); + private static final BigIntegerColumnDef NULLABLE_TECHNICAL_CREATED_AT_COL = newBigIntegerColumnDefBuilder().setColumnName(CREATED_AT_COL_NAME).setIsNullable(true).build(); + private static final BigIntegerColumnDef TECHNICAL_UPDATED_AT_COL = newBigIntegerColumnDefBuilder().setColumnName(UPDATED_AT_COL_NAME).setIsNullable(false).build(); + private static final BigIntegerColumnDef NULLABLE_TECHNICAL_UPDATED_AT_COL = newBigIntegerColumnDefBuilder().setColumnName(UPDATED_AT_COL_NAME).setIsNullable(true).build(); + private static final TimestampColumnDef DEPRECATED_TECHNICAL_CREATED_AT_COL = newTimestampColumnDefBuilder().setColumnName(CREATED_AT_COL_NAME).setIsNullable(true).build(); + private static final TimestampColumnDef DEPRECATED_TECHNICAL_UPDATED_AT_COL = newTimestampColumnDefBuilder().setColumnName(UPDATED_AT_COL_NAME).setIsNullable(true).build(); + public CreateInitialSchema(Database db) { super(db); } @@ -123,7 +153,7 @@ public class CreateInitialSchema extends DdlChange { IntegerColumnDef activeRuleIdColumnDef = newIntegerColumnDefBuilder().setColumnName("active_rule_id").setIsNullable(false).build(); context.execute( newTableBuilder(tableName) - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(activeRuleIdColumnDef) .addColumn(newIntegerColumnDefBuilder().setColumnName("rules_parameter_id").setIsNullable(false).build()) .addColumn(newLenientVarcharBuilder("value").setLimit(MAX_SIZE).build()) @@ -137,13 +167,13 @@ public class CreateInitialSchema extends DdlChange { IntegerColumnDef ruleIdCol = newIntegerColumnDefBuilder().setColumnName("rule_id").setIsNullable(false).build(); context.execute( newTableBuilder("active_rules") - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(profileIdCol) .addColumn(ruleIdCol) .addColumn(newIntegerColumnDefBuilder().setColumnName("failure_level").setIsNullable(false).build()) .addColumn(newLenientVarcharBuilder("inheritance").setLimit(10).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").build()) + .addColumn(NULLABLE_TECHNICAL_CREATED_AT_COL) + .addColumn(NULLABLE_TECHNICAL_UPDATED_AT_COL) .build()); addIndex(context, "active_rules", "uniq_profile_rule_ids", true, profileIdCol, ruleIdCol); } @@ -161,8 +191,8 @@ public class CreateInitialSchema extends DdlChange { .addColumn(installCol) .addColumn(newBooleanColumnDefBuilder().setColumnName("is_owner_user").setIsNullable(false).build()) .addColumn(userExternalIdCol) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) + .addColumn(TECHNICAL_UPDATED_AT_COL) .build()); addIndex(context, tableName, "alm_app_installs_owner", true, almIdCol, ownerCol); addIndex(context, tableName, "alm_app_installs_install", true, almIdCol, installCol); @@ -183,7 +213,7 @@ public class CreateInitialSchema extends DdlChange { .addColumn(newVarcharColumnBuilder("text_value").setIsNullable(true).setLimit(MAX_SIZE).build()) .addColumn(newClobColumnDefBuilder().setColumnName("clob_value").setIsNullable(true).build()) .addColumn(newBooleanColumnDefBuilder().setColumnName("is_empty").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) .build()); addIndex(context, tableName, "ix_snapshot_uuid", false, snapshotUuidColumn); } @@ -192,7 +222,7 @@ public class CreateInitialSchema extends DdlChange { String tableName = "ce_activity"; VarcharColumnDef uuidCol = newLenientVarcharBuilder("uuid").setLimit(UUID_SIZE).setIsNullable(false).build(); VarcharColumnDef mainComponentUuidCol = newVarcharColumnBuilder("main_component_uuid").setLimit(UUID_SIZE).setIsNullable(true).build(); - VarcharColumnDef componentUuidCol = newVarcharColumnBuilder("component_uuid").setLimit(UUID_SIZE).setIsNullable(true).build(); + VarcharColumnDef componentUuidCol = newVarcharColumnBuilder(COMPONENT_UUID_COL_NAME).setLimit(UUID_SIZE).setIsNullable(true).build(); VarcharColumnDef statusCol = newLenientVarcharBuilder("status").setLimit(15).setIsNullable(false).build(); BooleanColumnDef isLastCol = newBooleanColumnDefBuilder().setColumnName("is_last").setIsNullable(false).build(); VarcharColumnDef isLastKeyCol = newLenientVarcharBuilder("is_last_key").setLimit(55).setIsNullable(false).build(); @@ -200,7 +230,7 @@ public class CreateInitialSchema extends DdlChange { VarcharColumnDef mainIsLastKeyCol = newLenientVarcharBuilder("main_is_last_key").setLimit(55).setIsNullable(false).build(); context.execute( newTableBuilder(tableName) - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(uuidCol) .addColumn(newLenientVarcharBuilder("task_type").setLimit(15).setIsNullable(false).build()) .addColumn(mainComponentUuidCol) @@ -216,13 +246,13 @@ public class CreateInitialSchema extends DdlChange { .addColumn(newBigIntegerColumnDefBuilder().setColumnName("executed_at").setIsNullable(true).build()) .addColumn(newIntegerColumnDefBuilder().setColumnName("execution_count").setIsNullable(false).build()) .addColumn(newBigIntegerColumnDefBuilder().setColumnName("execution_time_ms").setIsNullable(true).build()) - .addColumn(newLenientVarcharBuilder("analysis_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(true).build()) + .addColumn(newLenientVarcharBuilder(ANALYSIS_UUID_COL_NAME).setLimit(OLD_UUID_VARCHAR_SIZE).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("error_message").setLimit(1_000).setIsNullable(true).build()) .addColumn(newClobColumnDefBuilder().setColumnName("error_stacktrace").setIsNullable(true).build()) .addColumn(newVarcharColumnBuilder("error_type").setLimit(20).setIsNullable(true).build()) .addColumn(newVarcharColumnBuilder("worker_uuid").setLimit(UUID_SIZE).setIsNullable(true).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) + .addColumn(TECHNICAL_UPDATED_AT_COL) .build()); addIndex(context, tableName, "ce_activity_component", false, componentUuidCol); addIndex(context, tableName, "ce_activity_islast", false, isLastCol, statusCol); @@ -237,10 +267,10 @@ public class CreateInitialSchema extends DdlChange { String tableName = "ce_queue"; VarcharColumnDef uuidCol = newLenientVarcharBuilder("uuid").setLimit(UUID_SIZE).setIsNullable(false).build(); VarcharColumnDef mainComponentUuidCol = newLenientVarcharBuilder("main_component_uuid").setLimit(UUID_SIZE).setIsNullable(true).build(); - VarcharColumnDef componentUuidCol = newLenientVarcharBuilder("component_uuid").setLimit(UUID_SIZE).setIsNullable(true).build(); + VarcharColumnDef componentUuidCol = newLenientVarcharBuilder(COMPONENT_UUID_COL_NAME).setLimit(UUID_SIZE).setIsNullable(true).build(); context.execute( newTableBuilder(tableName) - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(uuidCol) .addColumn(newLenientVarcharBuilder("task_type").setLimit(15).setIsNullable(false).build()) .addColumn(mainComponentUuidCol) @@ -250,8 +280,8 @@ public class CreateInitialSchema extends DdlChange { .addColumn(newBigIntegerColumnDefBuilder().setColumnName("started_at").setIsNullable(true).build()) .addColumn(newVarcharColumnBuilder("worker_uuid").setLimit(UUID_SIZE).setIsNullable(true).build()) .addColumn(newIntegerColumnDefBuilder().setColumnName("execution_count").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) + .addColumn(TECHNICAL_UPDATED_AT_COL) .build()); addIndex(context, tableName, "ce_queue_main_component", false, mainComponentUuidCol); addIndex(context, tableName, "ce_queue_component", false, componentUuidCol); @@ -261,16 +291,16 @@ public class CreateInitialSchema extends DdlChange { private void createCeScannerContext(Context context) { context.execute( newTableBuilder("ce_scanner_context") - .addPkColumn(newLenientVarcharBuilder("task_uuid").setLimit(UUID_SIZE).setIsNullable(false).build()) + .addPkColumn(newLenientVarcharBuilder(TASK_UUID_COL_NAME).setLimit(UUID_SIZE).setIsNullable(false).build()) .addColumn(newBlobColumnDefBuilder().setColumnName("context_data").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) + .addColumn(TECHNICAL_UPDATED_AT_COL) .build()); } private void createCeTaskCharacteristics(Context context) { String tableName = "ce_task_characteristics"; - VarcharColumnDef ceTaskUuidColumn = newLenientVarcharBuilder("task_uuid") + VarcharColumnDef ceTaskUuidColumn = newLenientVarcharBuilder(TASK_UUID_COL_NAME) .setLimit(UUID_SIZE) .setIsNullable(false) .build(); @@ -288,21 +318,21 @@ public class CreateInitialSchema extends DdlChange { private void createCeTaskInput(Context context) { context.execute( newTableBuilder("ce_task_input") - .addPkColumn(newLenientVarcharBuilder("task_uuid").setLimit(UUID_SIZE).setIsNullable(false).build()) + .addPkColumn(newLenientVarcharBuilder(TASK_UUID_COL_NAME).setLimit(UUID_SIZE).setIsNullable(false).build()) .addColumn(newBlobColumnDefBuilder().setColumnName("input_data").setIsNullable(true).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) + .addColumn(TECHNICAL_UPDATED_AT_COL) .build()); } private void createCeTaskMessage(Context context) { String tableName = "ce_task_message"; - VarcharColumnDef taskUuidCol = newVarcharColumnBuilder("task_uuid").setIsNullable(false).setLimit(UUID_SIZE).build(); + VarcharColumnDef taskUuidCol = newVarcharColumnBuilder(TASK_UUID_COL_NAME).setIsNullable(false).setLimit(UUID_SIZE).build(); context.execute(newTableBuilder(tableName) .addPkColumn(newVarcharColumnBuilder("uuid").setIsNullable(false).setLimit(UUID_SIZE).build()) .addColumn(taskUuidCol) .addColumn(newVarcharColumnBuilder("message").setIsNullable(false).setLimit(MAX_SIZE).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) .build()); addIndex(context, tableName, tableName + "_task", false, taskUuidCol); } @@ -316,11 +346,11 @@ public class CreateInitialSchema extends DdlChange { context.execute( newTableBuilder(tableName) - .addPkColumn(newLenientVarcharBuilder("organization_uuid").setLimit(UUID_SIZE).setIsNullable(false).build()) + .addPkColumn(newLenientVarcharBuilder(ORGANIZATION_UUID_COL_NAME).setLimit(UUID_SIZE).setIsNullable(false).build()) .addPkColumn(newLenientVarcharBuilder("language").setLimit(20).setIsNullable(false).build()) .addColumn(profileUuidColumn) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) + .addColumn(TECHNICAL_UPDATED_AT_COL) .build()); addIndex(context, tableName, "uniq_default_qprofiles_uuid", true, profileUuidColumn); } @@ -335,7 +365,7 @@ public class CreateInitialSchema extends DdlChange { .addColumn(ruleIdCol) .addColumn(oldRepositoryKeyCol) .addColumn(oldRuleKeyCol) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) .build()); addIndex(context, tableName, "uniq_deprecated_rule_keys", true, oldRepositoryKeyCol, oldRuleKeyCol); addIndex(context, tableName, "rule_id_deprecated_rule_keys", true, ruleIdCol); @@ -344,8 +374,8 @@ public class CreateInitialSchema extends DdlChange { private void createDuplicationsIndex(Context context) { String tableName = "duplications_index"; VarcharColumnDef hashCol = newLenientVarcharBuilder("hash").setLimit(50).setIsNullable(false).build(); - VarcharColumnDef analysisUuidCol = newLenientVarcharBuilder("analysis_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(false).build(); - VarcharColumnDef componentUuidCol = newLenientVarcharBuilder("component_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(false).build(); + VarcharColumnDef analysisUuidCol = newLenientVarcharBuilder(ANALYSIS_UUID_COL_NAME).setLimit(OLD_UUID_VARCHAR_SIZE).setIsNullable(false).build(); + VarcharColumnDef componentUuidCol = newLenientVarcharBuilder(COMPONENT_UUID_COL_NAME).setLimit(OLD_UUID_VARCHAR_SIZE).setIsNullable(false).build(); context.execute( newTableBuilder(tableName) .addPkColumn(newBigIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) @@ -363,7 +393,7 @@ public class CreateInitialSchema extends DdlChange { private void createEsQueue(Context context) { String tableName = "es_queue"; - BigIntegerColumnDef createdAtCol = newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build(); + BigIntegerColumnDef createdAtCol = TECHNICAL_CREATED_AT_COL; context.execute( newTableBuilder(tableName) .addPkColumn(newVarcharColumnBuilder("uuid").setIsNullable(false).setLimit(UUID_SIZE).build()) @@ -379,10 +409,10 @@ public class CreateInitialSchema extends DdlChange { private void createEventComponentChanges(Context context) { String tableName = "event_component_changes"; VarcharColumnDef eventUuidCol = newVarcharColumnBuilder("event_uuid").setIsNullable(false).setLimit(UUID_SIZE).build(); - VarcharColumnDef eventComponentUuidCol = newVarcharColumnBuilder("event_component_uuid").setIsNullable(false).setLimit(UUID_VARCHAR_SIZE).build(); - VarcharColumnDef eventAnalysisUuidCol = newVarcharColumnBuilder("event_analysis_uuid").setIsNullable(false).setLimit(UUID_VARCHAR_SIZE).build(); + VarcharColumnDef eventComponentUuidCol = newVarcharColumnBuilder("event_component_uuid").setIsNullable(false).setLimit(OLD_UUID_VARCHAR_SIZE).build(); + VarcharColumnDef eventAnalysisUuidCol = newVarcharColumnBuilder("event_analysis_uuid").setIsNullable(false).setLimit(OLD_UUID_VARCHAR_SIZE).build(); VarcharColumnDef changeCategoryCol = newVarcharColumnBuilder("change_category").setIsNullable(false).setLimit(12).build(); - VarcharColumnDef componentUuidCol = newVarcharColumnBuilder("component_uuid").setIsNullable(false).setLimit(UUID_VARCHAR_SIZE).build(); + VarcharColumnDef componentUuidCol = newVarcharColumnBuilder(COMPONENT_UUID_COL_NAME).setIsNullable(false).setLimit(OLD_UUID_VARCHAR_SIZE).build(); context.execute(newTableBuilder(tableName) .addPkColumn(newVarcharColumnBuilder("uuid").setIsNullable(false).setLimit(UUID_SIZE).build()) .addColumn(eventUuidCol) @@ -393,7 +423,7 @@ public class CreateInitialSchema extends DdlChange { .addColumn(newVarcharColumnBuilder("component_key").setIsNullable(false).setLimit(400).build()) .addColumn(newVarcharColumnBuilder("component_name").setIsNullable(false).setLimit(2000).build()) .addColumn(newVarcharColumnBuilder("component_branch_key").setIsNullable(true).setLimit(255).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) .build()); addIndex(context, tableName, tableName + "_unique", true, eventUuidCol, changeCategoryCol, componentUuidCol); addIndex(context, tableName, "event_cpnt_changes_cpnt", false, eventComponentUuidCol); @@ -403,19 +433,19 @@ public class CreateInitialSchema extends DdlChange { private void createEvents(Context context) { String tableName = "events"; VarcharColumnDef uuidCol = newVarcharColumnBuilder("uuid").setLimit(UUID_SIZE).setIsNullable(false).build(); - VarcharColumnDef analysisUuidCol = newLenientVarcharBuilder("analysis_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(false).build(); - VarcharColumnDef componentUuid = newLenientVarcharBuilder("component_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(false).build(); + VarcharColumnDef analysisUuidCol = newLenientVarcharBuilder(ANALYSIS_UUID_COL_NAME).setLimit(OLD_UUID_VARCHAR_SIZE).setIsNullable(false).build(); + VarcharColumnDef componentUuid = newLenientVarcharBuilder(COMPONENT_UUID_COL_NAME).setLimit(OLD_UUID_VARCHAR_SIZE).setIsNullable(false).build(); context.execute( newTableBuilder(tableName) - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(uuidCol) .addColumn(analysisUuidCol) .addColumn(newLenientVarcharBuilder("name").setLimit(400).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("category").setLimit(50).build()) - .addColumn(newLenientVarcharBuilder("description").setLimit(MAX_SIZE).build()) + .addColumn(newLenientVarcharBuilder(DESCRIPTION_COL_NAME).setLimit(MAX_SIZE).build()) .addColumn(newLenientVarcharBuilder("event_data").setLimit(MAX_SIZE).build()) .addColumn(newBigIntegerColumnDefBuilder().setColumnName("event_date").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) .addColumn(componentUuid) .build()); addIndex(context, tableName, "events_uuid", true, uuidCol); @@ -425,12 +455,12 @@ public class CreateInitialSchema extends DdlChange { private void createFileSources(Context context) { String tableName = "file_sources"; - VarcharColumnDef projectUuidCol = newLenientVarcharBuilder("project_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(false).build(); - BigIntegerColumnDef updatedAtCol = newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(false).build(); - VarcharColumnDef fileUuidCol = newLenientVarcharBuilder("file_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(false).build(); + VarcharColumnDef projectUuidCol = newLenientVarcharBuilder(PROJECT_UUID_COL_NAME).setLimit(OLD_UUID_VARCHAR_SIZE).setIsNullable(false).build(); + BigIntegerColumnDef updatedAtCol = TECHNICAL_UPDATED_AT_COL; + VarcharColumnDef fileUuidCol = newLenientVarcharBuilder("file_uuid").setLimit(OLD_UUID_VARCHAR_SIZE).setIsNullable(false).build(); context.execute( newTableBuilder(tableName) - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(projectUuidCol) .addColumn(fileUuidCol) .addColumn(newClobColumnDefBuilder().setColumnName("line_hashes").setIsNullable(true).build()) @@ -440,7 +470,7 @@ public class CreateInitialSchema extends DdlChange { .addColumn(newLenientVarcharBuilder("revision").setLimit(100).setIsNullable(true).build()) .addColumn(newIntegerColumnDefBuilder().setColumnName("line_count").setIsNullable(false).build()) .addColumn(newBlobColumnDefBuilder().setColumnName("binary_data").setIsNullable(true).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) .addColumn(updatedAtCol) .build()); addIndex(context, tableName, "file_sources_file_uuid", true, fileUuidCol); @@ -453,10 +483,10 @@ public class CreateInitialSchema extends DdlChange { IntegerColumnDef groupIdCol = newIntegerColumnDefBuilder().setColumnName("group_id").setIsNullable(true).build(); IntegerColumnDef resourceIdCol = newIntegerColumnDefBuilder().setColumnName("resource_id").setIsNullable(true).build(); VarcharColumnDef roleCol = newLenientVarcharBuilder("role").setLimit(64).setIsNullable(false).build(); - VarcharColumnDef organizationUuidCol = newLenientVarcharBuilder("organization_uuid").setIsNullable(false).setLimit(UUID_SIZE).build(); + VarcharColumnDef organizationUuidCol = newLenientVarcharBuilder(ORGANIZATION_UUID_COL_NAME).setIsNullable(false).setLimit(UUID_SIZE).build(); context.execute( newTableBuilder(tableName) - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(organizationUuidCol) .addColumn(groupIdCol) .addColumn(resourceIdCol) @@ -469,12 +499,12 @@ public class CreateInitialSchema extends DdlChange { private void createGroups(Context context) { context.execute( newTableBuilder("groups") - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) - .addColumn(newLenientVarcharBuilder("organization_uuid").setIsNullable(false).setLimit(UUID_SIZE).build()) + .addPkColumn(ID_COL, AUTO_INCREMENT) + .addColumn(newLenientVarcharBuilder(ORGANIZATION_UUID_COL_NAME).setIsNullable(false).setLimit(UUID_SIZE).build()) .addColumn(newLenientVarcharBuilder("name").setLimit(500).setIsNullable(true).build()) - .addColumn(newLenientVarcharBuilder("description").setLimit(200).setIsNullable(true).build()) - .addColumn(newTimestampColumnDefBuilder().setColumnName("created_at").setIsNullable(true).build()) - .addColumn(newTimestampColumnDefBuilder().setColumnName("updated_at").setIsNullable(true).build()) + .addColumn(newLenientVarcharBuilder(DESCRIPTION_COL_NAME).setLimit(200).setIsNullable(true).build()) + .addColumn(DEPRECATED_TECHNICAL_CREATED_AT_COL) + .addColumn(DEPRECATED_TECHNICAL_UPDATED_AT_COL) .build()); } @@ -494,15 +524,15 @@ public class CreateInitialSchema extends DdlChange { private void createInternalComponentProps(Context context) { String tableName = "internal_component_props"; - VarcharColumnDef componentUuidCol = newVarcharColumnBuilder("component_uuid").setIsNullable(false).setLimit(UUID_VARCHAR_SIZE).build(); + VarcharColumnDef componentUuidCol = newVarcharColumnBuilder(COMPONENT_UUID_COL_NAME).setIsNullable(false).setLimit(OLD_UUID_VARCHAR_SIZE).build(); VarcharColumnDef keeCol = newVarcharColumnBuilder("kee").setIsNullable(false).setLimit(512).build(); context.execute(newTableBuilder(tableName) .addPkColumn(newVarcharColumnBuilder("uuid").setIsNullable(false).setLimit(UUID_SIZE).build()) .addColumn(componentUuidCol) .addColumn(keeCol) .addColumn(newVarcharColumnBuilder("value").setIsNullable(true).setLimit(MAX_SIZE).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_UPDATED_AT_COL) + .addColumn(TECHNICAL_CREATED_AT_COL) .build()); addIndex(context, tableName, "unique_component_uuid_kee", true, componentUuidCol, keeCol); } @@ -514,7 +544,7 @@ public class CreateInitialSchema extends DdlChange { .addColumn(newBooleanColumnDefBuilder().setColumnName("is_empty").setIsNullable(false).build()) .addColumn(newVarcharColumnDefBuilder().setColumnName("text_value").setLimit(MAX_SIZE).setIgnoreOracleUnit(true).build()) .addColumn(newClobColumnDefBuilder().setColumnName("clob_value").setIsNullable(true).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) .build()); } @@ -530,8 +560,8 @@ public class CreateInitialSchema extends DdlChange { .addColumn(newLenientVarcharBuilder("user_login").setLimit(255).build()) .addColumn(newLenientVarcharBuilder("change_type").setLimit(20).build()) .addColumn(newClobColumnDefBuilder().setColumnName("change_data").build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").build()) + .addColumn(NULLABLE_TECHNICAL_CREATED_AT_COL) + .addColumn(NULLABLE_TECHNICAL_UPDATED_AT_COL) .addColumn(newBigIntegerColumnDefBuilder().setColumnName("issue_change_creation_date").build()) .build()); addIndex(context, tableName, "issue_changes_issue_key", false, issueKeyCol); @@ -540,13 +570,13 @@ public class CreateInitialSchema extends DdlChange { private void createIssues(Context context) { VarcharColumnDef assigneeCol = newLenientVarcharBuilder("assignee").setLimit(255).build(); - VarcharColumnDef componentUuidCol = newLenientVarcharBuilder("component_uuid").setLimit(50).build(); + VarcharColumnDef componentUuidCol = newLenientVarcharBuilder(COMPONENT_UUID_COL_NAME).setLimit(50).build(); BigIntegerColumnDef issueCreationDateCol = newBigIntegerColumnDefBuilder().setColumnName("issue_creation_date").build(); VarcharColumnDef keeCol = newLenientVarcharBuilder("kee").setLimit(50).setIsNullable(false).build(); - VarcharColumnDef projectUuidCol = newLenientVarcharBuilder("project_uuid").setLimit(50).build(); + VarcharColumnDef projectUuidCol = newLenientVarcharBuilder(PROJECT_UUID_COL_NAME).setLimit(50).build(); VarcharColumnDef resolutionCol = newLenientVarcharBuilder("resolution").setLimit(20).build(); IntegerColumnDef ruleIdCol = newIntegerColumnDefBuilder().setColumnName("rule_id").build(); - BigIntegerColumnDef updatedAtCol = newBigIntegerColumnDefBuilder().setColumnName("updated_at").build(); + BigIntegerColumnDef updatedAtCol = NULLABLE_TECHNICAL_UPDATED_AT_COL; context.execute( newTableBuilder("issues") .addPkColumn(newBigIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) @@ -567,7 +597,7 @@ public class CreateInitialSchema extends DdlChange { .addColumn(newLenientVarcharBuilder("action_plan_key").setLimit(50).build()) .addColumn(newLenientVarcharBuilder("issue_attributes").setLimit(MAX_SIZE).build()) .addColumn(newIntegerColumnDefBuilder().setColumnName("effort").build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").build()) + .addColumn(NULLABLE_TECHNICAL_CREATED_AT_COL) .addColumn(updatedAtCol) .addColumn(issueCreationDateCol) .addColumn(newBigIntegerColumnDefBuilder().setColumnName("issue_update_date").build()) @@ -591,9 +621,9 @@ public class CreateInitialSchema extends DdlChange { private void createLiveMeasures(Context context) { String tableName = "live_measures"; - VarcharColumnDef projectUuidCol = newVarcharColumnBuilder("project_uuid").setIsNullable(false).setLimit(UUID_VARCHAR_SIZE).build(); - VarcharColumnDef componentUuidCol = newVarcharColumnBuilder("component_uuid").setIsNullable(false).setLimit(UUID_VARCHAR_SIZE).build(); - IntegerColumnDef metricIdCol = newIntegerColumnDefBuilder().setColumnName("metric_id").setIsNullable(false).build(); + VarcharColumnDef projectUuidCol = newVarcharColumnBuilder(PROJECT_UUID_COL_NAME).setIsNullable(false).setLimit(OLD_UUID_VARCHAR_SIZE).build(); + VarcharColumnDef componentUuidCol = newVarcharColumnBuilder(COMPONENT_UUID_COL_NAME).setIsNullable(false).setLimit(OLD_UUID_VARCHAR_SIZE).build(); + IntegerColumnDef metricIdCol = newIntegerColumnDefBuilder().setColumnName(METRIC_ID_COL_NAME).setIsNullable(false).build(); context.execute(newTableBuilder(tableName) .addPkColumn(newVarcharColumnBuilder("uuid").setIsNullable(false).setLimit(UUID_SIZE).build()) .addColumn(projectUuidCol) @@ -604,8 +634,8 @@ public class CreateInitialSchema extends DdlChange { .addColumn(newDecimalColumnDefBuilder().setColumnName("variation").setPrecision(38).setScale(20).build()) .addColumn(newBlobColumnDefBuilder().setColumnName("measure_data").setIsNullable(true).build()) .addColumn(newVarcharColumnBuilder("update_marker").setIsNullable(true).setLimit(UUID_SIZE).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) + .addColumn(TECHNICAL_UPDATED_AT_COL) .build()); addIndex(context, tableName, "live_measures_project", false, projectUuidCol); addIndex(context, tableName, "live_measures_component", true, componentUuidCol, metricIdCol); @@ -613,17 +643,17 @@ public class CreateInitialSchema extends DdlChange { private void createManualMeasures(Context context) { String tableName = "manual_measures"; - VarcharColumnDef componentUuidCol = newLenientVarcharBuilder("component_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(false).build(); + VarcharColumnDef componentUuidCol = newLenientVarcharBuilder(COMPONENT_UUID_COL_NAME).setLimit(OLD_UUID_VARCHAR_SIZE).setIsNullable(false).build(); context.execute( newTableBuilder(tableName) .addPkColumn(newBigIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) - .addColumn(newIntegerColumnDefBuilder().setColumnName("metric_id").setIsNullable(false).build()) + .addColumn(newIntegerColumnDefBuilder().setColumnName(METRIC_ID_COL_NAME).setIsNullable(false).build()) .addColumn(newDecimalColumnDefBuilder().setColumnName("value").setPrecision(38).setScale(20).build()) .addColumn(newLenientVarcharBuilder("text_value").setLimit(MAX_SIZE).build()) - .addColumn(newLenientVarcharBuilder("user_uuid").setLimit(255).build()) - .addColumn(newLenientVarcharBuilder("description").setLimit(MAX_SIZE).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").build()) + .addColumn(newLenientVarcharBuilder(USER_UUID_COL_NAME).setLimit(255).build()) + .addColumn(newLenientVarcharBuilder(DESCRIPTION_COL_NAME).setLimit(MAX_SIZE).build()) + .addColumn(NULLABLE_TECHNICAL_CREATED_AT_COL) + .addColumn(NULLABLE_TECHNICAL_UPDATED_AT_COL) .addColumn(componentUuidCol) .build()); addIndex(context, tableName, "manual_measures_component_uuid", false, componentUuidCol); @@ -634,9 +664,9 @@ public class CreateInitialSchema extends DdlChange { VarcharColumnDef nameCol = newLenientVarcharBuilder("name").setLimit(64).setIsNullable(false).build(); context.execute( newTableBuilder(tableName) - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(nameCol) - .addColumn(newLenientVarcharBuilder("description").setLimit(255).build()) + .addColumn(newLenientVarcharBuilder(DESCRIPTION_COL_NAME).setLimit(255).build()) .addColumn(newIntegerColumnDefBuilder().setColumnName("direction").setIsNullable(false).setDefaultValue(0).build()) .addColumn(newLenientVarcharBuilder("domain").setLimit(64).build()) .addColumn(newLenientVarcharBuilder("short_name").setLimit(64).build()) @@ -657,7 +687,7 @@ public class CreateInitialSchema extends DdlChange { private void createNotifications(Context context) { context.execute( newTableBuilder("notifications") - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(newBlobColumnDefBuilder().setColumnName("data").build()) .build()); } @@ -665,7 +695,7 @@ public class CreateInitialSchema extends DdlChange { private void createOrgQProfiles(Context context) { String tableName = "org_qprofiles"; int profileUuidSize = 255; - VarcharColumnDef organizationCol = newLenientVarcharBuilder("organization_uuid").setLimit(UUID_SIZE).setIsNullable(false).build(); + VarcharColumnDef organizationCol = newLenientVarcharBuilder(ORGANIZATION_UUID_COL_NAME).setLimit(UUID_SIZE).setIsNullable(false).build(); VarcharColumnDef rulesProfileUuidCol = newLenientVarcharBuilder("rules_profile_uuid").setLimit(profileUuidSize).setIsNullable(false).build(); VarcharColumnDef parentUuidCol = newLenientVarcharBuilder("parent_uuid").setLimit(profileUuidSize).setIsNullable(true).build(); context.execute( @@ -676,8 +706,8 @@ public class CreateInitialSchema extends DdlChange { .addColumn(parentUuidCol) .addColumn(newBigIntegerColumnDefBuilder().setColumnName("last_used").setIsNullable(true).build()) .addColumn(newBigIntegerColumnDefBuilder().setColumnName("user_updated_at").setIsNullable(true).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) + .addColumn(TECHNICAL_UPDATED_AT_COL) .build()); addIndex(context, tableName, "qprofiles_org_uuid", false, organizationCol); addIndex(context, tableName, "qprofiles_rp_uuid", false, rulesProfileUuidCol); @@ -686,7 +716,7 @@ public class CreateInitialSchema extends DdlChange { private void createOrgQualityGates(Context context) { String tableName = "org_quality_gates"; - VarcharColumnDef organizationUuidCol = newVarcharColumnBuilder("organization_uuid").setIsNullable(false).setLimit(UUID_SIZE).build(); + VarcharColumnDef organizationUuidCol = newVarcharColumnBuilder(ORGANIZATION_UUID_COL_NAME).setIsNullable(false).setLimit(UUID_SIZE).build(); VarcharColumnDef qualityGateUuidCol = newVarcharColumnBuilder("quality_gate_uuid").setIsNullable(false).setLimit(UUID_SIZE).build(); context.execute(newTableBuilder(tableName) .addPkColumn(newVarcharColumnBuilder("uuid").setIsNullable(false).setLimit(UUID_SIZE).build()) @@ -698,7 +728,7 @@ public class CreateInitialSchema extends DdlChange { private void createOrganizationAlmBindings(Context context) { String tableName = "organization_alm_bindings"; - VarcharColumnDef organizationUuidCol = newVarcharColumnBuilder("organization_uuid").setIsNullable(false).setLimit(UUID_SIZE).build(); + VarcharColumnDef organizationUuidCol = newVarcharColumnBuilder(ORGANIZATION_UUID_COL_NAME).setIsNullable(false).setLimit(UUID_SIZE).build(); VarcharColumnDef almAppInstallUuidCol = newVarcharColumnBuilder("alm_app_install_uuid").setIsNullable(false).setLimit(UUID_SIZE).build(); context.execute(newTableBuilder(tableName) .addPkColumn(newVarcharColumnBuilder("uuid").setIsNullable(false).setLimit(UUID_SIZE).build()) @@ -706,9 +736,9 @@ public class CreateInitialSchema extends DdlChange { .addColumn(almAppInstallUuidCol) .addColumn(newVarcharColumnBuilder("alm_id").setIsNullable(false).setLimit(UUID_SIZE).build()) .addColumn(newVarcharColumnBuilder("url").setIsNullable(false).setLimit(2000).build()) - .addColumn(newVarcharColumnBuilder("user_uuid").setIsNullable(false).setLimit(255).build()) + .addColumn(newVarcharColumnBuilder(USER_UUID_COL_NAME).setIsNullable(false).setLimit(255).build()) .addColumn(newBooleanColumnDefBuilder().setColumnName("members_sync_enabled").setIsNullable(true).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) .build()); addIndex(context, tableName, "org_alm_bindings_org", true, organizationUuidCol); addIndex(context, tableName, "org_alm_bindings_install", true, almAppInstallUuidCol); @@ -719,7 +749,7 @@ public class CreateInitialSchema extends DdlChange { IntegerColumnDef userIdCol = newIntegerColumnDefBuilder().setColumnName("user_id").setIsNullable(false).build(); context.execute( newTableBuilder(tableName) - .addPkColumn(newVarcharColumnBuilder("organization_uuid").setLimit(UUID_SIZE).setIsNullable(false).build()) + .addPkColumn(newVarcharColumnBuilder(ORGANIZATION_UUID_COL_NAME).setLimit(UUID_SIZE).setIsNullable(false).build()) .addPkColumn(userIdCol) .build()); addIndex(context, tableName, "ix_org_members_on_user_id", false, userIdCol); @@ -733,7 +763,7 @@ public class CreateInitialSchema extends DdlChange { .addPkColumn(newLenientVarcharBuilder("uuid").setLimit(UUID_SIZE).setIsNullable(false).build()) .addColumn(keeColumn) .addColumn(newLenientVarcharBuilder("name").setLimit(255).setIsNullable(false).build()) - .addColumn(newLenientVarcharBuilder("description").setLimit(256).setIsNullable(true).build()) + .addColumn(newLenientVarcharBuilder(DESCRIPTION_COL_NAME).setLimit(256).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("url").setLimit(256).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("avatar_url").setLimit(256).setIsNullable(true).build()) .addColumn(newBooleanColumnDefBuilder().setColumnName("guarded").setIsNullable(false).build()) @@ -744,8 +774,8 @@ public class CreateInitialSchema extends DdlChange { .addColumn(newVarcharColumnBuilder("default_perm_template_port").setLimit(UUID_SIZE).setIsNullable(true).build()) .addColumn(newBooleanColumnDefBuilder().setColumnName("new_project_private").setIsNullable(false).build()) .addColumn(newVarcharColumnBuilder("subscription").setLimit(UUID_SIZE).setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) + .addColumn(TECHNICAL_UPDATED_AT_COL) .build()); addIndex(context, tableName, "organization_key", true, keeColumn); } @@ -753,24 +783,24 @@ public class CreateInitialSchema extends DdlChange { private void createPermTemplatesGroups(Context context) { context.execute( newTableBuilder("perm_templates_groups") - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(newIntegerColumnDefBuilder().setColumnName("group_id").build()) .addColumn(newIntegerColumnDefBuilder().setColumnName("template_id").setIsNullable(false).build()) .addColumn(newLenientVarcharBuilder("permission_reference").setLimit(64).setIsNullable(false).build()) - .addColumn(newTimestampColumnDefBuilder().setColumnName("created_at").build()) - .addColumn(newTimestampColumnDefBuilder().setColumnName("updated_at").build()) + .addColumn(DEPRECATED_TECHNICAL_CREATED_AT_COL) + .addColumn(DEPRECATED_TECHNICAL_UPDATED_AT_COL) .build()); } private void createPermTemplatesUsers(Context context) { context.execute( newTableBuilder("perm_templates_users") - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(newIntegerColumnDefBuilder().setColumnName("user_id").setIsNullable(false).build()) .addColumn(newIntegerColumnDefBuilder().setColumnName("template_id").setIsNullable(false).build()) .addColumn(newLenientVarcharBuilder("permission_reference").setLimit(64).setIsNullable(false).build()) - .addColumn(newTimestampColumnDefBuilder().setColumnName("created_at").build()) - .addColumn(newTimestampColumnDefBuilder().setColumnName("updated_at").build()) + .addColumn(DEPRECATED_TECHNICAL_CREATED_AT_COL) + .addColumn(DEPRECATED_TECHNICAL_UPDATED_AT_COL) .build()); } @@ -780,12 +810,12 @@ public class CreateInitialSchema extends DdlChange { VarcharColumnDef permissionKeyColumn = newLenientVarcharBuilder("permission_key").setLimit(64).setIsNullable(false).build(); context.execute( newTableBuilder(tableName) - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(templateIdColumn) .addColumn(permissionKeyColumn) .addColumn(newBooleanColumnDefBuilder().setColumnName("with_project_creator").setIsNullable(false).setDefaultValue(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) + .addColumn(TECHNICAL_UPDATED_AT_COL) .build()); addIndex(context, tableName, "uniq_perm_tpl_charac", true, templateIdColumn, permissionKeyColumn); @@ -794,13 +824,13 @@ public class CreateInitialSchema extends DdlChange { private void createPermissionTemplates(Context context) { context.execute( newTableBuilder("permission_templates") - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) - .addColumn(newLenientVarcharBuilder("organization_uuid").setIsNullable(false).setLimit(40).build()) + .addPkColumn(ID_COL, AUTO_INCREMENT) + .addColumn(newLenientVarcharBuilder(ORGANIZATION_UUID_COL_NAME).setIsNullable(false).setLimit(UUID_SIZE).build()) .addColumn(newLenientVarcharBuilder("name").setLimit(100).setIsNullable(false).build()) .addColumn(newLenientVarcharBuilder("kee").setLimit(100).setIsNullable(false).build()) - .addColumn(newLenientVarcharBuilder("description").setLimit(MAX_SIZE).build()) - .addColumn(newTimestampColumnDefBuilder().setColumnName("created_at").build()) - .addColumn(newTimestampColumnDefBuilder().setColumnName("updated_at").build()) + .addColumn(newLenientVarcharBuilder(DESCRIPTION_COL_NAME).setLimit(MAX_SIZE).build()) + .addColumn(DEPRECATED_TECHNICAL_CREATED_AT_COL) + .addColumn(DEPRECATED_TECHNICAL_UPDATED_AT_COL) .addColumn(newLenientVarcharBuilder("key_pattern").setLimit(500).build()) .build()); } @@ -815,8 +845,8 @@ public class CreateInitialSchema extends DdlChange { .addColumn(keyColumn) .addColumn(newVarcharColumnBuilder("base_plugin_key").setLimit(pluginKeyMaxSize).setIsNullable(true).build()) .addColumn(newVarcharColumnBuilder("file_hash").setLimit(200).setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) + .addColumn(TECHNICAL_UPDATED_AT_COL) .build()); addIndex(context, tableName, "plugins_key", true, keyColumn); } @@ -825,7 +855,7 @@ public class CreateInitialSchema extends DdlChange { String tableName = "project_alm_bindings"; VarcharColumnDef almIdCol = newVarcharColumnDefBuilder().setColumnName("alm_id").setIsNullable(false).setLimit(40).build(); VarcharColumnDef repoIdCol = newVarcharColumnDefBuilder().setColumnName("repo_id").setIsNullable(false).setLimit(256).build(); - VarcharColumnDef projectUuidCol = newVarcharColumnDefBuilder().setColumnName("project_uuid").setIsNullable(false).setLimit(40).build(); + VarcharColumnDef projectUuidCol = newVarcharColumnDefBuilder().setColumnName(PROJECT_UUID_COL_NAME).setIsNullable(false).setLimit(40).build(); context.execute(newTableBuilder(tableName) .addPkColumn(newVarcharColumnBuilder("uuid").setLimit(UUID_SIZE).setIsNullable(false).build()) .addColumn(almIdCol) @@ -833,8 +863,8 @@ public class CreateInitialSchema extends DdlChange { .addColumn(projectUuidCol) .addColumn(newVarcharColumnBuilder("github_slug").setIsNullable(true).setLimit(256).build()) .addColumn(newVarcharColumnBuilder("url").setIsNullable(false).setLimit(2000).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) + .addColumn(TECHNICAL_UPDATED_AT_COL) .build()); addIndex(context, tableName, tableName + "_alm_repo", true, almIdCol, repoIdCol); addIndex(context, tableName, tableName + "_project", true, projectUuidCol); @@ -842,36 +872,36 @@ public class CreateInitialSchema extends DdlChange { private void createProjectBranches(Context context) { String tableName = "project_branches"; - VarcharColumnDef projectUuidCol = newVarcharColumnBuilder("project_uuid").setIsNullable(false).setLimit(UUID_VARCHAR_SIZE).build(); + VarcharColumnDef projectUuidCol = newVarcharColumnBuilder(PROJECT_UUID_COL_NAME).setIsNullable(false).setLimit(OLD_UUID_VARCHAR_SIZE).build(); VarcharColumnDef keeCol = newVarcharColumnBuilder("kee").setIsNullable(false).setLimit(255).build(); VarcharColumnDef keyTypeCol = newVarcharColumnBuilder("key_type").setIsNullable(false).setLimit(12).build(); context.execute( newTableBuilder(tableName) - .addPkColumn(newVarcharColumnBuilder("uuid").setIsNullable(false).setLimit(UUID_VARCHAR_SIZE).build()) + .addPkColumn(newVarcharColumnBuilder("uuid").setIsNullable(false).setLimit(OLD_UUID_VARCHAR_SIZE).build()) .addColumn(projectUuidCol) .addColumn(keeCol) .addColumn(newVarcharColumnBuilder("branch_type").setIsNullable(true).setLimit(12).build()) - .addColumn(newVarcharColumnBuilder("merge_branch_uuid").setIsNullable(true).setLimit(UUID_VARCHAR_SIZE).build()) + .addColumn(newVarcharColumnBuilder("merge_branch_uuid").setIsNullable(true).setLimit(OLD_UUID_VARCHAR_SIZE).build()) .addColumn(keyTypeCol) .addColumn(newBlobColumnDefBuilder().setColumnName("pull_request_binary").setIsNullable(true).build()) .addColumn(newVarcharColumnBuilder("manual_baseline_analysis_uuid").setIsNullable(true).setLimit(UUID_SIZE).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) + .addColumn(TECHNICAL_UPDATED_AT_COL) .build()); addIndex(context, tableName, "project_branches_kee_key_type", true, projectUuidCol, keeCol, keyTypeCol); } private void createProjectLinks(Context context) { String tableName = "project_links"; - VarcharColumnDef projectUuidCol = newVarcharColumnBuilder("project_uuid").setLimit(UUID_SIZE).setIsNullable(false).build(); + VarcharColumnDef projectUuidCol = newVarcharColumnBuilder(PROJECT_UUID_COL_NAME).setLimit(UUID_SIZE).setIsNullable(false).build(); context.execute(newTableBuilder(tableName) .addPkColumn(newVarcharColumnBuilder("uuid").setLimit(UUID_SIZE).setIsNullable(false).build()) .addColumn(projectUuidCol) .addColumn(newVarcharColumnBuilder("link_type").setLimit(20).setIsNullable(false).build()) .addColumn(newVarcharColumnBuilder("name").setLimit(128).setIsNullable(true).build()) .addColumn(newVarcharColumnBuilder("href").setLimit(2048).setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) + .addColumn(TECHNICAL_UPDATED_AT_COL) .build()); addIndex(context, tableName, "project_links_project", false, projectUuidCol); } @@ -880,24 +910,24 @@ public class CreateInitialSchema extends DdlChange { String tableName = "project_mappings"; VarcharColumnDef keyTypeCol = newVarcharColumnBuilder("key_type").setIsNullable(false).setLimit(200).build(); VarcharColumnDef keyCol = newVarcharColumnBuilder("kee").setIsNullable(false).setLimit(MAX_SIZE).build(); - VarcharColumnDef projectUuidCol = newVarcharColumnBuilder("project_uuid").setIsNullable(false).setLimit(UUID_SIZE).build(); + VarcharColumnDef projectUuidCol = newVarcharColumnBuilder(PROJECT_UUID_COL_NAME).setIsNullable(false).setLimit(UUID_SIZE).build(); context.execute(newTableBuilder(tableName) .addPkColumn(newVarcharColumnBuilder("uuid").setIsNullable(false).setLimit(UUID_SIZE).build()) .addColumn(keyTypeCol) .addColumn(keyCol) .addColumn(projectUuidCol) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) .build()); addIndex(context, tableName, "key_type_kee", true, keyTypeCol, keyCol); - addIndex(context, tableName, "project_uuid", false, projectUuidCol); + addIndex(context, tableName, PROJECT_UUID_COL_NAME, false, projectUuidCol); } private void createProjectMeasures(Context context) { String tableName = "project_measures"; IntegerColumnDef personIdCol = newIntegerColumnDefBuilder().setColumnName("person_id").build(); - IntegerColumnDef metricIdCol = newIntegerColumnDefBuilder().setColumnName("metric_id").setIsNullable(false).build(); - VarcharColumnDef analysisUuidCol = newLenientVarcharBuilder("analysis_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(false).build(); - VarcharColumnDef componentUuidCol = newLenientVarcharBuilder("component_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(false).build(); + IntegerColumnDef metricIdCol = newIntegerColumnDefBuilder().setColumnName(METRIC_ID_COL_NAME).setIsNullable(false).build(); + VarcharColumnDef analysisUuidCol = newLenientVarcharBuilder(ANALYSIS_UUID_COL_NAME).setLimit(OLD_UUID_VARCHAR_SIZE).setIsNullable(false).build(); + VarcharColumnDef componentUuidCol = newLenientVarcharBuilder(COMPONENT_UUID_COL_NAME).setLimit(OLD_UUID_VARCHAR_SIZE).setIsNullable(false).build(); context.execute( newTableBuilder(tableName) .addPkColumn(newBigIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) @@ -908,7 +938,7 @@ public class CreateInitialSchema extends DdlChange { .addColumn(newLenientVarcharBuilder("text_value").setLimit(MAX_SIZE).build()) .addColumn(newLenientVarcharBuilder("alert_status").setLimit(5).build()) .addColumn(newLenientVarcharBuilder("alert_text").setLimit(MAX_SIZE).build()) - .addColumn(newLenientVarcharBuilder("description").setLimit(MAX_SIZE).build()) + .addColumn(newLenientVarcharBuilder(DESCRIPTION_COL_NAME).setLimit(MAX_SIZE).build()) .addColumn(personIdCol) .addColumn(newDecimalColumnDefBuilder().setColumnName("variation_value_1").setPrecision(38).setScale(20).build()) .addColumn(newDecimalColumnDefBuilder().setColumnName("variation_value_2").setPrecision(38).setScale(20).build()) @@ -923,11 +953,11 @@ public class CreateInitialSchema extends DdlChange { private void createProjectQprofiles(Context context) { String tableName = "project_qprofiles"; - VarcharColumnDef projectUuid = newLenientVarcharBuilder("project_uuid").setLimit(50).setIsNullable(false).build(); + VarcharColumnDef projectUuid = newLenientVarcharBuilder(PROJECT_UUID_COL_NAME).setLimit(50).setIsNullable(false).build(); VarcharColumnDef profileKey = newLenientVarcharBuilder("profile_key").setLimit(50).setIsNullable(false).build(); context.execute( newTableBuilder(tableName) - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(projectUuid) .addColumn(profileKey) .build()); @@ -937,30 +967,30 @@ public class CreateInitialSchema extends DdlChange { private void createProjects(Context context) { String tableName = "projects"; VarcharColumnDef uuidCol = newLenientVarcharBuilder("uuid").setLimit(50).setIsNullable(false).build(); - VarcharColumnDef organizationUuidCol = newVarcharColumnBuilder("organization_uuid").setLimit(UUID_SIZE).setIsNullable(false).build(); + VarcharColumnDef organizationUuidCol = newVarcharColumnBuilder(ORGANIZATION_UUID_COL_NAME).setLimit(UUID_SIZE).setIsNullable(false).build(); VarcharColumnDef keeCol = newLenientVarcharBuilder("kee").setLimit(400).setIsNullable(true).build(); VarcharColumnDef qualifierCol = newLenientVarcharBuilder("qualifier").setLimit(10).setIsNullable(true).build(); - VarcharColumnDef rootUuidCol = newVarcharColumnBuilder("root_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(false).build(); - VarcharColumnDef projectUuidCol = newLenientVarcharBuilder("project_uuid").setLimit(50).setIsNullable(false).build(); + VarcharColumnDef rootUuidCol = newVarcharColumnBuilder("root_uuid").setLimit(OLD_UUID_VARCHAR_SIZE).setIsNullable(false).build(); + VarcharColumnDef projectUuidCol = newLenientVarcharBuilder(PROJECT_UUID_COL_NAME).setLimit(50).setIsNullable(false).build(); VarcharColumnDef moduleUuidCol = newLenientVarcharBuilder("module_uuid").setLimit(50).setIsNullable(true).build(); context.execute( newTableBuilder(tableName) - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(uuidCol) .addColumn(organizationUuidCol) .addColumn(keeCol) .addColumn(newLenientVarcharBuilder("deprecated_kee").setLimit(400).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("name").setLimit(2_000).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("long_name").setLimit(2_000).setIsNullable(true).build()) - .addColumn(newLenientVarcharBuilder("description").setLimit(2_000).setIsNullable(true).build()) + .addColumn(newLenientVarcharBuilder(DESCRIPTION_COL_NAME).setLimit(2_000).setIsNullable(true).build()) .addColumn(newBooleanColumnDefBuilder().setColumnName("enabled").setDefaultValue(true).setIsNullable(false).build()) .addColumn(newLenientVarcharBuilder("scope").setLimit(3).setIsNullable(true).build()) .addColumn(qualifierCol) .addColumn(newBooleanColumnDefBuilder().setColumnName("private").setIsNullable(false).build()) .addColumn(rootUuidCol) .addColumn(newLenientVarcharBuilder("language").setLimit(20).setIsNullable(true).build()) - .addColumn(newVarcharColumnBuilder("copy_component_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(true).build()) - .addColumn(newVarcharColumnBuilder("developer_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(true).build()) + .addColumn(newVarcharColumnBuilder("copy_component_uuid").setLimit(OLD_UUID_VARCHAR_SIZE).setIsNullable(true).build()) + .addColumn(newVarcharColumnBuilder("developer_uuid").setLimit(OLD_UUID_VARCHAR_SIZE).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("path").setLimit(2_000).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("uuid_path").setLimit(1_500).setIsNullable(false).build()) .addColumn(projectUuidCol) @@ -968,7 +998,7 @@ public class CreateInitialSchema extends DdlChange { .addColumn(newLenientVarcharBuilder("module_uuid_path").setLimit(1_500).setIsNullable(true).build()) .addColumn(newBigIntegerColumnDefBuilder().setColumnName("authorization_updated_at").setIsNullable(true).build()) .addColumn(newVarcharColumnBuilder("tags").setLimit(500).setIsNullable(true).build()) - .addColumn(newVarcharColumnBuilder("main_branch_project_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(true).build()) + .addColumn(newVarcharColumnBuilder("main_branch_project_uuid").setLimit(OLD_UUID_VARCHAR_SIZE).setIsNullable(true).build()) .addColumn(newBooleanColumnDefBuilder().setColumnName("b_changed").setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("b_name").setLimit(500).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("b_long_name").setLimit(500).setIsNullable(true).build()) @@ -976,12 +1006,12 @@ public class CreateInitialSchema extends DdlChange { .addColumn(newBooleanColumnDefBuilder().setColumnName("b_enabled").setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("b_qualifier").setLimit(10).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("b_language").setLimit(20).setIsNullable(true).build()) - .addColumn(newLenientVarcharBuilder("b_copy_component_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(true).build()) + .addColumn(newLenientVarcharBuilder("b_copy_component_uuid").setLimit(OLD_UUID_VARCHAR_SIZE).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("b_path").setLimit(2_000).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("b_uuid_path").setLimit(1_500).setIsNullable(true).build()) - .addColumn(newLenientVarcharBuilder("b_module_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(true).build()) + .addColumn(newLenientVarcharBuilder("b_module_uuid").setLimit(OLD_UUID_VARCHAR_SIZE).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("b_module_uuid_path").setLimit(1_500).setIsNullable(true).build()) - .addColumn(newTimestampColumnDefBuilder().setColumnName("created_at").setIsNullable(true).build()) + .addColumn(DEPRECATED_TECHNICAL_CREATED_AT_COL) .build()); addIndex(context, tableName, "projects_organization", false, organizationUuidCol); addIndex(context, tableName, "projects_kee", true, keeCol); @@ -997,14 +1027,14 @@ public class CreateInitialSchema extends DdlChange { String tableName = "properties"; VarcharColumnDef propKey = newLenientVarcharBuilder("prop_key").setLimit(512).setIsNullable(false).build(); context.execute(newTableBuilder(tableName) - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(propKey) .addColumn(newBigIntegerColumnDefBuilder().setColumnName("resource_id").setIsNullable(true).build()) .addColumn(newBigIntegerColumnDefBuilder().setColumnName("user_id").setIsNullable(true).build()) .addColumn(newBooleanColumnDefBuilder().setColumnName("is_empty").setIsNullable(false).build()) .addColumn(newLenientVarcharBuilder("text_value").setLimit(MAX_SIZE).build()) .addColumn(newClobColumnDefBuilder().setColumnName("clob_value").setIsNullable(true).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) // table with be renamed to properties in following migration, use final constraint name right away .withPkConstraintName("pk_properties") .build()); @@ -1018,9 +1048,9 @@ public class CreateInitialSchema extends DdlChange { .addPkColumn(newLenientVarcharBuilder("kee").setLimit(UUID_SIZE).setIsNullable(false).build()) .addColumn(rulesProfileUuidCol) .addColumn(newLenientVarcharBuilder("change_type").setLimit(20).setIsNullable(false).build()) - .addColumn(newLenientVarcharBuilder("user_uuid").setLimit(255).setIsNullable(true).build()) + .addColumn(newLenientVarcharBuilder(USER_UUID_COL_NAME).setLimit(255).setIsNullable(true).build()) .addColumn(newClobColumnDefBuilder().setColumnName("change_data").setIsNullable(true).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) .build()); addIndex(context, tableName, "qp_changes_rules_profile_uuid", false, rulesProfileUuidCol); } @@ -1033,7 +1063,7 @@ public class CreateInitialSchema extends DdlChange { .addPkColumn(newVarcharColumnBuilder("uuid").setIsNullable(false).setLimit(UUID_SIZE).build()) .addColumn(groupCol) .addColumn(qProfileUuidCol) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) .build()); addIndex(context, tableName, tableName + "_qprofile", false, qProfileUuidCol); addIndex(context, tableName, tableName + "_unique", true, groupCol, qProfileUuidCol); @@ -1047,7 +1077,7 @@ public class CreateInitialSchema extends DdlChange { .addPkColumn(newVarcharColumnBuilder("uuid").setIsNullable(false).setLimit(UUID_SIZE).build()) .addColumn(userIdCol) .addColumn(qProfileUuidCol) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) .build()); addIndex(context, tableName, tableName + "_qprofile", false, qProfileUuidCol); addIndex(context, tableName, tableName + "_unique", true, userIdCol, qProfileUuidCol); @@ -1056,15 +1086,15 @@ public class CreateInitialSchema extends DdlChange { private void createQualityGateConditions(Context context) { context.execute( newTableBuilder("quality_gate_conditions") - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(newIntegerColumnDefBuilder().setColumnName("qgate_id").setIsNullable(true).build()) - .addColumn(newIntegerColumnDefBuilder().setColumnName("metric_id").setIsNullable(true).build()) + .addColumn(newIntegerColumnDefBuilder().setColumnName(METRIC_ID_COL_NAME).setIsNullable(true).build()) .addColumn(newIntegerColumnDefBuilder().setColumnName("period").setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("operator").setLimit(3).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("value_error").setLimit(64).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("value_warning").setLimit(64).setIsNullable(true).build()) - .addColumn(newTimestampColumnDefBuilder().setColumnName("created_at").setIsNullable(true).build()) - .addColumn(newTimestampColumnDefBuilder().setColumnName("updated_at").setIsNullable(true).build()) + .addColumn(DEPRECATED_TECHNICAL_CREATED_AT_COL) + .addColumn(DEPRECATED_TECHNICAL_UPDATED_AT_COL) .build()); } @@ -1073,12 +1103,12 @@ public class CreateInitialSchema extends DdlChange { VarcharColumnDef uuidCol = newVarcharColumnBuilder("uuid").setIsNullable(false).setLimit(UUID_SIZE).build(); context.execute( newTableBuilder(tableName) - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(uuidCol) .addColumn(newLenientVarcharBuilder("name").setLimit(100).setIsNullable(false).build()) .addColumn(newBooleanColumnDefBuilder().setColumnName("is_built_in").setIsNullable(false).build()) - .addColumn(newTimestampColumnDefBuilder().setColumnName("created_at").setIsNullable(true).build()) - .addColumn(newTimestampColumnDefBuilder().setColumnName("updated_at").setIsNullable(true).build()) + .addColumn(DEPRECATED_TECHNICAL_CREATED_AT_COL) + .addColumn(DEPRECATED_TECHNICAL_UPDATED_AT_COL) .build()); addIndex(context, tableName, "uniq_quality_gates_uuid", true, uuidCol); } @@ -1089,7 +1119,7 @@ public class CreateInitialSchema extends DdlChange { .addPkColumn(newLenientVarcharBuilder("kee").setLimit(200).setIsNullable(false).build()) .addColumn(newLenientVarcharBuilder("language").setLimit(20).setIsNullable(false).build()) .addColumn(newLenientVarcharBuilder("name").setLimit(4_000).setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) .build()); } @@ -1098,14 +1128,14 @@ public class CreateInitialSchema extends DdlChange { VarcharColumnDef pluginNameCol = newLenientVarcharBuilder("plugin_name").setLimit(255).setIsNullable(false).build(); context.execute( newTableBuilder("rules") - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(newLenientVarcharBuilder("name").setLimit(200).setIsNullable(true).build()) .addColumn(pluginRuleKeyCol) .addColumn(newVarcharColumnBuilder("plugin_key").setLimit(200).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("plugin_config_key").setLimit(200).setIsNullable(true).build()) .addColumn(pluginNameCol) .addColumn(newVarcharColumnBuilder("scope").setLimit(20).setIsNullable(false).build()) - .addColumn(newClobColumnDefBuilder().setColumnName("description").setIsNullable(true).build()) + .addColumn(newClobColumnDefBuilder().setColumnName(DESCRIPTION_COL_NAME).setIsNullable(true).build()) .addColumn(newIntegerColumnDefBuilder().setColumnName("priority").setIsNullable(true).build()) .addColumn(newIntegerColumnDefBuilder().setColumnName("template_id").setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("status").setLimit(40).setIsNullable(true).build()) @@ -1121,8 +1151,8 @@ public class CreateInitialSchema extends DdlChange { .addColumn(newVarcharColumnBuilder("security_standards").setIsNullable(true).setLimit(4_000).build()) .addColumn(newBooleanColumnDefBuilder().setColumnName("is_ad_hoc").setIsNullable(false).build()) .addColumn(newBooleanColumnDefBuilder().setColumnName("is_external").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(true).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(true).build()) + .addColumn(NULLABLE_TECHNICAL_CREATED_AT_COL) + .addColumn(NULLABLE_TECHNICAL_UPDATED_AT_COL) .build()); addIndex(context, "rules", "rules_repo_key", true, pluginRuleKeyCol, pluginNameCol); } @@ -1131,7 +1161,7 @@ public class CreateInitialSchema extends DdlChange { String tableName = "rules_metadata"; context.execute(newTableBuilder(tableName) .addPkColumn(newIntegerColumnDefBuilder().setColumnName("rule_id").setIsNullable(false).build()) - .addPkColumn(newVarcharColumnBuilder("organization_uuid").setLimit(UUID_SIZE).setIsNullable(false).build()) + .addPkColumn(newVarcharColumnBuilder(ORGANIZATION_UUID_COL_NAME).setLimit(UUID_SIZE).setIsNullable(false).build()) .addColumn(newClobColumnDefBuilder().setColumnName("note_data").setIsNullable(true).build()) .addColumn(newVarcharColumnBuilder("note_user_uuid").setLimit(255).setIsNullable(true).build()) .addColumn(newBigIntegerColumnDefBuilder().setColumnName("note_created_at").setIsNullable(true).build()) @@ -1144,8 +1174,8 @@ public class CreateInitialSchema extends DdlChange { .addColumn(newClobColumnDefBuilder().setColumnName("ad_hoc_description").setIsNullable(true).build()) .addColumn(newVarcharColumnBuilder("ad_hoc_severity").setLimit(10).setIsNullable(true).build()) .addColumn(newTinyIntColumnDefBuilder().setColumnName("ad_hoc_type").setIsNullable(true).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) + .addColumn(TECHNICAL_UPDATED_AT_COL) .withPkConstraintName("pk_" + tableName) .build()); } @@ -1156,10 +1186,10 @@ public class CreateInitialSchema extends DdlChange { VarcharColumnDef nameCol = newLenientVarcharBuilder("name").setLimit(128).setIsNullable(false).build(); context.execute( newTableBuilder(tableName) - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(ruleIdCol) .addColumn(nameCol) - .addColumn(newLenientVarcharBuilder("description").setLimit(MAX_SIZE).setIsNullable(true).build()) + .addColumn(newLenientVarcharBuilder(DESCRIPTION_COL_NAME).setLimit(MAX_SIZE).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("param_type").setLimit(512).setIsNullable(false).build()) .addColumn(newLenientVarcharBuilder("default_value").setLimit(MAX_SIZE).setIsNullable(true).build()) .build()); @@ -1171,25 +1201,25 @@ public class CreateInitialSchema extends DdlChange { VarcharColumnDef keeCol = newLenientVarcharBuilder("kee").setLimit(255).setIsNullable(false).build(); context.execute( newTableBuilder("rules_profiles") - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(newLenientVarcharBuilder("name").setLimit(100).setIsNullable(false).build()) .addColumn(newLenientVarcharBuilder("language").setLimit(20).setIsNullable(true).build()) .addColumn(keeCol) .addColumn(newBooleanColumnDefBuilder().setColumnName("is_built_in").setIsNullable(false).build()) .addColumn(newLenientVarcharBuilder("rules_updated_at").setLimit(100).setIsNullable(true).build()) - .addColumn(newTimestampColumnDefBuilder().setColumnName("created_at").setIsNullable(true).build()) - .addColumn(newTimestampColumnDefBuilder().setColumnName("updated_at").setIsNullable(true).build()) + .addColumn(DEPRECATED_TECHNICAL_CREATED_AT_COL) + .addColumn(DEPRECATED_TECHNICAL_UPDATED_AT_COL) .build()); addIndex(context, "rules_profiles", "uniq_qprof_key", true, keeCol); } private void createSnapshots(Context context) { String tableName = "snapshots"; - VarcharColumnDef uuidCol = newLenientVarcharBuilder("uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(false).build(); - VarcharColumnDef componentUuidCol = newLenientVarcharBuilder("component_uuid").setLimit(UUID_VARCHAR_SIZE).setIsNullable(false).build(); + VarcharColumnDef uuidCol = newLenientVarcharBuilder("uuid").setLimit(OLD_UUID_VARCHAR_SIZE).setIsNullable(false).build(); + VarcharColumnDef componentUuidCol = newLenientVarcharBuilder(COMPONENT_UUID_COL_NAME).setLimit(OLD_UUID_VARCHAR_SIZE).setIsNullable(false).build(); context.execute( newTableBuilder(tableName) - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(uuidCol) .addColumn(componentUuidCol) .addColumn(newLenientVarcharBuilder("status").setLimit(4).setIsNullable(false).setDefaultValue("U").build()) @@ -1214,7 +1244,7 @@ public class CreateInitialSchema extends DdlChange { .addColumn(newBigIntegerColumnDefBuilder().setColumnName("period3_date").setIsNullable(true).build()) .addColumn(newBigIntegerColumnDefBuilder().setColumnName("period4_date").setIsNullable(true).build()) .addColumn(newBigIntegerColumnDefBuilder().setColumnName("period5_date").setIsNullable(true).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(true).build()) + .addColumn(NULLABLE_TECHNICAL_CREATED_AT_COL) .build()); addIndex(context, tableName, "analyses_uuid", true, uuidCol); addIndex(context, tableName, "snapshot_component", false, componentUuidCol); @@ -1222,15 +1252,15 @@ public class CreateInitialSchema extends DdlChange { private void createUserProperties(Context context) { String tableName = "user_properties"; - VarcharColumnDef userUuidCol = newVarcharColumnBuilder("user_uuid").setLimit(255).setIsNullable(false).build(); + VarcharColumnDef userUuidCol = newVarcharColumnBuilder(USER_UUID_COL_NAME).setLimit(255).setIsNullable(false).build(); VarcharColumnDef keyCol = newVarcharColumnBuilder("kee").setLimit(100).setIsNullable(false).build(); context.execute(newTableBuilder(tableName) .addPkColumn(newVarcharColumnBuilder("uuid").setLimit(UUID_SIZE).setIsNullable(false).build()) .addColumn(userUuidCol) .addColumn(keyCol) .addColumn(newVarcharColumnBuilder("text_value").setLimit(4_000).setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) + .addColumn(TECHNICAL_UPDATED_AT_COL) .build()); addIndex(context, tableName, "user_properties_user_uuid_kee", true, userUuidCol, keyCol); } @@ -1241,8 +1271,8 @@ public class CreateInitialSchema extends DdlChange { IntegerColumnDef resourceIdCol = newIntegerColumnDefBuilder().setColumnName("resource_id").setIsNullable(true).build(); context.execute( newTableBuilder(tableName) - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) - .addColumn(newLenientVarcharBuilder("organization_uuid").setLimit(UUID_SIZE).setIsNullable(false).build()) + .addPkColumn(ID_COL, AUTO_INCREMENT) + .addColumn(newLenientVarcharBuilder(ORGANIZATION_UUID_COL_NAME).setLimit(UUID_SIZE).setIsNullable(false).build()) .addColumn(userIdCol) .addColumn(resourceIdCol) .addColumn(newLenientVarcharBuilder("role").setLimit(64).setIsNullable(false).build()) @@ -1253,17 +1283,17 @@ public class CreateInitialSchema extends DdlChange { private void createUserTokens(Context context) { String tableName = "user_tokens"; - VarcharColumnDef userUuidCol = newVarcharColumnBuilder("user_uuid").setLimit(255).setIsNullable(false).build(); + VarcharColumnDef userUuidCol = newVarcharColumnBuilder(USER_UUID_COL_NAME).setLimit(255).setIsNullable(false).build(); VarcharColumnDef nameCol = newVarcharColumnBuilder("name").setLimit(100).setIsNullable(false).build(); VarcharColumnDef tokenHashCol = newVarcharColumnBuilder("token_hash").setLimit(255).setIsNullable(false).build(); context.execute( newTableBuilder(tableName) - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(userUuidCol) .addColumn(nameCol) .addColumn(tokenHashCol) .addColumn(newBigIntegerColumnDefBuilder().setColumnName("last_connection_date").setIsNullable(true).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) .build()); addIndex(context, tableName, "user_tokens_user_uuid_name", true, userUuidCol, nameCol); addIndex(context, tableName, "user_tokens_token_hash", true, tokenHashCol); @@ -1273,16 +1303,16 @@ public class CreateInitialSchema extends DdlChange { String tableName = "users"; VarcharColumnDef uuidCol = newVarcharColumnBuilder("uuid").setLimit(255).setIsNullable(false).build(); VarcharColumnDef loginCol = newLenientVarcharBuilder("login").setLimit(255).setIsNullable(false).build(); - BigIntegerColumnDef updatedAtCol = newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(true).build(); + BigIntegerColumnDef updatedAtCol = NULLABLE_TECHNICAL_UPDATED_AT_COL; VarcharColumnDef externalLoginCol = newLenientVarcharBuilder("external_login").setLimit(255).setIsNullable(false).build(); VarcharColumnDef externalIdentityProviderCol = newLenientVarcharBuilder("external_identity_provider").setLimit(100).setIsNullable(false).build(); VarcharColumnDef externalIdCol = newVarcharColumnBuilder("external_id").setLimit(255).setIsNullable(false).build(); context.execute( newTableBuilder(tableName) - .addPkColumn(newIntegerColumnDefBuilder().setColumnName("id").setIsNullable(false).build(), AUTO_INCREMENT) + .addPkColumn(ID_COL, AUTO_INCREMENT) .addColumn(uuidCol) .addColumn(loginCol) - .addColumn(newVarcharColumnBuilder("organization_uuid").setLimit(UUID_SIZE).setIsNullable(true).build()) + .addColumn(newVarcharColumnBuilder(ORGANIZATION_UUID_COL_NAME).setLimit(UUID_SIZE).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("name").setLimit(200).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("email").setLimit(100).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("crypted_password").setLimit(100).setIsNullable(true).build()) @@ -1299,7 +1329,7 @@ public class CreateInitialSchema extends DdlChange { .addColumn(newVarcharColumnBuilder("homepage_type").setLimit(40).setIsNullable(true).build()) .addColumn(newVarcharColumnBuilder("homepage_parameter").setLimit(40).setIsNullable(true).build()) .addColumn(newBigIntegerColumnDefBuilder().setColumnName("last_connection_date").setIsNullable(true).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(true).build()) + .addColumn(NULLABLE_TECHNICAL_CREATED_AT_COL) .addColumn(updatedAtCol) .build()); addIndex(context, tableName, "users_login", true, loginCol); @@ -1311,14 +1341,14 @@ public class CreateInitialSchema extends DdlChange { private void createWebhookDeliveries(Context context) { String tableName = "webhook_deliveries"; - VarcharColumnDef componentUuidColumn = newLenientVarcharBuilder("component_uuid").setLimit(UUID_SIZE).setIsNullable(false).build(); + VarcharColumnDef componentUuidColumn = newLenientVarcharBuilder(COMPONENT_UUID_COL_NAME).setLimit(UUID_SIZE).setIsNullable(false).build(); VarcharColumnDef ceTaskUuidColumn = newLenientVarcharBuilder("ce_task_uuid").setLimit(UUID_SIZE).setIsNullable(true).build(); context.execute(newTableBuilder(tableName) .addPkColumn(newLenientVarcharBuilder("uuid").setLimit(UUID_SIZE).setIsNullable(false).build()) .addColumn(newVarcharColumnBuilder("webhook_uuid").setLimit(UUID_SIZE).setIsNullable(false).build()) .addColumn(componentUuidColumn) .addColumn(ceTaskUuidColumn) - .addColumn(newVarcharColumnBuilder("analysis_uuid").setLimit(UUID_SIZE).setIsNullable(true).build()) + .addColumn(newVarcharColumnBuilder(ANALYSIS_UUID_COL_NAME).setLimit(UUID_SIZE).setIsNullable(true).build()) .addColumn(newLenientVarcharBuilder("name").setLimit(100).setIsNullable(false).build()) .addColumn(newLenientVarcharBuilder("url").setLimit(2_000).setIsNullable(false).build()) .addColumn(newBooleanColumnDefBuilder().setColumnName("success").setIsNullable(false).build()) @@ -1326,16 +1356,16 @@ public class CreateInitialSchema extends DdlChange { .addColumn(newBigIntegerColumnDefBuilder().setColumnName("duration_ms").setIsNullable(false).build()) .addColumn(newClobColumnDefBuilder().setColumnName("payload").setIsNullable(false).build()) .addColumn(newClobColumnDefBuilder().setColumnName("error_stacktrace").setIsNullable(true).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) .build()); - addIndex(context, tableName, "component_uuid", false, componentUuidColumn); + addIndex(context, tableName, COMPONENT_UUID_COL_NAME, false, componentUuidColumn); addIndex(context, tableName, "ce_task_uuid", false, ceTaskUuidColumn); } private void createWebhooks(Context context) { String tableName = "webhooks"; - VarcharColumnDef organizationUuidCol = newVarcharColumnBuilder("organization_uuid").setLimit(UUID_SIZE).setIsNullable(true).build(); - VarcharColumnDef projectUuidCol = newVarcharColumnBuilder("project_uuid").setLimit(UUID_SIZE).setIsNullable(true).build(); + VarcharColumnDef organizationUuidCol = newVarcharColumnBuilder(ORGANIZATION_UUID_COL_NAME).setLimit(UUID_SIZE).setIsNullable(true).build(); + VarcharColumnDef projectUuidCol = newVarcharColumnBuilder(PROJECT_UUID_COL_NAME).setLimit(UUID_SIZE).setIsNullable(true).build(); context.execute(newTableBuilder(tableName) .addPkColumn(newVarcharColumnBuilder("uuid").setLimit(UUID_SIZE).setIsNullable(false).build()) .addColumn(organizationUuidCol) @@ -1343,21 +1373,19 @@ public class CreateInitialSchema extends DdlChange { .addColumn(newVarcharColumnBuilder("name").setLimit(100).setIsNullable(false).build()) .addColumn(newVarcharColumnBuilder("url").setLimit(2_000).setIsNullable(false).build()) .addColumn(newVarcharColumnBuilder("secret").setLimit(200).setIsNullable(true).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at").setIsNullable(false).build()) - .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at").setIsNullable(true).build()) + .addColumn(TECHNICAL_CREATED_AT_COL) + .addColumn(NULLABLE_TECHNICAL_UPDATED_AT_COL) .build()); addIndex(context, tableName, "organization_webhook", false, organizationUuidCol); addIndex(context, tableName, "project_webhook", false, projectUuidCol); } - private static void addIndex(Context context, String table, String index, boolean unique, ColumnDef... columns) { + private static void addIndex(Context context, String table, String index, boolean unique, ColumnDef firstColumn, ColumnDef... otherColumns) { CreateIndexBuilder builder = new CreateIndexBuilder() .setTable(table) .setName(index) .setUnique(unique); - for (ColumnDef column : columns) { - builder.addColumn(column); - } + concat(of(firstColumn), stream(otherColumns)).forEach(builder::addColumn); context.execute(builder.build()); } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v00/PopulateInitialSchema.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v00/PopulateInitialSchema.java index 66c3ff3af84..0af992cc500 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v00/PopulateInitialSchema.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v00/PopulateInitialSchema.java @@ -30,6 +30,12 @@ import org.sonar.db.Database; import org.sonar.server.platform.db.migration.step.DataChange; import org.sonar.server.platform.db.migration.step.Upsert; +import static java.util.Arrays.stream; +import static java.util.Objects.requireNonNull; +import static java.util.stream.Collectors.joining; +import static java.util.stream.Stream.concat; +import static java.util.stream.Stream.of; + public class PopulateInitialSchema extends DataChange { private static final String ADMINS_GROUP = "sonar-administrators"; @@ -82,9 +88,10 @@ public class PopulateInitialSchema extends DataChange { .execute() .commit(); - return context.prepareSelect("select id from users where login=?") + Integer res = context.prepareSelect("select id from users where login=?") .setString(1, ADMIN_USER) .get(t -> t.getInt(1)); + return requireNonNull(res); } private void insertOrganization(Context context, String organizationUuid, Groups groups, String defaultQGUuid) throws SQLException { @@ -109,10 +116,7 @@ public class PopulateInitialSchema extends DataChange { private void insertOrgQualityGate(Context context, String organizationUuid, String defaultQGUuid) throws SQLException { truncateTable(context, "org_quality_gates"); - context.prepareUpsert("insert into org_quality_gates " + - "(uuid, organization_uuid, quality_gate_uuid)" + - " values " + - "(?, ?, ?)") + context.prepareUpsert(createInsertStatement("org_quality_gates", "uuid", "organization_uuid", "quality_gate_uuid")) .setString(1, uuidFactory.create()) .setString(2, organizationUuid) .setString(3, defaultQGUuid) @@ -121,13 +125,11 @@ public class PopulateInitialSchema extends DataChange { } private void insertInternalProperty(Context context, String organizationUuid) throws SQLException { - truncateTable(context, "internal_properties"); + String tableName = "internal_properties"; + truncateTable(context, tableName); long now = system2.now(); - Upsert upsert = context.prepareUpsert("insert into internal_properties " + - "(kee, is_empty, text_value, created_at)" + - " values" + - " (?, ?, ?, ?)"); + Upsert upsert = context.prepareUpsert(createInsertStatement(tableName, "kee", "is_empty", "text_value", "created_at")); upsert .setString(1, "organization.default") .setBoolean(2, false) @@ -155,7 +157,9 @@ public class PopulateInitialSchema extends DataChange { truncateTable(context, "groups"); Date now = new Date(system2.now()); - Upsert upsert = context.prepareUpsert("insert into groups (organization_uuid, name, description, created_at, updated_at) values (?, ?, ?, ?, ?)"); + Upsert upsert = context.prepareUpsert(createInsertStatement( + "groups", + "organization_uuid", "name", "description", "created_at", "updated_at")); upsert .setString(1, organizationUuid) .setString(2, ADMINS_GROUP) @@ -178,9 +182,10 @@ public class PopulateInitialSchema extends DataChange { } private static int getGroupId(Context context, String groupName) throws SQLException { - return context.prepareSelect("select id from groups where name=?") + Integer res = context.prepareSelect("select id from groups where name=?") .setString(1, groupName) .get(t -> t.getInt(1)); + return requireNonNull(res); } private String insertQualityGate(Context context) throws SQLException { @@ -188,14 +193,12 @@ public class PopulateInitialSchema extends DataChange { String uuid = uuidFactory.create(); Date now = new Date(system2.now()); - context.prepareUpsert("insert into quality_gates " + - "(uuid, name, is_built_in, created_at, updated_at)" + - " values " + - "(?, 'Sonar way', ?, ?, ?)") + context.prepareUpsert(createInsertStatement("quality_gates", "uuid", "name", "is_built_in", "created_at", "updated_at")) .setString(1, uuid) - .setBoolean(2, true) - .setDate(3, now) + .setString(2, "Sonar way") + .setBoolean(3, true) .setDate(4, now) + .setDate(5, now) .execute() .commit(); return uuid; @@ -222,7 +225,7 @@ public class PopulateInitialSchema extends DataChange { private static void insertGroupRoles(Context context, String organizationUuid, Groups groups) throws SQLException { truncateTable(context, "group_roles"); - Upsert upsert = context.prepareUpsert("insert into group_roles (organization_uuid, group_id, role) values (?, ?, ?)"); + Upsert upsert = context.prepareUpsert(createInsertStatement("group_roles", "organization_uuid", "group_id", "role")); for (String adminRole : ADMIN_ROLES) { upsert .setString(1, organizationUuid) @@ -245,7 +248,7 @@ public class PopulateInitialSchema extends DataChange { private static void insertGroupUsers(Context context, int adminUserId, Groups groups) throws SQLException { truncateTable(context, "groups_users"); - Upsert upsert = context.prepareUpsert("insert into groups_users (user_id, group_id) values (?,?)"); + Upsert upsert = context.prepareUpsert(createInsertStatement("groups_users", "user_id", "group_id")); upsert .setInt(1, adminUserId) .setInt(2, groups.getUserGroupId()) @@ -262,7 +265,7 @@ public class PopulateInitialSchema extends DataChange { private static void insertOrganizationMember(Context context, int adminUserId, String organizationUuid) throws SQLException { truncateTable(context, "organization_members"); - context.prepareUpsert("insert into organization_members(organization_uuid, user_id) values (?, ?)") + context.prepareUpsert(createInsertStatement("organization_members", "organization_uuid", "user_id")) .setString(1, organizationUuid) .setInt(2, adminUserId) .execute() @@ -273,4 +276,11 @@ public class PopulateInitialSchema extends DataChange { context.prepareUpsert("truncate table " + table).execute().commit(); } + private static String createInsertStatement(String tableName, String firstColumn, String... otherColumns) { + return "insert into " + tableName + " " + + "(" + concat(of(firstColumn), stream(otherColumns)).collect(joining(",")) + ")" + + " values" + + " (" + concat(of(firstColumn), stream(otherColumns)).map(t -> "?").collect(joining(",")) + ")"; + } + } diff --git a/server/sonar-main/src/main/java/org/sonar/application/SchedulerImpl.java b/server/sonar-main/src/main/java/org/sonar/application/SchedulerImpl.java index 4e819e535a6..1817df61032 100644 --- a/server/sonar-main/src/main/java/org/sonar/application/SchedulerImpl.java +++ b/server/sonar-main/src/main/java/org/sonar/application/SchedulerImpl.java @@ -454,10 +454,18 @@ public class SchedulerImpl implements Scheduler, ManagedProcessEventListener, Pr } } + private static int nextRestartStopperThreadIndex() { + return restartStopperThreadIndex++; + } + + private static int nextHardStopperThreadIndex() { + return hardStopperThreadIndex++; + } + private class RestartStopperThread extends Thread { private RestartStopperThread() { - super("RestartStopper-" + restartStopperThreadIndex++); + super("RestartStopper-" + nextRestartStopperThreadIndex()); } @Override @@ -469,7 +477,7 @@ public class SchedulerImpl implements Scheduler, ManagedProcessEventListener, Pr private class HardStopperThread extends Thread { private HardStopperThread() { - super("HardStopper-" + hardStopperThreadIndex++); + super("HardStopper-" + nextHardStopperThreadIndex()); } @Override diff --git a/server/sonar-main/src/main/java/org/sonar/application/es/EsLogging.java b/server/sonar-main/src/main/java/org/sonar/application/es/EsLogging.java index 10450be249b..c0ad5d3d96c 100644 --- a/server/sonar-main/src/main/java/org/sonar/application/es/EsLogging.java +++ b/server/sonar-main/src/main/java/org/sonar/application/es/EsLogging.java @@ -41,7 +41,7 @@ public class EsLogging { log4JPropertiesBuilder.internalLogLevel(Level.ERROR); log4JPropertiesBuilder.configureGlobalFileLog(config, logDir, logPattern); if (isAllLogsToConsoleEnabled(props)) { - log4JPropertiesBuilder.configureGlobalStdoutLog(config, logPattern); + log4JPropertiesBuilder.configureGlobalStdoutLog(logPattern); } log4JPropertiesBuilder.apply( LogLevelConfig.newBuilder(log4JPropertiesBuilder.getRootLoggerName()) diff --git a/server/sonar-process/src/main/java/org/sonar/process/logging/Log4JPropertiesBuilder.java b/server/sonar-process/src/main/java/org/sonar/process/logging/Log4JPropertiesBuilder.java index d365281dc18..c5b24a04d95 100644 --- a/server/sonar-process/src/main/java/org/sonar/process/logging/Log4JPropertiesBuilder.java +++ b/server/sonar-process/src/main/java/org/sonar/process/logging/Log4JPropertiesBuilder.java @@ -92,13 +92,13 @@ public class Log4JPropertiesBuilder extends AbstractLogHelper { return appender.getAppenderRef(); } - public void configureGlobalStdoutLog(RootLoggerConfig config, String logPattern) { - String appenderRef = writeStdoutAppender(config, logPattern); + public void configureGlobalStdoutLog(String logPattern) { + String appenderRef = writeStdoutAppender(logPattern); putProperty(ROOT_LOGGER_NAME + ".appenderRef." + appenderRef + ".ref", appenderRef); } - private String writeStdoutAppender(RootLoggerConfig config, String logPattern) { + private String writeStdoutAppender(String logPattern) { String appenderName = "stdout"; ConsoleAppender appender = new ConsoleAppender(appenderName, logPattern); appender.writeAppenderProperties(); diff --git a/server/sonar-process/src/test/java/org/sonar/process/logging/Log4JPropertiesBuilderTest.java b/server/sonar-process/src/test/java/org/sonar/process/logging/Log4JPropertiesBuilderTest.java index cc11d307d33..11f79a14598 100644 --- a/server/sonar-process/src/test/java/org/sonar/process/logging/Log4JPropertiesBuilderTest.java +++ b/server/sonar-process/src/test/java/org/sonar/process/logging/Log4JPropertiesBuilderTest.java @@ -275,7 +275,7 @@ public class Log4JPropertiesBuilderTest { public void name() { String logPattern = randomAlphanumeric(15); Log4JPropertiesBuilder underTest = newLog4JPropertiesBuilder(); - underTest.configureGlobalStdoutLog(esRootLoggerConfig, logPattern); + underTest.configureGlobalStdoutLog(logPattern); verifyProperties(underTest.get(), "appender.stdout.type", "Console", diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/metric/MetricToDto.java b/server/sonar-server-common/src/main/java/org/sonar/server/metric/MetricToDto.java index 73b4a2599b1..1cfd7902c6b 100644 --- a/server/sonar-server-common/src/main/java/org/sonar/server/metric/MetricToDto.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/metric/MetricToDto.java @@ -20,6 +20,7 @@ package org.sonar.server.metric; import com.google.common.base.Function; +import java.util.Optional; import javax.annotation.Nonnull; import org.sonar.api.measures.Metric; import org.sonar.db.metric.MetricDto; @@ -28,7 +29,7 @@ public enum MetricToDto implements Function<Metric, MetricDto> { INSTANCE; @Override @Nonnull - public MetricDto apply(@Nonnull Metric metric) { + public MetricDto apply(Metric metric) { MetricDto dto = new MetricDto(); dto.setId(metric.getId()); dto.setKey(metric.getKey()); @@ -41,7 +42,7 @@ public enum MetricToDto implements Function<Metric, MetricDto> { dto.setHidden(metric.isHidden()); dto.setQualitative(metric.getQualitative()); dto.setValueType(metric.getType().name()); - dto.setOptimizedBestValue(metric.isOptimizedBestValue()); + dto.setOptimizedBestValue(Optional.ofNullable(metric.isOptimizedBestValue()).orElse(false)); dto.setUserManaged(metric.getUserManaged()); dto.setWorstValue(metric.getWorstValue()); dto.setDeleteHistoricalData(metric.getDeleteHistoricalData()); diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/util/Paths2Impl.java b/server/sonar-server-common/src/main/java/org/sonar/server/util/Paths2Impl.java index cf29db5be9d..779c94a9735 100644 --- a/server/sonar-server-common/src/main/java/org/sonar/server/util/Paths2Impl.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/util/Paths2Impl.java @@ -26,14 +26,14 @@ import java.nio.file.Paths; public final class Paths2Impl implements Paths2 { private static final Paths2 INSTANCE = new Paths2Impl(); - public static Paths2 getInstance() { - return INSTANCE; - } - private Paths2Impl() { // prevents instantiation and subclassing, use getInstance() instead } + public static Paths2 getInstance() { + return INSTANCE; + } + @Override public Path get(String first, String... more) { return Paths.get(first, more); diff --git a/server/sonar-webserver-api/src/main/java/org/sonar/server/exceptions/NotFoundException.java b/server/sonar-webserver-api/src/main/java/org/sonar/server/exceptions/NotFoundException.java index f21a98b5157..44b64953585 100644 --- a/server/sonar-webserver-api/src/main/java/org/sonar/server/exceptions/NotFoundException.java +++ b/server/sonar-webserver-api/src/main/java/org/sonar/server/exceptions/NotFoundException.java @@ -19,7 +19,6 @@ */ package org.sonar.server.exceptions; -import com.google.common.base.Optional; import javax.annotation.Nullable; import static java.lang.String.format; @@ -47,14 +46,6 @@ public class NotFoundException extends ServerException { * @throws NotFoundException if the value is not present * @return the value */ - public static <T> T checkFoundWithOptional(Optional<T> value, String message, Object... messageArguments) { - if (!value.isPresent()) { - throw new NotFoundException(format(message, messageArguments)); - } - - return value.get(); - } - public static <T> T checkFoundWithOptional(java.util.Optional<T> value, String message, Object... messageArguments) { if (!value.isPresent()) { throw new NotFoundException(format(message, messageArguments)); diff --git a/server/sonar-webserver-api/src/main/java/org/sonar/server/util/GlobalLockManagerImpl.java b/server/sonar-webserver-api/src/main/java/org/sonar/server/util/GlobalLockManagerImpl.java index 7611475cd2d..d072808d252 100644 --- a/server/sonar-webserver-api/src/main/java/org/sonar/server/util/GlobalLockManagerImpl.java +++ b/server/sonar-webserver-api/src/main/java/org/sonar/server/util/GlobalLockManagerImpl.java @@ -23,7 +23,6 @@ import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.server.ServerSide; import org.sonar.db.DbClient; import org.sonar.db.DbSession; -import org.sonar.db.property.InternalPropertiesDao; import static org.sonar.api.utils.Preconditions.checkArgument; diff --git a/server/sonar-webserver-api/src/test/java/org/sonar/server/exceptions/NotFoundExceptionTest.java b/server/sonar-webserver-api/src/test/java/org/sonar/server/exceptions/NotFoundExceptionTest.java new file mode 100644 index 00000000000..d2e9304b9e2 --- /dev/null +++ b/server/sonar-webserver-api/src/test/java/org/sonar/server/exceptions/NotFoundExceptionTest.java @@ -0,0 +1,94 @@ +/* + * SonarQube + * Copyright (C) 2009-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.exceptions; + +import java.util.Optional; +import org.junit.Test; + +import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.sonar.server.exceptions.NotFoundException.checkFound; +import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional; + +public class NotFoundExceptionTest { + @Test + public void http_code_is_404() { + NotFoundException underTest = new NotFoundException(randomAlphabetic(12)); + + assertThat(underTest.httpCode()).isEqualTo(404); + } + @Test + public void message_is_constructor_argument() { + String message = randomAlphabetic(12); + NotFoundException underTest = new NotFoundException(message); + + assertThat(underTest.getMessage()).isEqualTo(message); + } + + @Test + public void checkFound_type_throws_NotFoundException_if_parameter_is_null() { + String message = randomAlphabetic(12); + assertThatExceptionOfType(NotFoundException.class) + .isThrownBy(() -> checkFound(null, message)) + .withMessage(message); + } + + @Test + public void checkFound_type_throws_NotFoundException_if_parameter_is_null_and_formats_message() { + String message = "foo %s"; + assertThatExceptionOfType(NotFoundException.class) + .isThrownBy(() -> checkFound(null, message, "bar")) + .withMessage("foo bar"); + } + + @Test + public void checkFound_return_parameter_if_parameter_is_not_null() { + String message = randomAlphabetic(12); + Object o = new Object(); + + assertThat(checkFound(o, message)).isSameAs(o); + } + + @Test + public void checkFoundWithOptional_throws_NotFoundException_if_empty() { + String message = randomAlphabetic(12); + assertThatExceptionOfType(NotFoundException.class) + .isThrownBy(() -> checkFoundWithOptional(Optional.empty(), message)) + .withMessage(message); + } + + @Test + public void checkFoundWithOptional_throws_NotFoundException_if_empty_and_formats_message() { + String message = "foo %s"; + assertThatExceptionOfType(NotFoundException.class) + .isThrownBy(() -> checkFoundWithOptional(Optional.empty(), message, "bar")) + .withMessage("foo bar"); + } + + @Test + public void checkFoundWithOptional_return_content_of_if_not_empty() { + String message = randomAlphabetic(12); + Object o = new Object(); + + assertThat(checkFoundWithOptional(Optional.of(o), message)).isSameAs(o); + } + +} diff --git a/server/sonar-webserver-auth/src/main/java/org/sonar/server/permission/GroupIdOrAnyone.java b/server/sonar-webserver-auth/src/main/java/org/sonar/server/permission/GroupIdOrAnyone.java index 4a6add59eb6..c2a21151cbc 100644 --- a/server/sonar-webserver-auth/src/main/java/org/sonar/server/permission/GroupIdOrAnyone.java +++ b/server/sonar-webserver-auth/src/main/java/org/sonar/server/permission/GroupIdOrAnyone.java @@ -41,7 +41,7 @@ public class GroupIdOrAnyone { private GroupIdOrAnyone(String organizationUuid, @Nullable Integer id) { this.id = id; - this.organizationUuid = requireNonNull(organizationUuid); + this.organizationUuid = requireNonNull(organizationUuid, "organizationUuid can't be null"); } public boolean isAnyone() { diff --git a/server/sonar-webserver-auth/src/test/java/org/sonar/server/permission/GroupIdOrAnyoneTest.java b/server/sonar-webserver-auth/src/test/java/org/sonar/server/permission/GroupIdOrAnyoneTest.java new file mode 100644 index 00000000000..6a8a7b4eda2 --- /dev/null +++ b/server/sonar-webserver-auth/src/test/java/org/sonar/server/permission/GroupIdOrAnyoneTest.java @@ -0,0 +1,94 @@ +/* + * SonarQube + * Copyright (C) 2009-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.server.permission; + +import java.util.Random; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.sonar.db.user.GroupDto; + +import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; +import static org.assertj.core.api.Assertions.assertThat; + +public class GroupIdOrAnyoneTest { + @Rule + public ExpectedException expectedException = ExpectedException.none(); + + @Test + public void from_fails_with_NPE_if_GroupDto_organizationUuid_is_null() { + GroupDto dto = new GroupDto(); + + expectOrganizationUuidNPE(); + + GroupIdOrAnyone.from(dto); + } + + @Test + public void for_returns_isAnyone_if_id_is_null() { + String organizationUuid = randomAlphabetic(10); + GroupDto dto = new GroupDto(); + dto.setOrganizationUuid(organizationUuid); + + GroupIdOrAnyone underTest = GroupIdOrAnyone.from(dto); + + assertThat(underTest.getOrganizationUuid()).isEqualTo(organizationUuid); + assertThat(underTest.isAnyone()).isTrue(); + assertThat(underTest.getId()).isNull(); + } + + @Test + public void for_returns_isAnyone_false_if_id_is_not_null() { + int id = new Random().nextInt(199); + String organizationUuid = randomAlphabetic(10); + GroupDto dto = new GroupDto(); + dto.setOrganizationUuid(organizationUuid); + dto.setId(id); + + GroupIdOrAnyone underTest = GroupIdOrAnyone.from(dto); + + assertThat(underTest.getOrganizationUuid()).isEqualTo(organizationUuid); + assertThat(underTest.isAnyone()).isFalse(); + assertThat(underTest.getId()).isEqualTo(id); + } + + @Test + public void forAnyone_fails_with_NPE_if_arg_is_null() { + expectOrganizationUuidNPE(); + + GroupIdOrAnyone.forAnyone(null); + } + + @Test + public void forAnyone_returns_isAnyone_true() { + String organizationUuid = randomAlphabetic(12); + + GroupIdOrAnyone underTest = GroupIdOrAnyone.forAnyone(organizationUuid); + + assertThat(underTest.isAnyone()).isTrue(); + assertThat(underTest.getOrganizationUuid()).isEqualTo(organizationUuid); + assertThat(underTest.getId()).isNull(); + } + + private void expectOrganizationUuidNPE() { + expectedException.expect(NullPointerException.class); + expectedException.expectMessage("organizationUuid can't be null"); + } +} diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/ce/ws/TaskAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/ce/ws/TaskAction.java index 8ad0f2f58d3..12420d91852 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/ce/ws/TaskAction.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/ce/ws/TaskAction.java @@ -42,10 +42,10 @@ import org.sonar.db.ce.CeQueueDto; import org.sonar.db.ce.CeTaskMessageDto; import org.sonar.db.component.ComponentDto; import org.sonar.db.permission.OrganizationPermission; -import org.sonar.server.exceptions.NotFoundException; import org.sonar.server.user.UserSession; import org.sonarqube.ws.Ce; +import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional; import static org.sonar.server.user.AbstractUserSession.insufficientPrivilegesException; import static org.sonar.server.ws.WsUtils.writeProtobuf; @@ -100,7 +100,9 @@ public class TaskAction implements CeWsAction { checkPermission(component); wsTaskResponse.setTask(wsTaskFormatter.formatQueue(dbSession, queueDto.get())); } else { - CeActivityDto ceActivityDto = NotFoundException.checkFoundWithOptional(dbClient.ceActivityDao().selectByUuid(dbSession, taskUuid), "No activity found for task '%s'", taskUuid); + CeActivityDto ceActivityDto = checkFoundWithOptional( + dbClient.ceActivityDao().selectByUuid(dbSession, taskUuid), + "No activity found for task '%s'", taskUuid); Optional<ComponentDto> component = loadComponent(dbSession, ceActivityDto.getComponentUuid()); checkPermission(component); Set<AdditionalField> additionalFields = AdditionalField.getFromRequest(wsRequest); diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/SearchResponseFormat.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/SearchResponseFormat.java index c20b8ebd244..1f43b5bbe43 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/SearchResponseFormat.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/SearchResponseFormat.java @@ -132,14 +132,14 @@ public class SearchResponseFormat { } } - private void formatPaging(Paging paging, SearchWsResponse.Builder response) { + private static void formatPaging(Paging paging, SearchWsResponse.Builder response) { response.setP(paging.pageIndex()); response.setPs(paging.pageSize()); response.setTotal(paging.total()); response.setPaging(formatPaging(paging)); } - private Common.Paging.Builder formatPaging(Paging paging) { + private static Common.Paging.Builder formatPaging(Paging paging) { return Common.Paging.newBuilder() .setPageIndex(paging.pageIndex()) .setPageSize(paging.pageSize()) diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/organization/ws/PreventUserDeletionAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/organization/ws/PreventUserDeletionAction.java index 7ff1feb859d..30340632807 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/organization/ws/PreventUserDeletionAction.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/organization/ws/PreventUserDeletionAction.java @@ -68,7 +68,7 @@ public class PreventUserDeletionAction implements OrganizationsWsAction { } } - private Organizations.PreventUserDeletionWsResponse buildResponse(List<OrganizationDto> organizations) { + private static Organizations.PreventUserDeletionWsResponse buildResponse(List<OrganizationDto> organizations) { Organizations.PreventUserDeletionWsResponse.Builder response = Organizations.PreventUserDeletionWsResponse.newBuilder(); Organizations.PreventUserDeletionWsResponse.Organization.Builder wsOrganization = Organizations.PreventUserDeletionWsResponse.Organization.newBuilder(); organizations.forEach(o -> { diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileBackuperImpl.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileBackuperImpl.java index 4a63cba654b..ec95957feb0 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileBackuperImpl.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileBackuperImpl.java @@ -56,7 +56,7 @@ public class QProfileBackuperImpl implements QProfileBackuper { private final QProfileParser qProfileParser; public QProfileBackuperImpl(DbClient db, QProfileReset profileReset, QProfileFactory profileFactory, - RuleCreator ruleCreator, QProfileParser qProfileParser) { + RuleCreator ruleCreator, QProfileParser qProfileParser) { this.db = db; this.profileReset = profileReset; this.profileFactory = profileFactory; @@ -120,7 +120,7 @@ public class QProfileBackuperImpl implements QProfileBackuper { .collect(Collectors.toMap(RuleDefinitionDto::getKey, Function.identity())); } - private void checkIfRulesFromExternalEngines(Map<RuleKey, RuleDefinitionDto> ruleDefinitionsByKey) { + private static void checkIfRulesFromExternalEngines(Map<RuleKey, RuleDefinitionDto> ruleDefinitionsByKey) { List<RuleDefinitionDto> externalRules = ruleDefinitionsByKey.values().stream() .filter(RuleDefinitionDto::isExternal) .collect(Collectors.toList()); @@ -156,7 +156,7 @@ public class QProfileBackuperImpl implements QProfileBackuper { .setParameters(r.getParameters()); } - private List<RuleActivation> toRuleActivations(List<ImportedRule> rules, Map<RuleKey, RuleDefinitionDto> ruleDefinitionsByKey) { + private static List<RuleActivation> toRuleActivations(List<ImportedRule> rules, Map<RuleKey, RuleDefinitionDto> ruleDefinitionsByKey) { return rules.stream() .map(r -> { RuleDefinitionDto ruleDefinition = ruleDefinitionsByKey.get(r.getRuleKey()); diff --git a/server/sonar-webserver/src/main/java/org/sonar/server/platform/web/MasterServletFilter.java b/server/sonar-webserver/src/main/java/org/sonar/server/platform/web/MasterServletFilter.java index ce6a83cb407..fc765edffee 100644 --- a/server/sonar-webserver/src/main/java/org/sonar/server/platform/web/MasterServletFilter.java +++ b/server/sonar-webserver/src/main/java/org/sonar/server/platform/web/MasterServletFilter.java @@ -43,15 +43,15 @@ import org.sonar.server.platform.PlatformImpl; */ public class MasterServletFilter implements Filter { - private static volatile MasterServletFilter INSTANCE; + private static volatile MasterServletFilter instance; private ServletFilter[] filters; private FilterConfig config; public MasterServletFilter() { - if (INSTANCE != null) { + if (instance != null) { throw new IllegalStateException("Servlet filter " + getClass().getName() + " is already instantiated"); } - INSTANCE = this; + instance = this; } @Override @@ -63,12 +63,12 @@ public class MasterServletFilter implements Filter { @CheckForNull public static MasterServletFilter getInstance() { - return INSTANCE; + return instance; } @VisibleForTesting static void setInstance(@Nullable MasterServletFilter instance) { - INSTANCE = instance; + MasterServletFilter.instance = instance; } void init(FilterConfig config, List<ServletFilter> filters) { diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/cpd/CpdSettings.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/cpd/CpdSettings.java index 198be51b14d..5e3f3c54f20 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/cpd/CpdSettings.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/cpd/CpdSettings.java @@ -22,7 +22,6 @@ package org.sonar.scanner.cpd; import org.sonar.api.CoreProperties; import org.sonar.api.config.Configuration; import org.sonar.duplications.block.BlockChunker; -import org.sonar.api.batch.fs.internal.DefaultInputProject; public class CpdSettings { private final Configuration settings; |