]> source.dussan.org Git - sonarqube.git/commitdiff
Drop class SearchClient
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Tue, 1 Mar 2016 14:09:20 +0000 (15:09 +0100)
committerSimon Brandhof <simon.brandhof@sonarsource.com>
Tue, 8 Mar 2016 09:24:05 +0000 (10:24 +0100)
server/sonar-server/src/main/java/org/sonar/server/es/EsClient.java
server/sonar-server/src/main/java/org/sonar/server/search/EsSearchModule.java
server/sonar-server/src/main/java/org/sonar/server/search/SearchClient.java [deleted file]
server/sonar-server/src/test/java/org/sonar/server/es/EsClientTest.java
server/sonar-server/src/test/java/org/sonar/server/es/EsTester.java
server/sonar-server/src/test/java/org/sonar/server/search/EsSearchModuleTest.java
server/sonar-server/src/test/java/org/sonar/server/search/SearchClientMediumTest.java [deleted file]

index 58bfe9cef4ea66b17a027367132a8e517f904fb0..ecfce0892e39c02bfa47a78992cf7478eb290b1e 100644 (file)
@@ -19,6 +19,7 @@
  */
 package org.sonar.server.es;
 
+import org.apache.commons.lang.StringUtils;
 import org.elasticsearch.action.admin.cluster.health.ClusterHealthRequestBuilder;
 import org.elasticsearch.action.admin.cluster.health.ClusterHealthStatus;
 import org.elasticsearch.action.admin.cluster.node.stats.NodesStatsRequestBuilder;
@@ -42,13 +43,21 @@ import org.elasticsearch.action.index.IndexRequestBuilder;
 import org.elasticsearch.action.search.SearchRequestBuilder;
 import org.elasticsearch.action.search.SearchScrollRequestBuilder;
 import org.elasticsearch.client.Client;
+import org.elasticsearch.client.transport.TransportClient;
 import org.elasticsearch.common.Priority;
+import org.elasticsearch.common.logging.ESLoggerFactory;
+import org.elasticsearch.common.logging.slf4j.Slf4jESLoggerFactory;
+import org.elasticsearch.common.settings.ImmutableSettings;
+import org.elasticsearch.common.transport.InetSocketTransportAddress;
 import org.elasticsearch.index.query.QueryBuilders;
 import org.elasticsearch.search.aggregations.AggregationBuilders;
 import org.elasticsearch.search.aggregations.metrics.max.Max;
 import org.picocontainer.Startable;
+import org.sonar.api.config.Settings;
 import org.sonar.api.utils.log.Logger;
 import org.sonar.api.utils.log.Loggers;
+import org.sonar.process.LoopbackAddress;
+import org.sonar.process.ProcessProperties;
 import org.sonar.server.es.request.ProxyBulkRequestBuilder;
 import org.sonar.server.es.request.ProxyClearCacheRequestBuilder;
 import org.sonar.server.es.request.ProxyClusterHealthRequestBuilder;
@@ -69,7 +78,6 @@ import org.sonar.server.es.request.ProxyPutMappingRequestBuilder;
 import org.sonar.server.es.request.ProxyRefreshRequestBuilder;
 import org.sonar.server.es.request.ProxySearchRequestBuilder;
 import org.sonar.server.es.request.ProxySearchScrollRequestBuilder;
-import org.sonar.server.search.SearchClient;
 
 /**
  * Facade to connect to Elasticsearch node. Handles correctly errors (logging + exceptions
@@ -78,38 +86,44 @@ import org.sonar.server.search.SearchClient;
 public class EsClient implements Startable {
 
   public static final Logger LOGGER = Loggers.get("es");
-  private final SearchClient deprecatedClient;
+  private final Settings settings;
+  private Client nativeClient = null;
 
-  public EsClient(SearchClient deprecatedClient) {
-    this.deprecatedClient = deprecatedClient;
+  public EsClient(Settings settings) {
+    this.settings = settings;
+  }
+
+  EsClient(Settings settings, Client nativeClient) {
+    this.settings = settings;
+    this.nativeClient = nativeClient;
   }
 
   public RefreshRequestBuilder prepareRefresh(String... indices) {
-    return new ProxyRefreshRequestBuilder(deprecatedClient.nativeClient()).setIndices(indices);
+    return new ProxyRefreshRequestBuilder(nativeClient()).setIndices(indices);
   }
 
   public FlushRequestBuilder prepareFlush(String... indices) {
-    return new ProxyFlushRequestBuilder(deprecatedClient.nativeClient()).setIndices(indices);
+    return new ProxyFlushRequestBuilder(nativeClient()).setIndices(indices);
   }
 
   public IndicesStatsRequestBuilder prepareStats(String... indices) {
-    return new ProxyIndicesStatsRequestBuilder(deprecatedClient.nativeClient()).setIndices(indices);
+    return new ProxyIndicesStatsRequestBuilder(nativeClient()).setIndices(indices);
   }
 
   public NodesStatsRequestBuilder prepareNodesStats(String... nodesIds) {
-    return new ProxyNodesStatsRequestBuilder(deprecatedClient.nativeClient()).setNodesIds(nodesIds);
+    return new ProxyNodesStatsRequestBuilder(nativeClient()).setNodesIds(nodesIds);
   }
 
   public ClusterStatsRequestBuilder prepareClusterStats() {
-    return new ProxyClusterStatsRequestBuilder(deprecatedClient.nativeClient());
+    return new ProxyClusterStatsRequestBuilder(nativeClient());
   }
 
   public ClusterStateRequestBuilder prepareState() {
-    return new ProxyClusterStateRequestBuilder(deprecatedClient.nativeClient());
+    return new ProxyClusterStateRequestBuilder(nativeClient());
   }
 
   public ClusterHealthRequestBuilder prepareHealth(String... indices) {
-    return new ProxyClusterHealthRequestBuilder(deprecatedClient.nativeClient()).setIndices(indices);
+    return new ProxyClusterHealthRequestBuilder(nativeClient()).setIndices(indices);
   }
 
   public void waitForStatus(ClusterHealthStatus status) {
@@ -117,55 +131,60 @@ public class EsClient implements Startable {
   }
 
   public IndicesExistsRequestBuilder prepareIndicesExist(String... indices) {
-    return new ProxyIndicesExistsRequestBuilder(deprecatedClient.nativeClient(), indices);
+    return new ProxyIndicesExistsRequestBuilder(nativeClient(), indices);
   }
 
   public CreateIndexRequestBuilder prepareCreate(String index) {
-    return new ProxyCreateIndexRequestBuilder(deprecatedClient.nativeClient(), index);
+    return new ProxyCreateIndexRequestBuilder(nativeClient(), index);
   }
 
   public PutMappingRequestBuilder preparePutMapping(String... indices) {
-    return new ProxyPutMappingRequestBuilder(deprecatedClient.nativeClient()).setIndices(indices);
+    return new ProxyPutMappingRequestBuilder(nativeClient()).setIndices(indices);
   }
 
   public SearchRequestBuilder prepareSearch(String... indices) {
-    return new ProxySearchRequestBuilder(deprecatedClient.nativeClient()).setIndices(indices);
+    return new ProxySearchRequestBuilder(nativeClient()).setIndices(indices);
   }
 
   public SearchScrollRequestBuilder prepareSearchScroll(String scrollId) {
-    return new ProxySearchScrollRequestBuilder(scrollId, deprecatedClient.nativeClient());
+    return new ProxySearchScrollRequestBuilder(scrollId, nativeClient());
   }
 
   public GetRequestBuilder prepareGet() {
-    return new ProxyGetRequestBuilder(deprecatedClient.nativeClient());
+    return new ProxyGetRequestBuilder(nativeClient());
   }
 
   public GetRequestBuilder prepareGet(String index, String type, String id) {
-    return new ProxyGetRequestBuilder(deprecatedClient.nativeClient()).setIndex(index).setType(type).setId(id);
+    return new ProxyGetRequestBuilder(nativeClient()).setIndex(index).setType(type).setId(id);
   }
 
   public MultiGetRequestBuilder prepareMultiGet() {
-    return new ProxyMultiGetRequestBuilder(deprecatedClient.nativeClient());
+    return new ProxyMultiGetRequestBuilder(nativeClient());
   }
 
   public CountRequestBuilder prepareCount(String... indices) {
-    return new ProxyCountRequestBuilder(deprecatedClient.nativeClient()).setIndices(indices);
+    return new ProxyCountRequestBuilder(nativeClient()).setIndices(indices);
   }
 
   public BulkRequestBuilder prepareBulk() {
-    return new ProxyBulkRequestBuilder(deprecatedClient.nativeClient());
+    return new ProxyBulkRequestBuilder(nativeClient());
   }
 
   public DeleteRequestBuilder prepareDelete(String index, String type, String id) {
-    return new ProxyDeleteRequestBuilder(deprecatedClient.nativeClient(), index).setType(type).setId(id);
+    return new ProxyDeleteRequestBuilder(nativeClient(), index).setType(type).setId(id);
   }
 
+  /**
+   * @deprecated delete-by-query is dropped from ES 2.0 and should not be used. See
+   * https://www.elastic.co/guide/en/elasticsearch/reference/1.7/docs-delete-by-query.html
+   */
+  @Deprecated
   public DeleteByQueryRequestBuilder prepareDeleteByQuery(String... indices) {
-    return new ProxyDeleteByQueryRequestBuilder(deprecatedClient.nativeClient()).setIndices(indices);
+    return new ProxyDeleteByQueryRequestBuilder(nativeClient()).setIndices(indices);
   }
 
   public IndexRequestBuilder prepareIndex(String index, String type) {
-    return new ProxyIndexRequestBuilder(deprecatedClient.nativeClient()).setIndex(index).setType(type);
+    return new ProxyIndexRequestBuilder(nativeClient()).setIndex(index).setType(type);
   }
 
   public OptimizeRequestBuilder prepareOptimize(String indexName) {
@@ -175,7 +194,7 @@ public class EsClient implements Startable {
   }
 
   public ClearIndicesCacheRequestBuilder prepareClearCache(String... indices) {
-    return new ProxyClearCacheRequestBuilder(deprecatedClient.nativeClient()).setIndices(indices);
+    return new ProxyClearCacheRequestBuilder(nativeClient()).setIndices(indices);
   }
 
   public long getMaxFieldValue(String indexName, String typeName, String fieldName) {
@@ -191,16 +210,30 @@ public class EsClient implements Startable {
 
   @Override
   public void start() {
-    // nothing to do
+    if (nativeClient == null) {
+      ESLoggerFactory.setDefaultFactory(new Slf4jESLoggerFactory());
+      org.elasticsearch.common.settings.Settings esSettings = ImmutableSettings.settingsBuilder()
+        .put("node.name", StringUtils.defaultIfEmpty(settings.getString(ProcessProperties.CLUSTER_NODE_NAME), "sq_local_client"))
+        .put("network.bind_host", StringUtils.defaultIfEmpty(settings.getString(ProcessProperties.SEARCH_HOST), "localhost"))
+        .put("node.rack_id", StringUtils.defaultIfEmpty(settings.getString(ProcessProperties.CLUSTER_NODE_NAME), "unknown"))
+        .put("cluster.name", StringUtils.defaultIfBlank(settings.getString(ProcessProperties.CLUSTER_NAME), "sonarqube"))
+        .build();
+      nativeClient = new TransportClient(esSettings);
+      ((TransportClient) nativeClient).addTransportAddress(new InetSocketTransportAddress(StringUtils.defaultIfEmpty(settings.getString(ProcessProperties.SEARCH_HOST),
+        LoopbackAddress.get()
+          .getHostAddress()),
+        settings.getInt(ProcessProperties.SEARCH_PORT)));
+    }
   }
 
   @Override
   public void stop() {
-    // TODO re-enable when SearchClient is dropped
-    // client.close();
+    if (nativeClient != null) {
+      nativeClient.close();
+    }
   }
 
   protected Client nativeClient() {
-    return deprecatedClient.nativeClient();
+    return nativeClient;
   }
 }
index 59dc77ee2c134320c99c3a7514faa495c0be501b..c498264eb8db3dbd5b359e76a5790e7e0fd2b186 100644 (file)
@@ -25,8 +25,6 @@ import org.sonar.server.es.EsClient;
 public class EsSearchModule extends Module {
   @Override
   protected void configureModule() {
-    add(
-      SearchClient.class,
-      EsClient.class);
+    add(EsClient.class);
   }
 }
diff --git a/server/sonar-server/src/main/java/org/sonar/server/search/SearchClient.java b/server/sonar-server/src/main/java/org/sonar/server/search/SearchClient.java
deleted file mode 100644 (file)
index 24ea238..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2016 SonarSource SA
- * mailto:contact AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-package org.sonar.server.search;
-
-import com.google.common.annotations.VisibleForTesting;
-import org.apache.commons.lang.StringUtils;
-import org.elasticsearch.action.admin.indices.create.CreateIndexRequestBuilder;
-import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsRequestBuilder;
-import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequestBuilder;
-import org.elasticsearch.action.admin.indices.refresh.RefreshRequestBuilder;
-import org.elasticsearch.action.bulk.BulkRequestBuilder;
-import org.elasticsearch.action.count.CountRequestBuilder;
-import org.elasticsearch.action.deletebyquery.DeleteByQueryRequestBuilder;
-import org.elasticsearch.action.get.GetRequestBuilder;
-import org.elasticsearch.action.get.MultiGetRequestBuilder;
-import org.elasticsearch.action.search.SearchRequestBuilder;
-import org.elasticsearch.action.search.SearchScrollRequestBuilder;
-import org.elasticsearch.client.Client;
-import org.elasticsearch.client.transport.TransportClient;
-import org.elasticsearch.common.logging.ESLoggerFactory;
-import org.elasticsearch.common.logging.slf4j.Slf4jESLoggerFactory;
-import org.elasticsearch.common.settings.ImmutableSettings;
-import org.elasticsearch.common.transport.InetSocketTransportAddress;
-import org.picocontainer.Startable;
-import org.sonar.api.config.Settings;
-import org.sonar.process.LoopbackAddress;
-import org.sonar.process.ProcessProperties;
-import org.sonar.server.es.request.ProxyBulkRequestBuilder;
-import org.sonar.server.es.request.ProxyCountRequestBuilder;
-import org.sonar.server.es.request.ProxyCreateIndexRequestBuilder;
-import org.sonar.server.es.request.ProxyGetRequestBuilder;
-import org.sonar.server.es.request.ProxyIndicesExistsRequestBuilder;
-import org.sonar.server.es.request.ProxyMultiGetRequestBuilder;
-import org.sonar.server.es.request.ProxyPutMappingRequestBuilder;
-import org.sonar.server.es.request.ProxyRefreshRequestBuilder;
-import org.sonar.server.es.request.ProxySearchRequestBuilder;
-import org.sonar.server.es.request.ProxySearchScrollRequestBuilder;
-
-/**
- * ElasticSearch Node used to connect to index.
- */
-public class SearchClient implements Startable {
-
-  private final Settings settings;
-  private Client nativeClient;
-
-  public SearchClient(Settings settings) {
-    this.settings = settings;
-  }
-
-  @VisibleForTesting
-  public SearchClient(Settings settings, Client nativeClient) {
-    this.settings = settings;
-    this.nativeClient = nativeClient;
-  }
-
-  public Client nativeClient() {
-    if (nativeClient == null) {
-      throw new IllegalStateException();
-    }
-    return nativeClient;
-  }
-
-  public RefreshRequestBuilder prepareRefresh(String... indices) {
-    return new ProxyRefreshRequestBuilder(nativeClient).setIndices(indices);
-  }
-
-  public IndicesExistsRequestBuilder prepareIndicesExist(String... indices) {
-    return new ProxyIndicesExistsRequestBuilder(nativeClient, indices);
-  }
-
-  public CreateIndexRequestBuilder prepareCreate(String index) {
-    return new ProxyCreateIndexRequestBuilder(nativeClient, index);
-  }
-
-  public PutMappingRequestBuilder preparePutMapping(String... indices) {
-    return new ProxyPutMappingRequestBuilder(nativeClient).setIndices(indices);
-  }
-
-  public SearchRequestBuilder prepareSearch(String... indices) {
-    return new ProxySearchRequestBuilder(nativeClient).setIndices(indices);
-  }
-
-  public SearchScrollRequestBuilder prepareSearchScroll(String scrollId) {
-    return new ProxySearchScrollRequestBuilder(scrollId, nativeClient);
-  }
-
-  public GetRequestBuilder prepareGet() {
-    return new ProxyGetRequestBuilder(nativeClient);
-  }
-
-  public MultiGetRequestBuilder prepareMultiGet() {
-    return new ProxyMultiGetRequestBuilder(nativeClient);
-  }
-
-  public CountRequestBuilder prepareCount(String... indices) {
-    return new ProxyCountRequestBuilder(nativeClient).setIndices(indices);
-  }
-
-  public BulkRequestBuilder prepareBulk() {
-    return new ProxyBulkRequestBuilder(nativeClient);
-  }
-
-  public DeleteByQueryRequestBuilder prepareDeleteByQuery(String... indices) {
-    throw new UnsupportedOperationException("Delete by query must not be used. See https://github.com/elastic/elasticsearch/issues/10067. See alternatives in BulkIndexer.");
-  }
-
-  @Override
-  public synchronized void start() {
-    if (nativeClient == null) {
-      ESLoggerFactory.setDefaultFactory(new Slf4jESLoggerFactory());
-      org.elasticsearch.common.settings.Settings esSettings = ImmutableSettings.settingsBuilder()
-        .put("node.name", StringUtils.defaultIfEmpty(settings.getString(ProcessProperties.CLUSTER_NODE_NAME), "sq_local_client"))
-        .put("network.bind_host", StringUtils.defaultIfEmpty(settings.getString(ProcessProperties.SEARCH_HOST), "localhost"))
-        .put("node.rack_id", StringUtils.defaultIfEmpty(settings.getString(ProcessProperties.CLUSTER_NODE_NAME), "unknown"))
-        .put("cluster.name", StringUtils.defaultIfBlank(settings.getString(ProcessProperties.CLUSTER_NAME), "sonarqube"))
-        .build();
-      nativeClient = new TransportClient(esSettings);
-      ((TransportClient) nativeClient).addTransportAddress(new InetSocketTransportAddress(StringUtils.defaultIfEmpty(settings.getString(ProcessProperties.SEARCH_HOST),
-        LoopbackAddress.get()
-          .getHostAddress()),
-        settings.getInt(ProcessProperties.SEARCH_PORT)));
-    }
-  }
-
-  @Override
-  public void stop() {
-    if (nativeClient != null) {
-      nativeClient.close();
-    }
-  }
-}
index 0c057a2f1c1fbf04bf92440a1e819c2d24f5563a..940236651c21259fe2e9ebcbc9678be8eec5256d 100644 (file)
@@ -27,7 +27,6 @@ import org.sonar.server.es.request.ProxyClusterStateRequestBuilder;
 import org.sonar.server.es.request.ProxyClusterStatsRequestBuilder;
 import org.sonar.server.es.request.ProxyCountRequestBuilder;
 import org.sonar.server.es.request.ProxyCreateIndexRequestBuilder;
-import org.sonar.server.es.request.ProxyDeleteByQueryRequestBuilder;
 import org.sonar.server.es.request.ProxyDeleteRequestBuilder;
 import org.sonar.server.es.request.ProxyFlushRequestBuilder;
 import org.sonar.server.es.request.ProxyGetRequestBuilder;
@@ -49,29 +48,28 @@ public class EsClientTest {
 
   @Test
   public void proxify_requests() {
-    EsClient client = es.client();
-    client.start();
-    assertThat(client.nativeClient()).isNotNull();
-    assertThat(client.prepareBulk()).isInstanceOf(ProxyBulkRequestBuilder.class);
-    assertThat(client.prepareClusterStats()).isInstanceOf(ProxyClusterStatsRequestBuilder.class);
-    assertThat(client.prepareCount()).isInstanceOf(ProxyCountRequestBuilder.class);
-    assertThat(client.prepareCreate("fakes")).isInstanceOf(ProxyCreateIndexRequestBuilder.class);
-    assertThat(client.prepareDeleteByQuery()).isInstanceOf(ProxyDeleteByQueryRequestBuilder.class);
-    assertThat(client.prepareDelete("fakes", "fake", "my_id")).isInstanceOf(ProxyDeleteRequestBuilder.class);
-    assertThat(client.prepareIndicesExist()).isInstanceOf(ProxyIndicesExistsRequestBuilder.class);
-    assertThat(client.prepareFlush()).isInstanceOf(ProxyFlushRequestBuilder.class);
-    assertThat(client.prepareGet()).isInstanceOf(ProxyGetRequestBuilder.class);
-    assertThat(client.prepareGet("fakes", "fake", "1")).isInstanceOf(ProxyGetRequestBuilder.class);
-    assertThat(client.prepareHealth()).isInstanceOf(ProxyClusterHealthRequestBuilder.class);
-    assertThat(client.prepareMultiGet()).isInstanceOf(ProxyMultiGetRequestBuilder.class);
-    assertThat(client.prepareNodesStats()).isInstanceOf(ProxyNodesStatsRequestBuilder.class);
-    assertThat(client.preparePutMapping()).isInstanceOf(ProxyPutMappingRequestBuilder.class);
-    assertThat(client.prepareRefresh()).isInstanceOf(ProxyRefreshRequestBuilder.class);
-    assertThat(client.prepareSearch()).isInstanceOf(ProxySearchRequestBuilder.class);
-    assertThat(client.prepareSearchScroll("1234")).isInstanceOf(ProxySearchScrollRequestBuilder.class);
-    assertThat(client.prepareState()).isInstanceOf(ProxyClusterStateRequestBuilder.class);
-    assertThat(client.prepareStats()).isInstanceOf(ProxyIndicesStatsRequestBuilder.class);
+    EsClient underTest = es.client();
+    underTest.start();
+    assertThat(underTest.nativeClient()).isNotNull();
+    assertThat(underTest.prepareBulk()).isInstanceOf(ProxyBulkRequestBuilder.class);
+    assertThat(underTest.prepareClusterStats()).isInstanceOf(ProxyClusterStatsRequestBuilder.class);
+    assertThat(underTest.prepareCount()).isInstanceOf(ProxyCountRequestBuilder.class);
+    assertThat(underTest.prepareCreate("fakes")).isInstanceOf(ProxyCreateIndexRequestBuilder.class);
+    assertThat(underTest.prepareDelete("fakes", "fake", "my_id")).isInstanceOf(ProxyDeleteRequestBuilder.class);
+    assertThat(underTest.prepareIndicesExist()).isInstanceOf(ProxyIndicesExistsRequestBuilder.class);
+    assertThat(underTest.prepareFlush()).isInstanceOf(ProxyFlushRequestBuilder.class);
+    assertThat(underTest.prepareGet()).isInstanceOf(ProxyGetRequestBuilder.class);
+    assertThat(underTest.prepareGet("fakes", "fake", "1")).isInstanceOf(ProxyGetRequestBuilder.class);
+    assertThat(underTest.prepareHealth()).isInstanceOf(ProxyClusterHealthRequestBuilder.class);
+    assertThat(underTest.prepareMultiGet()).isInstanceOf(ProxyMultiGetRequestBuilder.class);
+    assertThat(underTest.prepareNodesStats()).isInstanceOf(ProxyNodesStatsRequestBuilder.class);
+    assertThat(underTest.preparePutMapping()).isInstanceOf(ProxyPutMappingRequestBuilder.class);
+    assertThat(underTest.prepareRefresh()).isInstanceOf(ProxyRefreshRequestBuilder.class);
+    assertThat(underTest.prepareSearch()).isInstanceOf(ProxySearchRequestBuilder.class);
+    assertThat(underTest.prepareSearchScroll("1234")).isInstanceOf(ProxySearchScrollRequestBuilder.class);
+    assertThat(underTest.prepareState()).isInstanceOf(ProxyClusterStateRequestBuilder.class);
+    assertThat(underTest.prepareStats()).isInstanceOf(ProxyIndicesStatsRequestBuilder.class);
 
-    client.stop();
+    underTest.stop();
   }
 }
index 09970f7b63d43a42c4591ef3fb0e8be92dd14b97..c08b19d6f55f20e0dcf320c9634a7ea120f93d7d 100644 (file)
@@ -51,7 +51,6 @@ import org.junit.rules.ExternalResource;
 import org.sonar.api.config.Settings;
 import org.sonar.core.platform.ComponentContainer;
 import org.sonar.server.search.BaseDoc;
-import org.sonar.server.search.SearchClient;
 import org.sonar.test.TestUtils;
 
 import static com.google.common.collect.Lists.newArrayList;
@@ -99,7 +98,7 @@ public class EsTester extends ExternalResource {
     DeleteIndexResponse response = node.client().admin().indices().prepareDelete("_all").get();
     assertThat(response.isAcknowledged()).isTrue();
 
-    client = new EsClient(new SearchClient(new Settings(), node.client()));
+    client = new EsClient(new Settings(), node.client());
     client.start();
 
     if (!definitions.isEmpty()) {
index abf95a396c8265d393ddfdf3966506dc0d5b550b..d2048977b0bf87f60579e38e6c2b3770e2751f84 100644 (file)
@@ -29,7 +29,7 @@ public class EsSearchModuleTest {
   public void verify_count_of_added_components() {
     ComponentContainer container = new ComponentContainer();
     new EsSearchModule().configure(container);
-    assertThat(container.size()).isEqualTo(4);
+    assertThat(container.size()).isEqualTo(3);
   }
 
 }
diff --git a/server/sonar-server/src/test/java/org/sonar/server/search/SearchClientMediumTest.java b/server/sonar-server/src/test/java/org/sonar/server/search/SearchClientMediumTest.java
deleted file mode 100644 (file)
index 3ea0ce3..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2016 SonarSource SA
- * mailto:contact AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-package org.sonar.server.search;
-
-import org.junit.Before;
-import org.junit.ClassRule;
-import org.junit.Rule;
-import org.junit.Test;
-import org.sonar.server.tester.ServerTester;
-import org.sonar.server.tester.UserSessionRule;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.Assert.fail;
-
-public class SearchClientMediumTest {
-
-  @ClassRule
-  public static ServerTester tester = new ServerTester().withEsIndexes();
-
-  @Rule
-  public UserSessionRule userSessionRule = UserSessionRule.forServerTester(tester);
-
-  SearchClient searchClient;
-
-  @Before
-  public void setUp() {
-    tester.clearDbAndIndexes();
-    searchClient = tester.get(SearchClient.class);
-  }
-
-  @Test
-  public void delete_by_query_is_not_supported() {
-    try {
-      searchClient.prepareDeleteByQuery();
-      fail();
-    } catch (UnsupportedOperationException e) {
-      assertThat(e).hasMessage("Delete by query must not be used. See https://github.com/elastic/elasticsearch/issues/10067. See alternatives in BulkIndexer.");
-    }
-  }
-
-}