LLClient: Add String flavored setEntity#30447
Conversation
Adds `Request#setEntity(String)` which short circuits the process of sending a json string which is super common.
|
Pinging @elastic/es-core-infra |
|
@javanna this follows up on some comments you've made on my recent PRs to use the I think this extra method would be pretty useful. I'm not really sold on a |
dadoonet
left a comment
There was a problem hiding this comment.
I like that change! 😉
I left 2 comments.
| entity.endObject(); | ||
| BytesRef bytes = BytesReference.bytes(entity).toBytesRef(); | ||
| request.setEntity(new ByteArrayEntity(bytes.bytes, bytes.offset, bytes.length, ContentType.APPLICATION_JSON)); | ||
| request.setEntity(Strings.toString(entity)); |
There was a problem hiding this comment.
Should we support as well the method for bytes?
There was a problem hiding this comment.
Ha! Just saw your other comment.
There was a problem hiding this comment.
on this one I am on the fence. It is odd that we have to go from bytes to string here. I would rather leave what you had, or add a method to set a byte array, even if we are the only ones using it.
| .field("scroll_id", scroll) | ||
| .endObject(); | ||
| request.setEntity(new StringEntity(Strings.toString(entity), ContentType.APPLICATION_JSON)); | ||
| request.setEntity(Strings.toString(entity)); |
There was a problem hiding this comment.
Should we support the method for XContent as well?
There was a problem hiding this comment.
low-level client doesn't depend on xcontent, we can't do that
| * If you need a different content type then use | ||
| * {@link #setEntity(HttpEntity)}. | ||
| */ | ||
| public void setEntity(String entity) { |
There was a problem hiding this comment.
nit: call it setJsonEntity?
| .field("scroll_id", scroll) | ||
| .endObject(); | ||
| request.setEntity(new StringEntity(Strings.toString(entity), ContentType.APPLICATION_JSON)); | ||
| request.setEntity(Strings.toString(entity)); |
There was a problem hiding this comment.
low-level client doesn't depend on xcontent, we can't do that
| entity.endObject(); | ||
| BytesRef bytes = BytesReference.bytes(entity).toBytesRef(); | ||
| request.setEntity(new ByteArrayEntity(bytes.bytes, bytes.offset, bytes.length, ContentType.APPLICATION_JSON)); | ||
| request.setEntity(Strings.toString(entity)); |
There was a problem hiding this comment.
on this one I am on the fence. It is odd that we have to go from bytes to string here. I would rather leave what you had, or add a method to set a byte array, even if we are the only ones using it.
| * {@link #setEntity(HttpEntity)}. | ||
| */ | ||
| public void setEntity(String entity) { | ||
| setEntity(entity == null ? null : new NStringEntity(entity, ContentType.APPLICATION_JSON)); |
There was a problem hiding this comment.
can we add a small unit test for this method?
|
Yikes! I'm not sure how I let the failure through.... |
Adds `Request#setJsonEntity(String)` which short circuits the process of sending a json string which is super common.
* master: Upgrade to Lucene-7.4-snapshot-6705632810 (#30519) add version compatibility from 6.4.0 after backport, see #30319 (#30390) Security: Simplify security index listeners (#30466) Add proper longitude validation in geo_polygon_query (#30497) Remove Discovery.AckListener.onTimeout() (#30514) Build: move generated-resources to build (#30366) Reindex: Fold "with all deps" project into reindex (#30154) Isolate REST client single host tests (#30504) Solve Gradle deprecation warnings around shadowJar (#30483) SAML: Process only signed data (#30420) Remove BWC repository test (#30500) Build: Remove xpack specific run task (#30487) AwaitsFix IntegTestZipClientYamlTestSuiteIT#indices.split tests LLClient: Add setJsonEntity (#30447) Expose CommonStatsFlags directly in IndicesStatsRequest. (#30163) Silence IndexUpgradeIT test failures. (#30430) Bump Gradle heap to 1792m (#30484) [docs] add warning for read-write indices in force merge documentation (#28869) Avoid deadlocks in cache (#30461) Test: remove hardcoded list of unconfigured ciphers (#30367) mute SplitIndexIT due to #30416 Docs: Test examples that recreate lang analyzers (#29535) BulkProcessor to retry based on status code (#29329) Add GET Repository High Level REST API (#30362) add a comment explaining the need for RetryOnReplicaException on missing mappings Add `coordinating_only` node selector (#30313) Stop forking groovyc (#30471) Avoid setting connection request timeout (#30384) Use date format in `date_range` mapping before fallback to default (#29310) Watcher: Increase HttpClient parallel sent requests (#30130) # Conflicts: # x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/LocalStateCompositeXPackPlugin.java
* 6.x: Upgrade to Lucene-7.4-snapshot-6705632810 (#30519) Remove Discovery.AckListener.onTimeout() (#30514) Build: move generated-resources to build (#30366) Reindex: Fold "with all deps" project into reindex (#30154) Isolate REST client single host tests (#30504) Remove BWC repository test (#30500) Build: Remove xpack specific run task (#30487) AwaitsFix IntegTestZipClientYamlTestSuiteIT#indices.split tests LLClient: Add setJsonEntity (#30447) [docs] add warning for read-write indices in force merge documentation (#28869) Avoid deadlocks in cache (#30461) BulkProcessor to retry based on status code (#29329) Avoid setting connection request timeout (#30384) Test: remove hardcoded list of unconfigured ciphers (#30367) Add GET Repository High Level REST API (#30362) mute SplitIndexIT due to #30416 Docs: Test examples that recreate lang analyzers (#29535) add a comment explaining the need for RetryOnReplicaException on missing mappings Pass the task to broadcast actions (#29672) Stop forking groovyc (#30471) Add `coordinating_only` node selector (#30313) Fix accidental error in changelog Use date format in `date_range` mapping before fallback to default (#29310) Watcher: Increase HttpClient parallel sent requests (#30130) [Security][Tests] Azeri(Turkish) locale tripps opensaml dependency
* es/ccr: (78 commits) Upgrade to Lucene-7.4-snapshot-6705632810 (elastic#30519) add version compatibility from 6.4.0 after backport, see elastic#30319 (elastic#30390) Security: Simplify security index listeners (elastic#30466) Add proper longitude validation in geo_polygon_query (elastic#30497) Remove Discovery.AckListener.onTimeout() (elastic#30514) Build: move generated-resources to build (elastic#30366) Reindex: Fold "with all deps" project into reindex (elastic#30154) Isolate REST client single host tests (elastic#30504) Solve Gradle deprecation warnings around shadowJar (elastic#30483) SAML: Process only signed data (elastic#30420) Remove BWC repository test (elastic#30500) Build: Remove xpack specific run task (elastic#30487) AwaitsFix IntegTestZipClientYamlTestSuiteIT#indices.split tests Enable soft-deletes in v6.4 LLClient: Add setJsonEntity (elastic#30447) [CCR] Read changes from Lucene instead of translog (elastic#30120) Expose CommonStatsFlags directly in IndicesStatsRequest. (elastic#30163) Silence IndexUpgradeIT test failures. (elastic#30430) Bump Gradle heap to 1792m (elastic#30484) [docs] add warning for read-write indices in force merge documentation (elastic#28869) ...
Adds
Request#setEntity(String)which short circuits the process ofsending a json string which is super common.