You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2015/06/26 00:39:24 UTC

wicket git commit: WICKET-5936 split CDATA end with CDATA end+start

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 <sv...@apache.org>
Authored: Fri Jun 26 00:38:52 2015 +0200
Committer: Sven Meier <sv...@apache.org>
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);