From 500260676895673cac016e76b6ec3a18a6757a0c Mon Sep 17 00:00:00 2001 From: Michal Duda Date: Thu, 6 Dec 2018 12:41:07 +0100 Subject: [PATCH] SONAR-11525 message fixes --- .../db/migration/version/v76/DbVersion76.java | 2 +- .../version/v76/MigrateModuleProperties.java | 9 +++++---- .../v76/MigrateModulePropertiesTest.java | 17 +++++++++++------ .../core/config/CorePropertyDefinitions.java | 6 +++--- .../scan/ProjectServerSettingsProvider.java | 6 ++++-- 5 files changed, 24 insertions(+), 16 deletions(-) diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/DbVersion76.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/DbVersion76.java index 0cdfeaf5f99..550e9b6286d 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/DbVersion76.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/DbVersion76.java @@ -29,7 +29,7 @@ public class DbVersion76 implements DbVersion { registry .add(2500, "Create table USER_PROPERTIES", CreateUserPropertiesTable.class) .add(2501, "Add index in table USER_PROPERTIES", AddUniqueIndexInUserPropertiesTable.class) - .add(2502, "Move module and directory properties to a project level property", MigrateModuleProperties.class) + .add(2502, "Archive module properties in a new project level property", MigrateModuleProperties.class) .add(2505, "Fix the direction values of certain metrics (prepare for migration of conditions)", FixDirectionOfMetrics.class) .add(2506, "Migrate quality gate conditions using warning, period and no more supported operations", MigrateNoMoreUsedQualityGateConditions.class); } diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/MigrateModuleProperties.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/MigrateModuleProperties.java index 8c49e2c62fc..0194084578c 100644 --- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/MigrateModuleProperties.java +++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/MigrateModuleProperties.java @@ -20,6 +20,7 @@ package org.sonar.server.platform.db.migration.version.v76; import java.sql.SQLException; +import java.util.Optional; import java.util.concurrent.atomic.AtomicReference; import org.sonar.api.utils.System2; import org.sonar.db.Database; @@ -80,12 +81,12 @@ public class MigrateModuleProperties extends DataChange { if (currentModuleUuid.get() != null && builder.length() != 0) { builder.append("\n"); } - builder.append("# previous settings for sub-project ").append(projectName).append("::").append(moduleName).append("\n"); + builder.append("# Settings from '").append(projectName).append("::").append(moduleName).append("'\n"); currentModuleUuid.set(moduleUuid); } - String propertyValue = propertyTextValue == null ? propertyClobValue : propertyTextValue; - builder.append(propertyKey).append("=").append(propertyValue).append("\n"); + Optional.ofNullable(Optional.ofNullable(propertyTextValue).orElse(propertyClobValue)) + .ifPresent(value -> builder.append(propertyKey).append("=").append(value).append("\n")); }); if (builder.length() > 0) { @@ -105,7 +106,7 @@ public class MigrateModuleProperties extends DataChange { } private static void removeModuleProperties(Context context) throws SQLException { - MassUpdate massUpdate = context.prepareMassUpdate().rowPluralName("remove module properties"); + MassUpdate massUpdate = context.prepareMassUpdate().rowPluralName("module level properties"); massUpdate.select("select prop.id as property_id " + "from properties prop " + "left join projects mod on mod.id = prop.resource_id " + diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/MigrateModulePropertiesTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/MigrateModulePropertiesTest.java index 4692e49ef14..5dd8652de55 100644 --- a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/MigrateModulePropertiesTest.java +++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/MigrateModulePropertiesTest.java @@ -53,6 +53,7 @@ public class MigrateModulePropertiesTest { underTest.execute(); verifyMultiModuleProjectMigration(); + assertThat(getRemainingProperties()).hasSize(3); } @Test @@ -63,8 +64,7 @@ public class MigrateModulePropertiesTest { underTest.execute(); verifyMultiModuleProjectMigration(); - List> remainingProperties = db.select("select ID from properties"); - assertThat(remainingProperties).hasSize(3); + assertThat(getRemainingProperties()).hasSize(3); } @Test @@ -93,6 +93,11 @@ public class MigrateModulePropertiesTest { verifyMultiModuleProjectMigration(); verifySecondMultiModuleProjectMigration(); + assertThat(getRemainingProperties()).hasSize(5); + } + + private List> getRemainingProperties() { + return db.select("select ID from properties"); } private void insertComponent(long id, String uuid, @Nullable String rootUuid, String projectUuid, String qualifier, String name) { @@ -137,15 +142,15 @@ public class MigrateModulePropertiesTest { } private void verifyMultiModuleProjectMigration() { - final String expectedResult = "# previous settings for sub-project Multi-module project::Module\n" + + final String expectedResult = "# Settings from 'Multi-module project::Module'\n" + "sonar.coverage.exclusions=ModuleA.java\n" + "sonar.cpd.exclusions=ModuleB.java\n" + "\n" + - "# previous settings for sub-project Multi-module project::Submodule 1\n" + + "# Settings from 'Multi-module project::Submodule 1'\n" + "sonar.coverage.exclusions=Module1A.java\n" + "sonar.cpd.exclusions=Moddule1B.java\n" + "\n" + - "# previous settings for sub-project Multi-module project::Submodule 2\n" + + "# Settings from 'Multi-module project::Submodule 2'\n" + "sonar.coverage.exclusions=Module2A.java\n" + "sonar.cpd.exclusions=Module2B.java\n"; @@ -169,7 +174,7 @@ public class MigrateModulePropertiesTest { } private void verifySecondMultiModuleProjectMigration() { - final String expectedResult = "# previous settings for sub-project Another multi-module project::Module X\n" + + final String expectedResult = "# Settings from 'Another multi-module project::Module X'\n" + "sonar.coverage.exclusions=InModule.java\n"; List> properties = db.select(String.format("select ID, TEXT_VALUE, CLOB_VALUE " + diff --git a/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java b/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java index 82b69240566..d890b865ae5 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java +++ b/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java @@ -64,9 +64,9 @@ public class CorePropertyDefinitions { defs.addAll(asList( PropertyDefinition.builder(CoreProperties.MODULE_LEVEL_ARCHIVED_SETTINGS) .name("Archived Sub-Projects Settings") - .description("DEPRECATED - Recap of the properties that were previously configured at sub-project / module level. " + - "These properties are not used anymore and should now be configured at project level. " + - "Set this parameter to empty to prevent the analysis from displaying a warning.") + .description("DEPRECATED - List of the properties that were previously configured at sub-project / module level. " + + "These properties are not used anymore and should now be configured at project level. When you've made the " + + "necessary changes, clear this setting to prevent analysis from showing a warning about it.") .category(CoreProperties.CATEGORY_GENERAL) .subCategory(CoreProperties.SUBCATEGORY_MODULES) .onlyOnQualifiers(Qualifiers.PROJECT) diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ProjectServerSettingsProvider.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ProjectServerSettingsProvider.java index 47d4f578ed6..a0545e1dd5b 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ProjectServerSettingsProvider.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/scan/ProjectServerSettingsProvider.java @@ -33,8 +33,10 @@ public class ProjectServerSettingsProvider extends ProviderAdapter { private static final Logger LOG = Loggers.get(ProjectConfigurationProvider.class); - private static final String MODULE_LEVEL_ARCHIVED_SETTINGS_WARNING = String.format("Please configure the settings listed in " + - "`%s` at project level and remove that setting to prevent the analysis from displaying a warning.", CoreProperties.MODULE_LEVEL_ARCHIVED_SETTINGS); + private static final String MODULE_LEVEL_ARCHIVED_SETTINGS_WARNING = "Settings that were previously configured at " + + "sub-project level are not used anymore. Transition the settings listed in ‘General Settings -> General -> " + + "Archived Sub-Projects Settings' at project level, and clear the property to prevent the analysis from " + + "displaying this warning."; private ProjectServerSettings singleton = null; -- 2.39.5