Bug 1345752

Summary: Unnecessary artifacts in maven repository
Product: [JBoss] JBoss Data Virtualization 6 Reporter: Juraj Duráni <jdurani>
Component: DistributionAssignee: Petr Kočandrle <pkocandr>
Status: CLOSED CURRENTRELEASE QA Contact: Juraj Duráni <jdurani>
Severity: low Docs Contact:
Priority: medium    
Version: 6.3.0CC: aszczucz, drieden, jolee, lfabriko, mbaluch, thauser
Target Milestone: ER5   
Target Release: 6.3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-08-24 11:38:07 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
dependency-not-found errors none

Description Juraj Duráni 2016-06-13 06:45:27 UTC
Created attachment 1167243 [details]
dependency-not-found errors

Description of problem:
Maven repository contains some artifacts, which seem to be not referenced by any Teiid/ModeShape related artifact [1]. Those artifacts cause depedency-not-found errors (which, I suppose, are not very serious) in testing because there are unsatisfied dependencies for those artifacts.
For more details see attachment [2]. In the report, you can see that none of the paths contains Teiid/ModeShape related artifact. Therefore, I think that those dependencies could be removed from the repository. Removing them from the repo could also decrease size of the repository.

Additional info:
I removed mentioned artifacts and tried to build quickstarts and create new connector and translator project via archetype. Both tests pass.

[1] unnecessary artifacts:
org.apache.juddi.scout:scout:pom:1.2.6.redhat-3
org.apache.juddi:juddi-client:pom:3.1.3.redhat-3
org.apache.cxf:cxf-tools-java2ws:pom:2.7.18.redhat-1
org.apache.cxf.services.ws-discovery:cxf-services-ws-discovery-api:pom:2.7.18.redhat-1
org.apache.neethi:neethi:pom:3.0.2.redhat-3
org.hibernate:hibernate-search-orm:pom:4.6.0.Final-redhat-2
org.scannotation:scannotation:pom:1.0.3.redhat-4
org.jboss.as:jboss-as-core-model-test-framework:pom:7.5.8.Final-redhat-2
org.jboss.as:jboss-as-core-model-test:pom:7.5.8.Final-redhat-2
org.jboss.as:jboss-as-jsf-injection:pom:7.5.8.Final-redhat-2
org.jboss.jbossts.arjunacore:arjunacore:pom:4.17.32.Final-redhat-1
org.jboss.jbossts.xts:jbossxts:pom:4.17.32.Final-redhat-1
org.jboss.jbossts:jbosstxbridge:pom:4.17.32.Final-redhat-1
org.jboss.remotingjmx:remoting-jmx:pom:1.1.3.Final-redhat-2
org.jboss.seam.integration:jboss-seam-int-jbossas:pom:6.0.0.GA-redhat-3
org.hornetq:hornetq-jms-server:pom:2.3.25.SP9-redhat-1
org.picketbox:picketbox-infinispan:pom:4.1.2.Final-redhat-1
org.opensaml:xmltooling:pom:1.3.4.redhat-3
net.java.dev.msv:msv-core:pom:2011.1-redhat-2
relaxngcc:relaxngcc:pom:1.12-redhat-2

[2]
For each missing dependency (miss:...) you can see which artifact depends on it (one or more from:...) with optional "transitive path" if it is not a direct dependency (path:...).

Comment 1 Alex Szczuczko 2016-06-13 13:15:00 UTC
The repo builder uses one of the most complete dependency detection systems (not all dependencies are properly declared in POM files unfortunately), but it is pretty complicated, so might be including things by mistake.

I don't know what process the validator uses for its depedency-not-found check, but if it's just looking at the dependency entries in the poms, that's only going to be valid in some/most cases.

Comment 2 Juraj Duráni 2016-06-14 05:33:01 UTC
Yes, that's exactly what it is doing. It tries to resolve all dependencies in POM in provided repositories (validated repository, maven central, and optionally some more).

Comment 3 Petr Kočandrle 2016-06-16 12:40:12 UTC
* org.scannotation:scannotation:pom:1.0.3.redhat-4 is required to build org.jboss.teiid.quickstart:webservices-as-a-datasource:3.0.0.redhat-63-8
* org.jboss.remotingjmx:remoting-jmx:1.1.3.Final-redhat-2 is a transitive dependency of teiid-adminshell and teiid-jboss-admin
* net.java.dev.msv:msv-core:2011.1-redhat-2 is a transitive dependency of org.modeshape:modeshape-web-jcr-rest-war:3.8.4.GA-redhat-8 which is one of the roots used for repo generation, but is not included in the end because it is a war artifact; apart from that it is optional transitive dependency of many quickstarts introduced by maven-compiler-plugin and the version is managed by our BOM... but in this case I'm not sure if a plugin's dependencies can be managed by a BOM, so this is probably wrong

The rest (and also those mentioned above) are pulled in as dependencies of org.jboss.teiid:test-integration-common:8.12.5.redhat-6 which unpacks jboss-as-dist on which they depend transitively. I think they should not be included, because we don't need to have test-integration-common rebuildable with the repo and the jboss-as-dist is a buildtime dependency. BTW should we include test-integration-* at all?

Comment 4 Petr Kočandrle 2016-06-16 13:11:36 UTC
And regarding the missing dependencies - they are managed by our BOM to different version or not managed by the BOM, so the version from the pom is used, e.g.
* jaxb-impl is managed to version 2.2.5.redhat-9 (included)
* jaxws-rt is not managed, so 2.1.4 available in central is used
* commons-collections is managed to version 3.2.1.redhat-7
* ...

So I think the validator is not set up correctly to use the same BOM as we do with the repository build or there is a bug. And please note that not all artifacts in the repository should match the versions in the BOM, because for quickstart builds the BOM is not injected by the repository builder, but it relies on the one used in the quickstart's pom, so they can resolve different versions if they use different BOM.

Comment 5 Lucie Fabrikova 2016-07-04 10:08:36 UTC
In maven repository of ER5, all mentioned artifacts are removed except for:
org.scannotation:scannotation:pom:1.0.3.redhat-4
org.jboss.remotingjmx:remoting-jmx:pom:1.1.3.Final-redhat-2

Comment 6 Juraj Duráni 2016-07-07 05:16:38 UTC
Setting to VERIFIED. See comments 3 and 5.