@luxmeter
This PR is a milestone for reactive implementation. It comprises a new design as well as newer concepts like injectors. The framework is now capable to inject new providers into injection points instead of values provided by these providers. It is important because the DSLs may want to access these fields/providers respectively and every access must give a new object to the DSL via provider. Inject-a-value still works for scenario approach.
DSL now offers a new Spec that is "SomeSpec" which enables developers add custom lambdas and arbitrary code snippet to execute. This is very handy for sleep tests, that do not require any connectivity.
A new concept "SimulationInjectors" have been introduced. SimulationInjectors are the implementations which take on injection implementation. They depend on the runner's implementation, so reactive injectors injects providers whereas the default runner's provides the values at injection points.
Another new concept is the user sessions which are passed from one spec to another one in the DSL chain. The session is a context being forwarded to the next spec containing contextual data.
The PR is targeting following points:
SimulationMetadata is to be broken down further.
Injection implementation is now dependent from Runner's implementation.
New Spec, that is Some to run arbitrary code snippet.
Chaining DSL w/o andThen operator.
UserSession as contextual instance, passed from one spec to another (1.1.0 passed Response object)
Materializers for each Spec type.
Architectural improvements.
Still open:
Improve type safety.
Convert BiFunction to Function by making Measurement a part of user's session.
@luxmeter This PR is a milestone for reactive implementation. It comprises a new design as well as newer concepts like injectors. The framework is now capable to inject new providers into injection points instead of values provided by these providers. It is important because the DSLs may want to access these fields/providers respectively and every access must give a new object to the DSL via provider. Inject-a-value still works for scenario approach.
DSL now offers a new Spec that is "SomeSpec" which enables developers add custom lambdas and arbitrary code snippet to execute. This is very handy for sleep tests, that do not require any connectivity.
A new concept "SimulationInjectors" have been introduced. SimulationInjectors are the implementations which take on injection implementation. They depend on the runner's implementation, so reactive injectors injects providers whereas the default runner's provides the values at injection points.
An example DSL may look as follows: https://github.com/bagdemir/Rhino/pull/44/files#diff-037ff9e140088255a0bca0cc11cc1ee3R38
Another new concept is the user sessions which are passed from one spec to another one in the DSL chain. The session is a context being forwarded to the next spec containing contextual data.
The PR is targeting following points:
Still open: