]> source.dussan.org Git - sonarqube.git/commitdiff
Fix Quality flaws
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Tue, 17 Apr 2018 18:49:19 +0000 (20:49 +0200)
committerSonarTech <sonartech@sonarsource.com>
Thu, 10 May 2018 18:20:52 +0000 (20:20 +0200)
mainly by removing unused code

30 files changed:
server/sonar-ce/src/test/java/org/sonar/ce/queue/InternalCeQueueImplTest.java
server/sonar-db-dao/src/main/java/org/sonar/db/DaoDatabaseUtils.java [deleted file]
server/sonar-db-dao/src/main/java/org/sonar/db/DaoUtils.java [new file with mode: 0644]
server/sonar-db-dao/src/main/java/org/sonar/db/ce/CeQueueDao.java
server/sonar-db-dao/src/main/java/org/sonar/db/ce/CeQueueMapper.java
server/sonar-db-dao/src/main/java/org/sonar/db/ce/CeScannerContextDao.java
server/sonar-db-dao/src/main/java/org/sonar/db/ce/CeTaskCharacteristicDao.java
server/sonar-db-dao/src/main/java/org/sonar/db/ce/CeTaskCharacteristicMapper.java
server/sonar-db-dao/src/main/java/org/sonar/db/component/ComponentDao.java
server/sonar-db-dao/src/main/java/org/sonar/db/component/ComponentDto.java
server/sonar-db-dao/src/main/java/org/sonar/db/component/ComponentQuery.java
server/sonar-db-dao/src/main/java/org/sonar/db/component/ComponentTreeQuery.java
server/sonar-db-dao/src/main/java/org/sonar/db/issue/IssueDao.java
server/sonar-db-dao/src/main/java/org/sonar/db/measure/MeasureTreeQuery.java
server/sonar-db-dao/src/main/java/org/sonar/db/permission/PermissionQuery.java
server/sonar-db-dao/src/main/java/org/sonar/db/qualitygate/ProjectQgateAssociationQuery.java
server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/SearchGroupsQuery.java
server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/SearchUsersQuery.java
server/sonar-db-dao/src/main/java/org/sonar/db/user/GroupDao.java
server/sonar-db-dao/src/main/java/org/sonar/db/user/UserMembershipQuery.java
server/sonar-db-dao/src/main/resources/org/sonar/db/ce/CeQueueMapper.xml
server/sonar-db-dao/src/main/resources/org/sonar/db/ce/CeTaskCharacteristicMapper.xml
server/sonar-db-dao/src/test/java/org/sonar/db/DaoDatabaseUtilsTest.java [deleted file]
server/sonar-db-dao/src/test/java/org/sonar/db/DaoUtilsTest.java [new file with mode: 0644]
server/sonar-db-dao/src/test/java/org/sonar/db/ce/CeQueueDaoTest.java
server/sonar-db-dao/src/test/java/org/sonar/db/ce/CeTaskCharacteristicDaoTest.java
server/sonar-server/src/main/java/org/sonar/ce/queue/CeQueue.java
server/sonar-server/src/main/java/org/sonar/ce/queue/CeQueueImpl.java
server/sonar-server/src/test/java/org/sonar/ce/queue/CeQueueImplTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/queue/ReportSubmitterTest.java

index 28186aac04617dff61bcf19c96dd48dc1c9ffa36..6e31c0b3af2fa8b153dee945251d07c9af18c22e 100644 (file)
@@ -119,16 +119,6 @@ public class InternalCeQueueImplTest {
     verifyCeTask(taskSubmit, task, null);
   }
 
-  @Test
-  public void submit_fails_with_ISE_if_paused() {
-    underTest.pauseSubmit();
-
-    expectedException.expect(IllegalStateException.class);
-    expectedException.expectMessage("Compute Engine does not currently accept new tasks");
-
-    submit(CeTaskTypes.REPORT, "PROJECT_1");
-  }
-
   @Test
   public void massSubmit_returns_tasks_for_each_CeTaskSubmit_populated_from_CeTaskSubmit_and_creates_CeQueue_row_for_each() {
     CeTaskSubmit taskSubmit1 = createTaskSubmit(CeTaskTypes.REPORT, "PROJECT_1", "rob");
@@ -688,15 +678,6 @@ public class InternalCeQueueImplTest {
     return dto;
   }
 
-  @Test
-  public void pause_and_resume_submits() {
-    assertThat(underTest.isSubmitPaused()).isFalse();
-    underTest.pauseSubmit();
-    assertThat(underTest.isSubmitPaused()).isTrue();
-    underTest.resumeSubmit();
-    assertThat(underTest.isSubmitPaused()).isFalse();
-  }
-
   private void verifyCeTask(CeTaskSubmit taskSubmit, CeTask task, @Nullable ComponentDto componentDto) {
     if (componentDto == null) {
       assertThat(task.getOrganizationUuid()).isEqualTo(defaultOrganizationProvider.get().getUuid());
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/DaoDatabaseUtils.java b/server/sonar-db-dao/src/main/java/org/sonar/db/DaoDatabaseUtils.java
deleted file mode 100644 (file)
index 664fd6c..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.db;
-
-public class DaoDatabaseUtils extends DatabaseUtils {
-
-  /**
-   * Returns an escaped value in parameter, with the desired wildcards. Suitable to be used in a like sql query<br />
-   * Escapes the "/", "%" and "_" characters.<br/>
-   *
-   * You <strong>must</strong> add "ESCAPE '/'" after your like query. It defines '/' as the escape character.
-   */
-  public static String buildLikeValue(String value, WildcardPosition wildcardPosition) {
-    String escapedValue = escapePercentAndUnderscore(value);
-    String wildcard = "%";
-    switch (wildcardPosition) {
-      case BEFORE:
-        escapedValue = wildcard + escapedValue;
-        break;
-      case AFTER:
-        escapedValue += wildcard;
-        break;
-      case BEFORE_AND_AFTER:
-        escapedValue = wildcard + escapedValue + wildcard;
-        break;
-      default:
-        throw new UnsupportedOperationException("Unhandled WildcardPosition: " + wildcardPosition);
-    }
-
-    return escapedValue;
-  }
-
-  /**
-   * Replace escape percent and underscore by adding a slash just before
-   */
-  private static String escapePercentAndUnderscore(String value) {
-    return value
-        .replaceAll("/", "//")
-        .replaceAll("%", "/%")
-        .replaceAll("_", "/_");
-  }
-}
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/DaoUtils.java b/server/sonar-db-dao/src/main/java/org/sonar/db/DaoUtils.java
new file mode 100644 (file)
index 0000000..e9eb4cd
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.db;
+
+public class DaoUtils {
+
+  private DaoUtils() {
+    // prevent new instances
+  }
+
+  /**
+   * Returns an escaped value in parameter, with the desired wildcards. Suitable to be used in a like sql query<br />
+   * Escapes the "/", "%" and "_" characters.<br/>
+   *
+   * You <strong>must</strong> add "ESCAPE '/'" after your like query. It defines '/' as the escape character.
+   */
+  public static String buildLikeValue(String value, WildcardPosition wildcardPosition) {
+    String escapedValue = escapePercentAndUnderscore(value);
+    String wildcard = "%";
+    switch (wildcardPosition) {
+      case BEFORE:
+        escapedValue = wildcard + escapedValue;
+        break;
+      case AFTER:
+        escapedValue += wildcard;
+        break;
+      case BEFORE_AND_AFTER:
+        escapedValue = wildcard + escapedValue + wildcard;
+        break;
+      default:
+        throw new UnsupportedOperationException("Unhandled WildcardPosition: " + wildcardPosition);
+    }
+
+    return escapedValue;
+  }
+
+  /**
+   * Replace escape percent and underscore by adding a slash just before
+   */
+  private static String escapePercentAndUnderscore(String value) {
+    return value
+        .replaceAll("/", "//")
+        .replaceAll("%", "/%")
+        .replaceAll("_", "/_");
+  }
+}
index 42260c55ae9adc970a9e36ad31ccd725ee4aafd7..318c8b5ac0c98a46c09aa896cbc106615a749897 100644 (file)
@@ -114,13 +114,6 @@ public class CeQueueDao implements Dao {
     mapper(session).deleteByUuid(uuid);
   }
 
-  /**
-   * Update all rows with: STATUS='PENDING', STARTED_AT=NULL, UPDATED_AT={now}
-   */
-  public void resetAllToPendingStatus(DbSession session) {
-    mapper(session).resetAllToPendingStatus(system2.now());
-  }
-
   /**
    * Update all tasks for the specified worker uuid which are not PENDING to:
    * STATUS='PENDING', STARTED_AT=NULL, UPDATED_AT={now}.
@@ -179,7 +172,7 @@ public class CeQueueDao implements Dao {
 
     CeQueueDto result = mapper(session).selectByUuid(eligible.getUuid());
     session.commit();
-    return Optional.of(result);
+    return Optional.ofNullable(result);
   }
 
   private static CeQueueMapper mapper(DbSession session) {
index 0d36f3e31a6ddaa0c2176d19bcee6538bbb18712..c2e301185bd67d5acace6885c51eeb1e06162ef9 100644 (file)
@@ -63,8 +63,6 @@ public interface CeQueueMapper {
 
   void insert(CeQueueDto dto);
 
-  void resetAllToPendingStatus(@Param("updatedAt") long updatedAt);
-
   int resetToPendingForWorker(@Param("workerUuid") String workerUuid, @Param("updatedAt") long updatedAt);
 
   int updateIf(@Param("uuid") String uuid,
index 591fcedd389454ca589d9e7a699bbb0b88c7011b..a3e3d2f708c2f466dbee61cbfd76e54b3081a9bc 100644 (file)
@@ -21,7 +21,6 @@ package org.sonar.db.ce;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.nio.charset.Charset;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
@@ -37,11 +36,10 @@ import org.sonar.db.DatabaseUtils;
 import org.sonar.db.DbSession;
 
 import static com.google.common.base.Preconditions.checkArgument;
+import static java.nio.charset.StandardCharsets.UTF_8;
 
 public class CeScannerContextDao implements Dao {
 
-  private static final Charset UTF_8 = Charset.forName("UTF-8");
-
   private final System2 system;
 
   public CeScannerContextDao(System2 system) {
index 004a690e5c27b50b69d2f01e8b49224ac2b85455..0eb7ca5583c13da6398ca3b9aed539fab8c91589 100644 (file)
@@ -34,10 +34,6 @@ public class CeTaskCharacteristicDao implements Dao {
     }
   }
 
-  public List<CeTaskCharacteristicDto> selectByTaskUuid(DbSession dbSession, String taskUuid) {
-    return mapper(dbSession).selectByTaskUuid(taskUuid);
-  }
-
   public List<CeTaskCharacteristicDto> selectByTaskUuids(DbSession dbSession, List<String> taskUuids) {
     return executeLargeInputs(taskUuids, uuid -> mapper(dbSession).selectByTaskUuids(uuid));
   }
index a3e0eaaa3c266254483317a1574da46c00e2049d..01fb720fd7157de2619d527dd14a697859e370cd 100644 (file)
@@ -24,8 +24,6 @@ import org.apache.ibatis.annotations.Param;
 
 public interface CeTaskCharacteristicMapper {
 
-  List<CeTaskCharacteristicDto> selectByTaskUuid(@Param("taskUuid") String taskUuid);
-
   List<CeTaskCharacteristicDto> selectByTaskUuids(@Param("taskUuids") List<String> taskUuids);
 
   void insert(CeTaskCharacteristicDto taskCharacteristic);
index 136114d437fc0a436f122f805ca017df76613d46..e5dfb2a5dfab88e98c3b32470d8aeeb5d9b20590 100644 (file)
@@ -44,7 +44,7 @@ import static java.util.Collections.emptyList;
 import static java.util.Objects.requireNonNull;
 import static org.apache.commons.lang.StringUtils.isBlank;
 import static org.sonar.core.util.stream.MoreCollectors.toList;
-import static org.sonar.db.DaoDatabaseUtils.buildLikeValue;
+import static org.sonar.db.DaoUtils.buildLikeValue;
 import static org.sonar.db.DatabaseUtils.checkThatNotTooManyConditions;
 import static org.sonar.db.DatabaseUtils.executeLargeInputs;
 import static org.sonar.db.DatabaseUtils.executeLargeInputsIntoSet;
index fad8823a8b9c19b95aecee41563dfa8c584aa166..bd41e5534a1ea6b14e032ff49983c34d1517a4e3 100644 (file)
@@ -34,7 +34,7 @@ import org.sonar.db.WildcardPosition;
 import static com.google.common.base.Preconditions.checkArgument;
 import static java.lang.String.format;
 import static org.apache.commons.lang.StringUtils.substringBeforeLast;
-import static org.sonar.db.DaoDatabaseUtils.buildLikeValue;
+import static org.sonar.db.DaoUtils.buildLikeValue;
 import static org.sonar.db.component.ComponentValidator.checkComponentKey;
 import static org.sonar.db.component.ComponentValidator.checkComponentLongName;
 import static org.sonar.db.component.ComponentValidator.checkComponentName;
index 1696f21a78dcb31ce60b57d0769ed4694bcc5ba0..487b7b2a252de62defebb80450f369178bd45cdd 100644 (file)
@@ -27,7 +27,7 @@ import javax.annotation.Nullable;
 import org.sonar.db.WildcardPosition;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static org.sonar.db.DaoDatabaseUtils.buildLikeValue;
+import static org.sonar.db.DaoUtils.buildLikeValue;
 
 public class ComponentQuery {
   private final String nameOrKeyQuery;
index cdfb21c34e8c288ade3c2cb6dfe3de6676fa1b43..ed79a11252b9a63bf868f37401fbae2f977e2d59 100644 (file)
@@ -28,7 +28,7 @@ import org.sonar.db.WildcardPosition;
 
 import static com.google.common.collect.Lists.newArrayList;
 import static java.util.Objects.requireNonNull;
-import static org.sonar.db.DaoDatabaseUtils.buildLikeValue;
+import static org.sonar.db.DaoUtils.buildLikeValue;
 import static org.sonar.db.WildcardPosition.BEFORE_AND_AFTER;
 
 public class ComponentTreeQuery {
index 2ed5d39306126e0d4f26254e73afe4a4ac6be318..7269ad8955129ef6c83c2e60df79fb9603324e55 100644 (file)
@@ -30,7 +30,7 @@ import org.sonar.db.RowNotFoundException;
 import org.sonar.db.WildcardPosition;
 import org.sonar.db.component.ComponentDto;
 
-import static org.sonar.db.DaoDatabaseUtils.buildLikeValue;
+import static org.sonar.db.DaoUtils.buildLikeValue;
 import static org.sonar.db.DatabaseUtils.executeLargeInputs;
 
 public class IssueDao implements Dao {
index 9f24b660eee5f1738d3a75f20e92f3f630574337..4fb1a8cbed30e628bb19f443120f73001bb9f29a 100644 (file)
@@ -28,7 +28,7 @@ import org.sonar.db.component.ComponentDto;
 
 import static com.google.common.collect.Lists.newArrayList;
 import static java.util.Objects.requireNonNull;
-import static org.sonar.db.DaoDatabaseUtils.buildLikeValue;
+import static org.sonar.db.DaoUtils.buildLikeValue;
 import static org.sonar.db.WildcardPosition.BEFORE_AND_AFTER;
 
 public class MeasureTreeQuery {
index 82d61a80daab479bb15c277d892dcdb1dac8783c..85ee4a0c1c54a81b6fe33fc7fbb22c8f9b9f1e9d 100644 (file)
@@ -30,7 +30,7 @@ import static com.google.common.base.Preconditions.checkArgument;
 import static java.util.Objects.requireNonNull;
 import static org.apache.commons.lang.StringUtils.defaultIfBlank;
 import static org.sonar.api.utils.Paging.offset;
-import static org.sonar.db.DaoDatabaseUtils.buildLikeValue;
+import static org.sonar.db.DaoUtils.buildLikeValue;
 
 /**
  * Query used to get users and groups permissions
index 3d9ebc7ca110aced81d93d861cc153bb286abff3..4a18863de83d76609d9e4e48f3b7fdf06cc60d0a 100644 (file)
@@ -26,7 +26,7 @@ import java.util.Set;
 import javax.annotation.CheckForNull;
 import javax.annotation.Nullable;
 import org.apache.commons.lang.StringUtils;
-import org.sonar.db.DaoDatabaseUtils;
+import org.sonar.db.DaoUtils;
 import org.sonar.db.WildcardPosition;
 
 public class ProjectQgateAssociationQuery {
@@ -62,7 +62,7 @@ public class ProjectQgateAssociationQuery {
     if (this.projectSearch == null) {
       this.projectSearchUpperLikeSql = null;
     } else {
-      this.projectSearchUpperLikeSql = DaoDatabaseUtils.buildLikeValue(projectSearch.toUpperCase(Locale.ENGLISH), WildcardPosition.BEFORE_AND_AFTER);
+      this.projectSearchUpperLikeSql = DaoUtils.buildLikeValue(projectSearch.toUpperCase(Locale.ENGLISH), WildcardPosition.BEFORE_AND_AFTER);
     }
 
     this.pageSize = builder.pageSize;
index a52cf754038b9ae985b89c97e49a60e8c4f0774f..91f363d84dd1ebcae19bc67c908b71309d99f326 100644 (file)
@@ -29,7 +29,7 @@ import org.sonar.db.organization.OrganizationDto;
 
 import static com.google.common.base.MoreObjects.firstNonNull;
 import static com.google.common.base.Preconditions.checkArgument;
-import static org.sonar.db.DaoDatabaseUtils.buildLikeValue;
+import static org.sonar.db.DaoUtils.buildLikeValue;
 import static org.sonar.db.WildcardPosition.BEFORE_AND_AFTER;
 
 public class SearchGroupsQuery {
index 9aaf840adfdd304700dbf5e2617c1465c56afb6e..dbf04d6e0fff2364387f1bdc261fc61db8f68f25 100644 (file)
@@ -30,7 +30,7 @@ import org.sonar.db.organization.OrganizationDto;
 import static com.google.common.base.MoreObjects.firstNonNull;
 import static com.google.common.base.Preconditions.checkArgument;
 import static java.util.Objects.requireNonNull;
-import static org.sonar.db.DaoDatabaseUtils.buildLikeValue;
+import static org.sonar.db.DaoUtils.buildLikeValue;
 import static org.sonar.db.WildcardPosition.BEFORE_AND_AFTER;
 
 public class SearchUsersQuery {
index 907ca1faa4bf4f27bf23b59d9af96c108653a11d..870058ab6c0be7730e68ebb53a84605fe51d303f 100644 (file)
@@ -30,7 +30,7 @@ import org.apache.commons.lang.StringUtils;
 import org.apache.ibatis.session.RowBounds;
 import org.sonar.api.utils.System2;
 import org.sonar.db.Dao;
-import org.sonar.db.DaoDatabaseUtils;
+import org.sonar.db.DaoUtils;
 import org.sonar.db.DbSession;
 import org.sonar.db.WildcardPosition;
 
@@ -108,7 +108,7 @@ public class GroupDao implements Dao {
     }
 
     String upperCasedNameQuery = StringUtils.upperCase(query, Locale.ENGLISH);
-    return DaoDatabaseUtils.buildLikeValue(upperCasedNameQuery, WildcardPosition.BEFORE_AND_AFTER);
+    return DaoUtils.buildLikeValue(upperCasedNameQuery, WildcardPosition.BEFORE_AND_AFTER);
   }
 
   public List<GroupDto> selectByOrganizationUuid(DbSession dbSession, String organizationUuid) {
index 6bd36c6288ae736423785f3f26ef520db044cb73..e09497c060babae476369692890f0a784fa5ac92 100644 (file)
@@ -29,7 +29,7 @@ import org.apache.commons.lang.StringUtils;
 import static com.google.common.base.MoreObjects.firstNonNull;
 import static com.google.common.base.Preconditions.checkArgument;
 import static java.util.Objects.requireNonNull;
-import static org.sonar.db.DaoDatabaseUtils.buildLikeValue;
+import static org.sonar.db.DaoUtils.buildLikeValue;
 import static org.sonar.db.WildcardPosition.BEFORE_AND_AFTER;
 
 public class UserMembershipQuery {
index f10b38becf1f4d9013b7914489dd3bebeaf81a60..714e281c2a34ad6621d06083170fd56f82e6e14f 100644 (file)
     )
   </insert>
 
-  <update id="resetAllToPendingStatus" parameterType="map">
-    update ce_queue set
-      status='PENDING',
-      started_at=NULL,
-      updated_at=#{updatedAt,jdbcType=BIGINT}
-    where
-      status &lt;&gt; 'PENDING'
-  </update>
-
   <update id="resetToPendingForWorker">
     update ce_queue set
       status='PENDING',
index 2e65de2cce97d7dba9a77940170414b1e49e04c0..942b031c50bc68f007556367ea1de36ffce86b00 100644 (file)
     c.text_value as "value"
   </sql>
 
-  <select id="selectByTaskUuid" parameterType="map" resultType="CeTaskCharacteristic">
-    SELECT
-      <include refid="columns"/>
-    FROM 
-      ce_task_characteristics c 
-    WHERE
-      c.task_uuid = #{taskUuid,jdbcType=VARCHAR}
-  </select>
-
   <select id="selectByTaskUuids" parameterType="map" resultType="CeTaskCharacteristic">
     SELECT
       <include refid="columns"/>
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/DaoDatabaseUtilsTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/DaoDatabaseUtilsTest.java
deleted file mode 100644 (file)
index 2116982..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 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.db;
-
-import org.junit.Test;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.sonar.db.DaoDatabaseUtils.buildLikeValue;
-import static org.sonar.db.WildcardPosition.AFTER;
-import static org.sonar.db.WildcardPosition.BEFORE;
-import static org.sonar.db.WildcardPosition.BEFORE_AND_AFTER;
-
-public class DaoDatabaseUtilsTest {
-
-  @Test
-  public void buildLikeValue_with_special_characters() {
-    String escapedValue = "like-\\/_/%//-value";
-    String wildcard = "%";
-
-    assertThat(buildLikeValue("like-\\_%/-value", BEFORE)).isEqualTo(wildcard + escapedValue);
-    assertThat(buildLikeValue("like-\\_%/-value", AFTER)).isEqualTo(escapedValue + wildcard);
-    assertThat(buildLikeValue("like-\\_%/-value", BEFORE_AND_AFTER)).isEqualTo(wildcard + escapedValue + wildcard);
-  }
-
-
-}
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/DaoUtilsTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/DaoUtilsTest.java
new file mode 100644 (file)
index 0000000..c3748d2
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 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.db;
+
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.sonar.db.DaoUtils.buildLikeValue;
+import static org.sonar.db.WildcardPosition.AFTER;
+import static org.sonar.db.WildcardPosition.BEFORE;
+import static org.sonar.db.WildcardPosition.BEFORE_AND_AFTER;
+
+public class DaoUtilsTest {
+
+  @Test
+  public void buildLikeValue_with_special_characters() {
+    String escapedValue = "like-\\/_/%//-value";
+    String wildcard = "%";
+
+    assertThat(buildLikeValue("like-\\_%/-value", BEFORE)).isEqualTo(wildcard + escapedValue);
+    assertThat(buildLikeValue("like-\\_%/-value", AFTER)).isEqualTo(escapedValue + wildcard);
+    assertThat(buildLikeValue("like-\\_%/-value", BEFORE_AND_AFTER)).isEqualTo(wildcard + escapedValue + wildcard);
+  }
+
+
+}
index d200ea6eea8e45ffe4b8325d63df8d6aee476efb..96000fd040a124b1dd5733f5bacd53cac09a17bc 100644 (file)
@@ -201,63 +201,6 @@ public class CeQueueDaoTest {
     assertThat(underTest.selectByUuid(db.getSession(), TASK_UUID_1).isPresent()).isFalse();
   }
 
-  @Test
-  public void test_resetAllToPendingStatus() {
-    insert(TASK_UUID_1, COMPONENT_UUID_1, PENDING);
-    insert(TASK_UUID_2, COMPONENT_UUID_1, IN_PROGRESS);
-    insert(TASK_UUID_3, COMPONENT_UUID_1, IN_PROGRESS);
-    verifyCeQueueStatuses(TASK_UUID_1, PENDING, TASK_UUID_2, IN_PROGRESS, TASK_UUID_3, IN_PROGRESS);
-
-    underTest.resetAllToPendingStatus(db.getSession());
-    db.getSession().commit();
-
-    verifyCeQueueStatuses(TASK_UUID_1, PENDING, TASK_UUID_2, PENDING, TASK_UUID_3, PENDING);
-  }
-
-  @Test
-  public void resetAllToPendingStatus_updates_updatedAt() {
-    long now = 1_334_333L;
-    insert(TASK_UUID_1, COMPONENT_UUID_1, IN_PROGRESS);
-    insert(TASK_UUID_2, COMPONENT_UUID_1, IN_PROGRESS);
-    mockSystem2ForSingleCall(now);
-
-    underTestWithSystem2Mock.resetAllToPendingStatus(db.getSession());
-
-    assertThat(underTest.selectByUuid(db.getSession(), TASK_UUID_1).get().getUpdatedAt()).isEqualTo(now);
-    assertThat(underTest.selectByUuid(db.getSession(), TASK_UUID_2).get().getUpdatedAt()).isEqualTo(now);
-  }
-
-  @Test
-  public void resetAllToPendingStatus_resets_startedAt() {
-    assertThat(insert(TASK_UUID_1, COMPONENT_UUID_1, PENDING).getStartedAt()).isNull();
-    assertThat(underTest.peek(db.getSession(), WORKER_UUID_1, MAX_EXECUTION_COUNT).get().getUuid()).isEqualTo(TASK_UUID_1);
-    assertThat(underTest.selectByUuid(db.getSession(), TASK_UUID_1).get().getStartedAt()).isNotNull();
-
-    underTest.resetAllToPendingStatus(db.getSession());
-
-    assertThat(underTest.selectByUuid(db.getSession(), TASK_UUID_1).get().getStartedAt()).isNull();
-  }
-
-  @Test
-  public void resetAllToPendingStatus_does_not_reset_workerUuid_nor_executionCount() {
-    CeQueueDto dto = new CeQueueDto()
-      .setUuid(TASK_UUID_1)
-      .setTaskType(CeTaskTypes.REPORT)
-      .setComponentUuid(COMPONENT_UUID_1)
-      .setStatus(IN_PROGRESS)
-      .setSubmitterLogin(SUBMITTER_LOGIN)
-      .setWorkerUuid(WORKER_UUID_1)
-      .setExecutionCount(EXECUTION_COUNT);
-    underTest.insert(db.getSession(), dto);
-    db.commit();
-
-    underTest.resetAllToPendingStatus(db.getSession());
-
-    CeQueueDto saved = underTest.selectByUuid(db.getSession(), TASK_UUID_1).get();
-    assertThat(saved.getWorkerUuid()).isEqualTo(WORKER_UUID_1);
-    assertThat(saved.getExecutionCount()).isEqualTo(EXECUTION_COUNT);
-  }
-
   @Test
   public void resetToPendingForWorker_resets_status_of_non_pending_tasks_only_for_specified_workerUuid() {
     long startedAt = 2_099_888L;
index 5a77aa22f636f2e4123d3d008133d38861b78349..a49bdc84526f3ec8a74ee410e279b051a1790d82 100644 (file)
@@ -38,29 +38,6 @@ public class CeTaskCharacteristicDaoTest {
 
   private CeTaskCharacteristicDao underTest = new CeTaskCharacteristicDao();
 
-  @Test
-  public void selectByTaskUuid() {
-    CeTaskCharacteristicDto dto1 = new CeTaskCharacteristicDto()
-      .setKey("key1")
-      .setValue("value1")
-      .setUuid("uuid1")
-      .setTaskUuid("task");
-    CeTaskCharacteristicDto dto2 = new CeTaskCharacteristicDto()
-      .setKey("key2")
-      .setValue("value2")
-      .setUuid("uuid2")
-      .setTaskUuid("task");
-    underTest.insert(dbTester.getSession(), asList(dto1, dto2));
-    dbTester.getSession().commit();
-
-    assertThat(underTest.selectByTaskUuid(dbTester.getSession(), "task"))
-      .extracting(CeTaskCharacteristicDto::getTaskUuid, CeTaskCharacteristicDto::getUuid, CeTaskCharacteristicDto::getKey, CeTaskCharacteristicDto::getValue)
-      .containsOnly(
-        tuple("task", "uuid1", "key1", "value1"),
-        tuple("task", "uuid2", "key2", "value2"));
-    assertThat(underTest.selectByTaskUuid(dbTester.getSession(), "unknown")).isEmpty();
-  }
-
   @Test
   public void selectByTaskUuids() {
     CeTaskCharacteristicDto dto1 = new CeTaskCharacteristicDto()
index 943c878516122ba0b89cea81737c24c80075a36e..680a3b851f0e4fbaecb73e45e8b049e50f3c4a7c 100644 (file)
@@ -49,8 +49,6 @@ public interface CeQueue {
    * <p>
    * This method is equivalent to calling {@link #massSubmit(Collection, SubmitOption...)} with a singleton list and no
    * option.
-   *
-   * @throws IllegalStateException If submits are paused (see {@link #isSubmitPaused()})
    */
   CeTask submit(CeTaskSubmit submission);
 
@@ -69,8 +67,6 @@ public interface CeQueue {
    * <p>
    * This method will perform significantly better that calling {@link #submit(CeTaskSubmit, SubmitOption...)} in a loop.
    * </p>
-   *
-   * @throws IllegalStateException If submits are paused (see {@link #isSubmitPaused()})
    */
   List<CeTask> massSubmit(Collection<CeTaskSubmit> submissions, SubmitOption... options);
 
@@ -90,12 +86,6 @@ public interface CeQueue {
    */
   int cancelAll();
 
-  void pauseSubmit();
-
-  void resumeSubmit();
-
-  boolean isSubmitPaused();
-
   enum SubmitOption {
     UNIQUE_QUEUE_PER_COMPONENT
   }
index 4576f2a21010b5b72040597320170011c9946ae4..dcb5b78833ccaa37f3bebd16e921a94724d2449c 100644 (file)
@@ -30,7 +30,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
-import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
 import javax.annotation.Nonnull;
@@ -59,9 +58,6 @@ public class CeQueueImpl implements CeQueue {
   private final UuidFactory uuidFactory;
   private final DefaultOrganizationProvider defaultOrganizationProvider;
 
-  // state
-  private AtomicBoolean submitPaused = new AtomicBoolean(false);
-
   public CeQueueImpl(DbClient dbClient, UuidFactory uuidFactory, DefaultOrganizationProvider defaultOrganizationProvider) {
     this.dbClient = dbClient;
     this.uuidFactory = uuidFactory;
@@ -84,7 +80,6 @@ public class CeQueueImpl implements CeQueue {
   }
 
   private java.util.Optional<CeTask> submit(CeTaskSubmit submission, EnumSet<SubmitOption> submitOptions) {
-    checkState(!submitPaused.get(), "Compute Engine does not currently accept new tasks");
     try (DbSession dbSession = dbClient.openSession(false)) {
       if (submitOptions.contains(UNIQUE_QUEUE_PER_COMPONENT)
         && submission.getComponentUuid() != null
@@ -100,7 +95,6 @@ public class CeQueueImpl implements CeQueue {
 
   @Override
   public List<CeTask> massSubmit(Collection<CeTaskSubmit> submissions, SubmitOption... options) {
-    checkState(!submitPaused.get(), "Compute Engine does not currently accept new tasks");
     if (submissions.isEmpty()) {
       return Collections.emptyList();
     }
@@ -226,21 +220,6 @@ public class CeQueueImpl implements CeQueue {
     dbSession.commit();
   }
 
-  @Override
-  public void pauseSubmit() {
-    this.submitPaused.set(true);
-  }
-
-  @Override
-  public void resumeSubmit() {
-    this.submitPaused.set(false);
-  }
-
-  @Override
-  public boolean isSubmitPaused() {
-    return submitPaused.get();
-  }
-
   private static class CeQueueDtoToCeTask implements Function<CeQueueDto, CeTask> {
     private final String defaultOrganizationUuid;
     private final Map<String, ComponentDto> componentDtoByUuid;
index 5ed3ab13ae1959ed44a6446141c5b7429e8d311f..1fc5caff7e36f007b3f11c2db40b51c079ccf4f6 100644 (file)
@@ -188,16 +188,6 @@ public class CeQueueImplTest {
       .contains(task.getUuid());
   }
 
-  @Test
-  public void submit_fails_with_ISE_if_paused() {
-    underTest.pauseSubmit();
-
-    expectedException.expect(IllegalStateException.class);
-    expectedException.expectMessage("Compute Engine does not currently accept new tasks");
-
-    submit(CeTaskTypes.REPORT, "PROJECT_1");
-  }
-
   @Test
   public void massSubmit_returns_tasks_for_each_CeTaskSubmit_populated_from_CeTaskSubmit_and_creates_CeQueue_row_for_each() {
     CeTaskSubmit taskSubmit1 = createTaskSubmit(CeTaskTypes.REPORT, "PROJECT_1", "rob");
@@ -393,15 +383,6 @@ public class CeQueueImplTest {
     assertThat(history.isPresent()).isFalse();
   }
 
-  @Test
-  public void pause_and_resume_submits() {
-    assertThat(underTest.isSubmitPaused()).isFalse();
-    underTest.pauseSubmit();
-    assertThat(underTest.isSubmitPaused()).isTrue();
-    underTest.resumeSubmit();
-    assertThat(underTest.isSubmitPaused()).isFalse();
-  }
-
   private void verifyCeTask(CeTaskSubmit taskSubmit, CeTask task, @Nullable ComponentDto componentDto) {
     if (componentDto == null) {
       assertThat(task.getOrganizationUuid()).isEqualTo(defaultOrganizationProvider.get().getUuid());
index ac2717ddedd0f72b689ddd933d61ceeb6c6fa897..0a92579795bdd411a5a2c3e4af09ab6e246fa217 100644 (file)
@@ -54,13 +54,14 @@ import org.sonar.server.permission.PermissionTemplateService;
 import org.sonar.server.tester.UserSessionRule;
 
 import static java.lang.String.format;
+import static java.util.Collections.singletonList;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.tuple;
 import static org.junit.Assert.fail;
-import static org.mockito.ArgumentMatchers.isNull;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.isNull;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyZeroInteractions;
@@ -112,7 +113,7 @@ public class ReportSubmitterTest {
     when(componentUpdater.create(any(), any(), any())).thenReturn(project);
     when(permissionTemplateService.wouldUserHaveScanPermissionWithDefaultTemplate(any(), eq(defaultOrganizationUuid), any(), eq(PROJECT_KEY),
       eq(Qualifiers.PROJECT)))
-        .thenReturn(true);
+      .thenReturn(true);
 
     Map<String, String> taskCharacteristics = new HashMap<>();
     taskCharacteristics.put("incremental", "true");
@@ -124,7 +125,7 @@ public class ReportSubmitterTest {
     verify(queue).submit(submittedTask.capture());
     String taskUuid = submittedTask.getValue().getUuid();
 
-    List<CeTaskCharacteristicDto> insertedCharacteristics = db.getDbClient().ceTaskCharacteristicsDao().selectByTaskUuid(db.getSession(), taskUuid);
+    List<CeTaskCharacteristicDto> insertedCharacteristics = db.getDbClient().ceTaskCharacteristicsDao().selectByTaskUuids(db.getSession(), singletonList(taskUuid));
     assertThat(insertedCharacteristics)
       .extracting(CeTaskCharacteristicDto::getKey, CeTaskCharacteristicDto::getValue)
       .containsOnly(tuple("incremental", "true"), tuple("pr", "mypr"));
@@ -158,7 +159,7 @@ public class ReportSubmitterTest {
     when(componentUpdater.create(any(), any(), isNull())).thenReturn(createdProject);
     when(
       permissionTemplateService.wouldUserHaveScanPermissionWithDefaultTemplate(any(), eq(organization.getUuid()), any(), eq(PROJECT_KEY), eq(Qualifiers.PROJECT)))
-        .thenReturn(true);
+      .thenReturn(true);
     when(permissionTemplateService.hasDefaultTemplateWithPermissionOnProjectCreator(any(), eq(organization.getUuid()), any())).thenReturn(true);
 
     underTest.submit(organization.getKey(), PROJECT_KEY, null, PROJECT_NAME, IOUtils.toInputStream("{binary}"));
@@ -179,7 +180,7 @@ public class ReportSubmitterTest {
     when(componentUpdater.create(any(), any(), isNull())).thenReturn(createdProject);
     when(permissionTemplateService.wouldUserHaveScanPermissionWithDefaultTemplate(any(), eq(defaultOrganizationUuid), any(),
       eq(PROJECT_KEY), eq(Qualifiers.PROJECT)))
-        .thenReturn(true);
+      .thenReturn(true);
     when(permissionTemplateService.hasDefaultTemplateWithPermissionOnProjectCreator(any(), eq(defaultOrganizationUuid), any())).thenReturn(false);
 
     underTest.submit(defaultOrganizationKey, PROJECT_KEY, null, PROJECT_NAME, IOUtils.toInputStream("{binary}"));
@@ -198,7 +199,7 @@ public class ReportSubmitterTest {
     when(componentUpdater.create(any(), any(), any())).thenReturn(project);
     when(permissionTemplateService.wouldUserHaveScanPermissionWithDefaultTemplate(any(), eq(defaultOrganizationUuid), any(),
       eq(PROJECT_KEY), eq(Qualifiers.PROJECT)))
-        .thenReturn(true);
+      .thenReturn(true);
 
     underTest.submit(defaultOrganizationKey, PROJECT_KEY, null, PROJECT_NAME, IOUtils.toInputStream("{binary}"));
 
@@ -289,7 +290,7 @@ public class ReportSubmitterTest {
     } catch (BadRequestException e) {
       assertThat(e.errors()).contains(
         format("The project '%s' is already defined in SonarQube but as a module of project '%s'. " +
-          "If you really want to stop directly analysing project '%s', please first delete it from SonarQube and then relaunch the analysis of project '%s'.",
+            "If you really want to stop directly analysing project '%s', please first delete it from SonarQube and then relaunch the analysis of project '%s'.",
           module.getKey(), project.getKey(), project.getKey(), module.getKey()));
     }
   }