]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-3755 refactor the way to persist component perspectives
authorSimon Brandhof <simon.brandhof@gmail.com>
Wed, 10 Apr 2013 16:46:19 +0000 (18:46 +0200)
committerSimon Brandhof <simon.brandhof@gmail.com>
Wed, 10 Apr 2013 16:51:44 +0000 (18:51 +0200)
1  2 
sonar-core/src/main/java/org/sonar/core/issue/DefaultIssueFinder.java
sonar-core/src/main/java/org/sonar/core/persistence/DaoUtils.java
sonar-core/src/main/java/org/sonar/core/persistence/MyBatis.java
sonar-plugin-api/src/main/java/org/sonar/api/issue/IssueFinder.java

index ab50f448954d4398a745b1b6fc8890ae69366698,03874ba3cb9ddde64d1f627e53493cc6fdc15dc8..64cf380c7d872470db5b0c8bd23c6ee34c29e096
@@@ -59,22 -65,33 +65,33 @@@ public class DefaultIssueFinder impleme
      }));
    }
  
-   private Issue toIssue(IssueDto issueDto) {
-     // FIXME N+1 SQL requests
-     Rule rule = ruleFinder.findById(issueDto.getRuleId());
+   public Issue findByKey(String key){
+     IssueDto issueDto = issueDao.findByUuid(key);
+     return issueDto != null ? toIssue(issueDto) : null;
+   }
+   private Issue toIssue(IssueDto issueDto){
 -    Issue.Builder issueBuilder = new Issue.Builder();
 -    issueBuilder.status(issueDto.getStatus());
 -    issueBuilder.resolution(issueDto.getResolution());
 -    issueBuilder.message(issueDto.getMessage());
 -    issueBuilder.title(issueDto.getTitle());
 -    issueBuilder.cost(issueDto.getCost());
 -    issueBuilder.line(issueDto.getLine());
 -    issueBuilder.severity(issueDto.getSeverity());
 -    issueBuilder.userLogin(issueDto.getUserLogin());
 -    issueBuilder.assigneeLogin(issueDto.getAssigneeLogin());
 +    DefaultIssue issue = new DefaultIssue();
 +    issue.setStatus(issueDto.getStatus());
 +    issue.setResolution(issueDto.getResolution());
 +    issue.setMessage(issueDto.getMessage());
++    issue.setTitle(issueDto.getTitle());
 +    issue.setCost(issueDto.getCost());
 +    issue.setLine(issueDto.getLine());
++    issue.setSeverity(issueDto.getSeverity());
 +    issue.setUserLogin(issueDto.getUserLogin());
 +    issue.setAssigneeLogin(issueDto.getAssigneeLogin());
-     // FIXME N+1 SQL requests
-     issue.setComponentKey(resourceDao.getResource(issueDto.getResourceId()).getKey());
+     ResourceDto resource = resourceDao.getResource(issueDto.getResourceId());
 -    issueBuilder.componentKey(resource.getKey());
++    issue.setComponentKey(resource.getKey());
+     Rule rule = ruleFinder.findById(issueDto.getRuleId());
 -    issueBuilder.ruleKey(rule.getKey());
 -    issueBuilder.ruleRepositoryKey(rule.getRepositoryKey());
 +    issue.setRuleKey(rule.getKey());
 +    issue.setRuleRepositoryKey(rule.getRepositoryKey());
+     // TODO add key and dates
 -    return issueBuilder.build();
 +    return issue;
    }
  
  }
index 9f9b618094574dd2531efe1cd1e8d7fa03c211e9,0952787013dbd9bf8dda71aacfc4b3a83bca8dba..3aa799ddae072b20cd3916b71f5e939b44282626
@@@ -65,6 -64,8 +65,7 @@@ public final class DaoUtils 
        ReviewDao.class,
        RuleDao.class,
        SemaphoreDao.class,
-       UserDao.class);
 -      UserDao.class,
 -      IssueDao.class
++      UserDao.class
+     );
    }
  }
index 0643722f6bf180ed5242b9b809f0e2ab2b75651e,9f27ac46b2da51e84c3b33cf514fa822a6d7c801..1d18b8bf64c831c28ebbd72e1cd1681718831237
@@@ -126,10 -127,10 +127,10 @@@ public class MyBatis implements BatchCo
      loadAlias(conf, "SnapshotData", SnapshotDataDto.class);
  
      Class<?>[] mappers = {ActiveDashboardMapper.class, AuthorMapper.class, DashboardMapper.class,
-       DependencyMapper.class, DuplicationMapper.class, GraphDtoMapper.class, IssueMapper.class, LoadedTemplateMapper.class, MeasureFilterMapper.class, PropertiesMapper.class, PurgeMapper.class,
 -      DependencyMapper.class, DuplicationMapper.class, GraphDtoMapper.class, LoadedTemplateMapper.class, MeasureFilterMapper.class, PropertiesMapper.class, PurgeMapper.class,
++      DependencyMapper.class, DuplicationMapper.class, GraphDtoMapper.class, IssueMapper.class, IssueChangeMapper.class, LoadedTemplateMapper.class, MeasureFilterMapper.class, PropertiesMapper.class, PurgeMapper.class,
        ResourceKeyUpdaterMapper.class, ResourceIndexerMapper.class, ResourceMapper.class, ResourceSnapshotMapper.class, ReviewCommentMapper.class,
        ReviewMapper.class, RoleMapper.class, RuleMapper.class, SchemaMigrationMapper.class, SemaphoreMapper.class, UserMapper.class, WidgetMapper.class, WidgetPropertyMapper.class,
-       MeasureMapper.class, IssueMapper.class, IssueChangeMapper.class, SnapshotDataMapper.class};
 -      MeasureMapper.class, IssueMapper.class, IssueChangeMapper.class, SnapshotDataMapper.class, SnapshotSourceMapper.class};
++      MeasureMapper.class, SnapshotDataMapper.class, SnapshotSourceMapper.class};
      loadMappers(conf, mappers);
      configureLogback(mappers);