diff options
author | Julien Lancelot <julien.lancelot@sonarsource.com> | 2014-06-12 10:03:11 +0200 |
---|---|---|
committer | Julien Lancelot <julien.lancelot@sonarsource.com> | 2014-06-12 10:03:11 +0200 |
commit | 514afb17e20ff7c070674ccbcd1d5b6f9921816f (patch) | |
tree | d397f9d714529d229c7994a0ac1eb8859d222fc1 /sonar-core | |
parent | 959cb697cf777b944557cf7d03b02eeab282d634 (diff) | |
download | sonarqube-514afb17e20ff7c070674ccbcd1d5b6f9921816f.tar.gz sonarqube-514afb17e20ff7c070674ccbcd1d5b6f9921816f.zip |
SONAR-5392 Fix issue on Oracle
Diffstat (limited to 'sonar-core')
4 files changed, 172 insertions, 62 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/MyBatis.java b/sonar-core/src/main/java/org/sonar/core/persistence/MyBatis.java index faef9bd177b..dc840a99b50 100644 --- a/sonar-core/src/main/java/org/sonar/core/persistence/MyBatis.java +++ b/sonar-core/src/main/java/org/sonar/core/persistence/MyBatis.java @@ -24,11 +24,7 @@ import com.google.common.io.Closeables; import org.apache.ibatis.builder.xml.XMLMapperBuilder; import org.apache.ibatis.logging.LogFactory; import org.apache.ibatis.mapping.Environment; -import org.apache.ibatis.session.Configuration; -import org.apache.ibatis.session.ExecutorType; -import org.apache.ibatis.session.SqlSession; -import org.apache.ibatis.session.SqlSessionFactory; -import org.apache.ibatis.session.SqlSessionFactoryBuilder; +import org.apache.ibatis.session.*; import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory; import org.apache.ibatis.type.JdbcType; import org.slf4j.LoggerFactory; @@ -39,14 +35,7 @@ import org.sonar.core.cluster.WorkQueue; import org.sonar.core.component.ComponentDto; import org.sonar.core.component.db.ComponentMapper; import org.sonar.core.config.Logback; -import org.sonar.core.dashboard.ActiveDashboardDto; -import org.sonar.core.dashboard.ActiveDashboardMapper; -import org.sonar.core.dashboard.DashboardDto; -import org.sonar.core.dashboard.DashboardMapper; -import org.sonar.core.dashboard.WidgetDto; -import org.sonar.core.dashboard.WidgetMapper; -import org.sonar.core.dashboard.WidgetPropertyDto; -import org.sonar.core.dashboard.WidgetPropertyMapper; +import org.sonar.core.dashboard.*; import org.sonar.core.dependency.DependencyDto; import org.sonar.core.dependency.DependencyMapper; import org.sonar.core.dependency.ResourceSnapshotDto; @@ -55,19 +44,7 @@ import org.sonar.core.duplication.DuplicationMapper; import org.sonar.core.duplication.DuplicationUnitDto; import org.sonar.core.graph.jdbc.GraphDto; import org.sonar.core.graph.jdbc.GraphDtoMapper; -import org.sonar.core.issue.db.ActionPlanDto; -import org.sonar.core.issue.db.ActionPlanMapper; -import org.sonar.core.issue.db.ActionPlanStatsDto; -import org.sonar.core.issue.db.ActionPlanStatsMapper; -import org.sonar.core.issue.db.IssueChangeDto; -import org.sonar.core.issue.db.IssueChangeMapper; -import org.sonar.core.issue.db.IssueDto; -import org.sonar.core.issue.db.IssueFilterDto; -import org.sonar.core.issue.db.IssueFilterFavouriteDto; -import org.sonar.core.issue.db.IssueFilterFavouriteMapper; -import org.sonar.core.issue.db.IssueFilterMapper; -import org.sonar.core.issue.db.IssueMapper; -import org.sonar.core.issue.db.IssueStatsMapper; +import org.sonar.core.issue.db.*; import org.sonar.core.log.db.LogDto; import org.sonar.core.log.db.LogMapper; import org.sonar.core.measure.db.MeasureDto; @@ -76,33 +53,14 @@ import org.sonar.core.measure.db.MeasureFilterMapper; import org.sonar.core.measure.db.MeasureMapper; import org.sonar.core.notification.db.NotificationQueueDto; import org.sonar.core.notification.db.NotificationQueueMapper; -import org.sonar.core.permission.GroupWithPermissionDto; -import org.sonar.core.permission.PermissionTemplateDto; -import org.sonar.core.permission.PermissionTemplateGroupDto; -import org.sonar.core.permission.PermissionTemplateMapper; -import org.sonar.core.permission.PermissionTemplateUserDto; -import org.sonar.core.permission.UserWithPermissionDto; +import org.sonar.core.permission.*; import org.sonar.core.properties.PropertiesMapper; import org.sonar.core.properties.PropertyDto; import org.sonar.core.purge.PurgeMapper; import org.sonar.core.purge.PurgeableSnapshotDto; -import org.sonar.core.qualitygate.db.ProjectQgateAssociationDto; -import org.sonar.core.qualitygate.db.ProjectQgateAssociationMapper; -import org.sonar.core.qualitygate.db.QualityGateConditionDto; -import org.sonar.core.qualitygate.db.QualityGateConditionMapper; -import org.sonar.core.qualitygate.db.QualityGateDto; -import org.sonar.core.qualitygate.db.QualityGateMapper; -import org.sonar.core.qualityprofile.db.ActiveRuleDto; -import org.sonar.core.qualityprofile.db.ActiveRuleMapper; -import org.sonar.core.qualityprofile.db.ActiveRuleParamDto; -import org.sonar.core.qualityprofile.db.QualityProfileDto; -import org.sonar.core.qualityprofile.db.QualityProfileMapper; -import org.sonar.core.resource.ResourceDto; -import org.sonar.core.resource.ResourceIndexDto; -import org.sonar.core.resource.ResourceIndexerMapper; -import org.sonar.core.resource.ResourceKeyUpdaterMapper; -import org.sonar.core.resource.ResourceMapper; -import org.sonar.core.resource.SnapshotDto; +import org.sonar.core.qualitygate.db.*; +import org.sonar.core.qualityprofile.db.*; +import org.sonar.core.resource.*; import org.sonar.core.rule.RuleDto; import org.sonar.core.rule.RuleMapper; import org.sonar.core.rule.RuleParamDto; @@ -111,18 +69,10 @@ import org.sonar.core.source.db.SnapshotDataMapper; import org.sonar.core.source.db.SnapshotSourceMapper; import org.sonar.core.technicaldebt.db.CharacteristicDto; import org.sonar.core.technicaldebt.db.CharacteristicMapper; +import org.sonar.core.technicaldebt.db.RequirementMigrationDto; import org.sonar.core.template.LoadedTemplateDto; import org.sonar.core.template.LoadedTemplateMapper; -import org.sonar.core.user.AuthorDto; -import org.sonar.core.user.AuthorMapper; -import org.sonar.core.user.GroupDto; -import org.sonar.core.user.GroupMembershipDto; -import org.sonar.core.user.GroupMembershipMapper; -import org.sonar.core.user.GroupRoleDto; -import org.sonar.core.user.RoleMapper; -import org.sonar.core.user.UserDto; -import org.sonar.core.user.UserMapper; -import org.sonar.core.user.UserRoleDto; +import org.sonar.core.user.*; import java.io.InputStream; @@ -201,6 +151,7 @@ public class MyBatis implements BatchComponent, ServerComponent { loadAlias(conf, "QualityProfile", QualityProfileDto.class); loadAlias(conf, "ActiveRule", ActiveRuleDto.class); loadAlias(conf, "ActiveRuleParam", ActiveRuleParamDto.class); + loadAlias(conf, "RequirementMigration", RequirementMigrationDto.class); loadAlias(conf, "Log", LogDto.class); // AuthorizationMapper has to be loaded before IssueMapper because this last one used it diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicMapper.java b/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicMapper.java index 123a216a32d..ea734f081f8 100644 --- a/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicMapper.java +++ b/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/CharacteristicMapper.java @@ -23,7 +23,6 @@ package org.sonar.core.technicaldebt.db; import org.apache.ibatis.annotations.Param; import java.util.List; -import java.util.Map; public interface CharacteristicMapper { @@ -51,5 +50,5 @@ public interface CharacteristicMapper { void deleteRequirementsFromCharacteristicsTable(); - List<Map<String, Object>> selectDeprecatedRequirements(); + List<RequirementMigrationDto> selectDeprecatedRequirements(); } diff --git a/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/RequirementMigrationDto.java b/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/RequirementMigrationDto.java new file mode 100644 index 00000000000..ac4cb026c0d --- /dev/null +++ b/sonar-core/src/main/java/org/sonar/core/technicaldebt/db/RequirementMigrationDto.java @@ -0,0 +1,160 @@ +/* + * 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.core.technicaldebt.db; + +import javax.annotation.CheckForNull; +import javax.annotation.Nullable; + +import java.io.Serializable; +import java.util.Date; + +/** + * Only used in {@link org.sonar.server.startup.CopyRequirementsFromCharacteristicsToRules} + */ +public class RequirementMigrationDto implements Serializable { + + private Integer id; + private Integer parentId; + private Integer rootId; + private Integer ruleId; + private String functionKey; + private Double coefficientValue; + private String coefficientUnit; + private Double offsetValue; + private String offsetUnit; + private Date createdAt; + private Date updatedAt; + private boolean enabled; + + public Integer getId() { + return id; + } + + public RequirementMigrationDto setId(Integer id) { + this.id = id; + return this; + } + + public Integer getParentId() { + return parentId; + } + + public RequirementMigrationDto setParentId(Integer i) { + this.parentId = i; + return this; + } + + public Integer getRootId() { + return rootId; + } + + public RequirementMigrationDto setRootId(Integer rootId) { + this.rootId = rootId; + return this; + } + + public Integer getRuleId() { + return ruleId; + } + + public RequirementMigrationDto setRuleId(Integer ruleId) { + this.ruleId = ruleId; + return this; + } + + public String getFunction() { + return functionKey; + } + + public RequirementMigrationDto setFunction(String function) { + this.functionKey = function; + return this; + } + + @CheckForNull + public Double getCoefficientValue() { + return coefficientValue; + } + + public RequirementMigrationDto setCoefficientValue(@Nullable Double coefficientValue) { + this.coefficientValue = coefficientValue; + return this; + } + + @CheckForNull + public String getCoefficientUnit() { + return coefficientUnit; + } + + public RequirementMigrationDto setCoefficientUnit(@Nullable String coefficientUnit) { + this.coefficientUnit = coefficientUnit; + return this; + } + + @CheckForNull + public Double getOffsetValue() { + return offsetValue; + } + + public RequirementMigrationDto setOffsetValue(@Nullable Double offset) { + this.offsetValue = offset; + return this; + } + + @CheckForNull + public String getOffsetUnit() { + return offsetUnit; + } + + public RequirementMigrationDto setOffsetUnit(@Nullable String offsetUnit) { + this.offsetUnit = offsetUnit; + return this; + } + + public Date getCreatedAt() { + return createdAt; + } + + public RequirementMigrationDto setCreatedAt(Date createdAt) { + this.createdAt = createdAt; + return this; + } + + @CheckForNull + public Date getUpdatedAt() { + return updatedAt; + } + + public RequirementMigrationDto setUpdatedAt(@Nullable Date updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + public boolean isEnabled() { + return enabled; + } + + public RequirementMigrationDto setEnabled(boolean enabled) { + this.enabled = enabled; + return this; + } + +} diff --git a/sonar-core/src/main/resources/org/sonar/core/technicaldebt/db/CharacteristicMapper.xml b/sonar-core/src/main/resources/org/sonar/core/technicaldebt/db/CharacteristicMapper.xml index 5857ba78a87..abce6386373 100644 --- a/sonar-core/src/main/resources/org/sonar/core/technicaldebt/db/CharacteristicMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/core/technicaldebt/db/CharacteristicMapper.xml @@ -107,7 +107,7 @@ where id=#{id} </update> - <select id="selectDeprecatedRequirements" resultType="map"> + <select id="selectDeprecatedRequirements" resultType="RequirementMigration"> select id as "id", parent_id as "parentId", root_id as "rootId", |