EAP 6.1.1 ER3 introduced 18 new files in jboss-eap-6.1/modules/system/layers/base/org/apache/cxf/impl/main folder. There is regression in cxf-rt-ws-security-2.6.8-redhat-1.jar which doesn't contain META-INF/jandex.idx This index was externalized to cxf-rt-ws-security-2.6.8-redhat-1-jandex.jar Please revert changes in build and move META-INF/jandex.idx back into cxf-rt-ws-security-2.6.8-redhat-1.jar. META-INF/jandex.idx in cxf-rt-ws-security is necessary for correct functionality. Confirmed by developers. The remaining jandex.jar files are just garbage which is not used at all. module.xml in jboss-eap-6.1/modules/system/layers/base/org/apache/cxf/impl/main is referencing cxf-rt-ws-security-2.6.8-redhat-1-jandex.jar Build was probably done by Lin Gao.
Just for confirmation - jandex is needed for cxf-rt-ws-security jar
This should be fixed in the new build of cxf for ER4 http://git.app.eng.bos.redhat.com/?p=apache/cxf.git;a=commitdiff;h=54b9533ff8ecc9558399e2d1227facb502352b45
ER3 situation - http://pastebin.test.redhat.com/155091 ER2 situation - http://pastebin.test.redhat.com/155092
Looks like this was not correctly fixed in ER4. Should be fixed in ER5.
Moreover, in ER4 used naming is wrong, CXF's artifacts uses cxf-(.*)-2.6.8.redhat-4.jar instead of cxf-(.*)-2.6.8-redhat-4.jar (<version>.redhat... should be <version>-redhat...)
> cxf-(.*)-2.6.8.redhat-4.jar instead of cxf-(.*)-2.6.8-redhat-4.jar Does this version cause a problem? This was changed to follow OSGi version standards. And the plan is for future versions to follow this convention. Versions will look like one of the following: 1.0.0.Final-redhat-X 1.0.0.redhat-X
First - I don't think any filename as above can cause an issue itself, mainly if correct name is listed in appropriate module.xml. I understand '1.0.0.Final' or '1.0.0' as version string of component/artifact. I don't understand why we don't use either '.' or '-' (but only one chosen) for concatenation with string 'redhat-X' (the sign of productized, signed etc. artifact(s) by Red Hat). Following this way I mean to use either (1.0.0.Final.redhat-X and 1.0.0.redhat-X) or (1.0.0.Final-redhat-X and 1.0.0-redhat-X). Is there an agreement about this already? At least one component (e.g. CXF) should use the uniform naming convention for every included JARs. So I can see an issue in CXF now: cxf-xjc-dv-2.6.0-redhat-2.jar vs cxf-tools-common-2.6.8.redhat-4.jar. Finally all components in EAP should follow the same naming convention.
We have a doc which defines community project versions: https://community.jboss.org/wiki/JBossProjectVersioning The problem is that Apache CXF and other thirdparty projects don't follow our version standard. The OSGi spec requires versions to look like this: X.Y.Z.qualifier So if we use "1.0.0-redhat-X" it's not valid according to the OSGi spec. Also "1.0.0.Final.redhat-X" is not valid. So it creates a weird requirement where we need to add either -redhat-X or .redhat-X depending on the upstream version. I'd be ok with deciding that we just want to stick with -redhat-X all the time but I guess we'd just have to check that this works ok with our OSGi use cases.
Just an additional note about why this issue occurred. The jandex generation was added into the github sources in this commit: https://github.com/jbossas/jboss-eap/commit/203d1b98eb944f4557962aae6c948c1f033de28d I added a commit to the internal eap sources to remove the jandex generation.
Paul, can you provide move details on the last comment? so basically the productized artifacts do not need to have the jandex generation performed when building up the AS, while that is needed when using the upstream artifacts? Btw, I think there's possibly a glitch in the AS build if the jandex="true" for cxf-rt-ws-security is causing any jars in the same module to created a corresponding jandex archive.
I have to re-open this issue again. file jandex.idx isn't now deployed to system as a separate file (*.jandex.jar), but it is still included in e.g. cxf-rt-bindings-coloc.jar or cxf-rt-bindings-object.jar (and all other affected - see above). Correct state of jandex.idx presence should be based on previous state from ER2 build - see Rosta's comment #c3.
Alessio, that's correct, the product build does not need to have jandex generation performed during the AS build because the product build of Apache CXF already includes the jandex information. Yes, setting jandex="true" for one jar in a module will generate the jandex files for all the files in the module.
Ok, so I'll rebuild apache cxf and make sure that only cxf-rt-ws-security includes the jandex index.
Fix in git: http://git.app.eng.bos.redhat.com/?p=apache/cxf.git;a=commitdiff;h=895aae6ad84522ac6750b70f6e65e6146b9ac41a New build: https://brewweb.devel.redhat.com/buildinfo?buildID=287870
Verified in EAP 6.1.1 ER6 [rsvoboda@steve 611ER6]$ cd ./jboss-eap-6.1/modules/system/layers/base/org/apache/cxf/impl/main/ [rsvoboda@steve main]$ for i in `ls *.jar`; do echo $i; unzip -l $i | grep META-INF/jandex.idx; done cxf-rt-bindings-coloc-2.6.8.redhat-6.jar cxf-rt-bindings-object-2.6.8.redhat-6.jar cxf-rt-bindings-soap-2.6.8.redhat-6.jar cxf-rt-bindings-xml-2.6.8.redhat-6.jar cxf-rt-core-2.6.8.redhat-6.jar cxf-rt-databinding-aegis-2.6.8.redhat-6.jar cxf-rt-databinding-jaxb-2.6.8.redhat-6.jar cxf-rt-frontend-jaxws-2.6.8.redhat-6.jar cxf-rt-frontend-simple-2.6.8.redhat-6.jar cxf-rt-management-2.6.8.redhat-6.jar cxf-rt-transports-http-2.6.8.redhat-6.jar cxf-rt-transports-jms-2.6.8.redhat-6.jar cxf-rt-transports-local-2.6.8.redhat-6.jar cxf-rt-ws-addr-2.6.8.redhat-6.jar cxf-rt-ws-mex-2.6.8.redhat-6.jar cxf-rt-ws-policy-2.6.8.redhat-6.jar cxf-rt-ws-rm-2.6.8.redhat-6.jar cxf-rt-ws-security-2.6.8.redhat-6.jar 28928 08-15-2013 12:34 META-INF/jandex.idx cxf-services-sts-core-2.6.8.redhat-6.jar cxf-tools-common-2.6.8.redhat-6.jar cxf-tools-java2ws-2.6.8.redhat-6.jar cxf-tools-validator-2.6.8.redhat-6.jar cxf-tools-wsdlto-core-2.6.8.redhat-6.jar cxf-tools-wsdlto-databinding-jaxb-2.6.8.redhat-6.jar cxf-tools-wsdlto-frontend-jaxws-2.6.8.redhat-6.jar cxf-xjc-boolean-2.6.0.redhat-4.jar cxf-xjc-dv-2.6.0.redhat-4.jar cxf-xjc-ts-2.6.0.redhat-4.jar