<div dir="ltr"><div><span class="gmail-im" style="font-size:12.800000190734863px">Hi,</span></div><div><span class="gmail-im" style="font-size:12.800000190734863px"><br></span></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div><div class="gmail_extra"><span class="gmail-im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>jsf_core.tld adds &#39;com.sun.faces.config.Configur<wbr>eListener&#39;, which then causes JSF classes to be loaded.</div></div></div></div></blockquote></span></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div><div class="gmail_extra"><span class="gmail-im"><div><br></div></span></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div><div class="gmail_extra"><span class="gmail-im"><div>Ah, right. That code is JBoss specific and something that JBoss does. I was thinking whether the Mojarra FacesInitizalizer did something wrong somewhere.</div></span></div></div></blockquote><div style="font-size:12.800000190734863px"><br></div><div style="font-size:12.800000190734863px">I am pretty sure most containers will do something similar, as according to the spec we need to be able to run listeners defined in TLD&#39;s, which mean they need to be parsed at deployment time.</div><div style="font-size:12.800000190734863px"><br></div><div style="font-size:12.800000190734863px">The only way around it is to try and determine earlier if Mojarra is actually needed or not in app server code, which has a lot more flexibility. Mojarra can only do what the various specs allow it to do, and there is not really any way around this just using Servlet/JSP API&#39;s.</div><div style="font-size:12.800000190734863px"><br></div><div style="font-size:12.800000190734863px"><br></div></blockquote><span style="font-size:12.800000190734863px">That&#39;s not quite correct any more I think. jsf_core.tld is an ancient artefact that&#39;s only there for backwards compatibility. </span><span style="font-size:12.800000190734863px">Since quite a long time Mojarra adds `com.sun.faces.config.ConfigureListener` itself using the ServletContainerInitializer and Servlet 3.0 programmatic registration:</span><div><span style="font-size:12.800000190734863px"><br></span></div><div><span style="font-size:12.800000190734863px">servletContext.addListener(com.sun.faces.config.ConfigureListener.class);</span><br></div><div><span style="font-size:12.800000190734863px"><br></span></div><div><span style="font-size:12.800000190734863px">The *-taglib.xml variants are the current versions. (Mojarra 2.4 pre-parses its own internal ones during the build.) </span><span style="font-size:12.800000190734863px">I&#39;m also patching in my friend Bauke who may be able to confirm or further explain this if needed. </span></div><div><span style="font-size:12.800000190734863px"><br></span></div><div><span style="font-size:12.800000190734863px">You are right though that other containers have somewhat similar potentially outdated code present. GlassFish/Payara for instance look whether the &quot;javax.faces.webapp.FacesServlet&quot; is actually added (programmatically or otherwise), so they&#39;ll leave the detection part to the JSF implementation (Mojarra) and only use a single trigger point. I&#39;m fairly sure this can be removed in Payara as well, so I&#39;ll look into removing it there if indeed possible.</span></div><div><span style="font-size:12.800000190734863px"><br></span></div><div><span style="font-size:12.800000190734863px">You are also right that the container often has more flexibility, although technically a JSF implementation is not constrained to just using Servlet or EE APIs, but since we want Mojarra to be able to run on other container we practically do constrain ourselves of course ;)</span></div><div><span style="font-size:12.800000190734863px"><br></span></div><div><span style="font-size:12.800000190734863px">Kind regards,</span></div><div><span style="font-size:12.800000190734863px">Arjan</span></div><div><span style="font-size:12.800000190734863px"><br></span></div><div><span style="font-size:12.800000190734863px"><br></span><div><span style="font-size:12.800000190734863px"><br></span></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Apr 4, 2018 at 1:42 AM, arjan tijms <span dir="ltr">&lt;<a href="mailto:arjan.tijms@gmail.com" target="_blank">arjan.tijms@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span style="font-size:12.800000190734863px">Hi,</span><br style="font-size:12.800000190734863px"><div class="gmail_extra" style="font-size:12.800000190734863px"><br><div class="gmail_quote"><span class=""><span class="m_2513106008056941462gmail-im">On Wed, Apr 4, 2018 at 1:33 AM, Stuart Douglas <span dir="ltr">&lt;<a href="mailto:stuart.w.douglas@gmail.com" target="_blank">stuart.w.douglas@<wbr>gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="m_2513106008056941462gmail-m_-4207190872959104675gmail-"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">I do wonder about parsing TLDs. Which one do you exactly mean, and when are they being parsed in your test case?<br></div></div></div></blockquote><div><br></div></span><div><a href="https://github.com/wildfly/wildfly/blob/master/jsf/subsystem/src/main/java/org/jboss/as/jsf/deployment/JSFSharedTldsProcessor.java#L53" target="_blank">https://github.com/wildfly/wil<wbr>dfly/blob/master/jsf/subsystem<wbr>/src/main/java/org/jboss/as/js<wbr>f/deployment/JSFSharedTldsProc<wbr>essor.java#L53</a><br></div><div><br></div><div>jsf_core.tld adds &#39;com.sun.faces.config.Configur<wbr>eListener&#39;, which then causes JSF classes to be loaded.</div></div></div></div></blockquote><div><br></div></span></span><span class=""><div>Ah, right. That code is JBoss specific and something that JBoss does. I was thinking whether the Mojarra FacesInitizalizer did something wrong somewhere.</div><div><br></div><div>Kind regards,</div><div>Arjan</div></span></div></div></div>
</blockquote></div><br></div>