Bug 1037733

Summary: EAP modules built too late
Product: [Retired] JBoss BPMS Platform 6 Reporter: Julian Coleman <jcoleman>
Component: DeploymentAssignee: Roger Martínez <romartin>
Status: CLOSED WONTFIX QA Contact: Lukáš Petrovický <lpetrovi>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.0.0CC: etirelli, ncross, pzapataf, rrajasek, rzhang
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-10-23 10:45:50 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Julian Coleman 2013-12-03 17:02:02 UTC
The EAP modules are built in the kie-wb-distributions project.  In order to consume Drools/jBOM core modules, FSw builds now have to also depend on:

+guvnor
+kie-wb-common
+droolsjbpm-integration
+drools-wb
+jbpm-form-modeler
+jbpmmigration
+jbpm-designer
+jbpm-console-ng
+kie-wb-distributions

which were not in the previous dependency graph.

This is sub-optimal for FSW builds.

Comment 1 Julian Coleman 2013-12-04 12:48:24 UTC
More information:

  DTGov and SwitchYard require code Drools and jBPM core, so they have a dependency on the core code.
  For EAP modules, they now depend on the BRMS/BPMS EAP modules too.
  The BRMS/BPMS EAP modules are built in the kie-wb-distributions project.
  kie-wb-distributions depends on the GUI code (e.g. Guvnor, Designer)

The result is that DTGov and SwitchYard now require most of the BPMS/BRMS GUI code to be built before they can consume the EAP modules.  This increases the number of projects that are shared between BPMS/BRMS and FSW, and adds an uneeded dependency on BPMS/BRMS GUI projects for FSW.

Comment 2 Pedro Zapata 2013-12-04 17:37:36 UTC
We will evaluate whether the modules can be built in a module higher in the dependency hierrachy that kie-wb-distributions, keeping the later to build wars and package the result.

The impact and risk needs to be evaluated before committing to this change.

Comment 3 Edson Tirelli 2013-12-12 15:54:34 UTC
Postponed to 6.0.1. 

If productization needs this for 6.0.0, please raise it during next PM call.

Comment 4 Roger Martínez 2014-02-18 20:16:25 UTC
Hi,

A new maven plugin to generate the modules have been implemented in master branch (See https://bugzilla.redhat.com/show_bug.cgi?id=1039716)

The new distribution for the modules in the kie-wb-distributions allows to build the BPMS/BRMS layers without having the transitive dependency on the whole workbench and other not core jar dependencies.

For example, in order to build the BPMS  layer ZIP distribution (which contains both drools&jbpm core artifacts), you can build the kie-eap-integration module from kie-wb-distributions repository using:

mvn clean install -Dbpms-layer

If you want to generate the BPMS webapp for modules too, then the whole bpms workbench webapp aplication is added in the dependency tree for the build, and can be generated by running:

mvn clean install -Dbpms-layer -Dbpms-webapp

Same for BRMS distribution.

You can obtain more information about the distribution generation usage in https://github.com/droolsjbpm/kie-wb-distributions/blob/master/kie-eap-integration/README.md#usage

Thanks

Commit in master:
- https://github.com/droolsjbpm/kie-wb-distributions/commit/bb10717af1c57bcb0bdfe1e96b8c3479e83e5917

Comment 6 Julian Coleman 2014-02-20 11:53:03 UTC
Hi,

Is it possible to split this from the kie-wb-distributions project?
The problem with building kie-wb-distributions with two different profiles will come at deploy time.  If I deploy with -Dbpms-layer I can't later deploy kie-wb-distributions with -Dbpms-layer -Dbpms-webapp because I have two builds of the same version but with different contents.

Thanks,

J

Comment 7 Roger Martínez 2014-02-20 15:23:52 UTC
Hi Julian,

I commented the idea to separate the modules distributions across all maven modules in jbpm&drools... but the idea had not good acceptance.. :/

Anyway, I don't understand at all your comment.... let me explain:

There are 4 distributions (4 maven modules):

- kie-eap-distributions-bpms-layer

This layer is builded when profile "bpms-layer" is active.
The generated bpms-layer zip artifact is placed in its target/ directory.

- kie-eap-distributions-bpms-webapp

This webapp is builded when profile "bpms-webapp" is active.
The generated bpms-webapp war artifact is placed in its target/ directory.

- kie-eap-distributions-brms-layer

This layer is builded when profile "brms-layer" is active.
The generated brms-layer zip artifact is placed in its target/ directory.

- kie-eap-distributions-brms-webapp

This webapp is builded when profile "brms-webapp" is active.
The generated brms-webapp war artifact is placed in its target/ directory.


So, you can execute this build command:

#kie-eap-integration$ mvn clean install -Dbpms-layer -Dbpms-webapp -Dbrms-layer -Dbrms-webapp

(building all layers, as this example above, is the same as doing a clean install with any specific profile)

All layers will be builded at same time, then your deploy script can obtain each ZIP or WAR from the related module's target/ directory.

Is this approach not working for you? What are your needs exactly?

Sorry for the question but I can't understand at all your necessity on build&deploy time.. :)

Thanks!


(In reply to Julian Coleman from comment #6)
> Hi,
> 
> Is it possible to split this from the kie-wb-distributions project?
> The problem with building kie-wb-distributions with two different profiles
> will come at deploy time.  If I deploy with -Dbpms-layer I can't later
> deploy kie-wb-distributions with -Dbpms-layer -Dbpms-webapp because I have
> two builds of the same version but with different contents.
> 
> Thanks,
> 
> J

Comment 8 Ryan Zhang 2015-10-23 10:45:50 UTC
I believe this can be closed now. 
Since ip product not depends on the latest developerment of BRMS component anymore.
So the build in the end of the chain is not a problem, I think.