Skip to content

Commit

Permalink
SONAR-6060 Move HTML report into the core
Browse files Browse the repository at this point in the history
  • Loading branch information
henryju committed Jan 26, 2015
1 parent 8d2ca3f commit 2ccd693
Show file tree
Hide file tree
Showing 66 changed files with 2,126 additions and 140 deletions.
5 changes: 5 additions & 0 deletions pom.xml
Expand Up @@ -1078,6 +1078,11 @@
<artifactId>sonar-runner-api</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.20</version>
</dependency>

<!-- tomcat -->
<dependency>
Expand Down
Expand Up @@ -25,7 +25,7 @@
import org.sonar.api.server.ws.RequestHandler;
import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.batch.protocol.input.GlobalReferentials;
import org.sonar.batch.protocol.input.GlobalRepositories;
import org.sonar.core.measure.db.MetricDto;
import org.sonar.core.permission.GlobalPermissions;
import org.sonar.core.persistence.DbSession;
Expand Down Expand Up @@ -62,7 +62,7 @@ public void handle(Request request, Response response) throws Exception {

DbSession session = dbClient.openSession(false);
try {
GlobalReferentials ref = new GlobalReferentials();
GlobalRepositories ref = new GlobalRepositories();
addMetrics(ref, session);
addSettings(ref, hasScanPerm, hasDryRunPerm, session);

Expand All @@ -73,7 +73,7 @@ public void handle(Request request, Response response) throws Exception {
}
}

private void addMetrics(GlobalReferentials ref, DbSession session) {
private void addMetrics(GlobalRepositories ref, DbSession session) {
for (MetricDto metric : dbClient.metricDao().findEnabled(session)) {
Boolean optimizedBestValue = metric.isOptimizedBestValue();
ref.addMetric(
Expand All @@ -90,7 +90,7 @@ private void addMetrics(GlobalReferentials ref, DbSession session) {
}
}

private void addSettings(GlobalReferentials ref, boolean hasScanPerm, boolean hasDryRunPerm, DbSession session) {
private void addSettings(GlobalRepositories ref, boolean hasScanPerm, boolean hasDryRunPerm, DbSession session) {
for (PropertyDto propertyDto : propertiesDao.selectGlobalProperties(session)) {
String key = propertyDto.getKey();
String value = propertyDto.getValue();
Expand Down
Expand Up @@ -25,7 +25,7 @@
import org.sonar.api.server.ws.RequestHandler;
import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.batch.protocol.input.ProjectRepository;
import org.sonar.batch.protocol.input.ProjectRepositories;
import org.sonar.server.plugins.MimeTypes;

public class ProjectRepositoryAction implements RequestHandler {
Expand Down Expand Up @@ -67,7 +67,7 @@ void define(WebService.NewController controller) {

@Override
public void handle(Request request, Response response) throws Exception {
ProjectRepository ref = projectReferentialsLoader.load(ProjectRepositoryQuery.create()
ProjectRepositories ref = projectReferentialsLoader.load(ProjectRepositoryQuery.create()
.setModuleKey(request.mandatoryParam(PARAM_KEY))
.setProfileName(request.param(PARAM_PROFILE))
.setPreview(request.mandatoryParamAsBoolean(PARAM_PREVIEW)));
Expand Down
Expand Up @@ -28,7 +28,7 @@
import org.sonar.api.resources.Languages;
import org.sonar.api.rule.RuleKey;
import org.sonar.batch.protocol.input.FileData;
import org.sonar.batch.protocol.input.ProjectRepository;
import org.sonar.batch.protocol.input.ProjectRepositories;
import org.sonar.core.UtcDateUtils;
import org.sonar.core.component.ComponentDto;
import org.sonar.core.component.FilePathWithHashDto;
Expand Down Expand Up @@ -77,13 +77,13 @@ public ProjectRepositoryLoader(DbClient dbClient, QProfileFactory qProfileFactor
this.languages = languages;
}

public ProjectRepository load(ProjectRepositoryQuery query) {
public ProjectRepositories load(ProjectRepositoryQuery query) {
boolean hasScanPerm = UserSession.get().hasGlobalPermission(GlobalPermissions.SCAN_EXECUTION);
checkPermission(query.isPreview());

DbSession session = dbClient.openSession(false);
try {
ProjectRepository ref = new ProjectRepository();
ProjectRepositories ref = new ProjectRepositories();
String projectKey = query.getModuleKey();
ComponentDto module = dbClient.componentDao().getNullableByKey(session, query.getModuleKey());
// Current project/module can be null when analysing a new project
Expand Down Expand Up @@ -145,7 +145,7 @@ private void aggregateParentModules(ComponentDto component, List<ComponentDto> p
}
}

private void addSettingsToChildrenModules(ProjectRepository ref, String moduleKey, Map<String, String> parentProperties, TreeModuleSettings treeModuleSettings,
private void addSettingsToChildrenModules(ProjectRepositories ref, String moduleKey, Map<String, String> parentProperties, TreeModuleSettings treeModuleSettings,
boolean hasScanPerm, DbSession session) {
Map<String, String> currentParentProperties = newHashMap();
currentParentProperties.putAll(parentProperties);
Expand All @@ -158,7 +158,7 @@ private void addSettingsToChildrenModules(ProjectRepository ref, String moduleKe
}
}

private void addSettings(ProjectRepository ref, String module, Map<String, String> properties) {
private void addSettings(ProjectRepositories ref, String module, Map<String, String> properties) {
if (!properties.isEmpty()) {
ref.addSettings(module, properties);
}
Expand All @@ -180,7 +180,7 @@ private static boolean isPropertyAllowed(String key, boolean hasScanPerm) {
return !key.contains(".secured") || hasScanPerm;
}

private void addProfiles(ProjectRepository ref, @Nullable String projectKey, @Nullable String profileName, DbSession session) {
private void addProfiles(ProjectRepositories ref, @Nullable String projectKey, @Nullable String profileName, DbSession session) {
for (Language language : languages.all()) {
String languageKey = language.getKey();
QualityProfileDto qualityProfileDto = getProfile(languageKey, projectKey, profileName, session);
Expand Down Expand Up @@ -212,7 +212,7 @@ private QualityProfileDto getProfile(String languageKey, @Nullable String projec
}
}

private void addActiveRules(ProjectRepository ref) {
private void addActiveRules(ProjectRepositories ref) {
for (org.sonar.batch.protocol.input.QProfile qProfile : ref.qProfiles()) {
for (ActiveRule activeRule : qProfileLoader.findActiveRulesByProfile(qProfile.key())) {
Rule rule = ruleService.getNonNullByKey(activeRule.key().ruleKey());
Expand All @@ -231,7 +231,7 @@ private void addActiveRules(ProjectRepository ref) {
}
}

private void addManualRules(ProjectRepository ref) {
private void addManualRules(ProjectRepositories ref) {
Result<Rule> ruleSearchResult = ruleService.search(new RuleQuery().setRepositories(newArrayList(RuleKey.MANUAL_REPOSITORY_KEY)), new QueryContext().setScroll(true)
.setFieldsToReturn(newArrayList(RuleNormalizer.RuleField.KEY.field(), RuleNormalizer.RuleField.NAME.field())));
Iterator<Rule> rules = ruleSearchResult.scroll();
Expand All @@ -245,7 +245,7 @@ private void addManualRules(ProjectRepository ref) {
}
}

private void addFileData(DbSession session, ProjectRepository ref, List<ComponentDto> moduleChildren, String moduleKey) {
private void addFileData(DbSession session, ProjectRepositories ref, List<ComponentDto> moduleChildren, String moduleKey) {
Map<String, String> moduleKeysByUuid = newHashMap();
for (ComponentDto module : moduleChildren) {
moduleKeysByUuid.put(module.uuid(), module.key());
Expand Down
Expand Up @@ -26,7 +26,7 @@
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.sonar.batch.protocol.input.ProjectRepository;
import org.sonar.batch.protocol.input.ProjectRepositories;
import org.sonar.server.ws.WsTester;

import static org.assertj.core.api.Assertions.assertThat;
Expand All @@ -51,7 +51,7 @@ public void setUp() throws Exception {
public void project_referentials() throws Exception {
String projectKey = "org.codehaus.sonar:sonar";

ProjectRepository projectReferentials = mock(ProjectRepository.class);
ProjectRepositories projectReferentials = mock(ProjectRepositories.class);
when(projectReferentials.toJson()).thenReturn("{\"settingsByModule\": {}}");

ArgumentCaptor<ProjectRepositoryQuery> queryArgumentCaptor = ArgumentCaptor.forClass(ProjectRepositoryQuery.class);
Expand Down
Expand Up @@ -31,7 +31,7 @@
import org.sonar.api.utils.DateUtils;
import org.sonar.batch.protocol.input.ActiveRule;
import org.sonar.batch.protocol.input.FileData;
import org.sonar.batch.protocol.input.ProjectRepository;
import org.sonar.batch.protocol.input.ProjectRepositories;
import org.sonar.batch.protocol.input.QProfile;
import org.sonar.core.component.ComponentDto;
import org.sonar.core.permission.GlobalPermissions;
Expand Down Expand Up @@ -99,7 +99,7 @@ public void return_project_settings() throws Exception {
dbSession);
dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
Map<String, String> projectSettings = ref.settings(project.key());
assertThat(projectSettings).isEqualTo(ImmutableMap.of(
"sonar.jira.project.key", "SONAR",
Expand All @@ -124,7 +124,7 @@ public void not_returned_secured_settings_with_only_preview_permission() throws
dbSession);
dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()).setPreview(true));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()).setPreview(true));
Map<String, String> projectSettings = ref.settings(project.key());
assertThat(projectSettings).isEqualTo(ImmutableMap.of(
"sonar.jira.project.key", "SONAR"
Expand Down Expand Up @@ -156,7 +156,7 @@ public void return_project_with_module_settings() throws Exception {

dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
assertThat(ref.settings(project.key())).isEqualTo(ImmutableMap.of(
"sonar.jira.project.key", "SONAR",
"sonar.jira.login.secured", "john"
Expand Down Expand Up @@ -189,7 +189,7 @@ public void return_project_with_module_settings_inherited_from_project() throws

dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
assertThat(ref.settings(project.key())).isEqualTo(ImmutableMap.of(
"sonar.jira.project.key", "SONAR",
"sonar.jira.login.secured", "john"
Expand Down Expand Up @@ -232,7 +232,7 @@ public void return_project_with_module_with_sub_module() throws Exception {

dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
assertThat(ref.settings(project.key())).isEqualTo(ImmutableMap.of(
"sonar.jira.project.key", "SONAR",
"sonar.jira.login.secured", "john"
Expand Down Expand Up @@ -278,7 +278,7 @@ public void return_project_with_two_modules() throws Exception {

dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
assertThat(ref.settings(project.key())).isEqualTo(ImmutableMap.of(
"sonar.jira.project.key", "SONAR",
"sonar.jira.login.secured", "john"
Expand Down Expand Up @@ -309,7 +309,7 @@ public void return_provisioned_project_settings() throws Exception {

dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
assertThat(ref.settings(project.key())).isEqualTo(ImmutableMap.of(
"sonar.jira.project.key", "SONAR",
"sonar.jira.login.secured", "john"
Expand Down Expand Up @@ -339,7 +339,7 @@ public void return_sub_module_settings() throws Exception {

dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(subModule.key()));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(subModule.key()));
assertThat(ref.settings(project.key())).isEmpty();
assertThat(ref.settings(module.key())).isEmpty();
assertThat(ref.settings(subModule.key())).isEqualTo(ImmutableMap.of(
Expand Down Expand Up @@ -374,7 +374,7 @@ public void return_sub_module_settings_including_settings_from_parent_modules()

dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(subModule.key()));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(subModule.key()));
assertThat(ref.settings(project.key())).isEmpty();
assertThat(ref.settings(module.key())).isEmpty();
assertThat(ref.settings(subModule.key())).isEqualTo(ImmutableMap.of(
Expand Down Expand Up @@ -407,7 +407,7 @@ public void return_sub_module_settings_only_inherited_from_project() throws Exce

dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(subModule.key()));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(subModule.key()));
assertThat(ref.settings(project.key())).isEmpty();
assertThat(ref.settings(module.key())).isEmpty();
assertThat(ref.settings(subModule.key())).isEqualTo(ImmutableMap.of(
Expand Down Expand Up @@ -441,7 +441,7 @@ public void return_sub_module_settings_inherited_from_project_and_module() throw

dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(subModule.key()));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(subModule.key()));
assertThat(ref.settings(project.key())).isEmpty();
assertThat(ref.settings(module.key())).isEmpty();
assertThat(ref.settings(subModule.key())).isEqualTo(ImmutableMap.of(
Expand All @@ -466,7 +466,7 @@ public void return_quality_profile_from_project_profile() throws Exception {

dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
List<QProfile> profiles = newArrayList(ref.qProfiles());
assertThat(profiles).hasSize(1);
assertThat(profiles.get(0).key()).isEqualTo("abcd");
Expand All @@ -490,7 +490,7 @@ public void return_quality_profile_from_default_profile() throws Exception {

dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
List<QProfile> profiles = newArrayList(ref.qProfiles());
assertThat(profiles).hasSize(1);
assertThat(profiles.get(0).key()).isEqualTo("abcd");
Expand All @@ -514,7 +514,7 @@ public void return_quality_profile_from_given_profile_name() throws Exception {

dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()).setProfileName("SonarQube way"));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()).setProfileName("SonarQube way"));
List<QProfile> profiles = newArrayList(ref.qProfiles());
assertThat(profiles).hasSize(1);
assertThat(profiles.get(0).key()).isEqualTo("abcd");
Expand All @@ -535,7 +535,7 @@ public void return_quality_profiles_even_when_project_does_not_exists() throws E

dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey("project"));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey("project"));
List<QProfile> profiles = newArrayList(ref.qProfiles());
assertThat(profiles).hasSize(1);
assertThat(profiles.get(0).key()).isEqualTo("abcd");
Expand All @@ -560,7 +560,7 @@ public void return_provisioned_project_profile() throws Exception {

dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
List<QProfile> profiles = newArrayList(ref.qProfiles());
assertThat(profiles).hasSize(1);
assertThat(profiles.get(0).key()).isEqualTo("abcd");
Expand Down Expand Up @@ -611,7 +611,7 @@ public void return_active_rules() throws Exception {

dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
List<ActiveRule> activeRules = newArrayList(ref.activeRules());
assertThat(activeRules).hasSize(1);
assertThat(activeRules.get(0).repositoryKey()).isEqualTo("squid");
Expand All @@ -636,7 +636,7 @@ public void return_manual_rules() throws Exception {

dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
List<ActiveRule> activeRules = newArrayList(ref.activeRules());
assertThat(activeRules).extracting("repositoryKey").containsOnly(RuleKey.MANUAL_REPOSITORY_KEY);
assertThat(activeRules).extracting("ruleKey").containsOnly("manualRuleKey");
Expand Down Expand Up @@ -693,7 +693,7 @@ public void return_file_data_from_single_project() throws Exception {

dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
assertThat(ref.fileDataByPath(project.key())).hasSize(1);
FileData fileData = ref.fileData(project.key(), file.path());
assertThat(fileData.hash()).isEqualTo("123456");
Expand Down Expand Up @@ -722,7 +722,7 @@ public void return_file_data_from_multi_modules() throws Exception {

dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(project.key()));
assertThat(ref.fileData(project.key(), projectFile.path()).hash()).isEqualTo("123456");
assertThat(ref.fileData(module.key(), moduleFile.path()).hash()).isEqualTo("789456");
}
Expand Down Expand Up @@ -750,7 +750,7 @@ public void return_file_data_from_module() throws Exception {

dbSession.commit();

ProjectRepository ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(module.key()));
ProjectRepositories ref = loader.load(ProjectRepositoryQuery.create().setModuleKey(module.key()));
assertThat(ref.fileData(module.key(), moduleFile.path()).hash()).isEqualTo("789456");
assertThat(ref.fileData(project.key(), projectFile.path())).isNull();
}
Expand Down

0 comments on commit 2ccd693

Please sign in to comment.