]> source.dussan.org Git - sonarqube.git/commitdiff
Automatic merge from branch-6.3
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Fri, 3 Mar 2017 07:51:43 +0000 (08:51 +0100)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Fri, 3 Mar 2017 07:51:43 +0000 (08:51 +0100)
* origin/branch-6.3:
  SONAR-8883 Fix Server::getVersion() on scanner side, and reenable IssueJsonReportTest IT
  SONAR-8622 Fix preview mode/JSON report on branches
  Remove javaProperties plugin from PluginsTest
  Remove JSON plugin
  SONAR-8460 Do not fail to write response when profile not found
  SONAR-8460 Remove Errors
  SONAR-8460 Remove creation BadRequestException with Errors
  SONAR-8460 Fix bundled error messages
  SONAR-8460 Simplify creation of BadRequestException with one message
  SONAR-8460 Remove isEmpty from Errors
  SONAR-8460 Remove check from Errors
  SONAR-8460 Remove writeJson from Errors
  fix quality flaw

16 files changed:
1  2 
server/sonar-server/src/main/java/org/sonar/server/batch/ProjectDataLoader.java
server/sonar-server/src/main/java/org/sonar/server/component/ComponentUpdater.java
server/sonar-server/src/main/java/org/sonar/server/measure/custom/ws/CreateAction.java
server/sonar-server/src/main/java/org/sonar/server/qualitygate/QualityGateConditionsUpdater.java
server/sonar-server/src/main/java/org/sonar/server/qualitygate/QualityGateUpdater.java
server/sonar-server/src/main/java/org/sonar/server/qualitygate/QualityGates.java
server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/ProjectStatusAction.java
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileExporters.java
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/ExportAction.java
server/sonar-server/src/main/java/org/sonar/server/setting/ws/SetAction.java
server/sonar-server/src/main/java/org/sonar/server/user/UserUpdater.java
server/sonar-server/src/main/java/org/sonar/server/user/ws/DeactivateAction.java
server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/GroupWsSupport.java
server/sonar-server/src/main/java/org/sonar/server/usergroups/ws/RemoveUserAction.java
server/sonar-server/src/test/java/org/sonar/server/project/ws/CreateActionTest.java
server/sonar-server/src/test/java/org/sonar/server/user/UserUpdaterTest.java

index 22661d3f3e877b923a7af5143c6528312bc59dfa,875ac417f1b17b353b31ee8f4beb708418096ed9..1c7ab2f36f0755fa5a917d12fafd7401bf85fe48
@@@ -36,9 -36,7 +36,8 @@@ import org.sonar.db.component.FilePathW
  import org.sonar.db.property.PropertyDto;
  import org.sonar.scanner.protocol.input.FileData;
  import org.sonar.scanner.protocol.input.ProjectRepositories;
- import org.sonar.server.exceptions.BadRequestException;
  import org.sonar.server.exceptions.ForbiddenException;
 +import org.sonar.db.permission.OrganizationPermission;
  import org.sonar.server.user.UserSession;
  
  import static com.google.common.collect.Lists.newArrayList;
@@@ -64,12 -62,10 +63,10 @@@ public class ProjectDataLoader 
        ProjectRepositories data = new ProjectRepositories();
        ComponentDto module = checkFoundWithOptional(dbClient.componentDao().selectByKey(session, query.getModuleKey()),
          "Project or module with key '%s' is not found", query.getModuleKey());
-       if (!isProjectOrModule(module)) {
-         throw new BadRequestException(format("Key '%s' belongs to a component which is not a Project", query.getModuleKey()));
-       }
+       checkRequest(isProjectOrModule(module), "Key '%s' belongs to a component which is not a Project", query.getModuleKey());
  
        boolean hasScanPerm = userSession.hasComponentPermission(SCAN_EXECUTION, module) ||
 -        userSession.hasOrganizationPermission(module.getOrganizationUuid(), SCAN_EXECUTION);
 +        userSession.hasPermission(OrganizationPermission.SCAN, module.getOrganizationUuid());
        boolean hasBrowsePerm = userSession.hasComponentPermission(USER, module);
        checkPermission(query.isIssuesMode(), hasScanPerm, hasBrowsePerm);
  
index ab7644b0a079e4cdd5573a59003acebafe75044f,65d9355f812b279b5973ecc21ce15bc6701494ff..6ec525f0986c6ff5c918c44a972bcf16bb1188ad
@@@ -119,10 -117,10 +117,10 @@@ public class ComponentUpdater 
      }
    }
  
 -  private void handlePermissionTemplate(DbSession dbSession, ComponentDto componentDto, String organizationUuid, @Nullable Long userId) {
 +  private void handlePermissionTemplate(DbSession dbSession, ComponentDto componentDto, String organizationUuid, @Nullable Integer userId) {
      permissionTemplateService.applyDefault(dbSession, organizationUuid, componentDto, userId);
      if (componentDto.qualifier().equals(PROJECT)
-         && permissionTemplateService.hasDefaultTemplateWithPermissionOnProjectCreator(dbSession, organizationUuid, componentDto)) {
+       && permissionTemplateService.hasDefaultTemplateWithPermissionOnProjectCreator(dbSession, organizationUuid, componentDto)) {
        favoriteUpdater.add(dbSession, componentDto, userId);
      }
    }
index 6d7657d1988cb7b574a6ba4507f761141de3de79,43beb798dc3b41e96982320d1168569337f21f2e..6b96732a6bfd74f020a0094102eb0c7bf3506f00
@@@ -45,21 -46,21 +46,21 @@@ public class QualityGateUpdater 
      return newQualityGate;
    }
  
 -  private void validateQualityGate(@Nullable Long qGateId, @Nullable String name) {
 +  private void validateQualityGate(DbSession dbSession, @Nullable Long qGateId, @Nullable String name) {
-     Errors errors = new Errors();
+     List<String> errors = new ArrayList<>();
      if (isNullOrEmpty(name)) {
-       errors.add(Message.of(Validation.CANT_BE_EMPTY_MESSAGE, "Name"));
+       errors.add(format(Validation.CANT_BE_EMPTY_MESSAGE, "Name"));
      } else {
 -      checkQualityGateDoesNotAlreadyExist(qGateId, name, errors);
 +      checkQualityGateDoesNotAlreadyExist(dbSession, qGateId, name, errors);
      }
-     if (!errors.isEmpty()) {
-       throw BadRequestException.create(errors);
-     }
+     checkRequest(errors.isEmpty(), errors);
    }
  
-   private void checkQualityGateDoesNotAlreadyExist(DbSession dbSession, @Nullable Long qGateId, String name, Errors errors) {
 -  private void checkQualityGateDoesNotAlreadyExist(@Nullable Long qGateId, String name, List<String> errors) {
 -    QualityGateDto existingQgate = dbClient.qualityGateDao().selectByName(name);
++  private void checkQualityGateDoesNotAlreadyExist(DbSession dbSession, @Nullable Long qGateId, String name, List<String> errors) {
 +    QualityGateDto existingQgate = dbClient.qualityGateDao().selectByName(dbSession, name);
      boolean isModifyingCurrentQgate = qGateId != null && existingQgate != null && existingQgate.getId().equals(qGateId);
-     errors.check(isModifyingCurrentQgate || existingQgate == null, Validation.IS_ALREADY_USED_MESSAGE, "Name");
+     if (!isModifyingCurrentQgate && existingQgate != null) {
+       errors.add(format(Validation.IS_ALREADY_USED_MESSAGE, "Name"));
+     }
    }
  }
index 4aaad198de878e7fc9e10742d7502661c6d0eb24,f6eb82bb0a7eea1c125d449152fd2f2ab6505da3..b916e587b17ae2bd71faf9920cf016d348dc67f8
@@@ -228,22 -226,22 +230,22 @@@ public class QualityGates 
      return condition;
    }
  
 -  private void validateQualityGate(@Nullable Long updatingQgateId, @Nullable String name) {
 +  private void validateQualityGate(DbSession dbSession, @Nullable Long updatingQgateId, @Nullable String name) {
-     Errors errors = new Errors();
+     List<String> errors = new ArrayList<>();
      if (Strings.isNullOrEmpty(name)) {
-       errors.add(Message.of(Validation.CANT_BE_EMPTY_MESSAGE, "Name"));
+       errors.add(format(Validation.CANT_BE_EMPTY_MESSAGE, "Name"));
      } else {
 -      checkQgateNotAlreadyExists(updatingQgateId, name, errors);
 +      checkQgateNotAlreadyExists(dbSession, updatingQgateId, name, errors);
      }
-     if (!errors.isEmpty()) {
-       throw BadRequestException.create(errors);
-     }
+     checkRequest(errors.isEmpty(), errors);
    }
  
-   private void checkQgateNotAlreadyExists(DbSession dbSession, @Nullable Long updatingQgateId, String name, Errors errors) {
 -  private void checkQgateNotAlreadyExists(@Nullable Long updatingQgateId, String name, List<String> errors) {
 -    QualityGateDto existingQgate = dao.selectByName(name);
++  private void checkQgateNotAlreadyExists(DbSession dbSession, @Nullable Long updatingQgateId, String name, List<String> errors) {
 +    QualityGateDto existingQgate = dao.selectByName(dbSession, name);
      boolean isModifyingCurrentQgate = updatingQgateId != null && existingQgate != null && existingQgate.getId().equals(updatingQgateId);
-     errors.check(isModifyingCurrentQgate || existingQgate == null, Validation.IS_ALREADY_USED_MESSAGE, "Name");
+     if (!isModifyingCurrentQgate && existingQgate != null) {
+       errors.add(format(Validation.IS_ALREADY_USED_MESSAGE, "Name"));
+     }
    }
  
    private void checkIsSystemAdministrator() {
index aa5a10597e77ef94cf6a32e458d3a9b130cbd28e,abcc7a39883c943f30c747b9663dd0d4f724bed8..547a144e7353a5bee4e46f47e490d3c1457c2647
@@@ -90,10 -90,8 +92,8 @@@ public class RemoveUserAction implement
     */
    private void ensureLastAdminIsNotRemoved(DbSession dbSession, GroupId group, UserDto user) {
      int remainingAdmins = dbClient.authorizationDao().countUsersWithGlobalPermissionExcludingGroupMember(dbSession,
 -      group.getOrganizationUuid(), SYSTEM_ADMIN, group.getId(), user.getId());
 +      group.getOrganizationUuid(), OrganizationPermission.ADMINISTER.getKey(), group.getId(), user.getId());
-     if (remainingAdmins == 0) {
-       throw new BadRequestException("The last administrator user cannot be removed");
-     }
+     checkRequest(remainingAdmins > 0, "The last administrator user cannot be removed");
    }
  
    private UserDto getUser(DbSession dbSession, String userLogin) {
index 951d824278188f3b4275687fc01a0a07ebbddd78,57f2228d989982ccf14cf5842dd54776ce0cc830..d08ec57de0ebf79dcd4b94abb2a7f4270e2e7298
@@@ -133,8 -133,8 +133,8 @@@ public class CreateActionTest 
    @Test
    public void fail_when_project_already_exists() throws Exception {
      OrganizationDto organization = db.organizations().insert();
-     when(componentUpdater.create(any(DbSession.class), any(NewComponent.class), anyInt())).thenThrow(new BadRequestException("already exists"));
 -    when(componentUpdater.create(any(DbSession.class), any(NewComponent.class), anyLong())).thenThrow(BadRequestException.create("already exists"));
 -    userSession.addOrganizationPermission(organization, PROVISIONING);
++    when(componentUpdater.create(any(DbSession.class), any(NewComponent.class), anyInt())).thenThrow(BadRequestException.create("already exists"));
 +    userSession.addPermission(PROVISION_PROJECTS, organization);
  
      expectedException.expect(BadRequestException.class);