Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The goal is to have our (intermediary)representation of the xml data be closer to how it is in the actual file.
This will make it easier to avoid bugs and allow us to not lose any data by collapsing data from multiple entries into one too early.
Note that we can still "collapse" this computed state as an added step later if we deem it necessary.
Changes:
getEffectiveParameters()to compute/collapse the parameters from all the ancestors all the way to this childgetConfigByPathDeepParameter()test, and return 200 empty array instead of 404 ingetConfigByNameFail()UI Pics
Note: routed params logic is mostly unrefactored, and they are still collapsed("pre-computed") and kept directly on the NewConfigEntry
TODOs(not all need to be part of current PR):
Do a bit of performance improvements(look into addingIssue dissapeared after running mvn clean, install and compile and deleting .vscode cache. As for startup difference seems to be about 0.7-1.2 seconds on my old zephyrus laptop(from ~3.3 seconds to ~4.2@Cacheableon the new stuff as well). Nice to have, the most egregious example is querying for tradeable names takes a few seconds on the V2 as opposed to fractions of a second. Need to measure the startup as well, as we now loop over the entries multiple times instead of pre-computing everything in one loop