Bläddra i källkod

Auto-generate sonar-ws for integration tests

tags/7.0-RC1
Daniel Schwarz 6 år sedan
förälder
incheckning
bff9cf373e
100 ändrade filer med 526 tillägg och 549 borttagningar
  1. 6
    0
      pom.xml
  2. 5
    5
      server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/GroupTester.java
  3. 5
    6
      server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/OrganizationTester.java
  4. 7
    2
      server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/ProjectTester.java
  5. 8
    7
      server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/QGateTester.java
  6. 2
    2
      server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/QProfileTester.java
  7. 4
    4
      server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/UserTester.java
  8. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/batch/ProjectAction.java
  9. 10
    9
      server/sonar-server/src/main/java/org/sonar/server/branch/ws/ListAction.java
  10. 31
    29
      server/sonar-server/src/main/java/org/sonar/server/ce/ws/ActivityAction.java
  11. 8
    9
      server/sonar-server/src/main/java/org/sonar/server/ce/ws/ActivityStatusAction.java
  12. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/ce/ws/ComponentAction.java
  13. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/ce/ws/SubmitAction.java
  14. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/ce/ws/TaskAction.java
  15. 13
    13
      server/sonar-server/src/main/java/org/sonar/server/ce/ws/TaskFormatter.java
  16. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/ce/ws/TaskTypesAction.java
  17. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/ce/ws/WorkerCountAction.java
  18. 5
    5
      server/sonar-server/src/main/java/org/sonar/server/component/ws/ComponentDtoToWsComponent.java
  19. 4
    4
      server/sonar-server/src/main/java/org/sonar/server/component/ws/SearchAction.java
  20. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/component/ws/SearchProjectsAction.java
  21. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/component/ws/ShowAction.java
  22. 6
    6
      server/sonar-server/src/main/java/org/sonar/server/component/ws/SuggestionsAction.java
  23. 5
    5
      server/sonar-server/src/main/java/org/sonar/server/component/ws/TreeAction.java
  24. 8
    8
      server/sonar-server/src/main/java/org/sonar/server/duplication/ws/ShowResponseBuilder.java
  25. 4
    4
      server/sonar-server/src/main/java/org/sonar/server/edition/ws/ApplyLicenseAction.java
  26. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/edition/ws/FormDataAction.java
  27. 9
    9
      server/sonar-server/src/main/java/org/sonar/server/edition/ws/PreviewAction.java
  28. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/edition/ws/StatusAction.java
  29. 4
    4
      server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentAction.java
  30. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentDtoToWsComponent.java
  31. 7
    7
      server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentTreeAction.java
  32. 5
    5
      server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentTreeData.java
  33. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/measure/ws/MeasureDtoToWsMeasure.java
  34. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/measure/ws/SearchAction.java
  35. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/measure/ws/SearchHistoryAction.java
  36. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/measure/ws/SearchHistoryResponseFactory.java
  37. 5
    5
      server/sonar-server/src/main/java/org/sonar/server/measure/ws/SnapshotDtoToWsPeriods.java
  38. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/permission/ws/GroupsAction.java
  39. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/permission/ws/SearchGlobalPermissionsAction.java
  40. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/permission/ws/SearchProjectPermissionsAction.java
  41. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/permission/ws/UsersAction.java
  42. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/CreateTemplateAction.java
  43. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/PermissionTemplateDtoToPermissionTemplateResponse.java
  44. 7
    7
      server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/SearchTemplatesAction.java
  45. 5
    5
      server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateGroupsAction.java
  46. 5
    5
      server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateUsersAction.java
  47. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/UpdateTemplateAction.java
  48. 16
    16
      server/sonar-server/src/main/java/org/sonar/server/platform/ws/HealthActionSupport.java
  49. 15
    15
      server/sonar-server/src/main/java/org/sonar/server/platform/ws/StatusAction.java
  50. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/project/ws/BulkUpdateKeyAction.java
  51. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/project/ws/CreateAction.java
  52. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/project/ws/ProvisionedAction.java
  53. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/project/ws/SearchAction.java
  54. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/project/ws/SearchMyProjectsAction.java
  55. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/projectlink/ws/CreateAction.java
  56. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/projectlink/ws/SearchAction.java
  57. 4
    4
      server/sonar-server/src/main/java/org/sonar/server/projecttag/ws/SearchAction.java
  58. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/AppAction.java
  59. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/CreateAction.java
  60. 18
    33
      server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/CreateConditionAction.java
  61. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/GetByProjectAction.java
  62. 19
    26
      server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/ProjectStatusAction.java
  63. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QualityGateDetailsFormatter.java
  64. 8
    16
      server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/SelectAction.java
  65. 17
    28
      server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/UpdateConditionAction.java
  66. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/CopyAction.java
  67. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/CreateAction.java
  68. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/InheritanceAction.java
  69. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/SearchAction.java
  70. 4
    4
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/SearchGroupsAction.java
  71. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/SearchUsersAction.java
  72. 5
    5
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/ShowAction.java
  73. 4
    4
      server/sonar-server/src/main/java/org/sonar/server/root/ws/SearchAction.java
  74. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/test/ws/CoveredFilesAction.java
  75. 4
    4
      server/sonar-server/src/main/java/org/sonar/server/test/ws/ListAction.java
  76. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/user/ws/CreateAction.java
  77. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/user/ws/CurrentAction.java
  78. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/user/ws/GroupsAction.java
  79. 5
    5
      server/sonar-server/src/main/java/org/sonar/server/user/ws/IdentityProvidersAction.java
  80. 8
    8
      server/sonar-server/src/main/java/org/sonar/server/user/ws/SearchAction.java
  81. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/CreateAction.java
  82. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/GroupWsSupport.java
  83. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/SearchAction.java
  84. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/UpdateAction.java
  85. 5
    5
      server/sonar-server/src/main/java/org/sonar/server/usertoken/ws/GenerateAction.java
  86. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/usertoken/ws/SearchAction.java
  87. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/batch/ProjectActionTest.java
  88. 9
    9
      server/sonar-server/src/test/java/org/sonar/server/branch/ws/ListActionTest.java
  89. 12
    11
      server/sonar-server/src/test/java/org/sonar/server/ce/ws/ActivityActionTest.java
  90. 9
    8
      server/sonar-server/src/test/java/org/sonar/server/ce/ws/ActivityStatusActionTest.java
  91. 27
    26
      server/sonar-server/src/test/java/org/sonar/server/ce/ws/ComponentActionTest.java
  92. 6
    5
      server/sonar-server/src/test/java/org/sonar/server/ce/ws/SubmitActionTest.java
  93. 33
    32
      server/sonar-server/src/test/java/org/sonar/server/ce/ws/TaskActionTest.java
  94. 16
    15
      server/sonar-server/src/test/java/org/sonar/server/ce/ws/TaskFormatterTest.java
  95. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/ce/ws/WorkerCountActionTest.java
  96. 2
    2
      server/sonar-server/src/test/java/org/sonar/server/component/ws/SearchActionTest.java
  97. 2
    2
      server/sonar-server/src/test/java/org/sonar/server/component/ws/SearchProjectsActionTest.java
  98. 2
    3
      server/sonar-server/src/test/java/org/sonar/server/component/ws/ShowActionTest.java
  99. 5
    5
      server/sonar-server/src/test/java/org/sonar/server/component/ws/SuggestionsActionTest.java
  100. 0
    0
      server/sonar-server/src/test/java/org/sonar/server/component/ws/TreeActionTest.java

+ 6
- 0
pom.xml Visa fil

@@ -29,6 +29,7 @@
<module>sonar-markdown</module>
<module>sonar-plugin-api</module>
<module>server</module>
<module>sonar-ws-generated</module>
<module>sonar-ws</module>
<module>sonar-testing-harness</module>
<module>plugins/sonar-xoo-plugin</module>
@@ -431,6 +432,11 @@
<artifactId>sonar-scanner-protocol</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>sonar-ws-generated</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>sonar-ws</artifactId>

+ 5
- 5
server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/GroupTester.java Visa fil

@@ -26,9 +26,9 @@ import java.util.function.Consumer;
import java.util.stream.Collectors;
import javax.annotation.Nullable;
import org.sonarqube.ws.Organizations;
import org.sonarqube.ws.WsUserGroups;
import org.sonarqube.ws.WsUsers;
import org.sonarqube.ws.WsUsers.GroupsWsResponse.Group;
import org.sonarqube.ws.UserGroups;
import org.sonarqube.ws.Users;
import org.sonarqube.ws.Users.GroupsWsResponse.Group;
import org.sonarqube.ws.client.user.GroupsRequest;
import org.sonarqube.ws.client.usergroup.AddUserWsRequest;
import org.sonarqube.ws.client.usergroup.CreateWsRequest;
@@ -47,7 +47,7 @@ public class GroupTester {
}

@SafeVarargs
public final WsUserGroups.Group generate(@Nullable Organizations.Organization organization, Consumer<CreateWsRequest.Builder>... populators) {
public final UserGroups.Group generate(@Nullable Organizations.Organization organization, Consumer<CreateWsRequest.Builder>... populators) {
int id = ID_GENERATOR.getAndIncrement();
CreateWsRequest.Builder request = CreateWsRequest.builder()
.setName("Group" + id)
@@ -62,7 +62,7 @@ public class GroupTester {
.setOrganization(organization != null ? organization.getKey() : null)
.setLogin(userLogin)
.build();
WsUsers.GroupsWsResponse response = session.users().service().groups(request);
Users.GroupsWsResponse response = session.users().service().groups(request);
return response.getGroupsList();
}


+ 5
- 6
server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/OrganizationTester.java Visa fil

@@ -25,7 +25,7 @@ import java.util.function.Consumer;
import javax.annotation.Nullable;
import org.assertj.core.api.Assertions;
import org.sonarqube.ws.Organizations;
import org.sonarqube.ws.WsUsers;
import org.sonarqube.ws.Users;
import org.sonarqube.ws.client.HttpException;
import org.sonarqube.ws.client.PostRequest;
import org.sonarqube.ws.client.organization.CreateWsRequest;
@@ -35,7 +35,6 @@ import org.sonarqube.ws.client.organization.SearchWsRequest;
import org.sonarqube.ws.client.user.GroupsRequest;

import static java.util.Arrays.stream;
import static org.assertj.core.api.Assertions.assertThat;

public class OrganizationTester {

@@ -70,7 +69,7 @@ public class OrganizationTester {
return service().create(request.build()).getOrganization();
}

public OrganizationTester addMember(Organizations.Organization organization, WsUsers.CreateWsResponse.User user) {
public OrganizationTester addMember(Organizations.Organization organization, Users.CreateWsResponse.User user) {
service().addMember(organization.getKey(), user.getLogin());
return this;
}
@@ -89,7 +88,7 @@ public class OrganizationTester {
return this;
}

public OrganizationTester assertThatMemberOf(Organizations.Organization organization, WsUsers.CreateWsResponse.User user) {
public OrganizationTester assertThatMemberOf(Organizations.Organization organization, Users.CreateWsResponse.User user) {
return assertThatMemberOf(organization, user.getLogin());
}

@@ -99,7 +98,7 @@ public class OrganizationTester {
return this;
}

public OrganizationTester assertThatNotMemberOf(Organizations.Organization organization, WsUsers.CreateWsResponse.User user) {
public OrganizationTester assertThatNotMemberOf(Organizations.Organization organization, Users.CreateWsResponse.User user) {
return assertThatNotMemberOf(organization, user.getLogin());
}

@@ -126,7 +125,7 @@ public class OrganizationTester {
}

private void verifyMembersGroupMembership(String userLogin, @Nullable Organizations.Organization organization, boolean isMember) {
List<WsUsers.GroupsWsResponse.Group> groups = session.wsClient().users().groups(GroupsRequest.builder()
List<Users.GroupsWsResponse.Group> groups = session.wsClient().users().groups(GroupsRequest.builder()
.setLogin(userLogin)
.setOrganization(organization != null ? organization.getKey() : null)
.setQuery("Members")

+ 7
- 2
server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/ProjectTester.java Visa fil

@@ -23,7 +23,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Consumer;
import javax.annotation.Nullable;
import org.sonarqube.ws.Organizations;
import org.sonarqube.ws.WsProjects;
import org.sonarqube.ws.Projects;
import org.sonarqube.ws.client.project.CreateRequest;
import org.sonarqube.ws.client.project.DeleteRequest;
import org.sonarqube.ws.client.project.ProjectsService;
@@ -49,7 +49,12 @@ public class ProjectTester {
}

@SafeVarargs
public final WsProjects.CreateWsResponse.Project generate(@Nullable Organizations.Organization organization, Consumer<CreateRequest.Builder>... populators) {
public final Projects.CreateWsResponse.Project provision(Consumer<CreateRequest.Builder>... populators) {
return provision(null, populators);
}

@SafeVarargs
public final Projects.CreateWsResponse.Project provision(@Nullable Organizations.Organization organization, Consumer<CreateRequest.Builder>... populators) {
int id = ID_GENERATOR.getAndIncrement();
CreateRequest.Builder request = CreateRequest.builder()
.setKey("key" + id)

+ 8
- 7
server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/QGateTester.java Visa fil

@@ -24,12 +24,13 @@ import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import org.sonarqube.ws.WsProjects.CreateWsResponse.Project;
import org.sonarqube.ws.WsQualityGates.CreateWsResponse;
import org.sonarqube.ws.Projects.CreateWsResponse.Project;
import org.sonarqube.ws.Qualitygates.CreateWsResponse;
import org.sonarqube.ws.client.GetRequest;
import org.sonarqube.ws.client.PostRequest;
import org.sonarqube.ws.client.qualitygate.QualityGatesService;
import org.sonarqube.ws.client.qualitygate.SelectWsRequest;
import org.sonarqube.ws.client.qualitygates.CreateRequest;
import org.sonarqube.ws.client.qualitygates.QualitygatesService;
import org.sonarqube.ws.client.qualitygates.SelectRequest;

public class QGateTester {
private static final AtomicInteger ID_GENERATOR = new AtomicInteger();
@@ -40,7 +41,7 @@ public class QGateTester {
this.session = session;
}

public QualityGatesService service() {
public QualitygatesService service() {
return session.wsClient().qualityGates();
}

@@ -54,11 +55,11 @@ public class QGateTester {

public CreateWsResponse generate() {
int id = ID_GENERATOR.getAndIncrement();
return session.wsClient().qualityGates().create("QualityGate" + id);
return session.wsClient().qualityGates().create(new CreateRequest().setName("QualityGate" + id));
}

public void associateProject(CreateWsResponse qualityGate, Project project){
service().associateProject(new SelectWsRequest().setGateId(qualityGate.getId()).setProjectKey(project.getKey()));
service().select(new SelectRequest().setGateId(String.valueOf(qualityGate.getId())).setProjectKey(project.getKey()));
}

public static class ListResponse {

+ 2
- 2
server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/QProfileTester.java Visa fil

@@ -25,9 +25,9 @@ import java.util.function.Consumer;
import org.assertj.core.api.Assertions;
import org.sonarqube.ws.Common;
import org.sonarqube.ws.Organizations.Organization;
import org.sonarqube.ws.QualityProfiles.CreateWsResponse.QualityProfile;
import org.sonarqube.ws.Qualityprofiles.CreateWsResponse.QualityProfile;
import org.sonarqube.ws.Rules;
import org.sonarqube.ws.WsProjects.CreateWsResponse.Project;
import org.sonarqube.ws.Projects.CreateWsResponse.Project;
import org.sonarqube.ws.client.HttpException;
import org.sonarqube.ws.client.qualityprofile.ActivateRuleWsRequest;
import org.sonarqube.ws.client.qualityprofile.AddProjectRequest;

+ 4
- 4
server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/UserTester.java Visa fil

@@ -24,8 +24,8 @@ import java.util.Optional;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Consumer;
import org.sonarqube.ws.Organizations;
import org.sonarqube.ws.WsUsers;
import org.sonarqube.ws.WsUsers.CreateWsResponse.User;
import org.sonarqube.ws.Users;
import org.sonarqube.ws.Users.CreateWsResponse.User;
import org.sonarqube.ws.client.PostRequest;
import org.sonarqube.ws.client.user.CreateRequest;
import org.sonarqube.ws.client.user.SearchRequest;
@@ -122,8 +122,8 @@ public class UserTester {
return session.wsClient().users();
}

public Optional<WsUsers.SearchWsResponse.User> getByLogin(String login) {
List<WsUsers.SearchWsResponse.User> users = session.wsClient().users().search(SearchRequest.builder().setQuery(login).build()).getUsersList();
public Optional<Users.SearchWsResponse.User> getByLogin(String login) {
List<Users.SearchWsResponse.User> users = session.wsClient().users().search(SearchRequest.builder().setQuery(login).build()).getUsersList();
if (users.size() == 1) {
return Optional.of(users.get(0));
}

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/batch/ProjectAction.java Visa fil

@@ -27,8 +27,8 @@ import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.scanner.protocol.input.FileData;
import org.sonar.scanner.protocol.input.ProjectRepositories;
import org.sonarqube.ws.WsBatch.WsProjectResponse;
import org.sonarqube.ws.WsBatch.WsProjectResponse.FileData.Builder;
import org.sonarqube.ws.Batch.WsProjectResponse;
import org.sonarqube.ws.Batch.WsProjectResponse.FileData.Builder;

import static org.sonar.core.util.Protobuf.setNullable;
import static org.sonar.server.ws.KeyExamples.KEY_BRANCH_EXAMPLE_001;

+ 10
- 9
server/sonar-server/src/main/java/org/sonar/server/branch/ws/ListAction.java Visa fil

@@ -45,7 +45,7 @@ import org.sonar.server.issue.index.IssueIndex;
import org.sonar.server.user.UserSession;
import org.sonar.server.ws.WsUtils;
import org.sonarqube.ws.Common;
import org.sonarqube.ws.WsBranches;
import org.sonarqube.ws.ProjectBranches;

import static com.google.common.base.Preconditions.checkArgument;
import static java.util.Collections.singletonList;
@@ -112,7 +112,7 @@ public class ListAction implements BranchWsAction {
.selectLastAnalysesByRootComponentUuids(dbSession, branches.stream().map(BranchDto::getUuid).collect(Collectors.toList()))
.stream().collect(uniqueIndex(SnapshotDto::getComponentUuid, s -> formatDateTime(s.getCreatedAt())));

WsBranches.ListWsResponse.Builder protobufResponse = WsBranches.ListWsResponse.newBuilder();
ProjectBranches.ListWsResponse.Builder protobufResponse = ProjectBranches.ListWsResponse.newBuilder();
branches.stream()
.forEach(b -> addBranch(protobufResponse, b, mergeBranchesByUuid, qualityGateMeasuresByComponentUuids.get(b.getUuid()), branchStatisticsByBranchUuid.get(b.getUuid()),
analysisDateByBranchUuid.get(b.getUuid())));
@@ -120,9 +120,9 @@ public class ListAction implements BranchWsAction {
}
}

private static void addBranch(WsBranches.ListWsResponse.Builder response, BranchDto branch, Map<String, BranchDto> mergeBranchesByUuid, @Nullable MeasureDto qualityGateMeasure,
BranchStatistics branchStatistics, @Nullable String analysisDate) {
WsBranches.Branch.Builder builder = toBranchBuilder(branch, Optional.ofNullable(mergeBranchesByUuid.get(branch.getMergeBranchUuid())));
private static void addBranch(ProjectBranches.ListWsResponse.Builder response, BranchDto branch, Map<String, BranchDto> mergeBranchesByUuid,
@Nullable MeasureDto qualityGateMeasure, BranchStatistics branchStatistics, @Nullable String analysisDate) {
ProjectBranches.Branch.Builder builder = toBranchBuilder(branch, Optional.ofNullable(mergeBranchesByUuid.get(branch.getMergeBranchUuid())));
setBranchStatus(builder, branch, qualityGateMeasure, branchStatistics);
if (analysisDate != null) {
builder.setAnalysisDate(analysisDate);
@@ -130,8 +130,8 @@ public class ListAction implements BranchWsAction {
response.addBranches(builder);
}

private static WsBranches.Branch.Builder toBranchBuilder(BranchDto branch, Optional<BranchDto> mergeBranch) {
WsBranches.Branch.Builder builder = WsBranches.Branch.newBuilder();
private static ProjectBranches.Branch.Builder toBranchBuilder(BranchDto branch, Optional<BranchDto> mergeBranch) {
ProjectBranches.Branch.Builder builder = ProjectBranches.Branch.newBuilder();
String branchKey = branch.getKey();
setNullable(branchKey, builder::setName);
builder.setIsMain(branch.isMain());
@@ -147,8 +147,9 @@ public class ListAction implements BranchWsAction {
return builder;
}

private static void setBranchStatus(WsBranches.Branch.Builder builder, BranchDto branch, @Nullable MeasureDto qualityGateMeasure, @Nullable BranchStatistics branchStatistics) {
WsBranches.Branch.Status.Builder statusBuilder = WsBranches.Branch.Status.newBuilder();
private static void setBranchStatus(ProjectBranches.Branch.Builder builder, BranchDto branch, @Nullable MeasureDto qualityGateMeasure,
@Nullable BranchStatistics branchStatistics) {
ProjectBranches.Branch.Status.Builder statusBuilder = ProjectBranches.Branch.Status.newBuilder();
if (branch.getBranchType() == LONG && qualityGateMeasure != null) {
statusBuilder.setQualityGateStatus(qualityGateMeasure.getData());
}

+ 31
- 29
server/sonar-server/src/main/java/org/sonar/server/ce/ws/ActivityAction.java Visa fil

@@ -48,10 +48,12 @@ import org.sonar.db.ce.CeTaskTypes;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.component.ComponentQuery;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsCe;
import org.sonarqube.ws.WsCe.ActivityResponse;
import org.sonarqube.ws.client.ce.ActivityWsRequest;
import org.sonarqube.ws.Ce;
import org.sonarqube.ws.Ce.ActivityResponse;
import org.sonarqube.ws.client.ce.ActivityRequest;

import static java.lang.Boolean.parseBoolean;
import static java.lang.Integer.parseInt;
import static java.lang.String.format;
import static java.util.Collections.singletonList;
import static org.apache.commons.lang.StringUtils.defaultString;
@@ -161,32 +163,32 @@ public class ActivityAction implements CeWsAction {
writeProtobuf(activityResponse, wsRequest, wsResponse);
}

private ActivityResponse doHandle(ActivityWsRequest request) {
private ActivityResponse doHandle(ActivityRequest request) {

try (DbSession dbSession = dbClient.openSession(false)) {
ComponentDto component = loadComponent(dbSession, request);
checkPermission(component);
// if a task searched by uuid is found all other parameters are ignored
Optional<WsCe.Task> taskSearchedById = searchTaskByUuid(dbSession, request);
Optional<Ce.Task> taskSearchedById = searchTaskByUuid(dbSession, request);
if (taskSearchedById.isPresent()) {
return buildResponse(
singletonList(taskSearchedById.get()),
Collections.emptyList(),
request.getPageSize());
parseInt(request.getPs()));
}

CeTaskQuery query = buildQuery(dbSession, request, component);
List<WsCe.Task> queuedTasks = loadQueuedTasks(dbSession, request, query);
List<WsCe.Task> pastTasks = loadPastTasks(dbSession, request, query);
List<Ce.Task> queuedTasks = loadQueuedTasks(dbSession, request, query);
List<Ce.Task> pastTasks = loadPastTasks(dbSession, request, query);
return buildResponse(
queuedTasks,
pastTasks,
request.getPageSize());
parseInt(request.getPs()));
}
}

@CheckForNull
private ComponentDto loadComponent(DbSession dbSession, ActivityWsRequest request) {
private ComponentDto loadComponent(DbSession dbSession, ActivityRequest request) {
String componentId = request.getComponentId();
if (componentId == null) {
return null;
@@ -205,8 +207,8 @@ public class ActivityAction implements CeWsAction {
}
}

private Optional<WsCe.Task> searchTaskByUuid(DbSession dbSession, ActivityWsRequest request) {
String textQuery = request.getQuery();
private Optional<Ce.Task> searchTaskByUuid(DbSession dbSession, ActivityRequest request) {
String textQuery = request.getQ();
if (textQuery == null) {
return Optional.absent();
}
@@ -220,10 +222,10 @@ public class ActivityAction implements CeWsAction {
return activity.map(ceActivityDto -> Optional.of(formatter.formatActivity(dbSession, ceActivityDto, null))).orElseGet(Optional::absent);
}

private CeTaskQuery buildQuery(DbSession dbSession, ActivityWsRequest request, @Nullable ComponentDto component) {
private CeTaskQuery buildQuery(DbSession dbSession, ActivityRequest request, @Nullable ComponentDto component) {
CeTaskQuery query = new CeTaskQuery();
query.setType(request.getType());
query.setOnlyCurrents(request.getOnlyCurrents());
query.setOnlyCurrents(parseBoolean(request.getOnlyCurrents()));
Date minSubmittedAt = parseStartingDateOrDateTime(request.getMinSubmittedAt());
query.setMinSubmittedAt(minSubmittedAt == null ? null : minSubmittedAt.getTime());
Date maxExecutedAt = parseEndingDateOrDateTime(request.getMaxExecutedAt());
@@ -234,7 +236,7 @@ public class ActivityAction implements CeWsAction {
query.setStatuses(request.getStatus());
}

String componentQuery = request.getQuery();
String componentQuery = request.getQ();
if (component != null) {
query.setComponentUuid(component.uuid());
} else if (componentQuery != null) {
@@ -251,28 +253,28 @@ public class ActivityAction implements CeWsAction {
return dbClient.componentDao().selectByQuery(dbSession, componentDtoQuery, 0, CeTaskQuery.MAX_COMPONENT_UUIDS);
}

private List<WsCe.Task> loadQueuedTasks(DbSession dbSession, ActivityWsRequest request, CeTaskQuery query) {
List<CeQueueDto> dtos = dbClient.ceQueueDao().selectByQueryInDescOrder(dbSession, query, request.getPageSize());
private List<Ce.Task> loadQueuedTasks(DbSession dbSession, ActivityRequest request, CeTaskQuery query) {
List<CeQueueDto> dtos = dbClient.ceQueueDao().selectByQueryInDescOrder(dbSession, query, parseInt(request.getPs()));
return formatter.formatQueue(dbSession, dtos);
}

private List<WsCe.Task> loadPastTasks(DbSession dbSession, ActivityWsRequest request, CeTaskQuery query) {
List<CeActivityDto> dtos = dbClient.ceActivityDao().selectByQuery(dbSession, query, forPage(1).andSize(request.getPageSize()));
private List<Ce.Task> loadPastTasks(DbSession dbSession, ActivityRequest request, CeTaskQuery query) {
List<CeActivityDto> dtos = dbClient.ceActivityDao().selectByQuery(dbSession, query, forPage(1).andSize(parseInt(request.getPs())));
return formatter.formatActivity(dbSession, dtos);
}

private static ActivityResponse buildResponse(Iterable<WsCe.Task> queuedTasks, Iterable<WsCe.Task> pastTasks, int pageSize) {
WsCe.ActivityResponse.Builder wsResponseBuilder = WsCe.ActivityResponse.newBuilder();
private static ActivityResponse buildResponse(Iterable<Ce.Task> queuedTasks, Iterable<Ce.Task> pastTasks, int pageSize) {
Ce.ActivityResponse.Builder wsResponseBuilder = Ce.ActivityResponse.newBuilder();

int nbInsertedTasks = 0;
for (WsCe.Task queuedTask : queuedTasks) {
for (Ce.Task queuedTask : queuedTasks) {
if (nbInsertedTasks < pageSize) {
wsResponseBuilder.addTasks(queuedTask);
nbInsertedTasks++;
}
}

for (WsCe.Task pastTask : pastTasks) {
for (Ce.Task pastTask : pastTasks) {
if (nbInsertedTasks < pageSize) {
wsResponseBuilder.addTasks(pastTask);
nbInsertedTasks++;
@@ -281,18 +283,18 @@ public class ActivityAction implements CeWsAction {
return wsResponseBuilder.build();
}

private static ActivityWsRequest toSearchWsRequest(Request request) {
ActivityWsRequest activityWsRequest = new ActivityWsRequest()
private static ActivityRequest toSearchWsRequest(Request request) {
ActivityRequest activityWsRequest = new ActivityRequest()
.setComponentId(request.param(PARAM_COMPONENT_ID))
.setQuery(defaultString(request.param(Param.TEXT_QUERY), request.param(PARAM_COMPONENT_QUERY)))
.setQ(defaultString(request.param(Param.TEXT_QUERY), request.param(PARAM_COMPONENT_QUERY)))
.setStatus(request.paramAsStrings(PARAM_STATUS))
.setType(request.param(PARAM_TYPE))
.setMinSubmittedAt(request.param(PARAM_MIN_SUBMITTED_AT))
.setMaxExecutedAt(request.param(PARAM_MAX_EXECUTED_AT))
.setOnlyCurrents(request.paramAsBoolean(PARAM_ONLY_CURRENTS))
.setPageSize(request.mandatoryParamAsInt(Param.PAGE_SIZE));
.setOnlyCurrents(String.valueOf(request.paramAsBoolean(PARAM_ONLY_CURRENTS)))
.setPs(String.valueOf(request.mandatoryParamAsInt(Param.PAGE_SIZE)));

checkRequest(activityWsRequest.getComponentId() == null || activityWsRequest.getQuery() == null, "%s and %s must not be set at the same time",
checkRequest(activityWsRequest.getComponentId() == null || activityWsRequest.getQ() == null, "%s and %s must not be set at the same time",
PARAM_COMPONENT_ID, PARAM_COMPONENT_QUERY);
return activityWsRequest;
}

+ 8
- 9
server/sonar-server/src/main/java/org/sonar/server/ce/ws/ActivityStatusAction.java Visa fil

@@ -34,8 +34,8 @@ import org.sonar.db.component.ComponentDto;
import org.sonar.server.component.ComponentFinder;
import org.sonar.server.user.UserSession;
import org.sonar.server.ws.KeyExamples;
import org.sonarqube.ws.WsCe.ActivityStatusWsResponse;
import org.sonarqube.ws.client.ce.ActivityStatusWsRequest;
import org.sonarqube.ws.Ce.ActivityStatusWsResponse;
import org.sonarqube.ws.client.ce.ActivityStatusRequest;

import static org.sonar.server.component.ComponentFinder.ParamNames.COMPONENT_ID_AND_KEY;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
@@ -80,7 +80,7 @@ public class ActivityStatusAction implements CeWsAction {
writeProtobuf(activityStatusResponse, request, response);
}

private ActivityStatusWsResponse doHandle(ActivityStatusWsRequest request) {
private ActivityStatusWsResponse doHandle(ActivityStatusRequest request) {
try (DbSession dbSession = dbClient.openSession(false)) {
Optional<ComponentDto> component = searchComponent(dbSession, request);
String componentUuid = component.isPresent() ? component.get().uuid() : null;
@@ -97,7 +97,7 @@ public class ActivityStatusAction implements CeWsAction {
}
}

private Optional<ComponentDto> searchComponent(DbSession dbSession, ActivityStatusWsRequest request) {
private Optional<ComponentDto> searchComponent(DbSession dbSession, ActivityStatusRequest request) {
ComponentDto component = null;
if (hasComponentInRequest(request)) {
component = componentFinder.getByUuidOrKey(dbSession, request.getComponentId(), request.getComponentKey(), COMPONENT_ID_AND_KEY);
@@ -113,14 +113,13 @@ public class ActivityStatusAction implements CeWsAction {
}
}

private static boolean hasComponentInRequest(ActivityStatusWsRequest request) {
private static boolean hasComponentInRequest(ActivityStatusRequest request) {
return request.getComponentId() != null || request.getComponentKey() != null;
}

private static ActivityStatusWsRequest toWsRequest(Request request) {
return ActivityStatusWsRequest.newBuilder()
private static ActivityStatusRequest toWsRequest(Request request) {
return new ActivityStatusRequest()
.setComponentId(request.param(PARAM_COMPONENT_ID))
.setComponentKey(request.param(DEPRECATED_PARAM_COMPONENT_KEY))
.build();
.setComponentKey(request.param(DEPRECATED_PARAM_COMPONENT_KEY));
}
}

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/ce/ws/ComponentAction.java Visa fil

@@ -35,7 +35,7 @@ import org.sonar.db.component.ComponentDto;
import org.sonar.server.component.ComponentFinder;
import org.sonar.server.user.UserSession;
import org.sonar.server.ws.KeyExamples;
import org.sonarqube.ws.WsCe.ProjectResponse;
import org.sonarqube.ws.Ce.ProjectResponse;

import static org.sonar.db.Pagination.forPage;
import static org.sonar.server.component.ComponentFinder.ParamNames.COMPONENT_ID_AND_COMPONENT;

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/ce/ws/SubmitAction.java Visa fil

@@ -31,7 +31,7 @@ import org.sonar.ce.queue.CeTask;
import org.sonar.server.computation.queue.ReportSubmitter;
import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.ws.WsUtils;
import org.sonarqube.ws.WsCe;
import org.sonarqube.ws.Ce;

import static org.sonar.core.component.ComponentKeys.MAX_COMPONENT_KEY_LENGTH;
import static org.sonar.db.component.ComponentValidator.MAX_COMPONENT_NAME_LENGTH;
@@ -116,7 +116,7 @@ public class SubmitAction implements CeWsAction {

try (InputStream report = new BufferedInputStream(wsRequest.mandatoryParamAsPart(PARAM_REPORT_DATA).getInputStream())) {
CeTask task = reportSubmitter.submit(organizationKey, projectKey, projectBranch, projectName, characteristics, report);
WsCe.SubmitResponse submitResponse = WsCe.SubmitResponse.newBuilder()
Ce.SubmitResponse submitResponse = Ce.SubmitResponse.newBuilder()
.setTaskId(task.getUuid())
.setProjectId(task.getComponentUuid())
.build();

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/ce/ws/TaskAction.java Visa fil

@@ -42,7 +42,7 @@ import org.sonar.db.component.ComponentDto;
import org.sonar.db.permission.OrganizationPermission;
import org.sonar.server.user.UserSession;
import org.sonar.server.ws.WsUtils;
import org.sonarqube.ws.WsCe;
import org.sonarqube.ws.Ce;

import static org.sonar.core.permission.GlobalPermissions.SCAN_EXECUTION;
import static org.sonar.server.user.AbstractUserSession.insufficientPrivilegesException;
@@ -92,7 +92,7 @@ public class TaskAction implements CeWsAction {
public void handle(Request wsRequest, Response wsResponse) throws Exception {
String taskUuid = wsRequest.mandatoryParam(PARAM_TASK_UUID);
try (DbSession dbSession = dbClient.openSession(false)) {
WsCe.TaskResponse.Builder wsTaskResponse = WsCe.TaskResponse.newBuilder();
Ce.TaskResponse.Builder wsTaskResponse = Ce.TaskResponse.newBuilder();
Optional<CeQueueDto> queueDto = dbClient.ceQueueDao().selectByUuid(dbSession, taskUuid);
if (queueDto.isPresent()) {
com.google.common.base.Optional<ComponentDto> component = loadComponent(dbSession, queueDto.get().getComponentUuid());

+ 13
- 13
server/sonar-server/src/main/java/org/sonar/server/ce/ws/TaskFormatter.java Visa fil

@@ -40,8 +40,8 @@ import org.sonar.db.ce.CeQueueDto;
import org.sonar.db.ce.CeTaskCharacteristicDto;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.organization.OrganizationDto;
import org.sonarqube.ws.Ce;
import org.sonarqube.ws.Common;
import org.sonarqube.ws.WsCe;

import static com.google.common.base.Preconditions.checkState;
import static java.lang.String.format;
@@ -63,17 +63,17 @@ public class TaskFormatter {
this.system2 = system2;
}

public List<WsCe.Task> formatQueue(DbSession dbSession, List<CeQueueDto> dtos) {
public List<Ce.Task> formatQueue(DbSession dbSession, List<CeQueueDto> dtos) {
DtoCache cache = DtoCache.forQueueDtos(dbClient, dbSession, dtos);
return dtos.stream().map(input -> formatQueue(input, cache)).collect(MoreCollectors.toList(dtos.size()));
}

public WsCe.Task formatQueue(DbSession dbSession, CeQueueDto queue) {
public Ce.Task formatQueue(DbSession dbSession, CeQueueDto queue) {
return formatQueue(queue, DtoCache.forQueueDtos(dbClient, dbSession, singletonList(queue)));
}

private WsCe.Task formatQueue(CeQueueDto dto, DtoCache componentDtoCache) {
WsCe.Task.Builder builder = WsCe.Task.newBuilder();
private Ce.Task formatQueue(CeQueueDto dto, DtoCache componentDtoCache) {
Ce.Task.Builder builder = Ce.Task.newBuilder();
String organizationKey = componentDtoCache.getOrganizationKey(dto.getComponentUuid());
// FIXME organization field should be set from the CeQueueDto rather than from the ComponentDto
setNullable(organizationKey, builder::setOrganization);
@@ -82,7 +82,7 @@ public class TaskFormatter {
setComponent(builder, dto.getComponentUuid(), componentDtoCache);
}
builder.setId(dto.getUuid());
builder.setStatus(WsCe.TaskStatus.valueOf(dto.getStatus().name()));
builder.setStatus(Ce.TaskStatus.valueOf(dto.getStatus().name()));
builder.setType(dto.getTaskType());
builder.setLogs(false);
setNullable(dto.getSubmitterLogin(), builder::setSubmitterLogin);
@@ -93,24 +93,24 @@ public class TaskFormatter {
return builder.build();
}

public WsCe.Task formatActivity(DbSession dbSession, CeActivityDto dto, @Nullable String scannerContext) {
public Ce.Task formatActivity(DbSession dbSession, CeActivityDto dto, @Nullable String scannerContext) {
return formatActivity(dto, DtoCache.forActivityDtos(dbClient, dbSession, singletonList(dto)), scannerContext);
}

public List<WsCe.Task> formatActivity(DbSession dbSession, List<CeActivityDto> dtos) {
public List<Ce.Task> formatActivity(DbSession dbSession, List<CeActivityDto> dtos) {
DtoCache cache = DtoCache.forActivityDtos(dbClient, dbSession, dtos);
return dtos.stream()
.map(input -> formatActivity(input, cache, null))
.collect(MoreCollectors.toList(dtos.size()));
}

private static WsCe.Task formatActivity(CeActivityDto dto, DtoCache componentDtoCache, @Nullable String scannerContext) {
WsCe.Task.Builder builder = WsCe.Task.newBuilder();
private static Ce.Task formatActivity(CeActivityDto dto, DtoCache componentDtoCache, @Nullable String scannerContext) {
Ce.Task.Builder builder = Ce.Task.newBuilder();
String organizationKey = componentDtoCache.getOrganizationKey(dto.getComponentUuid());
// FIXME organization field should be set from the CeActivityDto rather than from the ComponentDto
setNullable(organizationKey, builder::setOrganization);
builder.setId(dto.getUuid());
builder.setStatus(WsCe.TaskStatus.valueOf(dto.getStatus().name()));
builder.setStatus(Ce.TaskStatus.valueOf(dto.getStatus().name()));
builder.setType(dto.getTaskType());
builder.setLogs(false);
setNullable(dto.getComponentUuid(), uuid -> setComponent(builder, uuid, componentDtoCache).setComponentId(uuid));
@@ -133,7 +133,7 @@ public class TaskFormatter {
return builder.build();
}

private static WsCe.Task.Builder setComponent(WsCe.Task.Builder builder, @Nullable String componentUuid, DtoCache componentDtoCache) {
private static Ce.Task.Builder setComponent(Ce.Task.Builder builder, @Nullable String componentUuid, DtoCache componentDtoCache) {
ComponentDto componentDto = componentDtoCache.getComponent(componentUuid);
if (componentDto == null) {
return builder;
@@ -144,7 +144,7 @@ public class TaskFormatter {
return builder;
}

private static WsCe.Task.Builder setBranch(WsCe.Task.Builder builder, String taskUuid, DtoCache componentDtoCache) {
private static Ce.Task.Builder setBranch(Ce.Task.Builder builder, String taskUuid, DtoCache componentDtoCache) {
componentDtoCache.getBranchName(taskUuid).ifPresent(
b -> {
builder.setBranch(b);

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/ce/ws/TaskTypesAction.java Visa fil

@@ -25,7 +25,7 @@ import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.ce.taskprocessor.CeTaskProcessor;
import org.sonarqube.ws.WsCe;
import org.sonarqube.ws.Ce;

import static org.sonar.server.ws.WsUtils.writeProtobuf;

@@ -52,7 +52,7 @@ public class TaskTypesAction implements CeWsAction {

@Override
public void handle(Request request, Response response) throws Exception {
WsCe.TaskTypesWsResponse taskTypesWsResponse = WsCe.TaskTypesWsResponse.newBuilder()
Ce.TaskTypesWsResponse taskTypesWsResponse = Ce.TaskTypesWsResponse.newBuilder()
.addAllTaskTypes(taskTypes)
.build();


+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/ce/ws/WorkerCountAction.java Visa fil

@@ -25,7 +25,7 @@ import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.ce.configuration.WorkerCountProvider;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsCe.WorkerCountResponse;
import org.sonarqube.ws.Ce.WorkerCountResponse;

import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.client.ce.CeWsParameters.ACTION_WORKER_COUNT;

+ 5
- 5
server/sonar-server/src/main/java/org/sonar/server/component/ws/ComponentDtoToWsComponent.java Visa fil

@@ -28,7 +28,7 @@ import org.sonar.db.component.ComponentDto;
import org.sonar.db.component.SnapshotDto;
import org.sonar.db.organization.OrganizationDto;
import org.sonar.server.project.Visibility;
import org.sonarqube.ws.WsComponents;
import org.sonarqube.ws.Components;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Strings.emptyToNull;
@@ -46,7 +46,7 @@ class ComponentDtoToWsComponent {
// prevent instantiation
}

static WsComponents.Component.Builder componentDtoToWsComponent(ComponentDto dto, OrganizationDto organizationDto, Optional<SnapshotDto> lastAnalysis) {
static Components.Component.Builder componentDtoToWsComponent(ComponentDto dto, OrganizationDto organizationDto, Optional<SnapshotDto> lastAnalysis) {
checkArgument(
Objects.equals(dto.getOrganizationUuid(), organizationDto.getUuid()),
"OrganizationUuid (%s) of ComponentDto to convert to Ws Component is not the same as the one (%s) of the specified OrganizationDto",
@@ -54,8 +54,8 @@ class ComponentDtoToWsComponent {
return componentDtoToWsComponent(dto, organizationDto.getKey(), lastAnalysis);
}

private static WsComponents.Component.Builder componentDtoToWsComponent(ComponentDto dto, String organizationDtoKey, Optional<SnapshotDto> lastAnalysis) {
WsComponents.Component.Builder wsComponent = WsComponents.Component.newBuilder()
private static Components.Component.Builder componentDtoToWsComponent(ComponentDto dto, String organizationDtoKey, Optional<SnapshotDto> lastAnalysis) {
Components.Component.Builder wsComponent = Components.Component.newBuilder()
.setOrganization(organizationDtoKey)
.setId(dto.uuid())
.setKey(dto.getKey())
@@ -78,7 +78,7 @@ class ComponentDtoToWsComponent {
return wsComponent;
}

private static void setTags(ComponentDto dto, WsComponents.Component.Builder wsComponent) {
private static void setTags(ComponentDto dto, Components.Component.Builder wsComponent) {
if (Qualifiers.PROJECT.equals(dto.qualifier())) {
wsComponent.getTagsBuilder().addAllTags(dto.getTags());
}

+ 4
- 4
server/sonar-server/src/main/java/org/sonar/server/component/ws/SearchAction.java Visa fil

@@ -41,8 +41,8 @@ import org.sonar.server.es.SearchIdResult;
import org.sonar.server.es.SearchOptions;
import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.ws.WsUtils;
import org.sonarqube.ws.WsComponents;
import org.sonarqube.ws.WsComponents.SearchWsResponse;
import org.sonarqube.ws.Components;
import org.sonarqube.ws.Components.SearchWsResponse;
import org.sonarqube.ws.client.component.SearchWsRequest;

import static com.google.common.base.Preconditions.checkArgument;
@@ -180,13 +180,13 @@ public class SearchAction implements ComponentsWsAction {
return responseBuilder.build();
}

private static WsComponents.Component dtoToComponent(OrganizationDto organization, ComponentDto dto, String projectKey) {
private static Components.Component dtoToComponent(OrganizationDto organization, ComponentDto dto, String projectKey) {
checkArgument(
organization.getUuid().equals(dto.getOrganizationUuid()),
"No Organization found for uuid '%s'",
dto.getOrganizationUuid());

WsComponents.Component.Builder builder = WsComponents.Component.newBuilder()
Components.Component.Builder builder = Components.Component.newBuilder()
.setOrganization(organization.getKey())
.setId(dto.uuid())
.setKey(dto.getDbKey())

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/component/ws/SearchProjectsAction.java Visa fil

@@ -56,8 +56,8 @@ import org.sonar.server.measure.index.ProjectMeasuresQuery;
import org.sonar.server.project.Visibility;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.Common;
import org.sonarqube.ws.WsComponents.Component;
import org.sonarqube.ws.WsComponents.SearchProjectsWsResponse;
import org.sonarqube.ws.Components.Component;
import org.sonarqube.ws.Components.SearchProjectsWsResponse;
import org.sonarqube.ws.client.component.SearchProjectsRequest;

import static com.google.common.base.MoreObjects.firstNonNull;

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/component/ws/ShowAction.java Visa fil

@@ -34,7 +34,7 @@ import org.sonar.db.component.SnapshotDto;
import org.sonar.db.organization.OrganizationDto;
import org.sonar.server.component.ComponentFinder;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsComponents.ShowWsResponse;
import org.sonarqube.ws.Components.ShowWsResponse;
import org.sonarqube.ws.client.component.ShowWsRequest;

import static com.google.common.base.Preconditions.checkArgument;

+ 6
- 6
server/sonar-server/src/main/java/org/sonar/server/component/ws/SuggestionsAction.java Visa fil

@@ -56,10 +56,10 @@ import org.sonar.server.component.index.SuggestionQuery;
import org.sonar.server.es.DefaultIndexSettings;
import org.sonar.server.favorite.FavoriteFinder;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsComponents.SuggestionsWsResponse;
import org.sonarqube.ws.WsComponents.SuggestionsWsResponse.Category;
import org.sonarqube.ws.WsComponents.SuggestionsWsResponse.Project;
import org.sonarqube.ws.WsComponents.SuggestionsWsResponse.Suggestion;
import org.sonarqube.ws.Components.SuggestionsWsResponse;
import org.sonarqube.ws.Components.SuggestionsWsResponse.Category;
import org.sonarqube.ws.Components.SuggestionsWsResponse.Project;
import org.sonarqube.ws.Components.SuggestionsWsResponse.Suggestion;

import static com.google.common.base.Preconditions.checkState;
import static java.util.Arrays.stream;
@@ -72,8 +72,8 @@ import static org.sonar.core.util.stream.MoreCollectors.toSet;
import static org.sonar.server.component.index.SuggestionQuery.DEFAULT_LIMIT;
import static org.sonar.server.es.DefaultIndexSettings.MINIMUM_NGRAM_LENGTH;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.WsComponents.SuggestionsWsResponse.Organization;
import static org.sonarqube.ws.WsComponents.SuggestionsWsResponse.newBuilder;
import static org.sonarqube.ws.Components.SuggestionsWsResponse.Organization;
import static org.sonarqube.ws.Components.SuggestionsWsResponse.newBuilder;
import static org.sonarqube.ws.client.component.ComponentsWsParameters.ACTION_SUGGESTIONS;

public class SuggestionsAction implements ComponentsWsAction {

+ 5
- 5
server/sonar-server/src/main/java/org/sonar/server/component/ws/TreeAction.java Visa fil

@@ -50,8 +50,8 @@ import org.sonar.db.component.ComponentTreeQuery.Strategy;
import org.sonar.db.organization.OrganizationDto;
import org.sonar.server.component.ComponentFinder;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsComponents;
import org.sonarqube.ws.WsComponents.TreeWsResponse;
import org.sonarqube.ws.Components;
import org.sonarqube.ws.Components.TreeWsResponse;
import org.sonarqube.ws.client.component.TreeWsRequest;

import static com.google.common.base.Preconditions.checkArgument;
@@ -233,9 +233,9 @@ public class TreeAction implements ComponentsWsAction {
return response.build();
}

private static WsComponents.Component.Builder toWsComponent(ComponentDto component, OrganizationDto organizationDto,
Map<String, ComponentDto> referenceComponentsByUuid) {
WsComponents.Component.Builder wsComponent = componentDtoToWsComponent(component, organizationDto, Optional.empty());
private static Components.Component.Builder toWsComponent(ComponentDto component, OrganizationDto organizationDto,
Map<String, ComponentDto> referenceComponentsByUuid) {
Components.Component.Builder wsComponent = componentDtoToWsComponent(component, organizationDto, Optional.empty());

ComponentDto referenceComponent = referenceComponentsByUuid.get(component.getCopyResourceUuid());
if (referenceComponent != null) {

+ 8
- 8
server/sonar-server/src/main/java/org/sonar/server/duplication/ws/ShowResponseBuilder.java Visa fil

@@ -28,9 +28,9 @@ import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDao;
import org.sonar.db.component.ComponentDto;
import org.sonarqube.ws.WsDuplications;
import org.sonarqube.ws.WsDuplications.Block;
import org.sonarqube.ws.WsDuplications.ShowResponse;
import org.sonarqube.ws.Duplications;
import org.sonarqube.ws.Duplications.Block;
import org.sonarqube.ws.Duplications.ShowResponse;

import static com.google.common.collect.Maps.newHashMap;
import static org.sonar.core.util.Protobuf.setNullable;
@@ -61,8 +61,8 @@ public class ShowResponseBuilder {
return response.build();
}

private static WsDuplications.Duplication.Builder toWsDuplication(DuplicationsParser.Block block, Map<String, String> refByComponentKey) {
WsDuplications.Duplication.Builder wsDuplication = WsDuplications.Duplication.newBuilder();
private static Duplications.Duplication.Builder toWsDuplication(DuplicationsParser.Block block, Map<String, String> refByComponentKey) {
Duplications.Duplication.Builder wsDuplication = Duplications.Duplication.newBuilder();
block.getDuplications().stream()
.map(d -> toWsBlock(refByComponentKey, d))
.forEach(wsDuplication::addBlocks);
@@ -86,8 +86,8 @@ public class ShowResponseBuilder {
return block;
}

private static WsDuplications.File toWsFile(ComponentDto file, @Nullable ComponentDto project, @Nullable ComponentDto subProject, @Nullable String branch) {
WsDuplications.File.Builder wsFile = WsDuplications.File.newBuilder();
private static Duplications.File toWsFile(ComponentDto file, @Nullable ComponentDto project, @Nullable ComponentDto subProject, @Nullable String branch) {
Duplications.File.Builder wsFile = Duplications.File.newBuilder();
wsFile.setKey(file.getKey());
wsFile.setUuid(file.uuid());
wsFile.setName(file.longName());
@@ -113,7 +113,7 @@ public class ShowResponseBuilder {
private void writeFiles(DbSession session, ShowResponse.Builder response, Map<String, String> refByComponentKey, @Nullable String branch) {
Map<String, ComponentDto> projectsByUuid = newHashMap();
Map<String, ComponentDto> parentModulesByUuid = newHashMap();
Map<String, WsDuplications.File> filesByRef = response.getMutableFiles();
Map<String, Duplications.File> filesByRef = response.getMutableFiles();

for (Map.Entry<String, String> entry : refByComponentKey.entrySet()) {
String componentKey = entry.getKey();

+ 4
- 4
server/sonar-server/src/main/java/org/sonar/server/edition/ws/ApplyLicenseAction.java Visa fil

@@ -34,7 +34,7 @@ import org.sonar.server.platform.WebServer;
import org.sonar.server.plugins.edition.EditionInstaller;
import org.sonar.server.user.UserSession;
import org.sonar.server.ws.WsUtils;
import org.sonarqube.ws.WsEditions;
import org.sonarqube.ws.Editions;

import static com.google.common.base.Preconditions.checkState;

@@ -115,11 +115,11 @@ public class ApplyLicenseAction implements EditionsWsAction {
}
}

private WsEditions.StatusResponse buildResponse() {
WsEditions.StatusResponse.Builder builder = WsEditions.StatusResponse.newBuilder()
private Editions.StatusResponse buildResponse() {
Editions.StatusResponse.Builder builder = Editions.StatusResponse.newBuilder()
.setNextEditionKey(editionManagementState.getPendingEditionKey().orElse(""))
.setCurrentEditionKey(editionManagementState.getCurrentEditionKey().orElse(""))
.setInstallationStatus(WsEditions.InstallationStatus.valueOf(editionManagementState.getPendingInstallationStatus().name()));
.setInstallationStatus(Editions.InstallationStatus.valueOf(editionManagementState.getPendingInstallationStatus().name()));
editionManagementState.getInstallErrorMessage().ifPresent(builder::setInstallError);
return builder.build();
}

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/edition/ws/FormDataAction.java Visa fil

@@ -26,7 +26,7 @@ import org.sonar.api.server.ws.WebService;
import org.sonar.server.measure.index.ProjectMeasuresIndex;
import org.sonar.server.user.UserSession;
import org.sonar.server.ws.WsUtils;
import org.sonarqube.ws.WsEditions.FormDataResponse;
import org.sonarqube.ws.Editions.FormDataResponse;

public class FormDataAction implements EditionsWsAction {
private final UserSession userSession;

+ 9
- 9
server/sonar-server/src/main/java/org/sonar/server/edition/ws/PreviewAction.java Visa fil

@@ -31,12 +31,12 @@ import org.sonar.server.platform.WebServer;
import org.sonar.server.plugins.edition.EditionInstaller;
import org.sonar.server.user.UserSession;
import org.sonar.server.ws.WsUtils;
import org.sonarqube.ws.WsEditions;
import org.sonarqube.ws.Editions;

import static java.util.Optional.ofNullable;
import static org.sonarqube.ws.WsEditions.PreviewStatus.AUTOMATIC_INSTALL;
import static org.sonarqube.ws.WsEditions.PreviewStatus.MANUAL_INSTALL;
import static org.sonarqube.ws.WsEditions.PreviewStatus.NO_INSTALL;
import static org.sonarqube.ws.Editions.PreviewStatus.AUTOMATIC_INSTALL;
import static org.sonarqube.ws.Editions.PreviewStatus.MANUAL_INSTALL;
import static org.sonarqube.ws.Editions.PreviewStatus.NO_INSTALL;

public class PreviewAction implements EditionsWsAction {
private static final String PARAM_LICENSE = "license";
@@ -87,8 +87,8 @@ public class PreviewAction implements EditionsWsAction {
WsUtils.writeProtobuf(buildResponse(nextState), request, response);
}

private static WsEditions.PreviewResponse buildResponse(NextState nextState) {
return WsEditions.PreviewResponse.newBuilder()
private static Editions.PreviewResponse buildResponse(NextState nextState) {
return Editions.PreviewResponse.newBuilder()
.setNextEditionKey(nextState.getPendingEditionKey().orElse(""))
.setPreviewStatus(nextState.getPreviewStatus())
.build();
@@ -108,9 +108,9 @@ public class PreviewAction implements EditionsWsAction {

private static final class NextState {
private final String pendingEditionKey;
private final WsEditions.PreviewStatus previewStatus;
private final Editions.PreviewStatus previewStatus;

private NextState(@Nullable String pendingEditionKey, WsEditions.PreviewStatus previewStatus) {
private NextState(@Nullable String pendingEditionKey, Editions.PreviewStatus previewStatus) {
this.pendingEditionKey = pendingEditionKey;
this.previewStatus = previewStatus;
}
@@ -119,7 +119,7 @@ public class PreviewAction implements EditionsWsAction {
return ofNullable(pendingEditionKey);
}

WsEditions.PreviewStatus getPreviewStatus() {
Editions.PreviewStatus getPreviewStatus() {
return previewStatus;
}
}

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/edition/ws/StatusAction.java Visa fil

@@ -25,7 +25,7 @@ import org.sonar.api.server.ws.WebService;
import org.sonar.server.edition.EditionManagementState;
import org.sonar.server.user.UserSession;
import org.sonar.server.ws.WsUtils;
import org.sonarqube.ws.WsEditions;
import org.sonarqube.ws.Editions;

public class StatusAction implements EditionsWsAction {
private final UserSession userSession;
@@ -52,10 +52,10 @@ public class StatusAction implements EditionsWsAction {
.checkLoggedIn()
.checkIsSystemAdministrator();

WsEditions.StatusResponse.Builder responseBuilder = WsEditions.StatusResponse.newBuilder()
Editions.StatusResponse.Builder responseBuilder = Editions.StatusResponse.newBuilder()
.setCurrentEditionKey(editionManagementState.getCurrentEditionKey().orElse(""))
.setNextEditionKey(editionManagementState.getPendingEditionKey().orElse(""))
.setInstallationStatus(WsEditions.InstallationStatus.valueOf(editionManagementState.getPendingInstallationStatus().name()));
.setInstallationStatus(Editions.InstallationStatus.valueOf(editionManagementState.getPendingInstallationStatus().name()));
editionManagementState.getInstallErrorMessage().ifPresent(responseBuilder::setInstallError);

WsUtils.writeProtobuf(responseBuilder.build(), request, response);

+ 4
- 4
server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentAction.java Visa fil

@@ -51,8 +51,8 @@ import org.sonar.server.component.ComponentFinder;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.measure.ws.MetricDtoWithBestValue.MetricDtoToMetricDtoWithBestValueFunction;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsMeasures;
import org.sonarqube.ws.WsMeasures.ComponentWsResponse;
import org.sonarqube.ws.Measures;
import org.sonarqube.ws.Measures.ComponentWsResponse;
import org.sonarqube.ws.client.measure.ComponentWsRequest;

import static com.google.common.base.Preconditions.checkArgument;
@@ -146,7 +146,7 @@ public class ComponentAction implements MeasuresWsAction {
checkPermissions(component);
SnapshotDto analysis = dbClient.snapshotDao().selectLastAnalysisByRootComponentUuid(dbSession, component.projectUuid()).orElse(null);
List<MetricDto> metrics = searchMetrics(dbSession, request);
List<WsMeasures.Period> periods = snapshotToWsPeriods(analysis);
List<Measures.Period> periods = snapshotToWsPeriods(analysis);
List<MeasureDto> measures = searchMeasures(dbSession, component, analysis, metrics, developerId);

return buildResponse(request, component, refComponent, measures, metrics, periods);
@@ -181,7 +181,7 @@ public class ComponentAction implements MeasuresWsAction {
}

private static ComponentWsResponse buildResponse(ComponentWsRequest request, ComponentDto component, Optional<ComponentDto> refComponent, List<MeasureDto> measures,
List<MetricDto> metrics, List<WsMeasures.Period> periods) {
List<MetricDto> metrics, List<Measures.Period> periods) {
ComponentWsResponse.Builder response = ComponentWsResponse.newBuilder();
Map<Integer, MetricDto> metricsById = Maps.uniqueIndex(metrics, MetricDto::getId);
Map<MetricDto, MeasureDto> measuresByMetric = new HashMap<>();

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentDtoToWsComponent.java Visa fil

@@ -24,8 +24,8 @@ import org.sonar.core.util.Protobuf;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.measure.MeasureDto;
import org.sonar.db.metric.MetricDto;
import org.sonarqube.ws.WsMeasures;
import org.sonarqube.ws.WsMeasures.Component;
import org.sonarqube.ws.Measures;
import org.sonarqube.ws.Measures.Component;

class ComponentDtoToWsComponent {
private ComponentDtoToWsComponent() {
@@ -42,7 +42,7 @@ class ComponentDtoToWsComponent {
wsComponent.setRefKey(referenceComponent.getDbKey());
}

WsMeasures.Measure.Builder measureBuilder = WsMeasures.Measure.newBuilder();
Measures.Measure.Builder measureBuilder = Measures.Measure.newBuilder();
for (Map.Entry<MetricDto, MeasureDto> entry : measuresByMetric.entrySet()) {
MeasureDtoToWsMeasure.updateMeasureBuilder(measureBuilder, entry.getKey(), entry.getValue());
wsComponent.addMeasures(measureBuilder);

+ 7
- 7
server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentTreeAction.java Visa fil

@@ -38,8 +38,8 @@ import org.sonar.api.utils.Paging;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.component.ComponentTreeQuery.Strategy;
import org.sonar.db.metric.MetricDto;
import org.sonarqube.ws.WsMeasures;
import org.sonarqube.ws.WsMeasures.ComponentTreeWsResponse;
import org.sonarqube.ws.Measures;
import org.sonarqube.ws.Measures.ComponentTreeWsResponse;
import org.sonarqube.ws.client.measure.ComponentTreeWsRequest;

import static com.google.common.base.Preconditions.checkArgument;
@@ -256,7 +256,7 @@ public class ComponentTreeAction implements MeasuresWsAction {
}

if (areMetricsInResponse(request)) {
WsMeasures.Metrics.Builder metricsBuilder = response.getMetricsBuilder();
Measures.Metrics.Builder metricsBuilder = response.getMetricsBuilder();
for (MetricDto metricDto : data.getMetrics()) {
metricsBuilder.addMetrics(metricDtoToWsMetric(metricDto));
}
@@ -326,15 +326,15 @@ public class ComponentTreeAction implements MeasuresWsAction {
return componentTreeWsRequest;
}

private static WsMeasures.Component.Builder toWsComponent(ComponentDto component, Map<MetricDto, ComponentTreeData.Measure> measures,
Map<String, ComponentDto> referenceComponentsByUuid) {
WsMeasures.Component.Builder wsComponent = componentDtoToWsComponent(component);
private static Measures.Component.Builder toWsComponent(ComponentDto component, Map<MetricDto, ComponentTreeData.Measure> measures,
Map<String, ComponentDto> referenceComponentsByUuid) {
Measures.Component.Builder wsComponent = componentDtoToWsComponent(component);
ComponentDto referenceComponent = referenceComponentsByUuid.get(component.getCopyResourceUuid());
if (referenceComponent != null) {
wsComponent.setRefId(referenceComponent.uuid());
wsComponent.setRefKey(referenceComponent.getDbKey());
}
WsMeasures.Measure.Builder measureBuilder = WsMeasures.Measure.newBuilder();
Measures.Measure.Builder measureBuilder = Measures.Measure.newBuilder();
for (Map.Entry<MetricDto, ComponentTreeData.Measure> entry : measures.entrySet()) {
ComponentTreeData.Measure measure = entry.getValue();
updateMeasureBuilder(measureBuilder, entry.getKey(), measure.getValue(), measure.getData(), measure.getVariation());

+ 5
- 5
server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentTreeData.java Visa fil

@@ -27,7 +27,7 @@ import javax.annotation.Nullable;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.measure.MeasureDto;
import org.sonar.db.metric.MetricDto;
import org.sonarqube.ws.WsMeasures;
import org.sonarqube.ws.Measures;

import static java.lang.Double.NaN;
import static java.lang.Double.isNaN;
@@ -39,7 +39,7 @@ class ComponentTreeData {
private final int componentCount;
private final Map<String, ComponentDto> referenceComponentsByUuid;
private final List<MetricDto> metrics;
private final List<WsMeasures.Period> periods;
private final List<Measures.Period> periods;
private final Table<String, MetricDto, Measure> measuresByComponentUuidAndMetric;

private ComponentTreeData(Builder builder) {
@@ -77,7 +77,7 @@ class ComponentTreeData {
}

@CheckForNull
List<WsMeasures.Period> getPeriods() {
List<Measures.Period> getPeriods() {
return periods;
}

@@ -96,7 +96,7 @@ class ComponentTreeData {
private Map<String, ComponentDto> referenceComponentsByUuid;
private int componentCount;
private List<MetricDto> metrics;
private List<WsMeasures.Period> periods;
private List<Measures.Period> periods;
private Table<String, MetricDto, Measure> measuresByComponentUuidAndMetric;

private Builder() {
@@ -123,7 +123,7 @@ class ComponentTreeData {
return this;
}

public Builder setPeriods(List<WsMeasures.Period> periods) {
public Builder setPeriods(List<Measures.Period> periods) {
this.periods = periods;
return this;
}

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/measure/ws/MeasureDtoToWsMeasure.java Visa fil

@@ -22,8 +22,8 @@ package org.sonar.server.measure.ws;
import javax.annotation.Nullable;
import org.sonar.db.measure.MeasureDto;
import org.sonar.db.metric.MetricDto;
import org.sonarqube.ws.WsMeasures;
import org.sonarqube.ws.WsMeasures.Measure;
import org.sonarqube.ws.Measures;
import org.sonarqube.ws.Measures.Measure;

import static org.sonar.server.measure.ws.MeasureValueFormatter.formatMeasureValue;
import static org.sonar.server.measure.ws.MeasureValueFormatter.formatNumericalValue;
@@ -47,7 +47,7 @@ class MeasureDtoToWsMeasure {
measureBuilder.setValue(formatMeasureValue(doubleValue, stringValue, metric));
}

WsMeasures.PeriodValue.Builder periodBuilder = WsMeasures.PeriodValue.newBuilder();
Measures.PeriodValue.Builder periodBuilder = Measures.PeriodValue.newBuilder();
if (Double.isNaN(variation)) {
return;
}

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/measure/ws/SearchAction.java Visa fil

@@ -37,8 +37,8 @@ import org.sonar.db.component.ComponentDto;
import org.sonar.db.measure.MeasureDto;
import org.sonar.db.metric.MetricDto;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsMeasures.Measure;
import org.sonarqube.ws.WsMeasures.SearchWsResponse;
import org.sonarqube.ws.Measures.Measure;
import org.sonarqube.ws.Measures.SearchWsResponse;
import org.sonarqube.ws.client.measure.SearchRequest;

import static com.google.common.base.Preconditions.checkArgument;

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/measure/ws/SearchHistoryAction.java Visa fil

@@ -44,7 +44,7 @@ import org.sonar.db.metric.MetricDto;
import org.sonar.server.component.ComponentFinder;
import org.sonar.server.user.UserSession;
import org.sonar.server.ws.KeyExamples;
import org.sonarqube.ws.WsMeasures.SearchHistoryResponse;
import org.sonarqube.ws.Measures.SearchHistoryResponse;
import org.sonarqube.ws.client.measure.SearchHistoryRequest;

import static java.lang.String.format;

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/measure/ws/SearchHistoryResponseFactory.java Visa fil

@@ -29,9 +29,9 @@ import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.component.SnapshotDto;
import org.sonar.db.measure.MeasureDto;
import org.sonar.db.metric.MetricDto;
import org.sonarqube.ws.WsMeasures.SearchHistoryResponse;
import org.sonarqube.ws.WsMeasures.SearchHistoryResponse.HistoryMeasure;
import org.sonarqube.ws.WsMeasures.SearchHistoryResponse.HistoryValue;
import org.sonarqube.ws.Measures.SearchHistoryResponse;
import org.sonarqube.ws.Measures.SearchHistoryResponse.HistoryMeasure;
import org.sonarqube.ws.Measures.SearchHistoryResponse.HistoryValue;

import static org.sonar.api.utils.DateUtils.formatDateTime;
import static org.sonar.server.measure.ws.MeasureValueFormatter.formatMeasureValue;

+ 5
- 5
server/sonar-server/src/main/java/org/sonar/server/measure/ws/SnapshotDtoToWsPeriods.java Visa fil

@@ -23,7 +23,7 @@ import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nullable;
import org.sonar.db.component.SnapshotDto;
import org.sonarqube.ws.WsMeasures;
import org.sonarqube.ws.Measures;

import static java.util.Collections.emptyList;
import static org.sonar.api.utils.DateUtils.formatDateTime;
@@ -33,12 +33,12 @@ class SnapshotDtoToWsPeriods {
// prevent instantiation
}

static List<WsMeasures.Period> snapshotToWsPeriods(@Nullable SnapshotDto snapshot) {
static List<Measures.Period> snapshotToWsPeriods(@Nullable SnapshotDto snapshot) {
if (snapshot == null) {
return emptyList();
}

List<WsMeasures.Period> periods = new ArrayList<>();
List<Measures.Period> periods = new ArrayList<>();
if (snapshot.getPeriodDate() != null) {
periods.add(snapshotDtoToWsPeriod(snapshot));
}
@@ -46,8 +46,8 @@ class SnapshotDtoToWsPeriods {
return periods;
}

private static WsMeasures.Period snapshotDtoToWsPeriod(SnapshotDto snapshot) {
WsMeasures.Period.Builder period = WsMeasures.Period.newBuilder();
private static Measures.Period snapshotDtoToWsPeriod(SnapshotDto snapshot) {
Measures.Period.Builder period = Measures.Period.newBuilder();
period.setIndex(1);
String periodMode = snapshot.getPeriodMode();
if (periodMode != null) {

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/permission/ws/GroupsAction.java Visa fil

@@ -40,8 +40,8 @@ import org.sonar.db.permission.PermissionQuery;
import org.sonar.db.user.GroupDto;
import org.sonar.server.permission.ProjectId;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsPermissions.Group;
import org.sonarqube.ws.WsPermissions.WsGroupsResponse;
import org.sonarqube.ws.Permissions.Group;
import org.sonarqube.ws.Permissions.WsGroupsResponse;

import static java.util.Collections.emptyList;
import static org.sonar.core.util.Protobuf.setNullable;

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/permission/ws/SearchGlobalPermissionsAction.java Visa fil

@@ -30,13 +30,13 @@ import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.permission.OrganizationPermission;
import org.sonar.db.permission.PermissionQuery;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsPermissions.Permission;
import org.sonarqube.ws.WsPermissions.WsSearchGlobalPermissionsResponse;
import org.sonarqube.ws.Permissions.Permission;
import org.sonarqube.ws.Permissions.WsSearchGlobalPermissionsResponse;

import static org.sonar.server.permission.PermissionPrivilegeChecker.checkGlobalAdmin;
import static org.sonar.server.permission.ws.PermissionsWsParametersBuilder.createOrganizationParameter;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.WsPermissions.Permission.newBuilder;
import static org.sonarqube.ws.Permissions.Permission.newBuilder;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_ORGANIZATION;

public class SearchGlobalPermissionsAction implements PermissionsWsAction {

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/permission/ws/SearchProjectPermissionsAction.java Visa fil

@@ -36,9 +36,9 @@ import org.sonar.server.permission.PermissionPrivilegeChecker;
import org.sonar.server.permission.ProjectId;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.Common;
import org.sonarqube.ws.WsPermissions.Permission;
import org.sonarqube.ws.WsPermissions.SearchProjectPermissionsWsResponse;
import org.sonarqube.ws.WsPermissions.SearchProjectPermissionsWsResponse.Project;
import org.sonarqube.ws.Permissions.Permission;
import org.sonarqube.ws.Permissions.SearchProjectPermissionsWsResponse;
import org.sonarqube.ws.Permissions.SearchProjectPermissionsWsResponse.Project;
import org.sonarqube.ws.client.permission.SearchProjectPermissionsWsRequest;

import static org.sonar.server.permission.ws.PermissionRequestValidator.validateQualifier;

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/permission/ws/UsersAction.java Visa fil

@@ -39,8 +39,8 @@ import org.sonar.db.user.UserDto;
import org.sonar.server.issue.ws.AvatarResolver;
import org.sonar.server.permission.ProjectId;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsPermissions;
import org.sonarqube.ws.WsPermissions.UsersWsResponse;
import org.sonarqube.ws.Permissions;
import org.sonarqube.ws.Permissions.UsersWsResponse;

import static com.google.common.base.Strings.emptyToNull;
import static java.util.Collections.emptyList;
@@ -146,7 +146,7 @@ public class UsersAction implements PermissionsWsAction {

UsersWsResponse.Builder response = UsersWsResponse.newBuilder();
users.forEach(user -> {
WsPermissions.User.Builder userResponse = response.addUsersBuilder()
Permissions.User.Builder userResponse = response.addUsersBuilder()
.setLogin(user.getLogin())
.addAllPermissions(permissionsByUserId.get(user.getId()));
setNullable(user.getEmail(), userResponse::setEmail);

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/CreateTemplateAction.java Visa fil

@@ -32,8 +32,8 @@ import org.sonar.db.permission.template.PermissionTemplateDto;
import org.sonar.server.permission.ws.PermissionWsSupport;
import org.sonar.server.permission.ws.PermissionsWsAction;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsPermissions.CreateTemplateWsResponse;
import org.sonarqube.ws.WsPermissions.PermissionTemplate;
import org.sonarqube.ws.Permissions.CreateTemplateWsResponse;
import org.sonarqube.ws.Permissions.PermissionTemplate;
import org.sonarqube.ws.client.permission.CreateTemplateWsRequest;

import static java.lang.String.format;

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/PermissionTemplateDtoToPermissionTemplateResponse.java Visa fil

@@ -23,7 +23,7 @@ import com.google.common.base.Function;
import javax.annotation.Nonnull;
import org.sonar.api.utils.DateUtils;
import org.sonar.db.permission.template.PermissionTemplateDto;
import org.sonarqube.ws.WsPermissions.PermissionTemplate;
import org.sonarqube.ws.Permissions.PermissionTemplate;

import static org.sonar.core.util.Protobuf.setNullable;


+ 7
- 7
server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/SearchTemplatesAction.java Visa fil

@@ -34,11 +34,11 @@ import org.sonar.db.permission.template.PermissionTemplateDto;
import org.sonar.server.permission.ws.PermissionWsSupport;
import org.sonar.server.permission.ws.PermissionsWsAction;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsPermissions;
import org.sonarqube.ws.WsPermissions.Permission;
import org.sonarqube.ws.WsPermissions.PermissionTemplate;
import org.sonarqube.ws.WsPermissions.SearchTemplatesWsResponse;
import org.sonarqube.ws.WsPermissions.SearchTemplatesWsResponse.TemplateIdQualifier;
import org.sonarqube.ws.Permissions;
import org.sonarqube.ws.Permissions.Permission;
import org.sonarqube.ws.Permissions.PermissionTemplate;
import org.sonarqube.ws.Permissions.SearchTemplatesWsResponse;
import org.sonarqube.ws.Permissions.SearchTemplatesWsResponse.TemplateIdQualifier;
import org.sonarqube.ws.client.permission.SearchTemplatesWsRequest;

import static org.sonar.api.utils.DateUtils.formatDateTime;
@@ -109,7 +109,7 @@ public class SearchTemplatesAction implements PermissionsWsAction {
.setTemplateId(viewDefaultTemplate)));
}

private static void buildTemplatesResponse(WsPermissions.SearchTemplatesWsResponse.Builder response, SearchTemplatesData data) {
private static void buildTemplatesResponse(Permissions.SearchTemplatesWsResponse.Builder response, SearchTemplatesData data) {
Permission.Builder permissionResponse = Permission.newBuilder();
PermissionTemplate.Builder templateBuilder = PermissionTemplate.newBuilder();

@@ -135,7 +135,7 @@ public class SearchTemplatesAction implements PermissionsWsAction {
}
}

private WsPermissions.SearchTemplatesWsResponse buildResponse(SearchTemplatesData data) {
private Permissions.SearchTemplatesWsResponse buildResponse(SearchTemplatesData data) {
SearchTemplatesWsResponse.Builder response = SearchTemplatesWsResponse.newBuilder();

buildTemplatesResponse(response, data);

+ 5
- 5
server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateGroupsAction.java Visa fil

@@ -38,7 +38,7 @@ import org.sonar.db.user.GroupDto;
import org.sonar.server.permission.ws.PermissionWsSupport;
import org.sonar.server.permission.ws.PermissionsWsAction;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsPermissions;
import org.sonarqube.ws.Permissions;

import static org.sonar.api.server.ws.WebService.Param.PAGE;
import static org.sonar.api.server.ws.WebService.Param.PAGE_SIZE;
@@ -99,7 +99,7 @@ public class TemplateGroupsAction implements PermissionsWsAction {
Paging paging = Paging.forPageIndex(wsRequest.mandatoryParamAsInt(PAGE)).withPageSize(wsRequest.mandatoryParamAsInt(PAGE_SIZE)).andTotal(total);
List<GroupDto> groups = findGroups(dbSession, query, template);
List<PermissionTemplateGroupDto> groupPermissions = findGroupPermissions(dbSession, groups, template);
WsPermissions.WsGroupsResponse groupsResponse = buildResponse(groups, groupPermissions, paging);
Permissions.WsGroupsResponse groupsResponse = buildResponse(groups, groupPermissions, paging);
writeProtobuf(groupsResponse, wsRequest, wsResponse);
}
}
@@ -119,13 +119,13 @@ public class TemplateGroupsAction implements PermissionsWsAction {
return permissionQuery.build();
}

private static WsPermissions.WsGroupsResponse buildResponse(List<GroupDto> groups, List<PermissionTemplateGroupDto> groupPermissions, Paging paging) {
private static Permissions.WsGroupsResponse buildResponse(List<GroupDto> groups, List<PermissionTemplateGroupDto> groupPermissions, Paging paging) {
Multimap<Integer, String> permissionsByGroupId = TreeMultimap.create();
groupPermissions.forEach(groupPermission -> permissionsByGroupId.put(groupPermission.getGroupId(), groupPermission.getPermission()));
WsPermissions.WsGroupsResponse.Builder response = WsPermissions.WsGroupsResponse.newBuilder();
Permissions.WsGroupsResponse.Builder response = Permissions.WsGroupsResponse.newBuilder();

groups.forEach(group -> {
WsPermissions.Group.Builder wsGroup = response.addGroupsBuilder()
Permissions.Group.Builder wsGroup = response.addGroupsBuilder()
.setName(group.getName());
if (group.getId() != 0) {
wsGroup.setId(String.valueOf(group.getId()));

+ 5
- 5
server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateUsersAction.java Visa fil

@@ -39,8 +39,8 @@ import org.sonar.server.issue.ws.AvatarResolver;
import org.sonar.server.permission.ws.PermissionWsSupport;
import org.sonar.server.permission.ws.PermissionsWsAction;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsPermissions;
import org.sonarqube.ws.WsPermissions.UsersWsResponse;
import org.sonarqube.ws.Permissions;
import org.sonarqube.ws.Permissions.UsersWsResponse;

import static com.google.common.base.Strings.emptyToNull;
import static org.sonar.api.server.ws.WebService.Param.PAGE;
@@ -106,7 +106,7 @@ public class TemplateUsersAction implements PermissionsWsAction {
List<UserDto> users = findUsers(dbSession, query, template);
List<PermissionTemplateUserDto> permissionTemplateUsers = dbClient.permissionTemplateDao().selectUserPermissionsByTemplateIdAndUserLogins(dbSession, template.getId(),
users.stream().map(UserDto::getLogin).collect(Collectors.toList()));
WsPermissions.UsersWsResponse templateUsersResponse = buildResponse(users, permissionTemplateUsers, paging);
Permissions.UsersWsResponse templateUsersResponse = buildResponse(users, permissionTemplateUsers, paging);
writeProtobuf(templateUsersResponse, wsRequest, wsResponse);
}
}
@@ -127,13 +127,13 @@ public class TemplateUsersAction implements PermissionsWsAction {
return query.build();
}

private WsPermissions.UsersWsResponse buildResponse(List<UserDto> users, List<PermissionTemplateUserDto> permissionTemplateUsers, Paging paging) {
private Permissions.UsersWsResponse buildResponse(List<UserDto> users, List<PermissionTemplateUserDto> permissionTemplateUsers, Paging paging) {
Multimap<Integer, String> permissionsByUserId = TreeMultimap.create();
permissionTemplateUsers.forEach(userPermission -> permissionsByUserId.put(userPermission.getUserId(), userPermission.getPermission()));

UsersWsResponse.Builder responseBuilder = UsersWsResponse.newBuilder();
users.forEach(user -> {
WsPermissions.User.Builder userResponse = responseBuilder.addUsersBuilder()
Permissions.User.Builder userResponse = responseBuilder.addUsersBuilder()
.setLogin(user.getLogin())
.addAllPermissions(permissionsByUserId.get(user.getId()));
setNullable(user.getEmail(), userResponse::setEmail);

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/UpdateTemplateAction.java Visa fil

@@ -31,8 +31,8 @@ import org.sonar.db.permission.template.PermissionTemplateDto;
import org.sonar.server.permission.ws.PermissionWsSupport;
import org.sonar.server.permission.ws.PermissionsWsAction;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsPermissions.PermissionTemplate;
import org.sonarqube.ws.WsPermissions.UpdateTemplateWsResponse;
import org.sonarqube.ws.Permissions.PermissionTemplate;
import org.sonarqube.ws.Permissions.UpdateTemplateWsResponse;
import org.sonarqube.ws.client.permission.UpdateTemplateWsRequest;

import static com.google.common.base.MoreObjects.firstNonNull;

+ 16
- 16
server/sonar-server/src/main/java/org/sonar/server/platform/ws/HealthActionSupport.java Visa fil

@@ -27,7 +27,7 @@ import org.sonar.process.cluster.health.NodeHealth;
import org.sonar.server.health.ClusterHealth;
import org.sonar.server.health.Health;
import org.sonar.server.health.HealthChecker;
import org.sonarqube.ws.WsSystem;
import org.sonarqube.ws.System;

import static org.sonar.api.utils.DateUtils.formatDateTime;

@@ -58,31 +58,31 @@ public class HealthActionSupport {
.setHandler(handler);
}

WsSystem.HealthResponse checkNodeHealth() {
System.HealthResponse checkNodeHealth() {
Health check = healthChecker.checkNode();
WsSystem.HealthResponse.Builder responseBuilder = WsSystem.HealthResponse.newBuilder()
.setHealth(WsSystem.Health.valueOf(check.getStatus().name()));
WsSystem.Cause.Builder causeBuilder = WsSystem.Cause.newBuilder();
System.HealthResponse.Builder responseBuilder = System.HealthResponse.newBuilder()
.setHealth(System.Health.valueOf(check.getStatus().name()));
System.Cause.Builder causeBuilder = System.Cause.newBuilder();
check.getCauses().forEach(str -> responseBuilder.addCauses(causeBuilder.clear().setMessage(str).build()));

return responseBuilder.build();
}

WsSystem.HealthResponse checkClusterHealth() {
System.HealthResponse checkClusterHealth() {
ClusterHealth check = healthChecker.checkCluster();
return toResponse(check);
}

private static WsSystem.HealthResponse toResponse(ClusterHealth check) {
WsSystem.HealthResponse.Builder responseBuilder = WsSystem.HealthResponse.newBuilder();
WsSystem.Node.Builder nodeBuilder = WsSystem.Node.newBuilder();
WsSystem.Cause.Builder causeBuilder = WsSystem.Cause.newBuilder();
private static System.HealthResponse toResponse(ClusterHealth check) {
System.HealthResponse.Builder responseBuilder = System.HealthResponse.newBuilder();
System.Node.Builder nodeBuilder = System.Node.newBuilder();
System.Cause.Builder causeBuilder = System.Cause.newBuilder();

Health health = check.getHealth();
responseBuilder.setHealth(WsSystem.Health.valueOf(health.getStatus().name()));
responseBuilder.setHealth(System.Health.valueOf(health.getStatus().name()));
health.getCauses().forEach(str -> responseBuilder.addCauses(toCause(str, causeBuilder)));

WsSystem.Nodes.Builder nodesBuilder = WsSystem.Nodes.newBuilder();
System.Nodes.Builder nodesBuilder = System.Nodes.newBuilder();
check.getNodes().stream()
.sorted(NODE_HEALTH_COMPARATOR)
.map(node -> toNode(node, nodeBuilder, causeBuilder))
@@ -92,13 +92,13 @@ public class HealthActionSupport {
return responseBuilder.build();
}

private static WsSystem.Node toNode(NodeHealth nodeHealth, WsSystem.Node.Builder nodeBuilder, WsSystem.Cause.Builder causeBuilder) {
private static System.Node toNode(NodeHealth nodeHealth, System.Node.Builder nodeBuilder, System.Cause.Builder causeBuilder) {
nodeBuilder.clear();
nodeBuilder.setHealth(WsSystem.Health.valueOf(nodeHealth.getStatus().name()));
nodeBuilder.setHealth(System.Health.valueOf(nodeHealth.getStatus().name()));
nodeHealth.getCauses().forEach(str -> nodeBuilder.addCauses(toCause(str, causeBuilder)));
NodeDetails details = nodeHealth.getDetails();
nodeBuilder
.setType(WsSystem.NodeType.valueOf(details.getType().name()))
.setType(System.NodeType.valueOf(details.getType().name()))
.setName(details.getName())
.setHost(details.getHost())
.setPort(details.getPort())
@@ -106,7 +106,7 @@ public class HealthActionSupport {
return nodeBuilder.build();
}

private static WsSystem.Cause toCause(String str, WsSystem.Cause.Builder causeBuilder) {
private static System.Cause toCause(String str, System.Cause.Builder causeBuilder) {
return causeBuilder.clear().setMessage(str).build();
}
}

+ 15
- 15
server/sonar-server/src/main/java/org/sonar/server/platform/ws/StatusAction.java Visa fil

@@ -29,7 +29,7 @@ import org.sonar.server.app.RestartFlagHolder;
import org.sonar.server.platform.Platform;
import org.sonar.server.platform.db.migration.DatabaseMigrationState;
import org.sonar.server.ws.WsUtils;
import org.sonarqube.ws.WsSystem;
import org.sonarqube.ws.System;

/**
* Implementation of the {@code status} action for the System WebService.
@@ -73,22 +73,22 @@ public class StatusAction implements SystemWsAction {

@Override
public void handle(Request request, Response response) throws Exception {
WsSystem.StatusResponse.Builder protobuf = WsSystem.StatusResponse.newBuilder();
System.StatusResponse.Builder protobuf = System.StatusResponse.newBuilder();
Protobuf.setNullable(server.getId(), protobuf::setId);
Protobuf.setNullable(server.getVersion(), protobuf::setVersion);
protobuf.setStatus(computeStatus());
WsUtils.writeProtobuf(protobuf.build(), request, response);
}

private WsSystem.Status computeStatus() {
private System.Status computeStatus() {
Platform.Status platformStatus = platform.status();
switch (platformStatus) {
case BOOTING:
// can not happen since there can not even exist an instance of the current class
// unless the Platform's status is UP/SAFEMODE/STARTING
return WsSystem.Status.DOWN;
return System.Status.DOWN;
case UP:
return restartFlagHolder.isRestarting() ? WsSystem.Status.RESTARTING : WsSystem.Status.UP;
return restartFlagHolder.isRestarting() ? System.Status.RESTARTING : System.Status.UP;
case STARTING:
return computeStatusInStarting();
case SAFEMODE:
@@ -98,34 +98,34 @@ public class StatusAction implements SystemWsAction {
}
}

private WsSystem.Status computeStatusInStarting() {
private System.Status computeStatusInStarting() {
DatabaseMigrationState.Status databaseMigrationStatus = migrationState.getStatus();
switch (databaseMigrationStatus) {
case NONE:
return WsSystem.Status.STARTING;
return System.Status.STARTING;
case RUNNING:
return WsSystem.Status.DB_MIGRATION_RUNNING;
return System.Status.DB_MIGRATION_RUNNING;
case FAILED:
return WsSystem.Status.DOWN;
return System.Status.DOWN;
case SUCCEEDED:
// DB migration can be finished while we haven't yet finished SQ's initialization
return WsSystem.Status.STARTING;
return System.Status.STARTING;
default:
throw new IllegalArgumentException("Unsupported DatabaseMigration.Status " + databaseMigrationStatus);
}
}

private WsSystem.Status computeStatusInSafemode() {
private System.Status computeStatusInSafemode() {
DatabaseMigrationState.Status databaseMigrationStatus = migrationState.getStatus();
switch (databaseMigrationStatus) {
case NONE:
return WsSystem.Status.DB_MIGRATION_NEEDED;
return System.Status.DB_MIGRATION_NEEDED;
case RUNNING:
return WsSystem.Status.DB_MIGRATION_RUNNING;
return System.Status.DB_MIGRATION_RUNNING;
case FAILED:
return WsSystem.Status.DOWN;
return System.Status.DOWN;
case SUCCEEDED:
return WsSystem.Status.STARTING;
return System.Status.STARTING;
default:
throw new IllegalArgumentException("Unsupported DatabaseMigration.Status " + databaseMigrationStatus);
}

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/project/ws/BulkUpdateKeyAction.java Visa fil

@@ -35,7 +35,7 @@ import org.sonar.server.component.ComponentFinder;
import org.sonar.server.component.ComponentFinder.ParamNames;
import org.sonar.server.component.ComponentService;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsProjects.BulkUpdateKeyWsResponse;
import org.sonarqube.ws.Projects.BulkUpdateKeyWsResponse;
import org.sonarqube.ws.client.project.BulkUpdateKeyWsRequest;

import static org.sonar.core.util.Uuids.UUID_EXAMPLE_01;

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/project/ws/CreateAction.java Visa fil

@@ -30,7 +30,7 @@ import org.sonar.db.organization.OrganizationDto;
import org.sonar.server.component.ComponentUpdater;
import org.sonar.server.project.Visibility;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsProjects.CreateWsResponse;
import org.sonarqube.ws.Projects.CreateWsResponse;
import org.sonarqube.ws.client.project.CreateRequest;

import static org.sonar.api.resources.Qualifiers.PROJECT;

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/project/ws/ProvisionedAction.java Visa fil

@@ -39,8 +39,8 @@ import org.sonar.db.component.ComponentQuery;
import org.sonar.db.organization.OrganizationDto;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.Common.Paging;
import org.sonarqube.ws.WsComponents.ProvisionedWsResponse;
import org.sonarqube.ws.WsComponents.ProvisionedWsResponse.Component;
import org.sonarqube.ws.Components.ProvisionedWsResponse;
import org.sonarqube.ws.Components.ProvisionedWsResponse.Component;

import static com.google.common.collect.Sets.newHashSet;
import static java.util.Optional.ofNullable;

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/project/ws/SearchAction.java Visa fil

@@ -39,7 +39,7 @@ import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.permission.OrganizationPermission;
import org.sonar.server.project.Visibility;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsProjects.SearchWsResponse;
import org.sonarqube.ws.Projects.SearchWsResponse;
import org.sonarqube.ws.client.project.SearchWsRequest;

import static com.google.common.base.Preconditions.checkArgument;
@@ -56,8 +56,8 @@ import static org.sonar.server.project.Visibility.PUBLIC;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_002;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.WsProjects.SearchWsResponse.Component;
import static org.sonarqube.ws.WsProjects.SearchWsResponse.newBuilder;
import static org.sonarqube.ws.Projects.SearchWsResponse.Component;
import static org.sonarqube.ws.Projects.SearchWsResponse.newBuilder;
import static org.sonarqube.ws.client.project.ProjectsWsParameters.ACTION_SEARCH;
import static org.sonarqube.ws.client.project.ProjectsWsParameters.MAX_PAGE_SIZE;
import static org.sonarqube.ws.client.project.ProjectsWsParameters.PARAM_ANALYZED_BEFORE;

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/project/ws/SearchMyProjectsAction.java Visa fil

@@ -30,9 +30,9 @@ import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.component.ComponentLinkDto;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsProjects.SearchMyProjectsWsResponse;
import org.sonarqube.ws.WsProjects.SearchMyProjectsWsResponse.Link;
import org.sonarqube.ws.WsProjects.SearchMyProjectsWsResponse.Project;
import org.sonarqube.ws.Projects.SearchMyProjectsWsResponse;
import org.sonarqube.ws.Projects.SearchMyProjectsWsResponse.Link;
import org.sonarqube.ws.Projects.SearchMyProjectsWsResponse.Project;
import org.sonarqube.ws.client.project.SearchMyProjectsRequest;

import static com.google.common.base.Strings.emptyToNull;

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/projectlink/ws/CreateAction.java Visa fil

@@ -29,8 +29,8 @@ import org.sonar.db.component.ComponentDto;
import org.sonar.db.component.ComponentLinkDto;
import org.sonar.server.component.ComponentFinder;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsProjectLinks;
import org.sonarqube.ws.WsProjectLinks.CreateWsResponse;
import org.sonarqube.ws.ProjectLinks;
import org.sonarqube.ws.ProjectLinks.CreateWsResponse;
import org.sonarqube.ws.client.projectlinks.CreateWsRequest;

import static org.sonar.core.util.Slug.slugify;
@@ -119,7 +119,7 @@ public class CreateAction implements ProjectLinksWsAction {
}

private static CreateWsResponse buildResponse(ComponentLinkDto link) {
return CreateWsResponse.newBuilder().setLink(WsProjectLinks.Link.newBuilder()
return CreateWsResponse.newBuilder().setLink(ProjectLinks.Link.newBuilder()
.setId(String.valueOf(link.getId()))
.setName(link.getName())
.setType(link.getType())

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/projectlink/ws/SearchAction.java Visa fil

@@ -31,8 +31,8 @@ import org.sonar.db.component.ComponentDto;
import org.sonar.db.component.ComponentLinkDto;
import org.sonar.server.component.ComponentFinder;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsProjectLinks.Link;
import org.sonarqube.ws.WsProjectLinks.SearchWsResponse;
import org.sonarqube.ws.ProjectLinks.Link;
import org.sonarqube.ws.ProjectLinks.SearchWsResponse;
import org.sonarqube.ws.client.projectlinks.SearchWsRequest;

import static org.sonar.core.util.Protobuf.setNullable;

+ 4
- 4
server/sonar-server/src/main/java/org/sonar/server/projecttag/ws/SearchAction.java Visa fil

@@ -25,7 +25,7 @@ import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.server.measure.index.ProjectMeasuresIndex;
import org.sonarqube.ws.WsProjectTags;
import org.sonarqube.ws.ProjectTags;

import static org.sonar.api.server.ws.WebService.Param.PAGE_SIZE;
import static org.sonar.api.server.ws.WebService.Param.TEXT_QUERY;
@@ -52,12 +52,12 @@ public class SearchAction implements ProjectTagsWsAction {

@Override
public void handle(Request request, Response response) throws Exception {
WsProjectTags.SearchResponse wsResponse = doHandle(request);
ProjectTags.SearchResponse wsResponse = doHandle(request);
writeProtobuf(wsResponse, request, response);
}

private WsProjectTags.SearchResponse doHandle(Request request) {
private ProjectTags.SearchResponse doHandle(Request request) {
List<String> tags = index.searchTags(request.param(TEXT_QUERY), request.mandatoryParamAsInt(PAGE_SIZE));
return WsProjectTags.SearchResponse.newBuilder().addAllTags(tags).build();
return ProjectTags.SearchResponse.newBuilder().addAllTags(tags).build();
}
}

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/AppAction.java Visa fil

@@ -30,13 +30,13 @@ import org.sonar.db.metric.MetricDto;
import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.db.permission.OrganizationPermission;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsQualityGates.AppWsResponse.Metric;
import org.sonarqube.ws.Qualitygates.AppWsResponse.Metric;

import static org.sonar.api.measures.CoreMetrics.ALERT_STATUS_KEY;
import static org.sonar.api.measures.Metric.ValueType.RATING;
import static org.sonar.server.qualitygate.ValidRatingMetrics.isCoreRatingMetric;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.WsQualityGates.AppWsResponse;
import static org.sonarqube.ws.Qualitygates.AppWsResponse;

public class AppAction implements QualityGatesWsAction {


+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/CreateAction.java Visa fil

@@ -29,7 +29,7 @@ import org.sonar.db.qualitygate.QualityGateDto;
import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.qualitygate.QualityGateUpdater;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsQualityGates.CreateWsResponse;
import org.sonarqube.ws.Qualitygates.CreateWsResponse;

import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.client.qualitygate.QualityGatesWsParameters.ACTION_CREATE;

+ 18
- 33
server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/CreateConditionAction.java Visa fil

@@ -29,8 +29,7 @@ import org.sonar.db.qualitygate.QualityGateConditionDto;
import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.qualitygate.QualityGateConditionsUpdater;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsQualityGates.CreateConditionWsResponse;
import org.sonarqube.ws.client.qualitygate.CreateConditionRequest;
import org.sonarqube.ws.Qualitygates.CreateConditionWsResponse;

import static org.sonar.core.util.Protobuf.setNullable;
import static org.sonar.server.qualitygate.ws.QualityGatesWs.addConditionParams;
@@ -80,40 +79,26 @@ public class CreateConditionAction implements QualityGatesWsAction {
public void handle(Request request, Response response) {
userSession.checkPermission(OrganizationPermission.ADMINISTER_QUALITY_GATES, defaultOrganizationProvider.get().getUuid());

int gateId = request.mandatoryParamAsInt(PARAM_GATE_ID);
String metric = request.mandatoryParam(PARAM_METRIC);
String operator = request.mandatoryParam(PARAM_OPERATOR);
String warning = request.param(PARAM_WARNING);
String error = request.param(PARAM_ERROR);
Integer period = request.paramAsInt(PARAM_PERIOD);

try (DbSession dbSession = dbClient.openSession(false)) {
writeProtobuf(doHandle(toWsRequest(request), dbSession), request, response);
QualityGateConditionDto condition = qualityGateConditionsUpdater.createCondition(dbSession, gateId, metric, operator, warning, error, period);

CreateConditionWsResponse.Builder createConditionWsResponse = CreateConditionWsResponse.newBuilder()
.setId(condition.getId())
.setMetric(condition.getMetricKey())
.setOp(condition.getOperator());
setNullable(condition.getWarningThreshold(), createConditionWsResponse::setWarning);
setNullable(condition.getErrorThreshold(), createConditionWsResponse::setError);
setNullable(condition.getPeriod(), createConditionWsResponse::setPeriod);
writeProtobuf(createConditionWsResponse.build(), request, response);
dbSession.commit();
}
}

private CreateConditionWsResponse doHandle(CreateConditionRequest request, DbSession dbSession) {
QualityGateConditionDto condition = qualityGateConditionsUpdater.createCondition(dbSession,
request.getQualityGateId(),
request.getMetricKey(),
request.getOperator(),
request.getWarning(),
request.getError(),
request.getPeriod());

CreateConditionWsResponse.Builder response = CreateConditionWsResponse.newBuilder()
.setId(condition.getId())
.setMetric(condition.getMetricKey())
.setOp(condition.getOperator());
setNullable(condition.getWarningThreshold(), response::setWarning);
setNullable(condition.getErrorThreshold(), response::setError);
setNullable(condition.getPeriod(), response::setPeriod);
return response.build();
}

private static CreateConditionRequest toWsRequest(Request request) {
return CreateConditionRequest.builder()
.setQualityGateId(request.mandatoryParamAsInt(PARAM_GATE_ID))
.setMetricKey(request.mandatoryParam(PARAM_METRIC))
.setOperator(request.mandatoryParam(PARAM_OPERATOR))
.setWarning(request.param(PARAM_WARNING))
.setError(request.param(PARAM_ERROR))
.setPeriod(request.paramAsInt(PARAM_PERIOD))
.build();
}

}

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/GetByProjectAction.java Visa fil

@@ -33,7 +33,7 @@ import org.sonar.server.component.ComponentFinder;
import org.sonar.server.qualitygate.QualityGateFinder;
import org.sonar.server.qualitygate.QualityGateFinder.QualityGateData;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsQualityGates.GetByProjectWsResponse;
import org.sonarqube.ws.Qualitygates.GetByProjectWsResponse;

import static org.sonar.server.user.AbstractUserSession.insufficientPrivilegesException;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;

+ 19
- 26
server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/ProjectStatusAction.java Visa fil

@@ -42,8 +42,7 @@ import org.sonar.server.component.ComponentFinder.ParamNames;
import org.sonar.server.exceptions.BadRequestException;
import org.sonar.server.user.UserSession;
import org.sonar.server.ws.KeyExamples;
import org.sonarqube.ws.WsQualityGates.ProjectStatusWsResponse;
import org.sonarqube.ws.client.qualitygate.ProjectStatusWsRequest;
import org.sonarqube.ws.Qualitygates.ProjectStatusWsResponse;

import static com.google.common.base.Strings.isNullOrEmpty;
import static java.util.Collections.singletonList;
@@ -109,13 +108,21 @@ public class ProjectStatusAction implements QualityGatesWsAction {

@Override
public void handle(Request request, Response response) throws Exception {
ProjectStatusWsResponse projectStatusWsResponse = doHandle(toProjectStatusWsRequest(request));
String analysisId = request.param(PARAM_ANALYSIS_ID);
String projectId = request.param(PARAM_PROJECT_ID);
String projectKey = request.param(PARAM_PROJECT_KEY);
checkRequest(
!isNullOrEmpty(analysisId)
^ !isNullOrEmpty(projectId)
^ !isNullOrEmpty(projectKey),
MSG_ONE_PARAMETER_ONLY);
ProjectStatusWsResponse projectStatusWsResponse = doHandle(analysisId, projectId, projectKey);
writeProtobuf(projectStatusWsResponse, request, response);
}

private ProjectStatusWsResponse doHandle(ProjectStatusWsRequest request) {
private ProjectStatusWsResponse doHandle(String analysisId, String projectId, String projectKey) {
try (DbSession dbSession = dbClient.openSession(false)) {
ProjectAndSnapshot projectAndSnapshot = getProjectAndSnapshot(dbSession, request);
ProjectAndSnapshot projectAndSnapshot = getProjectAndSnapshot(dbSession, analysisId, projectId, projectKey);
checkPermission(projectAndSnapshot.project);
Optional<String> measureData = getQualityGateDetailsMeasureData(dbSession, projectAndSnapshot.project);

@@ -125,19 +132,18 @@ public class ProjectStatusAction implements QualityGatesWsAction {
}
}

private ProjectAndSnapshot getProjectAndSnapshot(DbSession dbSession, ProjectStatusWsRequest request) {
String analysisUuid = request.getAnalysisId();
if (!isNullOrEmpty(request.getAnalysisId())) {
return getSnapshotThenProject(dbSession, analysisUuid);
} else if (!isNullOrEmpty(request.getProjectId()) ^ !isNullOrEmpty(request.getProjectKey())) {
return getProjectThenSnapshot(dbSession, request);
private ProjectAndSnapshot getProjectAndSnapshot(DbSession dbSession, String analysisId, String projectId, String projectKey) {
if (!isNullOrEmpty(analysisId)) {
return getSnapshotThenProject(dbSession, analysisId);
} else if (!isNullOrEmpty(projectId) ^ !isNullOrEmpty(projectKey)) {
return getProjectThenSnapshot(dbSession, projectId, projectKey);
}

throw BadRequestException.create(MSG_ONE_PARAMETER_ONLY);
}

private ProjectAndSnapshot getProjectThenSnapshot(DbSession dbSession, ProjectStatusWsRequest request) {
ComponentDto projectDto = componentFinder.getByUuidOrKey(dbSession, request.getProjectId(), request.getProjectKey(), ParamNames.PROJECT_ID_AND_KEY);
private ProjectAndSnapshot getProjectThenSnapshot(DbSession dbSession, String projectId, String projectKey) {
ComponentDto projectDto = componentFinder.getByUuidOrKey(dbSession, projectId, projectKey, ParamNames.PROJECT_ID_AND_KEY);
java.util.Optional<SnapshotDto> snapshot = dbClient.snapshotDao().selectLastAnalysisByRootComponentUuid(dbSession, projectDto.projectUuid());
return new ProjectAndSnapshot(projectDto, snapshot.orElse(null));
}
@@ -165,19 +171,6 @@ public class ProjectStatusAction implements QualityGatesWsAction {
: Optional.fromNullable(measures.get(0).getData());
}

private static ProjectStatusWsRequest toProjectStatusWsRequest(Request request) {
ProjectStatusWsRequest projectStatusWsRequest = new ProjectStatusWsRequest()
.setAnalysisId(request.param(PARAM_ANALYSIS_ID))
.setProjectId(request.param(PARAM_PROJECT_ID))
.setProjectKey(request.param(PARAM_PROJECT_KEY));
checkRequest(
!isNullOrEmpty(projectStatusWsRequest.getAnalysisId())
^ !isNullOrEmpty(projectStatusWsRequest.getProjectId())
^ !isNullOrEmpty(projectStatusWsRequest.getProjectKey()),
MSG_ONE_PARAMETER_ONLY);
return projectStatusWsRequest;
}

private void checkPermission(ComponentDto project) {
if (!userSession.hasComponentPermission(UserRole.ADMIN, project) &&
!userSession.hasComponentPermission(UserRole.USER, project)) {

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QualityGateDetailsFormatter.java Visa fil

@@ -28,7 +28,7 @@ import java.util.function.Predicate;
import java.util.stream.StreamSupport;
import javax.annotation.Nullable;
import org.sonar.db.component.SnapshotDto;
import org.sonarqube.ws.WsQualityGates.ProjectStatusWsResponse;
import org.sonarqube.ws.Qualitygates.ProjectStatusWsResponse;

import static com.google.common.base.Strings.isNullOrEmpty;
import static org.sonar.api.utils.DateUtils.formatDateTime;

+ 8
- 16
server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/SelectAction.java Visa fil

@@ -29,12 +29,11 @@ import org.sonar.core.util.Uuids;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.permission.OrganizationPermission;
import org.sonar.db.property.PropertyDto;
import org.sonar.server.component.ComponentFinder;
import org.sonar.server.component.ComponentFinder.ParamNames;
import org.sonar.db.permission.OrganizationPermission;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.client.qualitygate.SelectWsRequest;

import static org.sonar.server.qualitygate.QualityGates.SONAR_QUALITYGATE_PROPERTY;
import static org.sonar.server.user.AbstractUserSession.insufficientPrivilegesException;
@@ -86,29 +85,22 @@ public class SelectAction implements QualityGatesWsAction {

@Override
public void handle(Request request, Response response) {
doHandle(toSelectWsRequest(request));
response.noContent();
}
long gateId = request.mandatoryParamAsLong(PARAM_GATE_ID);
String projectId = request.param(PARAM_PROJECT_ID);
String projectKey = request.param(PARAM_PROJECT_KEY);

private void doHandle(SelectWsRequest request) {
try (DbSession dbSession = dbClient.openSession(false)) {
checkQualityGate(dbSession, request.getGateId());
ComponentDto project = getProject(dbSession, request.getProjectId(), request.getProjectKey());
checkQualityGate(dbSession, gateId);
ComponentDto project = getProject(dbSession, projectId, projectKey);

dbClient.propertiesDao().saveProperty(dbSession, new PropertyDto()
.setKey(SONAR_QUALITYGATE_PROPERTY)
.setResourceId(project.getId())
.setValue(String.valueOf(request.getGateId())));
.setValue(String.valueOf(gateId)));

dbSession.commit();
}
}

private static SelectWsRequest toSelectWsRequest(Request request) {
return new SelectWsRequest()
.setGateId(request.mandatoryParamAsLong(PARAM_GATE_ID))
.setProjectId(request.param(PARAM_PROJECT_ID))
.setProjectKey(request.param(PARAM_PROJECT_KEY));
response.noContent();
}

private ComponentDto getProject(DbSession dbSession, @Nullable String projectId, @Nullable String projectKey) {

+ 17
- 28
server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/UpdateConditionAction.java Visa fil

@@ -28,8 +28,7 @@ import org.sonar.db.qualitygate.QualityGateConditionDto;
import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.qualitygate.QualityGateConditionsUpdater;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsQualityGates.UpdateConditionWsResponse;
import org.sonarqube.ws.client.qualitygate.UpdateConditionRequest;
import org.sonarqube.ws.Qualitygates.UpdateConditionWsResponse;

import static org.sonar.core.util.Protobuf.setNullable;
import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_GATES;
@@ -80,34 +79,24 @@ public class UpdateConditionAction implements QualityGatesWsAction {
public void handle(Request request, Response response) {
userSession.checkPermission(ADMINISTER_QUALITY_GATES, defaultOrganizationProvider.get().getUuid());

int id = request.mandatoryParamAsInt(PARAM_ID);
String metric = request.mandatoryParam(PARAM_METRIC);
String operator = request.mandatoryParam(PARAM_OPERATOR);
String warning = request.param(PARAM_WARNING);
String error = request.param(PARAM_ERROR);
Integer period = request.paramAsInt(PARAM_PERIOD);

try (DbSession dbSession = dbClient.openSession(false)) {
writeProtobuf(doHandle(toWsRequest(request), dbSession), request, response);
QualityGateConditionDto condition = qualityGateConditionsUpdater.updateCondition(dbSession, id, metric, operator, warning, error, period);
UpdateConditionWsResponse.Builder updateConditionWsResponse = UpdateConditionWsResponse.newBuilder()
.setId(condition.getId())
.setMetric(condition.getMetricKey())
.setOp(condition.getOperator());
setNullable(condition.getWarningThreshold(), updateConditionWsResponse::setWarning);
setNullable(condition.getErrorThreshold(), updateConditionWsResponse::setError);
setNullable(condition.getPeriod(), updateConditionWsResponse::setPeriod);
writeProtobuf(updateConditionWsResponse.build(), request, response);
dbSession.commit();
}
}

private UpdateConditionWsResponse doHandle(UpdateConditionRequest request, DbSession dbSession) {
QualityGateConditionDto condition = qualityGateConditionsUpdater.updateCondition(dbSession, request.getConditionId(), request.getMetricKey(), request.getOperator(),
request.getWarning(), request.getError(), request.getPeriod());
UpdateConditionWsResponse.Builder response = UpdateConditionWsResponse.newBuilder()
.setId(condition.getId())
.setMetric(condition.getMetricKey())
.setOp(condition.getOperator());
setNullable(condition.getWarningThreshold(), response::setWarning);
setNullable(condition.getErrorThreshold(), response::setError);
setNullable(condition.getPeriod(), response::setPeriod);
return response.build();
}

private static UpdateConditionRequest toWsRequest(Request request) {
return UpdateConditionRequest.builder()
.setConditionId(request.mandatoryParamAsInt(PARAM_ID))
.setMetricKey(request.mandatoryParam(PARAM_METRIC))
.setOperator(request.mandatoryParam(PARAM_OPERATOR))
.setWarning(request.param(PARAM_WARNING))
.setError(request.param(PARAM_ERROR))
.setPeriod(request.paramAsInt(PARAM_PERIOD))
.build();
}

}

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/CopyAction.java Visa fil

@@ -30,7 +30,7 @@ import org.sonar.db.DbSession;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.qualityprofile.QProfileCopier;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.QualityProfiles.CopyWsResponse;
import org.sonarqube.ws.Qualityprofiles.CopyWsResponse;

import static org.sonar.core.util.Protobuf.setNullable;
import static org.sonar.core.util.Uuids.UUID_EXAMPLE_01;

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/CreateAction.java Visa fil

@@ -36,7 +36,7 @@ import org.sonar.server.qualityprofile.QProfileName;
import org.sonar.server.qualityprofile.QProfileResult;
import org.sonar.server.qualityprofile.index.ActiveRuleIndexer;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.QualityProfiles.CreateWsResponse;
import org.sonarqube.ws.Qualityprofiles.CreateWsResponse;
import org.sonarqube.ws.client.qualityprofile.CreateRequest;

import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_PROFILES;

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/InheritanceAction.java Visa fil

@@ -34,8 +34,8 @@ import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.ActiveRuleCountQuery;
import org.sonar.db.qualityprofile.ActiveRuleDao;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonarqube.ws.QualityProfiles.InheritanceWsResponse;
import org.sonarqube.ws.QualityProfiles.InheritanceWsResponse.QualityProfile;
import org.sonarqube.ws.Qualityprofiles.InheritanceWsResponse;
import org.sonarqube.ws.Qualityprofiles.InheritanceWsResponse.QualityProfile;

import static org.sonar.core.util.Protobuf.setNullable;
import static org.sonar.db.qualityprofile.ActiveRuleDto.OVERRIDES;

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/SearchAction.java Visa fil

@@ -50,8 +50,8 @@ import org.sonar.server.component.ComponentFinder;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.user.UserSession;
import org.sonar.server.util.LanguageParamUtils;
import org.sonarqube.ws.QualityProfiles.SearchWsResponse;
import org.sonarqube.ws.QualityProfiles.SearchWsResponse.QualityProfile;
import org.sonarqube.ws.Qualityprofiles.SearchWsResponse;
import org.sonarqube.ws.Qualityprofiles.SearchWsResponse.QualityProfile;
import org.sonarqube.ws.client.qualityprofile.SearchWsRequest;

import static com.google.common.base.Preconditions.checkState;

+ 4
- 4
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/SearchGroupsAction.java Visa fil

@@ -37,7 +37,7 @@ import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.qualityprofile.SearchGroupsQuery;
import org.sonar.db.user.GroupDto;
import org.sonarqube.ws.Common;
import org.sonarqube.ws.QualityProfiles;
import org.sonarqube.ws.Qualityprofiles;
import org.sonarqube.ws.client.qualityprofile.SearchUsersRequest;

import static org.sonar.api.server.ws.WebService.Param.PAGE;
@@ -130,7 +130,7 @@ public class SearchGroupsAction implements QProfileWsAction {
.stream()
.collect(MoreCollectors.uniqueIndex(GroupDto::getId));
writeProtobuf(
QualityProfiles.SearchGroupsResponse.newBuilder()
Qualityprofiles.SearchGroupsResponse.newBuilder()
.addAllGroups(groupMemberships.stream()
.map(groupsMembership -> toGroup(groupsById.get(groupsMembership.getGroupId()), groupsMembership.isSelected()))
.collect(toList()))
@@ -151,8 +151,8 @@ public class SearchGroupsAction implements QProfileWsAction {
.build();
}

private static QualityProfiles.SearchGroupsResponse.Group toGroup(GroupDto group, boolean isSelected) {
QualityProfiles.SearchGroupsResponse.Group.Builder builder = QualityProfiles.SearchGroupsResponse.Group.newBuilder()
private static Qualityprofiles.SearchGroupsResponse.Group toGroup(GroupDto group, boolean isSelected) {
Qualityprofiles.SearchGroupsResponse.Group.Builder builder = Qualityprofiles.SearchGroupsResponse.Group.newBuilder()
.setName(group.getName())
.setSelected(isSelected);
setNullable(group.getDescription(), builder::setDescription);

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/SearchUsersAction.java Visa fil

@@ -38,7 +38,7 @@ import org.sonar.db.qualityprofile.UserMembershipDto;
import org.sonar.db.user.UserDto;
import org.sonar.server.issue.ws.AvatarResolver;
import org.sonarqube.ws.Common;
import org.sonarqube.ws.QualityProfiles.SearchUsersResponse;
import org.sonarqube.ws.Qualityprofiles.SearchUsersResponse;
import org.sonarqube.ws.client.qualityprofile.SearchUsersRequest;

import static com.google.common.base.Strings.emptyToNull;

+ 5
- 5
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/ShowAction.java Visa fil

@@ -38,10 +38,10 @@ import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.es.SearchOptions;
import org.sonar.server.rule.index.RuleIndex;
import org.sonar.server.rule.index.RuleQuery;
import org.sonarqube.ws.QualityProfiles;
import org.sonarqube.ws.QualityProfiles.ShowResponse;
import org.sonarqube.ws.QualityProfiles.ShowResponse.CompareToSonarWay;
import org.sonarqube.ws.QualityProfiles.ShowResponse.QualityProfile;
import org.sonarqube.ws.Qualityprofiles;
import org.sonarqube.ws.Qualityprofiles.ShowResponse;
import org.sonarqube.ws.Qualityprofiles.ShowResponse.CompareToSonarWay;
import org.sonarqube.ws.Qualityprofiles.ShowResponse.QualityProfile;

import static java.util.Collections.singletonList;
import static org.sonar.api.rule.RuleStatus.DEPRECATED;
@@ -154,7 +154,7 @@ public class ShowAction implements QProfileWsAction {

private static ShowResponse buildResponse(QProfileDto profile, boolean isDefault, Language language, long activeRules, long deprecatedActiveRules, long projects,
@Nullable CompareToSonarWay compareToSonarWay) {
ShowResponse.Builder showResponseBuilder = QualityProfiles.ShowResponse.newBuilder();
ShowResponse.Builder showResponseBuilder = Qualityprofiles.ShowResponse.newBuilder();
QualityProfile.Builder profileBuilder = QualityProfile.newBuilder()
.setKey(profile.getKee())
.setName(profile.getName())

+ 4
- 4
server/sonar-server/src/main/java/org/sonar/server/root/ws/SearchAction.java Visa fil

@@ -28,7 +28,7 @@ import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.user.UserDto;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsRoot;
import org.sonarqube.ws.Root;

import static org.sonar.server.ws.WsUtils.writeProtobuf;

@@ -69,13 +69,13 @@ public class SearchAction implements RootsWsAction {
}

private static void writeResponse(Request request, Response response, List<UserDto> dtos) {
WsRoot.SearchWsResponse.Builder responseBuilder = WsRoot.SearchWsResponse.newBuilder();
WsRoot.Root.Builder rootBuilder = WsRoot.Root.newBuilder();
Root.SearchWsResponse.Builder responseBuilder = Root.SearchWsResponse.newBuilder();
Root.RootContent.Builder rootBuilder = Root.RootContent.newBuilder();
dtos.forEach(dto -> responseBuilder.addRoots(toRoot(rootBuilder, dto)));
writeProtobuf(responseBuilder.build(), request, response);
}

private static WsRoot.Root toRoot(WsRoot.Root.Builder builder, UserDto dto) {
private static Root.RootContent toRoot(Root.RootContent.Builder builder, UserDto dto) {
builder.clear();
builder.setLogin(dto.getLogin());
if (dto.getName() != null) {

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/test/ws/CoveredFilesAction.java Visa fil

@@ -39,7 +39,7 @@ import org.sonar.server.test.index.CoveredFileDoc;
import org.sonar.server.test.index.TestDoc;
import org.sonar.server.test.index.TestIndex;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsTests;
import org.sonarqube.ws.Tests;

import static org.sonar.core.util.Protobuf.setNullable;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
@@ -86,10 +86,10 @@ public class CoveredFilesAction implements TestsWsAction {
List<CoveredFileDoc> coveredFiles = index.coveredFiles(testId);
Map<String, ComponentDto> componentsByUuid = buildComponentsByUuid(coveredFiles);

WsTests.CoveredFilesResponse.Builder responseBuilder = WsTests.CoveredFilesResponse.newBuilder();
Tests.CoveredFilesResponse.Builder responseBuilder = Tests.CoveredFilesResponse.newBuilder();
if (!coveredFiles.isEmpty()) {
for (CoveredFileDoc doc : coveredFiles) {
WsTests.CoveredFilesResponse.CoveredFile.Builder fileBuilder = WsTests.CoveredFilesResponse.CoveredFile.newBuilder();
Tests.CoveredFilesResponse.CoveredFile.Builder fileBuilder = Tests.CoveredFilesResponse.CoveredFile.newBuilder();
fileBuilder.setId(doc.fileUuid());
fileBuilder.setCoveredLines(doc.coveredLines().size());
ComponentDto component = componentsByUuid.get(doc.fileUuid());

+ 4
- 4
server/sonar-server/src/main/java/org/sonar/server/test/ws/ListAction.java Visa fil

@@ -46,7 +46,7 @@ import org.sonar.server.user.UserSession;
import org.sonar.server.ws.KeyExamples;
import org.sonar.server.ws.WsUtils;
import org.sonarqube.ws.Common;
import org.sonarqube.ws.WsTests;
import org.sonarqube.ws.Tests;

import static org.sonar.api.server.ws.WebService.Param.PAGE;
import static org.sonar.api.server.ws.WebService.Param.PAGE_SIZE;
@@ -158,7 +158,7 @@ public class ListAction implements TestsWsAction {
componentsByTestFileUuid = buildComponentsByTestFileUuid(dbSession, tests.getDocs());
}

WsTests.ListResponse.Builder responseBuilder = WsTests.ListResponse.newBuilder();
Tests.ListResponse.Builder responseBuilder = Tests.ListResponse.newBuilder();
responseBuilder.setPaging(Common.Paging.newBuilder()
.setPageIndex(searchOptions.getPage())
.setPageSize(searchOptions.getLimit())
@@ -166,7 +166,7 @@ public class ListAction implements TestsWsAction {
.build());

for (TestDoc testDoc : tests.getDocs()) {
WsTests.Test.Builder testBuilder = WsTests.Test.newBuilder();
Tests.Test.Builder testBuilder = Tests.Test.newBuilder();
testBuilder.setId(testDoc.testUuid());
testBuilder.setName(StringUtils.defaultString(testDoc.name()));
testBuilder.setFileId(testDoc.fileUuid());
@@ -176,7 +176,7 @@ public class ListAction implements TestsWsAction {
testBuilder.setFileName(component.longName());
setNullable(component.getBranch(), testBuilder::setFileBranch);
}
testBuilder.setStatus(WsTests.TestStatus.valueOf(testDoc.status()));
testBuilder.setStatus(Tests.TestStatus.valueOf(testDoc.status()));
if (testDoc.durationInMs() != null) {
testBuilder.setDurationInMs(testDoc.durationInMs());
}

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/user/ws/CreateAction.java Visa fil

@@ -32,7 +32,7 @@ import org.sonar.server.user.ExternalIdentity;
import org.sonar.server.user.NewUser;
import org.sonar.server.user.UserSession;
import org.sonar.server.user.UserUpdater;
import org.sonarqube.ws.WsUsers.CreateWsResponse;
import org.sonarqube.ws.Users.CreateWsResponse;
import org.sonarqube.ws.client.user.CreateRequest;

import static com.google.common.base.Strings.emptyToNull;

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/user/ws/CurrentAction.java Visa fil

@@ -33,15 +33,15 @@ import org.sonar.db.user.UserDto;
import org.sonar.server.issue.ws.AvatarResolver;
import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsUsers.CurrentWsResponse;
import org.sonarqube.ws.Users.CurrentWsResponse;

import static com.google.common.base.Preconditions.checkState;
import static com.google.common.base.Strings.emptyToNull;
import static java.util.Collections.singletonList;
import static org.sonar.core.util.Protobuf.setNullable;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.WsUsers.CurrentWsResponse.Permissions;
import static org.sonarqube.ws.WsUsers.CurrentWsResponse.newBuilder;
import static org.sonarqube.ws.Users.CurrentWsResponse.Permissions;
import static org.sonarqube.ws.Users.CurrentWsResponse.newBuilder;
import static org.sonarqube.ws.client.user.UsersWsParameters.ACTION_CURRENT;

public class CurrentAction implements UsersWsAction {

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/user/ws/GroupsAction.java Visa fil

@@ -41,8 +41,8 @@ import org.sonar.db.user.UserDto;
import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.user.UserSession;
import org.sonar.server.usergroups.DefaultGroupFinder;
import org.sonarqube.ws.WsUsers.GroupsWsResponse;
import org.sonarqube.ws.WsUsers.GroupsWsResponse.Group;
import org.sonarqube.ws.Users.GroupsWsResponse;
import org.sonarqube.ws.Users.GroupsWsResponse.Group;
import org.sonarqube.ws.client.user.GroupsRequest;

import static com.google.common.base.Preconditions.checkArgument;

+ 5
- 5
server/sonar-server/src/main/java/org/sonar/server/user/ws/IdentityProvidersAction.java Visa fil

@@ -28,8 +28,8 @@ import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.server.authentication.IdentityProviderRepository;
import org.sonarqube.ws.WsUsers;
import org.sonarqube.ws.WsUsers.IdentityProvidersWsResponse;
import org.sonarqube.ws.Users;
import org.sonarqube.ws.Users.IdentityProvidersWsResponse;

import static org.sonar.server.ws.WsUtils.writeProtobuf;

@@ -61,12 +61,12 @@ public class IdentityProvidersAction implements UsersWsAction {
return response.build();
}

private enum IdentityProviderToWsResponse implements Function<IdentityProvider, WsUsers.IdentityProvider> {
private enum IdentityProviderToWsResponse implements Function<IdentityProvider, Users.IdentityProvider> {
INSTANCE;

@Override
public WsUsers.IdentityProvider apply(@Nonnull IdentityProvider input) {
WsUsers.IdentityProvider.Builder builder = WsUsers.IdentityProvider.newBuilder()
public Users.IdentityProvider apply(@Nonnull IdentityProvider input) {
Users.IdentityProvider.Builder builder = Users.IdentityProvider.newBuilder()
.setKey(input.getKey())
.setName(input.getName());
Display display = input.getDisplay();

+ 8
- 8
server/sonar-server/src/main/java/org/sonar/server/user/ws/SearchAction.java Visa fil

@@ -40,8 +40,8 @@ import org.sonar.server.user.UserSession;
import org.sonar.server.user.index.UserDoc;
import org.sonar.server.user.index.UserIndex;
import org.sonar.server.user.index.UserQuery;
import org.sonarqube.ws.WsUsers;
import org.sonarqube.ws.WsUsers.SearchWsResponse;
import org.sonarqube.ws.Users;
import org.sonarqube.ws.Users.SearchWsResponse;
import org.sonarqube.ws.client.user.SearchRequest;

import static com.google.common.base.MoreObjects.firstNonNull;
@@ -65,10 +65,10 @@ import static org.sonar.server.user.ws.UserJsonWriter.FIELD_NAME;
import static org.sonar.server.user.ws.UserJsonWriter.FIELD_SCM_ACCOUNTS;
import static org.sonar.server.user.ws.UserJsonWriter.FIELD_TOKENS_COUNT;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.WsUsers.SearchWsResponse.Groups;
import static org.sonarqube.ws.WsUsers.SearchWsResponse.ScmAccounts;
import static org.sonarqube.ws.WsUsers.SearchWsResponse.User;
import static org.sonarqube.ws.WsUsers.SearchWsResponse.newBuilder;
import static org.sonarqube.ws.Users.SearchWsResponse.Groups;
import static org.sonarqube.ws.Users.SearchWsResponse.ScmAccounts;
import static org.sonarqube.ws.Users.SearchWsResponse.User;
import static org.sonarqube.ws.Users.SearchWsResponse.newBuilder;

public class SearchAction implements UsersWsAction {

@@ -111,11 +111,11 @@ public class SearchAction implements UsersWsAction {

@Override
public void handle(Request request, Response response) throws Exception {
WsUsers.SearchWsResponse wsResponse = doHandle(toSearchRequest(request));
Users.SearchWsResponse wsResponse = doHandle(toSearchRequest(request));
writeProtobuf(wsResponse, request, response);
}

private WsUsers.SearchWsResponse doHandle(SearchRequest request) {
private Users.SearchWsResponse doHandle(SearchRequest request) {
SearchOptions options = new SearchOptions().setPage(request.getPage(), request.getPageSize());
List<String> fields = request.getPossibleFields();
SearchResult<UserDoc> result = userIndex.search(UserQuery.builder().setTextQuery(request.getQuery()).build(), options);

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/CreateAction.java Visa fil

@@ -29,7 +29,7 @@ import org.sonar.db.DbSession;
import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.user.GroupDto;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsUserGroups;
import org.sonarqube.ws.UserGroups;

import static java.lang.String.format;
import static org.sonar.api.user.UserGroupValidation.GROUP_NAME_MAX_LENGTH;
@@ -105,7 +105,7 @@ public class CreateAction implements UserGroupsWsAction {
}

private void writeResponse(Request request, Response response, OrganizationDto organization, GroupDto group) {
WsUserGroups.CreateWsResponse.Builder respBuilder = WsUserGroups.CreateWsResponse.newBuilder();
UserGroups.CreateWsResponse.Builder respBuilder = UserGroups.CreateWsResponse.newBuilder();
// 'default' is always false as it's not possible to create a default group
respBuilder.setGroup(toProtobuf(organization, group, 0, false));
writeProtobuf(respBuilder.build(), request, response);

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/GroupWsSupport.java Visa fil

@@ -30,7 +30,7 @@ import org.sonar.db.user.GroupDto;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.usergroups.DefaultGroupFinder;
import org.sonarqube.ws.WsUserGroups;
import org.sonarqube.ws.UserGroups;

import static com.google.common.base.Preconditions.checkArgument;
import static org.sonar.core.util.Protobuf.setNullable;
@@ -142,8 +142,8 @@ public class GroupWsSupport {
checkArgument(!defaultGroup.getId().equals(groupDto.getId()), "Default group '%s' cannot be used to perform this action", groupDto.getName());
}

static WsUserGroups.Group.Builder toProtobuf(OrganizationDto organization, GroupDto group, int membersCount, boolean isDefault) {
WsUserGroups.Group.Builder wsGroup = WsUserGroups.Group.newBuilder()
static UserGroups.Group.Builder toProtobuf(OrganizationDto organization, GroupDto group, int membersCount, boolean isDefault) {
UserGroups.Group.Builder wsGroup = UserGroups.Group.newBuilder()
.setId(group.getId())
.setOrganization(organization.getKey())
.setName(group.getName())

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/SearchAction.java Visa fil

@@ -47,8 +47,8 @@ import static org.sonar.db.permission.OrganizationPermission.ADMINISTER;
import static org.sonar.server.es.SearchOptions.MAX_LIMIT;
import static org.sonar.server.usergroups.ws.GroupWsSupport.PARAM_ORGANIZATION_KEY;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.WsUserGroups.Group;
import static org.sonarqube.ws.WsUserGroups.SearchWsResponse;
import static org.sonarqube.ws.UserGroups.Group;
import static org.sonarqube.ws.UserGroups.SearchWsResponse;

public class SearchAction implements UserGroupsWsAction {


+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/UpdateAction.java Visa fil

@@ -32,7 +32,7 @@ import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.user.GroupDto;
import org.sonar.db.user.UserMembershipQuery;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsUserGroups;
import org.sonarqube.ws.UserGroups;

import static java.lang.String.format;
import static org.sonar.api.user.UserGroupValidation.GROUP_NAME_MAX_LENGTH;
@@ -130,7 +130,7 @@ public class UpdateAction implements UserGroupsWsAction {
.build();
int membersCount = dbClient.groupMembershipDao().countMembers(dbSession, query);

WsUserGroups.UpdateWsResponse.Builder respBuilder = WsUserGroups.UpdateWsResponse.newBuilder();
UserGroups.UpdateWsResponse.Builder respBuilder = UserGroups.UpdateWsResponse.newBuilder();
// 'default' is always false as it's not possible to update a default group
respBuilder.setGroup(toProtobuf(organization, group, membersCount, false));
writeProtobuf(respBuilder.build(), request, response);

+ 5
- 5
server/sonar-server/src/main/java/org/sonar/server/usertoken/ws/GenerateAction.java Visa fil

@@ -31,8 +31,8 @@ import org.sonar.db.user.UserTokenDto;
import org.sonar.server.exceptions.ServerException;
import org.sonar.server.user.UserSession;
import org.sonar.server.usertoken.TokenGenerator;
import org.sonarqube.ws.WsUserTokens;
import org.sonarqube.ws.WsUserTokens.GenerateWsResponse;
import org.sonarqube.ws.UserTokens;
import org.sonarqube.ws.UserTokens.GenerateWsResponse;
import org.sonarqube.ws.client.usertoken.GenerateWsRequest;

import static java.net.HttpURLConnection.HTTP_INTERNAL_ERROR;
@@ -81,11 +81,11 @@ public class GenerateAction implements UserTokensWsAction {

@Override
public void handle(Request request, Response response) throws Exception {
WsUserTokens.GenerateWsResponse generateWsResponse = doHandle(toCreateWsRequest(request));
UserTokens.GenerateWsResponse generateWsResponse = doHandle(toCreateWsRequest(request));
writeProtobuf(generateWsResponse, request, response);
}

private WsUserTokens.GenerateWsResponse doHandle(GenerateWsRequest request) {
private UserTokens.GenerateWsResponse doHandle(GenerateWsRequest request) {
try (DbSession dbSession = dbClient.openSession(false)) {
checkWsRequest(dbSession, request);
TokenPermissionsValidator.validate(userSession, request.getLogin());
@@ -149,7 +149,7 @@ public class GenerateAction implements UserTokensWsAction {
}

private static GenerateWsResponse buildResponse(UserTokenDto userTokenDto, String token) {
return WsUserTokens.GenerateWsResponse.newBuilder()
return UserTokens.GenerateWsResponse.newBuilder()
.setLogin(userTokenDto.getLogin())
.setName(userTokenDto.getName())
.setToken(token)

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/usertoken/ws/SearchAction.java Visa fil

@@ -28,7 +28,7 @@ import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.user.UserTokenDto;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsUserTokens.SearchWsResponse;
import org.sonarqube.ws.UserTokens.SearchWsResponse;
import org.sonarqube.ws.client.usertoken.SearchWsRequest;

import static org.sonar.api.utils.DateUtils.formatDateTime;

+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/batch/ProjectActionTest.java Visa fil

@@ -25,7 +25,7 @@ import org.sonar.scanner.protocol.input.FileData;
import org.sonar.scanner.protocol.input.ProjectRepositories;
import org.sonar.server.ws.TestResponse;
import org.sonar.server.ws.WsActionTester;
import org.sonarqube.ws.WsBatch.WsProjectResponse;
import org.sonarqube.ws.Batch.WsProjectResponse;

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Matchers.any;

+ 9
- 9
server/sonar-server/src/test/java/org/sonar/server/branch/ws/ListActionTest.java Visa fil

@@ -52,9 +52,9 @@ import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.WsActionTester;
import org.sonarqube.ws.Common;
import org.sonarqube.ws.MediaTypes;
import org.sonarqube.ws.WsBranches;
import org.sonarqube.ws.WsBranches.Branch;
import org.sonarqube.ws.WsBranches.ListWsResponse;
import org.sonarqube.ws.ProjectBranches;
import org.sonarqube.ws.ProjectBranches.Branch;
import org.sonarqube.ws.ProjectBranches.ListWsResponse;

import static java.lang.String.format;
import static java.util.Collections.emptySet;
@@ -70,7 +70,7 @@ import static org.sonar.api.rules.RuleType.VULNERABILITY;
import static org.sonar.api.utils.DateUtils.dateToLong;
import static org.sonar.api.utils.DateUtils.parseDateTime;
import static org.sonar.test.JsonAssert.assertJson;
import static org.sonarqube.ws.WsBranches.Branch.Status;
import static org.sonarqube.ws.ProjectBranches.Branch.Status;

public class ListActionTest {

@@ -218,9 +218,9 @@ public class ListActionTest {
ComponentDto shortLivingBranch = db.components().insertProjectBranch(project,
b -> b.setKey("short").setBranchType(BranchType.SHORT).setMergeBranchUuid(project.uuid()));

WsBranches.ShowWsResponse response = ws.newRequest()
ProjectBranches.ShowWsResponse response = ws.newRequest()
.setParam("project", shortLivingBranch.getKey())
.executeProtobuf(WsBranches.ShowWsResponse.class);
.executeProtobuf(ProjectBranches.ShowWsResponse.class);

assertThat(response.getBranch())
.extracting(Branch::getName, Branch::getType, Branch::getMergeBranch)
@@ -285,7 +285,7 @@ public class ListActionTest {
.setParam("project", project.getKey())
.executeProtobuf(ListWsResponse.class);

assertThat(response.getBranchesList().stream().map(WsBranches.Branch::getStatus))
assertThat(response.getBranchesList().stream().map(ProjectBranches.Branch::getStatus))
.extracting(Status::hasBugs, Status::getBugs, Status::hasVulnerabilities, Status::getVulnerabilities, Status::hasCodeSmells, Status::getCodeSmells)
.containsExactlyInAnyOrder(
tuple(false, 0L, false, 0L, false, 0L),
@@ -306,7 +306,7 @@ public class ListActionTest {
.setParam("project", project.getKey())
.executeProtobuf(ListWsResponse.class);

assertThat(response.getBranchesList().stream().filter(b -> b.getType().equals(Common.BranchType.SHORT)).map(WsBranches.Branch::getStatus))
assertThat(response.getBranchesList().stream().filter(b -> b.getType().equals(Common.BranchType.SHORT)).map(ProjectBranches.Branch::getStatus))
.extracting(Status::getBugs, Status::getVulnerabilities, Status::getCodeSmells)
.containsExactlyInAnyOrder(tuple(0L, 0L, 0L));
}
@@ -337,7 +337,7 @@ public class ListActionTest {
.executeProtobuf(ListWsResponse.class);

assertThat(response.getBranchesList())
.extracting(WsBranches.Branch::getType, WsBranches.Branch::hasAnalysisDate, b -> "".equals(b.getAnalysisDate()) ? null : dateToLong(parseDateTime(b.getAnalysisDate())))
.extracting(ProjectBranches.Branch::getType, ProjectBranches.Branch::hasAnalysisDate, b -> "".equals(b.getAnalysisDate()) ? null : dateToLong(parseDateTime(b.getAnalysisDate())))
.containsExactlyInAnyOrder(
tuple(Common.BranchType.LONG, false, null),
tuple(Common.BranchType.SHORT, false, null),

+ 12
- 11
server/sonar-server/src/test/java/org/sonar/server/ce/ws/ActivityActionTest.java Visa fil

@@ -50,11 +50,12 @@ import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.TestResponse;
import org.sonar.server.ws.WsActionTester;
import org.sonar.test.JsonAssert;
import org.sonarqube.ws.Ce;
import org.sonarqube.ws.Common;
import org.sonarqube.ws.MediaTypes;
import org.sonarqube.ws.WsCe;
import org.sonarqube.ws.WsCe.ActivityResponse;
import org.sonarqube.ws.WsCe.Task;
import org.sonarqube.ws.Ce;
import org.sonarqube.ws.Ce.ActivityResponse;
import org.sonarqube.ws.Ce.Task;

import static java.util.Arrays.asList;
import static org.assertj.core.api.Assertions.assertThat;
@@ -110,7 +111,7 @@ public class ActivityActionTest {
Task task = activityResponse.getTasks(0);
assertThat(task.getOrganization()).isEqualTo(org2.getKey());
assertThat(task.getId()).isEqualTo("T2");
assertThat(task.getStatus()).isEqualTo(WsCe.TaskStatus.FAILED);
assertThat(task.getStatus()).isEqualTo(Ce.TaskStatus.FAILED);
assertThat(task.getComponentId()).isEqualTo(project2.uuid());
assertThat(task.hasAnalysisId()).isFalse();
assertThat(task.getExecutionTimeMs()).isEqualTo(500L);
@@ -118,7 +119,7 @@ public class ActivityActionTest {

task = activityResponse.getTasks(1);
assertThat(task.getId()).isEqualTo("T1");
assertThat(task.getStatus()).isEqualTo(WsCe.TaskStatus.SUCCESS);
assertThat(task.getStatus()).isEqualTo(Ce.TaskStatus.SUCCESS);
assertThat(task.getComponentId()).isEqualTo(project1.uuid());
assertThat(task.getLogs()).isFalse();
assertThat(task.getOrganization()).isEqualTo(org1.getKey());
@@ -226,7 +227,7 @@ public class ActivityActionTest {

assertThat(activityResponse.getTasksCount()).isEqualTo(1);
assertThat(activityResponse.getTasks(0).getId()).isEqualTo("T1");
assertThat(activityResponse.getTasks(0).getStatus()).isEqualTo(WsCe.TaskStatus.SUCCESS);
assertThat(activityResponse.getTasks(0).getStatus()).isEqualTo(Ce.TaskStatus.SUCCESS);
assertThat(activityResponse.getTasks(0).getComponentId()).isEqualTo(project1.uuid());
}

@@ -354,9 +355,9 @@ public class ActivityActionTest {
ActivityResponse response = ws.newRequest().executeProtobuf(ActivityResponse.class);

assertThat(response.getTasksList())
.extracting(Task::getId, WsCe.Task::getBranch, WsCe.Task::getBranchType, WsCe.Task::getStatus, WsCe.Task::getComponentKey)
.extracting(Task::getId, Ce.Task::getBranch, Ce.Task::getBranchType, Ce.Task::getStatus, Ce.Task::getComponentKey)
.containsExactlyInAnyOrder(
tuple("T1", longLivingBranch.getBranch(), Common.BranchType.LONG, WsCe.TaskStatus.SUCCESS, longLivingBranch.getKey()));
tuple("T1", longLivingBranch.getBranch(), Common.BranchType.LONG, Ce.TaskStatus.SUCCESS, longLivingBranch.getKey()));
}

@Test
@@ -375,10 +376,10 @@ public class ActivityActionTest {
.executeProtobuf(ActivityResponse.class);

assertThat(response.getTasksList())
.extracting(Task::getId, WsCe.Task::getBranch, WsCe.Task::getBranchType, WsCe.Task::getStatus)
.extracting(Task::getId, Ce.Task::getBranch, Ce.Task::getBranchType, Ce.Task::getStatus)
.containsExactlyInAnyOrder(
tuple("T1", branch, Common.BranchType.LONG, WsCe.TaskStatus.IN_PROGRESS),
tuple("T2", branch, Common.BranchType.LONG, WsCe.TaskStatus.PENDING));
tuple("T1", branch, Common.BranchType.LONG, Ce.TaskStatus.IN_PROGRESS),
tuple("T2", branch, Common.BranchType.LONG, Ce.TaskStatus.PENDING));
}

@Test

+ 9
- 8
server/sonar-server/src/test/java/org/sonar/server/ce/ws/ActivityStatusActionTest.java Visa fil

@@ -40,7 +40,8 @@ import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.WsActionTester;
import org.sonarqube.ws.WsCe;
import org.sonarqube.ws.Ce;
import org.sonarqube.ws.Ce;

import static org.assertj.core.api.Assertions.assertThat;
import static org.sonar.db.ce.CeQueueTesting.newCeQueueDto;
@@ -101,7 +102,7 @@ public class ActivityStatusActionTest {
insertActivity(CeActivityDto.Status.FAILED, projectUuid);
insertActivity(CeActivityDto.Status.FAILED, anotherProjectUuid);

WsCe.ActivityStatusWsResponse result = call(projectUuid);
Ce.ActivityStatusWsResponse result = call(projectUuid);

assertThat(result.getPending()).isEqualTo(2);
assertThat(result.getFailing()).isEqualTo(1);
@@ -109,7 +110,7 @@ public class ActivityStatusActionTest {

@Test
public void empty_status() {
WsCe.ActivityStatusWsResponse result = call();
Ce.ActivityStatusWsResponse result = call();

assertThat(result.getPending()).isEqualTo(0);
assertThat(result.getFailing()).isEqualTo(0);
@@ -174,19 +175,19 @@ public class ActivityStatusActionTest {
db.commit();
}

private WsCe.ActivityStatusWsResponse call() {
private Ce.ActivityStatusWsResponse call() {
return callByComponentUuidOrComponentKey(null, null);
}

private WsCe.ActivityStatusWsResponse call(String componentUuid) {
private Ce.ActivityStatusWsResponse call(String componentUuid) {
return callByComponentUuidOrComponentKey(componentUuid, null);
}

private WsCe.ActivityStatusWsResponse callByComponentKey(String componentKey) {
private Ce.ActivityStatusWsResponse callByComponentKey(String componentKey) {
return callByComponentUuidOrComponentKey(null, componentKey);
}

private WsCe.ActivityStatusWsResponse callByComponentUuidOrComponentKey(@Nullable String componentUuid, @Nullable String componentKey) {
private Ce.ActivityStatusWsResponse callByComponentUuidOrComponentKey(@Nullable String componentUuid, @Nullable String componentKey) {
TestRequest request = ws.newRequest();
if (componentUuid != null) {
request.setParam(PARAM_COMPONENT_ID, componentUuid);
@@ -194,6 +195,6 @@ public class ActivityStatusActionTest {
if (componentKey != null) {
request.setParam(DEPRECATED_PARAM_COMPONENT_KEY, componentKey);
}
return request.executeProtobuf(WsCe.ActivityStatusWsResponse.class);
return request.executeProtobuf(Ce.ActivityStatusWsResponse.class);
}
}

+ 27
- 26
server/sonar-server/src/test/java/org/sonar/server/ce/ws/ComponentActionTest.java Visa fil

@@ -40,9 +40,10 @@ import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.WsActionTester;
import org.sonarqube.ws.Ce;
import org.sonarqube.ws.Common;
import org.sonarqube.ws.MediaTypes;
import org.sonarqube.ws.WsCe;
import org.sonarqube.ws.Ce;

import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Java6Assertions.tuple;
@@ -74,9 +75,9 @@ public class ComponentActionTest {
ComponentDto project = db.components().insertPrivateProject();
userSession.addProjectPermission(UserRole.USER, project);

WsCe.ProjectResponse response = ws.newRequest()
Ce.ProjectResponse response = ws.newRequest()
.setParam(PARAM_COMPONENT, project.getKey())
.executeProtobuf(WsCe.ProjectResponse.class);
.executeProtobuf(Ce.ProjectResponse.class);

assertThat(response.getQueueCount()).isEqualTo(0);
assertThat(response.hasCurrent()).isFalse();
@@ -95,9 +96,9 @@ public class ComponentActionTest {
insertQueue("T4", project1, IN_PROGRESS);
insertQueue("T5", project1, PENDING);

WsCe.ProjectResponse response = ws.newRequest()
Ce.ProjectResponse response = ws.newRequest()
.setParam(PARAM_COMPONENT, project1.getKey())
.executeProtobuf(WsCe.ProjectResponse.class);
.executeProtobuf(Ce.ProjectResponse.class);
assertThat(response.getQueueCount()).isEqualTo(2);
assertThat(response.getQueue(0).getId()).isEqualTo("T4");
assertThat(response.getQueue(1).getId()).isEqualTo("T5");
@@ -106,7 +107,7 @@ public class ComponentActionTest {
assertThat(response.getCurrent().getId()).isEqualTo("T3");
assertThat(response.getCurrent().hasAnalysisId()).isFalse();
assertThat(response.getQueueList())
.extracting(WsCe.Task::getOrganization)
.extracting(Ce.Task::getOrganization)
.containsOnly(organization.getKey());
assertThat(response.getCurrent().getOrganization()).isEqualTo(organization.getKey());
}
@@ -118,9 +119,9 @@ public class ComponentActionTest {
SnapshotDto analysis = db.components().insertSnapshot(project);
insertActivity("T1", project, CeActivityDto.Status.SUCCESS, analysis);

WsCe.ProjectResponse response = ws.newRequest()
Ce.ProjectResponse response = ws.newRequest()
.setParam(PARAM_COMPONENT, project.getDbKey())
.executeProtobuf(WsCe.ProjectResponse.class);
.executeProtobuf(Ce.ProjectResponse.class);
assertThat(response.hasCurrent()).isTrue();
assertThat(response.getCurrent().getId()).isEqualTo("T1");
assertThat(response.getCurrent().getAnalysisId()).isEqualTo(analysis.getUuid());
@@ -133,9 +134,9 @@ public class ComponentActionTest {
SnapshotDto analysis = db.components().insertSnapshot(project);
insertActivity("T1", project, CeActivityDto.Status.SUCCESS, analysis);

WsCe.ProjectResponse response = ws.newRequest()
Ce.ProjectResponse response = ws.newRequest()
.setParam(PARAM_COMPONENT_ID, project.uuid())
.executeProtobuf(WsCe.ProjectResponse.class);
.executeProtobuf(Ce.ProjectResponse.class);
assertThat(response.hasCurrent()).isTrue();
assertThat(response.getCurrent().getId()).isEqualTo("T1");
assertThat(response.getCurrent().getAnalysisId()).isEqualTo(analysis.getUuid());
@@ -151,9 +152,9 @@ public class ComponentActionTest {
insertActivity("T4", project, CeActivityDto.Status.CANCELED);
insertActivity("T5", project, CeActivityDto.Status.CANCELED);

WsCe.ProjectResponse response = ws.newRequest()
Ce.ProjectResponse response = ws.newRequest()
.setParam(PARAM_COMPONENT, project.getKey())
.executeProtobuf(WsCe.ProjectResponse.class);
.executeProtobuf(Ce.ProjectResponse.class);
assertThat(response.getQueueCount()).isEqualTo(0);
// T3 is the latest task executed on PROJECT_1 ignoring Canceled ones
assertThat(response.hasCurrent()).isTrue();
@@ -170,14 +171,14 @@ public class ComponentActionTest {
insertCharacteristic(activity, BRANCH_KEY, longLivingBranch.getBranch());
insertCharacteristic(activity, BRANCH_TYPE_KEY, LONG.name());

WsCe.ProjectResponse response = ws.newRequest()
Ce.ProjectResponse response = ws.newRequest()
.setParam(PARAM_COMPONENT, project.getKey())
.executeProtobuf(WsCe.ProjectResponse.class);
.executeProtobuf(Ce.ProjectResponse.class);

assertThat(response.getCurrent())
.extracting(WsCe.Task::getId, WsCe.Task::getBranch, WsCe.Task::getBranchType, WsCe.Task::getStatus, WsCe.Task::getComponentKey)
.extracting(Ce.Task::getId, Ce.Task::getBranch, Ce.Task::getBranchType, Ce.Task::getStatus, Ce.Task::getComponentKey)
.containsOnly(
"T1", longLivingBranch.getBranch(), Common.BranchType.LONG, WsCe.TaskStatus.SUCCESS, project.getKey());
"T1", longLivingBranch.getBranch(), Common.BranchType.LONG, Ce.TaskStatus.SUCCESS, project.getKey());
}

@Test
@@ -192,15 +193,15 @@ public class ComponentActionTest {
insertCharacteristic(queue2, BRANCH_KEY, longLivingBranch.getBranch());
insertCharacteristic(queue2, BRANCH_TYPE_KEY, LONG.name());

WsCe.ProjectResponse response = ws.newRequest()
Ce.ProjectResponse response = ws.newRequest()
.setParam(PARAM_COMPONENT, longLivingBranch.getKey())
.executeProtobuf(WsCe.ProjectResponse.class);
.executeProtobuf(Ce.ProjectResponse.class);

assertThat(response.getQueueList())
.extracting(WsCe.Task::getId, WsCe.Task::getBranch, WsCe.Task::getBranchType, WsCe.Task::getStatus, WsCe.Task::getComponentKey)
.extracting(Ce.Task::getId, Ce.Task::getBranch, Ce.Task::getBranchType, Ce.Task::getStatus, Ce.Task::getComponentKey)
.containsOnly(
tuple("T1", longLivingBranch.getBranch(), Common.BranchType.LONG, WsCe.TaskStatus.IN_PROGRESS, project.getKey()),
tuple("T2", longLivingBranch.getBranch(), Common.BranchType.LONG, WsCe.TaskStatus.PENDING, project.getKey()));
tuple("T1", longLivingBranch.getBranch(), Common.BranchType.LONG, Ce.TaskStatus.IN_PROGRESS, project.getKey()),
tuple("T2", longLivingBranch.getBranch(), Common.BranchType.LONG, Ce.TaskStatus.PENDING, project.getKey()));
}

@Test
@@ -217,12 +218,12 @@ public class ComponentActionTest {
insertCharacteristic(shortLivingBranchQueue, BRANCH_KEY, shortLivingBranch.getBranch());
insertCharacteristic(shortLivingBranchQueue, BRANCH_TYPE_KEY, SHORT.name());

WsCe.ProjectResponse response = ws.newRequest()
Ce.ProjectResponse response = ws.newRequest()
.setParam(PARAM_COMPONENT, longLivingBranch.getKey())
.executeProtobuf(WsCe.ProjectResponse.class);
.executeProtobuf(Ce.ProjectResponse.class);

assertThat(response.getQueueList())
.extracting(WsCe.Task::getId, WsCe.Task::getComponentKey, WsCe.Task::getBranch, WsCe.Task::getBranchType)
.extracting(Ce.Task::getId, Ce.Task::getComponentKey, Ce.Task::getBranch, Ce.Task::getBranchType)
.containsOnly(
tuple("Main", project.getKey(), "", Common.BranchType.UNKNOWN_BRANCH_TYPE),
tuple("Long", longLivingBranch.getKey(), longLivingBranch.getBranch(), Common.BranchType.LONG),
@@ -236,9 +237,9 @@ public class ComponentActionTest {
SnapshotDto analysis = db.components().insertSnapshot(project);
insertActivity("T1", project, CeActivityDto.Status.SUCCESS, analysis);

WsCe.ProjectResponse response = ws.newRequest()
Ce.ProjectResponse response = ws.newRequest()
.setParam("componentKey", project.getKey())
.executeProtobuf(WsCe.ProjectResponse.class);
.executeProtobuf(Ce.ProjectResponse.class);
assertThat(response.hasCurrent()).isTrue();
assertThat(response.getCurrent().getId()).isEqualTo("T1");
assertThat(response.getCurrent().getAnalysisId()).isEqualTo(analysis.getUuid());

+ 6
- 5
server/sonar-server/src/test/java/org/sonar/server/ce/ws/SubmitActionTest.java Visa fil

@@ -37,8 +37,9 @@ import org.sonar.server.organization.TestDefaultOrganizationProvider;
import org.sonar.server.ws.TestResponse;
import org.sonar.server.ws.WsActionTester;
import org.sonar.test.JsonAssert;
import org.sonarqube.ws.Ce;
import org.sonarqube.ws.MediaTypes;
import org.sonarqube.ws.WsCe;
import org.sonarqube.ws.Ce;

import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.entry;
@@ -77,12 +78,12 @@ public class SubmitActionTest {
when(reportSubmitter.submit(eq(organizationKey), eq("my_project"), Matchers.isNull(String.class), eq("My Project"),
anyMapOf(String.class, String.class), any(InputStream.class))).thenReturn(A_CE_TASK);

WsCe.SubmitResponse submitResponse = tester.newRequest()
Ce.SubmitResponse submitResponse = tester.newRequest()
.setParam("projectKey", "my_project")
.setParam("projectName", "My Project")
.setPart("report", new ByteArrayInputStream("{binary}".getBytes()), "foo.bar")
.setMethod("POST")
.executeProtobuf(WsCe.SubmitResponse.class);
.executeProtobuf(Ce.SubmitResponse.class);

verify(reportSubmitter).submit(eq(organizationKey), eq("my_project"), Matchers.isNull(String.class), eq("My Project"),
anyMapOf(String.class, String.class), any(InputStream.class));
@@ -97,13 +98,13 @@ public class SubmitActionTest {
anyMapOf(String.class, String.class), any(InputStream.class))).thenReturn(A_CE_TASK);

String[] characteristics = {"branch=branch1", "key=value1=value2"};
WsCe.SubmitResponse submitResponse = tester.newRequest()
Ce.SubmitResponse submitResponse = tester.newRequest()
.setParam("projectKey", "my_project")
.setParam("projectName", "My Project")
.setMultiParam("characteristic", Arrays.asList(characteristics))
.setPart("report", new ByteArrayInputStream("{binary}".getBytes()), "foo.bar")
.setMethod("POST")
.executeProtobuf(WsCe.SubmitResponse.class);
.executeProtobuf(Ce.SubmitResponse.class);

assertThat(submitResponse.getTaskId()).isEqualTo("TASK_1");
verify(reportSubmitter).submit(eq(organizationKey), eq("my_project"), Matchers.isNull(String.class), eq("My Project"),

+ 33
- 32
server/sonar-server/src/test/java/org/sonar/server/ce/ws/TaskActionTest.java Visa fil

@@ -41,8 +41,9 @@ import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.WsActionTester;
import org.sonarqube.ws.Ce;
import org.sonarqube.ws.Common;
import org.sonarqube.ws.WsCe;
import org.sonarqube.ws.Ce;

import static java.util.Collections.singleton;
import static org.assertj.core.api.Assertions.assertThat;
@@ -88,12 +89,12 @@ public class TaskActionTest {
queueDto.setSubmitterLogin("john");
persist(queueDto);

WsCe.TaskResponse taskResponse = ws.newRequest()
Ce.TaskResponse taskResponse = ws.newRequest()
.setParam("id", SOME_TASK_UUID)
.executeProtobuf(WsCe.TaskResponse.class);
.executeProtobuf(Ce.TaskResponse.class);
assertThat(taskResponse.getTask().getOrganization()).isEqualTo(organizationDto.getKey());
assertThat(taskResponse.getTask().getId()).isEqualTo(SOME_TASK_UUID);
assertThat(taskResponse.getTask().getStatus()).isEqualTo(WsCe.TaskStatus.PENDING);
assertThat(taskResponse.getTask().getStatus()).isEqualTo(Ce.TaskStatus.PENDING);
assertThat(taskResponse.getTask().getSubmitterLogin()).isEqualTo("john");
assertThat(taskResponse.getTask().getComponentId()).isEqualTo(project.uuid());
assertThat(taskResponse.getTask().getComponentKey()).isEqualTo(project.getDbKey());
@@ -109,13 +110,13 @@ public class TaskActionTest {
CeActivityDto activityDto = createActivityDto(SOME_TASK_UUID);
persist(activityDto);

WsCe.TaskResponse taskResponse = ws.newRequest()
Ce.TaskResponse taskResponse = ws.newRequest()
.setParam("id", SOME_TASK_UUID)
.executeProtobuf(WsCe.TaskResponse.class);
WsCe.Task task = taskResponse.getTask();
.executeProtobuf(Ce.TaskResponse.class);
Ce.Task task = taskResponse.getTask();
assertThat(task.getOrganization()).isEqualTo(organizationDto.getKey());
assertThat(task.getId()).isEqualTo(SOME_TASK_UUID);
assertThat(task.getStatus()).isEqualTo(WsCe.TaskStatus.FAILED);
assertThat(task.getStatus()).isEqualTo(Ce.TaskStatus.FAILED);
assertThat(task.getComponentId()).isEqualTo(project.uuid());
assertThat(task.getComponentKey()).isEqualTo(project.getDbKey());
assertThat(task.getComponentName()).isEqualTo(project.name());
@@ -135,12 +136,12 @@ public class TaskActionTest {
insertCharacteristic(activity, BRANCH_KEY, longLivingBranch.getBranch());
insertCharacteristic(activity, BRANCH_TYPE_KEY, LONG.name());

WsCe.TaskResponse taskResponse = ws.newRequest()
Ce.TaskResponse taskResponse = ws.newRequest()
.setParam("id", SOME_TASK_UUID)
.executeProtobuf(WsCe.TaskResponse.class);
.executeProtobuf(Ce.TaskResponse.class);

assertThat(taskResponse.getTask())
.extracting(WsCe.Task::getId, WsCe.Task::getBranch, WsCe.Task::getBranchType, WsCe.Task::getComponentKey)
.extracting(Ce.Task::getId, Ce.Task::getBranch, Ce.Task::getBranchType, Ce.Task::getComponentKey)
.containsExactlyInAnyOrder(SOME_TASK_UUID, longLivingBranch.getBranch(), Common.BranchType.LONG, longLivingBranch.getKey());
}

@@ -152,12 +153,12 @@ public class TaskActionTest {
insertCharacteristic(queueDto, BRANCH_KEY, branch);
insertCharacteristic(queueDto, BRANCH_TYPE_KEY, LONG.name());

WsCe.TaskResponse taskResponse = ws.newRequest()
Ce.TaskResponse taskResponse = ws.newRequest()
.setParam("id", SOME_TASK_UUID)
.executeProtobuf(WsCe.TaskResponse.class);
.executeProtobuf(Ce.TaskResponse.class);

assertThat(taskResponse.getTask())
.extracting(WsCe.Task::getId, WsCe.Task::getBranch, WsCe.Task::getBranchType, WsCe.Task::hasComponentKey)
.extracting(Ce.Task::getId, Ce.Task::getBranch, Ce.Task::getBranchType, Ce.Task::hasComponentKey)
.containsExactlyInAnyOrder(SOME_TASK_UUID, branch, Common.BranchType.LONG, false);
}

@@ -170,11 +171,11 @@ public class TaskActionTest {
.setErrorStacktrace("error stack");
persist(activityDto);

WsCe.TaskResponse taskResponse = ws.newRequest()
Ce.TaskResponse taskResponse = ws.newRequest()
.setParam("id", SOME_TASK_UUID)
.setParam("additionalFields", "stacktrace")
.executeProtobuf(WsCe.TaskResponse.class);
WsCe.Task task = taskResponse.getTask();
.executeProtobuf(Ce.TaskResponse.class);
Ce.Task task = taskResponse.getTask();
assertThat(task.getId()).isEqualTo(SOME_TASK_UUID);
assertThat(task.getErrorMessage()).isEqualTo(activityDto.getErrorMessage());
assertThat(task.hasErrorStacktrace()).isTrue();
@@ -190,10 +191,10 @@ public class TaskActionTest {
.setErrorStacktrace("error stack");
persist(activityDto);

WsCe.TaskResponse taskResponse = ws.newRequest()
Ce.TaskResponse taskResponse = ws.newRequest()
.setParam("id", SOME_TASK_UUID)
.executeProtobuf(WsCe.TaskResponse.class);
WsCe.Task task = taskResponse.getTask();
.executeProtobuf(Ce.TaskResponse.class);
Ce.Task task = taskResponse.getTask();
assertThat(task.getId()).isEqualTo(SOME_TASK_UUID);
assertThat(task.getErrorMessage()).isEqualTo(activityDto.getErrorMessage());
assertThat(task.hasErrorStacktrace()).isFalse();
@@ -207,11 +208,11 @@ public class TaskActionTest {
persist(createActivityDto(SOME_TASK_UUID));
persistScannerContext(SOME_TASK_UUID, scannerContext);

WsCe.TaskResponse taskResponse = ws.newRequest()
Ce.TaskResponse taskResponse = ws.newRequest()
.setParam("id", SOME_TASK_UUID)
.setParam("additionalFields", "scannerContext")
.executeProtobuf(WsCe.TaskResponse.class);
WsCe.Task task = taskResponse.getTask();
.executeProtobuf(Ce.TaskResponse.class);
Ce.Task task = taskResponse.getTask();
assertThat(task.getId()).isEqualTo(SOME_TASK_UUID);
assertThat(task.getScannerContext()).isEqualTo(scannerContext);
}
@@ -224,11 +225,11 @@ public class TaskActionTest {
persist(createActivityDto(SOME_TASK_UUID));
persistScannerContext(SOME_TASK_UUID, scannerContext);

WsCe.TaskResponse taskResponse = ws.newRequest()
Ce.TaskResponse taskResponse = ws.newRequest()
.setParam("id", SOME_TASK_UUID)
.setParam("additionalFields", "stacktrace")
.executeProtobuf(WsCe.TaskResponse.class);
WsCe.Task task = taskResponse.getTask();
.executeProtobuf(Ce.TaskResponse.class);
Ce.Task task = taskResponse.getTask();
assertThat(task.getId()).isEqualTo(SOME_TASK_UUID);
assertThat(task.hasScannerContext()).isFalse();
}
@@ -241,10 +242,10 @@ public class TaskActionTest {
.setErrorMessage("error msg");
persist(activityDto);

WsCe.TaskResponse taskResponse = ws.newRequest()
Ce.TaskResponse taskResponse = ws.newRequest()
.setParam("id", SOME_TASK_UUID)
.executeProtobuf(WsCe.TaskResponse.class);
WsCe.Task task = taskResponse.getTask();
.executeProtobuf(Ce.TaskResponse.class);
Ce.Task task = taskResponse.getTask();
assertThat(task.getId()).isEqualTo(SOME_TASK_UUID);
assertThat(task.getErrorMessage()).isEqualTo(activityDto.getErrorMessage());
assertThat(task.hasErrorStacktrace()).isFalse();
@@ -433,10 +434,10 @@ public class TaskActionTest {
}

private void call(String taskUuid) {
WsCe.TaskResponse taskResponse = ws.newRequest()
Ce.TaskResponse taskResponse = ws.newRequest()
.setParam("id", taskUuid)
.executeProtobuf(WsCe.TaskResponse.class);
WsCe.Task task = taskResponse.getTask();
.executeProtobuf(Ce.TaskResponse.class);
Ce.Task task = taskResponse.getTask();
assertThat(task.getId()).isEqualTo(taskUuid);
}


+ 16
- 15
server/sonar-server/src/test/java/org/sonar/server/ce/ws/TaskFormatterTest.java Visa fil

@@ -31,7 +31,8 @@ import org.sonar.db.ce.CeActivityDto;
import org.sonar.db.ce.CeQueueDto;
import org.sonar.db.ce.CeTaskTypes;
import org.sonar.db.organization.OrganizationDto;
import org.sonarqube.ws.WsCe;
import org.sonarqube.ws.Ce;
import org.sonarqube.ws.Ce;

import static java.util.Arrays.asList;
import static org.assertj.core.api.Assertions.assertThat;
@@ -54,11 +55,11 @@ public class TaskFormatterTest {
dto.setStatus(CeQueueDto.Status.PENDING);
dto.setCreatedAt(1_450_000_000_000L);

WsCe.Task wsTask = underTest.formatQueue(db.getSession(), dto);
Ce.Task wsTask = underTest.formatQueue(db.getSession(), dto);

assertThat(wsTask.getType()).isEqualTo("TYPE");
assertThat(wsTask.getId()).isEqualTo("UUID");
assertThat(wsTask.getStatus()).isEqualTo(WsCe.TaskStatus.PENDING);
assertThat(wsTask.getStatus()).isEqualTo(Ce.TaskStatus.PENDING);
assertThat(wsTask.getLogs()).isFalse();
assertThat(wsTask.getSubmittedAt()).isEqualTo(DateUtils.formatDateTime(new Date(1_450_000_000_000L)));
assertThat(wsTask.hasScannerContext()).isFalse();
@@ -88,7 +89,7 @@ public class TaskFormatterTest {
dto.setComponentUuid(uuid);
dto.setSubmitterLogin("rob");

WsCe.Task wsTask = underTest.formatQueue(db.getSession(), dto);
Ce.Task wsTask = underTest.formatQueue(db.getSession(), dto);

assertThat(wsTask.getType()).isEqualTo("TYPE");
assertThat(wsTask.getId()).isEqualTo("UUID");
@@ -96,7 +97,7 @@ public class TaskFormatterTest {
assertThat(wsTask.getComponentKey()).isEqualTo("COMPONENT_KEY");
assertThat(wsTask.getComponentName()).isEqualTo("Component Name");
assertThat(wsTask.getComponentQualifier()).isEqualTo("TRK");
assertThat(wsTask.getStatus()).isEqualTo(WsCe.TaskStatus.IN_PROGRESS);
assertThat(wsTask.getStatus()).isEqualTo(Ce.TaskStatus.IN_PROGRESS);
assertThat(wsTask.getLogs()).isFalse();
assertThat(wsTask.getSubmitterLogin()).isEqualTo("rob");
assertThat(wsTask.hasExecutionTimeMs()).isTrue();
@@ -113,7 +114,7 @@ public class TaskFormatterTest {
dto.setCreatedAt(1_450_000_000_000L);
dto.setComponentUuid("DOES_NOT_EXIST");

WsCe.Task wsTask = underTest.formatQueue(db.getSession(), dto);
Ce.Task wsTask = underTest.formatQueue(db.getSession(), dto);

assertThat(wsTask.getComponentId()).isEqualTo("DOES_NOT_EXIST");
assertThat(wsTask.hasComponentKey()).isFalse();
@@ -132,7 +133,7 @@ public class TaskFormatterTest {
dto.setStartedAt(startedAt);
when(system2.now()).thenReturn(now);

WsCe.Task wsTask = underTest.formatQueue(db.getSession(), dto);
Ce.Task wsTask = underTest.formatQueue(db.getSession(), dto);

assertThat(wsTask.getExecutionTimeMs()).isEqualTo(now - startedAt);
}
@@ -151,7 +152,7 @@ public class TaskFormatterTest {
dto2.setStatus(CeQueueDto.Status.PENDING);
dto2.setCreatedAt(1_451_000_000_000L);

Iterable<WsCe.Task> wsTasks = underTest.formatQueue(db.getSession(), asList(dto1, dto2));
Iterable<Ce.Task> wsTasks = underTest.formatQueue(db.getSession(), asList(dto1, dto2));
assertThat(wsTasks).extracting("id").containsExactly("UUID1", "UUID2");
}

@@ -159,11 +160,11 @@ public class TaskFormatterTest {
public void formatActivity() {
CeActivityDto dto = newActivity("UUID", "COMPONENT_UUID", CeActivityDto.Status.FAILED);

WsCe.Task wsTask = underTest.formatActivity(db.getSession(), dto, null);
Ce.Task wsTask = underTest.formatActivity(db.getSession(), dto, null);

assertThat(wsTask.getType()).isEqualTo(CeTaskTypes.REPORT);
assertThat(wsTask.getId()).isEqualTo("UUID");
assertThat(wsTask.getStatus()).isEqualTo(WsCe.TaskStatus.FAILED);
assertThat(wsTask.getStatus()).isEqualTo(Ce.TaskStatus.FAILED);
assertThat(wsTask.getSubmittedAt()).isEqualTo(DateUtils.formatDateTime(new Date(1_450_000_000_000L)));
assertThat(wsTask.getExecutionTimeMs()).isEqualTo(500L);
assertThat(wsTask.getAnalysisId()).isEqualTo("U1");
@@ -176,7 +177,7 @@ public class TaskFormatterTest {
CeActivityDto dto = newActivity("UUID", "COMPONENT_UUID", CeActivityDto.Status.FAILED);

String expected = "scanner context baby!";
WsCe.Task wsTask = underTest.formatActivity(db.getSession(), dto, expected);
Ce.Task wsTask = underTest.formatActivity(db.getSession(), dto, expected);

assertThat(wsTask.hasScannerContext()).isTrue();
assertThat(wsTask.getScannerContext()).isEqualTo(expected);
@@ -187,7 +188,7 @@ public class TaskFormatterTest {
CeActivityDto dto1 = newActivity("UUID1", "COMPONENT_UUID", CeActivityDto.Status.FAILED);
CeActivityDto dto2 = newActivity("UUID2", "COMPONENT_UUID", CeActivityDto.Status.SUCCESS);

Iterable<WsCe.Task> wsTasks = underTest.formatActivity(db.getSession(), asList(dto1, dto2));
Iterable<Ce.Task> wsTasks = underTest.formatActivity(db.getSession(), asList(dto1, dto2));

assertThat(wsTasks).extracting("id").containsExactly("UUID1", "UUID2");
}
@@ -199,7 +200,7 @@ public class TaskFormatterTest {
.setErrorStacktrace("error stacktrace")
.setErrorType("anErrorType");

WsCe.Task task = underTest.formatActivity(db.getSession(), Collections.singletonList(dto)).iterator().next();
Ce.Task task = underTest.formatActivity(db.getSession(), Collections.singletonList(dto)).iterator().next();

assertThat(task.getErrorMessage()).isEqualTo(dto.getErrorMessage());
assertThat(task.getErrorStacktrace()).isEqualTo(dto.getErrorStacktrace());
@@ -211,7 +212,7 @@ public class TaskFormatterTest {
CeActivityDto dto = newActivity("UUID", "COMPONENT_UUID", CeActivityDto.Status.FAILED)
.setErrorMessage("error msg");

WsCe.Task task = underTest.formatActivity(db.getSession(), Collections.singletonList(dto)).iterator().next();
Ce.Task task = underTest.formatActivity(db.getSession(), Collections.singletonList(dto)).iterator().next();

assertThat(task.getErrorMessage()).isEqualTo(dto.getErrorMessage());
assertThat(task.hasErrorStacktrace()).isFalse();
@@ -222,7 +223,7 @@ public class TaskFormatterTest {
CeActivityDto dto = newActivity("UUID", "COMPONENT_UUID", CeActivityDto.Status.FAILED)
.setErrorMessage("error msg");

WsCe.Task task = underTest.formatActivity(db.getSession(), Collections.singletonList(dto)).iterator().next();
Ce.Task task = underTest.formatActivity(db.getSession(), Collections.singletonList(dto)).iterator().next();

assertThat(task.getErrorMessage()).isEqualTo(dto.getErrorMessage());
assertThat(task.hasErrorStacktrace()).isFalse();

+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/ce/ws/WorkerCountActionTest.java Visa fil

@@ -28,7 +28,7 @@ import org.sonar.ce.configuration.WorkerCountProvider;
import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.WsActionTester;
import org.sonarqube.ws.WsCe.WorkerCountResponse;
import org.sonarqube.ws.Ce.WorkerCountResponse;

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;

+ 2
- 2
server/sonar-server/src/test/java/org/sonar/server/component/ws/SearchActionTest.java Visa fil

@@ -51,8 +51,8 @@ import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.WsActionTester;
import org.sonarqube.ws.MediaTypes;
import org.sonarqube.ws.WsComponents.Component;
import org.sonarqube.ws.WsComponents.SearchWsResponse;
import org.sonarqube.ws.Components.Component;
import org.sonarqube.ws.Components.SearchWsResponse;
import org.sonarqube.ws.client.component.SearchWsRequest;

import static java.util.Arrays.asList;

+ 2
- 2
server/sonar-server/src/test/java/org/sonar/server/component/ws/SearchProjectsActionTest.java Visa fil

@@ -57,8 +57,8 @@ import org.sonar.server.ws.KeyExamples;
import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.WsActionTester;
import org.sonarqube.ws.Common;
import org.sonarqube.ws.WsComponents.Component;
import org.sonarqube.ws.WsComponents.SearchProjectsWsResponse;
import org.sonarqube.ws.Components.Component;
import org.sonarqube.ws.Components.SearchProjectsWsResponse;
import org.sonarqube.ws.client.component.SearchProjectsRequest;

import static java.util.Arrays.asList;

+ 2
- 3
server/sonar-server/src/test/java/org/sonar/server/component/ws/ShowActionTest.java Visa fil

@@ -32,7 +32,6 @@ import org.sonar.api.utils.System2;
import org.sonar.api.web.UserRole;
import org.sonar.db.DbTester;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.component.SnapshotDto;
import org.sonar.db.organization.OrganizationDto;
import org.sonar.server.component.TestComponentFinder;
import org.sonar.server.exceptions.ForbiddenException;
@@ -40,8 +39,8 @@ import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.WsActionTester;
import org.sonarqube.ws.WsComponents.Component;
import org.sonarqube.ws.WsComponents.ShowWsResponse;
import org.sonarqube.ws.Components.Component;
import org.sonarqube.ws.Components.ShowWsResponse;

import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.tuple;

+ 5
- 5
server/sonar-server/src/test/java/org/sonar/server/component/ws/SuggestionsActionTest.java Visa fil

@@ -50,11 +50,11 @@ import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.TestResponse;
import org.sonar.server.ws.WsActionTester;
import org.sonarqube.ws.MediaTypes;
import org.sonarqube.ws.WsComponents.SuggestionsWsResponse;
import org.sonarqube.ws.WsComponents.SuggestionsWsResponse.Category;
import org.sonarqube.ws.WsComponents.SuggestionsWsResponse.Organization;
import org.sonarqube.ws.WsComponents.SuggestionsWsResponse.Project;
import org.sonarqube.ws.WsComponents.SuggestionsWsResponse.Suggestion;
import org.sonarqube.ws.Components.SuggestionsWsResponse;
import org.sonarqube.ws.Components.SuggestionsWsResponse.Category;
import org.sonarqube.ws.Components.SuggestionsWsResponse.Organization;
import org.sonarqube.ws.Components.SuggestionsWsResponse.Project;
import org.sonarqube.ws.Components.SuggestionsWsResponse.Suggestion;

import static java.util.Arrays.asList;
import static java.util.Collections.singletonList;

+ 0
- 0
server/sonar-server/src/test/java/org/sonar/server/component/ws/TreeActionTest.java Visa fil


Vissa filer visades inte eftersom för många filer har ändrats

Laddar…
Avbryt
Spara