aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2017-01-13 11:32:57 +0100
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2017-01-16 11:38:43 +0100
commitd06d5feeb4447bef63a5bec9e4bdf378deb369e4 (patch)
treede9609cbe7d64501502f77aaf517b64c2ee32f1f
parent71b0e53b41ca7aff9130387790e0321af235e05e (diff)
downloadsonarqube-d06d5feeb4447bef63a5bec9e4bdf378deb369e4.tar.gz
sonarqube-d06d5feeb4447bef63a5bec9e4bdf378deb369e4.zip
SONAR-8619 don't use ComponentDto.getOrganizationKey
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/component/ComponentFinder.java7
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/component/ws/ComponentDtoToWsComponent.java21
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/component/ws/ShowAction.java8
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/component/ws/TreeAction.java25
4 files changed, 28 insertions, 33 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/component/ComponentFinder.java b/server/sonar-server/src/main/java/org/sonar/server/component/ComponentFinder.java
index 1f4efe50b40..8981355da8d 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/component/ComponentFinder.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/component/ComponentFinder.java
@@ -27,6 +27,7 @@ import org.sonar.api.resources.ResourceTypes;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
+import org.sonar.db.organization.OrganizationDto;
import org.sonar.server.exceptions.NotFoundException;
import static com.google.common.base.Preconditions.checkArgument;
@@ -117,6 +118,12 @@ public class ComponentFinder {
format("Component '%s' (id: %s) must be a project or a module.", component.key(), component.uuid()));
}
+ public OrganizationDto getOrganization(DbSession dbSession, ComponentDto component) {
+ String organizationUuid = component.getOrganizationUuid();
+ return dbClient.organizationDao().selectByUuid(dbSession, organizationUuid)
+ .orElseThrow(() -> new NotFoundException(String.format("Organization with uuid '%s' not found", organizationUuid)));
+ }
+
public enum ParamNames {
PROJECT_ID_AND_KEY("projectId", "projectKey"),
UUID_AND_KEY("uuid", "key"),
diff --git a/server/sonar-server/src/main/java/org/sonar/server/component/ws/ComponentDtoToWsComponent.java b/server/sonar-server/src/main/java/org/sonar/server/component/ws/ComponentDtoToWsComponent.java
index 46b3b3225dd..8a4731c0d3b 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/component/ws/ComponentDtoToWsComponent.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/component/ws/ComponentDtoToWsComponent.java
@@ -20,7 +20,6 @@
package org.sonar.server.component.ws;
-import java.util.Map;
import java.util.Objects;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.organization.OrganizationDto;
@@ -35,14 +34,6 @@ class ComponentDtoToWsComponent {
// prevent instantiation
}
- /**
- * @deprecated use {@link #componentDtoToWsComponent(ComponentDto, OrganizationDto)} instead
- */
- @Deprecated
- static WsComponents.Component.Builder componentDtoToWsComponent(ComponentDto dto) {
- return componentDtoToWsComponent(dto, dto.getOrganizationKey());
- }
-
static WsComponents.Component.Builder componentDtoToWsComponent(ComponentDto dto, OrganizationDto organizationDto) {
checkArgument(
Objects.equals(dto.getOrganizationUuid(), organizationDto.getUuid()),
@@ -63,16 +54,4 @@ class ComponentDtoToWsComponent {
setNullable(emptyToNull(dto.language()), wsComponent::setLanguage);
return wsComponent;
}
-
- static WsComponents.Component.Builder componentDtoToWsComponent(ComponentDto component, Map<String, ComponentDto> referenceComponentsByUuid) {
- WsComponents.Component.Builder wsComponent = componentDtoToWsComponent(component);
-
- ComponentDto referenceComponent = referenceComponentsByUuid.get(component.getCopyResourceUuid());
- if (referenceComponent != null) {
- wsComponent.setRefId(referenceComponent.uuid());
- wsComponent.setRefKey(referenceComponent.key());
- }
-
- return wsComponent;
- }
}
diff --git a/server/sonar-server/src/main/java/org/sonar/server/component/ws/ShowAction.java b/server/sonar-server/src/main/java/org/sonar/server/component/ws/ShowAction.java
index 3a07a553174..4ab1d7c4b88 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/component/ws/ShowAction.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/component/ws/ShowAction.java
@@ -31,7 +31,6 @@ import org.sonar.db.component.ComponentDto;
import org.sonar.db.organization.OrganizationDto;
import org.sonar.server.component.ComponentFinder;
import org.sonar.server.component.ComponentFinder.ParamNames;
-import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsComponents.ShowWsResponse;
import org.sonarqube.ws.client.component.ShowWsRequest;
@@ -97,18 +96,13 @@ public class ShowAction implements ComponentsWsAction {
try {
ComponentDto component = getComponentByUuidOrKey(dbSession, request);
List<ComponentDto> ancestors = dbClient.componentDao().selectAncestors(dbSession, component);
- OrganizationDto organizationDto = getOrganization(dbSession, component.getOrganizationUuid());
+ OrganizationDto organizationDto = componentFinder.getOrganization(dbSession, component);
return buildResponse(component, organizationDto, ancestors);
} finally {
dbClient.closeSession(dbSession);
}
}
- private OrganizationDto getOrganization(DbSession dbSession, String organizationUuid) {
- return dbClient.organizationDao().selectByUuid(dbSession, organizationUuid)
- .orElseThrow(() -> new NotFoundException(String.format("Organization with uuid '%s' not found", organizationUuid)));
- }
-
private static ShowWsResponse buildResponse(ComponentDto component, OrganizationDto organizationDto, List<ComponentDto> orderedAncestors) {
ShowWsResponse.Builder response = ShowWsResponse.newBuilder();
response.setComponent(componentDtoToWsComponent(component, organizationDto));
diff --git a/server/sonar-server/src/main/java/org/sonar/server/component/ws/TreeAction.java b/server/sonar-server/src/main/java/org/sonar/server/component/ws/TreeAction.java
index cf14648c5e9..f852799f045 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/component/ws/TreeAction.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/component/ws/TreeAction.java
@@ -44,8 +44,10 @@ import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.component.ComponentTreeQuery;
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.client.component.TreeWsRequest;
@@ -63,8 +65,8 @@ import static org.sonar.server.component.ComponentFinder.ParamNames.BASE_COMPONE
import static org.sonar.server.component.ws.ComponentDtoToWsComponent.componentDtoToWsComponent;
import static org.sonar.server.user.AbstractUserSession.insufficientPrivilegesException;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
-import static org.sonar.server.ws.WsParameterBuilder.createQualifiersParameter;
import static org.sonar.server.ws.WsParameterBuilder.QualifierParameterContext.newQualifierParameterContext;
+import static org.sonar.server.ws.WsParameterBuilder.createQualifiersParameter;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.client.component.ComponentsWsParameters.ACTION_TREE;
@@ -164,6 +166,7 @@ public class TreeAction implements ComponentsWsAction {
try (DbSession dbSession = dbClient.openSession(false)) {
ComponentDto baseComponent = componentFinder.getByUuidOrKey(dbSession, treeWsRequest.getBaseComponentId(), treeWsRequest.getBaseComponentKey(), BASE_COMPONENT_ID_AND_KEY);
checkPermissions(baseComponent);
+ OrganizationDto organizationDto = componentFinder.getOrganization(dbSession, baseComponent);
ComponentTreeQuery query = toComponentTreeQuery(treeWsRequest, baseComponent);
List<ComponentDto> components = dbClient.componentDao().selectDescendants(dbSession, query);
@@ -173,7 +176,7 @@ public class TreeAction implements ComponentsWsAction {
Map<String, ComponentDto> referenceComponentsByUuid = searchReferenceComponentsByUuid(dbSession, components);
- return buildResponse(baseComponent, components, referenceComponentsByUuid,
+ return buildResponse(baseComponent, organizationDto, components, referenceComponentsByUuid,
Paging.forPageIndex(treeWsRequest.getPage()).withPageSize(treeWsRequest.getPageSize()).andTotal(total));
}
}
@@ -200,7 +203,7 @@ public class TreeAction implements ComponentsWsAction {
}
}
- private static TreeWsResponse buildResponse(ComponentDto baseComponent, List<ComponentDto> components, Map<String, ComponentDto> referenceComponentsByUuid, Paging paging) {
+ private static TreeWsResponse buildResponse(ComponentDto baseComponent, OrganizationDto organizationDto, List<ComponentDto> components, Map<String, ComponentDto> referenceComponentsByUuid, Paging paging) {
TreeWsResponse.Builder response = TreeWsResponse.newBuilder();
response.getPagingBuilder()
.setPageIndex(paging.pageIndex())
@@ -208,14 +211,26 @@ public class TreeAction implements ComponentsWsAction {
.setTotal(paging.total())
.build();
- response.setBaseComponent(componentDtoToWsComponent(baseComponent, referenceComponentsByUuid));
+ response.setBaseComponent(toWsComponent(baseComponent, organizationDto, referenceComponentsByUuid));
for (ComponentDto dto : components) {
- response.addComponents(componentDtoToWsComponent(dto, referenceComponentsByUuid));
+ response.addComponents(toWsComponent(dto, organizationDto, referenceComponentsByUuid));
}
return response.build();
}
+ private static WsComponents.Component.Builder toWsComponent(ComponentDto component, OrganizationDto organizationDto, Map<String, ComponentDto> referenceComponentsByUuid) {
+ WsComponents.Component.Builder wsComponent = componentDtoToWsComponent(component, organizationDto);
+
+ ComponentDto referenceComponent = referenceComponentsByUuid.get(component.getCopyResourceUuid());
+ if (referenceComponent != null) {
+ wsComponent.setRefId(referenceComponent.uuid());
+ wsComponent.setRefKey(referenceComponent.key());
+ }
+
+ return wsComponent;
+ }
+
private ComponentTreeQuery toComponentTreeQuery(TreeWsRequest request, ComponentDto baseComponent) {
List<String> childrenQualifiers = childrenQualifiers(request, baseComponent.qualifier());