Merge branch 'stable-2.14' into stable-2.15
* stable-2.14:
setup_gjf.sh: amend SHA1 for GJF 1.6
Elasticsearch: Tidy up Javadoc in builders package
setup_gjf.sh: Add support for google-java-format 1.6
ElasticRestClientProvider: Detect Elasticsearch version
Convert ElasticRestClientBuilder to a provider
WorkQueue: rename prefix to queueName
AbstractElasticIndex: Move generation of index name to ElasticConfiguration
Change-Id: Ie34d0799f957e94848a557d6c03c6224e79c07ac
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/AbstractElasticIndex.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/AbstractElasticIndex.java
index d314997..9d25308 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/AbstractElasticIndex.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/AbstractElasticIndex.java
@@ -18,14 +18,12 @@
import static java.nio.charset.StandardCharsets.UTF_8;
import static org.apache.commons.codec.binary.Base64.decodeBase64;
-import com.google.common.base.Strings;
import com.google.common.collect.FluentIterable;
import com.google.common.io.CharStreams;
import com.google.gerrit.elasticsearch.builders.SearchSourceBuilder;
import com.google.gerrit.elasticsearch.bulk.DeleteRequest;
import com.google.gerrit.index.Index;
import com.google.gerrit.index.Schema;
-import com.google.gerrit.server.config.GerritServerConfig;
import com.google.gerrit.server.config.SitePaths;
import com.google.gerrit.server.index.IndexUtils;
import com.google.gson.Gson;
@@ -48,9 +46,7 @@
import org.apache.http.HttpStatus;
import org.apache.http.entity.ContentType;
import org.apache.http.nio.entity.NStringEntity;
-import org.eclipse.jgit.lib.Config;
import org.elasticsearch.client.Response;
-import org.elasticsearch.client.RestClient;
abstract class AbstractElasticIndex<K, V> implements Index<K, V> {
protected static final String BULK = "_bulk";
@@ -84,30 +80,25 @@
private final Schema<V> schema;
private final SitePaths sitePaths;
private final String indexNameRaw;
- private final RestClient client;
+ private final ElasticRestClientProvider client;
protected final String indexName;
protected final Gson gson;
protected final ElasticQueryBuilder queryBuilder;
AbstractElasticIndex(
- @GerritServerConfig Config cfg,
+ ElasticConfiguration cfg,
SitePaths sitePaths,
Schema<V> schema,
- ElasticRestClientBuilder clientBuilder,
+ ElasticRestClientProvider client,
String indexName) {
this.sitePaths = sitePaths;
this.schema = schema;
this.gson = new GsonBuilder().setFieldNamingPolicy(LOWER_CASE_WITH_UNDERSCORES).create();
this.queryBuilder = new ElasticQueryBuilder();
- this.indexName =
- String.format(
- "%s%s_%04d",
- Strings.nullToEmpty(cfg.getString("elasticsearch", null, "prefix")),
- indexName,
- schema.getVersion());
+ this.indexName = cfg.getIndexName(indexName, schema.getVersion());
this.indexNameRaw = indexName;
- this.client = clientBuilder.build();
+ this.client = client;
}
@Override
@@ -117,11 +108,7 @@
@Override
public void close() {
- try {
- client.close();
- } catch (IOException e) {
- // Ignored.
- }
+ // Do nothing. Client is closed by the provider.
}
@Override
@@ -143,10 +130,10 @@
@Override
public void deleteAll() throws IOException {
// Delete the index, if it exists.
- Response response = client.performRequest("HEAD", indexName);
+ Response response = client.get().performRequest("HEAD", indexName);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == HttpStatus.SC_OK) {
- response = client.performRequest("DELETE", indexName);
+ response = client.get().performRequest("DELETE", indexName);
statusCode = response.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
throw new IOException(
@@ -217,6 +204,6 @@
String method, Object payload, String uri, Map<String, String> params) throws IOException {
String payloadStr = payload instanceof String ? (String) payload : payload.toString();
HttpEntity entity = new NStringEntity(payloadStr, ContentType.APPLICATION_JSON);
- return client.performRequest(method, uri, params, entity);
+ return client.get().performRequest(method, uri, params, entity);
}
}
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticAccountIndex.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticAccountIndex.java
index 570c9ef..28fc181 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticAccountIndex.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticAccountIndex.java
@@ -32,7 +32,6 @@
import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.server.account.AccountCache;
import com.google.gerrit.server.account.AccountState;
-import com.google.gerrit.server.config.GerritServerConfig;
import com.google.gerrit.server.config.SitePaths;
import com.google.gerrit.server.index.IndexUtils;
import com.google.gerrit.server.index.account.AccountField;
@@ -53,7 +52,6 @@
import java.util.Set;
import org.apache.http.HttpStatus;
import org.apache.http.StatusLine;
-import org.eclipse.jgit.lib.Config;
import org.elasticsearch.client.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -78,12 +76,12 @@
@AssistedInject
ElasticAccountIndex(
- @GerritServerConfig Config cfg,
+ ElasticConfiguration cfg,
SitePaths sitePaths,
Provider<AccountCache> accountCache,
- ElasticRestClientBuilder clientBuilder,
+ ElasticRestClientProvider client,
@Assisted Schema<AccountState> schema) {
- super(cfg, sitePaths, schema, clientBuilder, ACCOUNTS);
+ super(cfg, sitePaths, schema, client, ACCOUNTS);
this.accountCache = accountCache;
this.mapping = new AccountMapping(schema);
this.schema = schema;
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java
index 49a807f..f5a9bc0 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java
@@ -48,7 +48,6 @@
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.ReviewerByEmailSet;
import com.google.gerrit.server.ReviewerSet;
-import com.google.gerrit.server.config.GerritServerConfig;
import com.google.gerrit.server.config.SitePaths;
import com.google.gerrit.server.index.IndexUtils;
import com.google.gerrit.server.index.change.ChangeField;
@@ -75,7 +74,6 @@
import org.apache.commons.codec.binary.Base64;
import org.apache.http.HttpStatus;
import org.apache.http.StatusLine;
-import org.eclipse.jgit.lib.Config;
import org.elasticsearch.client.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -107,13 +105,13 @@
@Inject
ElasticChangeIndex(
- @GerritServerConfig Config cfg,
+ ElasticConfiguration cfg,
Provider<ReviewDb> db,
ChangeData.Factory changeDataFactory,
SitePaths sitePaths,
- ElasticRestClientBuilder clientBuilder,
+ ElasticRestClientProvider client,
@Assisted Schema<ChangeData> schema) {
- super(cfg, sitePaths, schema, clientBuilder, CHANGES);
+ super(cfg, sitePaths, schema, client, CHANGES);
this.db = db;
this.changeDataFactory = changeDataFactory;
this.schema = schema;
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticConfiguration.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticConfiguration.java
index 4cca280..84dae7f 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticConfiguration.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticConfiguration.java
@@ -15,6 +15,7 @@
package com.google.gerrit.elasticsearch;
import com.google.common.base.MoreObjects;
+import com.google.common.base.Strings;
import com.google.gerrit.server.config.GerritServerConfig;
import com.google.inject.Inject;
import com.google.inject.Singleton;
@@ -32,6 +33,8 @@
private static final String DEFAULT_PORT = "9200";
private static final String DEFAULT_PROTOCOL = "http";
+ private final Config cfg;
+
final List<HttpHost> urls;
final String username;
final String password;
@@ -41,9 +44,11 @@
final TimeUnit maxConnectionIdleUnit = TimeUnit.MILLISECONDS;
final int maxTotalConnection;
final int readTimeout;
+ final String prefix;
@Inject
ElasticConfiguration(@GerritServerConfig Config cfg) {
+ this.cfg = cfg;
this.username = cfg.getString("elasticsearch", null, "username");
this.password = cfg.getString("elasticsearch", null, "password");
this.requestCompression = cfg.getBoolean("elasticsearch", null, "requestCompression", false);
@@ -55,6 +60,7 @@
this.maxTotalConnection = cfg.getInt("elasticsearch", null, "maxTotalConnection", 1);
this.readTimeout =
(int) cfg.getTimeUnit("elasticsearch", null, "readTimeout", 3000, TimeUnit.MICROSECONDS);
+ this.prefix = Strings.nullToEmpty(cfg.getString("elasticsearch", null, "prefix"));
Set<String> subsections = cfg.getSubsections("elasticsearch");
if (subsections.isEmpty()) {
@@ -74,6 +80,14 @@
}
}
+ public Config getConfig() {
+ return cfg;
+ }
+
+ public String getIndexName(String name, int schemaVersion) {
+ return String.format("%s%s_%04d", prefix, name, schemaVersion);
+ }
+
private String getString(Config cfg, String subsection, String name, String defaultValue) {
return MoreObjects.firstNonNull(cfg.getString("elasticsearch", subsection, name), defaultValue);
}
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticException.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticException.java
new file mode 100644
index 0000000..d4baf75
--- /dev/null
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticException.java
@@ -0,0 +1,27 @@
+// Copyright (C) 2018 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.gerrit.elasticsearch;
+
+class ElasticException extends RuntimeException {
+ private static final long serialVersionUID = 1L;
+
+ ElasticException(String message) {
+ super(message);
+ }
+
+ ElasticException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticGroupIndex.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticGroupIndex.java
index f1f87cd..03a958b 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticGroupIndex.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticGroupIndex.java
@@ -29,7 +29,6 @@
import com.google.gerrit.index.query.QueryParseException;
import com.google.gerrit.reviewdb.client.AccountGroup;
import com.google.gerrit.server.account.GroupCache;
-import com.google.gerrit.server.config.GerritServerConfig;
import com.google.gerrit.server.config.SitePaths;
import com.google.gerrit.server.group.InternalGroup;
import com.google.gerrit.server.index.IndexUtils;
@@ -52,7 +51,6 @@
import java.util.Set;
import org.apache.http.HttpStatus;
import org.apache.http.StatusLine;
-import org.eclipse.jgit.lib.Config;
import org.elasticsearch.client.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -77,12 +75,12 @@
@AssistedInject
ElasticGroupIndex(
- @GerritServerConfig Config cfg,
+ ElasticConfiguration cfg,
SitePaths sitePaths,
Provider<GroupCache> groupCache,
- ElasticRestClientBuilder clientBuilder,
+ ElasticRestClientProvider client,
@Assisted Schema<InternalGroup> schema) {
- super(cfg, sitePaths, schema, clientBuilder, GROUPS);
+ super(cfg, sitePaths, schema, client, GROUPS);
this.groupCache = groupCache;
this.mapping = new GroupMapping(schema);
this.schema = schema;
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticIndexModule.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticIndexModule.java
index c97414d..fa87a3f 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticIndexModule.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticIndexModule.java
@@ -42,6 +42,12 @@
}
@Override
+ public void configure() {
+ super.configure();
+ install(ElasticRestClientProvider.module());
+ }
+
+ @Override
protected Class<? extends AccountIndex> getAccountIndex() {
return ElasticAccountIndex.class;
}
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticIndexVersionDiscovery.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticIndexVersionDiscovery.java
index 85fa2c1..3314a38 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticIndexVersionDiscovery.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticIndexVersionDiscovery.java
@@ -25,20 +25,19 @@
import org.apache.http.HttpStatus;
import org.apache.http.client.methods.HttpGet;
import org.elasticsearch.client.Response;
-import org.elasticsearch.client.RestClient;
@Singleton
class ElasticIndexVersionDiscovery {
- private final RestClient client;
+ private final ElasticRestClientProvider client;
@Inject
- ElasticIndexVersionDiscovery(ElasticRestClientBuilder clientBuilder) {
- this.client = clientBuilder.build();
+ ElasticIndexVersionDiscovery(ElasticRestClientProvider client) {
+ this.client = client;
}
List<String> discover(String prefix, String indexName) throws IOException {
String name = prefix + indexName + "_";
- Response response = client.performRequest(HttpGet.METHOD_NAME, name + "*/_aliases");
+ Response response = client.get().performRequest(HttpGet.METHOD_NAME, name + "*/_aliases");
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
return new JsonParser()
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticRestClientBuilder.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticRestClientBuilder.java
deleted file mode 100644
index faf1c71..0000000
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticRestClientBuilder.java
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright (C) 2018 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.gerrit.elasticsearch;
-
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
-import org.apache.http.HttpHost;
-import org.apache.http.auth.AuthScope;
-import org.apache.http.auth.UsernamePasswordCredentials;
-import org.apache.http.client.CredentialsProvider;
-import org.apache.http.impl.client.BasicCredentialsProvider;
-import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
-import org.elasticsearch.client.RestClient;
-import org.elasticsearch.client.RestClientBuilder;
-
-@Singleton
-class ElasticRestClientBuilder {
-
- private final HttpHost[] hosts;
- private final String username;
- private final String password;
-
- @Inject
- ElasticRestClientBuilder(ElasticConfiguration cfg) {
- hosts = cfg.urls.toArray(new HttpHost[cfg.urls.size()]);
- username = cfg.username;
- password = cfg.password;
- }
-
- RestClient build() {
- RestClientBuilder builder = RestClient.builder(hosts);
- setConfiguredCredentialsIfAny(builder);
- return builder.build();
- }
-
- private void setConfiguredCredentialsIfAny(RestClientBuilder builder) {
- if (username != null && password != null) {
- CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
- credentialsProvider.setCredentials(
- AuthScope.ANY, new UsernamePasswordCredentials(username, password));
- builder.setHttpClientConfigCallback(
- (HttpAsyncClientBuilder httpClientBuilder) ->
- httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider));
- }
- }
-}
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticRestClientProvider.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticRestClientProvider.java
new file mode 100644
index 0000000..a81cae6
--- /dev/null
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticRestClientProvider.java
@@ -0,0 +1,140 @@
+// Copyright (C) 2018 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.gerrit.elasticsearch;
+
+import com.google.gerrit.extensions.events.LifecycleListener;
+import com.google.gerrit.lifecycle.LifecycleModule;
+import com.google.gson.JsonParser;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
+import java.io.IOException;
+import org.apache.http.HttpHost;
+import org.apache.http.HttpStatus;
+import org.apache.http.StatusLine;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
+import org.elasticsearch.client.Response;
+import org.elasticsearch.client.RestClient;
+import org.elasticsearch.client.RestClientBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Singleton
+class ElasticRestClientProvider implements Provider<RestClient>, LifecycleListener {
+ private static final Logger log = LoggerFactory.getLogger(ElasticRestClientProvider.class);
+
+ private final HttpHost[] hosts;
+ private final String username;
+ private final String password;
+
+ private RestClient client;
+
+ @Inject
+ ElasticRestClientProvider(ElasticConfiguration cfg) {
+ hosts = cfg.urls.toArray(new HttpHost[cfg.urls.size()]);
+ username = cfg.username;
+ password = cfg.password;
+ }
+
+ public static LifecycleModule module() {
+ return new LifecycleModule() {
+ @Override
+ protected void configure() {
+ listener().to(ElasticRestClientProvider.class);
+ }
+ };
+ }
+
+ @Override
+ public RestClient get() {
+ if (client == null) {
+ synchronized (this) {
+ if (client == null) {
+ client = build();
+ String version = getVersion();
+ log.info("Connected to Elasticsearch version {}", version);
+ }
+ }
+ }
+ return client;
+ }
+
+ @Override
+ public void start() {}
+
+ @Override
+ public void stop() {
+ if (client != null) {
+ try {
+ client.close();
+ } catch (IOException e) {
+ // Ignore. We can't do anything about it.
+ }
+ }
+ }
+
+ public static class FailedToGetVersion extends ElasticException {
+ private static final long serialVersionUID = 1L;
+ private static final String MESSAGE = "Failed to get Elasticsearch version";
+
+ FailedToGetVersion(StatusLine status) {
+ super(String.format("%s: %d %s", MESSAGE, status.getStatusCode(), status.getReasonPhrase()));
+ }
+
+ FailedToGetVersion(Throwable cause) {
+ super(MESSAGE, cause);
+ }
+ }
+
+ private String getVersion() throws ElasticException {
+ try {
+ Response response = client.performRequest("GET", "");
+ StatusLine statusLine = response.getStatusLine();
+ if (statusLine.getStatusCode() != HttpStatus.SC_OK) {
+ throw new FailedToGetVersion(statusLine);
+ }
+ return new JsonParser()
+ .parse(AbstractElasticIndex.getContent(response))
+ .getAsJsonObject()
+ .get("version")
+ .getAsJsonObject()
+ .get("number")
+ .getAsString();
+ } catch (IOException e) {
+ throw new FailedToGetVersion(e);
+ }
+ }
+
+ private RestClient build() {
+ RestClientBuilder builder = RestClient.builder(hosts);
+ setConfiguredCredentialsIfAny(builder);
+ return builder.build();
+ }
+
+ private void setConfiguredCredentialsIfAny(RestClientBuilder builder) {
+ if (username != null && password != null) {
+ CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
+ credentialsProvider.setCredentials(
+ AuthScope.ANY, new UsernamePasswordCredentials(username, password));
+ builder.setHttpClientConfigCallback(
+ (HttpAsyncClientBuilder httpClientBuilder) ->
+ httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider));
+ }
+ }
+}
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticVersionManager.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticVersionManager.java
index 36d40f5..4f7fbe3 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticVersionManager.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticVersionManager.java
@@ -14,13 +14,11 @@
package com.google.gerrit.elasticsearch;
-import com.google.common.base.Strings;
import com.google.common.primitives.Ints;
import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.index.Index;
import com.google.gerrit.index.IndexDefinition;
import com.google.gerrit.index.Schema;
-import com.google.gerrit.server.config.GerritServerConfig;
import com.google.gerrit.server.config.SitePaths;
import com.google.gerrit.server.index.GerritIndexStatus;
import com.google.gerrit.server.index.OnlineUpgradeListener;
@@ -30,7 +28,6 @@
import java.io.IOException;
import java.util.Collection;
import java.util.TreeMap;
-import org.eclipse.jgit.lib.Config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -43,14 +40,14 @@
@Inject
ElasticVersionManager(
- @GerritServerConfig Config cfg,
+ ElasticConfiguration cfg,
SitePaths sitePaths,
DynamicSet<OnlineUpgradeListener> listeners,
Collection<IndexDefinition<?, ?, ?>> defs,
ElasticIndexVersionDiscovery versionDiscovery) {
- super(sitePaths, listeners, defs, VersionManager.getOnlineUpgrade(cfg));
+ super(sitePaths, listeners, defs, VersionManager.getOnlineUpgrade(cfg.getConfig()));
this.versionDiscovery = versionDiscovery;
- prefix = Strings.nullToEmpty(cfg.getString("elasticsearch", null, "prefix"));
+ prefix = cfg.prefix;
}
@Override
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/BoolQueryBuilder.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/BoolQueryBuilder.java
index 4b1adbd..a204919 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/BoolQueryBuilder.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/BoolQueryBuilder.java
@@ -19,8 +19,9 @@
import java.util.List;
/**
- * A Query that matches documents matching boolean combinations of other queries. A trimmed down
- * version of org.elasticsearch.index.query.BoolQueryBuilder for this very package.
+ * A Query that matches documents matching boolean combinations of other queries.
+ *
+ * <p>A trimmed down version of org.elasticsearch.index.query.BoolQueryBuilder.
*/
public class BoolQueryBuilder extends QueryBuilder {
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/ExistsQueryBuilder.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/ExistsQueryBuilder.java
index b1b3b1b..1b058d7 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/ExistsQueryBuilder.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/ExistsQueryBuilder.java
@@ -17,8 +17,9 @@
import java.io.IOException;
/**
- * Constructs a query that only match on documents that the field has a value in them. A trimmed
- * down version of org.elasticsearch.index.query.ExistsQueryBuilder for this very package.
+ * Constructs a query that only match on documents that the field has a value in them.
+ *
+ * <p>A trimmed down version of org.elasticsearch.index.query.ExistsQueryBuilder.
*/
class ExistsQueryBuilder extends QueryBuilder {
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/MatchAllQueryBuilder.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/MatchAllQueryBuilder.java
index b2411a2..a3b303c 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/MatchAllQueryBuilder.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/MatchAllQueryBuilder.java
@@ -17,8 +17,9 @@
import java.io.IOException;
/**
- * A query that matches on all documents. A trimmed down version of
- * org.elasticsearch.index.query.MatchAllQueryBuilder for this very package.
+ * A query that matches on all documents.
+ *
+ * <p>A trimmed down version of org.elasticsearch.index.query.MatchAllQueryBuilder.
*/
class MatchAllQueryBuilder extends QueryBuilder {
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/MatchQueryBuilder.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/MatchQueryBuilder.java
index e0c9a65..7a12080 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/MatchQueryBuilder.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/MatchQueryBuilder.java
@@ -19,8 +19,9 @@
/**
* Match query is a query that analyzes the text and constructs a query as the result of the
- * analysis. It can construct different queries based on the type provided. A trimmed down version
- * of org.elasticsearch.index.query.MatchQueryBuilder for this very package.
+ * analysis. It can construct different queries based on the type provided.
+ *
+ * <p>A trimmed down version of org.elasticsearch.index.query.MatchQueryBuilder.
*/
class MatchQueryBuilder extends QueryBuilder {
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/QueryBuilder.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/QueryBuilder.java
index b56db0b..d6f154e 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/QueryBuilder.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/QueryBuilder.java
@@ -16,7 +16,7 @@
import java.io.IOException;
-/** A trimmed down version of org.elasticsearch.index.query.QueryBuilder for this very package. */
+/** A trimmed down version of org.elasticsearch.index.query.QueryBuilder. */
public abstract class QueryBuilder {
protected QueryBuilder() {}
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/QueryBuilders.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/QueryBuilders.java
index 38e6acd..26fac4c 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/QueryBuilders.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/QueryBuilders.java
@@ -15,8 +15,9 @@
package com.google.gerrit.elasticsearch.builders;
/**
- * A static factory for simple "import static" usage. A trimmed down version of
- * org.elasticsearch.index.query.QueryBuilders for this very package.
+ * A static factory for simple "import static" usage.
+ *
+ * <p>A trimmed down version of org.elasticsearch.index.query.QueryBuilders.
*/
public abstract class QueryBuilders {
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/QuerySourceBuilder.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/QuerySourceBuilder.java
index 7920157..1cb5c82 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/QuerySourceBuilder.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/QuerySourceBuilder.java
@@ -16,10 +16,7 @@
import java.io.IOException;
-/**
- * A trimmed down and further altered version of org.elasticsearch.action.support.QuerySourceBuilder
- * for this very package.
- */
+/** A trimmed down and modified version of org.elasticsearch.action.support.QuerySourceBuilder. */
class QuerySourceBuilder {
private final QueryBuilder queryBuilder;
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/RangeQueryBuilder.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/RangeQueryBuilder.java
index 5487198..32dbc0e 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/RangeQueryBuilder.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/RangeQueryBuilder.java
@@ -17,8 +17,9 @@
import java.io.IOException;
/**
- * A Query that matches documents within an range of terms. A trimmed down version of
- * org.elasticsearch.index.query.RangeQueryBuilder for this very package.
+ * A Query that matches documents within an range of terms.
+ *
+ * <p>A trimmed down version of org.elasticsearch.index.query.RangeQueryBuilder.
*/
public class RangeQueryBuilder extends QueryBuilder {
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/RegexpQueryBuilder.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/RegexpQueryBuilder.java
index e88e8ef..b81ec20 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/RegexpQueryBuilder.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/RegexpQueryBuilder.java
@@ -17,8 +17,9 @@
import java.io.IOException;
/**
- * A Query that does fuzzy matching for a specific value. A trimmed down version of
- * org.elasticsearch.index.query.RegexpQueryBuilder for this very package.
+ * A Query that does fuzzy matching for a specific value.
+ *
+ * <p>A trimmed down version of org.elasticsearch.index.query.RegexpQueryBuilder.
*/
class RegexpQueryBuilder extends QueryBuilder {
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/SearchSourceBuilder.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/SearchSourceBuilder.java
index 3df2a7c..e72e9fa 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/SearchSourceBuilder.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/SearchSourceBuilder.java
@@ -18,8 +18,9 @@
import java.util.List;
/**
- * A search source builder allowing to easily build search source. A trimmed down and further
- * altered version of org.elasticsearch.search.builder.SearchSourceBuilder for this very package.
+ * A search source builder allowing to easily build search source.
+ *
+ * <p>A trimmed down and modified version of org.elasticsearch.search.builder.SearchSourceBuilder.
*/
public class SearchSourceBuilder {
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/TermQueryBuilder.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/TermQueryBuilder.java
index e290006..2b407c6 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/TermQueryBuilder.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/TermQueryBuilder.java
@@ -17,8 +17,9 @@
import java.io.IOException;
/**
- * A Query that matches documents containing a term. A trimmed down version of
- * org.elasticsearch.index.query.TermQueryBuilder for this very package.
+ * A Query that matches documents containing a term.
+ *
+ * <p>A trimmed down version of org.elasticsearch.index.query.TermQueryBuilder.
*/
class TermQueryBuilder extends QueryBuilder {
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/XContentBuilder.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/XContentBuilder.java
index 3c1d114..06427f1 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/XContentBuilder.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/builders/XContentBuilder.java
@@ -26,10 +26,7 @@
import java.io.IOException;
import java.util.Date;
-/**
- * A trimmed down and further altered version of org.elasticsearch.common.xcontent.XContentBuilder
- * for this very package.
- */
+/** A trimmed down and modified version of org.elasticsearch.common.xcontent.XContentBuilder. */
public final class XContentBuilder implements Closeable {
private final JsonGenerator generator;