Merge branch 'stable-2.15'
* stable-2.15: ElasticConfiguration: Log configured Elasticsearch hostnames as info ElasticRestClientProvider: Store hosts as List instead of native array ElasticConfiguration: Remove unused maxConnectionIdleUnit Assume correct relative or absolute URL from Weblink provider Change-Id: Id4f5ce62828a61017a3e0f0518d63a9519ecbf6c
This commit is contained in:
		@@ -16,6 +16,7 @@ package com.google.gerrit.elasticsearch;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.google.common.base.MoreObjects;
 | 
					import com.google.common.base.MoreObjects;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import com.google.common.base.Strings;
 | 
				
			||||||
 | 
					import com.google.common.flogger.FluentLogger;
 | 
				
			||||||
import com.google.gerrit.server.config.GerritServerConfig;
 | 
					import com.google.gerrit.server.config.GerritServerConfig;
 | 
				
			||||||
import com.google.inject.Inject;
 | 
					import com.google.inject.Inject;
 | 
				
			||||||
import com.google.inject.Singleton;
 | 
					import com.google.inject.Singleton;
 | 
				
			||||||
@@ -29,19 +30,20 @@ import org.eclipse.jgit.lib.Config;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
@Singleton
 | 
					@Singleton
 | 
				
			||||||
class ElasticConfiguration {
 | 
					class ElasticConfiguration {
 | 
				
			||||||
 | 
					  private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private static final String DEFAULT_HOST = "localhost";
 | 
					  private static final String DEFAULT_HOST = "localhost";
 | 
				
			||||||
  private static final String DEFAULT_PORT = "9200";
 | 
					  private static final String DEFAULT_PORT = "9200";
 | 
				
			||||||
  private static final String DEFAULT_PROTOCOL = "http";
 | 
					  private static final String DEFAULT_PROTOCOL = "http";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private final Config cfg;
 | 
					  private final Config cfg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  final List<HttpHost> urls;
 | 
					  final List<HttpHost> hosts;
 | 
				
			||||||
  final String username;
 | 
					  final String username;
 | 
				
			||||||
  final String password;
 | 
					  final String password;
 | 
				
			||||||
  final boolean requestCompression;
 | 
					  final boolean requestCompression;
 | 
				
			||||||
  final long connectionTimeout;
 | 
					  final long connectionTimeout;
 | 
				
			||||||
  final long maxConnectionIdleTime;
 | 
					  final long maxConnectionIdleTime;
 | 
				
			||||||
  final TimeUnit maxConnectionIdleUnit = TimeUnit.MILLISECONDS;
 | 
					 | 
				
			||||||
  final int maxTotalConnection;
 | 
					  final int maxTotalConnection;
 | 
				
			||||||
  final int readTimeout;
 | 
					  final int readTimeout;
 | 
				
			||||||
  final String prefix;
 | 
					  final String prefix;
 | 
				
			||||||
@@ -66,18 +68,20 @@ class ElasticConfiguration {
 | 
				
			|||||||
    if (subsections.isEmpty()) {
 | 
					    if (subsections.isEmpty()) {
 | 
				
			||||||
      HttpHost httpHost =
 | 
					      HttpHost httpHost =
 | 
				
			||||||
          new HttpHost(DEFAULT_HOST, Integer.valueOf(DEFAULT_PORT), DEFAULT_PROTOCOL);
 | 
					          new HttpHost(DEFAULT_HOST, Integer.valueOf(DEFAULT_PORT), DEFAULT_PROTOCOL);
 | 
				
			||||||
      this.urls = Collections.singletonList(httpHost);
 | 
					      this.hosts = Collections.singletonList(httpHost);
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      this.urls = new ArrayList<>(subsections.size());
 | 
					      this.hosts = new ArrayList<>(subsections.size());
 | 
				
			||||||
      for (String subsection : subsections) {
 | 
					      for (String subsection : subsections) {
 | 
				
			||||||
        String port = getString(cfg, subsection, "port", DEFAULT_PORT);
 | 
					        String port = getString(cfg, subsection, "port", DEFAULT_PORT);
 | 
				
			||||||
        String host = getString(cfg, subsection, "hostname", DEFAULT_HOST);
 | 
					        String host = getString(cfg, subsection, "hostname", DEFAULT_HOST);
 | 
				
			||||||
        String protocol = getString(cfg, subsection, "protocol", DEFAULT_PROTOCOL);
 | 
					        String protocol = getString(cfg, subsection, "protocol", DEFAULT_PROTOCOL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        HttpHost httpHost = new HttpHost(host, Integer.valueOf(port), protocol);
 | 
					        HttpHost httpHost = new HttpHost(host, Integer.valueOf(port), protocol);
 | 
				
			||||||
        this.urls.add(httpHost);
 | 
					        this.hosts.add(httpHost);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    logger.atInfo().log("Elasticsearch hosts: %s", hosts);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Config getConfig() {
 | 
					  Config getConfig() {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,6 +22,7 @@ import com.google.inject.Inject;
 | 
				
			|||||||
import com.google.inject.Provider;
 | 
					import com.google.inject.Provider;
 | 
				
			||||||
import com.google.inject.Singleton;
 | 
					import com.google.inject.Singleton;
 | 
				
			||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
import org.apache.http.HttpHost;
 | 
					import org.apache.http.HttpHost;
 | 
				
			||||||
import org.apache.http.HttpStatus;
 | 
					import org.apache.http.HttpStatus;
 | 
				
			||||||
import org.apache.http.StatusLine;
 | 
					import org.apache.http.StatusLine;
 | 
				
			||||||
@@ -38,7 +39,7 @@ import org.elasticsearch.client.RestClientBuilder;
 | 
				
			|||||||
class ElasticRestClientProvider implements Provider<RestClient>, LifecycleListener {
 | 
					class ElasticRestClientProvider implements Provider<RestClient>, LifecycleListener {
 | 
				
			||||||
  private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 | 
					  private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private final HttpHost[] hosts;
 | 
					  private final List<HttpHost> hosts;
 | 
				
			||||||
  private final String username;
 | 
					  private final String username;
 | 
				
			||||||
  private final String password;
 | 
					  private final String password;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -47,7 +48,7 @@ class ElasticRestClientProvider implements Provider<RestClient>, LifecycleListen
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  @Inject
 | 
					  @Inject
 | 
				
			||||||
  ElasticRestClientProvider(ElasticConfiguration cfg) {
 | 
					  ElasticRestClientProvider(ElasticConfiguration cfg) {
 | 
				
			||||||
    hosts = cfg.urls.toArray(new HttpHost[cfg.urls.size()]);
 | 
					    hosts = cfg.hosts;
 | 
				
			||||||
    username = cfg.username;
 | 
					    username = cfg.username;
 | 
				
			||||||
    password = cfg.password;
 | 
					    password = cfg.password;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@@ -131,7 +132,7 @@ class ElasticRestClientProvider implements Provider<RestClient>, LifecycleListen
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private RestClient build() {
 | 
					  private RestClient build() {
 | 
				
			||||||
    RestClientBuilder builder = RestClient.builder(hosts);
 | 
					    RestClientBuilder builder = RestClient.builder(hosts.toArray(new HttpHost[hosts.size()]));
 | 
				
			||||||
    setConfiguredCredentialsIfAny(builder);
 | 
					    setConfiguredCredentialsIfAny(builder);
 | 
				
			||||||
    return builder.build();
 | 
					    return builder.build();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user