>The annotations could be used for scanning for TestPlan elements on startup, too.
I remember we have discussed it, however, it sounds like a different feature. Of course, some level of code generation might help, however, I have no use cases for it now. >Maybe start with a global org.apache.jmeter.experimental.dsl package/module name I think experimental works better with annotations like @OptIn(Experimental) If you put experimental into a package name, you can't remove it without breaking the usages. A single .dsl. package would help indeed, so users could import jmeter.dsl.* and use the functions rather than import every package or class individually. On the other hand, the users won't be able to unimport features they do not need > Kotlin has a very similar string template format to JMeter, is there a good way to distinguish those, or guard the JMeter ones? That is indeed a problem. I've idea what would work the best to resolve it. Changing syntax to %{..} might work. Changing syntax to explicit expr("__javaScript(...)") might work as well. Making variables explicit might work as well. For instance, we can declare "variable holder", and pass it to regex extractor, and later use it for retrieving the result. That would reduce the number of cases where $ is needed in the test plan as every use of $ is basically a place for hidden error like "use of undefined variable", and so on > It seems, that `aggregateReport` has its parameters given by a closure (is that the right name?) , while `http` per positional parameter. Is this a Kotlin feature, that we can mix those, or is it only a first example and showing different ways of settings parameters on the elements? Kotlin has positioned parameters, it has named parameters, parameters can have default values (even computed values based on other parameters), and the final lambda can be outside of the parenthesis. >And a completely other construction site: Currently JMeter uses a global context, which could trip off users of the dsl, when they want to execute plans in parallel. Would this be worse, than now? Do you mean static context when running the plan? Vladimir