]> source.dussan.org Git - sonarqube.git/commitdiff
Merge QGateWsSupport to QualityGatesWsSupport
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Fri, 24 Nov 2017 13:29:59 +0000 (14:29 +0100)
committerEric Hartmann <hartmann.eric@gmail.Com>
Mon, 4 Dec 2017 12:44:55 +0000 (13:44 +0100)
server/sonar-server/src/main/java/org/sonar/server/qualitygate/QualityGateModule.java
server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/ListAction.java
server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGateWsSupport.java [deleted file]
server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QualityGatesWsSupport.java
server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/RenameAction.java
server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/ShowAction.java
server/sonar-server/src/test/java/org/sonar/server/qualitygate/QualityGateModuleTest.java
server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/DeleteConditionActionTest.java
server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/ListActionTest.java
server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/RenameActionTest.java
server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/ShowActionTest.java

index ee9980dc1128de4e4c87c2eb26f23f99986acc51..6e97f2355f17e289442b28ed11e70fa2da6552cc 100644 (file)
@@ -30,7 +30,6 @@ import org.sonar.server.qualitygate.ws.DestroyAction;
 import org.sonar.server.qualitygate.ws.GetByProjectAction;
 import org.sonar.server.qualitygate.ws.ListAction;
 import org.sonar.server.qualitygate.ws.ProjectStatusAction;
-import org.sonar.server.qualitygate.ws.QGateWsSupport;
 import org.sonar.server.qualitygate.ws.QualityGatesWs;
 import org.sonar.server.qualitygate.ws.QualityGatesWsSupport;
 import org.sonar.server.qualitygate.ws.RenameAction;
@@ -51,7 +50,6 @@ public class QualityGateModule extends Module {
       QgateProjectFinder.class,
       QualityGateFinder.class,
       // WS
-      QGateWsSupport.class,
       QualityGatesWsSupport.class,
       QualityGatesWs.class,
       ListAction.class,
index a3fc1cbc0d20e0a5f4687d0f855dff9468dfeeee..e293080411810189d72dbc67ff9ddff6b2440293 100644 (file)
@@ -39,9 +39,9 @@ import static org.sonar.server.ws.WsUtils.writeProtobuf;
 public class ListAction implements QualityGatesWsAction {
 
   private final DbClient dbClient;
-  private final QGateWsSupport wsSupport;
+  private final QualityGatesWsSupport wsSupport;
 
-  public ListAction(DbClient dbClient, QGateWsSupport wsSupport) {
+  public ListAction(DbClient dbClient, QualityGatesWsSupport wsSupport) {
     this.dbClient = dbClient;
     this.wsSupport = wsSupport;
   }
diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGateWsSupport.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QGateWsSupport.java
deleted file mode 100644 (file)
index f15b1fb..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2017 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-package org.sonar.server.qualitygate.ws;
-
-import javax.annotation.CheckForNull;
-import javax.annotation.Nullable;
-import org.apache.commons.lang.StringUtils;
-import org.sonar.api.server.ServerSide;
-import org.sonar.db.DbClient;
-import org.sonar.db.DbSession;
-import org.sonar.db.property.PropertyDto;
-import org.sonar.db.qualitygate.QualityGateDto;
-import org.sonar.server.organization.DefaultOrganizationProvider;
-import org.sonar.server.user.UserSession;
-import org.sonarqube.ws.Qualitygates;
-
-import static com.google.common.base.Preconditions.checkArgument;
-import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_GATES;
-import static org.sonar.server.qualitygate.QualityGates.SONAR_QUALITYGATE_PROPERTY;
-
-@ServerSide
-public class QGateWsSupport {
-
-  private final DbClient dbClient;
-  private final UserSession userSession;
-  private final DefaultOrganizationProvider defaultOrganizationProvider;
-
-  public QGateWsSupport(DbClient dbClient, UserSession userSession, DefaultOrganizationProvider defaultOrganizationProvider) {
-    this.dbClient = dbClient;
-    this.userSession = userSession;
-    this.defaultOrganizationProvider = defaultOrganizationProvider;
-  }
-
-  boolean isQualityGateAdmin() {
-    return userSession.hasPermission(ADMINISTER_QUALITY_GATES, defaultOrganizationProvider.get().getUuid());
-  }
-
-  Qualitygates.Actions getActions(QualityGateDto qualityGate, @Nullable QualityGateDto defaultQualityGate) {
-    Long defaultId = defaultQualityGate == null ? null : defaultQualityGate.getId();
-    boolean isDefault = qualityGate.getId().equals(defaultId);
-    boolean isBuiltIn = qualityGate.isBuiltIn();
-    boolean isQualityGateAdmin = isQualityGateAdmin();
-    return Qualitygates.Actions.newBuilder()
-      .setCopy(isQualityGateAdmin)
-      .setEdit(!isBuiltIn && isQualityGateAdmin)
-      .setSetAsDefault(!isDefault && isQualityGateAdmin)
-      .setAssociateProjects(!isDefault && isQualityGateAdmin)
-      .build();
-  }
-
-  @CheckForNull
-  QualityGateDto getDefault(DbSession dbSession) {
-    Long defaultId = getDefaultId(dbSession);
-    if (defaultId == null) {
-      return null;
-    }
-    return dbClient.qualityGateDao().selectById(dbSession, defaultId);
-  }
-
-  @CheckForNull
-  private Long getDefaultId(DbSession dbSession) {
-    PropertyDto defaultQgate = dbClient.propertiesDao().selectGlobalProperty(dbSession, SONAR_QUALITYGATE_PROPERTY);
-    if (defaultQgate == null || StringUtils.isBlank(defaultQgate.getValue())) {
-      return null;
-    }
-    return Long.valueOf(defaultQgate.getValue());
-  }
-
-  void checkCanEdit(QualityGateDto qualityGate) {
-    checkNotBuiltInt(qualityGate);
-    userSession.checkPermission(ADMINISTER_QUALITY_GATES, defaultOrganizationProvider.get().getUuid());
-  }
-
-  private static void checkNotBuiltInt(QualityGateDto qualityGate) {
-    checkArgument(!qualityGate.isBuiltIn(), "Operation forbidden for built-in Quality Gate '%s'", qualityGate.getName());
-  }
-
-}
index f6e945b3783e88a37c99233829ee0dbe6c9f0bdd..6cbf5ab48a8fc2cae161862965ff7090e4ad2cdd 100644 (file)
 
 package org.sonar.server.qualitygate.ws;
 
+import javax.annotation.CheckForNull;
+import javax.annotation.Nullable;
+import org.apache.commons.lang.StringUtils;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.organization.OrganizationDto;
+import org.sonar.db.property.PropertyDto;
 import org.sonar.db.qualitygate.QualityGateConditionDto;
+import org.sonar.db.qualitygate.QualityGateDto;
 import org.sonar.server.exceptions.NotFoundException;
 import org.sonar.server.organization.DefaultOrganizationProvider;
+import org.sonar.server.user.UserSession;
+import org.sonarqube.ws.Qualitygates;
 
+import static com.google.common.base.Preconditions.checkArgument;
 import static java.lang.String.format;
+import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_GATES;
+import static org.sonar.server.qualitygate.QualityGates.SONAR_QUALITYGATE_PROPERTY;
 import static org.sonar.server.ws.WsUtils.checkFound;
 
 public class QualityGatesWsSupport {
+
   private final DbClient dbClient;
-  private final DefaultOrganizationProvider organizationProvider;
+  private final UserSession userSession;
+  private final DefaultOrganizationProvider defaultOrganizationProvider;
 
-  public QualityGatesWsSupport(DbClient dbClient, DefaultOrganizationProvider organizationProvider) {
+  public QualityGatesWsSupport(DbClient dbClient, UserSession userSession, DefaultOrganizationProvider defaultOrganizationProvider) {
     this.dbClient = dbClient;
-    this.organizationProvider = organizationProvider;
+    this.userSession = userSession;
+    this.defaultOrganizationProvider = defaultOrganizationProvider;
   }
 
   QualityGateConditionDto getCondition(DbSession dbSession, long id) {
@@ -44,8 +57,52 @@ public class QualityGatesWsSupport {
   }
 
   OrganizationDto getOrganization(DbSession dbSession) {
-    String organizationKey = organizationProvider.get().getKey();
+    String organizationKey = defaultOrganizationProvider.get().getKey();
     return dbClient.organizationDao().selectByKey(dbSession, organizationKey)
       .orElseThrow(() -> new NotFoundException(format("No organization with key '%s'", organizationKey)));
   }
+
+  boolean isQualityGateAdmin() {
+    return userSession.hasPermission(ADMINISTER_QUALITY_GATES, defaultOrganizationProvider.get().getUuid());
+  }
+
+  Qualitygates.Actions getActions(QualityGateDto qualityGate, @Nullable QualityGateDto defaultQualityGate) {
+    Long defaultId = defaultQualityGate == null ? null : defaultQualityGate.getId();
+    boolean isDefault = qualityGate.getId().equals(defaultId);
+    boolean isBuiltIn = qualityGate.isBuiltIn();
+    boolean isQualityGateAdmin = isQualityGateAdmin();
+    return Qualitygates.Actions.newBuilder()
+      .setCopy(isQualityGateAdmin)
+      .setEdit(!isBuiltIn && isQualityGateAdmin)
+      .setSetAsDefault(!isDefault && isQualityGateAdmin)
+      .setAssociateProjects(!isDefault && isQualityGateAdmin)
+      .build();
+  }
+
+  @CheckForNull
+  QualityGateDto getDefault(DbSession dbSession) {
+    Long defaultId = getDefaultId(dbSession);
+    if (defaultId == null) {
+      return null;
+    }
+    return dbClient.qualityGateDao().selectById(dbSession, defaultId);
+  }
+
+  @CheckForNull
+  private Long getDefaultId(DbSession dbSession) {
+    PropertyDto defaultQgate = dbClient.propertiesDao().selectGlobalProperty(dbSession, SONAR_QUALITYGATE_PROPERTY);
+    if (defaultQgate == null || StringUtils.isBlank(defaultQgate.getValue())) {
+      return null;
+    }
+    return Long.valueOf(defaultQgate.getValue());
+  }
+
+  void checkCanEdit(QualityGateDto qualityGate) {
+    checkNotBuiltInt(qualityGate);
+    userSession.checkPermission(ADMINISTER_QUALITY_GATES, defaultOrganizationProvider.get().getUuid());
+  }
+
+  private static void checkNotBuiltInt(QualityGateDto qualityGate) {
+    checkArgument(!qualityGate.isBuiltIn(), "Operation forbidden for built-in Quality Gate '%s'", qualityGate.getName());
+  }
 }
index e65a5ee037e472e7e460fcc4bfce5b2b02aa28c0..212330cc98ffd784c3105fc67d5f015aec7eb971 100644 (file)
@@ -40,9 +40,9 @@ public class RenameAction implements QualityGatesWsAction {
 
   private final DbClient dbClient;
   private final QualityGateFinder qualityGateFinder;
-  private final QGateWsSupport wsSupport;
+  private final QualityGatesWsSupport wsSupport;
 
-  public RenameAction(DbClient dbClient, QualityGateFinder qualityGateFinder, QGateWsSupport wsSupport) {
+  public RenameAction(DbClient dbClient, QualityGateFinder qualityGateFinder, QualityGatesWsSupport wsSupport) {
     this.dbClient = dbClient;
     this.qualityGateFinder = qualityGateFinder;
     this.wsSupport = wsSupport;
index 0f01909002b8a9ead37b0e011cf329390e03b6db..6eee336e81a0dfb4cedbd332e6ee16bb7e51e637 100644 (file)
@@ -51,9 +51,9 @@ public class ShowAction implements QualityGatesWsAction {
 
   private final DbClient dbClient;
   private final QualityGateFinder qualityGateFinder;
-  private final QGateWsSupport wsSupport;
+  private final QualityGatesWsSupport wsSupport;
 
-  public ShowAction(DbClient dbClient, QualityGateFinder qualityGateFinder, QGateWsSupport wsSupport) {
+  public ShowAction(DbClient dbClient, QualityGateFinder qualityGateFinder, QualityGatesWsSupport wsSupport) {
     this.dbClient = dbClient;
     this.qualityGateFinder = qualityGateFinder;
     this.wsSupport = wsSupport;
index 36d9eba904b2ef878bfe2f5b3b047d19c194e8a4..622d9fc62361fcd7014d35ebb7ca6fbe43654298 100644 (file)
@@ -29,6 +29,6 @@ public class QualityGateModuleTest {
   public void verify_count_of_added_components() {
     ComponentContainer container = new ComponentContainer();
     new QualityGateModule().configure(container);
-    assertThat(container.size()).isEqualTo(25 + 2);
+    assertThat(container.size()).isEqualTo(24 + 2);
   }
 }
index 1e242273a33992649a479edfa7a5d93369bd8f08..df5a1a52363fa01078c3bff7662dacd7c3b546ce 100644 (file)
@@ -54,7 +54,8 @@ public class DeleteConditionActionTest {
 
   private TestDefaultOrganizationProvider organizationProvider = TestDefaultOrganizationProvider.from(db);
 
-  private WsActionTester ws = new WsActionTester(new DeleteConditionAction(userSession, db.getDbClient(), new QualityGatesWsSupport(db.getDbClient(), organizationProvider)));
+  private WsActionTester ws = new WsActionTester(
+    new DeleteConditionAction(userSession, db.getDbClient(), new QualityGatesWsSupport(db.getDbClient(), userSession, organizationProvider)));
 
   @Test
   public void definition() {
index 108ef2da489bb9387889ce0a5ad86c94162526e4..471da817602741a7cc64b633d5fba1489f72d5d1 100644 (file)
@@ -50,7 +50,7 @@ public class ListActionTest {
   public DbTester db = DbTester.create();
   private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
 
-  private WsActionTester ws = new WsActionTester(new ListAction(db.getDbClient(), new QGateWsSupport(db.getDbClient(), userSession, defaultOrganizationProvider)));
+  private WsActionTester ws = new WsActionTester(new ListAction(db.getDbClient(), new QualityGatesWsSupport(db.getDbClient(), userSession, defaultOrganizationProvider)));
 
   @Test
   public void verify_definition() {
index 6f561a91c790a0d92b9945486e4e00b453e73119..f1405906ccbb7ec49ce3fd59f64294cb77233847 100644 (file)
@@ -54,7 +54,7 @@ public class RenameActionTest {
   private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
 
   private WsActionTester ws = new WsActionTester(
-    new RenameAction(db.getDbClient(), new QualityGateFinder(db.getDbClient()), new QGateWsSupport(db.getDbClient(), userSession, defaultOrganizationProvider)));
+    new RenameAction(db.getDbClient(), new QualityGateFinder(db.getDbClient()), new QualityGatesWsSupport(db.getDbClient(), userSession, defaultOrganizationProvider)));
 
   @Test
   public void verify_definition() {
index 4036de490ae510b653b700fce8eea775323f4e58..34c0667ffe6d3fb6e9bb85cc69e4654ac15f45f2 100644 (file)
@@ -58,7 +58,7 @@ public class ShowActionTest {
   private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
 
   private WsActionTester ws = new WsActionTester(
-    new ShowAction(db.getDbClient(), new QualityGateFinder(db.getDbClient()), new QGateWsSupport(db.getDbClient(), userSession, defaultOrganizationProvider)));
+    new ShowAction(db.getDbClient(), new QualityGateFinder(db.getDbClient()), new QualityGatesWsSupport(db.getDbClient(), userSession, defaultOrganizationProvider)));
 
   @Test
   public void verify_definition() {