[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| Re: [jakartaee-platform-dev] [servlet-dev] Assumption that WAR can contain SE service files (for CDI extensions) causes TCK failures | 
Resending to all addressees
On 23/05/2022 15:30, arjan tijms wrote:
The CDI TCK makes in 3 of its tests the assumption that a .war can 
contain a CDI extension (configured by a file 
in "WEB-INF/classes/META-INF/services")
<snip/>
GlassFish fails all these tests. We always look in [root]/META-INF to 
check for this, e.g.:
<snip/>
I assume you mean you only look in JARs. It certainly isn't valid to 
look for those files in test.war!/META-INF/services
<snip/>
In short, I'm not sure it's defined anywhere that a Servlet container 
should be able to load SE service files from 
"WEB-INF/classes/META-INF/services", as the spec only ever talks about 
jars in WEB-INF/lib.
Agreed.
Now I love that this would be defined indeed, and that WAR archives can 
officially contain services such as the CDI extension and 
ServletContainerInitializer in "WEB-INF/classes/META-INF/services", but 
I'm not sure this is the case.
Thoughts?
The background for checking "WEB-INF/classes/META-INF/services" in 
Tomcat was IDE integration. If working on a WAR during development, some 
IDEs mapped the output of their build process to "WEB-INF/classes" to 
support in-place editing (with appropriate reloading of the web app).
The SCI definitions were copied to the same location as static files. 
Loading SE service files from "WEB-INF/classes/META-INF/services" 
enabled them to be found without the IDEs having to packaging everything 
as a JAR.
I've no objection to Servlet ${next} making this an explicit requirement.
Mark