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
Created attachment 787217 [details] settings.xml
Created attachment 787218 [details] jboss-dependency-management-eap-6.1.1.Final-redhat-55.pom-test-pom
Created attachment 787220 [details] jboss-dependency-management-eap-6.1.1.Final-redhat-55.pom
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.
(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.
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>
(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.
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.
> 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.
Verified for EAP 6.1.1 ER7. Not productized artifacts are listed in BZ 991358