0.5.6
Configurable Parallelism during mapping merges
The mapping merging system introduced in 0.5.4 merges mappings in parallel - which in quick testing can
improve the merge time by half. There may be cases where the max number of threads needs to be controlled.
One common example is debugging Lorenz itself, having multiple merge threads running at once can make
debugging a lot more difficult.
This release just adds one new method to MergeConfig
:
getParallelism()
.
Set this value using the new withParallelism()
method. Check the javadocs for more info.
Allow arbitrary indexes for parameter mappings
Method mappings may now contain parameter mappings for arbitrary indexes, rather than being constrained to
between 0 and the number of parameters in the method signature. This is nice from a general flexibility
perspective as Lorenz is only a container and isn't intended for validating mappings, but also fixes the issue
where Lorenz can't read mappings which using 1-indexed method parameters for instance methods. With this change
it's up to the user to decide how to use parameter mappings, Lorenz doesn't dictate anything one way or the
other (just like the other mapping types).
Any code which worked with Lorenz before will still continue to work, as this change only removes constraints
which used to be present. If some code was written which relied on the existing index checks then this will
technically be a breaking change, as you'll need to handle those checks yourself. That is likely to be a minor
edge case however, so this is still considered a minor release.