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 ;-)