cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup ContextConfig.java TldConfig.java
jfarcand2004/03/24 12:00:22 Modified:catalina/src/share/org/apache/catalina Context.java catalina/src/share/org/apache/catalina/core StandardContext.java catalina/src/share/org/apache/catalina/mbeans MBeanFactory.java catalina/src/share/org/apache/catalina/startup ContextConfig.java TldConfig.java Log: Add support for xml validation/namespaceAware at the level. The new attributes override the ones set on the element. Add a "dummy" method for jmx calls (until the admin starts supporting the new sets of attributes) Revision ChangesPath 1.11 +69 -1 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/Context.java Index: Context.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/Context.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- Context.java 27 Feb 2004 14:58:38 - 1.10 +++ Context.java 24 Mar 2004 20:00:22 - 1.11 @@ -1128,4 +1128,72 @@ public void removeWrapperListener(String listener); +/** + * Get the server.xml attribute's xmlNamespaceAware. + * @return true if namespace awarenes is enabled. + * + */ +public boolean getXmlNamespaceAware(); + + +/** + * Get the server.xml attribute's xmlValidation. + * @return true if validation is enabled. + * + */ +public boolean getXmlValidation(); + + +/** + * Set the validation feature of the XML parser used when + * parsing xml instances. + * @param xmlValidation true to enable xml instance validation + */ +public void setXmlValidation(boolean xmlValidation); + + + /** + * Set the namespace aware feature of the XML parser used when + * parsing xml instances. + * @param xmlNamespaceAware true to enable namespace awareness + */ +public void setXmlNamespaceAware(boolean xmlNamespaceAware); +/** + * Get the server.xml attribute's xmlValidation. + * @return true if validation is enabled. + */ + + +/** + * Set the validation feature of the XML parser used when + * parsing tlds files. + * @param tldXmlValidation true to enable xml instance validation + */ +public void setTldValidation(boolean tldValidation); + + +/** + * Get the server.xml attribute's webXmlValidation. + * @return true if validation is enabled. + * + */ +public boolean getTldValidation(); + + +/** + * Get the server.xml attribute's xmlNamespaceAware. + * @return true if namespace awarenes is enabled. + */ +public boolean getTldNamespaceAware(); + + +/** + * Set the namespace aware feature of the XML parser used when + * parsing xml instances. + * @param xmlNamespaceAware true to enable namespace awareness + */ +public void setTldNamespaceAware(boolean tldNamespaceAware); + + } + 1.121 +126 -8 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java Index: StandardContext.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java,v retrieving revision 1.120 retrieving revision 1.121 diff -u -r1.120 -r1.121 --- StandardContext.java 22 Mar 2004 12:45:55 - 1.120 +++ StandardContext.java 24 Mar 2004 20:00:22 - 1.121 @@ -575,12 +575,38 @@ private long startTime; private long tldScanTime; -/** Name of the engine. If null, the domain is used. +/** + * Name of the engine. If null, the domain is used. */ private String engineName = null; private String j2EEApplication="none"; private String j2EEServer="none"; + +/** + * Attribute value used to turn on/off XML validation + */ + private boolean webXmlValidation = false; + + +/** + * Attribute value used to turn on/off XML namespace validation + */ + private boolean webXmlNamespaceAware = false; + + +/** + * Attribute value used to turn on/off XML validation + */ + private boolean tldValidation = false; + + +/** + * Attribute value used to turn on/off TLD XML namespace validation + */ + private boolean tldNamespaceAware = false; + + // - Context Properties public void setName( String name ) { @@ -4179,10 +4205,24 @@ // Read tldListeners. XXX Option to disable
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup ContextConfig.java TldConfig.java
jfarcand2003/09/25 12:27:59 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java TldConfig.java Log: Follow a 101 Tranning course on how to use Xerces 2.3/2.5 and fix the schema validation problem. The fix will only works for Xerces when schema are supported (Crimson will still work). Changes between 2.1/2.3 seems to have modified the way the parser is working. Those private property will be added to the next release of jaxp. Thanks to ramesh mandava at sun for is teaching lesson :-) Revision ChangesPath 1.36 +23 -4 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- ContextConfig.java23 Sep 2003 21:37:00 - 1.35 +++ ContextConfig.java25 Sep 2003 19:27:59 - 1.36 @@ -300,7 +300,7 @@ if (context instanceof StandardContext) { ((StandardContext) context).setReplaceWelcomeFiles(true); } -webDigester.setUseContextClassLoader(true); +webDigester.setUseContextClassLoader(false); webDigester.push(context); webDigester.parse(is); } else { @@ -497,12 +497,31 @@ webDigester = patchXerces(webDigester); } -url = ContextConfig.class.getResource(Constants.WebSchemaResourcePath_24); +url = ContextConfig.class. +getResource(Constants.WebSchemaResourcePath_24); + SchemaResolver webEntityResolver = new SchemaResolver(url.toString(), webDigester); if (validation) { -webDigester.setSchema(url.toString()); +if (webDigester.getFactory().getClass() +.getName().indexOf("xerces")!=-1) { +try{ +webDigester.setFeature( +"http://apache.org/xml/features/validation/dynamic";, +true); +webDigester.setFeature( +"http://apache.org/xml/features/validation/schema";, +true); +} catch(ParserConfigurationException e){ +// log("contextConfig.registerLocalSchema", e); +} catch(SAXNotRecognizedException e){ +// log("contextConfig.registerLocalSchema", e); +} catch(SAXNotSupportedException e){ +// log("contextConfig.registerLocalSchema", e); +} + +} } url = ContextConfig.class.getResource(Constants.WebDtdResourcePath_22); 1.29 +18 -1 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/TldConfig.java Index: TldConfig.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/TldConfig.java,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- TldConfig.java23 Sep 2003 21:37:00 - 1.28 +++ TldConfig.java25 Sep 2003 19:27:59 - 1.29 @@ -409,7 +409,24 @@ tldDigester); if (xmlValidation) { -tldDigester.setSchema(url.toString()); +if (tldDigester.getFactory().getClass() +.getName().indexOf("xerces")!=-1) { +try{ +tldDigester.setFeature( +"http://apache.org/xml/features/validation/dynamic";, +true); +tldDigester.setFeature( +"http://apache.org/xml/features/validation/schema";, +true); +} catch(ParserConfigurationException e){ +// log("contextConfig.registerLocalSchema", e); +} catch(SAXNotRecognizedException e){ +// log("contextConfig.registerLocalSchema", e); +} catch(SAXNotSupportedException e){ +// log("contextConfig.registerLocalSchema", e); +} + +} } url = TldConfig.class.getResource(Constants.TldDtdResourcePath_11); - To unsubscribe, e-mail:
Re: cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup ContextConfig.java TldConfig.java
Remy Maucherat wrote: [EMAIL PROTECTED] wrote: jfarcand2003/09/23 14:37:01 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java TldConfig.java Log: Revert my previous patch since it force validation even when the value is set to false (for schema). I didn't upgrade back to X 2.5, but with X 2.1, this didn't force validation. I'm sure it's a bit hard to follow for everyone. Can you do a recap on tomcat-dev of what's wrong with Xerces, and what is being done about it ? Curently, schema validation doesn't work when you turns it on in server.xml. The problem resides in ContextConfig.java when you do webDigester.setSchema(). For a reason I'm trying to find, the schema file is not loaded by Xerces. I suspect a classloader issue but the validation task suffer the same problem. I'm trying to resolve the problem right now with the jaxp team, but if someone wants to create a test case and file a bug againts Xerces, I will be more that happy. Knowing how they work, without a little test case, they will never looks at it ;-) -- Jeanfrancois Thanks, Remy - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup ContextConfig.java TldConfig.java
[EMAIL PROTECTED] wrote: jfarcand2003/09/23 14:37:01 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java TldConfig.java Log: Revert my previous patch since it force validation even when the value is set to false (for schema). I didn't upgrade back to X 2.5, but with X 2.1, this didn't force validation. I'm sure it's a bit hard to follow for everyone. Can you do a recap on tomcat-dev of what's wrong with Xerces, and what is being done about it ? Thanks, Remy - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup ContextConfig.java TldConfig.java
jfarcand2003/09/23 14:37:01 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java TldConfig.java Log: Revert my previous patch since it force validation even when the value is set to false (for schema). Revision ChangesPath 1.35 +2 -5 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- ContextConfig.java23 Sep 2003 18:43:12 - 1.34 +++ ContextConfig.java23 Sep 2003 21:37:00 - 1.35 @@ -459,8 +459,6 @@ try{ digester.setFeature( "http://apache.org/xml/features/allow-java-encodings";, true); -digester.setFeature( -"http://apache.org/xml/features/validation/schema";, true); } catch(ParserConfigurationException e){ // log("contextConfig.registerLocalSchema", e); } catch(SAXNotRecognizedException e){ @@ -492,7 +490,6 @@ boolean validation) { URL url = null; Digester webDigester = new Digester(); -webDigester.setUseContextClassLoader(false); webDigester.setNamespaceAware(namespaceAware); webDigester.setValidating(validation); @@ -507,7 +504,7 @@ if (validation) { webDigester.setSchema(url.toString()); } - + url = ContextConfig.class.getResource(Constants.WebDtdResourcePath_22); webEntityResolver.register(Constants.WebDtdPublicId_22, url.toString()); 1.28 +0 -2 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/TldConfig.java Index: TldConfig.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/TldConfig.java,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- TldConfig.java23 Sep 2003 20:06:07 - 1.27 +++ TldConfig.java23 Sep 2003 21:37:00 - 1.28 @@ -437,8 +437,6 @@ try{ digester.setFeature( "http://apache.org/xml/features/allow-java-encodings";, true); -digester.setFeature( -"http://apache.org/xml/features/validation/schema";, true); } catch(ParserConfigurationException e){ // log("contextConfig.registerLocalSchema", e); } catch(SAXNotRecognizedException e){ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup ContextConfig.java TldConfig.java
jfarcand2003/09/23 11:43:12 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java TldConfig.java Log: Partial fix for xml validation. At least DTD works now and the stack trace for schema is no longer 1 km long. Revision ChangesPath 1.34 +4 -1 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- ContextConfig.java9 Sep 2003 15:27:00 - 1.33 +++ ContextConfig.java23 Sep 2003 18:43:12 - 1.34 @@ -459,6 +459,8 @@ try{ digester.setFeature( "http://apache.org/xml/features/allow-java-encodings";, true); +digester.setFeature( +"http://apache.org/xml/features/validation/schema";, true); } catch(ParserConfigurationException e){ // log("contextConfig.registerLocalSchema", e); } catch(SAXNotRecognizedException e){ @@ -490,6 +492,7 @@ boolean validation) { URL url = null; Digester webDigester = new Digester(); +webDigester.setUseContextClassLoader(false); webDigester.setNamespaceAware(namespaceAware); webDigester.setValidating(validation); 1.24 +2 -0 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/TldConfig.java Index: TldConfig.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/TldConfig.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- TldConfig.java22 Sep 2003 23:56:11 - 1.23 +++ TldConfig.java23 Sep 2003 18:43:12 - 1.24 @@ -416,6 +416,8 @@ try{ digester.setFeature( "http://apache.org/xml/features/allow-java-encodings";, true); +digester.setFeature( +"http://apache.org/xml/features/validation/schema";, true); } catch(ParserConfigurationException e){ // log("contextConfig.registerLocalSchema", e); } catch(SAXNotRecognizedException e){ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup ContextConfig.java TldConfig.java
remm2003/08/26 01:39:59 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java TldConfig.java Log: - Reenable validation (there are still problems validating TLDs, even with Xerces 2.1). Revision ChangesPath 1.31 +2 -3 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- ContextConfig.java20 Aug 2003 08:35:43 - 1.30 +++ ContextConfig.java26 Aug 2003 08:39:59 - 1.31 @@ -493,8 +493,7 @@ SchemaResolver webEntityResolver = new SchemaResolver(url.toString(), webDigester); -// FIXME: if (validation) { -if (false) { +if (validation) { webDigester.setSchema(url.toString()); } 1.19 +1 -2 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/TldConfig.java Index: TldConfig.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/TldConfig.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- TldConfig.java26 Aug 2003 07:17:43 - 1.18 +++ TldConfig.java26 Aug 2003 08:39:59 - 1.19 @@ -388,8 +388,7 @@ SchemaResolver tldEntityResolver = new SchemaResolver(url.toString(), tldDigester); -// FIXME: if (xmlValidation) { -if (false) { +if (xmlValidation) { tldDigester.setSchema(url.toString()); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup ContextConfig.java TldConfig.java
remm2003/08/20 01:35:43 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java TldConfig.java Log: - Disable schema validation for now. - Validation attempts of 2.4 style web.xml or TLD files will fail. Revision ChangesPath 1.30 +4 -2 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- ContextConfig.java18 Aug 2003 17:44:20 - 1.29 +++ ContextConfig.java20 Aug 2003 08:35:43 - 1.30 @@ -492,7 +492,9 @@ url = ContextConfig.class.getResource(Constants.WebSchemaResourcePath_24); SchemaResolver webEntityResolver = new SchemaResolver(url.toString(), webDigester); -if (validation) { + +// FIXME: if (validation) { +if (false) { webDigester.setSchema(url.toString()); } 1.16 +3 -1 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/TldConfig.java Index: TldConfig.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/TldConfig.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- TldConfig.java12 Aug 2003 16:15:52 - 1.15 +++ TldConfig.java20 Aug 2003 08:35:43 - 1.16 @@ -381,7 +381,9 @@ url = TldConfig.class.getResource(Constants.TldSchemaResourcePath_20); SchemaResolver tldEntityResolver = new SchemaResolver(url.toString(), tldDigester); -if( xmlValidation ) { + +// FIXME: if (xmlValidation) { +if (false) { tldDigester.setSchema(url.toString()); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup ContextConfig.java TldConfig.java
remm2003/06/15 00:41:12 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java TldConfig.java Log: - Address bug 20758. - Cleanup digester after processing. Revision ChangesPath 1.27 +3 -5 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- ContextConfig.java6 Jun 2003 02:46:41 - 1.26 +++ ContextConfig.java15 Jun 2003 07:41:12 - 1.27 @@ -309,14 +309,11 @@ if( url!=null ) { InputSource is = new InputSource(url.toExternalForm()); is.setByteStream(stream); +webDigester.clear(); webDigester.setDebug(getDebug()); if (context instanceof StandardContext) { ((StandardContext) context).setReplaceWelcomeFiles(true); } -webDigester.clear(); -//ClassLoader cl=Thread.currentThread().getContextClassLoader(); -//if( cl!=null ) -//webDigester.setClassLoader(cl); webDigester.setUseContextClassLoader(true); webDigester.push(context); webDigester.parse(is); @@ -340,6 +337,7 @@ } catch (IOException e) { log.error(sm.getString("contextConfig.applicationClose"), e); } +webDigester.push(null); } } webRuleSet.recycle(); 1.12 +7 -3 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/TldConfig.java Index: TldConfig.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/TldConfig.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- TldConfig.java12 Jun 2003 22:41:19 - 1.11 +++ TldConfig.java15 Jun 2003 07:41:12 - 1.12 @@ -533,9 +533,13 @@ } synchronized (tldDigester) { -tldDigester.clear(); -tldDigester.push(this); -tldDigester.parse(resourceStream); +try { +tldDigester.push(this); +tldDigester.parse(resourceStream); +} finally { +tldDigester.push(null); +tldDigester.clear(); +} } } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]