You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by lu...@apache.org on 2003/02/26 23:58:18 UTC
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler Compiler.java Generator.java Node.java PageDataImpl.java PageInfo.java ParserController.java Validator.java
luehe 2003/02/26 14:58:17
Modified: jasper2/src/share/org/apache/jasper/compiler Compiler.java
Generator.java Node.java PageDataImpl.java
PageInfo.java ParserController.java Validator.java
Log:
Fixed 17438: if omit-xml-decl is set to 'no' or 'false' no xml
declaration is generated.
Revision Changes Path
1.57 +2 -2 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Compiler.java
Index: Compiler.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Compiler.java,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -r1.56 -r1.57
--- Compiler.java 26 Feb 2003 14:49:29 -0000 1.56
+++ Compiler.java 26 Feb 2003 22:58:15 -0000 1.57
@@ -207,12 +207,12 @@
// a jsp-property-group in web.xml, initialize pageInfo with
// those properties.
if (jspProperty.isXml() != null) {
- pageInfo.setIsXmlSpecified(true);
+ pageInfo.setIsXmlConfigSpecified(true);
}
if (jspProperty.isELIgnored() != null) {
pageInfo.setELIgnoredSpecified(true);
}
- pageInfo.setIsXml(JspUtil.booleanValue(jspProperty.isXml()));
+ pageInfo.setIsXmlConfig(JspUtil.booleanValue(jspProperty.isXml()));
pageInfo.setConfigEncoding(jspProperty.getPageEncoding());
pageInfo.setELIgnored(JspUtil.booleanValue(jspProperty.isELIgnored()));
pageInfo.setScriptingInvalid(JspUtil.booleanValue(jspProperty.isScriptingInvalid()));
1.169 +14 -8 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java
Index: Generator.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java,v
retrieving revision 1.168
retrieving revision 1.169
diff -u -r1.168 -r1.169
--- Generator.java 26 Feb 2003 01:11:14 -0000 1.168
+++ Generator.java 26 Feb 2003 22:58:15 -0000 1.169
@@ -594,16 +594,21 @@
}
/**
- * Generates a XML declaration
+ * Generates an XML declaration, under the following conditions:
+ *
+ * - 'omit-xml-declaration' attribute of <jsp:output> action is set to
+ * "no" or "false"
+ * - JSP document without a <jsp:root>
*/
private void generateXmlDeclaration(Node.Nodes page) {
- if (page.getRoot().isXmlSyntax() && ! pageInfo.hasJspRoot() &&
- (pageInfo.getOmitXmlDecl() == null /* not specified */ ||
- ! JspUtil.booleanValue(pageInfo.getOmitXmlDecl()))) {
+ if (pageInfo.getOmitXmlDecl() != null
+ && !JspUtil.booleanValue(pageInfo.getOmitXmlDecl())
+ || (page.getRoot().isXmlSyntax() && !pageInfo.hasJspRoot()
+ && !ctxt.isTagFile())) {
String cType = pageInfo.getContentType();
String charSet = cType.substring(cType.indexOf("charset=")+8);
out.printil("out.write(\"<?xml version=\\\"1.0\\\" encoding=\\\"" +
- charSet + "\\\"?>\\n\");");
+ charSet + "\\\"?>\\n\");");
}
}
@@ -2969,6 +2974,7 @@
return;
}
+ gen.generateXmlDeclaration(page);
gen.fragmentHelperClass.generatePreamble();
page.visit(gen.new GenerateVisitor(gen.ctxt.isTagFile(),
out,
1.64 +7 -3 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Node.java
Index: Node.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Node.java,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -r1.63 -r1.64
--- Node.java 26 Feb 2003 17:58:07 -0000 1.63
+++ Node.java 26 Feb 2003 22:58:15 -0000 1.64
@@ -400,6 +400,8 @@
*/
Root(boolean isXmlSyntax) {
this.isXmlSyntax = isXmlSyntax;
+ this.qName = JSP_ROOT_ACTION;
+ this.localName = ROOT_ACTION;
}
/*
@@ -408,6 +410,8 @@
Root(Mark start, Node parent, boolean isXmlSyntax) {
super(start, parent);
this.isXmlSyntax = isXmlSyntax;
+ this.qName = JSP_ROOT_ACTION;
+ this.localName = ROOT_ACTION;
// Figure out and set the parent root
Node r = parent;
1.24 +11 -22 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageDataImpl.java
Index: PageDataImpl.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageDataImpl.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- PageDataImpl.java 23 Feb 2003 20:57:05 -0000 1.23
+++ PageDataImpl.java 26 Feb 2003 22:58:16 -0000 1.24
@@ -109,9 +109,7 @@
throws JasperException {
// First pass
- boolean isXml = compiler.getPageInfo().isXml();
- FirstPassVisitor firstPass = new FirstPassVisitor(page.getRoot(),
- isXml);
+ FirstPassVisitor firstPass = new FirstPassVisitor(page.getRoot());
page.visit(firstPass);
// Second pass
@@ -155,12 +153,12 @@
/*
* Constructor
*/
- public FirstPassVisitor(Node.Root root, boolean isXml) {
+ public FirstPassVisitor(Node.Root root) {
this.root = root;
this.rootAttrs = new AttributesImpl();
this.rootAttrs.addAttribute("", "", "version", "CDATA",
JSP_VERSION);
- if (!isXml) {
+ if (!root.isXmlSyntax()) {
this.rootAttrs.addAttribute("", "", "xmlns:jsp", "CDATA",
JSP_NAMESPACE);
}
@@ -179,11 +177,6 @@
addAttributes(n.getAttributes());
visitBody(n);
-
- if (n == this.root) {
- // top-level jsp:root element
- this.root.setAttributes(rootAttrs);
- }
}
/*
@@ -248,7 +241,7 @@
}
/*
- * Visits root node of JSP page in JSP syntax.
+ * Visits root node.
*/
public void visit(Node.Root n) throws JasperException {
if (n == this.root) {
@@ -267,13 +260,7 @@
* include directive) are ignored.
*/
public void visit(Node.JspRoot n) throws JasperException {
- if (n == this.root) {
- // top-level jsp:root element
- appendXmlProlog();
- appendTag(n);
- } else {
- visitBody(n);
- }
+ visitBody(n);
}
public void visit(Node.PageDirective n) throws JasperException {
@@ -414,9 +401,11 @@
buf.append("<").append(n.getQName());
buf.append("\n");
+
+ printAttributes(n);
buf.append(" ").append("jsp:id").append("=\"");
buf.append(jspId++).append("\"\n");
- printAttributes(n);
+
if (ROOT_ACTION.equals(n.getLocalName()) || body != null
|| text != null) {
buf.append(">\n");
1.23 +16 -14 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageInfo.java
Index: PageInfo.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageInfo.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- PageInfo.java 26 Feb 2003 00:11:38 -0000 1.22
+++ PageInfo.java 26 Feb 2003 22:58:16 -0000 1.23
@@ -106,11 +106,13 @@
private boolean scriptingInvalid = false;
private boolean elIgnored = false;
private boolean elIgnoredSpecified = false;
- private boolean isXml = false;
private String omitXmlDecl = null;
- // true is there is a is-xml element in jsp-config
- private boolean isXmlSpecified = false;
+ // true if there is an is-xml element in the jsp-config
+ private boolean isXmlConfigSpecified = false;
+
+ // The value of the is-xml element in the jsp-config
+ private boolean isXmlConfig = false;
// A custom tag is a tag file
private boolean hasTagFile = false;
@@ -320,20 +322,20 @@
return elIgnoredSpecified;
}
- public boolean isXml() {
- return isXml;
+ public boolean isXmlConfig() {
+ return isXmlConfig;
}
- public void setIsXml(boolean xml) {
- isXml = xml;
+ public void setIsXmlConfig(boolean xml) {
+ isXmlConfig = xml;
}
- public boolean isXmlSpecified() {
- return isXmlSpecified;
+ public boolean isXmlConfigSpecified() {
+ return isXmlConfigSpecified;
}
- public void setIsXmlSpecified(boolean xmlSpecified) {
- isXmlSpecified = xmlSpecified;
+ public void setIsXmlConfigSpecified(boolean xmlSpecified) {
+ isXmlConfigSpecified = xmlSpecified;
}
public List getIncludePrelude() {
1.34 +7 -7 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/ParserController.java
Index: ParserController.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/ParserController.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- ParserController.java 19 Feb 2003 19:00:59 -0000 1.33
+++ ParserController.java 26 Feb 2003 22:58:16 -0000 1.34
@@ -216,7 +216,6 @@
}
}
pageInfo.setPageEncoding(sourceEnc);
- pageInfo.setIsXml(isXml);
isTopFile = false;
} else {
compiler.getPageInfo().addDependant(absFileName);
@@ -289,11 +288,12 @@
* The properties to be determined are:
*
* - Syntax (JSP or XML).
- * This information is supplied by setting the instance variable
- * 'isXml'.
+ * This information is supplied by setting the 'isXml' instance
+ * variable.
*
* - Source Encoding.
- * This information is supplied as the return value.
+ * This information is supplied by setting the 'sourceEnc' instance
+ * variable.
*
* If these properties are already specified in the jsp-config element
* in web.xml, then they are used.
@@ -315,11 +315,11 @@
*/
boolean revert = false;
- if (pageInfo.isXmlSpecified()) {
+ if (pageInfo.isXmlConfigSpecified()) {
// If <is-xml> is specified in a <jsp-property-group>, it is used.
- isXml = pageInfo.isXml();
+ isXml = pageInfo.isXmlConfig();
isExternal = true;
- } else if (fname.endsWith(".jspx")) {
+ } else if (fname.endsWith(".jspx") || fname.endsWith(".tagx")) {
isXml = true;
isExternal = true;
}
1.85 +6 -6 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Validator.java
Index: Validator.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Validator.java,v
retrieving revision 1.84
retrieving revision 1.85
diff -u -r1.84 -r1.85
--- Validator.java 26 Feb 2003 17:58:07 -0000 1.84
+++ Validator.java 26 Feb 2003 22:58:16 -0000 1.85
@@ -341,7 +341,7 @@
configEnc, pageDirEnc);
}
- if (pageInfo.isXml() && pageInfo.isEncodingSpecifiedInProlog()) {
+ if (n.isXmlSyntax() && pageInfo.isEncodingSpecifiedInProlog()) {
String pageEnc = pageInfo.getPageEncoding();
if (!pageDirEnc.equals(pageEnc)
&& (!pageDirEnc.startsWith("UTF-16")
@@ -1191,8 +1191,7 @@
// Determine the default output content type
PageInfo pageInfo = compiler.getPageInfo();
String contentType = pageInfo.getContentType();
- if (!compiler.getCompilationContext().isTagFile() &&
- (contentType == null || contentType.indexOf("charset=") < 0)) {
+ if (contentType == null || contentType.indexOf("charset=") < 0) {
boolean isXml = page.getRoot().isXmlSyntax();
String defaultType;
if (contentType == null) {
@@ -1257,6 +1256,7 @@
TagLibraryInfo tli = (TagLibraryInfo) enum.nextElement();
if (!(tli instanceof TagLibraryInfoImpl))
continue;
+
ValidationMessage[] errors
= ((TagLibraryInfoImpl) tli).validate(xmlView);
if ((errors != null) && (errors.length != 0)) {
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org