Enable improved POM support by default
This commit makes the experimental flag `IMPROVED_POM_SUPPORT` the default.
The flag is still there for backwards compatibility but has effectively no
impact. As a consequence, the behavior of improved POM support is now the
default, which implies that:
- Maven dependencies packaged as `pom` or `jar` now have derived variants
(`compile` and `runtime`) and we properly choose between the variants based
on the consumer attributes
- platform dependencies using the `platform` and `enforcedPlatform` keywords
Enabling improved POM support by default is a **breaking change**: there's
a risk that resolved dependencies is different, in particular because we
will now only include the `compile` dependencies of a POM file whenever the
consumer asks for the API variant. There are also some changes in the
dependency insight reports due to the use of attribute based matching instead
of configuration selection.
Last but not least, this commit is likely to introduce a small performance
regression due to attribute based selection.
10 Sep 18 15bd0ac7d4458d6be47a7960569dced4b41ce686
Fix "forced" flag being sometimes ignored
If the first direct dependency we see for a specific module version (g,a,v) has forced=false, then
if another first level dependency (g,a,v) with forced=true is added later, we ignore the fact that
the second one has forced=true. This case was lost during refactorings, due to insufficient test
11 May 18 d9e8ca590a002418687df533de3355a9c1fb6da7