Details
-
Enhancement
-
Resolution: Done
-
Major
-
None
-
6.4.0.Final
-
None
-
NEW
-
NEW
Description
Projects/modules like Drools or OptaPlanner transitively require BOMs which are not actually needed at all (e.g. uberfire-bom or guvnor-bom). This brings a lot of issues for RPMs and is also weird.
We also need to make sure we an easily override dependencies coming from ip-bom. The only sensible way seem to directly inherit from ip-bom (instead of importing it). That of course results in a need to have a different parent for user BOMs, as we don't want to pollute them with all the 3rd party deps.
Proposal to fix this (discussed with gdesmet@redhat.com as the best option):
kie-parent (created from kie-parent-metadata)
- has ip-bom as it’s parent
- inherits the whole depMgmt from ip-bom. Contains all required dependency overrides.
- kie-user-bom-parent (new POM)
- has ip-parent as parent
- contains no depMgmt
- needs to copy some metadata from kie-parent (URL, SCM info, links, etc)
user-boms (kie-bom, drools-bom, optaplanner-bom, etc)
- have kie-user-bom-parent as their parent
- contain only depMgmt for the specific groupIds (e.g. org.optaplanner for optaplanner-bom)
- from user's POV nothing changes here
kie-platform-bom
- has kie-parent as it's parent
- import all the other BOMs (uberfire-bom, errai-internal-bom, etc)
- this BOM is useful in downstream projects, like tests
Specific projects then import only what they need (obviously not 100 % true as the kie-third-party-bom would define many more versions than we need, but that is not easily fixable atm):
Drools parent POM (top-level pom in drools repo)
- has kie-parent as it’s parent
- imports drools-bom (kie-bom is imported transitively)
jBPM Console NG parent POM
- has kie-parent as it’s parent
- drools-bom? + jbpm-bom + uf-bom + errai-bom+ dashuilder-bom + guvnor-bom