You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2011/11/08 16:40:36 UTC

svn commit: r1199294 - in /wicket/trunk/wicket-core/src/main/java/org/apache/wicket/resource: ./ aggregation/ dependencies/

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