This is an automated email from the ASF dual-hosted git repository.
kezhenxu94 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new 04c4fedf43 Adapt ElasticSearch 8.1+, migrate from removed APIs to
recommended APIs (#9603)
04c4fedf43 is described below
commit 04c4fedf436c35b326e7604e4a86af9134dab13c
Author: kezhenxu94 <[email protected]>
AuthorDate: Wed Sep 14 12:22:40 2022 +0800
Adapt ElasticSearch 8.1+, migrate from removed APIs to recommended APIs
(#9603)
---
docs/en/changes/changes.md | 5 +-
.../client/elasticsearch/ElasticSearchClient.java | 3 +-
.../elasticsearch/ElasticSearchVersion.java | 11 ++--
.../factory/{v7 => v7plus}/V78RequestFactory.java | 2 +-
.../factory/{v7 => v7plus}/V78TemplateFactory.java | 2 +-
.../factory/{v7 => v7plus}/V7DocumentFactory.java | 2 +-
.../factory/{v7 => v7plus}/V7IndexFactory.java | 2 +-
.../factory/{v7 => v7plus}/V7RequestFactory.java | 2 +-
.../factory/{v7 => v7plus}/V7TemplateFactory.java | 2 +-
.../factory/v7plus/V81DocumentFactory.java | 76 ++++++++++++++++++++++
.../V81RequestFactory.java} | 8 +--
.../factory/{v7 => v7plus}/codec/V78Codec.java | 2 +-
.../codec/V78IndexTemplatesDeserializer.java | 2 +-
.../factory/{v7 => v7plus}/codec/V7Codec.java | 2 +-
.../codec/V7IndexRequestSerializer.java | 2 +-
.../codec/V7IndexTemplatesDeserializer.java | 2 +-
.../codec/V7MappingsDeserializer.java | 2 +-
.../codec/V7UpdateRequestSerializer.java | 2 +-
.../library/elasticsearch/ITElasticSearchTest.java | 44 +++++++++++++
19 files changed, 147 insertions(+), 26 deletions(-)
diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index a89c7fd614..1b53c5e0e4 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -5,11 +5,12 @@
#### OAP Server
-* Add component ID(133) for impala JDBC Java agent plugin and component
ID(134) for impala server
+* Add component ID(133) for impala JDBC Java agent plugin and component
ID(134) for impala server.
* Use prepareStatement in H2SQLExecutor#getByIDs.(No function change).
-* Bump up snakeyaml to 1.31 for fixing CVE-2022-25857
+* Bump up snakeyaml to 1.31 for fixing CVE-2022-25857.
* Fix `DurationUtils.convertToTimeBucket` missed verify date format.
* [**Breaking Change**] Change the LAL script format(Add layer property).
+* Adapt ElasticSearch 8.1+, migrate from removed APIs to recommended APIs.
#### UI
diff --git
a/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/elasticsearch/ElasticSearchClient.java
b/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/elasticsearch/ElasticSearchClient.java
index d80f8353dd..ca085e5be2 100644
---
a/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/elasticsearch/ElasticSearchClient.java
+++
b/oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/elasticsearch/ElasticSearchClient.java
@@ -303,7 +303,6 @@ public class ElasticSearchClient implements Client,
HealthCheckable {
return es.get().documents().exists(indexName, TYPE, id);
}
-
/**
* Provide to get documents from multi indices by IDs.
* @param indexIds key: indexName, value: ids list
@@ -319,7 +318,7 @@ public class ElasticSearchClient implements Client,
HealthCheckable {
}
/**
- * Search by ids with index alias, when can not locate the physical index.
+ * Search by ids with index alias, when can not locate the physical index.
* Otherwise, recommend use method {@link #ids}
* @param indexName Index alias name or physical name
* @param ids ID list
diff --git
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/ElasticSearchVersion.java
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/ElasticSearchVersion.java
index 4f51773995..6607961f6b 100644
---
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/ElasticSearchVersion.java
+++
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/ElasticSearchVersion.java
@@ -23,10 +23,11 @@ import
org.apache.skywalking.library.elasticsearch.requests.factory.Codec;
import
org.apache.skywalking.library.elasticsearch.requests.factory.RequestFactory;
import
org.apache.skywalking.library.elasticsearch.requests.factory.v6.V6RequestFactory;
import
org.apache.skywalking.library.elasticsearch.requests.factory.v6.codec.V6Codec;
-import
org.apache.skywalking.library.elasticsearch.requests.factory.v7.V78RequestFactory;
-import
org.apache.skywalking.library.elasticsearch.requests.factory.v7.V7RequestFactory;
-import
org.apache.skywalking.library.elasticsearch.requests.factory.v7.codec.V78Codec;
-import
org.apache.skywalking.library.elasticsearch.requests.factory.v7.codec.V7Codec;
+import
org.apache.skywalking.library.elasticsearch.requests.factory.v7plus.V78RequestFactory;
+import
org.apache.skywalking.library.elasticsearch.requests.factory.v7plus.V7RequestFactory;
+import
org.apache.skywalking.library.elasticsearch.requests.factory.v7plus.V81RequestFactory;
+import
org.apache.skywalking.library.elasticsearch.requests.factory.v7plus.codec.V78Codec;
+import
org.apache.skywalking.library.elasticsearch.requests.factory.v7plus.codec.V7Codec;
public final class ElasticSearchVersion {
private final String distribution;
@@ -64,7 +65,7 @@ public final class ElasticSearchVersion {
return;
}
if (major == 8) {
- requestFactory = new V78RequestFactory(this);
+ requestFactory = new V81RequestFactory(this);
codec = V78Codec.INSTANCE;
return;
}
diff --git
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V78RequestFactory.java
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V78RequestFactory.java
similarity index 99%
copy from
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V78RequestFactory.java
copy to
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V78RequestFactory.java
index 375dd2803b..260c4f01b3 100644
---
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V78RequestFactory.java
+++
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V78RequestFactory.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.skywalking.library.elasticsearch.requests.factory.v7;
+package org.apache.skywalking.library.elasticsearch.requests.factory.v7plus;
import lombok.Getter;
import lombok.experimental.Accessors;
diff --git
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V78TemplateFactory.java
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V78TemplateFactory.java
similarity index 99%
rename from
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V78TemplateFactory.java
rename to
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V78TemplateFactory.java
index f57c7251ae..885d30ea1f 100644
---
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V78TemplateFactory.java
+++
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V78TemplateFactory.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.skywalking.library.elasticsearch.requests.factory.v7;
+package org.apache.skywalking.library.elasticsearch.requests.factory.v7plus;
import com.google.common.collect.ImmutableMap;
import com.linecorp.armeria.common.HttpRequest;
diff --git
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V7DocumentFactory.java
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V7DocumentFactory.java
similarity index 99%
rename from
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V7DocumentFactory.java
rename to
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V7DocumentFactory.java
index 0c720d2044..1ce486f0b8 100644
---
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V7DocumentFactory.java
+++
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V7DocumentFactory.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.skywalking.library.elasticsearch.requests.factory.v7;
+package org.apache.skywalking.library.elasticsearch.requests.factory.v7plus;
import com.google.common.collect.ImmutableMap;
import com.linecorp.armeria.common.HttpRequest;
diff --git
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V7IndexFactory.java
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V7IndexFactory.java
similarity index 99%
rename from
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V7IndexFactory.java
rename to
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V7IndexFactory.java
index 49d2248504..8c2a38821c 100644
---
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V7IndexFactory.java
+++
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V7IndexFactory.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.skywalking.library.elasticsearch.requests.factory.v7;
+package org.apache.skywalking.library.elasticsearch.requests.factory.v7plus;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableMap;
diff --git
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V7RequestFactory.java
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V7RequestFactory.java
similarity index 99%
rename from
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V7RequestFactory.java
rename to
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V7RequestFactory.java
index 9fae8d40f6..a202611aab 100644
---
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V7RequestFactory.java
+++
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V7RequestFactory.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.skywalking.library.elasticsearch.requests.factory.v7;
+package org.apache.skywalking.library.elasticsearch.requests.factory.v7plus;
import lombok.Getter;
import lombok.experimental.Accessors;
diff --git
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V7TemplateFactory.java
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V7TemplateFactory.java
similarity index 99%
rename from
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V7TemplateFactory.java
rename to
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V7TemplateFactory.java
index 776be59aa1..9c6ef920cd 100644
---
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V7TemplateFactory.java
+++
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V7TemplateFactory.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.skywalking.library.elasticsearch.requests.factory.v7;
+package org.apache.skywalking.library.elasticsearch.requests.factory.v7plus;
import com.google.common.collect.ImmutableMap;
import com.linecorp.armeria.common.HttpRequest;
diff --git
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V81DocumentFactory.java
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V81DocumentFactory.java
new file mode 100644
index 0000000000..d7e29898c9
--- /dev/null
+++
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V81DocumentFactory.java
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 org.apache.skywalking.library.elasticsearch.requests.factory.v7plus;
+
+import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Strings.isNullOrEmpty;
+import static com.google.common.collect.Iterables.isEmpty;
+import static java.util.Objects.requireNonNull;
+import java.util.Map;
+import org.apache.skywalking.library.elasticsearch.ElasticSearchVersion;
+import org.apache.skywalking.library.elasticsearch.requests.UpdateRequest;
+import
org.apache.skywalking.library.elasticsearch.requests.factory.DocumentFactory;
+import com.google.common.collect.ImmutableMap;
+import com.linecorp.armeria.common.HttpRequest;
+import com.linecorp.armeria.common.HttpRequestBuilder;
+import com.linecorp.armeria.common.MediaType;
+import lombok.SneakyThrows;
+import lombok.experimental.Delegate;
+
+public class V81DocumentFactory implements DocumentFactory {
+ private final ElasticSearchVersion version;
+
+ @Delegate // Delegate all compatible methods to V7DocumentFactory and just
override the incompatible ones.
+ private final V7DocumentFactory v7DocumentFactory;
+
+ public V81DocumentFactory(ElasticSearchVersion version) {
+ this.version = version;
+ this.v7DocumentFactory = new V7DocumentFactory(version);
+ }
+
+ @SneakyThrows
+ @Override
+ public HttpRequest update(UpdateRequest request, Map<String, ?> params) {
+ requireNonNull(request, "request");
+
+ final String index = request.getIndex();
+ final String type = request.getType();
+ final String id = request.getId();
+ final Map<String, Object> doc = request.getDoc();
+
+ checkArgument(!isNullOrEmpty(index), "index cannot be null or empty");
+ checkArgument(!isNullOrEmpty(type), "type cannot be null or empty");
+ checkArgument(!isNullOrEmpty(id), "id cannot be null or empty");
+ checkArgument(doc != null && !isEmpty(doc.entrySet()), "doc cannot be
null or empty");
+
+ final HttpRequestBuilder builder = HttpRequest.builder();
+ if (params != null) {
+ params.forEach(builder::queryParam);
+ }
+ final byte[] content = version.codec().encode(ImmutableMap.of("doc",
doc));
+
+ builder.post("/{index}/_update/{id}")
+ .pathParam("index", index)
+ .pathParam("id", id)
+ .content(MediaType.JSON, content);
+
+ return builder.build();
+ }
+}
diff --git
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V78RequestFactory.java
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V81RequestFactory.java
similarity index 92%
rename from
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V78RequestFactory.java
rename to
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V81RequestFactory.java
index 375dd2803b..fbb18dca6c 100644
---
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/V78RequestFactory.java
+++
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/V81RequestFactory.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.skywalking.library.elasticsearch.requests.factory.v7;
+package org.apache.skywalking.library.elasticsearch.requests.factory.v7plus;
import lombok.Getter;
import lombok.experimental.Accessors;
@@ -33,7 +33,7 @@ import
org.apache.skywalking.library.elasticsearch.requests.factory.common.Commo
@Getter
@Accessors(fluent = true)
-public final class V78RequestFactory implements RequestFactory {
+public final class V81RequestFactory implements RequestFactory {
private final TemplateFactory template;
private final IndexFactory index;
private final AliasFactory alias;
@@ -41,11 +41,11 @@ public final class V78RequestFactory implements
RequestFactory {
private final SearchFactory search;
private final BulkFactory bulk;
- public V78RequestFactory(final ElasticSearchVersion version) {
+ public V81RequestFactory(final ElasticSearchVersion version) {
template = new V78TemplateFactory(version);
index = new V7IndexFactory(version);
alias = new CommonAliasFactory(version);
- document = new V7DocumentFactory(version);
+ document = new V81DocumentFactory(version);
search = new CommonSearchFactory(version);
bulk = new CommonBulkFactory(version);
}
diff --git
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V78Codec.java
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V78Codec.java
similarity index 99%
rename from
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V78Codec.java
rename to
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V78Codec.java
index c4c11e5942..4e0a496f48 100644
---
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V78Codec.java
+++
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V78Codec.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.skywalking.library.elasticsearch.requests.factory.v7.codec;
+package
org.apache.skywalking.library.elasticsearch.requests.factory.v7plus.codec;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.type.TypeReference;
diff --git
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V78IndexTemplatesDeserializer.java
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V78IndexTemplatesDeserializer.java
similarity index 99%
rename from
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V78IndexTemplatesDeserializer.java
rename to
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V78IndexTemplatesDeserializer.java
index ce601bdc85..40f1d2b1be 100644
---
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V78IndexTemplatesDeserializer.java
+++
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V78IndexTemplatesDeserializer.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.skywalking.library.elasticsearch.requests.factory.v7.codec;
+package
org.apache.skywalking.library.elasticsearch.requests.factory.v7plus.codec;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonParser;
diff --git
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V7Codec.java
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V7Codec.java
similarity index 99%
rename from
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V7Codec.java
rename to
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V7Codec.java
index 97da2a88a8..acb0b49b67 100644
---
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V7Codec.java
+++
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V7Codec.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.skywalking.library.elasticsearch.requests.factory.v7.codec;
+package
org.apache.skywalking.library.elasticsearch.requests.factory.v7plus.codec;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.type.TypeReference;
diff --git
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V7IndexRequestSerializer.java
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V7IndexRequestSerializer.java
similarity index 99%
rename from
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V7IndexRequestSerializer.java
rename to
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V7IndexRequestSerializer.java
index 8eacf7218e..87e2dfdb2a 100644
---
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V7IndexRequestSerializer.java
+++
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V7IndexRequestSerializer.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.skywalking.library.elasticsearch.requests.factory.v7.codec;
+package
org.apache.skywalking.library.elasticsearch.requests.factory.v7plus.codec;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.io.SerializedString;
diff --git
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V7IndexTemplatesDeserializer.java
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V7IndexTemplatesDeserializer.java
similarity index 99%
rename from
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V7IndexTemplatesDeserializer.java
rename to
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V7IndexTemplatesDeserializer.java
index 23edc4ff9b..59d04bd697 100644
---
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V7IndexTemplatesDeserializer.java
+++
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V7IndexTemplatesDeserializer.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.skywalking.library.elasticsearch.requests.factory.v7.codec;
+package
org.apache.skywalking.library.elasticsearch.requests.factory.v7plus.codec;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.type.TypeReference;
diff --git
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V7MappingsDeserializer.java
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V7MappingsDeserializer.java
similarity index 99%
rename from
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V7MappingsDeserializer.java
rename to
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V7MappingsDeserializer.java
index e49f31520a..4b1a361e7a 100644
---
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V7MappingsDeserializer.java
+++
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V7MappingsDeserializer.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.skywalking.library.elasticsearch.requests.factory.v7.codec;
+package
org.apache.skywalking.library.elasticsearch.requests.factory.v7plus.codec;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.type.TypeReference;
diff --git
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V7UpdateRequestSerializer.java
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V7UpdateRequestSerializer.java
similarity index 99%
rename from
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V7UpdateRequestSerializer.java
rename to
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V7UpdateRequestSerializer.java
index 017b21be1c..540a5b40e2 100644
---
a/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7/codec/V7UpdateRequestSerializer.java
+++
b/oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/factory/v7plus/codec/V7UpdateRequestSerializer.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.skywalking.library.elasticsearch.requests.factory.v7.codec;
+package
org.apache.skywalking.library.elasticsearch.requests.factory.v7plus.codec;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.io.SerializedString;
diff --git
a/oap-server/server-library/library-elasticsearch-client/src/test/java/org/apache/skywalking/library/elasticsearch/ITElasticSearchTest.java
b/oap-server/server-library/library-elasticsearch-client/src/test/java/org/apache/skywalking/library/elasticsearch/ITElasticSearchTest.java
index 53ef4af118..f648bc4657 100644
---
a/oap-server/server-library/library-elasticsearch-client/src/test/java/org/apache/skywalking/library/elasticsearch/ITElasticSearchTest.java
+++
b/oap-server/server-library/library-elasticsearch-client/src/test/java/org/apache/skywalking/library/elasticsearch/ITElasticSearchTest.java
@@ -26,6 +26,7 @@ import java.util.Optional;
import lombok.RequiredArgsConstructor;
import org.apache.skywalking.library.elasticsearch.client.TemplateClient;
import org.apache.skywalking.library.elasticsearch.requests.IndexRequest;
+import org.apache.skywalking.library.elasticsearch.requests.UpdateRequest;
import org.apache.skywalking.library.elasticsearch.requests.search.Query;
import org.apache.skywalking.library.elasticsearch.requests.search.Search;
import
org.apache.skywalking.library.elasticsearch.requests.search.aggregation.Aggregation;
@@ -85,6 +86,15 @@ public class ITElasticSearchTest {
.asCompatibleSubstituteFor(
"docker.elastic.co/elasticsearch/elasticsearch-oss"))
},
+ {
+ "ElasticSearch 8.1.0",
+ new ElasticsearchContainer(
+
DockerImageName.parse("docker.elastic.co/elasticsearch/elasticsearch")
+ .withTag("8.1.0")
+ .asCompatibleSubstituteFor(
+
"docker.elastic.co/elasticsearch/elasticsearch-oss"))
+ .withEnv("xpack.security.enabled", "false")
+ },
{
"OpenSearch 1.0.0",
new ElasticsearchContainer(
@@ -190,6 +200,40 @@ public class ITElasticSearchTest {
assertEquals(client.documents().get(index, type,
idWithSpace).get().getSource(), doc);
}
+ @Test
+ public void testDocUpdate() {
+ final String index = "test-index-update";
+ assertTrue(client.index().create(index, null, null));
+
+ final ImmutableMap<String, Object> doc = ImmutableMap.of("key", "val");
+ final String idWithSpace = "an id"; // UI management templates' IDs
contains spaces
+ final String type = "type";
+
+ client.documents().index(
+ IndexRequest.builder()
+ .index(index)
+ .type(type)
+ .id(idWithSpace)
+ .doc(doc)
+ .build(), null);
+
+ assertTrue(client.documents().get(index, type,
idWithSpace).isPresent());
+ assertEquals(client.documents().get(index, type,
idWithSpace).get().getId(), idWithSpace);
+ assertEquals(client.documents().get(index, type,
idWithSpace).get().getSource(), doc);
+
+ final Map<String, Object> updatedDoc = ImmutableMap.of("key",
"new-val");
+ client.documents().update(
+ UpdateRequest
+ .builder()
+ .index(index)
+ .type(type)
+ .id(idWithSpace)
+ .doc(updatedDoc)
+ .build(),
+ null);
+ assertEquals(client.documents().get(index, type,
idWithSpace).get().getSource(), updatedDoc);
+ }
+
@SuppressWarnings("unchecked")
@Test
public void testSearch() {