Author: mgrigorov
Date: Wed May 18 12:29:22 2011
New Revision: 1124217

URL: http://svn.apache.org/viewvc?rev=1124217&view=rev
Log:
WICKET-3724 Strip the jsessionid from the resource urls in Java instead of in 
wicket-ajax.js


Modified:
    wicket/trunk/wicket-core/src/main/java/org/apache/wicket/ajax/wicket-ajax.js
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/internal/HeaderResponse.java

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/ajax/wicket-ajax.js
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/ajax/wicket-ajax.js?rev=1124217&r1=1124216&r2=1124217&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/ajax/wicket-ajax.js 
(original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/ajax/wicket-ajax.js 
Wed May 18 12:29:22 2011
@@ -1724,7 +1724,7 @@ Wicket.Head.addElement = function(elemen
 // is an element in head that is of same type as myElement, and whose src
 // attribute is same as myElement.src.
 Wicket.Head.containsElement = function(element, mandatoryAttribute) {
-       var attr = 
Wicket.Head.stripJSessionId(element.getAttribute(mandatoryAttribute));
+       var attr = element.getAttribute(mandatoryAttribute);
        if (attr == null || attr == "" || typeof(attr) == "undefined")
                return false;
 
@@ -1743,8 +1743,8 @@ Wicket.Head.containsElement = function(e
                // this is necessary for filtering script references
                if (node.tagName.toLowerCase() == 
element.tagName.toLowerCase()) {
                
-                       var loadedUrl = 
Wicket.Head.stripJSessionId(node.getAttribute(mandatoryAttribute));
-                       var loadedUrl_ = 
Wicket.Head.stripJSessionId(node.getAttribute(mandatoryAttribute+"_"));
+                       var loadedUrl = node.getAttribute(mandatoryAttribute);
+                       var loadedUrl_ = 
node.getAttribute(mandatoryAttribute+"_");
                        if (loadedUrl == attr || loadedUrl_ == attr) {
                            return true;
                        }
@@ -1753,43 +1753,6 @@ Wicket.Head.containsElement = function(e
        return false;
 }
 
-/**
- * Removes the optional ';jsessionid=...' from the passed url
- * 
- * @param {String} url the url to strip the jsessionid from
- * @return {String} the url without the jsessionid and its value
- */
-// WICKET-3596
-Wicket.Head.stripJSessionId = function(url) {
-       if (url == null)
-       {
-               return null;
-       }
-
-       // http://.../abc;jsessionid=...?param=...
-       var ixSemiColon = url.indexOf(";");
-       if (ixSemiColon == -1)
-       {
-               return url;
-       }
-
-       var ixQuestionMark = url.indexOf("?");
-       if (ixQuestionMark == -1)
-       {
-               // no query paramaters; cut off at ";"
-               // http://.../abc;jsession=...
-               return url.substring(0, ixSemiColon);
-       }
-
-       if (ixQuestionMark <= ixSemiColon)
-       {
-               // ? is before ; - no jsessionid in the url
-               return url;
-       }
-
-       return url.substring(0, ixSemiColon) + url.substring(ixQuestionMark);
-}
-
 // Adds a javascript element to page header. 
 // The fakeSrc attribute is used to filter out duplicate javascript references.
 // External javascripts are loaded using xmlhttprequest. Then a javascript 
element is created and the

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/internal/HeaderResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/internal/HeaderResponse.java?rev=1124217&r1=1124216&r2=1124217&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/internal/HeaderResponse.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/internal/HeaderResponse.java
 Wed May 18 12:29:22 2011
@@ -139,7 +139,8 @@ public abstract class HeaderResponse imp
                }
                if (!closed)
                {
-                       List<String> token = Arrays.asList("css", url, media);
+                       String urlWoSessionId = Strings.stripJSessionId(url);
+                       List<String> token = Arrays.asList("css", 
urlWoSessionId, media);
                        if (wasRendered(token) == false)
                        {
                                if (Strings.isEmpty(condition) == false)
@@ -149,7 +150,7 @@ public abstract class HeaderResponse imp
                                        getResponse().write("]>");
                                }
                                getResponse().write("<link rel=\"stylesheet\" 
type=\"text/css\" href=\"");
-                               getResponse().write(url);
+                               getResponse().write(urlWoSessionId);
                                getResponse().write("\"");
                                if (media != null)
                                {
@@ -228,7 +229,9 @@ public abstract class HeaderResponse imp
                }
                if (!closed)
                {
-                       List<String> token1 = Arrays.asList("javascript", url);
+                       String urlWoSessionId = Strings.stripJSessionId(url);
+
+                       List<String> token1 = Arrays.asList("javascript", 
urlWoSessionId);
                        List<String> token2 = (id != null) ? 
Arrays.asList("javascript", id) : null;
 
                        final boolean token1Unused = wasRendered(token1) == 
false;
@@ -236,7 +239,7 @@ public abstract class HeaderResponse imp
 
                        if (token1Unused && token2Unused)
                        {
-                               
JavaScriptUtils.writeJavaScriptUrl(getResponse(), url, id, defer);
+                               
JavaScriptUtils.writeJavaScriptUrl(getResponse(), urlWoSessionId, id, defer);
                                markRendered(token1);
                                if (token2 != null)
                                {


Reply via email to