Skip to main content

[JIRA] Commented: (SERVLET_SPEC-36) Clarify relationship of metadata-complete and ServletContainerInitializers

  • From: "Mark Struberg (JIRA)" <jira-no-reply@...>
  • To: issues@...
  • Subject: [JIRA] Commented: (SERVLET_SPEC-36) Clarify relationship of metadata-complete and ServletContainerInitializers
  • Date: Wed, 1 Aug 2012 07:18:56 +0000 (GMT+00:00)
  • Auto-submitted: auto-generated


    [ 
http://java.net/jira/browse/SERVLET_SPEC-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=344063#action_344063
 ] 

Mark Struberg commented on SERVLET_SPEC-36:
-------------------------------------------

> If we interpret 8.2.1 as no processing for "all" annotation, then does it 
> means that CDI annotations should not be processed. 
You are mixing apples with eggs. What does the CDI annotations have to do 
with servlet specific annotations?

The main point here is: if you don't allow a user to disable the SCI somehow, 
then this might be a major pain in some situations!

In our case it IS already a major pain that SCI automatically start if there 
is no web.xml. Not only the vastly higher scan times, but e.g. JSF defines 
that a SCI must be present for automatically starting JSF. In our case this 
did lead to starting JSF for our resources webapp which contains no JSF at 
all! It just blew up on servlet-3.0 containers and we had to do crazy things 
to get rid of it. 

I'm perfectly fine if an empty <absolute-ordering/> finally will disable SCI 
pickup!



Please allow me to ask for another clarification:
What is the lifecycle of the SCI? It's name "Serlvet CONTAINER Initializer" 
indicates that this only gets scanned 1 time when the container boots. 
Completely independent of any web application deployed therein. 
8.2.4 "An instance of the ServletContainerInitializer is looked up via the 
jar services API by the container at container / application startup time"

It also defines when the onStartup method gets called, but I have not yet 
understood if there is 1 SCI instance per webapp and SCI-Class or if the 
container startup creates a singleton for the whole container and all webapps 
invoke the onStartup to the same instance? Is this mentioned somewhere? This 
has a major impact about how to write the SCIs. Please also think about 
having 2 webapps containing jsf-impl.jar in their WEB-INF/lib (so the same 
JsfSCI but in 2 different isolated classloaders) vs  having the jsf-impl.jar 
in a container lib dir.



> Clarify relationship of metadata-complete and ServletContainerInitializers
> --------------------------------------------------------------------------
>
>                 Key: SERVLET_SPEC-36
>                 URL: http://java.net/jira/browse/SERVLET_SPEC-36
>             Project: servlet-spec
>          Issue Type: Bug
>            Reporter: janbartel
>            Assignee: Shing Wai Chan
>
> Servlet Spec 3.0 does not make clear what relationship exists between 
> metadata-complete setting in web.xml and the discovering and invocation of 
> ServletContainerInitializers.
> The stated purpose of ServletContainerInitializers is to allow for 
> pluggable framework initialization, and the given example is initializing 
> the JSP container. This implies that a setting of metadata-complete=true is 
> irrelevant to the finding and calling of ServletContainerInitializers.
> If so, even if metata-complete==true for a given webapp, then we are forced 
> to scan every class available to the webapp in the case that a discovered 
> ServletContainerInitializer has a @HandlesTypes annotation - if the 
> HandlesTypes specifies an annotation, then we will scan every class for 
> that annotation, or if HandlesTypes specifies a class, then we need to scan 
> for that class and its descendants. This can take a significant amount of 
> time for a webapp with a large number of jars in WEB-INF/lib.
> Please clarify if this is correct, or if metatadata-complete==true means 
> that all ServletContainerInitializers are ignored.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://java.net/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


[JIRA] Commented: (SERVLET_SPEC-36) Clarify relationship of metadata-complete and ServletContainerInitializers

Mark Struberg (JIRA) 08/01/2012
 
 
Close
loading
Please Confirm
Close