Bug 997877

Summary: Unavailable artifacts referenced in the main EAP BOM
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: Rostislav Svoboda <rsvoboda>
Component: Maven RepositoryAssignee: Paul Gier <pgier>
Status: CLOSED CURRENTRELEASE QA Contact: Nikoleta Hlavickova <nziakova>
Severity: urgent Docs Contact: Russell Dickenson <rdickens>
Priority: unspecified    
Version: 6.1.1CC: bsutter, kpiwko, myarboro, pslavice, ttarrant
Target Milestone: ER7   
Target Release: EAP 6.1.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-09-16 20:23:27 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:
Attachments:
Description Flags
settings.xml
none
jboss-dependency-management-eap-6.1.1.Final-redhat-55.pom-test-pom
none
jboss-dependency-management-eap-6.1.1.Final-redhat-55.pom none

Description Rostislav Svoboda 2013-08-16 11:04:22 UTC
This is problem for customers and layered products, they are not able to get all supported jars from maven repo zip. Item (A) blocks BOM usage from public online repo.

According information from productization team in comment https://bugzilla.redhat.com/show_bug.cgi?id=985894#c18 from 2013-08-15: Full list of supported jars for EAP 6.1.1 GA is in the main EAP BOM (org.jboss.component.management:jboss-dependency-management-eap:6.1.1.Final-redhat-X). For EAP 6.1.1 ER6 the version is 6.1.1.Final-redhat-55.

I used this BOM from customer perspective and imported all supported/defined dependencies into my testing pom file. I executed dependency:tree and dependency:copy-dependencies goal for maven to get supported jars. The result is failure, I can't get expected files.

So I tried to dig deeper and here are my results:
 (A) Expected type not defined in BOM - <type>pom</type> must be defined
      org.jboss.as:jboss-as-clustering
      org.jboss.as:jboss-as-console-parent
      org.jboss.as:jboss-as-console-bom
      org.jboss.as:jboss-as-console-build

 (B) Dependency defined in BOM is not available
      org.jboss.as:console-spi
      org.jboss.as:diagnostics
      org.jboss.as:jboss-as-console
      org.jboss.as:jboss-as-console-core
      org.jboss.as:jboss-as-console-extension
      org.jboss.as:jboss-as-console-resources
      org.jboss.as:jboss-as-core-model-test
      org.jboss.as:jboss-as-core-model-test-framework
      org.jboss.as:jboss-as-core-model-test-controller-optional
      org.jboss.as:jboss-as-core-model-test-controller-7.1.2
      org.jboss.as:jboss-as-managed-beans
      org.jboss.as:jboss-as-osgi-launcher
      org.jboss.as:jboss-as-sos
      org.jboss.as:jboss-as-testsuite-protocol-base
      org.jboss.as:jboss-as-testsuite-protocol-modules
      org.jboss.as:jboss-as-testsuite-shared

 (C) Dependency defined in BOM doesn't have available in maven repo zip
      org.jboss.as:jboss-as-console-build is missing:
          org.jboss.as:jboss-as-console not available
          org.jboss.as:jboss-as-consolejboss-as-console-core not available
          org.jboss.as:jboss-as-console-extension not available
          org.jboss.as:jboss-as-console-resources not available

      com.sun.xml.messaging.saaj:saaj-impl
          org.jvnet:mimepull:jar:1.2-redhat-2 not available

      org.jacorb:jacorb
          org.slf4j:slf4j-jdk14:jar:1.7.2-redhat-1 not available

      org.apache.cxf:cxf-tools-java2ws
          org.apache.cxf:cxf-rt-javascript:jar:2.6.8.redhat-6 not available

      org.apache.felix:org.apache.felix.log
          org.osgi:org.osgi.compendium:jar:4.2.0-redhat-2 not available

      org.hibernate:hibernate-infinispan
          org.rhq.helpers:rhq-pluginAnnotations:jar:3.0.4-redhat-2 not available

      org.jboss.hal:release-stream
          org.jboss.as:jboss-as-console-resources:war:1.5.5.Final-redhat-3 not available

      org.jboss.jbossts:jbosstxbridge
          org.jboss.jbossts.jta:narayana-jta:jar:4.17.7.Final-redhat-3 not available

      org.jboss.resteasy:resteasy-cdi
          org.jboss.resteasy:jaxrs-api:jar:2.3.6.Final-redhat-1 not available

      org.jboss.resteasy:resteasy-jsapi
          org.jboss.resteasy:jaxrs-api:jar:2.3.6.Final-redhat-1 not available

      org.opensaml:opensaml
          org.owasp.esapi:esapi:jar:2.0.1-redhat-1 not available

      org.picketbox:picketbox-infinispan
          org.picketbox:picketbox-spi-bare:jar:4.0.17.SP2-redhat-2 not available
          org.picketbox:jbosssx-bare:jar:4.0.17.SP2-redhat-2 not available

Details of testing:
 - 3 repositories enabled in settings.xml file
    - maven central repo (http://repo1.maven.org/maven2/)
    - http://repository.jboss.org/nexus/content/groups/public 
    - content of maven repo zip for EAP 6.1.1 ER6
 - command example
    - mvn -X -e -s settings.xml -f jboss-dependency-management-eap-6.1.1.Final-redhat-55.pom-test-pom -Dmaven.repo.local=local-repo dependency:tree
 - attached files:
    - settings.xml
    - jboss-dependency-management-eap-6.1.1.Final-redhat-55.pom-test-pom
    - modified jboss-dependency-management-eap-6.1.1.Final-redhat-55.pom
jboss-dependency-management-eap-6.1.1.Final-redhat-55.pom-test-pom and jboss-dependency-management-eap-6.1.1.Final-redhat-55.pom are modified to get at least some dependencies

Comment 1 Rostislav Svoboda 2013-08-16 11:05:24 UTC
Created attachment 787217 [details]
settings.xml

Comment 2 Rostislav Svoboda 2013-08-16 11:06:05 UTC
Created attachment 787218 [details]
jboss-dependency-management-eap-6.1.1.Final-redhat-55.pom-test-pom

Comment 3 Rostislav Svoboda 2013-08-16 11:07:26 UTC
Created attachment 787220 [details]
jboss-dependency-management-eap-6.1.1.Final-redhat-55.pom

Comment 4 Paul Gier 2013-08-16 13:15:49 UTC
Thanks for testing this, I should be able to incorporate this into our Maven repo tests.  We currently have something similar but it's not as strict.  The original requirement was to have the Maven repo zip basically match the contents of the runtime zip.  Anything else that is in the repo or in the BOM is only there because of transitive deps or quickstart use cases, so that's kind of the point of view I'm looking at this from.

(A) The BOM should be used only for managing the version, since really any of the dependencies could be specified as "POM" type.  I think we have to address this one just with documentation of supported use cases.

(B) These are not runtime jars, so they are actually not supported, I can remove these from the BOM in the next release.

(C) I believe this same issue existed for 6.1.0.  For 6.1.1 I can add these transitive dependencies into the repo zip.  For 6.2.0, we'll be rebuilding poms so that upstream versions are used for unsupported dependencies.  However, the inter-module dependencies are kind of a problem.  For example, we support picketbox-infinispan as part of the eap runtime, but not picketbox-spi-bare or jbosssx-bare.  Maybe these transitive deps should be marked optional in the picketbox-infinispan pom?

Is the problem significantly worse without jboss.org Nexus repo enabled?  Ideally, we'd like the repo zip to work with just central.

Comment 5 Rostislav Svoboda 2013-08-16 13:56:02 UTC
(A) Documentation is not enough, this must be fixed because of customers and layered products. BOM already contains information about type for some artifacts - e.g. jboss-as-ejb-client-bom.

(C) Please add missing dependencies and please verify that their dependencies are available too

@Nexus
I tried to remove nexus repo settings file and executed dependency tree command - FAIL - Could not find artifact org.jboss.naming:jnpserver:jar:5.0.3.GA

[DEBUG]    org.hornetq:hornetq-jms-server:jar:2.3.4.Final-redhat-1:compile
[DEBUG]       org.jboss.jbossts:jbossjts:jar:4.16.4.Final:compile
[DEBUG]       org.jboss.naming:jnpserver:jar:5.0.3.GA:compile

So for current issues identified in this BZ we need nexus repo enabled. If we disable it we will have more issues.

Comment 6 Nikoleta Hlavickova 2013-08-16 14:07:19 UTC
I was able to get the dependency tree without Nexus enabled - just with Central Maven repo and EAP 6.1.1 ER6 Maven repo. Two more dependencies from test POM file had to be removed, both because of the same artifact org.jboss.naming:jnpserver:jar:5.0.3.GA. 
The two dependencies are:
<dependency><groupId>org.hornetq</groupId><artifactId>hornetq-jms-server</artifactId><type>jar</type></dependency>
<dependency><groupId>org.infinispan</groupId><artifactId>infinispan-core</artifactId><type>jar</type></dependency>

Comment 7 Paul Gier 2013-08-16 14:47:11 UTC
(A) I will remove the type declaration for those deps from the BOM.  It's a bad practice to rely on the BOM to define the type.

(C) Yes, I will try to capture the full transitive tree.

Comment 8 Paul Gier 2013-08-16 15:31:49 UTC
Is it ok if I add org.jboss.naming:jnpserver:jar:5.0.3.GA and possibly other required jboss.org artifacts to the repo zip?  That would allow the bom dependencies to be resolved without the jboss.org repo.

Comment 12 Rostislav Svoboda 2013-08-19 08:02:47 UTC
> jboss.org artifacts to the repo zip? 

If we receive ER7 with rebuild of EAP because of HQ we want to have dependencies productized. Including artifacts mentioned in BZ 991358

If we receive ER7 just with maven repo fix and no rebuild in EAP bits we won't consider not productized bits as release blocker.

Comment 13 Nikoleta Hlavickova 2013-08-22 09:18:34 UTC
Verified for EAP 6.1.1 ER7. Not productized artifacts are listed in BZ 991358