While discussing issue 187548 Vince pointed out following problem:
The Servlet 3.0 spec section 8.2.1 says: "Only jar files that are packaged in WEB-INF/lib are scanned for META-INF/web-fragment.xml"
This is a problem when a web project is packaged into an EAR. In such a case all jars from WAR/WEB-INF/lib are moved to EAR/lib folder and that breaks above rule - none of web-fragment.xml presented in Web application will not be found.
Short term workaround:
Open Web project's project.xml and search for record representing a jar containing web-fragment.xml. It will look something like:
Change '200' to '300' (it does not make much logic because dirs attribute is currently used for something else then it was originally designed for; reason is backward compatibility of project files). After this change jar will be kept under WEB-INF/lib folder.
Long term solution:
There is a logic in place in <copyfiles> Ant task to not copy jar file in case jar contains a file with suffix TLD. This can be easily extended to include also check for META-INF/web-fragment.xml. The fix is localized to Ant task implementation.
Because workaround is available I'm filing this as P2. If NB 69 was not release this should be release notes candidate but it is too late for that. The problem should be fixed in Patch1.
Please verify bugfix for this bug, so it can be included in release691 repository.
Please verify bugfix for this bug, so it can be integrated into release691 repository.
I filed it and fixed and verified it but somebody else should perhaps verify it as well.
Martin, would you please verify this? Thanks.
Verified in the trunk build by QE.
main #0ac426471a9f transplanted to release691 #980964401841