@@ -20,6 +20,7 @@ | |||
package org.sonar.server.platform.db.migration.version; | |||
import org.sonar.core.platform.Module; | |||
import org.sonar.server.platform.db.migration.version.v561.DbVersion561; | |||
import org.sonar.server.platform.db.migration.version.v60.DbVersion60; | |||
import org.sonar.server.platform.db.migration.version.v61.DbVersion61; | |||
import org.sonar.server.platform.db.migration.version.v62.DbVersion62; | |||
@@ -29,6 +30,7 @@ public class DbVersionModule extends Module { | |||
@Override | |||
protected void configureModule() { | |||
add( | |||
DbVersion561.class, | |||
DbVersion60.class, | |||
DbVersion61.class, | |||
DbVersion62.class, |
@@ -0,0 +1,30 @@ | |||
/* | |||
* SonarQube | |||
* Copyright (C) 2009-2016 SonarSource SA | |||
* mailto:contact 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.v561; | |||
import org.sonar.server.platform.db.migration.step.MigrationStepRegistry; | |||
import org.sonar.server.platform.db.migration.version.DbVersion; | |||
public class DbVersion561 implements DbVersion { | |||
@Override | |||
public void addSteps(MigrationStepRegistry registry) { | |||
registry.add(1153, "Populate columns USERS.EXTERNAL_IDENTITY_*", UpdateUsersExternalIdentityWhenEmpty.class); | |||
} | |||
} |
@@ -17,20 +17,20 @@ | |||
* 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.db.version.v561; | |||
package org.sonar.server.platform.db.migration.version.v561; | |||
import java.sql.SQLException; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.Database; | |||
import org.sonar.db.version.BaseDataChange; | |||
import org.sonar.db.version.MassUpdate; | |||
import org.sonar.db.version.Select; | |||
import org.sonar.db.version.SqlStatement; | |||
import org.sonar.server.platform.db.migration.step.DataChange; | |||
/** | |||
* Update USERS.EXTERNAL_IDENTITY_PROVIDER to 'sonarqube' and USERS.EXTERNAL_IDENTITY to user's login when one of this 2 columns is null | |||
*/ | |||
public class UpdateUsersExternalIdentityWhenEmpty extends BaseDataChange { | |||
public class UpdateUsersExternalIdentityWhenEmpty extends DataChange { | |||
private final System2 system2; | |||
@@ -18,7 +18,7 @@ | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
@ParametersAreNonnullByDefault | |||
package org.sonar.db.version.v561; | |||
package org.sonar.server.platform.db.migration.version.v561; | |||
import javax.annotation.ParametersAreNonnullByDefault; | |||
@@ -36,7 +36,7 @@ public class DbVersionModuleTest { | |||
underTest.configure(container); | |||
assertThat(container.getPicoContainer().getComponentAdapters()) | |||
.hasSize(COMPONENTS_IN_EMPTY_COMPONENT_CONTAINER + 4); | |||
.hasSize(COMPONENTS_IN_EMPTY_COMPONENT_CONTAINER + 5); | |||
} | |||
} |
@@ -0,0 +1,47 @@ | |||
/* | |||
* SonarQube | |||
* Copyright (C) 2009-2016 SonarSource SA | |||
* mailto:contact 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.v561; | |||
import org.junit.Test; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.sonar.server.platform.db.migration.version.DbVersionTestUtils.verifyMigrationCount; | |||
import static org.sonar.server.platform.db.migration.version.DbVersionTestUtils.verifyMinimumMigrationNumber; | |||
public class DbVersion561Test { | |||
private DbVersion561 underTest = new DbVersion561(); | |||
@Test | |||
public void verify_no_support_component() { | |||
assertThat(underTest.getSupportComponents()).isEmpty(); | |||
} | |||
@Test | |||
public void migrationNumber_starts_at_1153() { | |||
verifyMinimumMigrationNumber(underTest, 1153); | |||
} | |||
@Test | |||
public void verify_migration_count() { | |||
verifyMigrationCount(underTest, 1); | |||
} | |||
} |
@@ -17,7 +17,7 @@ | |||
* 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.db.version.v561; | |||
package org.sonar.server.platform.db.migration.version.v561; | |||
import java.util.HashMap; | |||
import java.util.Map; | |||
@@ -27,7 +27,6 @@ import org.junit.Rule; | |||
import org.junit.Test; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.version.MigrationStep; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.mockito.Mockito.mock; | |||
@@ -35,15 +34,15 @@ import static org.mockito.Mockito.when; | |||
public class UpdateUsersExternalIdentityWhenEmptyTest { | |||
private static final long PAST = 1_000_000_000_000L; | |||
private static final long NOW = 1_500_000_000_000L; | |||
@Rule | |||
public DbTester db = DbTester.createForSchema(System2.INSTANCE, UpdateUsersExternalIdentityWhenEmptyTest.class, "schema.sql"); | |||
static final long PAST = 1_000_000_000_000L; | |||
static final long NOW = 1_500_000_000_000L; | |||
System2 system = mock(System2.class); | |||
private System2 system = mock(System2.class); | |||
MigrationStep underTest = new UpdateUsersExternalIdentityWhenEmpty(db.database(), system); | |||
private UpdateUsersExternalIdentityWhenEmpty underTest = new UpdateUsersExternalIdentityWhenEmpty(db.database(), system); | |||
@Before | |||
public void setUp() throws Exception { |
@@ -1,31 +0,0 @@ | |||
# | |||
# SonarQube, open source software quality management tool. | |||
# Copyright (C) 2008-2016 SonarSource | |||
# mailto:contact AT sonarsource DOT com | |||
# | |||
# SonarQube 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. | |||
# | |||
# SonarQube 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. | |||
# | |||
# | |||
# SonarQube 5.6.1 | |||
# SONAR-7686 | |||
# | |||
class UpdateUsersExternalIdentityWhenEmpty < ActiveRecord::Migration | |||
def self.up | |||
execute_java_migration('org.sonar.db.version.v561.UpdateUsersExternalIdentityWhenEmpty') | |||
end | |||
end |
@@ -22,7 +22,6 @@ package org.sonar.db.version; | |||
import org.sonar.core.platform.Module; | |||
import org.sonar.db.version.v56.CreateInitialSchema; | |||
import org.sonar.db.version.v56.PopulateInitialSchema; | |||
import org.sonar.db.version.v561.UpdateUsersExternalIdentityWhenEmpty; | |||
public class MigrationStepModule extends Module { | |||
@Override | |||
@@ -30,9 +29,6 @@ public class MigrationStepModule extends Module { | |||
add( | |||
// 5.6 | |||
CreateInitialSchema.class, | |||
PopulateInitialSchema.class, | |||
// 5.6.1 | |||
UpdateUsersExternalIdentityWhenEmpty.class); | |||
PopulateInitialSchema.class); | |||
} | |||
} |
@@ -29,6 +29,6 @@ public class MigrationStepModuleTest { | |||
public void verify_count_of_added_MigrationStep_types() { | |||
ComponentContainer container = new ComponentContainer(); | |||
new MigrationStepModule().configure(container); | |||
assertThat(container.size()).isEqualTo(5); | |||
assertThat(container.size()).isEqualTo(4); | |||
} | |||
} |