Support Script Context Stateful Factory in Painless#25233
Support Script Context Stateful Factory in Painless#25233jdconrad merged 1 commit intoelastic:masterfrom
Conversation
rjernst
left a comment
There was a problem hiding this comment.
Looks good, I left a few suggestions for followup.
|
|
||
| Method newFactory = null; | ||
|
|
||
| for (Method method : context.factoryClazz.getMethods()) { |
There was a problem hiding this comment.
As a followup I think we should have the ScriptContext validate this method exists, so then we won't need to look it up here, but just grab the Method from the context.
There was a problem hiding this comment.
And the same for the newInstance method on the stateful factory.
There was a problem hiding this comment.
Agreed. As much as possible should be on the context.
| List<Class<?>> parameters = new ArrayList<>(Arrays.asList(newFactory.getParameterTypes())); | ||
| parameters.addAll(Arrays.asList(newInstance.getParameterTypes())); | ||
|
|
||
| org.objectweb.asm.commons.Method constru = new org.objectweb.asm.commons.Method("<init>", |
There was a problem hiding this comment.
As part of that same followup, we should also validate a ctor exists on the script class with the appropriate arguments from the factory methods.
|
|
||
| public void testStatefulFactory() { | ||
| StatefulFactoryTestScript.Factory factory = scriptEngine.compile( | ||
| "stateful_factory_test", "test + x + y", StatefulFactoryTestScript.CONTEXT, Collections.emptyMap()); |
There was a problem hiding this comment.
test is the parameter passed into the script method execute.
|
@rjernst Thanks for the review! Will merge once the CI passes. |
* master: Upgrade icu4j for the ICU analysis plugin to 59.1 (elastic#25243) move assertBusy to use CheckException (elastic#25246) Use SPI in High Level Rest Client to load XContent parsers (elastic#25098) [TEST] test that low level REST client leaves path untouched (elastic#25193) Speed up PK lookups at index time. (elastic#19856) [Docs] Fix documentation for percentiles bucket aggregation (elastic#25229) Upgrade to lucene-7.0.0-snapshot-92b1783. (elastic#25222) Build: Add master flag for disabling bwc tests (elastic#25230) Scripting: Rename SearchScript.needsScores to needs_score (elastic#25235) Support script context stateful factory in Painless. (elastic#25233) FastVectorHighlighter should not cache the field query globally (elastic#25197) Remove QUERY_AND_FETCH BWC for pre-5.3.0 nodes (elastic#25223) Add more missing AggregationBuilder getters (elastic#25198) Extract the snapshot/restore full cluster restart tests from the translog full cluster restart tests (elastic#25204)
* master: (44 commits) Upgrade icu4j for the ICU analysis plugin to 59.1 (elastic#25243) move assertBusy to use CheckException (elastic#25246) Use SPI in High Level Rest Client to load XContent parsers (elastic#25098) [TEST] test that low level REST client leaves path untouched (elastic#25193) Speed up PK lookups at index time. (elastic#19856) [Docs] Fix documentation for percentiles bucket aggregation (elastic#25229) Upgrade to lucene-7.0.0-snapshot-92b1783. (elastic#25222) Build: Add master flag for disabling bwc tests (elastic#25230) Scripting: Rename SearchScript.needsScores to needs_score (elastic#25235) Support script context stateful factory in Painless. (elastic#25233) FastVectorHighlighter should not cache the field query globally (elastic#25197) Remove QUERY_AND_FETCH BWC for pre-5.3.0 nodes (elastic#25223) Add more missing AggregationBuilder getters (elastic#25198) Extract the snapshot/restore full cluster restart tests from the translog full cluster restart tests (elastic#25204) Refactor TransportShardBulkAction.executeUpdateRequest and add tests Make sure range queries are correctly profiled. (elastic#25108) Test: allow setting socket timeout for rest client (elastic#25221) Migration docs for elastic#25080 (elastic#25218) Remove `discovery.type` BWC layer from the EC2/Azure/GCE plugins elastic#25080 When stopping via systemd only kill the JVM, not its control group (elastic#25195) ...
As the title says.