You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2010/05/14 19:35:18 UTC

svn commit: r944351 - in /tapestry/tapestry5/trunk/tapestry-core/src: main/java/org/apache/tapestry5/ main/java/org/apache/tapestry5/dom/ main/java/org/apache/tapestry5/internal/services/ test/java/org/apache/tapestry5/dom/ test/java/org/apache/tapestr...

Author: hlship
Date: Fri May 14 17:35:18 2010
New Revision: 944351

URL: http://svn.apache.org/viewvc?rev=944351&view=rev
Log:
TAP5-1128: A space is added to a HTML start comment sequence making it impossible to add IE conditional comments

Modified:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/MarkupWriter.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/dom/Comment.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/SaxTemplateParser.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/dom/DOMTest.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DocumentLinkerImplTest.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/MarkupWriterImplTest.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TemplateParserImplTest.java

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/MarkupWriter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/MarkupWriter.java?rev=944351&r1=944350&r2=944351&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/MarkupWriter.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/MarkupWriter.java Fri May 14 17:35:18 2010
@@ -74,6 +74,7 @@ public interface MarkupWriter
 
     /**
      * Adds an XML comment. The text should be just the comment content, the comment delimiters will be provided.
+     * Note that, as of Tapestry 5.2., no extra whitespace is added (previous releases added a space around the text).
      */
     void comment(String text);
 

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/dom/Comment.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/dom/Comment.java?rev=944351&r1=944350&r2=944351&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/dom/Comment.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/dom/Comment.java Fri May 14 17:35:18 2010
@@ -1,4 +1,4 @@
-// Copyright 2006, 2008, 2009 The Apache Software Foundation
+// Copyright 2006, 2008, 2009, 2010 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -34,8 +34,8 @@ public final class Comment extends Node
     @Override
     void toMarkup(Document document, PrintWriter writer, Map<String, String> namespaceURIToPrefix)
     {
-        writer.print("<!-- ");
+        writer.print("<!--");
         writer.print(comment);
-        writer.print(" -->");
+        writer.print("-->");
     }
 }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/SaxTemplateParser.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/SaxTemplateParser.java?rev=944351&r1=944350&r2=944351&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/SaxTemplateParser.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/SaxTemplateParser.java Fri May 14 17:35:18 2010
@@ -1013,10 +1013,7 @@ public class SaxTemplateParser
     {
         processTextBuffer(state);
 
-        // Trim the excess whitespace; the Comment DOM node will add a
-        // leading/trailing space.
-
-        String comment = tokenStream.getText().trim();
+        String comment = tokenStream.getText();
 
         tokenAccumulator.add(new CommentToken(comment, getLocation()));
     }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/dom/DOMTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/dom/DOMTest.java?rev=944351&r1=944350&r2=944351&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/dom/DOMTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/dom/DOMTest.java Fri May 14 17:35:18 2010
@@ -14,15 +14,15 @@
 
 package org.apache.tapestry5.dom;
 
+import java.util.Collection;
+import java.util.List;
+
 import org.apache.tapestry5.MarkupWriter;
 import org.apache.tapestry5.internal.services.MarkupWriterImpl;
 import org.apache.tapestry5.internal.test.InternalBaseTestCase;
 import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
 import org.testng.annotations.Test;
 
-import java.util.Collection;
-import java.util.List;
-
 /**
  * Tests for a number of DOM node classes, including {@link org.apache.tapestry5.dom.Element} and {@link
  * org.apache.tapestry5.dom.Document}.
@@ -208,7 +208,7 @@ public class DOMTest extends InternalBas
 
         Element e = d.newRootElement("html");
 
-        e.comment("Created by Tapestry 5.0");
+        e.comment(" Created by Tapestry 5.0 ");
 
         assertEquals(d.toString(), "<html><!-- Created by Tapestry 5.0 --></html>");
     }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DocumentLinkerImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DocumentLinkerImplTest.java?rev=944351&r1=944350&r2=944351&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DocumentLinkerImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/DocumentLinkerImplTest.java Fri May 14 17:35:18 2010
@@ -19,14 +19,9 @@ import org.apache.tapestry5.dom.Element;
 import org.apache.tapestry5.dom.XMLMarkupModel;
 import org.apache.tapestry5.internal.test.InternalBaseTestCase;
 import org.apache.tapestry5.services.URLEncoder;
-import org.apache.tapestry5.services.assets.AssetPathConstructor;
-import org.easymock.EasyMock;
-import org.easymock.IAnswer;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
-import java.io.ObjectInputStream;
-
 public class DocumentLinkerImplTest extends InternalBaseTestCase
 {
 
@@ -220,7 +215,7 @@ public class DocumentLinkerImplTest exte
     {
         Document document = new Document(new XMLMarkupModel());
 
-        document.newRootElement("html").element("head").comment("existing head").getParent().element("body").text(
+        document.newRootElement("html").element("head").comment(" existing head ").getParent().element("body").text(
                 "body content");
 
         DocumentLinkerImpl linker = new DocumentLinkerImpl(true, "1.2.3");

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/MarkupWriterImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/MarkupWriterImplTest.java?rev=944351&r1=944350&r2=944351&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/MarkupWriterImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/MarkupWriterImplTest.java Fri May 14 17:35:18 2010
@@ -78,7 +78,7 @@ public class MarkupWriterImplTest extend
     {
         MarkupWriter w = new MarkupWriterImpl(new XMLMarkupModel());
 
-        w.comment("preamble start");
+        w.comment(" preamble start ");
         w.write("preamble text");
         w.cdata("CDATA content");
         w.writeRaw("&nbsp;");
@@ -86,7 +86,7 @@ public class MarkupWriterImplTest extend
         w.end();
         // You really shouldn't have any text after the close tag of the document, so it
         // gets moved to the top, to the "preamble", before the first element.
-        w.comment("content after root element in preamble");
+        w.comment(" content after root element in preamble ");
 
         assertEquals(w.getDocument().toString(), readFile("preamble_content.txt"));
     }
@@ -220,7 +220,7 @@ public class MarkupWriterImplTest extend
         MarkupWriter w = new MarkupWriterImpl();
 
         w.element("root");
-        w.comment("A comment");
+        w.comment(" A comment ");
         w.end();
 
         assertEquals(w.toString(), "<root><!-- A comment --></root>");
@@ -232,7 +232,7 @@ public class MarkupWriterImplTest extend
         MarkupWriter w = new MarkupWriterImpl();
 
         w.element("root");
-        w.comment("<&>");
+        w.comment(" <&> ");
         w.end();
 
         assertEquals(w.toString(), "<root><!-- <&> --></root>");
@@ -245,7 +245,7 @@ public class MarkupWriterImplTest extend
 
         w.element("root");
         w.write("before");
-        w.comment("A comment");
+        w.comment(" A comment ");
         w.write("after");
         w.end();
 

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TemplateParserImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TemplateParserImplTest.java?rev=944351&r1=944350&r2=944351&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TemplateParserImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TemplateParserImplTest.java Fri May 14 17:35:18 2010
@@ -1,4 +1,4 @@
-// Copyright 2006, 2007, 2008, 2009 The Apache Software Foundation
+// Copyright 2006, 2007, 2008, 2009, 2010 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -280,11 +280,7 @@ public class TemplateParserImplTest exte
 
         CommentToken token1 = get(tokens, 1);
 
-        // Comments are now trimmed of leading and trailing whitespace. This may mean
-        // that the output isn't precisely what's in the template, but a) its a comment
-        // and b) that's pretty much true of everything in the templates.
-
-        assertEquals(token1.getComment(), "Single line comment");
+        assertEquals(token1.getComment(), " Single line comment ");
     }
 
     @Test
@@ -577,7 +573,7 @@ public class TemplateParserImplTest exte
         assertEquals(token4.getName(), "fred");
 
         CommentToken token6 = get(tokens, 6);
-        assertEquals(token6.getComment(), "fred content");
+        assertEquals(token6.getComment(), " fred content ");
 
         TemplateToken token8 = get(tokens, 8);
 
@@ -596,7 +592,7 @@ public class TemplateParserImplTest exte
         assertEquals(token4.getName(), "fred");
 
         CommentToken token6 = get(tokens, 6);
-        assertEquals(token6.getComment(), "fred content");
+        assertEquals(token6.getComment(), " fred content ");
 
         TemplateToken token8 = get(tokens, 8);
 
@@ -639,13 +635,13 @@ public class TemplateParserImplTest exte
         assertEquals(token1.getId(), "block0");
 
         CommentToken token2 = get(tokens, 2);
-        assertEquals(token2.getComment(), "block0 content");
+        assertEquals(token2.getComment(), " block0 content ");
 
         BlockToken token4 = get(tokens, 4);
         assertNull(token4.getId());
 
         CommentToken token5 = get(tokens, 5);
-        assertEquals(token5.getComment(), "anon block content");
+        assertEquals(token5.getComment(), " anon block content ");
     }
 
     @DataProvider