Browse Source

SONAR-8445 move SQ 5.6.1 migration out of Ruby

tags/6.3-RC1
Sébastien Lesaint 7 years ago
parent
commit
e2cff9277d

+ 2
- 0
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/DbVersionModule.java View File

@@ -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,

+ 30
- 0
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v561/DbVersion561.java View File

@@ -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);
}
}

sonar-db/src/main/java/org/sonar/db/version/v561/UpdateUsersExternalIdentityWhenEmpty.java → server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v561/UpdateUsersExternalIdentityWhenEmpty.java View File

@@ -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;


sonar-db/src/main/java/org/sonar/db/version/v561/package-info.java → server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v561/package-info.java View File

@@ -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;


+ 1
- 1
server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/DbVersionModuleTest.java View File

@@ -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);
}

}

+ 47
- 0
server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v561/DbVersion561Test.java View File

@@ -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);
}


}

sonar-db/src/test/java/org/sonar/db/version/v561/UpdateUsersExternalIdentityWhenEmptyTest.java → server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v561/UpdateUsersExternalIdentityWhenEmptyTest.java View File

@@ -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 {

sonar-db/src/test/resources/org/sonar/db/version/v561/UpdateUsersExternalIdentityWhenEmptyTest/schema.sql → server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v561/UpdateUsersExternalIdentityWhenEmptyTest/schema.sql View File


+ 0
- 31
server/sonar-web/src/main/webapp/WEB-INF/db/migrate/1153_update_users_external_identity_when_empty.rb View File

@@ -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

+ 1
- 5
sonar-db/src/main/java/org/sonar/db/version/MigrationStepModule.java View File

@@ -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);
}
}

+ 1
- 1
sonar-db/src/test/java/org/sonar/db/version/MigrationStepModuleTest.java View File

@@ -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);
}
}

Loading…
Cancel
Save