also rename DatabaseMigrations to MigrationSteps this is required to to make room for the more appropriatly named DatabaseMigration class that deals with triggering the database migrationtags/5.2-RC1
@@ -19,19 +19,20 @@ | |||
*/ | |||
package org.sonar.server.db.migrations; | |||
import com.google.common.base.CharMatcher; | |||
import com.google.common.base.Preconditions; | |||
import org.sonar.core.persistence.dialect.Dialect; | |||
import org.sonar.core.persistence.dialect.MsSql; | |||
import org.sonar.core.persistence.dialect.Oracle; | |||
import org.sonar.core.persistence.dialect.PostgreSql; | |||
import static com.google.common.collect.Lists.newArrayList; | |||
import java.util.List; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
import java.util.List; | |||
import org.sonar.core.persistence.dialect.Dialect; | |||
import org.sonar.core.persistence.dialect.MsSql; | |||
import org.sonar.core.persistence.dialect.Oracle; | |||
import org.sonar.core.persistence.dialect.PostgreSql; | |||
import static com.google.common.collect.Lists.newArrayList; | |||
import com.google.common.base.CharMatcher; | |||
import com.google.common.base.Preconditions; | |||
public class AddColumnsBuilder { | |||
@@ -19,13 +19,13 @@ | |||
*/ | |||
package org.sonar.server.db.migrations; | |||
import org.apache.commons.dbutils.DbUtils; | |||
import org.sonar.core.persistence.Database; | |||
import java.sql.Connection; | |||
import java.sql.SQLException; | |||
public abstract class BaseDataChange implements DataChange, DatabaseMigration { | |||
import org.apache.commons.dbutils.DbUtils; | |||
import org.sonar.core.persistence.Database; | |||
public abstract class BaseDataChange implements DataChange, MigrationStep { | |||
private final Database db; | |||
@@ -19,16 +19,16 @@ | |||
*/ | |||
package org.sonar.server.db.migrations; | |||
import org.apache.commons.dbutils.DbUtils; | |||
import javax.annotation.Nullable; | |||
import java.sql.PreparedStatement; | |||
import java.sql.SQLException; | |||
import java.sql.Timestamp; | |||
import java.sql.Types; | |||
import java.util.Date; | |||
import javax.annotation.Nullable; | |||
import org.apache.commons.dbutils.DbUtils; | |||
class BaseSqlStatement<CHILD extends SqlStatement> implements SqlStatement<CHILD> { | |||
protected PreparedStatement pstmt; | |||
@@ -19,11 +19,11 @@ | |||
*/ | |||
package org.sonar.server.db.migrations; | |||
import org.sonar.core.persistence.Database; | |||
import java.sql.Connection; | |||
import java.sql.SQLException; | |||
import org.sonar.core.persistence.Database; | |||
public interface DataChange { | |||
class Context { |
@@ -1,107 +0,0 @@ | |||
/* | |||
* SonarQube, open source software quality management tool. | |||
* Copyright (C) 2008-2014 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. | |||
*/ | |||
package org.sonar.server.db.migrations; | |||
import com.google.common.collect.ImmutableList; | |||
import org.sonar.server.db.migrations.v36.ViolationMigration; | |||
import org.sonar.server.db.migrations.v42.CompleteIssueMessageMigration; | |||
import org.sonar.server.db.migrations.v42.PackageKeysMigration; | |||
import org.sonar.server.db.migrations.v43.*; | |||
import org.sonar.server.db.migrations.v44.*; | |||
import org.sonar.server.db.migrations.v45.AddMissingRuleParameterDefaultValuesMigration; | |||
import org.sonar.server.db.migrations.v45.DeleteMeasuresOnDeletedProfilesMigration; | |||
import org.sonar.server.db.migrations.v451.AddMissingCustomRuleParametersMigration; | |||
import org.sonar.server.db.migrations.v451.DeleteUnescapedActivities; | |||
import org.sonar.server.db.migrations.v50.*; | |||
import org.sonar.server.db.migrations.v51.*; | |||
import org.sonar.server.db.migrations.v52.FeedEventsComponentUuid; | |||
import org.sonar.server.db.migrations.v52.FeedProjectLinksComponentUuid; | |||
import org.sonar.server.db.migrations.v52.MoveProjectProfileAssociation; | |||
import java.util.List; | |||
public interface DatabaseMigrations { | |||
List<Class<? extends DatabaseMigration>> CLASSES = ImmutableList.of( | |||
// 3.6 | |||
ViolationMigration.class, | |||
// 4.2 | |||
PackageKeysMigration.class, CompleteIssueMessageMigration.class, | |||
// 4.3 | |||
ConvertIssueDebtToMinutesMigration.class, | |||
IssueChangelogMigration.class, | |||
TechnicalDebtMeasuresMigration.class, | |||
DevelopmentCostMeasuresMigration.class, | |||
RequirementMeasuresMigration.class, | |||
NotResolvedIssuesOnRemovedComponentsMigration.class, | |||
// 4.4 | |||
IssueActionPlanKeyMigration.class, | |||
MeasureDataMigration.class, | |||
FeedQProfileKeysMigration.class, | |||
FeedQProfileDatesMigration.class, | |||
ChangeLogMigration.class, | |||
ConvertProfileMeasuresMigration.class, | |||
// 4.5 | |||
AddMissingRuleParameterDefaultValuesMigration.class, | |||
DeleteMeasuresOnDeletedProfilesMigration.class, | |||
// 4.5.1 | |||
AddMissingCustomRuleParametersMigration.class, | |||
DeleteUnescapedActivities.class, | |||
// 5.0 | |||
InsertProjectsAuthorizationUpdatedAtMigration.class, | |||
PopulateProjectsUuidColumnsMigration.class, | |||
ReplaceIssueFiltersProjectKeyByUuid.class, | |||
FeedSnapshotSourcesUpdatedAt.class, | |||
FeedFileSources.class, | |||
FeedIssueLongDates.class, | |||
RemoveSortFieldFromIssueFiltersMigration.class, | |||
// 5.1 | |||
FeedIssueTags.class, | |||
FeedUsersLongDates.class, | |||
RenameComponentRelatedParamsInIssueFilters.class, | |||
CopyScmAccountsFromAuthorsToUsers.class, | |||
FeedIssueChangesLongDates.class, | |||
FeedAnalysisReportsLongDates.class, | |||
UpdateProjectsModuleUuidPath.class, | |||
FeedIssueComponentUuids.class, | |||
FeedSnapshotsLongDates.class, | |||
FeedIssuesLongDates.class, | |||
FeedFileSourcesBinaryData.class, | |||
FeedSemaphoresLongDates.class, | |||
FeedManualMeasuresLongDates.class, | |||
FeedEventsLongDates.class, | |||
AddNewCharacteristics.class, | |||
RemovePermissionsOnModulesMigration.class, | |||
AddIssuesColumns.class, | |||
DropIssuesColumns.class, | |||
// 5.2 | |||
FeedProjectLinksComponentUuid.class, | |||
FeedEventsComponentUuid.class, | |||
MoveProjectProfileAssociation.class | |||
); | |||
} |
@@ -19,18 +19,19 @@ | |||
*/ | |||
package org.sonar.server.db.migrations; | |||
import com.google.common.annotations.VisibleForTesting; | |||
import java.sql.Connection; | |||
import org.apache.commons.dbutils.DbUtils; | |||
import org.apache.ibatis.session.SqlSession; | |||
import org.picocontainer.Startable; | |||
import org.sonar.api.utils.log.Loggers; | |||
import org.sonar.api.ServerComponent; | |||
import org.sonar.api.platform.ServerUpgradeStatus; | |||
import org.sonar.api.utils.log.Loggers; | |||
import org.sonar.core.persistence.DdlUtils; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.plugins.ServerPluginRepository; | |||
import java.sql.Connection; | |||
import com.google.common.annotations.VisibleForTesting; | |||
/** | |||
* Restore schema by executing DDL scripts. Only H2 database is supported. | |||
@@ -41,14 +42,14 @@ import java.sql.Connection; | |||
public class DatabaseMigrator implements ServerComponent, Startable { | |||
private final DbClient dbClient; | |||
private final DatabaseMigration[] migrations; | |||
private final MigrationStep[] migrations; | |||
private final ServerUpgradeStatus serverUpgradeStatus; | |||
/** | |||
* ServerPluginRepository is used to ensure H2 schema creation is done only after copy of bundle plugins have been done | |||
*/ | |||
public DatabaseMigrator(DbClient dbClient, DatabaseMigration[] migrations, ServerUpgradeStatus serverUpgradeStatus, | |||
ServerPluginRepository serverPluginRepository) { | |||
public DatabaseMigrator(DbClient dbClient, MigrationStep[] migrations, ServerUpgradeStatus serverUpgradeStatus, | |||
ServerPluginRepository serverPluginRepository) { | |||
this.dbClient = dbClient; | |||
this.migrations = migrations; | |||
this.serverUpgradeStatus = serverUpgradeStatus; | |||
@@ -89,7 +90,7 @@ public class DatabaseMigrator implements ServerComponent, Startable { | |||
} | |||
public void executeMigration(String className) { | |||
DatabaseMigration migration = getMigration(className); | |||
MigrationStep migration = getMigration(className); | |||
try { | |||
migration.execute(); | |||
@@ -101,8 +102,8 @@ public class DatabaseMigrator implements ServerComponent, Startable { | |||
} | |||
} | |||
private DatabaseMigration getMigration(String className) { | |||
for (DatabaseMigration migration : migrations) { | |||
private MigrationStep getMigration(String className) { | |||
for (MigrationStep migration : migrations) { | |||
if (migration.getClass().getName().equals(className)) { | |||
return migration; | |||
} |
@@ -19,13 +19,13 @@ | |||
*/ | |||
package org.sonar.server.db.migrations; | |||
import org.apache.commons.dbutils.DbUtils; | |||
import org.sonar.core.persistence.Database; | |||
import java.sql.Connection; | |||
import java.sql.SQLException; | |||
public abstract class DdlChange implements DatabaseMigration { | |||
import org.apache.commons.dbutils.DbUtils; | |||
import org.sonar.core.persistence.Database; | |||
public abstract class DdlChange implements MigrationStep { | |||
private final Database db; | |||
@@ -19,7 +19,11 @@ | |||
*/ | |||
package org.sonar.server.db.migrations; | |||
import org.sonar.core.persistence.dialect.*; | |||
import org.sonar.core.persistence.dialect.Dialect; | |||
import org.sonar.core.persistence.dialect.MsSql; | |||
import org.sonar.core.persistence.dialect.MySql; | |||
import org.sonar.core.persistence.dialect.Oracle; | |||
import org.sonar.core.persistence.dialect.PostgreSql; | |||
public class DropColumnsBuilder { | |||
@@ -19,13 +19,13 @@ | |||
*/ | |||
package org.sonar.server.db.migrations; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.util.ProgressLogger; | |||
import java.sql.Connection; | |||
import java.sql.SQLException; | |||
import java.util.concurrent.atomic.AtomicLong; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.util.ProgressLogger; | |||
public class MassUpdate { | |||
public static interface Handler { |
@@ -22,10 +22,10 @@ package org.sonar.server.db.migrations; | |||
import java.sql.SQLException; | |||
/** | |||
* Java alternative of ActiveRecord::Migration. Do not forget to declare implementation classes in {@link DatabaseMigrations#CLASSES} | |||
* Java alternative of ActiveRecord::Migration. Do not forget to declare implementation classes in {@link MigrationSteps#CLASSES} | |||
* @since 3.7 | |||
*/ | |||
public interface DatabaseMigration { | |||
public interface MigrationStep { | |||
void execute() throws SQLException; | |||
@@ -0,0 +1,140 @@ | |||
/* | |||
* SonarQube, open source software quality management tool. | |||
* Copyright (C) 2008-2014 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. | |||
*/ | |||
package org.sonar.server.db.migrations; | |||
import com.google.common.collect.ImmutableList; | |||
import org.sonar.server.db.migrations.v36.ViolationMigrationStep; | |||
import org.sonar.server.db.migrations.v42.CompleteIssueMessageMigrationStep; | |||
import org.sonar.server.db.migrations.v42.PackageKeysMigrationStep; | |||
import org.sonar.server.db.migrations.v43.ConvertIssueDebtToMinutesMigrationStep; | |||
import org.sonar.server.db.migrations.v43.DevelopmentCostMeasuresMigrationStep; | |||
import org.sonar.server.db.migrations.v43.IssueChangelogMigrationStep; | |||
import org.sonar.server.db.migrations.v43.NotResolvedIssuesOnRemovedComponentsMigrationStep; | |||
import org.sonar.server.db.migrations.v43.RequirementMeasuresMigrationStep; | |||
import org.sonar.server.db.migrations.v43.TechnicalDebtMeasuresMigrationStep; | |||
import org.sonar.server.db.migrations.v44.ChangeLogMigrationStep; | |||
import org.sonar.server.db.migrations.v44.ConvertProfileMeasuresMigrationStep; | |||
import org.sonar.server.db.migrations.v44.FeedQProfileDatesMigrationStep; | |||
import org.sonar.server.db.migrations.v44.FeedQProfileKeysMigrationStep; | |||
import org.sonar.server.db.migrations.v44.IssueActionPlanKeyMigrationStep; | |||
import org.sonar.server.db.migrations.v44.MeasureDataMigrationStep; | |||
import org.sonar.server.db.migrations.v45.AddMissingRuleParameterDefaultValuesMigrationStep; | |||
import org.sonar.server.db.migrations.v45.DeleteMeasuresOnDeletedProfilesMigrationStep; | |||
import org.sonar.server.db.migrations.v451.AddMissingCustomRuleParametersMigrationStep; | |||
import org.sonar.server.db.migrations.v451.DeleteUnescapedActivities; | |||
import org.sonar.server.db.migrations.v50.FeedFileSources; | |||
import org.sonar.server.db.migrations.v50.FeedIssueLongDates; | |||
import org.sonar.server.db.migrations.v50.FeedSnapshotSourcesUpdatedAt; | |||
import org.sonar.server.db.migrations.v50.InsertProjectsAuthorizationUpdatedAtMigrationStep; | |||
import org.sonar.server.db.migrations.v50.PopulateProjectsUuidColumnsMigrationStep; | |||
import org.sonar.server.db.migrations.v50.RemoveSortFieldFromIssueFiltersMigrationStep; | |||
import org.sonar.server.db.migrations.v50.ReplaceIssueFiltersProjectKeyByUuid; | |||
import org.sonar.server.db.migrations.v51.AddIssuesColumns; | |||
import org.sonar.server.db.migrations.v51.AddNewCharacteristics; | |||
import org.sonar.server.db.migrations.v51.CopyScmAccountsFromAuthorsToUsers; | |||
import org.sonar.server.db.migrations.v51.DropIssuesColumns; | |||
import org.sonar.server.db.migrations.v51.FeedAnalysisReportsLongDates; | |||
import org.sonar.server.db.migrations.v51.FeedEventsLongDates; | |||
import org.sonar.server.db.migrations.v51.FeedFileSourcesBinaryData; | |||
import org.sonar.server.db.migrations.v51.FeedIssueChangesLongDates; | |||
import org.sonar.server.db.migrations.v51.FeedIssueComponentUuids; | |||
import org.sonar.server.db.migrations.v51.FeedIssueTags; | |||
import org.sonar.server.db.migrations.v51.FeedIssuesLongDates; | |||
import org.sonar.server.db.migrations.v51.FeedManualMeasuresLongDates; | |||
import org.sonar.server.db.migrations.v51.FeedSemaphoresLongDates; | |||
import org.sonar.server.db.migrations.v51.FeedSnapshotsLongDates; | |||
import org.sonar.server.db.migrations.v51.FeedUsersLongDates; | |||
import org.sonar.server.db.migrations.v51.RemovePermissionsOnModulesMigrationStep; | |||
import org.sonar.server.db.migrations.v51.RenameComponentRelatedParamsInIssueFilters; | |||
import org.sonar.server.db.migrations.v51.UpdateProjectsModuleUuidPath; | |||
import org.sonar.server.db.migrations.v52.FeedEventsComponentUuid; | |||
import org.sonar.server.db.migrations.v52.FeedProjectLinksComponentUuid; | |||
import org.sonar.server.db.migrations.v52.MoveProjectProfileAssociation; | |||
import java.util.List; | |||
public interface MigrationSteps { | |||
List<Class<? extends MigrationStep>> CLASSES = ImmutableList.of( | |||
// 3.6 | |||
ViolationMigrationStep.class, | |||
// 4.2 | |||
PackageKeysMigrationStep.class, CompleteIssueMessageMigrationStep.class, | |||
// 4.3 | |||
ConvertIssueDebtToMinutesMigrationStep.class, | |||
IssueChangelogMigrationStep.class, | |||
TechnicalDebtMeasuresMigrationStep.class, | |||
DevelopmentCostMeasuresMigrationStep.class, | |||
RequirementMeasuresMigrationStep.class, | |||
NotResolvedIssuesOnRemovedComponentsMigrationStep.class, | |||
// 4.4 | |||
IssueActionPlanKeyMigrationStep.class, | |||
MeasureDataMigrationStep.class, | |||
FeedQProfileKeysMigrationStep.class, | |||
FeedQProfileDatesMigrationStep.class, | |||
ChangeLogMigrationStep.class, | |||
ConvertProfileMeasuresMigrationStep.class, | |||
// 4.5 | |||
AddMissingRuleParameterDefaultValuesMigrationStep.class, | |||
DeleteMeasuresOnDeletedProfilesMigrationStep.class, | |||
// 4.5.1 | |||
AddMissingCustomRuleParametersMigrationStep.class, | |||
DeleteUnescapedActivities.class, | |||
// 5.0 | |||
InsertProjectsAuthorizationUpdatedAtMigrationStep.class, | |||
PopulateProjectsUuidColumnsMigrationStep.class, | |||
ReplaceIssueFiltersProjectKeyByUuid.class, | |||
FeedSnapshotSourcesUpdatedAt.class, | |||
FeedFileSources.class, | |||
FeedIssueLongDates.class, | |||
RemoveSortFieldFromIssueFiltersMigrationStep.class, | |||
// 5.1 | |||
FeedIssueTags.class, | |||
FeedUsersLongDates.class, | |||
RenameComponentRelatedParamsInIssueFilters.class, | |||
CopyScmAccountsFromAuthorsToUsers.class, | |||
FeedIssueChangesLongDates.class, | |||
FeedAnalysisReportsLongDates.class, | |||
UpdateProjectsModuleUuidPath.class, | |||
FeedIssueComponentUuids.class, | |||
FeedSnapshotsLongDates.class, | |||
FeedIssuesLongDates.class, | |||
FeedFileSourcesBinaryData.class, | |||
FeedSemaphoresLongDates.class, | |||
FeedManualMeasuresLongDates.class, | |||
FeedEventsLongDates.class, | |||
AddNewCharacteristics.class, | |||
RemovePermissionsOnModulesMigrationStep.class, | |||
AddIssuesColumns.class, | |||
DropIssuesColumns.class, | |||
// 5.2 | |||
FeedProjectLinksComponentUuid.class, | |||
FeedEventsComponentUuid.class, | |||
MoveProjectProfileAssociation.class | |||
); | |||
} |
@@ -19,8 +19,6 @@ | |||
*/ | |||
package org.sonar.server.db.migrations; | |||
import javax.annotation.CheckForNull; | |||
import java.sql.ResultSet; | |||
import java.sql.ResultSetMetaData; | |||
import java.sql.SQLException; | |||
@@ -28,6 +26,8 @@ import java.sql.Timestamp; | |||
import java.util.Date; | |||
import java.util.List; | |||
import javax.annotation.CheckForNull; | |||
public interface Select extends SqlStatement<Select> { | |||
static class Row { |
@@ -19,9 +19,6 @@ | |||
*/ | |||
package org.sonar.server.db.migrations; | |||
import org.apache.commons.dbutils.DbUtils; | |||
import org.sonar.core.persistence.Database; | |||
import java.sql.Connection; | |||
import java.sql.PreparedStatement; | |||
import java.sql.ResultSet; | |||
@@ -29,6 +26,9 @@ import java.sql.SQLException; | |||
import java.util.ArrayList; | |||
import java.util.List; | |||
import org.apache.commons.dbutils.DbUtils; | |||
import org.sonar.core.persistence.Database; | |||
class SelectImpl extends BaseSqlStatement<Select> implements Select { | |||
private SelectImpl(PreparedStatement pstmt) { |
@@ -19,11 +19,11 @@ | |||
*/ | |||
package org.sonar.server.db.migrations; | |||
import javax.annotation.Nullable; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import javax.annotation.Nullable; | |||
public interface SqlStatement<CHILD extends SqlStatement> { | |||
CHILD setBoolean(int columnIndex, @Nullable Boolean value) throws SQLException; | |||
@@ -19,16 +19,15 @@ | |||
*/ | |||
package org.sonar.server.db.migrations; | |||
import org.sonar.api.utils.log.Logger; | |||
import javax.annotation.CheckForNull; | |||
import java.sql.ResultSet; | |||
import java.sql.SQLException; | |||
import java.sql.Timestamp; | |||
import java.util.Date; | |||
import javax.annotation.CheckForNull; | |||
import org.sonar.api.utils.log.Logger; | |||
public class SqlUtil { | |||
private SqlUtil() { |
@@ -19,12 +19,12 @@ | |||
*/ | |||
package org.sonar.server.db.migrations; | |||
import org.sonar.core.persistence.BatchSession; | |||
import java.sql.Connection; | |||
import java.sql.PreparedStatement; | |||
import java.sql.SQLException; | |||
import org.sonar.core.persistence.BatchSession; | |||
public class UpsertImpl extends BaseSqlStatement<Upsert> implements Upsert { | |||
private long batchCount = 0L; |
@@ -19,13 +19,12 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v36; | |||
import java.util.TimerTask; | |||
import java.util.concurrent.atomic.AtomicLong; | |||
import org.sonar.api.utils.log.Logger; | |||
import org.sonar.api.utils.log.Loggers; | |||
import java.util.TimerTask; | |||
import java.util.concurrent.atomic.AtomicLong; | |||
/** | |||
* This task logs every minute the status of migration. It is destroyed | |||
* when migration is finished. | |||
@@ -64,7 +63,7 @@ class Progress extends TimerTask { | |||
long remaining = (totalViolations - totalIssues) / frequency; | |||
logger.info(String.format( | |||
"%d%% [%d/%d violations, %d minutes remaining]", percents, totalIssues, totalViolations, remaining) | |||
); | |||
); | |||
} else { | |||
logger.info(String.format("%d%% [%d/%d violations]", percents, totalIssues, totalViolations)); | |||
} |
@@ -19,14 +19,6 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v36; | |||
import com.google.common.collect.Maps; | |||
import org.apache.commons.dbutils.DbUtils; | |||
import org.apache.commons.dbutils.QueryRunner; | |||
import org.apache.commons.dbutils.ResultSetHandler; | |||
import org.sonar.core.persistence.Database; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
import java.sql.Connection; | |||
import java.sql.ResultSet; | |||
import java.sql.SQLException; | |||
@@ -35,6 +27,16 @@ import java.util.Map; | |||
import java.util.Queue; | |||
import java.util.concurrent.ConcurrentLinkedQueue; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
import org.apache.commons.dbutils.DbUtils; | |||
import org.apache.commons.dbutils.QueryRunner; | |||
import org.apache.commons.dbutils.ResultSetHandler; | |||
import org.sonar.core.persistence.Database; | |||
import com.google.common.collect.Maps; | |||
/** | |||
* Data loaded from database before migrating violations. It is | |||
* shared amongst converter parallel tasks. |
@@ -19,10 +19,14 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v36; | |||
import com.google.common.base.Objects; | |||
import com.google.common.collect.ImmutableMap; | |||
import com.google.common.collect.Lists; | |||
import com.google.common.collect.Maps; | |||
import java.sql.Connection; | |||
import java.sql.Date; | |||
import java.sql.ResultSet; | |||
import java.sql.SQLException; | |||
import java.util.List; | |||
import java.util.Map; | |||
import java.util.concurrent.Callable; | |||
import org.apache.commons.dbutils.DbUtils; | |||
import org.apache.commons.dbutils.QueryRunner; | |||
import org.apache.commons.dbutils.handlers.AbstractListHandler; | |||
@@ -31,13 +35,10 @@ import org.sonar.api.utils.internal.Uuids; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.SqlUtil; | |||
import java.sql.Connection; | |||
import java.sql.Date; | |||
import java.sql.ResultSet; | |||
import java.sql.SQLException; | |||
import java.util.List; | |||
import java.util.Map; | |||
import java.util.concurrent.Callable; | |||
import com.google.common.base.Objects; | |||
import com.google.common.collect.ImmutableMap; | |||
import com.google.common.collect.Lists; | |||
import com.google.common.collect.Maps; | |||
class ViolationConverter implements Callable<Object> { | |||
@@ -19,10 +19,6 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v36; | |||
import com.google.common.collect.Lists; | |||
import org.sonar.api.config.Settings; | |||
import org.sonar.core.persistence.Database; | |||
import java.util.List; | |||
import java.util.Timer; | |||
import java.util.TimerTask; | |||
@@ -31,6 +27,11 @@ import java.util.concurrent.ExecutorService; | |||
import java.util.concurrent.Executors; | |||
import java.util.concurrent.Future; | |||
import org.sonar.api.config.Settings; | |||
import org.sonar.core.persistence.Database; | |||
import com.google.common.collect.Lists; | |||
class ViolationConverters { | |||
static final int DEFAULT_THREADS = 5; |
@@ -19,30 +19,29 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v36; | |||
import java.sql.SQLException; | |||
import org.sonar.api.config.Settings; | |||
import org.sonar.api.utils.MessageException; | |||
import org.sonar.api.utils.log.Logger; | |||
import org.sonar.api.utils.log.Loggers; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import org.sonar.server.db.migrations.SqlUtil; | |||
import java.sql.SQLException; | |||
/** | |||
* Used in the Active Record Migration 401 | |||
*/ | |||
public class ViolationMigration implements DatabaseMigration { | |||
public class ViolationMigrationStep implements MigrationStep { | |||
private static final Logger LOGGER = Loggers.get(ViolationMigration.class); | |||
private static final Logger LOGGER = Loggers.get(ViolationMigrationStep.class); | |||
private static final String FAILURE_MESSAGE = "Fail to convert violations to issues"; | |||
private final Settings settings; | |||
private final Database db; | |||
public ViolationMigration(Database database, Settings settings) { | |||
public ViolationMigrationStep(Database database, Settings settings) { | |||
this.db = database; | |||
this.settings = settings; | |||
} |
@@ -19,22 +19,22 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v42; | |||
import java.sql.SQLException; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
/** | |||
* Used in Rails migration 497 | |||
* | |||
* @since 4.2 | |||
*/ | |||
public class CompleteIssueMessageMigration extends BaseDataChange { | |||
public class CompleteIssueMessageMigrationStep extends BaseDataChange { | |||
public CompleteIssueMessageMigration(Database database) { | |||
public CompleteIssueMessageMigrationStep(Database database) { | |||
super(database); | |||
} | |||
@@ -19,6 +19,11 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v42; | |||
import java.sql.SQLException; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
import org.apache.commons.lang.StringUtils; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
@@ -26,19 +31,14 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
import java.sql.SQLException; | |||
/** | |||
* Used in Rails migration 490 | |||
* | |||
* @since 4.2 | |||
*/ | |||
public class PackageKeysMigration extends BaseDataChange { | |||
public class PackageKeysMigrationStep extends BaseDataChange { | |||
public PackageKeysMigration(Database database) { | |||
public PackageKeysMigrationStep(Database database) { | |||
super(database); | |||
} | |||
@@ -20,6 +20,9 @@ | |||
package org.sonar.server.db.migrations.v43; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.core.properties.PropertiesDao; | |||
@@ -28,21 +31,18 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
/** | |||
* Used in the Active Record Migration 513. | |||
* WARNING - this migration is not re-entrant. | |||
* | |||
* @since 4.3 | |||
*/ | |||
public class ConvertIssueDebtToMinutesMigration extends BaseDataChange { | |||
public class ConvertIssueDebtToMinutesMigrationStep extends BaseDataChange { | |||
private final WorkDurationConvertor workDurationConvertor; | |||
private final System2 system2; | |||
public ConvertIssueDebtToMinutesMigration(Database database, PropertiesDao propertiesDao, System2 system2) { | |||
public ConvertIssueDebtToMinutesMigrationStep(Database database, PropertiesDao propertiesDao, System2 system2) { | |||
super(database); | |||
this.workDurationConvertor = new WorkDurationConvertor(propertiesDao); | |||
this.system2 = system2; |
@@ -20,6 +20,10 @@ | |||
package org.sonar.server.db.migrations.v43; | |||
import java.sql.SQLException; | |||
import javax.annotation.CheckForNull; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.core.properties.PropertiesDao; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
@@ -27,20 +31,16 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import javax.annotation.CheckForNull; | |||
import java.sql.SQLException; | |||
/** | |||
* Used in the Active Record Migration 516 | |||
* | |||
* @since 4.3 | |||
*/ | |||
public class DevelopmentCostMeasuresMigration extends BaseDataChange { | |||
public class DevelopmentCostMeasuresMigrationStep extends BaseDataChange { | |||
private final WorkDurationConvertor workDurationConvertor; | |||
public DevelopmentCostMeasuresMigration(Database database, PropertiesDao propertiesDao) { | |||
public DevelopmentCostMeasuresMigrationStep(Database database, PropertiesDao propertiesDao) { | |||
super(database); | |||
this.workDurationConvertor = new WorkDurationConvertor(propertiesDao); | |||
} |
@@ -20,8 +20,14 @@ | |||
package org.sonar.server.db.migrations.v43; | |||
import com.google.common.annotations.VisibleForTesting; | |||
import com.google.common.base.Strings; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import java.util.regex.Matcher; | |||
import java.util.regex.Pattern; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.core.properties.PropertiesDao; | |||
@@ -30,31 +36,26 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import java.util.regex.Matcher; | |||
import java.util.regex.Pattern; | |||
import com.google.common.annotations.VisibleForTesting; | |||
import com.google.common.base.Strings; | |||
/** | |||
* Used in the Active Record Migration 514 | |||
* | |||
* @since 4.3 | |||
*/ | |||
public class IssueChangelogMigration extends BaseDataChange { | |||
public class IssueChangelogMigrationStep extends BaseDataChange { | |||
private final WorkDurationConvertor workDurationConvertor; | |||
private final System2 system2; | |||
private final Pattern pattern = Pattern.compile("technicalDebt=(\\d*)\\|(\\d*)", Pattern.CASE_INSENSITIVE); | |||
public IssueChangelogMigration(Database database, System2 system2, PropertiesDao propertiesDao) { | |||
public IssueChangelogMigrationStep(Database database, System2 system2, PropertiesDao propertiesDao) { | |||
this(database, system2, new WorkDurationConvertor(propertiesDao)); | |||
} | |||
@VisibleForTesting | |||
IssueChangelogMigration(Database database, System2 system2, WorkDurationConvertor convertor) { | |||
IssueChangelogMigrationStep(Database database, System2 system2, WorkDurationConvertor convertor) { | |||
super(database); | |||
this.workDurationConvertor = convertor; | |||
this.system2 = system2; |
@@ -20,6 +20,9 @@ | |||
package org.sonar.server.db.migrations.v43; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import org.sonar.api.issue.Issue; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
@@ -28,19 +31,16 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
/** | |||
* Used in the Active Record Migration 525 | |||
* | |||
* @since 4.3 | |||
*/ | |||
public class NotResolvedIssuesOnRemovedComponentsMigration extends BaseDataChange { | |||
public class NotResolvedIssuesOnRemovedComponentsMigrationStep extends BaseDataChange { | |||
private final System2 system2; | |||
public NotResolvedIssuesOnRemovedComponentsMigration(Database database, System2 system2) { | |||
public NotResolvedIssuesOnRemovedComponentsMigrationStep(Database database, System2 system2) { | |||
super(database); | |||
this.system2 = system2; | |||
} |
@@ -20,22 +20,22 @@ | |||
package org.sonar.server.db.migrations.v43; | |||
import java.sql.SQLException; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
/** | |||
* Used in the Active Record Migration 521 | |||
* | |||
* @since 4.3 | |||
*/ | |||
public class RequirementMeasuresMigration extends BaseDataChange { | |||
public class RequirementMeasuresMigrationStep extends BaseDataChange { | |||
public RequirementMeasuresMigration(Database database) { | |||
public RequirementMeasuresMigrationStep(Database database) { | |||
super(database); | |||
} | |||
@@ -20,6 +20,12 @@ | |||
package org.sonar.server.db.migrations.v43; | |||
import java.sql.SQLException; | |||
import java.util.List; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
import org.apache.commons.lang.StringUtils; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.core.properties.PropertiesDao; | |||
@@ -28,22 +34,16 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
import java.sql.SQLException; | |||
import java.util.List; | |||
/** | |||
* Used in the Active Record Migration 515 | |||
* | |||
* @since 4.3 | |||
*/ | |||
public class TechnicalDebtMeasuresMigration extends BaseDataChange { | |||
public class TechnicalDebtMeasuresMigrationStep extends BaseDataChange { | |||
private final WorkDurationConvertor workDurationConvertor; | |||
public TechnicalDebtMeasuresMigration(Database database, PropertiesDao propertiesDao) { | |||
public TechnicalDebtMeasuresMigrationStep(Database database, PropertiesDao propertiesDao) { | |||
super(database); | |||
this.workDurationConvertor = new WorkDurationConvertor(propertiesDao); | |||
} |
@@ -78,7 +78,7 @@ class WorkDurationConvertor { | |||
} | |||
} | |||
private void checkHoursInDay(){ | |||
private void checkHoursInDay() { | |||
if (hoursInDay == null) { | |||
throw new IllegalStateException("init() has not been called"); | |||
} |
@@ -19,6 +19,10 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v44; | |||
import java.util.Date; | |||
import java.util.Iterator; | |||
import java.util.List; | |||
import org.apache.commons.lang.StringUtils; | |||
import org.sonar.api.rule.RuleKey; | |||
import org.sonar.api.utils.KeyValueFormat; | |||
@@ -32,13 +36,9 @@ import org.sonar.core.rule.SeverityUtil; | |||
import org.sonar.server.activity.Activity; | |||
import org.sonar.server.activity.db.ActivityDao; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import org.sonar.server.qualityprofile.ActiveRuleChange; | |||
import java.util.Date; | |||
import java.util.Iterator; | |||
import java.util.List; | |||
/** | |||
* SONAR-5329 | |||
* Transition ActiveRuleChanges to ActivityLog | |||
@@ -47,12 +47,12 @@ import java.util.List; | |||
* | |||
* @since 4.4 | |||
*/ | |||
public class ChangeLogMigration implements DatabaseMigration { | |||
public class ChangeLogMigrationStep implements MigrationStep { | |||
private final ActivityDao dao; | |||
private final DbClient db; | |||
public ChangeLogMigration(ActivityDao dao, DbClient db) { | |||
public ChangeLogMigrationStep(ActivityDao dao, DbClient db) { | |||
this.dao = dao; | |||
this.db = db; | |||
} |
@@ -20,6 +20,9 @@ | |||
package org.sonar.server.db.migrations.v44; | |||
import java.io.StringWriter; | |||
import java.util.Date; | |||
import org.apache.commons.lang.ObjectUtils; | |||
import org.sonar.api.utils.text.JsonWriter; | |||
import org.sonar.core.UtcDateUtils; | |||
@@ -28,21 +31,18 @@ import org.sonar.core.persistence.migration.v44.Migration44Mapper; | |||
import org.sonar.core.persistence.migration.v44.ProfileMeasure; | |||
import org.sonar.core.persistence.migration.v44.QProfileDto44; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import java.io.StringWriter; | |||
import java.util.Date; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
/** | |||
* Feed the new columns RULES_PROFILE.KEE and PARENT_KEE. | |||
* | |||
* @since 4.4 | |||
*/ | |||
public class ConvertProfileMeasuresMigration implements DatabaseMigration { | |||
public class ConvertProfileMeasuresMigrationStep implements MigrationStep { | |||
private final DbClient db; | |||
public ConvertProfileMeasuresMigration(DbClient db) { | |||
public ConvertProfileMeasuresMigrationStep(DbClient db) { | |||
this.db = db; | |||
} | |||
@@ -60,7 +60,7 @@ public class ConvertProfileMeasuresMigration implements DatabaseMigration { | |||
if (profile != null) { | |||
Date date = now; | |||
if (version != null) { | |||
date = (Date)ObjectUtils.defaultIfNull( | |||
date = (Date) ObjectUtils.defaultIfNull( | |||
mapper.selectProfileVersionDate(profileMeasure.getProfileId(), version), now); | |||
} | |||
// see format of JSON in org.sonar.batch.rule.UsedQProfiles |
@@ -20,6 +20,8 @@ | |||
package org.sonar.server.db.migrations.v44; | |||
import java.util.Date; | |||
import org.apache.commons.lang.ObjectUtils; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.UtcDateUtils; | |||
@@ -27,21 +29,19 @@ import org.sonar.core.persistence.DbSession; | |||
import org.sonar.core.persistence.migration.v44.Migration44Mapper; | |||
import org.sonar.core.persistence.migration.v44.QProfileDto44; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import java.util.Date; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
/** | |||
* Feed the new columns RULES_PROFILES.CREATED_AT and UPDATED_AT | |||
* | |||
* @since 4.4 | |||
*/ | |||
public class FeedQProfileDatesMigration implements DatabaseMigration { | |||
public class FeedQProfileDatesMigrationStep implements MigrationStep { | |||
private final DbClient db; | |||
private final System2 system; | |||
public FeedQProfileDatesMigration(DbClient db, System2 system) { | |||
public FeedQProfileDatesMigrationStep(DbClient db, System2 system) { | |||
this.db = db; | |||
this.system = system; | |||
} |
@@ -20,6 +20,8 @@ | |||
package org.sonar.server.db.migrations.v44; | |||
import java.sql.SQLException; | |||
import org.apache.commons.lang.RandomStringUtils; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
@@ -28,16 +30,14 @@ import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import org.sonar.server.util.Slug; | |||
import java.sql.SQLException; | |||
/** | |||
* Feed the new columns RULES_PROFILES.KEE and PARENT_KEE. | |||
* | |||
* @since 4.4 | |||
*/ | |||
public class FeedQProfileKeysMigration extends BaseDataChange { | |||
public class FeedQProfileKeysMigrationStep extends BaseDataChange { | |||
public FeedQProfileKeysMigration(Database db) { | |||
public FeedQProfileKeysMigrationStep(Database db) { | |||
super(db); | |||
} | |||
@@ -20,6 +20,9 @@ | |||
package org.sonar.server.db.migrations.v44; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
@@ -27,9 +30,6 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
/** | |||
* SONAR-5218 | |||
* Update all issues having action plan linked on removed action plan. | |||
@@ -38,11 +38,11 @@ import java.util.Date; | |||
* | |||
* @since 4.4 | |||
*/ | |||
public class IssueActionPlanKeyMigration extends BaseDataChange { | |||
public class IssueActionPlanKeyMigrationStep extends BaseDataChange { | |||
private final System2 system2; | |||
public IssueActionPlanKeyMigration(Database database, System2 system2) { | |||
public IssueActionPlanKeyMigrationStep(Database database, System2 system2) { | |||
super(database); | |||
this.system2 = system2; | |||
} |
@@ -20,14 +20,14 @@ | |||
package org.sonar.server.db.migrations.v44; | |||
import java.sql.SQLException; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
/** | |||
* SONAR-5249 | |||
* Merge measure data table into project_measure | |||
@@ -35,9 +35,9 @@ import java.sql.SQLException; | |||
* Used in the Active Record Migration 530. | |||
* @since 4.4 | |||
*/ | |||
public class MeasureDataMigration extends BaseDataChange { | |||
public class MeasureDataMigrationStep extends BaseDataChange { | |||
public MeasureDataMigration(Database database) { | |||
public MeasureDataMigrationStep(Database database) { | |||
super(database); | |||
} | |||
@@ -19,26 +19,26 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v45; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import java.util.List; | |||
import javax.annotation.Nullable; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.Upsert; | |||
import javax.annotation.Nullable; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import java.util.List; | |||
/** | |||
* SONAR-5446 | |||
*/ | |||
public class AddMissingRuleParameterDefaultValuesMigration extends BaseDataChange { | |||
public class AddMissingRuleParameterDefaultValuesMigrationStep extends BaseDataChange { | |||
private final System2 system; | |||
public AddMissingRuleParameterDefaultValuesMigration(Database db, System2 system) { | |||
public AddMissingRuleParameterDefaultValuesMigrationStep(Database db, System2 system) { | |||
super(db); | |||
this.system = system; | |||
} |
@@ -23,22 +23,23 @@ package org.sonar.server.db.migrations.v45; | |||
import org.sonar.core.persistence.DbSession; | |||
import org.sonar.core.persistence.migration.v44.Migration44Mapper; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import org.sonar.server.db.migrations.v44.ConvertProfileMeasuresMigrationStep; | |||
/** | |||
* See http://jira.codehaus.org/browse/SONAR-5580 | |||
* {@link org.sonar.server.db.migrations.v44.ConvertProfileMeasuresMigration} | |||
* {@link ConvertProfileMeasuresMigrationStep} | |||
* introduced a regression in 4.4. Measures on orphan profiles were kept | |||
* in old format (no JSON data but numeric value of profile id) | |||
* | |||
* @see org.sonar.server.db.migrations.v44.ConvertProfileMeasuresMigration | |||
* @see ConvertProfileMeasuresMigrationStep | |||
* @since 4.5 | |||
*/ | |||
public class DeleteMeasuresOnDeletedProfilesMigration implements DatabaseMigration { | |||
public class DeleteMeasuresOnDeletedProfilesMigrationStep implements MigrationStep { | |||
private final DbClient db; | |||
public DeleteMeasuresOnDeletedProfilesMigration(DbClient db) { | |||
public DeleteMeasuresOnDeletedProfilesMigrationStep(DbClient db) { | |||
this.db = db; | |||
} | |||
@@ -19,26 +19,27 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v451; | |||
import com.google.common.base.Predicate; | |||
import com.google.common.collect.ArrayListMultimap; | |||
import com.google.common.collect.HashMultimap; | |||
import com.google.common.collect.Iterables; | |||
import com.google.common.collect.Multimap; | |||
import java.util.Collection; | |||
import java.util.Date; | |||
import java.util.List; | |||
import java.util.concurrent.atomic.AtomicLong; | |||
import javax.annotation.Nullable; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.DbSession; | |||
import org.sonar.core.persistence.migration.v45.Migration45Mapper; | |||
import org.sonar.core.persistence.migration.v45.Rule; | |||
import org.sonar.core.persistence.migration.v45.RuleParameter; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import org.sonar.server.util.ProgressLogger; | |||
import javax.annotation.Nullable; | |||
import java.util.Collection; | |||
import java.util.Date; | |||
import java.util.List; | |||
import java.util.concurrent.atomic.AtomicLong; | |||
import com.google.common.base.Predicate; | |||
import com.google.common.collect.ArrayListMultimap; | |||
import com.google.common.collect.HashMultimap; | |||
import com.google.common.collect.Iterables; | |||
import com.google.common.collect.Multimap; | |||
/** | |||
* See http://jira.codehaus.org/browse/SONAR-5575 | |||
@@ -47,13 +48,13 @@ import java.util.concurrent.atomic.AtomicLong; | |||
* | |||
* @since 4.5.1 | |||
*/ | |||
public class AddMissingCustomRuleParametersMigration implements DatabaseMigration { | |||
public class AddMissingCustomRuleParametersMigrationStep implements MigrationStep { | |||
private final DbClient db; | |||
private final System2 system; | |||
private final AtomicLong counter = new AtomicLong(0L); | |||
public AddMissingCustomRuleParametersMigration(DbClient db, System2 system) { | |||
public AddMissingCustomRuleParametersMigrationStep(DbClient db, System2 system) { | |||
this.db = db; | |||
this.system = system; | |||
} |
@@ -19,6 +19,10 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v451; | |||
import java.sql.SQLException; | |||
import javax.annotation.Nullable; | |||
import org.apache.commons.lang.StringUtils; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
@@ -26,10 +30,6 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import javax.annotation.Nullable; | |||
import java.sql.SQLException; | |||
/** | |||
* See http://jira.codehaus.org/browse/SONAR-5758 | |||
* |
@@ -19,6 +19,13 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v50; | |||
import static com.google.common.base.Charsets.UTF_8; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import javax.annotation.Nullable; | |||
import org.apache.commons.lang.StringUtils; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
@@ -28,13 +35,6 @@ import org.sonar.server.db.migrations.Select.Row; | |||
import org.sonar.server.db.migrations.Select.RowReader; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import javax.annotation.Nullable; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import static com.google.common.base.Charsets.UTF_8; | |||
/** | |||
* Used in the Active Record Migration 714 | |||
* |
@@ -19,6 +19,9 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v50; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
@@ -26,9 +29,6 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
public class FeedIssueLongDates extends BaseDataChange { | |||
private final System2 system; |
@@ -20,14 +20,14 @@ | |||
package org.sonar.server.db.migrations.v50; | |||
import java.sql.SQLException; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
/** | |||
* Used in the Active Record Migration 712 | |||
* |
@@ -19,8 +19,20 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v50; | |||
import com.google.common.base.Splitter; | |||
import com.google.common.collect.ImmutableList; | |||
import static com.google.common.base.Charsets.UTF_8; | |||
import java.io.ByteArrayOutputStream; | |||
import java.io.OutputStreamWriter; | |||
import java.io.StringReader; | |||
import java.util.Collections; | |||
import java.util.HashMap; | |||
import java.util.Iterator; | |||
import java.util.List; | |||
import java.util.Map; | |||
import javax.xml.stream.XMLInputFactory; | |||
import javax.xml.stream.XMLStreamException; | |||
import org.apache.commons.codec.digest.DigestUtils; | |||
import org.apache.commons.lang.StringUtils; | |||
import org.codehaus.stax2.XMLInputFactory2; | |||
@@ -31,15 +43,8 @@ import org.sonar.api.measures.CoreMetrics; | |||
import org.sonar.api.utils.KeyValueFormat; | |||
import org.sonar.api.utils.text.CsvWriter; | |||
import javax.xml.stream.XMLInputFactory; | |||
import javax.xml.stream.XMLStreamException; | |||
import java.io.ByteArrayOutputStream; | |||
import java.io.OutputStreamWriter; | |||
import java.io.StringReader; | |||
import java.util.*; | |||
import static com.google.common.base.Charsets.UTF_8; | |||
import com.google.common.base.Splitter; | |||
import com.google.common.collect.ImmutableList; | |||
class FileSourceDto { | |||
@@ -20,6 +20,8 @@ | |||
package org.sonar.server.db.migrations.v50; | |||
import java.sql.SQLException; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
@@ -27,18 +29,16 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
/** | |||
* Used in the Active Record Migration 716 | |||
* | |||
* @since 5.0 | |||
*/ | |||
public class InsertProjectsAuthorizationUpdatedAtMigration extends BaseDataChange { | |||
public class InsertProjectsAuthorizationUpdatedAtMigrationStep extends BaseDataChange { | |||
private final System2 system; | |||
public InsertProjectsAuthorizationUpdatedAtMigration(Database db, System2 system) { | |||
public InsertProjectsAuthorizationUpdatedAtMigrationStep(Database db, System2 system) { | |||
super(db); | |||
this.system = system; | |||
} |
@@ -20,8 +20,13 @@ | |||
package org.sonar.server.db.migrations.v50; | |||
import com.google.common.base.Splitter; | |||
import com.google.common.base.Strings; | |||
import static com.google.common.collect.Lists.newArrayList; | |||
import static com.google.common.collect.Maps.newHashMap; | |||
import java.util.List; | |||
import java.util.Map; | |||
import java.util.concurrent.atomic.AtomicLong; | |||
import org.apache.ibatis.session.ResultContext; | |||
import org.apache.ibatis.session.ResultHandler; | |||
import org.sonar.api.resources.Scopes; | |||
@@ -30,27 +35,23 @@ import org.sonar.core.persistence.DbSession; | |||
import org.sonar.core.persistence.migration.v50.Component; | |||
import org.sonar.core.persistence.migration.v50.Migration50Mapper; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import org.sonar.server.util.ProgressLogger; | |||
import java.util.List; | |||
import java.util.Map; | |||
import java.util.concurrent.atomic.AtomicLong; | |||
import static com.google.common.collect.Lists.newArrayList; | |||
import static com.google.common.collect.Maps.newHashMap; | |||
import com.google.common.base.Splitter; | |||
import com.google.common.base.Strings; | |||
/** | |||
* Used in the Active Record Migration 705 | |||
* | |||
* @since 5.0 | |||
*/ | |||
public class PopulateProjectsUuidColumnsMigration implements DatabaseMigration { | |||
public class PopulateProjectsUuidColumnsMigrationStep implements MigrationStep { | |||
private final DbClient db; | |||
private final AtomicLong counter = new AtomicLong(0L); | |||
public PopulateProjectsUuidColumnsMigration(DbClient db) { | |||
public PopulateProjectsUuidColumnsMigrationStep(DbClient db) { | |||
this.db = db; | |||
} | |||
@@ -19,7 +19,10 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v50; | |||
import com.google.common.collect.Lists; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import java.util.List; | |||
import org.apache.commons.lang.StringUtils; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
@@ -28,13 +31,11 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import java.util.List; | |||
import com.google.common.collect.Lists; | |||
// TODO could be refactored to benefit from existing code of ReplaceIssueFiltersProjectKeyByUuid | |||
// -> make any change of issue_filters easier | |||
public class RemoveSortFieldFromIssueFiltersMigration extends BaseDataChange { | |||
public class RemoveSortFieldFromIssueFiltersMigrationStep extends BaseDataChange { | |||
private static final char FIELD_SEPARATOR = '|'; | |||
private static final String SORT_KEY = "sort="; | |||
@@ -42,7 +43,7 @@ public class RemoveSortFieldFromIssueFiltersMigration extends BaseDataChange { | |||
private final System2 system; | |||
public RemoveSortFieldFromIssueFiltersMigration(Database db, System2 system) { | |||
public RemoveSortFieldFromIssueFiltersMigrationStep(Database db, System2 system) { | |||
super(db); | |||
this.system = system; | |||
} | |||
@@ -50,7 +51,7 @@ public class RemoveSortFieldFromIssueFiltersMigration extends BaseDataChange { | |||
@Override | |||
public void execute(Context context) throws SQLException { | |||
MassUpdate massUpdate = context.prepareMassUpdate(); | |||
massUpdate.select("select id,data from issue_filters where data like '%" + SORT_KEY + "%' or data like '%" + ASC_KEY +"%'"); | |||
massUpdate.select("select id,data from issue_filters where data like '%" + SORT_KEY + "%' or data like '%" + ASC_KEY + "%'"); | |||
massUpdate.update("update issue_filters set data=?, updated_at=? where id=?"); | |||
massUpdate.rowPluralName("issue filters"); | |||
massUpdate.execute(new FilterHandler(new Date(system.now()))); |
@@ -20,19 +20,23 @@ | |||
package org.sonar.server.db.migrations.v50; | |||
import org.apache.commons.dbutils.DbUtils; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.*; | |||
import javax.annotation.Nullable; | |||
import java.sql.Connection; | |||
import java.sql.PreparedStatement; | |||
import java.sql.ResultSet; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import javax.annotation.Nullable; | |||
import org.apache.commons.dbutils.DbUtils; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import org.sonar.server.db.migrations.SqlUtil; | |||
/** | |||
* Used in the Active Record Migration 710 | |||
* | |||
@@ -84,7 +88,7 @@ public class ReplaceIssueFiltersProjectKeyByUuid extends BaseDataChange { | |||
private String convertData(PreparedStatement pstmt, String data) throws SQLException { | |||
StringBuilder newFields = new StringBuilder(); | |||
String[] fields = data.split("\\|"); | |||
for (int i=0; i<fields.length; i++) { | |||
for (int i = 0; i < fields.length; i++) { | |||
String field = fields[i]; | |||
if (field.contains("componentRoots")) { | |||
String[] componentRootValues = field.split("="); |
@@ -20,12 +20,12 @@ | |||
package org.sonar.server.db.migrations.v51; | |||
import java.sql.SQLException; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.AddColumnsBuilder; | |||
import org.sonar.server.db.migrations.DdlChange; | |||
import java.sql.SQLException; | |||
/** | |||
* Add the following columns to the issues table : | |||
* - issue_creation_date_ms |
@@ -19,8 +19,13 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v51; | |||
import com.google.common.base.Predicate; | |||
import com.google.common.collect.Iterables; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import java.util.List; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
import org.slf4j.Logger; | |||
import org.slf4j.LoggerFactory; | |||
import org.sonar.api.utils.MessageException; | |||
@@ -29,12 +34,8 @@ import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
import org.sonar.server.db.migrations.Select; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import java.util.List; | |||
import com.google.common.base.Predicate; | |||
import com.google.common.collect.Iterables; | |||
/** | |||
* See http://jira.codehaus.org/browse/SONAR-6187 |
@@ -20,9 +20,15 @@ | |||
package org.sonar.server.db.migrations.v51; | |||
import com.google.common.base.Joiner; | |||
import com.google.common.collect.ArrayListMultimap; | |||
import com.google.common.collect.Multimap; | |||
import static com.google.common.collect.Lists.newArrayList; | |||
import java.sql.SQLException; | |||
import java.util.Collection; | |||
import java.util.List; | |||
import java.util.concurrent.atomic.AtomicLong; | |||
import javax.annotation.CheckForNull; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
@@ -31,14 +37,9 @@ import org.sonar.server.db.migrations.Upsert; | |||
import org.sonar.server.db.migrations.UpsertImpl; | |||
import org.sonar.server.util.ProgressLogger; | |||
import javax.annotation.CheckForNull; | |||
import java.sql.SQLException; | |||
import java.util.Collection; | |||
import java.util.List; | |||
import java.util.concurrent.atomic.AtomicLong; | |||
import static com.google.common.collect.Lists.newArrayList; | |||
import com.google.common.base.Joiner; | |||
import com.google.common.collect.ArrayListMultimap; | |||
import com.google.common.collect.Multimap; | |||
public class CopyScmAccountsFromAuthorsToUsers extends BaseDataChange { | |||
@@ -20,12 +20,13 @@ | |||
package org.sonar.server.db.migrations.v51; | |||
import com.google.common.annotations.VisibleForTesting; | |||
import java.sql.SQLException; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.DdlChange; | |||
import org.sonar.server.db.migrations.DropColumnsBuilder; | |||
import java.sql.SQLException; | |||
import com.google.common.annotations.VisibleForTesting; | |||
/** | |||
* Drop the following columns from the issues table : |
@@ -20,6 +20,9 @@ | |||
package org.sonar.server.db.migrations.v51; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
@@ -27,9 +30,6 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
public class FeedAnalysisReportsLongDates extends BaseDataChange { | |||
private final System2 system; |
@@ -20,6 +20,9 @@ | |||
package org.sonar.server.db.migrations.v51; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
@@ -27,9 +30,6 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
public class FeedEventsLongDates extends BaseDataChange { | |||
private final System2 system2; |
@@ -19,9 +19,12 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v51; | |||
import com.google.common.base.Function; | |||
import com.google.common.base.Splitter; | |||
import com.google.common.collect.Iterables; | |||
import java.sql.SQLException; | |||
import java.util.Iterator; | |||
import javax.annotation.Nonnull; | |||
import javax.annotation.Nullable; | |||
import org.apache.commons.csv.CSVFormat; | |||
import org.apache.commons.csv.CSVParser; | |||
import org.apache.commons.csv.CSVRecord; | |||
@@ -36,11 +39,9 @@ import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import org.sonar.server.source.db.FileSourceDb; | |||
import javax.annotation.Nonnull; | |||
import javax.annotation.Nullable; | |||
import java.sql.SQLException; | |||
import java.util.Iterator; | |||
import com.google.common.base.Function; | |||
import com.google.common.base.Splitter; | |||
import com.google.common.collect.Iterables; | |||
public class FeedFileSourcesBinaryData extends BaseDataChange { | |||
@@ -20,6 +20,9 @@ | |||
package org.sonar.server.db.migrations.v51; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
@@ -27,9 +30,6 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
public class FeedIssueChangesLongDates extends BaseDataChange { | |||
private final System2 system; |
@@ -20,6 +20,8 @@ | |||
package org.sonar.server.db.migrations.v51; | |||
import java.sql.SQLException; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
import org.sonar.server.db.migrations.MassUpdate; | |||
@@ -27,8 +29,6 @@ import org.sonar.server.db.migrations.MassUpdate.Handler; | |||
import org.sonar.server.db.migrations.Select.Row; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
public class FeedIssueComponentUuids extends BaseDataChange { | |||
public FeedIssueComponentUuids(Database db) { |
@@ -19,8 +19,9 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v51; | |||
import com.google.common.base.Joiner; | |||
import com.google.common.collect.Maps; | |||
import java.sql.SQLException; | |||
import java.util.Map; | |||
import org.apache.commons.lang.StringUtils; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
@@ -31,9 +32,8 @@ import org.sonar.server.db.migrations.Select.Row; | |||
import org.sonar.server.db.migrations.Select.RowHandler; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
import java.util.Map; | |||
import com.google.common.base.Joiner; | |||
import com.google.common.collect.Maps; | |||
/** | |||
* SONAR-5897 |
@@ -20,6 +20,9 @@ | |||
package org.sonar.server.db.migrations.v51; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
@@ -27,9 +30,6 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
public class FeedIssuesLongDates extends BaseDataChange { | |||
private final System2 system2; |
@@ -20,6 +20,9 @@ | |||
package org.sonar.server.db.migrations.v51; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
@@ -27,9 +30,6 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
public class FeedManualMeasuresLongDates extends BaseDataChange { | |||
private final System2 system2; |
@@ -20,6 +20,9 @@ | |||
package org.sonar.server.db.migrations.v51; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
@@ -27,9 +30,6 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
public class FeedSemaphoresLongDates extends BaseDataChange { | |||
private final System2 system2; |
@@ -20,6 +20,9 @@ | |||
package org.sonar.server.db.migrations.v51; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
@@ -27,9 +30,6 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
public class FeedSnapshotsLongDates extends BaseDataChange { | |||
private final System2 system2; |
@@ -19,6 +19,9 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v51; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
@@ -26,9 +29,6 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
public class FeedUsersLongDates extends BaseDataChange { | |||
private final System2 system; |
@@ -20,14 +20,14 @@ | |||
package org.sonar.server.db.migrations.v51; | |||
import java.sql.SQLException; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
/** | |||
* See http://jira.codehaus.org/browse/SONAR-5596 | |||
* | |||
@@ -36,9 +36,9 @@ import java.sql.SQLException; | |||
* | |||
* @since 5.1 | |||
*/ | |||
public class RemovePermissionsOnModulesMigration extends BaseDataChange { | |||
public class RemovePermissionsOnModulesMigrationStep extends BaseDataChange { | |||
public RemovePermissionsOnModulesMigration(Database db) { | |||
public RemovePermissionsOnModulesMigrationStep(Database db) { | |||
super(db); | |||
} | |||
@@ -19,7 +19,10 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v51; | |||
import com.google.common.collect.Lists; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import java.util.List; | |||
import org.apache.commons.lang.StringUtils; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.Database; | |||
@@ -28,9 +31,7 @@ import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
import java.util.Date; | |||
import java.util.List; | |||
import com.google.common.collect.Lists; | |||
public class RenameComponentRelatedParamsInIssueFilters extends BaseDataChange { | |||
@@ -20,6 +20,10 @@ | |||
package org.sonar.server.db.migrations.v51; | |||
import java.sql.SQLException; | |||
import javax.annotation.Nullable; | |||
import org.apache.commons.lang.StringUtils; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
@@ -28,10 +32,6 @@ import org.sonar.server.db.migrations.MassUpdate.Handler; | |||
import org.sonar.server.db.migrations.Select.Row; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import javax.annotation.Nullable; | |||
import java.sql.SQLException; | |||
/** | |||
* SONAR-6054 | |||
* SONAR-6119 |
@@ -20,14 +20,14 @@ | |||
package org.sonar.server.db.migrations.v52; | |||
import java.sql.SQLException; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
public class FeedEventsComponentUuid extends BaseDataChange { | |||
public FeedEventsComponentUuid(Database db) { |
@@ -20,6 +20,8 @@ | |||
package org.sonar.server.db.migrations.v52; | |||
import java.sql.SQLException; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
import org.sonar.server.db.migrations.MassUpdate; | |||
@@ -27,8 +29,6 @@ import org.sonar.server.db.migrations.MassUpdate.Handler; | |||
import org.sonar.server.db.migrations.Select.Row; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import java.sql.SQLException; | |||
public class FeedProjectLinksComponentUuid extends BaseDataChange { | |||
public FeedProjectLinksComponentUuid(Database db) { |
@@ -19,17 +19,22 @@ | |||
*/ | |||
package org.sonar.server.db.migrations.v52; | |||
import com.google.common.collect.HashBasedTable; | |||
import com.google.common.collect.Table; | |||
import java.sql.SQLException; | |||
import org.sonar.api.utils.log.Logger; | |||
import org.sonar.api.utils.log.Loggers; | |||
import org.sonar.core.persistence.Database; | |||
import org.sonar.server.db.migrations.*; | |||
import org.sonar.server.db.migrations.BaseDataChange; | |||
import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.MassUpdate.Handler; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.Select.Row; | |||
import org.sonar.server.db.migrations.Select.RowReader; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import org.sonar.server.db.migrations.Upsert; | |||
import java.sql.SQLException; | |||
import com.google.common.collect.HashBasedTable; | |||
import com.google.common.collect.Table; | |||
/** | |||
* SonarQube 5.2 | |||
@@ -56,7 +61,7 @@ public class MoveProjectProfileAssociation extends BaseDataChange { | |||
String profileName = row.getString(3); | |||
Long projectId = row.getNullableLong(4); | |||
String projectUuid = row.getString(5); | |||
if (profileKeysByLanguageThenName.contains(profileLanguage, profileName)) { | |||
String profileKey = profileKeysByLanguageThenName.get(profileLanguage, profileName); | |||
@@ -103,7 +103,7 @@ import org.sonar.server.dashboard.ws.DashboardsWebService; | |||
import org.sonar.server.db.DatabaseChecker; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.EmbeddedDatabaseFactory; | |||
import org.sonar.server.db.migrations.DatabaseMigrations; | |||
import org.sonar.server.db.migrations.MigrationSteps; | |||
import org.sonar.server.db.migrations.DatabaseMigrator; | |||
import org.sonar.server.debt.*; | |||
import org.sonar.server.design.FileDesignWidget; | |||
@@ -303,7 +303,7 @@ class ServerComponents { | |||
FileSourceDao.class | |||
)); | |||
components.addAll(CorePropertyDefinitions.all()); | |||
components.addAll(DatabaseMigrations.CLASSES); | |||
components.addAll(MigrationSteps.CLASSES); | |||
components.addAll(DaoUtils.getDaoClasses()); | |||
return components; | |||
} |
@@ -47,7 +47,7 @@ public class DatabaseMigratorTest extends AbstractDaoTestCase { | |||
public ExpectedException thrown = ExpectedException.none(); | |||
DbClient dbClient = mock(DbClient.class, Mockito.RETURNS_DEEP_STUBS); | |||
DatabaseMigration[] migrations = new DatabaseMigration[]{new FakeMigration()}; | |||
MigrationStep[] migrations = new MigrationStep[]{new FakeMigrationStep()}; | |||
ServerUpgradeStatus serverUpgradeStatus = mock(ServerUpgradeStatus.class); | |||
DatabaseMigrator migrator; | |||
@@ -74,9 +74,9 @@ public class DatabaseMigratorTest extends AbstractDaoTestCase { | |||
@Test | |||
public void execute_migration() throws Exception { | |||
assertThat(FakeMigration.executed).isFalse(); | |||
migrator.executeMigration(FakeMigration.class.getName()); | |||
assertThat(FakeMigration.executed).isTrue(); | |||
assertThat(FakeMigrationStep.executed).isFalse(); | |||
migrator.executeMigration(FakeMigrationStep.class.getName()); | |||
assertThat(FakeMigrationStep.executed).isTrue(); | |||
} | |||
@Test | |||
@@ -98,7 +98,7 @@ public class DatabaseMigratorTest extends AbstractDaoTestCase { | |||
assertThat(databaseMigrator.createDatabase()).isTrue(); | |||
} | |||
public static class FakeMigration implements DatabaseMigration { | |||
public static class FakeMigrationStep implements MigrationStep { | |||
static boolean executed = false; | |||
@Override |
@@ -24,10 +24,10 @@ import org.junit.Test; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
public class DatabaseMigrationsTest { | |||
public class MigrationStepsTest { | |||
@Test | |||
public void check_number_of_migrations() throws Exception { | |||
assertThat(DatabaseMigrations.CLASSES).isNotEmpty(); | |||
assertThat(MigrationSteps.CLASSES).isNotEmpty(); | |||
} | |||
} |
@@ -35,7 +35,7 @@ public class ViolationMigrationTest { | |||
public void migrate_violations() throws Exception { | |||
db.prepareDbUnit(getClass(), "migrate_violations.xml"); | |||
new ViolationMigration(db.database(), new Settings()).execute(); | |||
new ViolationMigrationStep(db.database(), new Settings()).execute(); | |||
db.assertDbUnit(getClass(), "migrate_violations_result.xml", "issues", "issue_changes"); | |||
assertMigrationEnded(); | |||
@@ -45,7 +45,7 @@ public class ViolationMigrationTest { | |||
public void no_violations_to_migrate() throws Exception { | |||
db.prepareDbUnit(getClass(), "no_violations_to_migrate.xml"); | |||
new ViolationMigration(db.database(), new Settings()).execute(); | |||
new ViolationMigrationStep(db.database(), new Settings()).execute(); | |||
db.assertDbUnit(getClass(), "no_violations_to_migrate_result.xml", "issues", "issue_changes"); | |||
assertMigrationEnded(); |
@@ -22,14 +22,14 @@ package org.sonar.server.db.migrations.v42; | |||
import org.junit.ClassRule; | |||
import org.junit.Test; | |||
import org.sonar.core.persistence.DbTester; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
public class CompleteIssueMessageMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(CompleteIssueMessageMigrationTest.class, "schema.sql"); | |||
DatabaseMigration migration = new CompleteIssueMessageMigration(db.database()); | |||
MigrationStep migration = new CompleteIssueMessageMigrationStep(db.database()); | |||
@Test | |||
public void execute() throws Exception { |
@@ -22,14 +22,14 @@ package org.sonar.server.db.migrations.v42; | |||
import org.junit.ClassRule; | |||
import org.junit.Test; | |||
import org.sonar.core.persistence.DbTester; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
public class PackageKeysMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(PackageKeysMigrationTest.class, "schema.sql"); | |||
DatabaseMigration migration = new PackageKeysMigration(db.database()); | |||
MigrationStep migration = new PackageKeysMigrationStep(db.database()); | |||
@Test | |||
public void execute() throws Exception { |
@@ -50,14 +50,14 @@ public class ConvertIssueDebtToMinutesMigrationTest { | |||
@Mock | |||
PropertiesDao propertiesDao; | |||
ConvertIssueDebtToMinutesMigration migration; | |||
ConvertIssueDebtToMinutesMigrationStep migration; | |||
@Before | |||
public void setUp() throws Exception { | |||
when(system2.now()).thenReturn(DateUtils.parseDateTime("2014-02-19T19:10:03+0100").getTime()); | |||
when(propertiesDao.selectGlobalProperty(WorkDurationConvertor.HOURS_IN_DAY_PROPERTY)).thenReturn(new PropertyDto().setValue("8")); | |||
migration = new ConvertIssueDebtToMinutesMigration(db.database(), propertiesDao, system2); | |||
migration = new ConvertIssueDebtToMinutesMigrationStep(db.database(), propertiesDao, system2); | |||
} | |||
@Test |
@@ -41,13 +41,13 @@ public class DevelopmentCostMeasuresMigrationTest { | |||
@Mock | |||
PropertiesDao propertiesDao; | |||
DevelopmentCostMeasuresMigration migration; | |||
DevelopmentCostMeasuresMigrationStep migration; | |||
@Before | |||
public void setUp() throws Exception { | |||
when(propertiesDao.selectGlobalProperty(WorkDurationConvertor.HOURS_IN_DAY_PROPERTY)).thenReturn(new PropertyDto().setValue("8")); | |||
migration = new DevelopmentCostMeasuresMigration(db.database(), propertiesDao); | |||
migration = new DevelopmentCostMeasuresMigrationStep(db.database(), propertiesDao); | |||
} | |||
@Test |
@@ -47,7 +47,7 @@ public class IssueChangelogMigrationTest { | |||
@Mock | |||
PropertiesDao propertiesDao; | |||
IssueChangelogMigration migration; | |||
IssueChangelogMigrationStep migration; | |||
@Before | |||
public void setUp() throws Exception { | |||
@@ -56,7 +56,7 @@ public class IssueChangelogMigrationTest { | |||
WorkDurationConvertor convertor = new WorkDurationConvertor(propertiesDao); | |||
convertor.init(); | |||
migration = new IssueChangelogMigration(db.database(), system2, convertor); | |||
migration = new IssueChangelogMigrationStep(db.database(), system2, convertor); | |||
} | |||
@Test |
@@ -41,13 +41,13 @@ public class NotResolvedIssuesOnRemovedComponentsMigrationTest { | |||
@Mock | |||
System2 system2; | |||
NotResolvedIssuesOnRemovedComponentsMigration migration; | |||
NotResolvedIssuesOnRemovedComponentsMigrationStep migration; | |||
@Before | |||
public void setUp() throws Exception { | |||
when(system2.now()).thenReturn(DateUtils.parseDate("2014-04-09").getTime()); | |||
migration = new NotResolvedIssuesOnRemovedComponentsMigration(db.database(), system2); | |||
migration = new NotResolvedIssuesOnRemovedComponentsMigrationStep(db.database(), system2); | |||
} | |||
@Test |
@@ -30,11 +30,11 @@ public class RequirementMeasuresMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(RequirementMeasuresMigrationTest.class, "schema.sql"); | |||
RequirementMeasuresMigration migration; | |||
RequirementMeasuresMigrationStep migration; | |||
@Before | |||
public void setUp() throws Exception { | |||
migration = new RequirementMeasuresMigration(db.database()); | |||
migration = new RequirementMeasuresMigrationStep(db.database()); | |||
} | |||
@Test |
@@ -41,13 +41,13 @@ public class TechnicalDebtMeasuresMigrationTest { | |||
@Mock | |||
PropertiesDao propertiesDao; | |||
TechnicalDebtMeasuresMigration migration; | |||
TechnicalDebtMeasuresMigrationStep migration; | |||
@Before | |||
public void setUp() throws Exception { | |||
when(propertiesDao.selectGlobalProperty(WorkDurationConvertor.HOURS_IN_DAY_PROPERTY)).thenReturn(new PropertyDto().setValue("8")); | |||
migration = new TechnicalDebtMeasuresMigration(db.database(), propertiesDao); | |||
migration = new TechnicalDebtMeasuresMigrationStep(db.database(), propertiesDao); | |||
} | |||
@Test |
@@ -42,7 +42,7 @@ public class ChangeLogMigrationTest { | |||
System2 system2 = mock(System2.class); | |||
DbClient dbClient; | |||
ActivityDao dao; | |||
ChangeLogMigration migration; | |||
ChangeLogMigrationStep migration; | |||
DbSession session; | |||
@Before | |||
@@ -50,7 +50,7 @@ public class ChangeLogMigrationTest { | |||
when(system2.now()).thenReturn(DateUtils.parseDate("2014-03-13").getTime()); | |||
dao = new ActivityDao(db.myBatis(), system2); | |||
dbClient = new DbClient(db.database(), db.myBatis(), dao); | |||
migration = new ChangeLogMigration(dao, dbClient); | |||
migration = new ChangeLogMigrationStep(dao, dbClient); | |||
session = dbClient.openSession(false); | |||
} | |||
@@ -37,12 +37,12 @@ public class ConvertProfileMeasuresMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(ConvertProfileMeasuresMigrationTest.class, "schema.sql"); | |||
ConvertProfileMeasuresMigration migration; | |||
ConvertProfileMeasuresMigrationStep migration; | |||
@Before | |||
public void setUp() throws Exception { | |||
DbClient dbClient = new DbClient(db.database(), db.myBatis()); | |||
migration = new ConvertProfileMeasuresMigration(dbClient); | |||
migration = new ConvertProfileMeasuresMigrationStep(dbClient); | |||
} | |||
@Test |
@@ -39,7 +39,7 @@ public class FeedQProfileDatesMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(FeedQProfileDatesMigrationTest.class, "schema.sql"); | |||
FeedQProfileDatesMigration migration; | |||
FeedQProfileDatesMigrationStep migration; | |||
@Before | |||
public void setUp() throws Exception { | |||
@@ -48,7 +48,7 @@ public class FeedQProfileDatesMigrationTest { | |||
DbClient dbClient = new DbClient(db.database(), db.myBatis()); | |||
System2 system = mock(System2.class); | |||
when(system.now()).thenReturn(UtcDateUtils.parseDateTime("2014-07-03T12:00:00+0000").getTime()); | |||
migration = new FeedQProfileDatesMigration(dbClient, system); | |||
migration = new FeedQProfileDatesMigrationStep(dbClient, system); | |||
} | |||
@Test |
@@ -38,7 +38,7 @@ public class FeedQProfileKeysMigrationTest { | |||
public void feed_keys() throws Exception { | |||
db.prepareDbUnit(getClass(), "feed_keys.xml"); | |||
new FeedQProfileKeysMigration(db.database()).execute(); | |||
new FeedQProfileKeysMigrationStep(db.database()).execute(); | |||
List<Map<String, Object>> profiles = db.select("SELECT kee, name, language, parent_kee FROM rules_profiles ORDER BY id ASC"); | |||
@@ -41,13 +41,13 @@ public class IssueActionPlanKeyMigrationTest { | |||
@Mock | |||
System2 system2; | |||
IssueActionPlanKeyMigration migration; | |||
IssueActionPlanKeyMigrationStep migration; | |||
@Before | |||
public void setUp() throws Exception { | |||
when(system2.now()).thenReturn(DateUtils.parseDate("2014-04-28").getTime()); | |||
migration = new IssueActionPlanKeyMigration(db.database(), system2); | |||
migration = new IssueActionPlanKeyMigrationStep(db.database(), system2); | |||
} | |||
@Test |
@@ -33,11 +33,11 @@ public class MeasureDataMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(MeasureDataMigrationTest.class, "schema.sql"); | |||
MeasureDataMigration migration; | |||
MeasureDataMigrationStep migration; | |||
@Before | |||
public void setUp() throws Exception { | |||
migration = new MeasureDataMigration(db.database()); | |||
migration = new MeasureDataMigrationStep(db.database()); | |||
} | |||
@Test |
@@ -25,7 +25,7 @@ import org.junit.Test; | |||
import org.sonar.api.utils.DateUtils; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.DbTester; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.when; | |||
@@ -35,7 +35,7 @@ public class AddMissingRuleParameterDefaultValuesMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(AddMissingRuleParameterDefaultValuesMigrationTest.class, "schema.sql"); | |||
DatabaseMigration migration; | |||
MigrationStep migration; | |||
System2 system = mock(System2.class); | |||
@Before | |||
@@ -43,7 +43,7 @@ public class AddMissingRuleParameterDefaultValuesMigrationTest { | |||
db.executeUpdateSql("truncate table rules_parameters"); | |||
db.executeUpdateSql("truncate table active_rules"); | |||
db.executeUpdateSql("truncate table active_rule_parameters"); | |||
migration = new AddMissingRuleParameterDefaultValuesMigration(db.database(), system); | |||
migration = new AddMissingRuleParameterDefaultValuesMigrationStep(db.database(), system); | |||
when(system.now()).thenReturn(DateUtils.parseDate("2014-04-28").getTime()); | |||
} | |||
@@ -25,7 +25,7 @@ import org.junit.ClassRule; | |||
import org.junit.Test; | |||
import org.sonar.core.persistence.DbTester; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import java.sql.Connection; | |||
import java.sql.ResultSet; | |||
@@ -38,12 +38,12 @@ public class DeleteMeasuresOnDeletedProfilesMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(DeleteMeasuresOnDeletedProfilesMigrationTest.class, "schema.sql"); | |||
DatabaseMigration migration; | |||
MigrationStep migration; | |||
@Before | |||
public void setUp() throws Exception { | |||
DbClient dbClient = new DbClient(db.database(), db.myBatis()); | |||
migration = new DeleteMeasuresOnDeletedProfilesMigration(dbClient); | |||
migration = new DeleteMeasuresOnDeletedProfilesMigrationStep(dbClient); | |||
} | |||
@Test |
@@ -26,7 +26,7 @@ import org.sonar.api.utils.DateUtils; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.DbTester; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.when; | |||
@@ -36,7 +36,7 @@ public class AddMissingCustomRuleParametersMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(AddMissingCustomRuleParametersMigrationTest.class, "schema.sql"); | |||
DatabaseMigration migration; | |||
MigrationStep migration; | |||
System2 system = mock(System2.class); | |||
@Before | |||
@@ -44,7 +44,7 @@ public class AddMissingCustomRuleParametersMigrationTest { | |||
db.executeUpdateSql("truncate table rules"); | |||
db.executeUpdateSql("truncate table rules_parameters"); | |||
DbClient dbClient = new DbClient(db.database(), db.myBatis()); | |||
migration = new AddMissingCustomRuleParametersMigration(dbClient, system); | |||
migration = new AddMissingCustomRuleParametersMigrationStep(dbClient, system); | |||
when(system.now()).thenReturn(DateUtils.parseDate("2014-10-09").getTime()); | |||
} | |||
@@ -22,7 +22,7 @@ package org.sonar.server.db.migrations.v451; | |||
import org.junit.ClassRule; | |||
import org.junit.Test; | |||
import org.sonar.core.persistence.DbTester; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
@@ -31,7 +31,7 @@ public class DeleteUnescapedActivitiesTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(DeleteUnescapedActivitiesTest.class, "schema.sql"); | |||
DatabaseMigration migration; | |||
MigrationStep migration; | |||
@Test | |||
public void execute() throws Exception { |
@@ -24,7 +24,7 @@ import org.junit.ClassRule; | |||
import org.junit.Test; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.DbTester; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.mockito.Mockito.mock; | |||
@@ -41,7 +41,7 @@ public class FeedIssueLongDatesTest { | |||
System2 system = mock(System2.class); | |||
when(system.now()).thenReturn(1500000000000L); | |||
DatabaseMigration migration = new FeedIssueLongDates(db.database(), system); | |||
MigrationStep migration = new FeedIssueLongDates(db.database(), system); | |||
migration.execute(); | |||
int count = db.countSql("select count(*) from issues where created_at_ms is not null and updated_at_ms is not null"); |
@@ -25,7 +25,7 @@ import org.junit.ClassRule; | |||
import org.junit.Test; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.DbTester; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.when; | |||
@@ -35,13 +35,13 @@ public class InsertProjectsAuthorizationUpdatedAtMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(InsertProjectsAuthorizationUpdatedAtMigrationTest.class, "schema.sql"); | |||
DatabaseMigration migration; | |||
MigrationStep migration; | |||
System2 system = mock(System2.class); | |||
@Before | |||
public void setUp() throws Exception { | |||
db.executeUpdateSql("truncate table projects"); | |||
migration = new InsertProjectsAuthorizationUpdatedAtMigration(db.database(), system); | |||
migration = new InsertProjectsAuthorizationUpdatedAtMigrationStep(db.database(), system); | |||
when(system.now()).thenReturn(123456789L); | |||
} | |||
@@ -30,7 +30,7 @@ import org.sonar.core.persistence.DbTester; | |||
import org.sonar.core.persistence.migration.v50.Component; | |||
import org.sonar.core.persistence.migration.v50.Migration50Mapper; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
@@ -45,7 +45,7 @@ public class PopulateProjectsUuidColumnsMigrationTest { | |||
Migration50Mapper mapper; | |||
DatabaseMigration migration; | |||
MigrationStep migration; | |||
@Before | |||
public void setUp() throws Exception { | |||
@@ -54,7 +54,7 @@ public class PopulateProjectsUuidColumnsMigrationTest { | |||
dbClient = new DbClient(db.database(), db.myBatis()); | |||
session = dbClient.openSession(false); | |||
mapper = session.getMapper(Migration50Mapper.class); | |||
migration = new PopulateProjectsUuidColumnsMigration(dbClient); | |||
migration = new PopulateProjectsUuidColumnsMigrationStep(dbClient); | |||
} | |||
@After |
@@ -25,7 +25,7 @@ import org.junit.Test; | |||
import org.sonar.api.utils.DateUtils; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.DbTester; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.when; | |||
@@ -35,13 +35,13 @@ public class RemoveSortFieldFromIssueFiltersMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(RemoveSortFieldFromIssueFiltersMigrationTest.class, "schema.sql"); | |||
DatabaseMigration migration; | |||
MigrationStep migration; | |||
System2 system = mock(System2.class); | |||
@Before | |||
public void setUp() throws Exception { | |||
db.executeUpdateSql("truncate table issue_filters"); | |||
migration = new RemoveSortFieldFromIssueFiltersMigration(db.database(), system); | |||
migration = new RemoveSortFieldFromIssueFiltersMigrationStep(db.database(), system); | |||
when(system.now()).thenReturn(DateUtils.parseDate("2014-10-29").getTime()); | |||
} | |||
@@ -25,7 +25,7 @@ import org.junit.Test; | |||
import org.sonar.api.utils.DateUtils; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.DbTester; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.when; | |||
@@ -35,7 +35,7 @@ public class ReplaceIssueFiltersProjectKeyByUuidTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(ReplaceIssueFiltersProjectKeyByUuidTest.class, "schema.sql"); | |||
DatabaseMigration migration; | |||
MigrationStep migration; | |||
System2 system = mock(System2.class); | |||
@Before |
@@ -23,7 +23,7 @@ import org.junit.Before; | |||
import org.junit.ClassRule; | |||
import org.junit.Test; | |||
import org.sonar.core.persistence.DbTester; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import java.sql.Types; | |||
@@ -32,7 +32,7 @@ public class AddIssuesColumnsTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(AddIssuesColumnsTest.class, "schema.sql"); | |||
DatabaseMigration migration; | |||
MigrationStep migration; | |||
@Before | |||
public void setUp() throws Exception { |
@@ -26,7 +26,7 @@ import org.sonar.api.utils.DateUtils; | |||
import org.sonar.api.utils.MessageException; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.DbTester; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import static junit.framework.TestCase.fail; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
@@ -38,7 +38,7 @@ public class AddNewCharacteristicsTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(AddNewCharacteristicsTest.class, "schema.sql"); | |||
DatabaseMigration migration; | |||
MigrationStep migration; | |||
System2 system = mock(System2.class); | |||
@@ -26,7 +26,7 @@ import org.junit.Test; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.DbTester; | |||
import org.sonar.core.user.UserDto; | |||
import org.sonar.server.db.migrations.DatabaseMigration; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import java.util.Map; | |||
@@ -39,7 +39,7 @@ public class CopyScmAccountsFromAuthorsToUsersTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(CopyScmAccountsFromAuthorsToUsersTest.class, "schema.sql"); | |||
DatabaseMigration migration; | |||
MigrationStep migration; | |||
System2 system = mock(System2.class); | |||
@Before |