Repository: wicket
Updated Branches:
  refs/heads/master 7d90522c4 -> 87c38f29e


WICKET-5936 split CDATA end with CDATA end+start


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/87c38f29
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/87c38f29
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/87c38f29

Branch: refs/heads/master
Commit: 87c38f29e09056bb556eac8a70481171e55a3083
Parents: 7d90522
Author: Sven Meier <[email protected]>
Authored: Fri Jun 26 00:38:52 2015 +0200
Committer: Sven Meier <[email protected]>
Committed: Fri Jun 26 00:38:52 2015 +0200

----------------------------------------------------------------------
 .../wicket/ajax/AbstractAjaxResponse.java       | 11 ++----
 .../org/apache/wicket/ajax/XmlAjaxResponse.java | 28 ++-------------
 .../wicket/ajax/res/js/wicket-ajax-jquery.js    | 36 --------------------
 .../apache/wicket/TestDetachPageAjaxResult.html |  6 ++--
 .../ajax/DomReadyOrderPage_ajax_expected.html   |  6 ++--
 .../wicket/ajax/MockComponent1-expected.html    |  2 +-
 .../SimpleTestPageExpectedResult-1.html         |  6 ++--
 wicket-core/src/test/js/head.js                 | 22 +-----------
 8 files changed, 16 insertions(+), 101 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/87c38f29/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java 
b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java
index c0f3c34..f949171 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java
@@ -791,15 +791,8 @@ public abstract class AbstractAjaxResponse
                        return null;
                }
 
-               return Strings.replaceAll(str, "]", "]^").toString();
-       }
-
-       /**
-        * @return name of encoding used to possibly encode the contents of the 
CDATA blocks
-        */
-       protected String getEncodingName()
-       {
-               return "wicket1";
+               // split each CDATA end sequence
+               return Strings.replaceAll(str, "]]>", 
"]]]]><![CDATA[>").toString();
        }
 
        /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/87c38f29/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java 
b/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java
index 80c056e..e7048ec 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java
@@ -143,14 +143,7 @@ public abstract class XmlAjaxResponse extends 
AbstractAjaxResponse
 
                response.write("<component id=\"");
                response.write(markupId);
-               response.write("\" ");
-               if (encodingBodyResponse.isContentsEncoded())
-               {
-                       response.write(" encoding=\"");
-                       response.write(getEncodingName());
-                       response.write("\" ");
-               }
-               response.write("><![CDATA[");
+               response.write("\" ><![CDATA[");
                response.write(encodingBodyResponse.getContents());
                response.write("]]></component>");
 
@@ -168,18 +161,11 @@ public abstract class XmlAjaxResponse extends 
AbstractAjaxResponse
        {
                if (encodingHeaderResponse.getContents().length() != 0)
                {
-                       response.write("<header-contribution");
-
-                       if (encodingHeaderResponse.isContentsEncoded())
-                       {
-                               response.write(" encoding=\"");
-                               response.write(getEncodingName());
-                               response.write("\" ");
-                       }
+                       response.write("<header-contribution>");
 
                        // we need to write response as CDATA and parse it on 
client,
                        // because konqueror crashes when there is a <script> 
element
-                       response.write("><![CDATA[<head 
xmlns:wicket=\"http://wicket.apache.org\";>");
+                       response.write("<![CDATA[<head 
xmlns:wicket=\"http://wicket.apache.org\";>");
                        response.write(encodingHeaderResponse.getContents());
                        response.write("</head>]]>");
                        response.write("</header-contribution>");
@@ -221,24 +207,16 @@ public abstract class XmlAjaxResponse extends 
AbstractAjaxResponse
        */
        private void writeEvaluation(final String invocation, final Response 
response, final CharSequence js)
        {
-               boolean encoded = false;
                CharSequence javascript = js;
 
                // encode the response if needed
                if (needsEncoding(js))
                {
-                       encoded = true;
                        javascript = encode(js);
                }
 
                response.write("<");
                response.write(invocation);
-               if (encoded)
-               {
-                       response.write(" encoding=\"");
-                       response.write(getEncodingName());
-                       response.write("\"");
-               }
                response.write(">");
 
                response.write("<![CDATA[");

http://git-wip-us.apache.org/repos/asf/wicket/blob/87c38f29/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js 
b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
index e62451f..db9d210 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
+++ 
b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
@@ -1127,13 +1127,6 @@
                                } else {
                                        var text = Wicket.DOM.text(node);
 
-                                       // if the text was escaped, unescape it
-                                       // (escaping is done when the component 
body contains a CDATA section)
-                                       var encoding = 
node.getAttribute("encoding");
-                                       if (encoding) {
-                                               text = 
Wicket.Head.Contributor.decode(encoding, text);
-                                       }
-
                                        // replace the component
                                        Wicket.DOM.replace(element, text);
                                }
@@ -1162,12 +1155,6 @@
                        // get the javascript body
                        var text = Wicket.DOM.text(node);
 
-                       // unescape it if necessary
-                       var encoding = node.getAttribute("encoding");
-                       if (encoding) {
-                               text = Wicket.Head.Contributor.decode(encoding, 
text);
-                       }
-
                        // aliases to improve performance
                        var steps = context.steps;
                        var log = Wicket.Log;
@@ -2000,24 +1987,6 @@
                Head: {
                        Contributor: {
 
-                               /**
-                                * Decoding functionality
-                                *
-                                * Wicket sends rendered components and 
javascript as CDATA section of XML document. When the
-                                * component body itself contains a CDATA 
section, Wicket needs to escape it properly.
-                                */
-                               decode: function (encoding, text) {
-
-                                       var decode1 = function (text) {
-                                               return replaceAll(text, "]^", 
"]");
-                                       };
-
-                                       if (encoding === "wicket1") {
-                                               text = decode1(text);
-                                       }
-                                       return text;
-                               },
-
                                // Parses the header contribution element 
(returns a DOM tree with the contribution)
                                parse: function (headerNode) {
                                        // the header contribution is stored as 
CDATA section in the header-contribution element.
@@ -2028,11 +1997,6 @@
 
                                        // get the header contribution text and 
unescape it if necessary
                                        var text = Wicket.DOM.text(headerNode);
-                                       var encoding = 
headerNode.getAttribute("encoding");
-
-                                       if (encoding !== null && encoding !== 
"") {
-                                               text = this.decode(encoding, 
text);
-                                       }
 
                                        if (Wicket.Browser.isKHTML()) {
                                                // konqueror crashes if there 
is a <script element in the xml, but <SCRIPT is fine.

http://git-wip-us.apache.org/repos/asf/wicket/blob/87c38f29/wicket-core/src/test/java/org/apache/wicket/TestDetachPageAjaxResult.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/TestDetachPageAjaxResult.html 
b/wicket-core/src/test/java/org/apache/wicket/TestDetachPageAjaxResult.html
index e446f29..1e951a4 100644
--- a/wicket-core/src/test/java/org/apache/wicket/TestDetachPageAjaxResult.html
+++ b/wicket-core/src/test/java/org/apache/wicket/TestDetachPageAjaxResult.html
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?><ajax-response><component id="comp1" 
><![CDATA[<span wicket:id="comp" 
id="comp1">body</span>]]></component><header-contribution encoding="wicket1" 
><![CDATA[<head xmlns:wicket="http://wicket.apache.org";><script 
type="text/javascript" 
src="../resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-1.11.3.js"></script>
+<?xml version="1.0" encoding="UTF-8"?><ajax-response><component id="comp1" 
><![CDATA[<span wicket:id="comp" 
id="comp1">body</span>]]></component><header-contribution><![CDATA[<head 
xmlns:wicket="http://wicket.apache.org";><script type="text/javascript" 
src="../resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-1.11.3.js"></script>
 <script type="text/javascript" 
src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-event-jquery.js"></script>
 <script type="text/javascript" 
src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery.js"></script>
 <script type="text/javascript" 
src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery-debug.js"></script>
 <script type="text/javascript" id="wicket-ajax-debug-enable">
 /*<![CDATA[*/
 Wicket.Ajax.DebugWindow.enabled=true;
-/*]^]^>*/
+/*]]]]><![CDATA[>*/
 </script>
 <script type="text/javascript" id="wicket-ajax-base-url">
 /*<![CDATA[*/
 
Wicket.Ajax.baseUrl="wicket/bookmarkable/org.apache.wicket.TestDetachPage?0-1.IBehaviorListener.0-comp";
-/*]^]^>*/
+/*]]]]><![CDATA[>*/
 </script>
 
</head>]]></header-contribution><evaluate><![CDATA[(function(){Wicket.Ajax.ajax({"u":"./org.apache.wicket.TestDetachPage?0-1.IBehaviorListener.0-comp","c":"comp1","e":"click"});})();]]></evaluate></ajax-response>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/87c38f29/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage_ajax_expected.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage_ajax_expected.html
 
b/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage_ajax_expected.html
index adb5a77..4ee122b 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage_ajax_expected.html
+++ 
b/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage_ajax_expected.html
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?><ajax-response><component id="test1" 
><![CDATA[<a 
href="./org.apache.wicket.ajax.DomReadyOrderPage?0-1.ILinkListener-test" 
wicket:id="test" id="test1">Test</a>]]></component><header-contribution 
encoding="wicket1" ><![CDATA[<head 
xmlns:wicket="http://wicket.apache.org";><script type="text/javascript" 
src="../resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-1.11.3.js"></script>
+<?xml version="1.0" encoding="UTF-8"?><ajax-response><component id="test1" 
><![CDATA[<a 
href="./org.apache.wicket.ajax.DomReadyOrderPage?0-1.ILinkListener-test" 
wicket:id="test" 
id="test1">Test</a>]]></component><header-contribution><![CDATA[<head 
xmlns:wicket="http://wicket.apache.org";><script type="text/javascript" 
src="../resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-1.11.3.js"></script>
 <script type="text/javascript" 
src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-event-jquery.js"></script>
 <script type="text/javascript" 
src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery.js"></script>
 <script type="text/javascript" 
src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery-debug.js"></script>
 <script type="text/javascript" id="wicket-ajax-debug-enable">
 /*<![CDATA[*/
 Wicket.Ajax.DebugWindow.enabled=true;
-/*]^]^>*/
+/*]]]]><![CDATA[>*/
 </script>
 <script type="text/javascript" id="wicket-ajax-base-url">
 /*<![CDATA[*/
 
Wicket.Ajax.baseUrl="wicket/bookmarkable/org.apache.wicket.ajax.DomReadyOrderPage?0-1.IBehaviorListener.0-test";
-/*]^]^>*/
+/*]]]]><![CDATA[>*/
 </script>
 
</head>]]></header-contribution><evaluate><![CDATA[(function(){Wicket.Ajax.ajax({"u":"./org.apache.wicket.ajax.DomReadyOrderPage?0-1.IBehaviorListener.0-test","c":"test1","e":"click","pd":true});})();(function(){test1();})();(function(){test2();})();]]></evaluate></ajax-response>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/87c38f29/wicket-core/src/test/java/org/apache/wicket/ajax/MockComponent1-expected.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/ajax/MockComponent1-expected.html 
b/wicket-core/src/test/java/org/apache/wicket/ajax/MockComponent1-expected.html
index 146d40b..3ee776e 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/ajax/MockComponent1-expected.html
+++ 
b/wicket-core/src/test/java/org/apache/wicket/ajax/MockComponent1-expected.html
@@ -8,6 +8,6 @@
        width: 200px;
 }
 
-/*]^]^>*/
+/*]]]]><![CDATA[>*/
 </style>
 </head>]]>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/87c38f29/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult-1.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult-1.html
 
b/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult-1.html
index 7cb6ab0..3d51ff8 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult-1.html
+++ 
b/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult-1.html
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="UTF-8"?><ajax-response><component id="linja11" 
><![CDATA[<span wicket:id="linja1" 
id="linja11">1</span>]]></component><header-contribution encoding="wicket1" 
><![CDATA[<head xmlns:wicket="http://wicket.apache.org";><script 
type="text/javascript" 
src="../resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-1.11.3.js"></script>
+<?xml version="1.0" encoding="UTF-8"?><ajax-response><component id="linja11" 
><![CDATA[<span wicket:id="linja1" 
id="linja11">1</span>]]></component><header-contribution><![CDATA[<head 
xmlns:wicket="http://wicket.apache.org";><script type="text/javascript" 
src="../resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-1.11.3.js"></script>
 <script type="text/javascript" 
src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-event-jquery.js"></script>
 <script type="text/javascript" 
src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery.js"></script>
 <script type="text/javascript" 
src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery-debug.js"></script>
 <script type="text/javascript" id="wicket-ajax-debug-enable">
 /*<![CDATA[*/
 Wicket.Ajax.DebugWindow.enabled=true;
-/*]^]^>*/
+/*]]]]><![CDATA[>*/
 </script>
 <script type="text/javascript" id="wicket-ajax-base-url">
 /*<![CDATA[*/
 
Wicket.Ajax.baseUrl="wicket/bookmarkable/org.apache.wicket.ajax.markup.html.componentMap.SimpleTestPage?0-1.IBehaviorListener.0-testPanel-baseSpan-linja1";
-/*]^]^>*/
+/*]]]]><![CDATA[>*/
 </script>
 
</head>]]></header-contribution><evaluate><![CDATA[(function(){Wicket.Timer.set('linja11',
 
function(){Wicket.Ajax.ajax({"u":"./org.apache.wicket.ajax.markup.html.componentMap.SimpleTestPage?0-1.IBehaviorListener.0-testPanel-baseSpan-linja1","c":"linja11"});},
 2000);})();]]></evaluate></ajax-response>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/87c38f29/wicket-core/src/test/js/head.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/js/head.js b/wicket-core/src/test/js/head.js
index 35c178c..9966749 100644
--- a/wicket-core/src/test/js/head.js
+++ b/wicket-core/src/test/js/head.js
@@ -251,31 +251,11 @@ jQuery(document).ready(function() {
                equal(newNumber, initialHeadElementsNumber + 1, 'A script 
element in the added element should be added and executed'); // 2
        });
 
-
-       module("Contributor.decode");
-
-       test('Wicket.Head.Contributor.decode - remove trailing ^ from closing 
CDATA', function() {
-               var expected = '<![CDATA[some data]]>',
-                       input = '<![CDATA[some data]]^>',
-                       encoding = 'wicket1',
-                       actual = Wicket.Head.Contributor.decode(encoding, 
input);
-                       
-               equal(actual, expected);
-       });
-
-       test('Wicket.Head.Contributor.decode - no decoding because of wrong 
encoding', function() {
-               var expected = '<![CDATA[some data]]^>',
-                       encoding = 'somethingWrong',
-                       actual = Wicket.Head.Contributor.decode(encoding, 
expected);
-                       
-               equal(actual, expected);
-       });
-
        module('Contributor.parse');
 
        test('Wicket.Head.Contributor.parse - parse head element with three 
script elements inside', function() {
                
-               var xmlDocument = Wicket.Xml.parse('<header-contribution 
encoding="wicket1"><![CDATA[<head><script type="text/javascript" 
src="data/test.js"></script><script type="text/javascript" 
id="wicket-ajax-debug-enable">/*<![CDATA[*/wicketAjaxDebugEnable=true;/*]^]^>*/</script><script
 type="text/javascript" 
id="wicket-ajax-base-url">/*<![CDATA[*/Wicket.Ajax.baseUrl="clock";/*]^]^>*/</script></head>]]></header-contribution>');
+               var xmlDocument = 
Wicket.Xml.parse('<header-contribution><![CDATA[<head><script 
type="text/javascript" src="data/test.js"></script><script 
type="text/javascript" 
id="wicket-ajax-debug-enable">/*<![CDATA[*/wicketAjaxDebugEnable=true;/*]]]]><![CDATA[>*/</script><script
 type="text/javascript" 
id="wicket-ajax-base-url">/*<![CDATA[*/Wicket.Ajax.baseUrl="clock";/*]]]]><![CDATA[>*/</script></head>]]></header-contribution>');
                var xmlRootElement = xmlDocument.documentElement;
                var xmlElement   = 
Wicket.Head.Contributor.parse(xmlRootElement);
                var isXml = jQuery.isXMLDoc(xmlElement);

Reply via email to