Hi guys,
The platform BOM work has been completed.
In the new situation, some of you might be wondering:
Where do I add a new dependency, or upgrade an existing
dependency's version?
1) Where do I add a new internal module?
An internal module is a module of drools, jbpm, optaplanner, guvnor
or dashboard-builder itself.
Add it in droolsjbpm-build-bootstrap/*-bom/pom.xml
Depending on the groupId of your new internal module:
groupId org.kie => add in kie-bom
groupId org.drools => add in drools-bom
groupId org.jbpm => add in jbpm-bom
2) Where do I add a new external dependency?
Add it in
droolsjbpm-build-bootstrap/kie-parent-with-dependencies/pom.xml in
<dependencyManagement>.
Be sure to follow the conventions comment in that xml.
3) Why is kie-parent-with-dependencies so empty?
Most dependencies have been extracted to
jboss-integration-platform-bom:
https://github.com/jboss-integration/jboss-integration-platform-bom
This is a bom we share with the switchyard team.
4) Where do I change the version of an existing external
dependency?
Also in
droolsjbpm-build-bootstrap/kie-parent-with-dependencies/pom.xml.
If it's not there, but it is inherited from
jboss-integration-platform-bom,
simply declare it again in kie-parent-with-dependencies
in<dependencyManagement>,
but with a different version.
5) Can I add my dependency (or change my dependency version)
directly on jboss-integration-platform-bom?
No.
Because that can disrupt SwitchYard and circumvent validation.
At set times someone (probably Edson) will pull all new dependency
and dependency versions from kie-parent-with-dependencies into the
jboss-integration-platform-bom
and also validate if nothing is conflicting with the EAP platform
version we're targetting.
6) Can I add any new dependency in kie-parent-with-dependencies
just like before?
Yes,
but just like before we expect certain minimal requirements:
- that the dependency is available in Maven Central or JBoss Nexus
- that the dependency's license is acceptable and described in it's
pom.xml file
Furthermore, you can prevent trouble by keeping these requirements
in mind:
- by the time productization releases, it should be compatible with
the EAP version we'll be targeting by then. So if EAP has it, we
need to use the same version (or formally request EAP to upgrade
their version).
- by the time productization releases, it should be compatible with
SwitchYard. So if SwitchYard has it, we need to use their version or
higher (they can always upgrade).
Hope that's clear :) If not, manstis will make a diagram this time
;-)