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