]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-8092 do not rely on updated-timestamp for indexing anymore
authorDaniel Schwarz <daniel.schwarz@sonarsource.com>
Tue, 21 Feb 2017 16:49:27 +0000 (17:49 +0100)
committerDaniel Schwarz <bartfastiel@users.noreply.github.com>
Fri, 24 Feb 2017 16:21:23 +0000 (17:21 +0100)
42 files changed:
server/sonar-server/src/main/java/org/sonar/server/es/EsClient.java
server/sonar-server/src/main/java/org/sonar/server/issue/IssueStorage.java
server/sonar-server/src/main/java/org/sonar/server/issue/ServerIssueStorage.java
server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueIndexer.java
server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueResultSetIterator.java
server/sonar-server/src/main/java/org/sonar/server/measure/index/ProjectMeasuresIndexer.java
server/sonar-server/src/main/java/org/sonar/server/permission/index/PermissionIndexer.java
server/sonar-server/src/main/java/org/sonar/server/source/index/FileSourcesUpdaterHelper.java
server/sonar-server/src/main/java/org/sonar/server/test/index/TestIndexer.java
server/sonar-server/src/main/java/org/sonar/server/test/index/TestResultSetIterator.java
server/sonar-server/src/main/java/org/sonar/server/user/index/UserIndexer.java
server/sonar-server/src/main/java/org/sonar/server/user/index/UserResultSetIterator.java
server/sonar-server/src/main/java/org/sonar/server/view/index/ViewIndexer.java
server/sonar-server/src/test/java/org/sonar/server/batch/IssuesActionTest.java
server/sonar-server/src/test/java/org/sonar/server/component/ws/SearchProjectsActionTest.java
server/sonar-server/src/test/java/org/sonar/server/issue/IssueUpdaterTest.java
server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexDebtTest.java
server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexTest.java
server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexerTest.java
server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueResultSetIteratorTest.java
server/sonar-server/src/test/java/org/sonar/server/issue/ws/AddCommentActionTest.java
server/sonar-server/src/test/java/org/sonar/server/issue/ws/BulkChangeActionTest.java
server/sonar-server/src/test/java/org/sonar/server/issue/ws/DoTransitionActionTest.java
server/sonar-server/src/test/java/org/sonar/server/issue/ws/SetSeverityActionTest.java
server/sonar-server/src/test/java/org/sonar/server/issue/ws/SetTypeActionTest.java
server/sonar-server/src/test/java/org/sonar/server/measure/index/ProjectMeasuresIndexTest.java
server/sonar-server/src/test/java/org/sonar/server/measure/index/ProjectMeasuresIndexerTest.java
server/sonar-server/src/test/java/org/sonar/server/permission/index/PermissionIndexerTest.java
server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/CreateActionTest.java
server/sonar-server/src/test/java/org/sonar/server/rule/index/RuleResultSetIteratorTest.java
server/sonar-server/src/test/java/org/sonar/server/test/index/TestIndexerTest.java
server/sonar-server/src/test/java/org/sonar/server/test/index/TestResultSetIteratorTest.java
server/sonar-server/src/test/java/org/sonar/server/test/ws/ListActionTest.java
server/sonar-server/src/test/java/org/sonar/server/user/UserUpdaterTest.java
server/sonar-server/src/test/java/org/sonar/server/user/index/UserIndexerTest.java
server/sonar-server/src/test/java/org/sonar/server/user/index/UserResultSetIteratorTest.java
server/sonar-server/src/test/java/org/sonar/server/user/ws/ChangePasswordActionTest.java
server/sonar-server/src/test/java/org/sonar/server/user/ws/CreateActionTest.java
server/sonar-server/src/test/java/org/sonar/server/user/ws/DeactivateActionTest.java
server/sonar-server/src/test/java/org/sonar/server/user/ws/SearchActionTest.java
server/sonar-server/src/test/java/org/sonar/server/user/ws/UpdateActionTest.java
server/sonar-server/src/test/java/org/sonar/server/view/index/ViewIndexerTest.java

index b8886eec6d3494004698c91437b0b4babbdbcf45..94ea7f0e1bf5f1541a43a9fc4450dcd1860801b5 100644 (file)
@@ -205,11 +205,11 @@ public class EsClient implements Closeable {
   /**
    * Checks whether there is any document in any mentioned type.
    */
-  public boolean isEmpty(IndexTypeId... indexType) {
+  public boolean isEmpty(IndexTypeId indexType) {
     return count(indexType) <= 0;
   }
 
-  private long count(IndexTypeId... indexType) {
+  private long count(IndexTypeId indexType) {
     return prepareSearch(indexType).setSize(0).get().getHits().getTotalHits();
   }
 
index 1aacf9eb27c0399e35a1934506db57f47c327e4b..10a867f9199706f0ef814d5e88f7594e21cd6511 100644 (file)
@@ -85,10 +85,10 @@ public abstract class IssueStorage {
     long now = system2.now();
     List<DefaultIssue> toBeUpdated = batchInsertAndReturnIssuesToUpdate(session, issues, now);
     update(toBeUpdated, now);
-    doAfterSave();
+    doAfterSave(issues);
   }
 
-  protected void doAfterSave() {
+  protected void doAfterSave(Iterable<DefaultIssue> issues) {
     // overridden on server-side to index ES
   }
 
index 988ac82324b03584decea9c05b5de956c534f4b1..216e45d0ac2aba68e4051986f2d7a3d887a79f5d 100644 (file)
@@ -60,8 +60,8 @@ public class ServerIssueStorage extends IssueStorage {
   }
 
   @Override
-  protected void doAfterSave() {
-    indexer.index();
+  protected void doAfterSave(Iterable<DefaultIssue> issues) {
+    indexer.index(issues);
   }
 
   protected ComponentDto component(DbSession session, DefaultIssue issue) {
index fb45fef02a55376d7c60822e3dcba26d95169b53..c549f046fd4739583f171da89817e485431ddf3e 100644 (file)
@@ -28,10 +28,8 @@ import org.elasticsearch.action.bulk.BulkRequestBuilder;
 import org.elasticsearch.action.index.IndexRequest;
 import org.elasticsearch.action.search.SearchRequestBuilder;
 import org.sonar.api.resources.Qualifiers;
-import org.sonar.api.utils.System2;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
-import org.sonar.server.es.BaseIndexer;
 import org.sonar.server.es.BulkIndexer;
 import org.sonar.server.es.EsClient;
 import org.sonar.server.es.EsUtils;
@@ -44,20 +42,20 @@ import org.sonar.server.permission.index.NeedAuthorizationIndexer;
 import static org.elasticsearch.index.query.QueryBuilders.boolQuery;
 import static org.elasticsearch.index.query.QueryBuilders.termQuery;
 import static org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_PROJECT_UUID;
-import static org.sonar.server.issue.index.IssueIndexDefinition.FIELD_ISSUE_TECHNICAL_UPDATED_AT;
 import static org.sonar.server.issue.index.IssueIndexDefinition.INDEX_TYPE_ISSUE;
 
-public class IssueIndexer extends BaseIndexer implements ProjectIndexer, NeedAuthorizationIndexer, StartupIndexer {
+public class IssueIndexer implements ProjectIndexer, NeedAuthorizationIndexer, StartupIndexer {
 
   private static final String DELETE_ERROR_MESSAGE = "Fail to delete some issues of project [%s]";
   private static final int MAX_BATCH_SIZE = 1000;
   private static final AuthorizationScope AUTHORIZATION_SCOPE = new AuthorizationScope(INDEX_TYPE_ISSUE, project -> Qualifiers.PROJECT.equals(project.getQualifier()));
 
   private final DbClient dbClient;
+  private final EsClient esClient;
 
-  public IssueIndexer(System2 system2, DbClient dbClient, EsClient esClient) {
-    super(system2, esClient, 300, INDEX_TYPE_ISSUE, FIELD_ISSUE_TECHNICAL_UPDATED_AT);
+  public IssueIndexer(DbClient dbClient, EsClient esClient) {
     this.dbClient = dbClient;
+    this.esClient = esClient;
   }
 
   @Override
@@ -65,11 +63,6 @@ public class IssueIndexer extends BaseIndexer implements ProjectIndexer, NeedAut
     return AUTHORIZATION_SCOPE;
   }
 
-  @Override
-  protected long doIndex(long lastUpdatedAt) {
-    return doIndex(createBulkIndexer(false), lastUpdatedAt, null);
-  }
-
   @Override
   public Set<IndexTypeId> getIndexTypes() {
     return ImmutableSet.of(INDEX_TYPE_ISSUE);
@@ -77,11 +70,11 @@ public class IssueIndexer extends BaseIndexer implements ProjectIndexer, NeedAut
 
   @Override
   public void indexOnStartup() {
-    index();
+    doIndex(createBulkIndexer(true), (String) null);
   }
 
   public void indexAll() {
-    doIndex(createBulkIndexer(true), 0L, null);
+    doIndex(createBulkIndexer(false), (String) null);
   }
 
   @Override
@@ -93,7 +86,7 @@ public class IssueIndexer extends BaseIndexer implements ProjectIndexer, NeedAut
         // nothing to do, project key is not used in this index
         break;
       case NEW_ANALYSIS:
-        super.index(lastUpdatedAt -> doIndex(createBulkIndexer(false), lastUpdatedAt, projectUuid));
+        doIndex(createBulkIndexer(false), projectUuid);
         break;
       default:
         // defensive case
@@ -108,27 +101,21 @@ public class IssueIndexer extends BaseIndexer implements ProjectIndexer, NeedAut
     doIndex(createBulkIndexer(false), issues);
   }
 
-  private long doIndex(BulkIndexer bulk, long lastUpdatedAt, @Nullable String projectUuid) {
+  private void doIndex(BulkIndexer bulk, @Nullable String projectUuid) {
     try (DbSession dbSession = dbClient.openSession(false)) {
-      IssueResultSetIterator rowIt = IssueResultSetIterator.create(dbClient, dbSession, lastUpdatedAt, projectUuid);
-      long maxDate = doIndex(bulk, rowIt);
+      IssueResultSetIterator rowIt = IssueResultSetIterator.create(dbClient, dbSession, projectUuid);
+      doIndex(bulk, rowIt);
       rowIt.close();
-      return maxDate;
     }
   }
 
-  private static long doIndex(BulkIndexer bulk, Iterator<IssueDoc> issues) {
+  private static void doIndex(BulkIndexer bulk, Iterator<IssueDoc> issues) {
     bulk.start();
-    long maxDate = 0L;
     while (issues.hasNext()) {
       IssueDoc issue = issues.next();
       bulk.add(newIndexRequest(issue));
-
-      // it's more efficient to sort programmatically than in SQL on some databases (MySQL for instance)
-      maxDate = Math.max(maxDate, issue.getTechnicalUpdateDate().getTime());
     }
     bulk.stop();
-    return maxDate;
   }
 
   @Override
index 02700c28154e7f7acebfa839a5a4dd3a7ae1417c..8df279117fdf66e0f8dbd9109a29eb8fec177778 100644 (file)
@@ -88,8 +88,6 @@ class IssueResultSetIterator extends ResultSetIterator<IssueDoc> {
     "inner join projects p on p.uuid=i.component_uuid " +
     "inner join projects root on root.uuid=i.project_uuid";
 
-  private static final String SQL_AFTER_DATE = SQL_ALL + " where i.updated_at>?";
-
   private static final String PROJECT_FILTER = " AND root.uuid=?";
 
   private static final Splitter TAGS_SPLITTER = Splitter.on(',').trimResults().omitEmptyStrings();
@@ -100,18 +98,13 @@ class IssueResultSetIterator extends ResultSetIterator<IssueDoc> {
     super(stmt);
   }
 
-  static IssueResultSetIterator create(DbClient dbClient, DbSession session, long afterDate, @Nullable String projectUuid) {
+  static IssueResultSetIterator create(DbClient dbClient, DbSession session, @Nullable String projectUuid) {
     try {
-      String sql = afterDate > 0L ? SQL_AFTER_DATE : SQL_ALL;
+      String sql = SQL_ALL;
       sql += projectUuid == null ? "" : PROJECT_FILTER;
       PreparedStatement stmt = dbClient.getMyBatis().newScrollingSelectStatement(session, sql);
-      int index = 1;
-      if (afterDate > 0L) {
-        stmt.setLong(index, afterDate);
-        index++;
-      }
       if (projectUuid != null) {
-        stmt.setString(index, projectUuid);
+        stmt.setString(1, projectUuid);
       }
       return new IssueResultSetIterator(stmt);
     } catch (SQLException e) {
index c3e065072d7bc04750f2fd562fca5beb7ab05b69..06387b8b92e016d0d8dbeff4e262705465377a5c 100644 (file)
@@ -26,12 +26,10 @@ import java.util.Set;
 import javax.annotation.Nullable;
 import org.elasticsearch.action.index.IndexRequest;
 import org.sonar.api.resources.Qualifiers;
-import org.sonar.api.utils.System2;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.measure.ProjectMeasuresIndexerIterator;
 import org.sonar.db.measure.ProjectMeasuresIndexerIterator.ProjectMeasures;
-import org.sonar.server.es.BaseIndexer;
 import org.sonar.server.es.BulkIndexer;
 import org.sonar.server.es.EsClient;
 import org.sonar.server.es.IndexTypeId;
@@ -40,18 +38,18 @@ import org.sonar.server.es.StartupIndexer;
 import org.sonar.server.permission.index.AuthorizationScope;
 import org.sonar.server.permission.index.NeedAuthorizationIndexer;
 
-import static org.sonar.server.measure.index.ProjectMeasuresIndexDefinition.FIELD_ANALYSED_AT;
 import static org.sonar.server.measure.index.ProjectMeasuresIndexDefinition.INDEX_TYPE_PROJECT_MEASURES;
 
-public class ProjectMeasuresIndexer extends BaseIndexer implements ProjectIndexer, NeedAuthorizationIndexer, StartupIndexer {
+public class ProjectMeasuresIndexer implements ProjectIndexer, NeedAuthorizationIndexer, StartupIndexer {
 
   private static final AuthorizationScope AUTHORIZATION_SCOPE = new AuthorizationScope(INDEX_TYPE_PROJECT_MEASURES, project -> Qualifiers.PROJECT.equals(project.getQualifier()));
 
   private final DbClient dbClient;
+  private final EsClient esClient;
 
-  public ProjectMeasuresIndexer(System2 system2, DbClient dbClient, EsClient esClient) {
-    super(system2, esClient, 300, INDEX_TYPE_PROJECT_MEASURES, FIELD_ANALYSED_AT);
+  public ProjectMeasuresIndexer(DbClient dbClient, EsClient esClient) {
     this.dbClient = dbClient;
+    this.esClient = esClient;
   }
 
   @Override
@@ -61,7 +59,7 @@ public class ProjectMeasuresIndexer extends BaseIndexer implements ProjectIndexe
 
   @Override
   public void indexOnStartup() {
-    index();
+    doIndex(createBulkIndexer(false), (String) null);
   }
 
   @Override
@@ -69,11 +67,6 @@ public class ProjectMeasuresIndexer extends BaseIndexer implements ProjectIndexe
     return AUTHORIZATION_SCOPE;
   }
 
-  @Override
-  protected long doIndex(long lastUpdatedAt) {
-    return doIndex(createBulkIndexer(false), lastUpdatedAt, null);
-  }
-
   @Override
   public void indexProject(String projectUuid, Cause cause) {
     switch (cause) {
index a5496da3ab6f3decb2dd0a767c4f5adbde008703..1b54074bbea165b3a955e6173765f08d15573074 100644 (file)
@@ -27,6 +27,7 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 import java.util.concurrent.LinkedBlockingQueue;
@@ -34,7 +35,6 @@ import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 import org.elasticsearch.action.bulk.BulkRequestBuilder;
 import org.elasticsearch.action.index.IndexRequest;
-import org.elasticsearch.action.search.SearchResponse;
 import org.picocontainer.Startable;
 import org.sonar.api.utils.DateUtils;
 import org.sonar.core.util.stream.Collectors;
@@ -45,9 +45,11 @@ import org.sonar.server.es.EsClient;
 import org.sonar.server.es.EsUtils;
 import org.sonar.server.es.IndexTypeId;
 import org.sonar.server.es.ProjectIndexer;
+import org.sonar.server.es.StartupIndexer;
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery;
+import static org.sonar.core.util.stream.Collectors.toSet;
 
 /**
  * Manages the synchronization of indexes with authorization settings defined in database:
@@ -56,7 +58,7 @@ import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery;
  *   <li>delete project orphans from index</li>
  * </ul>
  */
-public class PermissionIndexer implements ProjectIndexer, Startable {
+public class PermissionIndexer implements ProjectIndexer, Startable, StartupIndexer {
 
   @VisibleForTesting
   static final int MAX_BATCH_SIZE = 1000;
@@ -82,32 +84,28 @@ public class PermissionIndexer implements ProjectIndexer, Startable {
     this.authorizationScopes = authorizationScopes;
   }
 
-  public void initializeOnStartup() {
-    LOG.info("Index authorization");
-    indexAllIfEmpty();
+  @Override
+  public Set<IndexTypeId> getIndexTypes() {
+    return authorizationScopes.stream()
+      .map(AuthorizationScope::getIndexType)
+      .collect(toSet(authorizationScopes.size()));
   }
 
-  public void indexAllIfEmpty() {
-    boolean isEmpty = false;
-    for (AuthorizationScope scope : authorizationScopes) {
-      isEmpty |= isAuthorizationTypeEmpty(scope.getIndexType());
-    }
-
-    if (isEmpty) {
-      Future<?> submit = executor.submit(() -> {
-        authorizationScopes.stream()
-          .map(AuthorizationScope::getIndexType)
-          .forEach(this::truncateAuthorizationType);
-
-        try (DbSession dbSession = dbClient.openSession(false)) {
-          index(new PermissionIndexerDao().selectAll(dbClient, dbSession));
-        }
-      });
-      try {
-        Uninterruptibles.getUninterruptibly(submit);
-      } catch (ExecutionException e) {
-        Throwables.propagate(e);
+  @Override
+  public void indexOnStartup() {
+    Future<?> submit = executor.submit(() -> {
+      authorizationScopes.stream()
+        .map(AuthorizationScope::getIndexType)
+        .forEach(this::truncateAuthorizationType);
+
+      try (DbSession dbSession = dbClient.openSession(false)) {
+        index(new PermissionIndexerDao().selectAll(dbClient, dbSession));
       }
+    });
+    try {
+      Uninterruptibles.getUninterruptibly(submit);
+    } catch (ExecutionException e) {
+      Throwables.propagate(e);
     }
   }
 
@@ -143,11 +141,6 @@ public class PermissionIndexer implements ProjectIndexer, Startable {
       .get());
   }
 
-  private boolean isAuthorizationTypeEmpty(IndexTypeId indexType) {
-    SearchResponse response = esClient.prepareSearch(indexType).setSize(0).get();
-    return response.getHits().getTotalHits() == 0;
-  }
-
   private void truncateAuthorizationType(IndexTypeId indexType) {
     BulkIndexer.delete(esClient, indexType.getIndex(), esClient.prepareSearch(indexType).setQuery(matchAllQuery()));
   }
index 1bb7b4d26287043af0f6ddaf039623189a64240c..469e0d96b36cc9895fe77c8b75fb0eab745e180d 100644 (file)
@@ -20,7 +20,6 @@
 package org.sonar.server.source.index;
 
 import com.google.common.base.Joiner;
-
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
 import java.util.ArrayList;
@@ -33,7 +32,6 @@ import org.sonar.db.DbSession;
 public class FileSourcesUpdaterHelper {
 
   private static final String SQL_ALL = "SELECT %s FROM file_sources WHERE data_type='%s' ";
-  private static final String AFTER_DATE_FILTER = " AND updated_at>?";
   private static final String PROJECT_FILTER = " AND project_uuid=?";
 
   private static final String[] FIELDS = {
@@ -48,31 +46,21 @@ public class FileSourcesUpdaterHelper {
     // only static stuff
   }
 
-  public static PreparedStatement preparedStatementToSelectFileSources(DbClient dbClient, DbSession session, String dataType, long afterDate, @Nullable String projectUuid)
+  public static PreparedStatement preparedStatementToSelectFileSources(DbClient dbClient, DbSession session, String dataType, @Nullable String projectUuid)
     throws SQLException {
-    String sql = createSQL(dataType, afterDate, projectUuid);
+    String sql = createSQL(dataType, projectUuid);
     // rows are big, so they are scrolled once at a time (one row in memory at a time)
     PreparedStatement stmt = dbClient.getMyBatis().newScrollingSingleRowSelectStatement(session, sql);
-    int index = 1;
-    if (afterDate > 0L) {
-      stmt.setLong(index, afterDate);
-      index++;
-    }
     if (projectUuid != null) {
-      stmt.setString(index, projectUuid);
+      stmt.setString(1, projectUuid);
     }
     return stmt;
   }
 
-  private static String createSQL(String dataType, long afterDate, @Nullable String projectUuid) {
+  private static String createSQL(String dataType, @Nullable String projectUuid) {
     StringBuilder sql = new StringBuilder(String.format(SQL_ALL, FIELDS_ONE_LINE, dataType));
-    if (afterDate > 0L || projectUuid != null) {
-      if (afterDate > 0L) {
-        sql.append(AFTER_DATE_FILTER);
-      }
-      if (projectUuid != null) {
-        sql.append(PROJECT_FILTER);
-      }
+    if (projectUuid != null) {
+      sql.append(PROJECT_FILTER);
     }
     return sql.toString();
   }
index 5dbf2207eee26bae391eb54d0f460f23b7458bec..8a8a84c3505e1edd37b9e13593bf77153b7b284d 100644 (file)
@@ -25,10 +25,8 @@ import java.util.Set;
 import javax.annotation.Nullable;
 import org.elasticsearch.action.search.SearchRequestBuilder;
 import org.elasticsearch.index.query.QueryBuilders;
-import org.sonar.api.utils.System2;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
-import org.sonar.server.es.BaseIndexer;
 import org.sonar.server.es.BulkIndexer;
 import org.sonar.server.es.EsClient;
 import org.sonar.server.es.IndexTypeId;
@@ -37,20 +35,20 @@ import org.sonar.server.es.StartupIndexer;
 import org.sonar.server.source.index.FileSourcesUpdaterHelper;
 
 import static org.sonar.server.test.index.TestIndexDefinition.FIELD_FILE_UUID;
-import static org.sonar.server.test.index.TestIndexDefinition.FIELD_UPDATED_AT;
 import static org.sonar.server.test.index.TestIndexDefinition.INDEX_TYPE_TEST;
 
 /**
  * Add to Elasticsearch index {@link TestIndexDefinition} the rows of
  * db table FILE_SOURCES of type TEST that are not indexed yet
  */
-public class TestIndexer extends BaseIndexer implements ProjectIndexer, StartupIndexer {
+public class TestIndexer implements ProjectIndexer, StartupIndexer {
 
   private final DbClient dbClient;
+  private final EsClient esClient;
 
-  public TestIndexer(System2 system2, DbClient dbClient, EsClient esClient) {
-    super(system2, esClient, 0L, INDEX_TYPE_TEST, FIELD_UPDATED_AT);
+  public TestIndexer(DbClient dbClient, EsClient esClient) {
     this.dbClient = dbClient;
+    this.esClient = esClient;
   }
 
   @Override
@@ -63,7 +61,7 @@ public class TestIndexer extends BaseIndexer implements ProjectIndexer, StartupI
         break;
       case NEW_ANALYSIS:
         deleteProject(projectUuid);
-        super.index(lastUpdatedAt -> doIndex(lastUpdatedAt, projectUuid));
+        doIndex(projectUuid, cause);
         break;
       default:
         // defensive case
@@ -78,7 +76,7 @@ public class TestIndexer extends BaseIndexer implements ProjectIndexer, StartupI
 
   @Override
   public void indexOnStartup() {
-    index();
+    doIndex(null, Cause.NEW_ANALYSIS);
   }
 
   public long index(Iterator<FileSourcesUpdaterHelper.Row> dbRows) {
@@ -86,18 +84,13 @@ public class TestIndexer extends BaseIndexer implements ProjectIndexer, StartupI
     return doIndex(bulk, dbRows);
   }
 
-  @Override
-  protected long doIndex(long lastUpdatedAt) {
-    return doIndex(lastUpdatedAt, null);
-  }
-
-  private long doIndex(long lastUpdatedAt, @Nullable String projectUuid) {
+  private long doIndex(@Nullable String projectUuid, Cause cause) {
     final BulkIndexer bulk = new BulkIndexer(esClient, INDEX_TYPE_TEST.getIndex());
-    bulk.setLarge(lastUpdatedAt == 0L);
+    bulk.setLarge(cause == Cause.NEW_ANALYSIS);
 
     DbSession dbSession = dbClient.openSession(false);
     try {
-      TestResultSetIterator rowIt = TestResultSetIterator.create(dbClient, dbSession, lastUpdatedAt, projectUuid);
+      TestResultSetIterator rowIt = TestResultSetIterator.create(dbClient, dbSession, projectUuid);
       long maxUpdatedAt = doIndex(bulk, rowIt);
       rowIt.close();
       return maxUpdatedAt;
index d87701ca7756cb098325565c86dab32d5ad20bb1..3afcdabadd5d707c30ad1cfb96c13f752f95a45c 100644 (file)
@@ -66,9 +66,9 @@ public class TestResultSetIterator extends ResultSetIterator<Row> {
     super(stmt);
   }
 
-  public static TestResultSetIterator create(DbClient dbClient, DbSession session, long afterDate, @Nullable String projectUuid) {
+  public static TestResultSetIterator create(DbClient dbClient, DbSession session, @Nullable String projectUuid) {
     try {
-      return new TestResultSetIterator(FileSourcesUpdaterHelper.preparedStatementToSelectFileSources(dbClient, session, FileSourceDto.Type.TEST, afterDate, projectUuid));
+      return new TestResultSetIterator(FileSourcesUpdaterHelper.preparedStatementToSelectFileSources(dbClient, session, FileSourceDto.Type.TEST, projectUuid));
     } catch (SQLException e) {
       throw new IllegalStateException("Fail to prepare SQL request to select all tests", e);
     }
index d915e83570982f51bb06c00e0a5fc54763fd1c8a..40375a41d0d41c9ef5060f40df41e8eb1c725c0e 100644 (file)
@@ -23,10 +23,8 @@ import com.google.common.collect.ImmutableSet;
 import java.util.Iterator;
 import java.util.Set;
 import org.elasticsearch.action.index.IndexRequest;
-import org.sonar.api.utils.System2;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
-import org.sonar.server.es.BaseIndexer;
 import org.sonar.server.es.BulkIndexer;
 import org.sonar.server.es.EsClient;
 import org.sonar.server.es.IndexTypeId;
@@ -34,13 +32,14 @@ import org.sonar.server.es.StartupIndexer;
 
 import static org.sonar.server.user.index.UserIndexDefinition.INDEX_TYPE_USER;
 
-public class UserIndexer extends BaseIndexer implements StartupIndexer {
+public class UserIndexer implements StartupIndexer {
 
   private final DbClient dbClient;
+  private final EsClient esClient;
 
-  public UserIndexer(System2 system2, DbClient dbClient, EsClient esClient) {
-    super(system2, esClient, 300, UserIndexDefinition.INDEX_TYPE_USER, UserIndexDefinition.FIELD_UPDATED_AT);
+  public UserIndexer(DbClient dbClient, EsClient esClient) {
     this.dbClient = dbClient;
+    this.esClient = esClient;
   }
 
   @Override
@@ -53,17 +52,15 @@ public class UserIndexer extends BaseIndexer implements StartupIndexer {
     index();
   }
 
-  @Override
-  protected long doIndex(long lastUpdatedAt) {
+  public void index() {
     final BulkIndexer bulk = new BulkIndexer(esClient, UserIndexDefinition.INDEX_TYPE_USER.getIndex());
-    bulk.setLarge(lastUpdatedAt == 0L);
+    bulk.setLarge(true);
 
     DbSession dbSession = dbClient.openSession(false);
     try {
-      UserResultSetIterator rowIt = UserResultSetIterator.create(dbClient, dbSession, lastUpdatedAt);
-      long maxUpdatedAt = doIndex(bulk, rowIt);
+      UserResultSetIterator rowIt = UserResultSetIterator.create(dbClient, dbSession);
+      doIndex(bulk, rowIt);
       rowIt.close();
-      return maxUpdatedAt;
     } finally {
       dbSession.close();
     }
index 4677af6cfed2858f9acaef75952df662bd16808f..ac028b2c671da8abe13231e8e5ddd07648577a89 100644 (file)
@@ -47,19 +47,13 @@ class UserResultSetIterator extends ResultSetIterator<UserDoc> {
 
   private static final String SQL_ALL = "select " + StringUtils.join(FIELDS, ",") + " from users u ";
 
-  private static final String SQL_AFTER_DATE = SQL_ALL + " where u.updated_at>?";
-
   private UserResultSetIterator(PreparedStatement stmt) throws SQLException {
     super(stmt);
   }
 
-  static UserResultSetIterator create(DbClient dbClient, DbSession session, long afterDate) {
+  static UserResultSetIterator create(DbClient dbClient, DbSession session) {
     try {
-      String sql = afterDate > 0L ? SQL_AFTER_DATE : SQL_ALL;
-      PreparedStatement stmt = dbClient.getMyBatis().newScrollingSelectStatement(session, sql);
-      if (afterDate > 0L) {
-        stmt.setLong(1, afterDate);
-      }
+      PreparedStatement stmt = dbClient.getMyBatis().newScrollingSelectStatement(session, SQL_ALL);
       return new UserResultSetIterator(stmt);
     } catch (SQLException e) {
       throw new IllegalStateException("Fail to prepare SQL request to select all users", e);
index bb62e3a00e8ce37326a5e48e8468b12e4e9d3b6f..d2e6a0e2faea5f9d6731379f8c3b984705f9a77c 100644 (file)
@@ -24,12 +24,10 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import org.elasticsearch.action.index.IndexRequest;
-import org.sonar.api.utils.System2;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbSession;
 import org.sonar.db.component.ComponentDto;
 import org.sonar.db.component.UuidWithProjectUuidDto;
-import org.sonar.server.es.BaseIndexer;
 import org.sonar.server.es.BulkIndexer;
 import org.sonar.server.es.EsClient;
 import org.sonar.server.es.IndexTypeId;
@@ -38,13 +36,14 @@ import org.sonar.server.es.StartupIndexer;
 import static com.google.common.collect.Maps.newHashMap;
 import static org.sonar.server.view.index.ViewIndexDefinition.INDEX_TYPE_VIEW;
 
-public class ViewIndexer extends BaseIndexer implements StartupIndexer {
+public class ViewIndexer implements StartupIndexer {
 
   private final DbClient dbClient;
+  private final EsClient esClient;
 
-  public ViewIndexer(System2 system2, DbClient dbClient, EsClient esClient) {
-    super(system2, esClient, 300, ViewIndexDefinition.INDEX_TYPE_VIEW, "updatedAt");
+  public ViewIndexer(DbClient dbClient, EsClient esClient) {
     this.dbClient = dbClient;
+    this.esClient = esClient;
   }
 
   @Override
@@ -53,34 +52,14 @@ public class ViewIndexer extends BaseIndexer implements StartupIndexer {
   }
 
   @Override
-  public void indexOnStartup() {
-    index();
-  }
-
-  /**
-   * Index all views if the index is empty (Only used on startup).
-   * It's currently not possible to index only data from db that are not existing in the index because we have no way to last when the structure of a view is changed :
-   * - Either the definition has changed -> No updated at column in the projects table,
-   * - Either the view is defined by a regex -> A new analysed project automatically steps into the view.
-   * <p/>
-   * The views lookup cache will not be cleared
-   */
-  @Override
-  protected long doIndex(long lastUpdatedAt) {
-    long count = esClient.prepareCount(ViewIndexDefinition.INDEX_TYPE_VIEW.getIndex()).setTypes(ViewIndexDefinition.INDEX_TYPE_VIEW.getType()).get().getCount();
-    if (count == 0) {
-      DbSession dbSession = dbClient.openSession(false);
-      try {
-        Map<String, String> viewAndProjectViewUuidMap = newHashMap();
-        for (UuidWithProjectUuidDto uuidWithProjectUuidDto : dbClient.componentDao().selectAllViewsAndSubViews(dbSession)) {
-          viewAndProjectViewUuidMap.put(uuidWithProjectUuidDto.getUuid(), uuidWithProjectUuidDto.getProjectUuid());
-        }
-        index(dbSession, viewAndProjectViewUuidMap, false);
-      } finally {
-        dbSession.close();
+  public void indexOnStartup(Set<IndexType> emptyIndexTypes) {
+    try (DbSession dbSession = dbClient.openSession(false)) {
+      Map<String, String> viewAndProjectViewUuidMap = newHashMap();
+      for (UuidWithProjectUuidDto uuidWithProjectUuidDto : dbClient.componentDao().selectAllViewsAndSubViews(dbSession)) {
+        viewAndProjectViewUuidMap.put(uuidWithProjectUuidDto.getUuid(), uuidWithProjectUuidDto.getProjectUuid());
       }
+      index(dbSession, viewAndProjectViewUuidMap, false);
     }
-    return 0L;
   }
 
   /**
index 90afee6c4a6c4c678dbbfc7969366ef87e9b4542..40cd8f377f91e0b6f98c0d4163c4e9ad9b0238ed 100644 (file)
@@ -76,7 +76,7 @@ public class IssuesActionTest {
   @Rule
   public UserSessionRule userSessionRule = UserSessionRule.standalone();
 
-  private IssueIndexer issueIndexer = new IssueIndexer(system2, db.getDbClient(), es.client());
+  private IssueIndexer issueIndexer = new IssueIndexer(db.getDbClient(), es.client());
   private PermissionIndexerTester authorizationIndexerTester = new PermissionIndexerTester(es, issueIndexer);
   private ServerFileSystem fs = mock(ServerFileSystem.class);
   private WsTester tester;
index f6561431c87203e975162093b42699f5fe7c6949..7e44228fe57f6d62d3413055971f0469156de6ce 100644 (file)
@@ -113,7 +113,7 @@ public class SearchProjectsActionTest {
   private DbClient dbClient = db.getDbClient();
   private DbSession dbSession = db.getSession();
 
-  private PermissionIndexerTester authorizationIndexerTester = new PermissionIndexerTester(es, new ProjectMeasuresIndexer(System2.INSTANCE, dbClient, es.client()));
+  private PermissionIndexerTester authorizationIndexerTester = new PermissionIndexerTester(es, new ProjectMeasuresIndexer(dbClient, es.client()));
   private ProjectMeasuresIndex index = new ProjectMeasuresIndex(es.client(), new AuthorizationTypeSupport(userSession));
   private ProjectMeasuresQueryValidator queryValidator = new ProjectMeasuresQueryValidator(dbClient);
 
index 3ec67f577e1f0d56307abfe630cbc32deba50afc..14b7a155e2774b441c06be6077a7da6c6c210ec9 100644 (file)
@@ -76,7 +76,7 @@ public class IssueUpdaterTest {
   private ArgumentCaptor<IssueChangeNotification> notificationArgumentCaptor = ArgumentCaptor.forClass(IssueChangeNotification.class);
 
   private IssueUpdater underTest = new IssueUpdater(dbClient,
-    new ServerIssueStorage(system2, new DefaultRuleFinder(dbClient), dbClient, new IssueIndexer(system2, dbClient, esTester.client())),
+    new ServerIssueStorage(system2, new DefaultRuleFinder(dbClient), dbClient, new IssueIndexer(dbClient, esTester.client())),
     notificationManager);
 
   @Test
index 6c9e7a87aaeaa5e2fd981e2f014cef56719c4ff1..47f7f4d822bec4b9d770e3535b18ef3d4d3795fa 100644 (file)
@@ -66,7 +66,7 @@ public class IssueIndexDebtTest {
 
   private System2 system2 = System2.INSTANCE;
   private IssueIndex index;
-  private IssueIndexer issueIndexer = new IssueIndexer(system2, null, tester.client());
+  private IssueIndexer issueIndexer = new IssueIndexer(null, tester.client());
   private PermissionIndexerTester authorizationIndexerTester = new PermissionIndexerTester(tester, issueIndexer);
 
   @Before
index a0b31e5f8e582806c167c7f62a7e7a8b9ca1e114..48272c388a4cec0db33078f95d1de569f5594535 100644 (file)
@@ -85,8 +85,8 @@ public class IssueIndexTest {
   public ExpectedException expectedException = ExpectedException.none();
 
   private IssueIndex underTest;
-  private IssueIndexer issueIndexer = new IssueIndexer(system2, null, tester.client());
-  private ViewIndexer viewIndexer = new ViewIndexer(system2, null, tester.client());
+  private IssueIndexer issueIndexer = new IssueIndexer(tester.client(), new IssueIteratorFactory(null));
+  private ViewIndexer viewIndexer = new ViewIndexer(null, tester.client());
   private PermissionIndexerTester authorizationIndexerTester = new PermissionIndexerTester(tester, issueIndexer);
 
   @Before
index c1ae634073563aa4f70fed77b8773aff80368ba5..fbeba01d5e21f249abc8fc47757134a0e9e319fe 100644 (file)
@@ -52,12 +52,12 @@ public class IssueIndexerTest {
   @Rule
   public DbTester dbTester = DbTester.create(system2);
 
-  private IssueIndexer underTest = new IssueIndexer(system2, dbTester.getDbClient(), esTester.client());
+  private IssueIndexer underTest = new IssueIndexer(dbTester.getDbClient(), esTester.client());
 
   @Test
   public void index_on_startup() {
     IssueIndexer indexer = spy(underTest);
-    doNothing().when(indexer).index();
+    doNothing().when(indexer).indexOnStartup();
     indexer.indexOnStartup();
     verify(indexer).indexOnStartup();
   }
@@ -73,7 +73,7 @@ public class IssueIndexerTest {
   public void index_all_issues() {
     dbTester.prepareDbUnit(getClass(), "index.xml");
 
-    underTest.index();
+    underTest.indexOnStartup();
 
     List<IssueDoc> docs = esTester.getDocuments(IssueIndexDefinition.INDEX_TYPE_ISSUE, IssueDoc.class);
     assertThat(docs).hasSize(1);
@@ -125,7 +125,7 @@ public class IssueIndexerTest {
   public void deleteProject_deletes_issues_of_a_specific_project() {
     dbTester.prepareDbUnit(getClass(), "index.xml");
 
-    underTest.index();
+    underTest.indexOnStartup();
 
     assertThat(esTester.countDocuments("issues", "issue")).isEqualTo(1);
 
@@ -187,7 +187,7 @@ public class IssueIndexerTest {
     issueDoc.setKey("key");
     issueDoc.setTechnicalUpdateDate(new Date());
     issueDoc.setProjectUuid("non-exitsing-parent");
-    new IssueIndexer(system2, dbTester.getDbClient(), esTester.client())
+    new IssueIndexer(dbTester.getDbClient(), esTester.client())
       .index(Arrays.asList(issueDoc).iterator());
 
     assertThat(esTester.countDocuments(IssueIndexDefinition.INDEX_TYPE_ISSUE)).isEqualTo(1L);
index e0a85ef7a0760adafee48cc1f5933a9cf83bef63..55b82771d0fa1d233a502d3a15a3059f6a63f44b 100644 (file)
@@ -39,7 +39,7 @@ public class IssueResultSetIteratorTest {
   @Test
   public void iterator_over_one_issue() {
     dbTester.prepareDbUnit(getClass(), "one_issue.xml");
-    IssueResultSetIterator it = IssueResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), 0L, null);
+    IssueResultSetIterator it = IssueResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), null);
     Map<String, IssueDoc> issuesByKey = issuesByKey(it);
     it.close();
 
@@ -72,7 +72,7 @@ public class IssueResultSetIteratorTest {
   @Test
   public void iterator_over_issues() {
     dbTester.prepareDbUnit(getClass(), "shared.xml");
-    IssueResultSetIterator it = IssueResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), 0L, null);
+    IssueResultSetIterator it = IssueResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), null);
     Map<String, IssueDoc> issuesByKey = issuesByKey(it);
     it.close();
 
@@ -134,27 +134,17 @@ public class IssueResultSetIteratorTest {
   @Test
   public void iterator_over_issue_from_project() {
     dbTester.prepareDbUnit(getClass(), "many_projects.xml");
-    IssueResultSetIterator it = IssueResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), 0L, "THE_PROJECT_1");
+    IssueResultSetIterator it = IssueResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), "THE_PROJECT_1");
     Map<String, IssueDoc> issuesByKey = issuesByKey(it);
     it.close();
 
     assertThat(issuesByKey).hasSize(2);
   }
 
-  @Test
-  public void iterator_over_issue_from_project_and_date() {
-    dbTester.prepareDbUnit(getClass(), "many_projects.xml");
-    IssueResultSetIterator it = IssueResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), 1_600_000_000_000L, "THE_PROJECT_1");
-    Map<String, IssueDoc> issuesByKey = issuesByKey(it);
-    it.close();
-
-    assertThat(issuesByKey).hasSize(1);
-  }
-
   @Test
   public void extract_directory_path() {
     dbTester.prepareDbUnit(getClass(), "extract_directory_path.xml");
-    IssueResultSetIterator it = IssueResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), 0L, null);
+    IssueResultSetIterator it = IssueResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), null);
     Map<String, IssueDoc> issuesByKey = issuesByKey(it);
     it.close();
 
@@ -176,7 +166,7 @@ public class IssueResultSetIteratorTest {
   @Test
   public void extract_file_path() {
     dbTester.prepareDbUnit(getClass(), "extract_file_path.xml");
-    IssueResultSetIterator it = IssueResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), 0L, null);
+    IssueResultSetIterator it = IssueResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), null);
     Map<String, IssueDoc> issuesByKey = issuesByKey(it);
     it.close();
 
@@ -195,19 +185,6 @@ public class IssueResultSetIteratorTest {
     assertThat(issuesByKey.get("FGH").filePath()).isNull();
   }
 
-  @Test
-  public void select_after_date() {
-    dbTester.prepareDbUnit(getClass(), "shared.xml");
-    IssueResultSetIterator it = IssueResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), 1_420_000_000_000L, null);
-
-    assertThat(it.hasNext()).isTrue();
-    IssueDoc issue = it.next();
-    assertThat(issue.key()).isEqualTo("DEF");
-
-    assertThat(it.hasNext()).isFalse();
-    it.close();
-  }
-
   private static Map<String, IssueDoc> issuesByKey(IssueResultSetIterator it) {
     return Maps.uniqueIndex(it, new Function<IssueDoc, String>() {
       @Override
index d6b6deeaddde777a7749376e8f062eabc62a0476..93805a1b438dd1eff9e438dd8599f177527184c0 100644 (file)
@@ -86,7 +86,7 @@ public class AddCommentActionTest {
   private IssueDbTester issueDbTester = new IssueDbTester(dbTester);
 
   private IssueUpdater issueUpdater = new IssueUpdater(dbClient,
-    new ServerIssueStorage(system2, new DefaultRuleFinder(dbClient), dbClient, new IssueIndexer(system2, dbClient, esTester.client())), mock(NotificationManager.class));
+    new ServerIssueStorage(system2, new DefaultRuleFinder(dbClient), dbClient, new IssueIndexer(dbClient, esTester.client())), mock(NotificationManager.class));
   private OperationResponseWriter responseWriter = mock(OperationResponseWriter.class);
 
   private WsActionTester tester = new WsActionTester(
index 674c627dcbde01df66be6ea823dcb395ba8a96d1..f4656414cf6ee305caec96c7f504ad77be202a5e 100644 (file)
@@ -105,7 +105,7 @@ public class BulkChangeActionTest {
 
   private IssueFieldsSetter issueFieldsSetter = new IssueFieldsSetter();
   private IssueWorkflow issueWorkflow = new IssueWorkflow(new FunctionExecutor(issueFieldsSetter), issueFieldsSetter);
-  private IssueStorage issueStorage = new ServerIssueStorage(system2, new DefaultRuleFinder(dbClient), dbClient, new IssueIndexer(system2, dbClient, es.client()));
+  private IssueStorage issueStorage = new ServerIssueStorage(system2, new DefaultRuleFinder(dbClient), dbClient, new IssueIndexer(dbClient, es.client()));
   private NotificationManager notificationManager = mock(NotificationManager.class);
   private List<Action> actions = new ArrayList<>();
 
index a30d2b600ccd4aca0614ee8aeac1ed4d0136da03..fdaa4169fd4d8b3c6b965b14172d367b51eaa5af 100644 (file)
@@ -97,7 +97,7 @@ public class DoTransitionActionTest {
   private TransitionService transitionService = new TransitionService(userSession, workflow);
   private OperationResponseWriter responseWriter = mock(OperationResponseWriter.class);
   private IssueUpdater issueUpdater = new IssueUpdater(dbClient,
-    new ServerIssueStorage(system2, new DefaultRuleFinder(dbClient), dbClient, new IssueIndexer(system2, dbClient, esTester.client())), mock(NotificationManager.class));
+    new ServerIssueStorage(system2, new DefaultRuleFinder(dbClient), dbClient, new IssueIndexer(dbClient, esTester.client())), mock(NotificationManager.class));
 
   private WsAction underTest = new DoTransitionAction(dbClient, userSession, new IssueFinder(dbClient, userSession), issueUpdater, transitionService, responseWriter);
   private WsActionTester tester = new WsActionTester(underTest);
index b95f54fcc53ce96aa2e330c5e72ff7ad7954457b..bc7114745239a618c596d3d1a1479272684916b3 100644 (file)
@@ -90,7 +90,7 @@ public class SetSeverityActionTest {
 
   private WsActionTester tester = new WsActionTester(new SetSeverityAction(userSession, dbClient, new IssueFinder(dbClient, userSession), new IssueFieldsSetter(),
     new IssueUpdater(dbClient,
-      new ServerIssueStorage(system2, new DefaultRuleFinder(dbClient), dbClient, new IssueIndexer(system2, dbClient, esTester.client())), mock(NotificationManager.class)),
+      new ServerIssueStorage(system2, new DefaultRuleFinder(dbClient), dbClient, new IssueIndexer(dbClient, esTester.client())), mock(NotificationManager.class)),
     responseWriter));
 
   @Test
index a2492f9170d3c46a586793cb6350da2b6b2e3ba4..24d35f06729ab2b4887f2170fe0931f8076be217 100644 (file)
@@ -90,7 +90,7 @@ public class SetTypeActionTest {
 
   private WsActionTester tester = new WsActionTester(new SetTypeAction(userSession, dbClient, new IssueFinder(dbClient, userSession), new IssueFieldsSetter(),
     new IssueUpdater(dbClient,
-      new ServerIssueStorage(system2, new DefaultRuleFinder(dbClient), dbClient, new IssueIndexer(system2, dbClient, esTester.client())), mock(NotificationManager.class)),
+      new ServerIssueStorage(system2, new DefaultRuleFinder(dbClient), dbClient, new IssueIndexer(dbClient, esTester.client())), mock(NotificationManager.class)),
     responseWriter));
 
   @Test
index 8feca40a9d77727bd25ef5fa0e2116ab9ad4bc37..caa7ec3a3268c2ecd528447661e1bb497404db62 100644 (file)
@@ -29,12 +29,12 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.sonar.api.config.MapSettings;
 import org.sonar.api.resources.Qualifiers;
-import org.sonar.api.utils.System2;
 import org.sonar.db.component.ComponentDto;
 import org.sonar.db.organization.OrganizationDto;
 import org.sonar.db.organization.OrganizationTesting;
 import org.sonar.db.user.GroupDto;
 import org.sonar.db.user.UserDto;
+import org.sonar.server.component.ws.FilterParser.Operator;
 import org.sonar.server.es.EsTester;
 import org.sonar.server.es.Facets;
 import org.sonar.server.es.SearchIdResult;
@@ -57,7 +57,6 @@ import static org.sonar.api.measures.Metric.Level.WARN;
 import static org.sonar.db.component.ComponentTesting.newProjectDto;
 import static org.sonar.db.user.GroupTesting.newGroupDto;
 import static org.sonar.db.user.UserTesting.newUserDto;
-import static org.sonar.server.component.ws.FilterParser.Operator;
 import static org.sonar.server.measure.index.ProjectMeasuresIndexDefinition.INDEX_TYPE_PROJECT_MEASURES;
 
 public class ProjectMeasuresIndexTest {
@@ -85,7 +84,7 @@ public class ProjectMeasuresIndexTest {
   @Rule
   public UserSessionRule userSession = UserSessionRule.standalone();
 
-  private ProjectMeasuresIndexer projectMeasureIndexer = new ProjectMeasuresIndexer(System2.INSTANCE, null, es.client());
+  private ProjectMeasuresIndexer projectMeasureIndexer = new ProjectMeasuresIndexer(null, es.client());
   private PermissionIndexerTester authorizationIndexerTester = new PermissionIndexerTester(es, projectMeasureIndexer);
   private ProjectMeasuresIndex underTest = new ProjectMeasuresIndex(es.client(), new AuthorizationTypeSupport(userSession));
 
index f1ed0682643c97f8382be94554e5a597a02bf186..b157ef3e2651eaf4accd0e4eb4b21eb956708b26 100644 (file)
@@ -54,19 +54,19 @@ public class ProjectMeasuresIndexerTest {
   public DbTester dbTester = DbTester.create(system2);
 
   private ComponentDbTester componentDbTester = new ComponentDbTester(dbTester);
-  private ProjectMeasuresIndexer underTest = new ProjectMeasuresIndexer(system2, dbTester.getDbClient(), esTester.client());
+  private ProjectMeasuresIndexer underTest = new ProjectMeasuresIndexer(dbTester.getDbClient(), esTester.client());
 
   @Test
   public void index_on_startup() {
     ProjectMeasuresIndexer indexer = spy(underTest);
-    doNothing().when(indexer).index();
+    doNothing().when(indexer).indexOnStartup();
     indexer.indexOnStartup();
     verify(indexer).indexOnStartup();
   }
 
   @Test
   public void index_nothing() {
-    underTest.index();
+    underTest.indexOnStartup();
 
     assertThat(esTester.countDocuments(INDEX_TYPE_PROJECT_MEASURES)).isZero();
   }
@@ -78,7 +78,7 @@ public class ProjectMeasuresIndexerTest {
     componentDbTester.insertProjectAndSnapshot(newProjectDto(organizationDto));
     componentDbTester.insertProjectAndSnapshot(newProjectDto(organizationDto));
 
-    underTest.index();
+    underTest.indexOnStartup();
 
     assertThat(esTester.countDocuments(INDEX_TYPE_PROJECT_MEASURES)).isEqualTo(3);
   }
@@ -90,7 +90,7 @@ public class ProjectMeasuresIndexerTest {
   public void index_provisioned_projects() {
     ComponentDto project = componentDbTester.insertProject();
 
-    underTest.index();
+    underTest.indexOnStartup();
 
     assertThat(esTester.getIds(INDEX_TYPE_PROJECT_MEASURES)).containsOnly(project.uuid());
   }
@@ -159,7 +159,7 @@ public class ProjectMeasuresIndexerTest {
     componentDbTester.insertProjectAndSnapshot(project2);
     ComponentDto project3 = newProjectDto(organizationDto);
     componentDbTester.insertProjectAndSnapshot(project3);
-    underTest.index();
+    underTest.indexOnStartup();
 
     underTest.deleteProject(project1.uuid());
 
@@ -170,7 +170,7 @@ public class ProjectMeasuresIndexerTest {
   public void does_nothing_when_deleting_unknown_project() throws Exception {
     ComponentDto project = newProjectDto(dbTester.organizations().insert());
     componentDbTester.insertProjectAndSnapshot(project);
-    underTest.index();
+    underTest.indexOnStartup();
 
     underTest.deleteProject("UNKNOWN");
 
index 0860d20ed4c87df4b4dfbc68866803c4c9a81c15..09730cdabe81819ff83ae3fcfebd7479c8c6929d 100644 (file)
@@ -40,7 +40,6 @@ import org.sonar.server.tester.UserSessionRule;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.sonar.api.web.UserRole.ADMIN;
 import static org.sonar.api.web.UserRole.USER;
-import static org.sonar.server.permission.index.FooIndexDefinition.FOO_INDEX;
 
 public class PermissionIndexerTest {
 
@@ -76,22 +75,14 @@ public class PermissionIndexerTest {
   }
 
   @Test
-  public void indexAllIfEmpty_does_nothing_if_no_data() {
-    underTest.indexAllIfEmpty();
-
-    assertThat(esTester.countDocuments(FOO_INDEX, "authorization")).isZero();
-    assertThat(fooIndex.hasAccessToProject("a_project")).isFalse();
-  }
-
-  @Test
-  public void indexAllIfEmpty_grants_access_to_user() {
+  public void initializeOnStartup_grants_access_to_user() {
     ComponentDto project = createAndIndexProject();
     UserDto user1 = userDbTester.insertUser();
     UserDto user2 = userDbTester.insertUser();
     userDbTester.insertProjectPermissionOnUser(user1, USER, project);
     userDbTester.insertProjectPermissionOnUser(user2, ADMIN, project);
 
-    underTest.indexAllIfEmpty();
+    underTest.indexOnStartup();
 
     // anonymous
     verifyAnyoneNotAuthorized(project);
@@ -104,7 +95,7 @@ public class PermissionIndexerTest {
   }
 
   @Test
-  public void indexAllIfEmpty_grants_access_to_group() {
+  public void initializeOnStartup_grants_access_to_group() {
     ComponentDto project = createAndIndexProject();
     UserDto user1 = userDbTester.insertUser();
     UserDto user2 = userDbTester.insertUser();
@@ -114,7 +105,7 @@ public class PermissionIndexerTest {
     userDbTester.insertProjectPermissionOnGroup(group1, USER, project);
     userDbTester.insertProjectPermissionOnGroup(group2, ADMIN, project);
 
-    underTest.indexAllIfEmpty();
+    underTest.indexOnStartup();
 
     // anonymous
     verifyAnyoneNotAuthorized(project);
@@ -130,7 +121,7 @@ public class PermissionIndexerTest {
   }
 
   @Test
-  public void indexAllIfEmpty_grants_access_to_user_and_group() {
+  public void initializeOnStartup_grants_access_to_user_and_group() {
     ComponentDto project = createAndIndexProject();
     UserDto user1 = userDbTester.insertUser();
     UserDto user2 = userDbTester.insertUser();
@@ -139,7 +130,7 @@ public class PermissionIndexerTest {
     userDbTester.insertProjectPermissionOnUser(user1, USER, project);
     userDbTester.insertProjectPermissionOnGroup(group, USER, project);
 
-    underTest.indexAllIfEmpty();
+    underTest.indexOnStartup();
 
     // anonymous
     verifyAnyoneNotAuthorized(project);
@@ -155,12 +146,12 @@ public class PermissionIndexerTest {
   }
 
   @Test
-  public void indexAllIfEmpty_does_not_grant_access_to_anybody() {
+  public void initializeOnStartup_does_not_grant_access_to_anybody() {
     ComponentDto project = createAndIndexProject();
     UserDto user = userDbTester.insertUser();
     GroupDto group = userDbTester.insertGroup();
 
-    underTest.indexAllIfEmpty();
+    underTest.indexOnStartup();
 
     verifyAnyoneNotAuthorized(project);
     verifyNotAuthorized(project, user);
@@ -168,13 +159,13 @@ public class PermissionIndexerTest {
   }
 
   @Test
-  public void indexAllIfEmpty_grants_access_to_anyone() {
+  public void initializeOnStartup_grants_access_to_anyone() {
     ComponentDto project = createAndIndexProject();
     UserDto user = userDbTester.insertUser();
     GroupDto group = userDbTester.insertGroup();
     userDbTester.insertProjectPermissionOnAnyone(USER, project);
 
-    underTest.indexAllIfEmpty();
+    underTest.indexOnStartup();
 
     verifyAnyoneAuthorized(project);
     verifyAuthorized(project, user);
@@ -182,7 +173,7 @@ public class PermissionIndexerTest {
   }
 
   @Test
-  public void indexAllIfEmpty_grants_access_on_many_projects() {
+  public void initializeOnStartup_grants_access_on_many_projects() {
     UserDto user1 = userDbTester.insertUser();
     UserDto user2 = userDbTester.insertUser();
     ComponentDto project = null;
@@ -191,7 +182,7 @@ public class PermissionIndexerTest {
       userDbTester.insertProjectPermissionOnUser(user1, USER, project);
     }
 
-    underTest.indexAllIfEmpty();
+    underTest.indexOnStartup();
 
     verifyAnyoneNotAuthorized(project);
     verifyAuthorized(project, user1);
@@ -204,7 +195,7 @@ public class PermissionIndexerTest {
     ComponentDto project2 = createAndIndexProject();
     userDbTester.insertProjectPermissionOnAnyone(USER, project1);
     userDbTester.insertProjectPermissionOnAnyone(USER, project2);
-    underTest.indexAllIfEmpty();
+    underTest.indexOnStartup();
     assertThat(esTester.countDocuments(INDEX_TYPE_FOO_AUTH)).isEqualTo(2);
 
     underTest.deleteProject(project1.uuid());
@@ -228,7 +219,7 @@ public class PermissionIndexerTest {
     ComponentDto project = createAndIndexProject();
     UserDto user1 = userDbTester.insertUser();
 
-    underTest.indexAllIfEmpty();
+    underTest.indexOnStartup();
 
     verifyAnyoneNotAuthorized(project);
     verifyNotAuthorized(project, user1);
@@ -242,7 +233,7 @@ public class PermissionIndexerTest {
     userDbTester.insertProjectPermissionOnAnyone(USER, projectOnOrg1);
     userDbTester.insertProjectPermissionOnUser(user, USER, projectOnOrg2);
 
-    underTest.indexAllIfEmpty();
+    underTest.indexOnStartup();
 
     verifyAnyoneAuthorized(projectOnOrg1);
     verifyAnyoneNotAuthorized(projectOnOrg2);
index 8567802530242d1339c44dc16462af0f6d772bba..3baf4fb9dc4f548af14d932cd791b3b8d12bad11 100644 (file)
@@ -58,13 +58,13 @@ import org.sonar.server.ws.TestResponse;
 import org.sonar.server.ws.WsActionTester;
 import org.sonar.test.JsonAssert;
 import org.sonarqube.ws.MediaTypes;
+import org.sonarqube.ws.QualityProfiles.CreateWsResponse;
+import org.sonarqube.ws.QualityProfiles.CreateWsResponse.QualityProfile;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
-import static org.sonar.server.language.LanguageTesting.newLanguages;
 import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_PROFILES;
-import static org.sonarqube.ws.QualityProfiles.CreateWsResponse;
-import static org.sonarqube.ws.QualityProfiles.CreateWsResponse.QualityProfile;
+import static org.sonar.server.language.LanguageTesting.newLanguages;
 import static org.sonarqube.ws.QualityProfiles.CreateWsResponse.parseFrom;
 
 public class CreateActionTest {
index d2cdf93c4fe6299343fd5bf217e40e762a27515e..177137d460864e4a642b468d2cb4aea0c8ef91a3 100644 (file)
@@ -105,22 +105,6 @@ public class RuleResultSetIteratorTest {
     assertThat(rule.updatedAt()).isEqualTo(1600000000000L);
   }
 
-  @Test
-  public void select_after_date() {
-    dbClient.ruleDao().insert(dbSession, templateRule);
-    dbClient.ruleDao().insert(dbSession, customRule);
-    dbSession.commit();
-
-    RuleResultSetIterator it = RuleResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), 1_900_000_000_000L);
-
-    assertThat(it.hasNext()).isTrue();
-    RuleDoc issue = it.next();
-    assertThat(issue.key()).isEqualTo(RuleKey.of("xoo", "S002"));
-
-    assertThat(it.hasNext()).isFalse();
-    it.close();
-  }
-
   @Test
   public void iterator_over_rules() {
     dbClient.ruleDao().insert(dbSession, templateRule);
index 2c8d9742159139db86f5be57c85e37ed626a240f..6494036f53b6a30bf49a2a6c7b4f04f57e836a74 100644 (file)
@@ -67,12 +67,12 @@ public class TestIndexerTest {
   @Rule
   public DbTester db = DbTester.create(system2);
 
-  private TestIndexer underTest = new TestIndexer(system2, db.getDbClient(), es.client());
+  private TestIndexer underTest = new TestIndexer(db.getDbClient(), es.client());
 
   @Test
   public void index_on_startup() {
     TestIndexer indexer = spy(underTest);
-    doNothing().when(indexer).index();
+    doNothing().when(indexer).indexOnStartup();
     indexer.indexOnStartup();
     verify(indexer).indexOnStartup();
   }
@@ -82,7 +82,7 @@ public class TestIndexerTest {
     db.prepareDbUnit(getClass(), "db.xml");
     TestTesting.updateDataColumn(db.getSession(), "FILE_UUID", TestTesting.newRandomTests(3));
 
-    underTest.index();
+    underTest.indexOnStartup();
 
     assertThat(countDocuments()).isEqualTo(3);
   }
index 22d7888ce21fc9dd3d7e2c2e54ed102336b51015..967a3ac9bafc536977662a53a71ebd6476c2b97c 100644 (file)
@@ -90,7 +90,7 @@ public class TestResultSetIteratorTest {
   public void traverse_db() throws Exception {
     dbTester.prepareDbUnit(getClass(), "shared.xml");
     TestTesting.updateDataColumn(dbTester.getSession(), "F1", newFakeTests(3));
-    underTest = TestResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), 0L, null);
+    underTest = TestResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), null);
 
     FileSourcesUpdaterHelper.Row row = underTest.next();
     assertThat(row.getProjectUuid()).isEqualTo("P1");
@@ -123,7 +123,7 @@ public class TestResultSetIteratorTest {
         .setName("N1")
         .build());
     TestTesting.updateDataColumn(dbTester.getSession(), "F1", tests);
-    underTest = TestResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), 0L, null);
+    underTest = TestResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), null);
 
     FileSourcesUpdaterHelper.Row row = underTest.next();
 
@@ -148,20 +148,12 @@ public class TestResultSetIteratorTest {
       FIELD_COVERED_FILES);
   }
 
-  @Test
-  public void filter_by_date() {
-    dbTester.prepareDbUnit(getClass(), "shared.xml");
-    underTest = TestResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), 2000000000000L, null);
-
-    assertThat(underTest.hasNext()).isFalse();
-  }
-
   @Test
   public void filter_by_project() throws Exception {
     dbTester.prepareDbUnit(getClass(), "filter_by_project.xml");
     TestTesting.updateDataColumn(dbTester.getSession(), "F1", newFakeTests(1));
 
-    underTest = TestResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), 0L, "P1");
+    underTest = TestResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), "P1");
 
     FileSourcesUpdaterHelper.Row row = underTest.next();
     assertThat(row.getProjectUuid()).isEqualTo("P1");
@@ -171,28 +163,13 @@ public class TestResultSetIteratorTest {
     assertThat(underTest.hasNext()).isFalse();
   }
 
-  @Test
-  public void filter_by_project_and_date() throws Exception {
-    dbTester.prepareDbUnit(getClass(), "filter_by_project_and_date.xml");
-    TestTesting.updateDataColumn(dbTester.getSession(), "F1", newFakeTests(1));
-
-    underTest = TestResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), 1400000000000L, "P1");
-
-    FileSourcesUpdaterHelper.Row row = underTest.next();
-    assertThat(row.getProjectUuid()).isEqualTo("P1");
-    assertThat(row.getFileUuid()).isEqualTo("F1");
-
-    // File F2 is not returned
-    assertThat(underTest.hasNext()).isFalse();
-  }
-
   @Test
   public void read_does_not_fail_if_corrupted_data() throws Exception {
     dbTester.prepareDbUnit(getClass(), "shared.xml");
 
     TestTesting.updateDataColumn(dbTester.getSession(), "F1", "THIS_IS_NOT_PROTOBUF".getBytes());
 
-    underTest = TestResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), 0L, null);
+    underTest = TestResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), null);
     FileSourcesUpdaterHelper.Row row = underTest.next();
     assertThat(row.getFileUuid()).isEqualTo("F1");
     assertThat(row.getUpdateRequests()).isEmpty();
@@ -206,7 +183,7 @@ public class TestResultSetIteratorTest {
     dbTester.prepareDbUnit(getClass(), "shared.xml");
     TestTesting.updateDataColumn(dbTester.getSession(), "F1", (byte[])null);
 
-    underTest = TestResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), 0L, null);
+    underTest = TestResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), null);
 
     FileSourcesUpdaterHelper.Row row = underTest.next();
     assertThat(row.getFileUuid()).isEqualTo("F1");
index 3a8ab1a9af0076f156762ca6f6764da0bf055dce..f4a10f644763a783cbaea990103af10bdc32c9a3 100644 (file)
@@ -26,7 +26,6 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
 import org.sonar.api.config.MapSettings;
-import org.sonar.api.utils.System2;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbTester;
 import org.sonar.db.component.ComponentDto;
@@ -76,7 +75,7 @@ public class ListActionTest {
   private DbClient dbClient = db.getDbClient();
 
   private TestIndex testIndex = new TestIndex(es.client());
-  private TestIndexer testIndexer = new TestIndexer(System2.INSTANCE, db.getDbClient(), es.client());
+  private TestIndexer testIndexer = new TestIndexer(db.getDbClient(), es.client());
 
   private ComponentDto project;
   private ComponentDto mainFile;
@@ -286,7 +285,7 @@ public class ListActionTest {
       .setFileUuid(testFile.uuid())
       .setTestData(asList(tests)));
     db.commit();
-    testIndexer.index();
+    testIndexer.indexOnStartup();
   }
 
   private static ListResponse call(TestRequest request) {
index d7fd95d381f62d554538c88cb8b07c683d73b706..223bcb833bbe735cba8c2fba6de4b1cddeba2e80 100644 (file)
@@ -86,7 +86,7 @@ public class UserUpdaterTest {
   private ArgumentCaptor<NewUserHandler.Context> newUserHandler = ArgumentCaptor.forClass(NewUserHandler.Context.class);
   private Settings settings = new MapSettings();
   private DbSession session = db.getSession();
-  private UserIndexer userIndexer = new UserIndexer(system2, dbClient, es.client());
+  private UserIndexer userIndexer = new UserIndexer(dbClient, es.client());
   private OrganizationCreation organizationCreation = mock(OrganizationCreation.class);
   private UserUpdater underTest = new UserUpdater(newUserNotifier, settings, dbClient, userIndexer, system2, TestDefaultOrganizationProvider.from(db), organizationCreation);
 
index 61aed48b4f5addd4edbb0f9f8ce3020bc6866936..4bbec6b4f159c78fee6af0cdbb13fbd5b1bcac1d 100644 (file)
@@ -77,6 +77,6 @@ public class UserIndexerTest {
   }
 
   private UserIndexer createIndexer() {
-    return new UserIndexer(system2, dbTester.getDbClient(), esTester.client());
+    return new UserIndexer(dbTester.getDbClient(), esTester.client());
   }
 }
index b6a2a0ead313aa90db31f6c2023d60bab2c4a396..7b659be64665a709f45e01e79a5ee2ab31f20109 100644 (file)
@@ -37,7 +37,7 @@ public class UserResultSetIteratorTest {
   @Test
   public void iterator_over_users() {
     dbTester.prepareDbUnit(getClass(), "shared.xml");
-    UserResultSetIterator it = UserResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), 0L);
+    UserResultSetIterator it = UserResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession());
     Map<String, UserDoc> usersByLogin = Maps.uniqueIndex(it, new Function<UserDoc, String>() {
       @Override
       public String apply(UserDoc user) {
@@ -72,17 +72,4 @@ public class UserResultSetIteratorTest {
     assertThat(user3.createdAt()).isEqualTo(1500000000000L);
     assertThat(user3.updatedAt()).isEqualTo(1550000000000L);
   }
-
-  @Test
-  public void select_after_date() {
-    dbTester.prepareDbUnit(getClass(), "shared.xml");
-    UserResultSetIterator it = UserResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), 1520000000000L);
-
-    assertThat(it.hasNext()).isTrue();
-    UserDoc user = it.next();
-    assertThat(user.login()).isEqualTo("user3");
-
-    assertThat(it.hasNext()).isFalse();
-    it.close();
-  }
 }
index 78db3b899592368e41ded11d5f4cfcaf1229e5d6..fb3b4a458949445124b64541d0d837ce06c4ecb6 100644 (file)
@@ -57,7 +57,7 @@ public class ChangePasswordActionTest {
   public UserSessionRule userSessionRule = UserSessionRule.standalone().logIn();
 
   private UserUpdater userUpdater = new UserUpdater(mock(NewUserNotifier.class), new MapSettings(), db.getDbClient(),
-    new UserIndexer(System2.INSTANCE, db.getDbClient(), esTester.client()),
+    new UserIndexer(db.getDbClient(), esTester.client()),
     System2.INSTANCE,
     TestDefaultOrganizationProvider.from(db),
     mock(OrganizationCreation.class));
index 003b29d968024369d58c32dc78442e057eeed567..3b703d9d7155c01b6ee263e78ca0f3beb5362e1d 100644 (file)
@@ -75,7 +75,7 @@ public class CreateActionTest {
   public ExpectedException expectedException = ExpectedException.none();
 
   private UserIndex index = new UserIndex(esTester.client());
-  private UserIndexer userIndexer = new UserIndexer(system2, db.getDbClient(), esTester.client());
+  private UserIndexer userIndexer = new UserIndexer(db.getDbClient(), esTester.client());
   private GroupDto defaultGroupInDefaultOrg;
   private OrganizationCreation organizationCreation = mock(OrganizationCreation.class);
 
index da0a79bf77325e0fa2bbd51194d2415ecb04bde8..85070a66a99d28d9717554ba7843d4ee9ffcaa36 100644 (file)
@@ -81,9 +81,9 @@ public class DeactivateActionTest {
 
   @Before
   public void setUp() {
-    userIndexer = new UserIndexer(system2, dbClient, esTester.client());
+    userIndexer = new UserIndexer(dbClient, esTester.client());
     index = new UserIndex(esTester.client());
-    userIndexer = new UserIndexer(system2, dbClient, esTester.client());
+    userIndexer = new UserIndexer(dbClient, esTester.client());
     ws = new WsActionTester(new DeactivateAction(
       dbClient, userIndexer, userSession, new UserJsonWriter(userSession), defaultOrganizationProvider));
   }
index 8486fb6b224c55d7631e93b38031adc0235d04f3..0af8a0d45a12e307fce630ea18dcd302e8e6e549 100644 (file)
@@ -66,7 +66,7 @@ public class SearchActionTest {
   private DbClient dbClient = db.getDbClient();
   private DbSession dbSession = db.getSession();
   private UserIndex index = new UserIndex(esTester.client());
-  private UserIndexer userIndexer = new UserIndexer(system2, dbClient, esTester.client());
+  private UserIndexer userIndexer = new UserIndexer(dbClient, esTester.client());
   private WsTester ws = new WsTester(new UsersWs(new SearchAction(index, dbClient, new UserJsonWriter(userSession))));
 
   @Test
index 08c66a222c18c033584495fd8f3b2b06e638b8ac..3d648569101de3312af0fa47b129497750b6ec85 100644 (file)
@@ -74,7 +74,7 @@ public class UpdateActionTest {
     dbClient.groupDao().insert(session, newGroupDto().setName("sonar-users"));
     session.commit();
 
-    userIndexer = new UserIndexer(system2, dbClient, esTester.client());
+    userIndexer = new UserIndexer(dbClient, esTester.client());
     tester = new WsTester(new UsersWs(new UpdateAction(
       new UserUpdater(mock(NewUserNotifier.class), settings, dbClient, userIndexer, system2, defaultOrganizationProvider, ORGANIZATION_CREATION_NOT_USED_FOR_UPDATE),
       userSessionRule,
index 967cd167071021b3197e31ad565d3a153f808d50..5e3d33a3f2a83af5983a9e7ad984f7bc730078f7 100644 (file)
@@ -71,21 +71,21 @@ public class ViewIndexerTest {
 
   private DbClient dbClient = dbTester.getDbClient();
   private DbSession dbSession = dbTester.getSession();
-  private IssueIndexer issueIndexer = new IssueIndexer(system2, dbClient, esTester.client());
+  private IssueIndexer issueIndexer = new IssueIndexer(dbClient, esTester.client());
   private PermissionIndexer permissionIndexer = new PermissionIndexer(dbClient, esTester.client(), issueIndexer);
-  private ViewIndexer underTest = new ViewIndexer(system2, dbClient, esTester.client());
+  private ViewIndexer underTest = new ViewIndexer(dbClient, esTester.client());
 
   @Test
   public void index_on_startup() {
     ViewIndexer indexer = spy(underTest);
-    doNothing().when(indexer).index();
+    doNothing().when(indexer).indexOnStartup();
     indexer.indexOnStartup();
     verify(indexer).indexOnStartup();
   }
 
   @Test
   public void index_nothing() {
-    underTest.index();
+    underTest.indexOnStartup();
     assertThat(esTester.countDocuments(ViewIndexDefinition.INDEX_TYPE_VIEW)).isEqualTo(0L);
   }
 
@@ -93,7 +93,7 @@ public class ViewIndexerTest {
   public void index() {
     dbTester.prepareDbUnit(getClass(), "index.xml");
 
-    underTest.index();
+    underTest.indexOnStartup();
 
     List<ViewDoc> docs = esTester.getDocuments(ViewIndexDefinition.INDEX_TYPE_VIEW, ViewDoc.class);
     assertThat(docs).hasSize(4);
@@ -113,7 +113,7 @@ public class ViewIndexerTest {
     esTester.putDocuments(ViewIndexDefinition.INDEX_TYPE_VIEW,
       new ViewDoc().setUuid("ABCD").setProjects(newArrayList("BCDE")));
 
-    underTest.index();
+    underTest.indexOnStartup();
 
     // ... But they shouldn't be indexed
     assertThat(esTester.countDocuments(ViewIndexDefinition.INDEX_TYPE_VIEW)).isEqualTo(1L);
@@ -149,7 +149,7 @@ public class ViewIndexerTest {
   @Test
   public void clear_views_lookup_cache_on_index_view_uuid() {
     IssueIndex issueIndex = new IssueIndex(esTester.client(), System2.INSTANCE, userSessionRule, new AuthorizationTypeSupport(userSessionRule));
-    IssueIndexer issueIndexer = new IssueIndexer(system2, dbClient, esTester.client());
+    IssueIndexer issueIndexer = new IssueIndexer(dbClient, esTester.client());
 
     String viewUuid = "ABCD";