Remove all dependencies from XContentBuilder#29225
Conversation
This commit removes all of the non-JDK dependencies from XContentBuilder, with the exception of `CollectionUtils.ensureNoSelfReferences`. It adds a third extension point around dealing with time-based fields and formatters to work around the Joda dependency. This decoupling allows us to be able to move XContentBuilder to a separate lib so it can be available for things like the high level rest client. Relates to elastic#28504
|
Pinging @elastic/es-core-infra |
| Map<Class<?>, HumanReadableTransformer> humanReadableTransformer = new HashMap<>(); | ||
| Map<Class<?>, Function<Object, Object>> dateTransformers = new HashMap<>(); | ||
|
|
||
| // treat strings as already conerted |
| } | ||
|
|
||
| public XContentBuilder dateField(String name, String readableName, long value) throws IOException { | ||
| public XContentBuilder timeField(String name, String readableName, long value) throws IOException { |
There was a problem hiding this comment.
Why is this version needed? Can't callers construct a Date from the long value? I think at least these methods need javadocs.
There was a problem hiding this comment.
This version is needed because these fields work differently than the other human readable fields, where the coercion takes place only if human readable is needed, otherwise the raw numeric value is used. I'll add javadocs to the methods
| /** | ||
| * Used for plugging a transformer for a date or time type object into a String (or other | ||
| * encodable object) | ||
| */ |
There was a problem hiding this comment.
Can you please expand these javadocs to give examples? The generic Object to Object function doesn't really convey how someone would plugin in a date transform, or what it is used for (maybe linking to the timeValue methods where this matters would be good, at least with a @see for each method?).
* Remove all dependencies from XContentBuilder This commit removes all of the non-JDK dependencies from XContentBuilder, with the exception of `CollectionUtils.ensureNoSelfReferences`. It adds a third extension point around dealing with time-based fields and formatters to work around the Joda dependency. This decoupling allows us to be able to move XContentBuilder to a separate lib so it can be available for things like the high level rest client. Relates to #28504
* es/master: (22 commits) Fix building Javadoc JARs on JDK for client JARs (#29274) Require JDK 10 to build Elasticsearch (#29174) Decouple NamedXContentRegistry from ElasticsearchException (#29253) Docs: Update generating test coverage reports (#29255) [TEST] Fix issue with HttpInfo passed invalid parameter Remove all dependencies from XContentBuilder (#29225) Fix sporadic failure in CompositeValuesCollectorQueueTests Propagate ignore_unmapped to inner_hits (#29261) TEST: Increase timeout for testPrimaryReplicaResyncFailed REST client: hosts marked dead for the first time should not be immediately retried (#29230) TEST: Use different translog dir for a new engine Make SearchStats implement Writeable (#29258) [Docs] Spelling and grammar changes to reindex.asciidoc (#29232) Do not optimize append-only if seen normal op with higher seqno (#28787) [test] packaging: gradle tasks for groovy tests (#29046) Prune only gc deletes below local checkpoint (#28790) remove testUnassignedShardAndEmptyNodesInRoutingTable #28745: remove extra option in the composite rest tests Fold EngineDiskUtils into Store, for better lock semantics (#29156) Add file permissions checks to precommit task ...
* es/6.x: Fix building Javadoc JARs on JDK for client JARs (#29274) Require JDK 10 to build Elasticsearch (#29174) Decouple NamedXContentRegistry from ElasticsearchException (#29253) Docs: Update generating test coverage reports (#29255) [TEST] Fix issue with HttpInfo passed invalid parameter Remove all dependencies from XContentBuilder (#29225) Fix sporadic failure in CompositeValuesCollectorQueueTests Propagate ignore_unmapped to inner_hits (#29261) TEST: Increase timeout for testPrimaryReplicaResyncFailed REST client: hosts marked dead for the first time should not be immediately retried (#29230) Make SearchStats implement Writeable (#29258) [Docs] Spelling and grammar changes to reindex.asciidoc (#29232) [test] packaging: gradle tasks for groovy tests (#29046) remove testUnassignedShardAndEmptyNodesInRoutingTable Add file permissions checks to precommit task Remove execute mode bit from source files #28745: remove 7.x option in the composite rest tests. Optimize the composite aggregation for match_all and range queries (#28745) Clarify deprecation warning for auto_generate_phrase_query (#29204)
This commit removes all of the non-JDK dependencies from XContentBuilder, with
the exception of
CollectionUtils.ensureNoSelfReferences. It adds a thirdextension point around dealing with time-based fields and formatters to work
around the Joda dependency.
This decoupling allows us to be able to move XContentBuilder to a separate lib
so it can be available for things like the high level rest client.
Relates to #28504