The root cause was my misconception, where I assumed component-desc cannot be launched,
and that having a JREDesc is mandatory.
The truth is, JREDesc's are optional for any launch type,
which wasn't even the case in the b13 implementation.
That's why I was confused.
Thanks to Andy's clarification,
DefaultMatchJRE now uses a default JREDesc with VersionID '0+',
when starting the traversal.
This ensures we have the default minimum selection 0+,
which means any JRE.
I used this opportunity to clarify LaunchSelection's selectJRE,
i.e. made it protected and moved both, LaunchSelection and DefaultMatchJRE into
the sub-packge 'jnl', where it semantically belongs.
To select a JRE, we always have to call LaunchDesc.selectJRE().
This fixes this CR, plus:
- allows any JNLP files without a JREDesc