Author: mgrigorov
Date: Tue Nov  8 15:40:36 2011
New Revision: 1199294

URL: http://svn.apache.org/viewvc?rev=1199294&view=rev
Log:
WICKET-4205 AbstractResourceAggregatingHeaderResponse does not override all 
render functions


Modified:
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/ResourceUtil.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/aggregation/AbstractDependencyRespectingResourceAggregatingHeaderResponse.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/aggregation/AbstractResourceAggregatingHeaderResponse.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/aggregation/ResourceReferenceAndStringData.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/dependencies/AbstractResourceDependentResourceReference.java

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/ResourceUtil.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/ResourceUtil.java?rev=1199294&r1=1199293&r2=1199294&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/ResourceUtil.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/ResourceUtil.java
 Tue Nov  8 15:40:36 2011
@@ -25,6 +25,7 @@ import org.apache.wicket.markup.html.IHe
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.resource.aggregation.ResourceReferenceAndStringData;
+import 
org.apache.wicket.resource.dependencies.AbstractResourceDependentResourceReference.ResourceType;
 import org.apache.wicket.util.io.IOUtils;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
@@ -96,46 +97,49 @@ public class ResourceUtil
 // ResourceReferenceAndStringData
        public static void renderTo(IHeaderResponse resp, 
ResourceReferenceAndStringData data)
        {
-               boolean css = data.isCss();
+               ResourceType resourceType = data.getResourceType();
                ResourceReference reference = data.getReference();
                PageParameters parameters = data.getParameters();
                String idOrMedia = data.getIdOrMedia();
                CharSequence content = data.getContent();
 
-               if (css)
+               switch (resourceType)
                {
-                       String condition = data.getCssCondition();
+                       case CSS :
+                               String condition = data.getCssCondition();
 
-                       if (Strings.isEmpty(content) == false)
-                       {
-                               resp.renderCSS(content, idOrMedia);
-                       }
-                       else if (reference == null)
-                       {
-                               resp.renderCSSReference(data.getUrl(), 
idOrMedia, condition);
-                       }
-                       else
-                       {
-                               resp.renderCSSReference(reference, parameters, 
idOrMedia, condition);
-                       }
-               }
-               else
-               {
-                       boolean defer = data.isJsDefer();
-                       String charset = data.getCharset();
-
-                       if (Strings.isEmpty(content) == false)
-                       {
-                               resp.renderJavaScript(content, idOrMedia);
-                       }
-                       else if (reference == null)
-                       {
-                               resp.renderJavaScriptReference(data.getUrl(), 
idOrMedia, defer, charset);
-                       }
-                       else
-                       {
-                               resp.renderJavaScriptReference(reference, 
parameters, idOrMedia, defer, charset);
-                       }
+                               if (Strings.isEmpty(content) == false)
+                               {
+                                       resp.renderCSS(content, idOrMedia);
+                               }
+                               else if (reference == null)
+                               {
+                                       resp.renderCSSReference(data.getUrl(), 
idOrMedia, condition);
+                               }
+                               else
+                               {
+                                       resp.renderCSSReference(reference, 
parameters, idOrMedia, condition);
+                               }
+                               break;
+                       case JS :
+                               boolean defer = data.isJsDefer();
+                               String charset = data.getCharset();
+
+                               if (Strings.isEmpty(content) == false)
+                               {
+                                       resp.renderJavaScript(content, 
idOrMedia);
+                               }
+                               else if (reference == null)
+                               {
+                                       
resp.renderJavaScriptReference(data.getUrl(), idOrMedia, defer, charset);
+                               }
+                               else
+                               {
+                                       
resp.renderJavaScriptReference(reference, parameters, idOrMedia, defer, 
charset);
+                               }
+                               break;
+                       case PLAIN :
+                               resp.renderString(content);
                }
        }
 

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/aggregation/AbstractDependencyRespectingResourceAggregatingHeaderResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/aggregation/AbstractDependencyRespectingResourceAggregatingHeaderResponse.java?rev=1199294&r1=1199293&r2=1199294&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/aggregation/AbstractDependencyRespectingResourceAggregatingHeaderResponse.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/aggregation/AbstractDependencyRespectingResourceAggregatingHeaderResponse.java
 Tue Nov  8 15:40:36 2011
@@ -84,7 +84,8 @@ public abstract class AbstractDependency
        {
                boolean css = 
ResourceType.CSS.equals(reference.getResourceType());
                String string = css ? reference.getMedia() : 
reference.getUniqueId();
-               return new ResourceReferenceAndStringData(reference, null, 
null, string, css, false, null,
-                       null);
+
+               return new ResourceReferenceAndStringData(reference, null, 
null, string,
+                       reference.getResourceType(), false, null, null);
        }
 }

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/aggregation/AbstractResourceAggregatingHeaderResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/aggregation/AbstractResourceAggregatingHeaderResponse.java?rev=1199294&r1=1199293&r2=1199294&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/aggregation/AbstractResourceAggregatingHeaderResponse.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/aggregation/AbstractResourceAggregatingHeaderResponse.java
 Tue Nov  8 15:40:36 2011
@@ -31,6 +31,7 @@ import org.apache.wicket.request.mapper.
 import org.apache.wicket.request.resource.IResource;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.resource.ResourceUtil;
+import 
org.apache.wicket.resource.dependencies.AbstractResourceDependentResourceReference.ResourceType;
 
 /**
  * A header response that can be used to aggregate resources (primarily 
resource references) into
@@ -77,28 +78,28 @@ public abstract class AbstractResourceAg
        public void renderJavaScriptReference(ResourceReference reference)
        {
                topLevelReferences.add(new 
ResourceReferenceAndStringData(reference, null, null, null,
-                       false, false, null, null));
+                       ResourceType.JS, false, null, null));
        }
 
        @Override
        public void renderJavaScriptReference(ResourceReference reference, 
String id)
        {
-               topLevelReferences.add(new 
ResourceReferenceAndStringData(reference, null, null, id, false,
-                       false, null, null));
+               topLevelReferences.add(new 
ResourceReferenceAndStringData(reference, null, null, id,
+                       ResourceType.JS, false, null, null));
        }
 
        @Override
        public void renderCSSReference(ResourceReference reference)
        {
                topLevelReferences.add(new 
ResourceReferenceAndStringData(reference, null, null, null,
-                       true, false, null, null));
+                       ResourceType.CSS, false, null, null));
        }
 
        @Override
        public void renderCSSReference(ResourceReference reference, String 
media)
        {
                topLevelReferences.add(new 
ResourceReferenceAndStringData(reference, null, null, media,
-                       true, false, null, null));
+                       ResourceType.CSS, false, null, null));
        }
 
        @Override
@@ -270,29 +271,29 @@ public abstract class AbstractResourceAg
        @Override
        public void renderJavaScriptReference(String url)
        {
-               topLevelReferences.add(new ResourceReferenceAndStringData(null, 
null, url, null, false,
-                       false, null, null));
+               topLevelReferences.add(new ResourceReferenceAndStringData(null, 
null, url, null,
+                       ResourceType.JS, false, null, null));
        }
 
        @Override
        public void renderJavaScriptReference(String url, String id)
        {
-               topLevelReferences.add(new ResourceReferenceAndStringData(null, 
null, url, id, false,
-                       false, null, null));
+               topLevelReferences.add(new ResourceReferenceAndStringData(null, 
null, url, id,
+                       ResourceType.JS, false, null, null));
        }
 
        @Override
        public void renderCSSReference(String url)
        {
-               topLevelReferences.add(new ResourceReferenceAndStringData(null, 
null, url, null, true,
-                       false, null, null));
+               topLevelReferences.add(new ResourceReferenceAndStringData(null, 
null, url, null,
+                       ResourceType.CSS, false, null, null));
        }
 
        @Override
        public void renderCSSReference(String url, String media)
        {
-               topLevelReferences.add(new ResourceReferenceAndStringData(null, 
null, url, media, true,
-                       false, null, null));
+               topLevelReferences.add(new ResourceReferenceAndStringData(null, 
null, url, media,
+                       ResourceType.CSS, false, null, null));
        }
 
        @Override
@@ -300,7 +301,7 @@ public abstract class AbstractResourceAg
                String id)
        {
                topLevelReferences.add(new 
ResourceReferenceAndStringData(reference, parameters, null, id,
-                       false, false, null, null));
+                       ResourceType.JS, false, null, null));
        }
 
        @Override
@@ -308,7 +309,7 @@ public abstract class AbstractResourceAg
                String id, boolean defer)
        {
                topLevelReferences.add(new 
ResourceReferenceAndStringData(reference, parameters, null, id,
-                       false, defer, null, null));
+                       ResourceType.JS, defer, null, null));
        }
 
        @Override
@@ -316,33 +317,33 @@ public abstract class AbstractResourceAg
                String id, boolean defer, String charset)
        {
                topLevelReferences.add(new 
ResourceReferenceAndStringData(reference, parameters, null, id,
-                       false, defer, charset, null));
+                       ResourceType.JS, defer, charset, null));
        }
 
        @Override
        public void renderJavaScriptReference(String url, String id, boolean 
defer)
        {
-               topLevelReferences.add(new ResourceReferenceAndStringData(null, 
null, url, null, false,
-                       defer, null, null));
+               topLevelReferences.add(new ResourceReferenceAndStringData(null, 
null, url, null,
+                       ResourceType.JS, defer, null, null));
        }
 
        @Override
        public void renderJavaScriptReference(String url, String id, boolean 
defer, String charset)
        {
-               topLevelReferences.add(new ResourceReferenceAndStringData(null, 
null, url, id, false,
-                       defer, charset, null));
+               topLevelReferences.add(new ResourceReferenceAndStringData(null, 
null, url, id,
+                       ResourceType.JS, defer, charset, null));
        }
 
        @Override
        public void renderJavaScript(CharSequence javascript, String id)
        {
-               topLevelReferences.add(new 
ResourceReferenceAndStringData(javascript, false, id));
+               topLevelReferences.add(new 
ResourceReferenceAndStringData(javascript, ResourceType.JS, id));
        }
 
        @Override
        public void renderCSS(CharSequence css, String media)
        {
-               topLevelReferences.add(new ResourceReferenceAndStringData(css, 
true, media));
+               topLevelReferences.add(new ResourceReferenceAndStringData(css, 
ResourceType.CSS, media));
        }
 
        @Override
@@ -350,7 +351,7 @@ public abstract class AbstractResourceAg
                String media)
        {
                topLevelReferences.add(new 
ResourceReferenceAndStringData(reference, pageParameters, null,
-                       media, true, false, null, null));
+                       media, ResourceType.CSS, false, null, null));
        }
 
        @Override
@@ -358,14 +359,37 @@ public abstract class AbstractResourceAg
                String media, String condition)
        {
                topLevelReferences.add(new 
ResourceReferenceAndStringData(reference, null, null, media,
-                       true, false, null, condition));
+                       ResourceType.CSS, false, null, condition));
        }
 
        @Override
        public void renderCSSReference(String url, String media, String 
condition)
        {
-               topLevelReferences.add(new ResourceReferenceAndStringData(null, 
null, url, media, true,
-                       false, null, condition));
+               topLevelReferences.add(new ResourceReferenceAndStringData(null, 
null, url, media,
+                       ResourceType.CSS, false, null, condition));
        }
 
+       @Override
+       public void renderString(CharSequence string)
+       {
+               topLevelReferences.add(new 
ResourceReferenceAndStringData(string, ResourceType.PLAIN, null));
+       }
+
+       @Override
+       public void renderOnDomReadyJavaScript(String javascript)
+       {
+               super.renderOnDomReadyJavaScript(javascript);
+       }
+
+       @Override
+       public void renderOnLoadJavaScript(String javascript)
+       {
+               super.renderOnLoadJavaScript(javascript);
+       }
+
+       @Override
+       public void renderOnEventJavaScript(String target, String event, String 
javascript)
+       {
+               super.renderOnEventJavaScript(target, event, javascript);
+       }
 }

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/aggregation/ResourceReferenceAndStringData.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/aggregation/ResourceReferenceAndStringData.java?rev=1199294&r1=1199293&r2=1199294&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/aggregation/ResourceReferenceAndStringData.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/aggregation/ResourceReferenceAndStringData.java
 Tue Nov  8 15:40:36 2011
@@ -18,6 +18,7 @@ package org.apache.wicket.resource.aggre
 
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.ResourceReference;
+import 
org.apache.wicket.resource.dependencies.AbstractResourceDependentResourceReference.ResourceType;
 
 /**
  * A data holder built for the {@link 
AbstractResourceAggregatingHeaderResponse} that groups the
@@ -35,11 +36,12 @@ import org.apache.wicket.request.resourc
 // another for CSS, ...)
 public class ResourceReferenceAndStringData
 {
+
        private final ResourceReference reference;
        private final PageParameters parameters;
        private final String url;
        private final String idOrMedia;
-       private final boolean isCss;
+       private final ResourceType type;
        private final boolean jsDefer;
        private final String charset;
        private final String cssCondition;
@@ -52,20 +54,20 @@ public class ResourceReferenceAndStringD
         * @param parameters
         * @param url
         * @param idOrMedia
-        * @param isCss
+        * @param type
         * @param jsDefer
         * @param charset
         * @param cssCondition
         */
        public ResourceReferenceAndStringData(ResourceReference reference, 
PageParameters parameters,
-               String url, String idOrMedia, boolean isCss, boolean jsDefer, 
String charset,
+               String url, String idOrMedia, ResourceType type, boolean 
jsDefer, String charset,
                String cssCondition)
        {
                this.reference = reference;
                this.parameters = parameters;
                this.url = url;
                this.idOrMedia = idOrMedia;
-               this.isCss = isCss;
+               this.type = type;
                this.jsDefer = jsDefer;
                this.charset = charset;
                this.cssCondition = cssCondition;
@@ -88,7 +90,7 @@ public class ResourceReferenceAndStringD
                parameters = null;
                url = null;
                this.idOrMedia = idOrMedia;
-               this.isCss = isCss;
+               type = isCss ? ResourceType.CSS : ResourceType.JS;
                jsDefer = false;
                charset = null;
                cssCondition = null;
@@ -99,13 +101,13 @@ public class ResourceReferenceAndStringD
         * Construct.
         * 
         * @param content
-        * @param isCss
+        * @param type
         * @param idOrMedia
         */
-       public ResourceReferenceAndStringData(CharSequence content, boolean 
isCss, String idOrMedia)
+       public ResourceReferenceAndStringData(CharSequence content, 
ResourceType type, String idOrMedia)
        {
                this.content = content;
-               this.isCss = isCss;
+               this.type = type;
                reference = null;
                parameters = null;
                url = null;
@@ -159,10 +161,20 @@ public class ResourceReferenceAndStringD
 
        /**
         * @return true if this is css, false if it's js
+        * @deprecated Use {@link #getResourceType()} instead.
         */
+       @Deprecated
        public boolean isCss()
        {
-               return isCss;
+               return type == ResourceType.CSS;
+       }
+
+       /**
+        * @return the type of the resource
+        */
+       public ResourceType getResourceType()
+       {
+               return type;
        }
 
        /**
@@ -206,10 +218,10 @@ public class ResourceReferenceAndStringD
                result = prime * result + ((content == null) ? 0 : 
content.hashCode());
                result = prime * result + ((cssCondition == null) ? 0 : 
cssCondition.hashCode());
                result = prime * result + ((idOrMedia == null) ? 0 : 
idOrMedia.hashCode());
-               result = prime * result + (isCss ? 1231 : 1237);
                result = prime * result + (jsDefer ? 1231 : 1237);
                result = prime * result + ((parameters == null) ? 0 : 
parameters.hashCode());
                result = prime * result + ((reference == null) ? 0 : 
reference.hashCode());
+               result = prime * result + ((type == null) ? 0 : 
type.hashCode());
                result = prime * result + ((url == null) ? 0 : url.hashCode());
                return result;
        }
@@ -252,8 +264,6 @@ public class ResourceReferenceAndStringD
                }
                else if (!idOrMedia.equals(other.idOrMedia))
                        return false;
-               if (isCss != other.isCss)
-                       return false;
                if (jsDefer != other.jsDefer)
                        return false;
                if (parameters == null)
@@ -270,6 +280,8 @@ public class ResourceReferenceAndStringD
                }
                else if (!reference.equals(other.reference))
                        return false;
+               if (type != other.type)
+                       return false;
                if (url == null)
                {
                        if (other.url != null)
@@ -284,7 +296,7 @@ public class ResourceReferenceAndStringD
        public String toString()
        {
                return "ResourceReferenceAndStringData [reference=" + reference 
+ ", parameters=" +
-                       parameters + ", url=" + url + ", idOrMedia=" + 
idOrMedia + ", isCss=" + isCss +
+                       parameters + ", url=" + url + ", idOrMedia=" + 
idOrMedia + ", type=" + type +
                        ", jsDefer=" + jsDefer + ", charset=" + charset + ", 
cssCondition=" + cssCondition +
                        ", content=" + content + "]";
        }

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/dependencies/AbstractResourceDependentResourceReference.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/dependencies/AbstractResourceDependentResourceReference.java?rev=1199294&r1=1199293&r2=1199294&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/dependencies/AbstractResourceDependentResourceReference.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource/dependencies/AbstractResourceDependentResourceReference.java
 Tue Nov  8 15:40:36 2011
@@ -50,7 +50,12 @@ public abstract class AbstractResourceDe
                /**
                 * CSS reference
                 */
-               CSS
+               CSS,
+
+               /**
+                * plain text
+                */
+               PLAIN;
        }
 
        private String uniqueId;
@@ -154,11 +159,27 @@ public abstract class AbstractResourceDe
         */
        public ResourceType getResourceType()
        {
-               if (!Strings.isEmpty(getName()) && getName().endsWith(".css"))
+               String resourceName = getName();
+
+               final ResourceType type;
+               if (Strings.isEmpty(resourceName))
+               {
+                       type = ResourceType.PLAIN;
+               }
+               else if (resourceName.endsWith(".css"))
+               {
+                       type = ResourceType.CSS;
+               }
+               else if (resourceName.endsWith(".js"))
+               {
+                       type = ResourceType.JS;
+               }
+               else
                {
-                       return ResourceType.CSS;
+                       throw new IllegalStateException("Cannot determine the 
resource's type by its name: " +
+                               resourceName);
                }
-               return ResourceType.JS;
+               return type;
        }
 
        /**


Reply via email to