Bug 1257907

Summary: Maven repo: missing artifact org.jboss.logging:jboss-logging
Product: [Retired] JBoss BRMS Platform 6 Reporter: Marek Winkler <mwinkler>
Component: Maven RepositoryAssignee: Ryan Zhang <rzhang>
Status: CLOSED EOL QA Contact: Marek Winkler <mwinkler>
Severity: high Docs Contact:
Priority: high    
Version: 6.1.0CC: kverlaen, pkocandr, rrajasek, tzimanyi
Target Milestone: CR2   
Target Release: 6.1.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-03-27 20:09:25 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:
Embargoed:
Bug Depends On:    
Bug Blocks: 1249859, 1249860    

Description Marek Winkler 2015-08-28 11:29:58 UTC
Description of problem:

Maven repository zip is missing the artifact 

  org.jboss.logging:jboss-logging:jar:3.1.4.GA-redhat-1

which seems to be pulled in by org.kie:kie-server-client.

This artifact is available in [1].

Version-Release number of selected component (if applicable):
6.1.3.CR1

[1] http://download.lab.bos.redhat.com/brewroot/repos/jb-ip-6.1-build/latest/maven/org/jboss/logging/jboss-logging/3.1.4.GA-redhat-1

Comment 4 Petr Kočandrle 2015-09-01 08:44:11 UTC
OK, I reproduced that with Marek's help and found out what's the problem. Basically we do declare the version property, but it is not used in the dependencyManagement section of the BOM, so it relies on the version used in resteasy-jaxrs-all, the parent of jaxrs-api, which is the dependency of kie-server-client.

The solution for this problem is one of these
1. add jboss-logging into dependencyManagement of jboss-brms-bpmsuite-bom
2. import kie-parent-with-dependencies into jboss-brms-bpmsuite-bom

The second solution is probably better, because we can avoid similar problems like this in the future.

Comment 5 Petr Kočandrle 2015-09-01 08:45:34 UTC
Ryan, take care of the BOM update please.

Comment 6 Ryan Zhang 2015-09-01 10:02:48 UTC
Just paste some discussion with Marek about this issue:

<rzhang> I think the jboss-logging(3.1.14GA-redhat-1, the old artifact)  is introduced by resteasy artifacts (by hard coded). 
<rzhang> See http://download.eng.bos.redhat.com/brewroot/repos/jb-ip-6.1-build/latest/maven/org/jboss/resteasy/resteasy-jaxrs-all/2.3.10.Final-redhat-1/resteasy-jaxrs-all-2.3.10.Final-redhat-1.pom
<rzhang> and in jb-ip-bom and kie-parent-with-dependencies bom, it has defined the new one 3.1.14.GA-redhat-2
<rzhang> so the correct one is the new one.
<rzhang> but I see your test case hit the problem with missing the old artifact
<rzhang> the reason is that jboss-brms-bpms-boms , it only defined kie's artiacts  , it is not including 3rd parties
<rzhang> so the jboss-logging is not managed by our boms and it used an old artifact which is not desire
<mwinkler> I see - I think we need to make clear how customers are supposed to use the product in their Maven builds:
<mwinkler> - do they need to use any parent pom?
<mwinkler> - do they need just to import BOMs?
<rzhang> I think they need to import the kie-parent-with-dependencies in 6.1.x
mwinkler> you mean import, not declare it as a parent, right?
<rzhang> yes, by import.

Comment 7 Petr Široký 2015-09-01 14:07:45 UTC
After talking to Marek, I believe we should create new BOM, which would basically import the kie-parent-with-dependencies. The BOM could be called jboss-brms-bpmsuite-platform-bom (very much like the one already created for 6.2.x product).
This will require changes in the jboss-brms-boms repo (6.1.x branch).

We should _not_ import the kie-parent-with-dependencies into the jboss-brms-bpmsuite-bom, because it is a user BOM and as such should not contain any 3rd party dependencies. We should offer the users a choice of using a user BOM (without the 3rd party) dependencies and a platform that would contain the entire dependency management.

User BOM:
 - contains _only_ artifacts for the projects we are distributing (drools, jbpm, optapalnner)
 - does not contain dep. mgmt for any 3rd party artifacts
 - useful when one already uses a platform and only wants to depend on BRMS/BPMSuite artifacts

Platform BOM
 - easier to use, because it contains dep. mgmt. for all 3rd party deps
 - there should be a disclaimer that one can only use single platform BOM. Using two platform BOMs would likely lead to dependency clashes
 - good starting point for developers in case they don't need to depend on any other platform bom


WDYT? Could we create this additional BOM and document that?

Comment 8 Petr Kočandrle 2015-09-01 14:22:32 UTC
I'm not sure if introduction of another BOM is a good idea. We already allow users to choose from 2 BOMs depending on if they want Java EE6 support (see [1]). With this approach we should create 2 platform BOMs too, one with Java EE6 support and one without it, so a customer would have to choose from 4 BOMs. Or did you mean to add it into the BOM supporting the Java EE6 and possibly rename it to better reflect its new purpose?

[1] https://access.redhat.com/documentation/en-US/Red_Hat_JBoss_BPM_Suite/6.1/html/Installation_Guide/Dependency_Management.html

Comment 9 Petr Široký 2015-09-01 14:50:42 UTC
From my point of view the BOMS + Java EE6 BOM was a mistake. We should only have BRMS BOMs and if one needs Java EE stuff there are plenty of EAP BOMs to choose from.

I think that BRMS + Java EE is not actually a platform BOM. It just combines two user BOMs (but the line there is rather thin).

We really should not remove any BOMs at this stage (patch release). However, altering the current jboss-brms-bpmsuite-bom by importing kie-parent-with-dependencies may change the behavior of projects using it (not mentioning it would mean we would not have a user BOM at all).

Although not ideal, I still think that adding a new BOM is best option.

Comment 10 Marek Winkler 2015-09-01 16:20:11 UTC
I can confirm that the tests pass when I import kie-parent-with-dependencies in <dependencyManagement> section.

I agree with Petr Siroky that adding a new BOM might be good idea, we would not alter existing behavior, and users running into this issue could be advised to use the new BOM. Afaik, it would be more aligned with product 6.2.x branch.

Comment 11 Petr Kočandrle 2015-09-01 20:21:16 UTC
OK, your explanation sounds reasonable and I also think that removing the Java EE BOM in future versions is a good idea.

In the meantime I found out what is the cause of the missing artifact in the repo while required by Maven - usage of kie-server-client as one of the roots causes dependency grapher to use its dependency management and since it is a descendant of kie-parent-with-deendencies, you get the dependency management with jboss-logging 3.1.4.GA-redhat-2, but when you declare it as a dependency in your project, then its dependency management gets ignored.

I have a fix/workaround for this which I will apply it on future builds, but if we declare a new platform BOM as described, then I'll use it and the result will be the same.

Comment 12 Petr Široký 2015-09-02 13:40:46 UTC
PR with new brms-bpmsuite-platform-bom created: https://github.com/jboss-developer/jboss-brms-boms/pull/3

Comment 13 Ryan Zhang 2015-09-09 05:41:13 UTC
(In reply to Petr Siroky from comment #12)
> PR with new brms-bpmsuite-platform-bom created:
> https://github.com/jboss-developer/jboss-brms-boms/pull/3

This looks very good to me.
My original thoughts was to updates the docs to guide customer to import the kie-parent-with-dependencies by themself. (I also agree import kie-parent-with-deps in jboss-brms-bpmsuite-bom is not good idea)

The final solution should be better from customer's perspective.

Thanks for the PR. I will put them in 6.1.3.CR2.

Comment 14 Marek Winkler 2015-09-10 22:13:36 UTC
Petr,

it seems that the new BOM (org.jboss.bom.brms:jboss-brms-bpmsuite-platform-bom:pom:6.1.3.GA-redhat-2) is not included in the Maven repository for 6.1.3.CR2.

I checked also the list at [1] and the BOM is indeed not included there.

Can we get another Maven repo build? Thanks!

[1] http://dev138.mw.lab.eng.bos.redhat.com/candidate/brms-6.1.3.CR2/20150910/jboss-brms-bpmsuite-6.1.3.GA-redhat-2-incremental-maven-repository.text

Comment 15 Petr Kočandrle 2015-09-11 08:43:53 UTC
The repo has been rebuilt and is available at [1]. The only difference is the requested BOM. I forgot that I need to add it into root list, not just use it during the repo build to manage the resulting versions.

[1] http://dev138.mw.lab.eng.bos.redhat.com/candidate/bpmsuite-6.1.3.CR2/20150911/

Comment 16 Tibor Zimanyi 2015-09-11 12:28:13 UTC
Verified. The bom is now there. Thanks.