diff options
3 files changed, 27 insertions, 37 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/db/migrations/v51/RenameComponentRelatedParamsInIssueFilters.java b/server/sonar-server/src/main/java/org/sonar/server/db/migrations/v51/RenameComponentRelatedParamsInIssueFilters.java index e0b9516bb3f..b74b5ac3d97 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/db/migrations/v51/RenameComponentRelatedParamsInIssueFilters.java +++ b/server/sonar-server/src/main/java/org/sonar/server/db/migrations/v51/RenameComponentRelatedParamsInIssueFilters.java @@ -19,10 +19,7 @@ */ package org.sonar.server.db.migrations.v51; -import com.google.common.base.Joiner; -import com.google.common.base.Splitter; import com.google.common.collect.Lists; -import com.google.common.collect.Sets; import org.apache.commons.lang.StringUtils; import org.sonar.api.utils.System2; import org.sonar.core.persistence.Database; @@ -34,17 +31,13 @@ import org.sonar.server.db.migrations.SqlStatement; import java.sql.SQLException; import java.util.Date; import java.util.List; -import java.util.SortedSet; public class RenameComponentRelatedParamsInIssueFilters extends BaseDataChange { private static final char FIELD_SEPARATOR = '|'; private static final String LIKE_PREFIX = "data like '%"; private static final String LIKE_SUFFIX = "%' or "; - private static final String COMPONENTS = "components="; private static final String COMPONENT_UUIDS = "componentUuids="; - private static final String PROJECTS = "projects="; - private static final String COMPONENT_ROOTS = "componentRoots="; private static final String COMPONENT_ROOT_UUIDS = "componentRootUuids="; private final System2 system; @@ -59,9 +52,7 @@ public class RenameComponentRelatedParamsInIssueFilters extends BaseDataChange { final Date now = new Date(system.now()); MassUpdate massUpdate = context.prepareMassUpdate(); massUpdate.select("select id,data from issue_filters where " + - LIKE_PREFIX + COMPONENTS + LIKE_SUFFIX + - LIKE_PREFIX + PROJECTS + LIKE_SUFFIX + - LIKE_PREFIX + COMPONENT_ROOTS + LIKE_SUFFIX + + LIKE_PREFIX + COMPONENT_UUIDS + LIKE_SUFFIX + LIKE_PREFIX + COMPONENT_ROOT_UUIDS + "%'"); massUpdate.update("update issue_filters set data=?, updated_at=? where id=?"); massUpdate.rowPluralName("issue filters"); @@ -81,28 +72,15 @@ public class RenameComponentRelatedParamsInIssueFilters extends BaseDataChange { String[] fields = StringUtils.split(data, FIELD_SEPARATOR); List<String> fieldsToKeep = Lists.newArrayList(); - SortedSet<String> components = Sets.newTreeSet(); - SortedSet<String> componentUuids = Sets.newTreeSet(); - Splitter componentSplitter = Splitter.on(","); - Joiner componentJoiner = Joiner.on(","); for (String field : fields) { - if (field.startsWith(COMPONENTS) || field.startsWith(COMPONENT_ROOTS)) { - components.addAll(Lists.newArrayList(componentSplitter.split(field.substring(field.indexOf("=") + 1)))); - } else if (field.startsWith(COMPONENT_UUIDS) || field.startsWith(COMPONENT_ROOT_UUIDS)) { - componentUuids.addAll(Lists.newArrayList(componentSplitter.split(field.substring(field.indexOf("=") + 1)))); - } else if (field.startsWith(PROJECTS)) { - fieldsToKeep.add(field.replace(PROJECTS, "projectKeys=")); + if (field.startsWith(COMPONENT_UUIDS) || field.startsWith(COMPONENT_ROOT_UUIDS)) { + fieldsToKeep.add( + field.replace(COMPONENT_UUIDS, "fileUuids=") + .replace(COMPONENT_ROOT_UUIDS, "moduleUuids=")); } else { fieldsToKeep.add(field); } } - if (!components.isEmpty()) { - fieldsToKeep.add("componentKeys=" + componentJoiner.join(components)); - } - if (!componentUuids.isEmpty()) { - fieldsToKeep.add("componentUuids=" + componentJoiner.join(componentUuids)); - } - update.setString(1, StringUtils.join(fieldsToKeep, FIELD_SEPARATOR)); update.setDate(2, now); update.setLong(3, row.getLong(1)); diff --git a/server/sonar-server/src/test/resources/org/sonar/server/db/migrations/v51/RenameComponentRelatedParamsInIssueFiltersMigrationTest/execute-result.xml b/server/sonar-server/src/test/resources/org/sonar/server/db/migrations/v51/RenameComponentRelatedParamsInIssueFiltersMigrationTest/execute-result.xml index ffb355824b6..a8697260c07 100644 --- a/server/sonar-server/src/test/resources/org/sonar/server/db/migrations/v51/RenameComponentRelatedParamsInIssueFiltersMigrationTest/execute-result.xml +++ b/server/sonar-server/src/test/resources/org/sonar/server/db/migrations/v51/RenameComponentRelatedParamsInIssueFiltersMigrationTest/execute-result.xml @@ -1,6 +1,7 @@ <dataset> - <issue_filters + <!-- Not updated, no concerned field --> + <issue_filters id="1" name="No concerned field" user_login="stephane" @@ -10,53 +11,58 @@ created_at="2013-06-10" updated_at="2013-06-10" /> + <!-- Not updated, projectUuids is left as is --> <issue_filters id="2" name="Has projects" user_login="michael" shared="[false]" description="to be updated" - data="statuses=OPEN|sort=SEVERITY|asc=true|projectKeys=ABC" + data="statuses=OPEN|sort=SEVERITY|asc=true|projectUuids=ABC" created_at="2013-06-10" - updated_at="2014-10-29 00:00:00.0" /> + updated_at="2013-06-10 00:00:00.0" /> + <!-- componentUuids replaced by fileUuids --> <issue_filters id="3" name="Has components" user_login="michael" shared="[false]" description="to be updated" - data="statuses=OPEN|sort=SEVERITY|asc=true|componentKeys=ABC" + data="fileUuids=ABC|statuses=OPEN|sort=SEVERITY|asc=true" created_at="2013-06-10" updated_at="2014-10-29 00:00:00.0" /> + <!-- componentRootUuids replaced by moduleUuids --> <issue_filters id="4" name="Has componentRoots" user_login="michael" shared="[false]" description="to be updated" - data="statuses=OPEN|sort=SEVERITY|asc=true|componentKeys=ABC" + data="statuses=OPEN|sort=SEVERITY|asc=true|moduleUuids=ABC" created_at="2013-06-10" updated_at="2014-10-29 00:00:00.0" /> + <!-- componentRootUuids replaced by moduleUuids (in the middle of the string) --> <issue_filters id="5" name="Has projects" user_login="michael" shared="[false]" description="to be updated" - data="statuses=OPEN|sort=SEVERITY|asc=true|componentUuids=ABC" + data="statuses=OPEN|sort=SEVERITY|moduleUuids=ABC|asc=true" created_at="2013-06-10" updated_at="2014-10-29 00:00:00.0" /> + <!-- componentUuidss replaced by fileUuids, componentRootUuids replaced by moduleUuids --> <issue_filters id="6" name="Has all parameters" user_login="michael" shared="[false]" description="to be updated" - data="statuses=OPEN|sort=SEVERITY|projectUuids=CDE|asc=true|componentUuids=ABC,BCD" + data="statuses=OPEN|sort=SEVERITY|fileUuids=BCD|moduleUuids=ABC|projectUuids=CDE|asc=true" created_at="2013-06-10" updated_at="2014-10-29 00:00:00.0" /> </dataset> diff --git a/server/sonar-server/src/test/resources/org/sonar/server/db/migrations/v51/RenameComponentRelatedParamsInIssueFiltersMigrationTest/execute.xml b/server/sonar-server/src/test/resources/org/sonar/server/db/migrations/v51/RenameComponentRelatedParamsInIssueFiltersMigrationTest/execute.xml index bebd7d0a387..e88294d599c 100644 --- a/server/sonar-server/src/test/resources/org/sonar/server/db/migrations/v51/RenameComponentRelatedParamsInIssueFiltersMigrationTest/execute.xml +++ b/server/sonar-server/src/test/resources/org/sonar/server/db/migrations/v51/RenameComponentRelatedParamsInIssueFiltersMigrationTest/execute.xml @@ -1,5 +1,6 @@ <dataset> + <!-- Not updated, no concerned field --> <issue_filters id="1" name="No concerned field" @@ -10,36 +11,40 @@ created_at="2013-06-10" updated_at="2013-06-10" /> + <!-- Not updated, projectUuids is left as is --> <issue_filters id="2" name="Has projects" user_login="michael" shared="[false]" description="to be updated" - data="statuses=OPEN|sort=SEVERITY|asc=true|projects=ABC" + data="statuses=OPEN|sort=SEVERITY|asc=true|projectUuids=ABC" created_at="2013-06-10" updated_at="2013-06-10" /> + <!-- componentUuids replaced by fileUuids --> <issue_filters id="3" name="Has components" user_login="michael" shared="[false]" description="to be updated" - data="components=ABC|statuses=OPEN|sort=SEVERITY|asc=true" + data="componentUuids=ABC|statuses=OPEN|sort=SEVERITY|asc=true" created_at="2013-06-10" updated_at="2013-06-10" /> + <!-- componentRootUuids replaced by moduleUuids --> <issue_filters id="4" name="Has componentRoots" user_login="michael" shared="[false]" description="to be updated" - data="statuses=OPEN|sort=SEVERITY|asc=true|componentRoots=ABC" + data="statuses=OPEN|sort=SEVERITY|asc=true|componentRootUuids=ABC" created_at="2013-06-10" updated_at="2013-06-10" /> + <!-- componentRootUuids replaced by moduleUuids (in the middle of the string) --> <issue_filters id="5" name="Has projects" @@ -50,6 +55,7 @@ created_at="2013-06-10" updated_at="2013-06-10" /> + <!-- componentUuidss replaced by fileUuids, componentRootUuids replaced by moduleUuids --> <issue_filters id="6" name="Has all parameters" |