On 22/09/17 15:16, Konstantin Kolinko wrote:
> 2017-09-22 0:16 GMT+03:00 Mark Thomas <[email protected]>:
>> Hi all,
>>
>> As of a few minutes ago the Servlet 4.0 API implementation in 9.0.x is
>> aligned with the 4.0 final release. It is also fully implemented. That
>> opens up the possibility of both beta and stable labels for the next
>> 9.0.x release. It also means that the next release will be a point
>> release, not a milestone release.
>>
>> I'll update the version number info accordingly shortly.
>
> Reviewing appendix A.1 "Changes Since Servlet 3.1" of Servlet 4.0
> spec, I noted two points:
>
> "8. Clarify metadata-complete in Section 8.1, “Annotations and pluggability”."
>
> Section 8.1. clarifies that the following annotations must be
> processed even when metadata-complete="false":
>
> "Annotations that do not have equivalents in the deployment XSD include
> javax.servlet.annotation.HandlesTypes and all of the CDI-related
> annotations. These annotations must be processed during annotation scanning,
> regardless of the value of “metadata-complete”."
I think we are compliant here. We do look for HandlesTypes matches when
metadata-complete="true" and we don't provide a CDI implementation.
>
> The code in DefaultInstanceManager
> [[[
> private Object newInstance(Object instance, Class<?> clazz)
> throws IllegalAccessException, InvocationTargetException,
> NamingException {
> if (!ignoreAnnotations) {
> Map<String, String> injections =
> assembleInjectionsFromClassHierarchy(clazz);
> populateAnnotationsCache(clazz, injections);
> processAnnotations(instance, injections);
> postConstruct(instance, clazz);
> }
> return instance;
> }
> ]]]
>
> "ignoreAnnotations" flag turns all annotation processing off.
I think that is consistent with 8.1 that lists all the annotations that
can be ignored with metadata-complete="true".
> "13. Remove DTDs and Schemas from binary artifact for Servlet API."
>
> I do not mind us continuing shipping those resources,
> but maybe there was some reason for their removal?
Let me check back in the EG archives...
<quote>
we intentionally stopped including the DTDs and XSDs in the
javax.servlet:javax.servlet-api JAR, because they are better maintained
outside of that jar. In the case of GlassFish, they end up in the dtds
and schemas directories, respectively.
</quote>
Looks like a Glassfish packaging decision.
I'm not seeing a need to package these elsewhere in Tomcat.
Mark
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]