Bug 1257907
Summary: | Maven repo: missing artifact org.jboss.logging:jboss-logging | ||
---|---|---|---|
Product: | [Retired] JBoss BRMS Platform 6 | Reporter: | Marek Winkler <mwinkler> |
Component: | Maven Repository | Assignee: | Ryan Zhang <rzhang> |
Status: | CLOSED EOL | QA Contact: | Marek Winkler <mwinkler> |
Severity: | high | Docs Contact: | |
Priority: | high | ||
Version: | 6.1.0 | CC: | 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
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. Ryan, take care of the BOM update please. 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. 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? 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 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. 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. 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. PR with new brms-bpmsuite-platform-bom created: https://github.com/jboss-developer/jboss-brms-boms/pull/3 (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. 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 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/ Verified. The bom is now there. Thanks. |