aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-db-migration
diff options
context:
space:
mode:
authorStas Vilchik <stas.vilchik@sonarsource.com>2019-01-10 11:06:24 +0100
committersonartech <sonartech@sonarsource.com>2019-01-16 09:43:14 +0100
commitfe47aba9290135027cf3dd9f6ff8b6b4bd92dde7 (patch)
tree03232df2d99133f4371f86707072cd37f0c19e90 /server/sonar-db-migration
parentb6b3e364da93f6fd138112f58d71fb60b90b8e8c (diff)
downloadsonarqube-fe47aba9290135027cf3dd9f6ff8b6b4bd92dde7.tar.gz
sonarqube-fe47aba9290135027cf3dd9f6ff8b6b4bd92dde7.zip
SONAR-11615 Drop "sonar.onboardingTutorial.showToNewUsers" setting
Diffstat (limited to 'server/sonar-db-migration')
-rw-r--r--server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v65/PopulateUsersOnboarded.java10
-rw-r--r--server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/DbVersion76.java4
-rw-r--r--server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSetting.java50
-rw-r--r--server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v65/PopulateUsersOnboardedTest.java22
-rw-r--r--server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/DbVersion76Test.java2
-rw-r--r--server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSettingTest.java67
-rw-r--r--server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSettingTest/properties.sql11
7 files changed, 134 insertions, 32 deletions
diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v65/PopulateUsersOnboarded.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v65/PopulateUsersOnboarded.java
index ca6f4ac6201..0120cef7707 100644
--- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v65/PopulateUsersOnboarded.java
+++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v65/PopulateUsersOnboarded.java
@@ -23,7 +23,6 @@ import java.sql.SQLException;
import org.sonar.api.utils.System2;
import org.sonar.db.Database;
import org.sonar.server.platform.db.migration.step.DataChange;
-import org.sonar.server.platform.db.migration.step.Select;
public class PopulateUsersOnboarded extends DataChange {
@@ -41,14 +40,5 @@ public class PopulateUsersOnboarded extends DataChange {
.setLong(2, system2.now())
.execute()
.commit();
- long users = context.prepareSelect("select count(u.id) from users u").get(Select.LONG_READER);
- if (users == 1) {
- context.prepareUpsert("update users set onboarded=?, updated_at=? where login=?")
- .setBoolean(1, false)
- .setLong(2, system2.now())
- .setString(3, "admin")
- .execute()
- .commit();
- }
}
}
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 98804723ac6..0e4d4b57991 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
@@ -33,6 +33,8 @@ public class DbVersion76 implements DbVersion {
.add(2503, "Delete useless 'sonar.dbcleaner.cleanDirectory' property", DeleteUselessProperty.class)
.add(2504, "Delete useless module and folder level measures", DeleteModuleAndFolderMeasures.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);
+ .add(2506, "Migrate quality gate conditions using warning, period and no more supported operations", MigrateNoMoreUsedQualityGateConditions.class)
+ .add(2507, "Delete sonar.onboardingTutorial.showToNewUsers from settings", DeleteUselessOnboardingSetting.class)
+ ;
}
}
diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSetting.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSetting.java
new file mode 100644
index 00000000000..3af455d03cf
--- /dev/null
+++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSetting.java
@@ -0,0 +1,50 @@
+/*
+ * 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.platform.db.migration.version.v76;
+
+import org.sonar.db.Database;
+import org.sonar.server.platform.db.migration.step.DataChange;
+import org.sonar.server.platform.db.migration.step.MassUpdate;
+
+import java.sql.SQLException;
+
+/**
+ * Remove the "sonar.onboardingTutorial.showToNewUsers" settings from the PROPERTIES table
+ */
+public class DeleteUselessOnboardingSetting extends DataChange {
+
+ public DeleteUselessOnboardingSetting(Database db) {
+ super(db);
+ }
+
+ @Override
+ public void execute(Context context) throws SQLException {
+ MassUpdate massUpdate = context.prepareMassUpdate().rowPluralName("useless onboarding settings");
+ massUpdate.select("SELECT id FROM properties WHERE prop_key=?")
+ .setString(1, "sonar.onboardingTutorial.showToNewUsers");
+ massUpdate.update("DELETE FROM properties WHERE id=?");
+ massUpdate.execute((row, update) -> {
+ long propertyId = row.getLong(1);
+ update.setLong(1, propertyId);
+ return true;
+ });
+ }
+
+}
diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v65/PopulateUsersOnboardedTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v65/PopulateUsersOnboardedTest.java
index 361c15f3baf..08026834445 100644
--- a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v65/PopulateUsersOnboardedTest.java
+++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v65/PopulateUsersOnboardedTest.java
@@ -33,8 +33,8 @@ import static org.assertj.core.groups.Tuple.tuple;
public class PopulateUsersOnboardedTest {
- private final static long PAST = 100_000_000_000l;
- private final static long NOW = 500_000_000_000l;
+ private final static long PAST = 100_000_000_000L;
+ private final static long NOW = 500_000_000_000L;
private System2 system2 = new TestSystem2().setNow(NOW);
@@ -54,24 +54,6 @@ public class PopulateUsersOnboardedTest {
assertUsers(tuple("admin", true, NOW), tuple("user", true, NOW));
}
- @Test
- public void set_onboarded_to_false_when_single_admin_user() throws SQLException {
- insertUser("admin");
-
- underTest.execute();
-
- assertUsers(tuple("admin", false, NOW));
- }
-
- @Test
- public void set_onboarded_to_true_when_single_user_but_not_admin() throws SQLException {
- insertUser("user");
-
- underTest.execute();
-
- assertUsers(tuple("user", true, NOW));
- }
-
private void insertUser(String login) {
db.executeInsert("USERS", "LOGIN", login, "ONBOARDED", false, "IS_ROOT", true, "CREATED_AT", PAST, "UPDATED_AT", PAST);
}
diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/DbVersion76Test.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/DbVersion76Test.java
index deba20879e5..ab1c60e4152 100644
--- a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/DbVersion76Test.java
+++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/DbVersion76Test.java
@@ -35,7 +35,7 @@ public class DbVersion76Test {
@Test
public void verify_migration_count() {
- verifyMigrationCount(underTest, 7);
+ verifyMigrationCount(underTest, 8);
}
}
diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSettingTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSettingTest.java
new file mode 100644
index 00000000000..b4cc72abb59
--- /dev/null
+++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSettingTest.java
@@ -0,0 +1,67 @@
+/*
+ * 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.platform.db.migration.version.v76;
+
+import com.google.common.collect.ImmutableMap;
+import org.junit.Rule;
+import org.junit.Test;
+import org.sonar.db.CoreDbTester;
+
+import java.sql.SQLException;
+import java.util.HashMap;
+import java.util.Map;
+
+import static java.lang.String.valueOf;
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class DeleteUselessOnboardingSettingTest {
+
+ private static final String TABLE_PROPERTIES = "properties";
+
+ @Rule
+ public CoreDbTester db = CoreDbTester.createForSchema(DeleteUselessOnboardingSettingTest.class, "properties.sql");
+
+ private DeleteUselessOnboardingSetting underTest = new DeleteUselessOnboardingSetting(db.database());
+
+ @Test
+ public void migration_has_no_effect_on_empty_tables() throws SQLException {
+ underTest.execute();
+
+ assertThat(db.countRowsOfTable(TABLE_PROPERTIES)).isZero();
+ }
+
+ @Test
+ public void migration_removes_onboarding_setting() throws SQLException {
+ insertProperty("sonar.onboardingTutorial.showToNewUsers");
+
+ underTest.execute();
+
+ assertThat(db.countRowsOfTable(TABLE_PROPERTIES)).isZero();
+ }
+
+ private void insertProperty(String key) {
+ Map<String, Object> values = new HashMap<>(ImmutableMap.of(
+ "PROP_KEY", key,
+ "IS_EMPTY", false,
+ "CREATED_AT", 456789));
+ db.executeInsert(TABLE_PROPERTIES, values);
+ }
+
+}
diff --git a/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSettingTest/properties.sql b/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSettingTest/properties.sql
new file mode 100644
index 00000000000..d84c238cd48
--- /dev/null
+++ b/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v76/DeleteUselessOnboardingSettingTest/properties.sql
@@ -0,0 +1,11 @@
+CREATE TABLE "PROPERTIES" (
+ "ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1),
+ "PROP_KEY" VARCHAR(512) NOT NULL,
+ "RESOURCE_ID" INTEGER,
+ "USER_ID" INTEGER,
+ "IS_EMPTY" BOOLEAN NOT NULL,
+ "TEXT_VALUE" VARCHAR(4000),
+ "CLOB_VALUE" CLOB,
+ "CREATED_AT" BIGINT
+);
+CREATE INDEX "PROPERTIES_KEY" ON "PROPERTIES" ("PROP_KEY");