Bug 997877 - Unavailable artifacts referenced in the main EAP BOM
Unavailable artifacts referenced in the main EAP BOM
Status: CLOSED CURRENTRELEASE
Product: JBoss Enterprise Application Platform 6
Classification: JBoss
Component: Maven Repository (Show other bugs)
6.1.1
Unspecified Unspecified
unspecified Severity urgent
: ER7
: EAP 6.1.1
Assigned To: Paul Gier
Nikoleta Ziakova
Russell Dickenson
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2013-08-16 07:04 EDT by Rostislav Svoboda
Modified: 2013-09-25 10:47 EDT (History)
5 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-09-16 16:23:27 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
settings.xml (2.15 KB, text/xml)
2013-08-16 07:05 EDT, Rostislav Svoboda
no flags Details
jboss-dependency-management-eap-6.1.1.Final-redhat-55.pom-test-pom (44.20 KB, application/xml)
2013-08-16 07:06 EDT, Rostislav Svoboda
no flags Details
jboss-dependency-management-eap-6.1.1.Final-redhat-55.pom (70.41 KB, application/xml)
2013-08-16 07:07 EDT, Rostislav Svoboda
no flags Details

  None (edit)
Description Rostislav Svoboda 2013-08-16 07:04:22 EDT
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 07:05:24 EDT
Created attachment 787217 [details]
settings.xml
Comment 2 Rostislav Svoboda 2013-08-16 07:06:05 EDT
Created attachment 787218 [details]
jboss-dependency-management-eap-6.1.1.Final-redhat-55.pom-test-pom
Comment 3 Rostislav Svoboda 2013-08-16 07:07:26 EDT
Created attachment 787220 [details]
jboss-dependency-management-eap-6.1.1.Final-redhat-55.pom
Comment 4 Paul Gier 2013-08-16 09:15:49 EDT
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 09:56:02 EDT
(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 Ziakova 2013-08-16 10:07:19 EDT
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 10:47:11 EDT
(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 11:31:49 EDT
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 04:02:47 EDT
> 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 Ziakova 2013-08-22 05:18:34 EDT
Verified for EAP 6.1.1 ER7. Not productized artifacts are listed in BZ 991358

Note You need to log in before you can comment on or make changes to this bug.