Browse Source

move some WSUtils methods to NotFoundException and ServerException

tags/8.0
Sébastien Lesaint 4 years ago
parent
commit
e9ae396829
99 changed files with 177 additions and 185 deletions
  1. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/component/ComponentFinder.java
  2. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/component/ComponentService.java
  3. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/component/ComponentUpdater.java
  4. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/issue/AssignAction.java
  5. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/permission/ApplyPermissionTemplateQuery.java
  6. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/permission/GroupPermissionChanger.java
  7. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/permission/PermissionChange.java
  8. 2
    3
      server/sonar-server/src/main/java/org/sonar/server/permission/RequestValidator.java
  9. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/permission/UserPermissionChanger.java
  10. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/plugins/PluginDownloader.java
  11. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/qualitygate/QualityGateConditionsUpdater.java
  12. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileExporters.java
  13. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileFactoryImpl.java
  14. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileTreeImpl.java
  15. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/RuleActivationContext.java
  16. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/RuleActivator.java
  17. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/rule/RuleCreator.java
  18. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/user/UserUpdater.java
  19. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/util/BooleanTypeValidation.java
  20. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/util/StringListTypeValidation.java
  21. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/util/TypeValidations.java
  22. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/batch/ProjectDataLoader.java
  23. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/branch/ws/DeleteAction.java
  24. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/ce/ws/ActivityAction.java
  25. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/ce/ws/AnalysisStatusAction.java
  26. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/ce/ws/SubmitAction.java
  27. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/ce/ws/TaskAction.java
  28. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/component/ws/SearchAction.java
  29. 2
    3
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/component/ws/SearchProjectsAction.java
  30. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/AssignAction.java
  31. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/AuthorsAction.java
  32. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/TagsAction.java
  33. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/custom/ws/CreateAction.java
  34. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/ws/ComponentAction.java
  35. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/ws/ComponentTreeAction.java
  36. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/ws/SearchAction.java
  37. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/metric/ws/CreateAction.java
  38. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/metric/ws/UpdateAction.java
  39. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/notification/ws/AddAction.java
  40. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/notification/ws/ListAction.java
  41. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/notification/ws/RemoveAction.java
  42. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/organization/ws/AddMemberAction.java
  43. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/organization/ws/DeleteAction.java
  44. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/organization/ws/RemoveMemberAction.java
  45. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/organization/ws/SearchMembersAction.java
  46. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/PermissionWsSupport.java
  47. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/ProjectWsRef.java
  48. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/template/AddGroupToTemplateAction.java
  49. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/template/CreateTemplateAction.java
  50. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/template/DeleteTemplateAction.java
  51. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/template/SearchTemplatesAction.java
  52. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/template/SetDefaultTemplateAction.java
  53. 3
    3
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/template/UpdateTemplateAction.java
  54. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/template/WsTemplateRef.java
  55. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/project/ws/BulkUpdateKeyAction.java
  56. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/project/ws/ProjectsWsSupport.java
  57. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/project/ws/UpdateDefaultVisibilityAction.java
  58. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/project/ws/UpdateVisibilityAction.java
  59. 4
    3
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/projectlink/ws/DeleteAction.java
  60. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/projectlink/ws/ProjectLinksWs.java
  61. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/projecttag/ws/SetAction.java
  62. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/ws/ProjectStatusAction.java
  63. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/ws/QualityGatesWsSupport.java
  64. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/ws/ShowAction.java
  65. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ExportAction.java
  66. 3
    3
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/QProfileWsSupport.java
  67. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RenameAction.java
  68. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ShowAction.java
  69. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/root/ws/UnsetRootAction.java
  70. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RuleQueryFactory.java
  71. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RuleWsSupport.java
  72. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/TagsAction.java
  73. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/setting/ws/EncryptAction.java
  74. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/setting/ws/SetAction.java
  75. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/setting/ws/SettingValidations.java
  76. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/source/ws/LinesAction.java
  77. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/source/ws/ScmAction.java
  78. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/source/ws/ShowAction.java
  79. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/ui/ws/ComponentAction.java
  80. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/ui/ws/OrganizationAction.java
  81. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/DeactivateAction.java
  82. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/GroupsAction.java
  83. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/AddUserAction.java
  84. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/GroupWsRef.java
  85. 3
    3
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/GroupWsSupport.java
  86. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/RemoveUserAction.java
  87. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/UpdateAction.java
  88. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/usertoken/ws/GenerateAction.java
  89. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/usertoken/ws/UserTokenSupport.java
  90. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/webhook/ws/CreateAction.java
  91. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/webhook/ws/DeleteAction.java
  92. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/webhook/ws/ListAction.java
  93. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/webhook/ws/UpdateAction.java
  94. 1
    1
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/webhook/ws/WebhookDeliveryAction.java
  95. 13
    0
      server/sonar-webserver-ws/src/main/java/org/sonar/server/exceptions/BadRequestException.java
  96. 36
    0
      server/sonar-webserver-ws/src/main/java/org/sonar/server/exceptions/NotFoundException.java
  97. 1
    1
      server/sonar-webserver-ws/src/main/java/org/sonar/server/ws/WebServiceEngine.java
  98. 0
    55
      server/sonar-webserver-ws/src/main/java/org/sonar/server/ws/WsUtils.java
  99. 2
    3
      server/sonar-webserver-ws/src/test/java/org/sonar/server/ws/WsUtilsTest.java

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/component/ComponentFinder.java View File

@@ -36,8 +36,8 @@ import org.sonar.server.exceptions.NotFoundException;

import static com.google.common.base.Preconditions.checkArgument;
import static java.lang.String.format;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class ComponentFinder {
private static final String MSG_COMPONENT_ID_OR_KEY_TEMPLATE = "Either '%s' or '%s' must be provided";

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/component/ComponentService.java View File

@@ -42,7 +42,7 @@ import static java.util.Collections.singleton;
import static java.util.Collections.singletonList;
import static org.sonar.core.component.ComponentKeys.isValidProjectKey;
import static org.sonar.db.component.ComponentKeyUpdaterDao.checkIsProjectOrModule;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

@ServerSide
public class ComponentService {

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/component/ComponentUpdater.java View File

@@ -42,7 +42,7 @@ import org.sonar.server.permission.PermissionTemplateService;
import static java.util.Collections.singletonList;
import static org.sonar.api.resources.Qualifiers.PROJECT;
import static org.sonar.core.component.ComponentKeys.isValidProjectKey;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class ComponentUpdater {


+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/issue/AssignAction.java View File

@@ -34,7 +34,7 @@ import org.sonar.server.user.UserSession;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Strings.isNullOrEmpty;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.exceptions.NotFoundException.checkFound;

@ServerSide
public class AssignAction extends Action {

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/permission/ApplyPermissionTemplateQuery.java View File

@@ -22,7 +22,7 @@ package org.sonar.server.permission;
import java.util.List;

import static org.apache.commons.lang.StringUtils.isNotBlank;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class ApplyPermissionTemplateQuery {


+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/permission/GroupPermissionChanger.java View File

@@ -30,7 +30,7 @@ import static org.sonar.core.permission.GlobalPermissions.SYSTEM_ADMIN;
import static org.sonar.server.permission.PermissionChange.Operation.ADD;
import static org.sonar.server.permission.PermissionChange.Operation.REMOVE;
import static org.sonar.server.permission.RequestValidator.validateNotAnyoneAndAdminPermission;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class GroupPermissionChanger {


+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/permission/PermissionChange.java View File

@@ -26,7 +26,7 @@ import org.sonar.db.permission.OrganizationPermission;

import static java.util.Objects.requireNonNull;
import static org.sonar.core.util.stream.MoreCollectors.toList;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public abstract class PermissionChange {


+ 2
- 3
server/sonar-server/src/main/java/org/sonar/server/permission/RequestValidator.java View File

@@ -29,11 +29,10 @@ import org.sonar.api.resources.ResourceType;
import org.sonar.api.resources.ResourceTypes;
import org.sonar.core.permission.GlobalPermissions;
import org.sonar.server.exceptions.BadRequestException;
import org.sonar.server.ws.WsUtils;

import static com.google.common.base.Strings.isNullOrEmpty;
import static java.lang.String.format;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_PERMISSION;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_PROJECT_KEY_PATTERN;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_QUALIFIER;
@@ -49,7 +48,7 @@ public class RequestValidator {
}

public String validateProjectPermission(String permission) {
WsUtils.checkRequest(permissionService.getAllProjectPermissions().contains(permission),
BadRequestException.checkRequest(permissionService.getAllProjectPermissions().contains(permission),
String.format("The '%s' parameter for project permissions must be one of %s. '%s' was passed.", PARAM_PERMISSION,
allProjectsPermissionsOnOneLine, permission));
return permission;

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/permission/UserPermissionChanger.java View File

@@ -29,7 +29,7 @@ import static org.sonar.api.web.UserRole.PUBLIC_PERMISSIONS;
import static org.sonar.core.permission.GlobalPermissions.SYSTEM_ADMIN;
import static org.sonar.server.permission.PermissionChange.Operation.ADD;
import static org.sonar.server.permission.PermissionChange.Operation.REMOVE;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

/**
* Adds and removes user permissions. Both global and project scopes are supported.

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/plugins/PluginDownloader.java View File

@@ -45,7 +45,7 @@ import static org.apache.commons.io.FileUtils.forceMkdir;
import static org.apache.commons.io.FileUtils.toFile;
import static org.apache.commons.lang.StringUtils.substringAfterLast;
import static org.sonar.core.util.FileUtils.deleteQuietly;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

/**
* Downloads plugins from update center. Files are copied in the directory extensions/downloads and then

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/qualitygate/QualityGateConditionsUpdater.java View File

@@ -56,7 +56,7 @@ import static org.sonar.server.measure.Rating.E;
import static org.sonar.server.qualitygate.Condition.Operator.GREATER_THAN;
import static org.sonar.server.qualitygate.Condition.Operator.LESS_THAN;
import static org.sonar.server.qualitygate.ValidRatingMetrics.isCoreRatingMetric;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class QualityGateConditionsUpdater {


+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileExporters.java View File

@@ -56,7 +56,7 @@ import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.server.exceptions.BadRequestException;
import org.sonar.server.exceptions.NotFoundException;

import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

@ServerSide
public class QProfileExporters {

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileFactoryImpl.java View File

@@ -39,7 +39,7 @@ import org.sonar.server.exceptions.BadRequestException;
import org.sonar.server.qualityprofile.index.ActiveRuleIndexer;

import static com.google.common.base.Preconditions.checkArgument;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class QProfileFactoryImpl implements QProfileFactory {


+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileTreeImpl.java View File

@@ -33,7 +33,7 @@ import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.exceptions.BadRequestException;
import org.sonar.server.qualityprofile.index.ActiveRuleIndexer;

import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class QProfileTreeImpl implements QProfileTree {


+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/RuleActivationContext.java View File

@@ -42,7 +42,7 @@ import static java.util.Objects.requireNonNull;
import static org.sonar.core.util.stream.MoreCollectors.index;
import static org.sonar.core.util.stream.MoreCollectors.toArrayList;
import static org.sonar.core.util.stream.MoreCollectors.uniqueIndex;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

/**
* Cache of the data required to activate/deactivate

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/RuleActivator.java View File

@@ -52,7 +52,7 @@ import org.sonar.server.user.UserSession;
import org.sonar.server.util.TypeValidations;

import static com.google.common.base.Preconditions.checkArgument;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

/**
* Activation and deactivation of rules in Quality profiles

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/rule/RuleCreator.java View File

@@ -49,7 +49,7 @@ import org.sonar.server.util.TypeValidations;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.collect.Lists.newArrayList;
import static java.lang.String.format;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

@ServerSide
public class RuleCreator {

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/user/UserUpdater.java View File

@@ -58,7 +58,7 @@ import static org.sonar.api.CoreProperties.DEFAULT_ISSUE_ASSIGNEE;
import static org.sonar.core.util.Slug.slugify;
import static org.sonar.core.util.stream.MoreCollectors.toList;
import static org.sonar.process.ProcessProperties.Property.ONBOARDING_TUTORIAL_SHOW_TO_NEW_USERS;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

@ServerSide
public class UserUpdater {

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/util/BooleanTypeValidation.java View File

@@ -24,7 +24,7 @@ import javax.annotation.Nullable;
import org.apache.commons.lang.StringUtils;
import org.sonar.api.PropertyType;

import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class BooleanTypeValidation implements TypeValidation {


+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/util/StringListTypeValidation.java View File

@@ -24,7 +24,7 @@ import javax.annotation.Nullable;
import org.apache.commons.lang.StringUtils;
import org.sonar.api.PropertyType;

import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class StringListTypeValidation implements TypeValidation {


+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/util/TypeValidations.java View File

@@ -26,7 +26,7 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.sonar.api.server.ServerSide;

import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

@ServerSide
public class TypeValidations {

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/batch/ProjectDataLoader.java View File

@@ -41,7 +41,7 @@ import org.sonar.server.user.UserSession;

import static com.google.common.collect.Maps.newHashMap;
import static org.sonar.process.ProcessProperties.Property.SONARCLOUD_ENABLED;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

@ServerSide
public class ProjectDataLoader {

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/branch/ws/DeleteAction.java View File

@@ -40,7 +40,7 @@ import static org.sonar.server.branch.ws.ProjectBranchesParameters.ACTION_DELETE
import static org.sonar.server.branch.ws.ProjectBranchesParameters.PARAM_BRANCH;
import static org.sonar.server.branch.ws.ProjectBranchesParameters.PARAM_PROJECT;
import static org.sonar.server.project.Project.from;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;

public class DeleteAction implements BranchWsAction {
private final DbClient dbClient;

+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/ce/ws/ActivityAction.java View File

@@ -67,8 +67,8 @@ import static org.sonar.server.ce.ws.CeWsParameters.PARAM_MIN_SUBMITTED_AT;
import static org.sonar.server.ce.ws.CeWsParameters.PARAM_ONLY_CURRENTS;
import static org.sonar.server.ce.ws.CeWsParameters.PARAM_STATUS;
import static org.sonar.server.ce.ws.CeWsParameters.PARAM_TYPE;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonar.server.ws.WsUtils.writeProtobuf;

public class ActivityAction implements CeWsAction {

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/ce/ws/AnalysisStatusAction.java View File

@@ -44,7 +44,7 @@ import static org.sonar.server.ce.ws.CeWsParameters.PARAM_COMPONENT;
import static org.sonar.server.ce.ws.CeWsParameters.PARAM_PULL_REQUEST;
import static org.sonar.server.ws.KeyExamples.KEY_BRANCH_EXAMPLE_001;
import static org.sonar.server.ws.KeyExamples.KEY_PULL_REQUEST_EXAMPLE_001;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonar.server.ws.WsUtils.writeProtobuf;

public class AnalysisStatusAction implements CeWsAction {

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/ce/ws/SubmitAction.java View File

@@ -38,7 +38,7 @@ import static org.apache.commons.lang.StringUtils.abbreviate;
import static org.apache.commons.lang.StringUtils.defaultIfBlank;
import static org.sonar.core.component.ComponentKeys.MAX_COMPONENT_KEY_LENGTH;
import static org.sonar.db.component.ComponentValidator.MAX_COMPONENT_NAME_LENGTH;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class SubmitAction implements CeWsAction {


+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/ce/ws/TaskAction.java View File

@@ -42,8 +42,8 @@ import org.sonar.db.ce.CeQueueDto;
import org.sonar.db.ce.CeTaskMessageDto;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.permission.OrganizationPermission;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.user.UserSession;
import org.sonar.server.ws.WsUtils;
import org.sonarqube.ws.Ce;

import static org.sonar.server.user.AbstractUserSession.insufficientPrivilegesException;
@@ -100,7 +100,7 @@ public class TaskAction implements CeWsAction {
checkPermission(component);
wsTaskResponse.setTask(wsTaskFormatter.formatQueue(dbSession, queueDto.get()));
} else {
CeActivityDto ceActivityDto = WsUtils.checkFoundWithOptional(dbClient.ceActivityDao().selectByUuid(dbSession, taskUuid), "No activity found for task '%s'", taskUuid);
CeActivityDto ceActivityDto = NotFoundException.checkFoundWithOptional(dbClient.ceActivityDao().selectByUuid(dbSession, taskUuid), "No activity found for task '%s'", taskUuid);
Optional<ComponentDto> component = loadComponent(dbSession, ceActivityDto.getComponentUuid());
checkPermission(component);
Set<AdditionalField> additionalFields = AdditionalField.getFromRequest(wsRequest);

+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/component/ws/SearchAction.java View File

@@ -43,8 +43,8 @@ import org.sonar.server.component.index.ComponentIndex;
import org.sonar.server.component.index.ComponentQuery;
import org.sonar.server.es.SearchIdResult;
import org.sonar.server.es.SearchOptions;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.ws.WsUtils;
import org.sonarqube.ws.Components;
import org.sonarqube.ws.Components.SearchWsResponse;

@@ -164,7 +164,7 @@ public class SearchAction implements ComponentsWsAction {
private OrganizationDto getOrganization(DbSession dbSession, SearchRequest request) {
String organizationKey = Optional.ofNullable(request.getOrganization())
.orElseGet(defaultOrganizationProvider.get()::getKey);
return WsUtils.checkFoundWithOptional(
return NotFoundException.checkFoundWithOptional(
dbClient.organizationDao().selectByKey(dbSession, organizationKey),
"No organizationDto with key '%s'", organizationKey);
}

+ 2
- 3
server/sonar-webserver-webapi/src/main/java/org/sonar/server/component/ws/SearchProjectsAction.java View File

@@ -83,13 +83,12 @@ import static org.sonar.server.component.ws.ProjectMeasuresQueryValidator.NON_ME
import static org.sonar.server.measure.index.ProjectMeasuresIndex.SUPPORTED_FACETS;
import static org.sonar.server.measure.index.ProjectMeasuresQuery.SORT_BY_LAST_ANALYSIS_DATE;
import static org.sonar.server.measure.index.ProjectMeasuresQuery.SORT_BY_NAME;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.client.component.ComponentsWsParameters.ACTION_SEARCH_PROJECTS;
import static org.sonarqube.ws.client.component.ComponentsWsParameters.PARAM_FILTER;
import static org.sonarqube.ws.client.component.ComponentsWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.component.ComponentsWsParameters.PARAM_QUALIFIERS;
import static org.sonarqube.ws.client.project.ProjectsWsParameters.FILTER_LANGUAGES;
import static org.sonarqube.ws.client.project.ProjectsWsParameters.FILTER_TAGS;


+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/AssignAction.java View File

@@ -46,7 +46,7 @@ import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Strings.emptyToNull;
import static java.lang.String.format;
import static java.util.Objects.requireNonNull;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonarqube.ws.client.issue.IssuesWsParameters.ACTION_ASSIGN;
import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_ASSIGNEE;
import static org.sonarqube.ws.client.issue.IssuesWsParameters.PARAM_ISSUE;

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/AuthorsAction.java View File

@@ -47,7 +47,7 @@ import static java.util.Optional.ofNullable;
import static org.sonar.api.server.ws.WebService.Param.PAGE_SIZE;
import static org.sonar.api.server.ws.WebService.Param.TEXT_QUERY;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.writeProtobuf;

public class AuthorsAction implements IssuesWsAction {

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/TagsAction.java View File

@@ -44,7 +44,7 @@ import static com.google.common.base.Preconditions.checkArgument;
import static org.sonar.api.server.ws.WebService.Param.PAGE_SIZE;
import static org.sonar.api.server.ws.WebService.Param.TEXT_QUERY;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.writeProtobuf;

/**

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/custom/ws/CreateAction.java View File

@@ -41,7 +41,7 @@ import static org.sonar.server.component.ComponentFinder.ParamNames.PROJECT_ID_A
import static org.sonar.server.measure.custom.ws.CustomMeasureValidator.checkPermissions;
import static org.sonar.server.measure.custom.ws.CustomMeasureValueDescription.measureValueDescription;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class CreateAction implements CustomMeasuresWsAction {
public static final String ACTION = "create";

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/ws/ComponentAction.java View File

@@ -81,7 +81,7 @@ import static org.sonar.server.measure.ws.SnapshotDtoToWsPeriod.snapshotToWsPeri
import static org.sonar.server.ws.KeyExamples.KEY_BRANCH_EXAMPLE_001;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonar.server.ws.KeyExamples.KEY_PULL_REQUEST_EXAMPLE_001;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonar.server.ws.WsUtils.writeProtobuf;

public class ComponentAction implements MeasuresWsAction {

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/ws/ComponentTreeAction.java View File

@@ -113,7 +113,7 @@ import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonar.server.ws.KeyExamples.KEY_PULL_REQUEST_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.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonar.server.ws.WsUtils.writeProtobuf;

/**

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/measure/ws/SearchAction.java View File

@@ -53,7 +53,7 @@ import static org.sonar.server.measure.ws.MeasureDtoToWsMeasure.updateMeasureBui
import static org.sonar.server.measure.ws.MeasuresWsParametersBuilder.createMetricKeysParameter;
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.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonar.server.component.ws.MeasuresWsParameters.PARAM_METRIC_KEYS;
import static org.sonar.server.component.ws.MeasuresWsParameters.PARAM_PROJECT_KEYS;

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/metric/ws/CreateAction.java View File

@@ -38,7 +38,7 @@ import static org.sonar.db.metric.MetricValidator.MAX_DOMAIN_LENGTH;
import static org.sonar.db.metric.MetricValidator.MAX_KEY_LENGTH;
import static org.sonar.db.metric.MetricValidator.MAX_NAME_LENGTH;
import static org.sonar.server.util.MetricKeyValidator.checkMetricKeyFormat;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class CreateAction implements MetricsWsAction {
private static final String ACTION = "create";

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/metric/ws/UpdateAction.java View File

@@ -37,7 +37,7 @@ import static org.sonar.db.metric.MetricValidator.MAX_DESCRIPTION_LENGTH;
import static org.sonar.db.metric.MetricValidator.MAX_DOMAIN_LENGTH;
import static org.sonar.db.metric.MetricValidator.MAX_KEY_LENGTH;
import static org.sonar.db.metric.MetricValidator.MAX_NAME_LENGTH;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class UpdateAction implements MetricsWsAction {
private static final String ACTION = "update";

+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/notification/ws/AddAction.java View File

@@ -45,8 +45,8 @@ import static org.sonar.server.notification.ws.NotificationsWsParameters.PARAM_C
import static org.sonar.server.notification.ws.NotificationsWsParameters.PARAM_LOGIN;
import static org.sonar.server.notification.ws.NotificationsWsParameters.PARAM_PROJECT;
import static org.sonar.server.notification.ws.NotificationsWsParameters.PARAM_TYPE;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class AddAction implements NotificationsWsAction {
private final NotificationCenter notificationCenter;

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/notification/ws/ListAction.java View File

@@ -54,7 +54,7 @@ import static java.util.Optional.ofNullable;
import static org.sonar.core.util.stream.MoreCollectors.toOneElement;
import static org.sonar.server.notification.ws.NotificationsWsParameters.ACTION_LIST;
import static org.sonar.server.notification.ws.NotificationsWsParameters.PARAM_LOGIN;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonar.server.ws.WsUtils.writeProtobuf;

public class ListAction implements NotificationsWsAction {

+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/notification/ws/RemoveAction.java View File

@@ -45,8 +45,8 @@ import static org.sonar.server.notification.ws.NotificationsWsParameters.PARAM_C
import static org.sonar.server.notification.ws.NotificationsWsParameters.PARAM_LOGIN;
import static org.sonar.server.notification.ws.NotificationsWsParameters.PARAM_PROJECT;
import static org.sonar.server.notification.ws.NotificationsWsParameters.PARAM_TYPE;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class RemoveAction implements NotificationsWsAction {
private final NotificationCenter notificationCenter;

+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/organization/ws/AddMemberAction.java View File

@@ -41,8 +41,8 @@ import static org.sonar.db.user.GroupMembershipQuery.IN;
import static org.sonar.server.organization.ws.OrganizationsWsSupport.PARAM_LOGIN;
import static org.sonar.server.organization.ws.OrganizationsWsSupport.PARAM_ORGANIZATION;
import static org.sonar.server.ws.KeyExamples.KEY_ORG_EXAMPLE_001;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.writeProtobuf;

public class AddMemberAction implements OrganizationsWsAction {

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/organization/ws/DeleteAction.java View File

@@ -35,7 +35,7 @@ import static org.sonar.db.permission.OrganizationPermission.ADMINISTER;
import static org.sonar.server.organization.ws.OrganizationsWsSupport.PARAM_KEY;
import static org.sonar.server.organization.ws.OrganizationsWsSupport.PARAM_ORGANIZATION;
import static org.sonar.server.ws.KeyExamples.KEY_ORG_EXAMPLE_002;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;

public class DeleteAction implements OrganizationsWsAction {
private static final String ACTION = "delete";

+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/organization/ws/RemoveMemberAction.java View File

@@ -34,8 +34,8 @@ import static org.sonar.db.permission.OrganizationPermission.ADMINISTER;
import static org.sonar.server.organization.ws.OrganizationsWsSupport.PARAM_LOGIN;
import static org.sonar.server.organization.ws.OrganizationsWsSupport.PARAM_ORGANIZATION;
import static org.sonar.server.ws.KeyExamples.KEY_ORG_EXAMPLE_001;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;

public class RemoveMemberAction implements OrganizationsWsAction {
private final DbClient dbClient;

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/organization/ws/SearchMembersAction.java View File

@@ -54,7 +54,7 @@ import static org.sonar.api.server.ws.WebService.SelectionMode.SELECTED;
import static org.sonar.db.permission.OrganizationPermission.ADMINISTER;
import static org.sonar.server.es.SearchOptions.MAX_LIMIT;
import static org.sonar.server.organization.ws.OrganizationsWsSupport.PARAM_ORGANIZATION;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.writeProtobuf;

public class SearchMembersAction implements OrganizationsWsAction {

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/PermissionWsSupport.java View File

@@ -38,7 +38,7 @@ import org.sonar.server.usergroups.ws.GroupWsSupport;
import org.sonarqube.ws.client.permission.PermissionsWsParameters;

import static com.google.common.base.Preconditions.checkArgument;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_GROUP_ID;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_GROUP_NAME;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_ORGANIZATION;

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/ProjectWsRef.java View File

@@ -23,7 +23,7 @@ import com.google.common.base.Optional;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;

import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

/**
* Reference to a project <b>as defined by web service callers</b>. It allows to reference a project

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/template/AddGroupToTemplateAction.java View File

@@ -38,7 +38,7 @@ import static org.sonar.server.permission.ws.WsParameters.createGroupIdParameter
import static org.sonar.server.permission.ws.WsParameters.createGroupNameParameter;
import static org.sonar.server.permission.ws.WsParameters.createTemplateParameters;
import static org.sonar.server.permission.ws.template.WsTemplateRef.fromRequest;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_PERMISSION;

public class AddGroupToTemplateAction implements PermissionsWsAction {

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/template/CreateTemplateAction.java View File

@@ -44,7 +44,7 @@ import static java.util.Objects.requireNonNull;
import static org.sonar.server.permission.PermissionPrivilegeChecker.checkGlobalAdmin;
import static org.sonar.server.permission.RequestValidator.MSG_TEMPLATE_WITH_SAME_NAME;
import static org.sonar.server.permission.ws.template.PermissionTemplateDtoToPermissionTemplateResponse.toPermissionTemplateResponse;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_DESCRIPTION;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_NAME;

+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/template/DeleteTemplateAction.java View File

@@ -37,8 +37,8 @@ import org.sonar.server.user.UserSession;

import static org.sonar.server.permission.PermissionPrivilegeChecker.checkGlobalAdmin;
import static org.sonar.server.permission.ws.template.WsTemplateRef.newTemplateRef;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_TEMPLATE_ID;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_TEMPLATE_NAME;

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/template/SearchTemplatesAction.java View File

@@ -56,7 +56,7 @@ import static java.util.Optional.ofNullable;
import static org.sonar.api.utils.DateUtils.formatDateTime;
import static org.sonar.server.permission.PermissionPrivilegeChecker.checkGlobalAdmin;
import static org.sonar.server.permission.ws.template.SearchTemplatesData.builder;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_ORGANIZATION;


+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/template/SetDefaultTemplateAction.java View File

@@ -42,7 +42,7 @@ import static org.sonar.server.permission.PermissionPrivilegeChecker.checkGlobal
import static org.sonar.server.permission.ws.template.WsTemplateRef.newTemplateRef;
import static org.sonar.server.ws.WsParameterBuilder.createDefaultTemplateQualifierParameter;
import static org.sonar.server.ws.WsParameterBuilder.QualifierParameterContext.newQualifierParameterContext;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_QUALIFIER;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_TEMPLATE_ID;

+ 3
- 3
server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/template/UpdateTemplateAction.java View File

@@ -29,12 +29,12 @@ import org.sonar.api.utils.System2;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.permission.template.PermissionTemplateDto;
import org.sonar.server.exceptions.BadRequestException;
import org.sonar.server.permission.ws.PermissionWsSupport;
import org.sonar.server.permission.ws.PermissionsWsAction;
import org.sonar.server.permission.RequestValidator;
import org.sonar.server.permission.ws.WsParameters;
import org.sonar.server.user.UserSession;
import org.sonar.server.ws.WsUtils;
import org.sonarqube.ws.Permissions.PermissionTemplate;
import org.sonarqube.ws.Permissions.UpdateTemplateWsResponse;

@@ -45,7 +45,7 @@ import static org.apache.commons.lang.StringUtils.isBlank;
import static org.sonar.server.permission.PermissionPrivilegeChecker.checkGlobalAdmin;
import static org.sonar.server.permission.RequestValidator.MSG_TEMPLATE_WITH_SAME_NAME;
import static org.sonar.server.permission.ws.template.PermissionTemplateDtoToPermissionTemplateResponse.toPermissionTemplateResponse;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_DESCRIPTION;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_ID;
@@ -143,7 +143,7 @@ public class UpdateTemplateAction implements PermissionsWsAction {
}

private void validateTemplateNameForUpdate(DbSession dbSession, String organizationUuid, String name, long id) {
WsUtils.checkRequest(!isBlank(name), "The template name must not be blank");
BadRequestException.checkRequest(!isBlank(name), "The template name must not be blank");

PermissionTemplateDto permissionTemplateWithSameName = dbClient.permissionTemplateDao().selectByName(dbSession, organizationUuid, name);
checkRequest(permissionTemplateWithSameName == null || permissionTemplateWithSameName.getId() == id,

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/ws/template/WsTemplateRef.java View File

@@ -23,7 +23,7 @@ import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import org.sonar.api.server.ws.Request;

import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_TEMPLATE_ID;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_TEMPLATE_NAME;

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/project/ws/BulkUpdateKeyAction.java View File

@@ -37,7 +37,7 @@ import org.sonarqube.ws.Projects.BulkUpdateKeyWsResponse;

import static com.google.common.base.Preconditions.checkArgument;
import static org.sonar.db.component.ComponentKeyUpdaterDao.checkIsProjectOrModule;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.client.project.ProjectsWsParameters.ACTION_BULK_UPDATE_KEY;
import static org.sonarqube.ws.client.project.ProjectsWsParameters.PARAM_DRY_RUN;

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/project/ws/ProjectsWsSupport.java View File

@@ -29,7 +29,7 @@ import org.sonar.server.organization.BillingValidations;
import org.sonar.server.organization.BillingValidationsProxy;
import org.sonar.server.organization.DefaultOrganizationProvider;

import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;

@ServerSide
public class ProjectsWsSupport {

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/project/ws/UpdateDefaultVisibilityAction.java View File

@@ -32,7 +32,7 @@ import org.sonar.server.project.Visibility;
import org.sonar.server.user.UserSession;

import static org.sonar.server.user.AbstractUserSession.insufficientPrivilegesException;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;

public class UpdateDefaultVisibilityAction implements ProjectsWsAction {
static final String ACTION = "update_default_visibility";

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/project/ws/UpdateVisibilityAction.java View File

@@ -45,7 +45,7 @@ import static java.lang.String.format;
import static java.util.Collections.singletonList;
import static org.sonar.api.web.UserRole.PUBLIC_PERMISSIONS;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonarqube.ws.client.project.ProjectsWsParameters.PARAM_PROJECT;
import static org.sonarqube.ws.client.project.ProjectsWsParameters.PARAM_VISIBILITY;


+ 4
- 3
server/sonar-webserver-webapi/src/main/java/org/sonar/server/projectlink/ws/DeleteAction.java View File

@@ -26,8 +26,9 @@ import org.sonar.api.web.UserRole;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ProjectLinkDto;
import org.sonar.server.exceptions.BadRequestException;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.user.UserSession;
import org.sonar.server.ws.WsUtils;

import static org.sonar.db.component.ProjectLinkDto.PROVIDED_TYPES;
import static org.sonar.server.projectlink.ws.ProjectLinksWsParameters.ACTION_DELETE;
@@ -68,7 +69,7 @@ public class DeleteAction implements ProjectLinksWsAction {
try (DbSession dbSession = dbClient.openSession(false)) {
ProjectLinkDto link = dbClient.projectLinkDao().selectByUuid(dbSession, id);

link = WsUtils.checkFound(link, "Link with id '%s' not found", id);
link = NotFoundException.checkFound(link, "Link with id '%s' not found", id);
checkProjectAdminPermission(link);
checkNotProvided(link);

@@ -80,7 +81,7 @@ public class DeleteAction implements ProjectLinksWsAction {
private static void checkNotProvided(ProjectLinkDto link) {
String type = link.getType();
boolean isProvided = type != null && PROVIDED_TYPES.contains(type);
WsUtils.checkRequest(!isProvided, "Provided link cannot be deleted.");
BadRequestException.checkRequest(!isProvided, "Provided link cannot be deleted.");
}

private void checkProjectAdminPermission(ProjectLinkDto link) {

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/projectlink/ws/ProjectLinksWs.java View File

@@ -25,7 +25,7 @@ import org.sonar.api.server.ws.WebService;
import org.sonar.db.component.ComponentDto;

import static java.lang.String.format;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class ProjectLinksWs implements WebService {


+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/projecttag/ws/SetAction.java View File

@@ -38,7 +38,7 @@ import static java.util.Collections.singletonList;
import static org.sonar.api.resources.Qualifiers.PROJECT;
import static org.sonar.server.es.ProjectIndexer.Cause.PROJECT_TAGS_UPDATE;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class SetAction implements ProjectTagsWsAction {
/**

+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/ws/ProjectStatusAction.java View File

@@ -51,8 +51,8 @@ import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_PRO
import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_PROJECT_KEY;
import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_PULL_REQUEST;
import static org.sonar.server.user.AbstractUserSession.insufficientPrivilegesException;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonar.server.ws.WsUtils.writeProtobuf;

public class ProjectStatusAction implements QualityGatesWsAction {

+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/ws/QualityGatesWsSupport.java View File

@@ -43,8 +43,8 @@ import static org.sonar.db.organization.OrganizationDto.Subscription.PAID;
import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_GATES;
import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_ORGANIZATION;
import static org.sonar.server.user.AbstractUserSession.insufficientPrivilegesException;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;

public class QualityGatesWsSupport {


+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/ws/ShowAction.java View File

@@ -46,7 +46,7 @@ import static org.sonar.core.util.stream.MoreCollectors.toSet;
import static org.sonar.core.util.stream.MoreCollectors.uniqueIndex;
import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_ID;
import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_NAME;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonar.server.ws.WsUtils.writeProtobuf;

public class ShowAction implements QualityGatesWsAction {

+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ExportAction.java View File

@@ -49,8 +49,8 @@ import org.sonarqube.ws.MediaTypes;
import static java.nio.charset.StandardCharsets.UTF_8;
import static org.sonar.core.util.Uuids.UUID_EXAMPLE_01;
import static org.sonar.server.qualityprofile.ws.QProfileWsSupport.createOrganizationParam;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonarqube.ws.client.component.ComponentsWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_KEY;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;

+ 3
- 3
server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/QProfileWsSupport.java View File

@@ -41,9 +41,9 @@ import static com.google.common.base.Preconditions.checkState;
import static java.util.Objects.requireNonNull;
import static org.sonar.db.organization.OrganizationDto.Subscription.PAID;
import static org.sonar.server.user.AbstractUserSession.insufficientPrivilegesException;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonarqube.ws.client.component.ComponentsWsParameters.PARAM_ORGANIZATION;

@ServerSide

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RenameAction.java View File

@@ -34,7 +34,7 @@ import static java.lang.String.format;
import static java.util.Optional.ofNullable;
import static org.sonar.core.util.Uuids.UUID_EXAMPLE_01;
import static org.sonar.server.qualityprofile.ws.CreateAction.NAME_MAXIMUM_LENGTH;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_KEY;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_NAME;


+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ShowAction.java View File

@@ -48,7 +48,7 @@ import static java.util.Optional.ofNullable;
import static org.sonar.api.rule.RuleStatus.DEPRECATED;
import static org.sonar.api.utils.DateUtils.formatDateTime;
import static org.sonar.core.util.Uuids.UUID_EXAMPLE_01;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.ACTION_SHOW;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_COMPARE_TO_SONAR_WAY;

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/root/ws/UnsetRootAction.java View File

@@ -29,7 +29,7 @@ import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.user.UserSession;

import static java.lang.String.format;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class UnsetRootAction implements RootsWsAction {
private static final String PARAM_LOGIN = "login";

+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RuleQueryFactory.java View File

@@ -56,8 +56,8 @@ import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_TAGS;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_TEMPLATE_KEY;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_TYPES;
import static org.sonar.server.util.EnumUtils.toEnums;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;

@ServerSide
public class RuleQueryFactory {

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RuleWsSupport.java View File

@@ -75,7 +75,7 @@ import static org.sonar.server.security.SecurityStandardHelper.SANS_TOP_25_CWE_M
import static org.sonar.server.security.SecurityStandardHelper.SONARSOURCE_CWE_MAPPING;
import static org.sonar.server.security.SecurityStandardHelper.SONARSOURCE_OTHER_CWES_CATEGORY;
import static org.sonar.server.security.SecurityStandardHelper.UNKNOWN_STANDARD;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;

@ServerSide
public class RuleWsSupport {

+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/TagsAction.java View File

@@ -32,9 +32,9 @@ import org.sonar.api.utils.text.JsonWriter;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.organization.OrganizationDto;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.rule.index.RuleIndex;
import org.sonar.server.ws.WsUtils;

import static org.sonarqube.ws.client.component.ComponentsWsParameters.PARAM_ORGANIZATION;

@@ -85,7 +85,7 @@ public class TagsAction implements RulesWsAction {
try (DbSession dbSession = dbClient.openSession(false)) {
String organizationOrDefaultKey = Optional.ofNullable(organizationKey)
.orElseGet(defaultOrganizationProvider.get()::getKey);
return WsUtils.checkFoundWithOptional(
return NotFoundException.checkFoundWithOptional(
dbClient.organizationDao().selectByKey(dbSession, organizationOrDefaultKey),
"No organization with key '%s'", organizationOrDefaultKey);
}

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/setting/ws/EncryptAction.java View File

@@ -28,7 +28,7 @@ import org.sonar.server.user.UserSession;
import org.sonarqube.ws.Settings.EncryptWsResponse;

import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_VALUE;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonar.server.ws.WsUtils.writeProtobuf;

public class EncryptAction implements SettingsWsAction {

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/setting/ws/SetAction.java View File

@@ -67,7 +67,7 @@ import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_PULL_REQUES
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_VALUE;
import static org.sonar.server.setting.ws.SettingsWsParameters.PARAM_VALUES;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class SetAction implements SettingsWsAction {
private static final Collector<CharSequence, ?, String> COMMA_JOINER = Collectors.joining(",");

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/setting/ws/SettingValidations.java View File

@@ -42,7 +42,7 @@ import org.sonar.server.exceptions.BadRequestException;

import static java.lang.String.format;
import static java.util.Objects.requireNonNull;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class SettingValidations {
private final PropertyDefinitions definitions;

+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/source/ws/LinesAction.java View File

@@ -44,8 +44,8 @@ import static org.sonar.server.component.ComponentFinder.ParamNames.UUID_AND_KEY
import static org.sonar.server.ws.KeyExamples.KEY_BRANCH_EXAMPLE_001;
import static org.sonar.server.ws.KeyExamples.KEY_FILE_EXAMPLE_001;
import static org.sonar.server.ws.KeyExamples.KEY_PULL_REQUEST_EXAMPLE_001;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class LinesAction implements SourcesWsAction {


+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/source/ws/ScmAction.java View File

@@ -38,7 +38,7 @@ import org.sonar.server.component.ComponentFinder;
import org.sonar.server.source.SourceService;
import org.sonar.server.user.UserSession;

import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;

public class ScmAction implements SourcesWsAction {


+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/source/ws/ShowAction.java View File

@@ -33,7 +33,7 @@ import org.sonar.server.component.ComponentFinder;
import org.sonar.server.source.SourceService;
import org.sonar.server.user.UserSession;

import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;

public class ShowAction implements SourcesWsAction {


+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/ui/ws/ComponentAction.java View File

@@ -53,6 +53,7 @@ import org.sonar.db.property.PropertyQuery;
import org.sonar.db.qualitygate.QualityGateDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.component.ComponentFinder;
import org.sonar.server.exceptions.BadRequestException;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.organization.BillingValidations;
import org.sonar.server.organization.BillingValidationsProxy;
@@ -62,7 +63,6 @@ import org.sonar.server.qualityprofile.QPMeasureData;
import org.sonar.server.qualityprofile.QualityProfile;
import org.sonar.server.ui.PageRepository;
import org.sonar.server.user.UserSession;
import org.sonar.server.ws.WsUtils;

import static java.lang.String.format;
import static java.util.Collections.emptySortedSet;
@@ -179,7 +179,7 @@ public class ComponentAction implements NavigationWsAction {
}

private static void checkComponentNotAModuleAndNotADirectory(ComponentDto component) {
WsUtils.checkRequest(!MODULE_OR_DIR_QUALIFIERS.contains(component.qualifier()), "Operation not supported for module or directory components");
BadRequestException.checkRequest(!MODULE_OR_DIR_QUALIFIERS.contains(component.qualifier()), "Operation not supported for module or directory components");
}

private ComponentDto getRootProjectOrBranch(ComponentDto component, DbSession session) {

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/ui/ws/OrganizationAction.java View File

@@ -46,7 +46,7 @@ import org.sonar.server.user.UserSession;
import static org.sonar.db.organization.OrganizationDto.Subscription.PAID;
import static org.sonar.db.permission.OrganizationPermission.ADMINISTER;
import static org.sonar.server.ws.KeyExamples.KEY_ORG_EXAMPLE_001;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;

public class OrganizationAction implements NavigationWsAction {


+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/DeactivateAction.java View File

@@ -47,8 +47,8 @@ import static java.lang.String.format;
import static java.util.Collections.singletonList;
import static org.sonar.api.CoreProperties.DEFAULT_ISSUE_ASSIGNEE;
import static org.sonar.process.ProcessProperties.Property.SONARCLOUD_ENABLED;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class DeactivateAction implements UsersWsAction {


+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/GroupsAction.java View File

@@ -52,8 +52,8 @@ import static org.sonar.api.server.ws.WebService.Param.PAGE_SIZE;
import static org.sonar.api.server.ws.WebService.Param.SELECTED;
import static org.sonar.api.server.ws.WebService.Param.TEXT_QUERY;
import static org.sonar.api.utils.Paging.forPageIndex;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.client.user.UsersWsParameters.PARAM_LOGIN;
import static org.sonarqube.ws.client.user.UsersWsParameters.PARAM_ORGANIZATION;

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/AddUserAction.java View File

@@ -41,7 +41,7 @@ import static org.sonar.server.usergroups.ws.GroupWsSupport.PARAM_LOGIN;
import static org.sonar.server.usergroups.ws.GroupWsSupport.PARAM_ORGANIZATION_KEY;
import static org.sonar.server.usergroups.ws.GroupWsSupport.defineGroupWsParameters;
import static org.sonar.server.usergroups.ws.GroupWsSupport.defineLoginWsParameter;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.exceptions.NotFoundException.checkFound;

public class AddUserAction implements UserGroupsWsAction {


+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/GroupWsRef.java View File

@@ -29,7 +29,7 @@ import org.sonar.server.permission.GroupIdOrAnyone;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
import static java.util.Objects.requireNonNull;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

/**
* Reference to a user group <b>as declared by web service requests</b>. It is one, and only one,

+ 3
- 3
server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/GroupWsSupport.java View File

@@ -36,9 +36,9 @@ import org.sonarqube.ws.UserGroups;

import static com.google.common.base.Preconditions.checkArgument;
import static java.util.Optional.ofNullable;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

/**
* Factorizes code about user groups between web services

+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/RemoveUserAction.java View File

@@ -36,8 +36,8 @@ import static org.sonar.server.usergroups.ws.GroupWsSupport.PARAM_GROUP_NAME;
import static org.sonar.server.usergroups.ws.GroupWsSupport.PARAM_LOGIN;
import static org.sonar.server.usergroups.ws.GroupWsSupport.defineGroupWsParameters;
import static org.sonar.server.usergroups.ws.GroupWsSupport.defineLoginWsParameter;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;

public class RemoveUserAction implements UserGroupsWsAction {


+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/UpdateAction.java View File

@@ -42,8 +42,8 @@ import static org.sonar.server.usergroups.ws.GroupWsSupport.PARAM_GROUP_DESCRIPT
import static org.sonar.server.usergroups.ws.GroupWsSupport.PARAM_GROUP_ID;
import static org.sonar.server.usergroups.ws.GroupWsSupport.PARAM_GROUP_NAME;
import static org.sonar.server.usergroups.ws.GroupWsSupport.toProtobuf;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.writeProtobuf;

public class UpdateAction implements UserGroupsWsAction {

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/usertoken/ws/GenerateAction.java View File

@@ -37,7 +37,7 @@ import static org.sonar.api.utils.DateUtils.formatDateTime;
import static org.sonar.server.usertoken.ws.UserTokenSupport.ACTION_GENERATE;
import static org.sonar.server.usertoken.ws.UserTokenSupport.PARAM_LOGIN;
import static org.sonar.server.usertoken.ws.UserTokenSupport.PARAM_NAME;
import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonar.server.ws.WsUtils.writeProtobuf;

public class GenerateAction implements UserTokensWsAction {

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/usertoken/ws/UserTokenSupport.java View File

@@ -28,7 +28,7 @@ import org.sonar.server.user.UserSession;

import static java.util.Objects.requireNonNull;
import static org.sonar.server.user.AbstractUserSession.insufficientPrivilegesException;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.exceptions.NotFoundException.checkFound;

public class UserTokenSupport {


+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/webhook/ws/CreateAction.java View File

@@ -51,7 +51,7 @@ import static org.sonar.server.ws.KeyExamples.KEY_ORG_EXAMPLE_001;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonar.server.ws.KeyExamples.NAME_WEBHOOK_EXAMPLE_001;
import static org.sonar.server.ws.KeyExamples.URL_WEBHOOK_EXAMPLE_001;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.checkStateWithOptional;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.Webhooks.CreateWsResponse.Webhook;

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/webhook/ws/DeleteAction.java View File

@@ -35,7 +35,7 @@ import static org.sonar.server.webhook.ws.WebhooksWsParameters.DELETE_ACTION;
import static org.sonar.server.webhook.ws.WebhooksWsParameters.KEY_PARAM;
import static org.sonar.server.webhook.ws.WebhooksWsParameters.KEY_PARAM_MAXIMUM_LENGTH;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.checkStateWithOptional;

public class DeleteAction implements WebhooksWsAction {

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/webhook/ws/ListAction.java View File

@@ -47,7 +47,7 @@ import static org.sonar.server.webhook.ws.WebhooksWsParameters.ORGANIZATION_KEY_
import static org.sonar.server.webhook.ws.WebhooksWsParameters.PROJECT_KEY_PARAM;
import static org.sonar.server.ws.KeyExamples.KEY_ORG_EXAMPLE_001;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.checkStateWithOptional;
import static org.sonar.server.ws.WsUtils.writeProtobuf;


+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/webhook/ws/UpdateAction.java View File

@@ -44,7 +44,7 @@ import static org.sonar.server.webhook.ws.WebhooksWsParameters.URL_PARAM_MAXIMUM
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonar.server.ws.KeyExamples.NAME_WEBHOOK_EXAMPLE_001;
import static org.sonar.server.ws.KeyExamples.URL_WEBHOOK_EXAMPLE_001;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.checkStateWithOptional;

public class UpdateAction implements WebhooksWsAction {

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/webhook/ws/WebhookDeliveryAction.java View File

@@ -35,7 +35,7 @@ import org.sonarqube.ws.Webhooks;

import static java.util.Objects.requireNonNull;
import static org.sonar.server.webhook.ws.WebhookWsSupport.copyDtoToProtobuf;
import static org.sonar.server.ws.WsUtils.checkFoundWithOptional;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.ws.WsUtils.writeProtobuf;

public class WebhookDeliveryAction implements WebhooksWsAction {

+ 13
- 0
server/sonar-webserver-ws/src/main/java/org/sonar/server/exceptions/BadRequestException.java View File

@@ -23,6 +23,7 @@ import com.google.common.base.MoreObjects;
import java.util.List;

import static com.google.common.base.Preconditions.checkArgument;
import static java.lang.String.format;
import static java.net.HttpURLConnection.HTTP_BAD_REQUEST;
import static java.util.Arrays.asList;

@@ -38,6 +39,18 @@ public class BadRequestException extends ServerException {
this.errors = errors;
}

public static void checkRequest(boolean expression, String message, Object... messageArguments) {
if (!expression) {
throw create(format(message, messageArguments));
}
}

public static void checkRequest(boolean expression, List<String> messages) {
if (!expression) {
throw create(messages);
}
}

public static BadRequestException create(List<String> errorMessages) {
checkArgument(!errorMessages.isEmpty(), "At least one error message is required");
checkArgument(errorMessages.stream().noneMatch(message -> message == null || message.isEmpty()), "Message cannot be empty");

+ 36
- 0
server/sonar-webserver-ws/src/main/java/org/sonar/server/exceptions/NotFoundException.java View File

@@ -19,6 +19,10 @@
*/
package org.sonar.server.exceptions;

import com.google.common.base.Optional;
import javax.annotation.Nullable;

import static java.lang.String.format;
import static java.net.HttpURLConnection.HTTP_NOT_FOUND;

public class NotFoundException extends ServerException {
@@ -26,4 +30,36 @@ public class NotFoundException extends ServerException {
public NotFoundException(String message) {
super(HTTP_NOT_FOUND, message);
}

/**
* @throws NotFoundException if the value if null
* @return the value
*/
public static <T> T checkFound(@Nullable T value, String message, Object... messageArguments) {
if (value == null) {
throw new NotFoundException(format(message, messageArguments));
}

return value;
}

/**
* @throws NotFoundException if the value is not present
* @return the value
*/
public static <T> T checkFoundWithOptional(Optional<T> value, String message, Object... messageArguments) {
if (!value.isPresent()) {
throw new NotFoundException(format(message, messageArguments));
}

return value.get();
}

public static <T> T checkFoundWithOptional(java.util.Optional<T> value, String message, Object... messageArguments) {
if (!value.isPresent()) {
throw new NotFoundException(format(message, messageArguments));
}

return value.get();
}
}

+ 1
- 1
server/sonar-webserver-ws/src/main/java/org/sonar/server/ws/WebServiceEngine.java View File

@@ -50,7 +50,7 @@ import static org.apache.commons.lang.StringUtils.substringAfterLast;
import static org.apache.commons.lang.StringUtils.substringBeforeLast;
import static org.sonar.server.ws.RequestVerifier.verifyRequest;
import static org.sonar.server.ws.ServletRequest.SUPPORTED_MEDIA_TYPES_BY_URL_SUFFIX;
import static org.sonar.server.ws.WsUtils.checkFound;
import static org.sonar.server.exceptions.NotFoundException.checkFound;

/**
* @since 4.2

+ 0
- 55
server/sonar-webserver-ws/src/main/java/org/sonar/server/ws/WsUtils.java View File

@@ -19,22 +19,14 @@
*/
package org.sonar.server.ws;

import com.google.common.base.Optional;
import com.google.common.collect.ImmutableSet;
import com.google.protobuf.Message;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.List;
import java.util.Set;
import javax.annotation.Nullable;
import org.apache.commons.io.IOUtils;
import org.sonar.api.resources.Qualifiers;
import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.Response;
import org.sonar.api.utils.text.JsonWriter;
import org.sonar.core.util.ProtobufJsonFormat;
import org.sonar.server.exceptions.BadRequestException;
import org.sonar.server.exceptions.NotFoundException;

import static java.lang.String.format;
import static java.nio.charset.StandardCharsets.UTF_8;
@@ -66,53 +58,6 @@ public class WsUtils {
}
}

/**
* @throws BadRequestException
*/
public static void checkRequest(boolean expression, String message, Object... messageArguments) {
if (!expression) {
throw BadRequestException.create(format(message, messageArguments));
}
}

public static void checkRequest(boolean expression, List<String> messages) {
if (!expression) {
throw BadRequestException.create(messages);
}
}

/**
* @throws NotFoundException if the value if null
* @return the value
*/
public static <T> T checkFound(@Nullable T value, String message, Object... messageArguments) {
if (value == null) {
throw new NotFoundException(format(message, messageArguments));
}

return value;
}

/**
* @throws NotFoundException if the value is not present
* @return the value
*/
public static <T> T checkFoundWithOptional(Optional<T> value, String message, Object... messageArguments) {
if (!value.isPresent()) {
throw new NotFoundException(format(message, messageArguments));
}

return value.get();
}

public static <T> T checkFoundWithOptional(java.util.Optional<T> value, String message, Object... messageArguments) {
if (!value.isPresent()) {
throw new NotFoundException(format(message, messageArguments));
}

return value.get();
}

public static <T> T checkStateWithOptional(java.util.Optional<T> value, String message, Object... messageArguments) {
if (!value.isPresent()) {
throw new IllegalStateException(format(message, messageArguments));

+ 2
- 3
server/sonar-webserver-ws/src/test/java/org/sonar/server/ws/WsUtilsTest.java View File

@@ -19,7 +19,6 @@
*/
package org.sonar.server.ws;

import java.io.IOException;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
@@ -84,7 +83,7 @@ public class WsUtilsTest {

@Test
public void checkRequest_ok() {
WsUtils.checkRequest(true, "Missing param: %s", "foo");
BadRequestException.checkRequest(true, "Missing param: %s", "foo");
// do not fail
}

@@ -93,7 +92,7 @@ public class WsUtilsTest {
expectedException.expect(BadRequestException.class);
expectedException.expectMessage("Missing param: foo");

WsUtils.checkRequest(false, "Missing param: %s", "foo");
BadRequestException.checkRequest(false, "Missing param: %s", "foo");
}

}

Loading…
Cancel
Save