Author: markt Date: Fri Nov 22 17:19:36 2013 New Revision: 1544606 URL: http://svn.apache.org/r1544606 Log: Switch from ServletContext attribute to init-param. Note that Jasper was incorrectly (now correctly) looking at init-params in some places.
Modified: tomcat/trunk/java/org/apache/catalina/Globals.java tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java tomcat/trunk/java/org/apache/jasper/Constants.java tomcat/trunk/java/org/apache/jasper/JspC.java tomcat/trunk/java/org/apache/jasper/compiler/ImplicitTagLibraryInfo.java tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java tomcat/trunk/java/org/apache/jasper/compiler/TldCache.java tomcat/trunk/java/org/apache/jasper/servlet/JasperInitializer.java Modified: tomcat/trunk/java/org/apache/catalina/Globals.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Globals.java?rev=1544606&r1=1544605&r2=1544606&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/Globals.java (original) +++ tomcat/trunk/java/org/apache/catalina/Globals.java Fri Nov 22 17:19:36 2013 @@ -272,21 +272,21 @@ public final class Globals { /** - * Name of the ServletContext attribute that determines if the JSP engine + * Name of the ServletContext init-param that determines if the JSP engine * should validate *.tld files when parsing them. * <p> * This must be kept in sync with org.apache.jasper.Constants */ - public static final String JASPER_XML_VALIDATION_TLD_ATTR = + public static final String JASPER_XML_VALIDATION_TLD_INIT_PARAM = "org.apache.jasper.XML_VALIDATE_TLD"; /** - * Name of the ServletContext attribute that determines if the JSP engine + * Name of the ServletContext init-param that determines if the JSP engine * should validate *.jspx and *.tagx files when parsing them. * <p> * This must be kept in sync with org.apache.jasper.Constants */ - public static final String JASPER_XML_VALIDATION_DOC_ATTR = + public static final String JASPER_XML_VALIDATION_DOC_INIT_PARAM = "org.apache.jasper.XML_VALIDATE_DOC"; } Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java?rev=1544606&r1=1544605&r2=1544606&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java Fri Nov 22 17:19:36 2013 @@ -220,15 +220,6 @@ public class ApplicationContext */ @Override public Object getAttribute(String name) { - // Special handling for XML validation as the context setting must - // always override anything that might have been set by an application. - if (Globals.JASPER_XML_VALIDATION_TLD_ATTR.equals(name) && - context.getTldValidation()) { - return Boolean.TRUE; - } else if (Globals.JASPER_XML_VALIDATION_DOC_ATTR.equals(name) && - context.getXmlValidationJspDoc()) { - return Boolean.TRUE; - } return (attributes.get(name)); } @@ -241,14 +232,6 @@ public class ApplicationContext public Enumeration<String> getAttributeNames() { Set<String> names = new HashSet<>(); names.addAll(attributes.keySet()); - // Special handling for XML validation as this attribute will always be - // available if validation has been enabled on the context - if (context.getTldValidation()) { - names.add(Globals.JASPER_XML_VALIDATION_TLD_ATTR); - } - if (context.getXmlValidationJspDoc()) { - names.add(Globals.JASPER_XML_VALIDATION_DOC_ATTR); - } return Collections.enumeration(names); } @@ -321,6 +304,15 @@ public class ApplicationContext */ @Override public String getInitParameter(final String name) { + // Special handling for XML validation as the context setting must + // always override anything that might have been set by an application. + if (Globals.JASPER_XML_VALIDATION_TLD_INIT_PARAM.equals(name) && + context.getTldValidation()) { + return "true"; + } else if (Globals.JASPER_XML_VALIDATION_DOC_INIT_PARAM.equals(name) && + context.getXmlValidationJspDoc()) { + return "true"; + } return parameters.get(name); } @@ -331,7 +323,17 @@ public class ApplicationContext */ @Override public Enumeration<String> getInitParameterNames() { - return Collections.enumeration(parameters.keySet()); + Set<String> names = new HashSet<>(); + names.addAll(parameters.keySet()); + // Special handling for XML validation as this attribute will always be + // available if validation has been enabled on the context + if (context.getTldValidation()) { + names.add(Globals.JASPER_XML_VALIDATION_TLD_INIT_PARAM); + } + if (context.getXmlValidationJspDoc()) { + names.add(Globals.JASPER_XML_VALIDATION_DOC_INIT_PARAM); + } + return Collections.enumeration(names); } Modified: tomcat/trunk/java/org/apache/jasper/Constants.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/Constants.java?rev=1544606&r1=1544605&r2=1544606&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/jasper/Constants.java (original) +++ tomcat/trunk/java/org/apache/jasper/Constants.java Fri Nov 22 17:19:36 2013 @@ -153,19 +153,19 @@ public class Constants { /** - * Name of the ServletContext attribute that determines if the XML parsers + * Name of the ServletContext init-param that determines if the XML parsers * used for *.tld files will be validating or not. * <p> * This must be kept in sync with org.apache.catalina.Globals */ - public static final String XML_VALIDATION_TLD_ATTR = "org.apache.jasper.XML_VALIDATE_TLD"; + public static final String XML_VALIDATION_TLD_INIT_PARAM = "org.apache.jasper.XML_VALIDATE_TLD"; /** - * Name of the ServletContext attribute that determines if the XML parsers + * Name of the ServletContext init-param that determines if the XML parsers * used for *.jspx and *.tagx files will be validating or not. * <p> * This must be kept in sync with org.apache.catalina.Globals */ - public static final String XML_VALIDATION_DOC_ATTR = "org.apache.jasper.XML_VALIDATE_DOC"; + public static final String XML_VALIDATION_DOC_INIT_PARAM = "org.apache.jasper.XML_VALIDATE_DOC"; } Modified: tomcat/trunk/java/org/apache/jasper/JspC.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/JspC.java?rev=1544606&r1=1544605&r2=1544606&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/jasper/JspC.java (original) +++ tomcat/trunk/java/org/apache/jasper/JspC.java Fri Nov 22 17:19:36 2013 @@ -1450,11 +1450,13 @@ public class JspC extends Task implement context = new JspCServletContext(log, resourceBase, classLoader); if (isValidateJspDoc()) { - context.setAttribute(Constants.XML_VALIDATION_DOC_ATTR, - Boolean.TRUE); + context.setInitParameter(Constants.XML_VALIDATION_DOC_INIT_PARAM, "true"); + } + if (isValidateTld()) { + context.setInitParameter(Constants.XML_VALIDATION_TLD_INIT_PARAM, "true"); } - TldScanner scanner = new TldScanner(context, true, validateTld); + TldScanner scanner = new TldScanner(context, true, isValidateTld()); scanner.setClassLoader(classLoader); try { Modified: tomcat/trunk/java/org/apache/jasper/compiler/ImplicitTagLibraryInfo.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/ImplicitTagLibraryInfo.java?rev=1544606&r1=1544605&r2=1544606&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/jasper/compiler/ImplicitTagLibraryInfo.java (original) +++ tomcat/trunk/java/org/apache/jasper/compiler/ImplicitTagLibraryInfo.java Fri Nov 22 17:19:36 2013 @@ -121,7 +121,7 @@ class ImplicitTagLibraryInfo extends Tag TldResourcePath resourcePath = new TldResourcePath(url, path); boolean validate = Boolean.parseBoolean( ctxt.getServletContext().getInitParameter( - Constants.XML_VALIDATION_TLD_ATTR)); + Constants.XML_VALIDATION_TLD_INIT_PARAM)); TldParser parser = new TldParser(true, validate, new ImplicitTldRuleSet()); taglibXml = parser.parse(resourcePath); } catch (IOException | SAXException e) { Modified: tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java?rev=1544606&r1=1544605&r2=1544606&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java (original) +++ tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java Fri Nov 22 17:19:36 2013 @@ -166,7 +166,7 @@ class JspDocumentParser boolean validate = Boolean.parseBoolean( pc.getJspCompilationContext().getServletContext().getInitParameter( - Constants.XML_VALIDATION_DOC_ATTR)); + Constants.XML_VALIDATION_DOC_INIT_PARAM)); jspDocParser.isValidating = validate; // Parse the input Modified: tomcat/trunk/java/org/apache/jasper/compiler/TldCache.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/TldCache.java?rev=1544606&r1=1544605&r2=1544606&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/jasper/compiler/TldCache.java (original) +++ tomcat/trunk/java/org/apache/jasper/compiler/TldCache.java Fri Nov 22 17:19:36 2013 @@ -73,7 +73,7 @@ public class TldCache { this.tldResourcePathTaglibXmlMap.put(tldResourcePath, cacheEntry); } boolean validate = Boolean.parseBoolean( - servletContext.getInitParameter(Constants.XML_VALIDATION_TLD_ATTR)); + servletContext.getInitParameter(Constants.XML_VALIDATION_TLD_INIT_PARAM)); tldParser = new TldParser(true, validate); } Modified: tomcat/trunk/java/org/apache/jasper/servlet/JasperInitializer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/servlet/JasperInitializer.java?rev=1544606&r1=1544605&r2=1544606&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/jasper/servlet/JasperInitializer.java (original) +++ tomcat/trunk/java/org/apache/jasper/servlet/JasperInitializer.java Fri Nov 22 17:19:36 2013 @@ -79,7 +79,7 @@ public class JasperInitializer implement } boolean validate = Boolean.parseBoolean( - context.getInitParameter(Constants.XML_VALIDATION_TLD_ATTR)); + context.getInitParameter(Constants.XML_VALIDATION_TLD_INIT_PARAM)); // scan the application for TLDs TldScanner scanner = new TldScanner(context, true, validate); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org