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; } /**