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 2010/12/20 12:27:29 UTC

svn commit: r1051071 - in /wicket/trunk: wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/ wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/httpaggregation/ wicket/src/main/java/org/apache/wicket/ma...

Author: mgrigorov
Date: Mon Dec 20 11:27:29 2010
New Revision: 1051071

URL: http://svn.apache.org/viewvc?rev=1051071&view=rev
Log:
Add IHeaderResponse#renderCSSReference() and #renderJavaScriptReference() that accept PageParameters additionaly.

This way it is possible to create resource urls with query parameters.
This is used by the new resource decoration example.

The problem was that until now the application code created the URL with the parameters with urlFor(ResourceReference, PageParameters) and then pass it to IHeaderResponse#renderCSSReference(String) which again relativized the url and thus broke it (the same for Javascript).

With this commit the new example works as it was in the original application for 1.4.x

TODO: make HomePage extending WicketExamplePage so that it has the top banner and navigation.

Removed:
    wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/httpaggregation/GroupLevel.java
Modified:
    wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/HttpAggregatingHeaderResponse.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/DecoratingHeaderResponse.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/IHeaderResponse.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/internal/HeaderResponse.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/filtering/HeaderResponseContainerFilteringHeaderResponse.java

Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/HttpAggregatingHeaderResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/HttpAggregatingHeaderResponse.java?rev=1051071&r1=1051070&r2=1051071&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/HttpAggregatingHeaderResponse.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/resourcedecoration/HttpAggregatingHeaderResponse.java Mon Dec 20 11:27:29 2010
@@ -23,7 +23,6 @@ import java.util.Set;
 import org.apache.wicket.examples.resourcedecoration.GroupedAndOrderedResourceReference.ResourceGroup;
 import org.apache.wicket.markup.html.IHeaderResponse;
 import org.apache.wicket.markup.html.WicketEventReference;
-import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.PackageResourceReference;
 import org.apache.wicket.request.resource.ResourceReference;
@@ -70,7 +69,7 @@ public class HttpAggregatingHeaderRespon
 		}
 
 		// build an aggregated URL:
-		StringBuffer refs = new StringBuffer();
+		StringBuilder refs = new StringBuilder();
 		boolean first = true;
 		for (ResourceReferenceAndStringData data : coll)
 		{
@@ -87,14 +86,13 @@ public class HttpAggregatingHeaderRespon
 		parameters.add("refs", refs);
 		parameters.add("type", key.isCss() ? "css" : "js");
 		ResourceReference ref = new PackageResourceReference("merged-resources");
-		String url = RequestCycle.get().urlFor(ref, parameters).toString();
 		if (key.isCss())
 		{
-			getRealResponse().renderCSSReference(url);
+			getRealResponse().renderCSSReference(ref, parameters, null);
 		}
 		else
 		{
-			getRealResponse().renderJavaScriptReference(url);
+			getRealResponse().renderJavaScriptReference(ref, parameters, null);
 		}
 	}
 

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/DecoratingHeaderResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/DecoratingHeaderResponse.java?rev=1051071&r1=1051070&r2=1051071&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/DecoratingHeaderResponse.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/DecoratingHeaderResponse.java Mon Dec 20 11:27:29 2010
@@ -17,6 +17,7 @@
 package org.apache.wicket.markup.html;
 
 import org.apache.wicket.request.Response;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.ResourceReference;
 
 /**
@@ -66,6 +67,12 @@ public abstract class DecoratingHeaderRe
 		realResponse.renderJavaScriptReference(reference, id);
 	}
 
+	public void renderJavaScriptReference(ResourceReference reference,
+		PageParameters pageParameters, String id)
+	{
+		realResponse.renderJavaScriptReference(reference, pageParameters, id);
+	}
+
 	public void renderJavaScriptReference(String url)
 	{
 		realResponse.renderJavaScriptReference(url);
@@ -96,6 +103,12 @@ public abstract class DecoratingHeaderRe
 		realResponse.renderCSSReference(reference, media);
 	}
 
+	public void renderCSSReference(ResourceReference reference, PageParameters pageParameters,
+		String media)
+	{
+		realResponse.renderCSSReference(reference, pageParameters, media);
+	}
+
 	public void renderCSSReference(String url, String media)
 	{
 		realResponse.renderCSSReference(url, media);

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/IHeaderResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/IHeaderResponse.java?rev=1051071&r1=1051070&r2=1051071&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/IHeaderResponse.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/IHeaderResponse.java Mon Dec 20 11:27:29 2010
@@ -19,6 +19,7 @@ package org.apache.wicket.markup.html;
 import java.io.Closeable;
 
 import org.apache.wicket.request.Response;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.ResourceReference;
 
 /**
@@ -51,6 +52,21 @@ public interface IHeaderResponse extends
 	public void renderJavaScriptReference(ResourceReference reference, String id);
 
 	/**
+	 * Writes a javascript reference with query parameters, if the specified reference hasn't been
+	 * rendered yet.
+	 * 
+	 * @param reference
+	 *            resource reference pointing to the javascript resource
+	 * @param pageParameters
+	 *            the parameters for this Javascript resource reference
+	 * @param id
+	 *            id that will be used to filter duplicate reference (it's still filtered by URL
+	 *            too)
+	 */
+	public void renderJavaScriptReference(ResourceReference reference,
+		PageParameters pageParameters, String id);
+
+	/**
 	 * Writes a javascript reference, if the specified reference hasn't been rendered yet.
 	 * 
 	 * @param url
@@ -110,6 +126,20 @@ public interface IHeaderResponse extends
 	public void renderCSSReference(ResourceReference reference, String media);
 
 	/**
+	 * Writes a CSS reference with query parameters, if the specified reference hasn't been rendered
+	 * yet.
+	 * 
+	 * @param reference
+	 *            resource reference pointing to the CSS resource
+	 * @param pageParameters
+	 *            the parameters for this CSS resource reference
+	 * @param media
+	 *            the media type for this CSS ("print", "screen", etc.)
+	 */
+	public void renderCSSReference(ResourceReference reference, PageParameters pageParameters,
+		String media);
+
+	/**
 	 * Writes a CSS reference, if the specified reference hasn't been rendered yet.
 	 * 
 	 * @param url

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/internal/HeaderResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/internal/HeaderResponse.java?rev=1051071&r1=1051070&r2=1051071&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/internal/HeaderResponse.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/internal/HeaderResponse.java Mon Dec 20 11:27:29 2010
@@ -28,6 +28,7 @@ import org.apache.wicket.request.Respons
 import org.apache.wicket.request.Url;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.response.NullResponse;
 import org.apache.wicket.util.string.JavaScriptUtils;
@@ -77,13 +78,19 @@ public abstract class HeaderResponse imp
 	 */
 	public void renderCSSReference(ResourceReference reference, String media)
 	{
+		renderCSSReference(reference, null, media);
+	}
+
+	public void renderCSSReference(ResourceReference reference, PageParameters pageParameters,
+		String media)
+	{
 		if (reference == null)
 		{
 			throw new IllegalArgumentException("reference cannot be null");
 		}
 		if (!closed)
 		{
-			IRequestHandler handler = new ResourceReferenceRequestHandler(reference);
+			IRequestHandler handler = new ResourceReferenceRequestHandler(reference, pageParameters);
 			CharSequence url = RequestCycle.get().urlFor(handler);
 			internalRenderCSSReference(url.toString(), media);
 		}
@@ -164,13 +171,19 @@ public abstract class HeaderResponse imp
 	 */
 	public void renderJavaScriptReference(ResourceReference reference, String id)
 	{
+		renderJavaScriptReference(reference, null, id);
+	}
+
+	public void renderJavaScriptReference(ResourceReference reference,
+		PageParameters pageParameters, String id)
+	{
 		if (reference == null)
 		{
 			throw new IllegalArgumentException("reference cannot be null");
 		}
 		if (!closed)
 		{
-			IRequestHandler handler = new ResourceReferenceRequestHandler(reference);
+			IRequestHandler handler = new ResourceReferenceRequestHandler(reference, pageParameters);
 			CharSequence url = RequestCycle.get().urlFor(handler);
 			internalRenderJavaScriptReference(url.toString(), id);
 		}

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/filtering/HeaderResponseContainerFilteringHeaderResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/filtering/HeaderResponseContainerFilteringHeaderResponse.java?rev=1051071&r1=1051070&r2=1051071&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/filtering/HeaderResponseContainerFilteringHeaderResponse.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/filtering/HeaderResponseContainerFilteringHeaderResponse.java Mon Dec 20 11:27:29 2010
@@ -26,6 +26,7 @@ import org.apache.wicket.markup.html.Dec
 import org.apache.wicket.markup.html.IHeaderResponse;
 import org.apache.wicket.request.Response;
 import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.response.StringResponse;
 import org.slf4j.Logger;
@@ -179,11 +180,18 @@ public class HeaderResponseContainerFilt
 	@Override
 	public void renderJavaScriptReference(final ResourceReference reference, final String id)
 	{
+		renderJavaScriptReference(reference, null, id);
+	}
+
+	@Override
+	public void renderJavaScriptReference(final ResourceReference reference,
+		final PageParameters pageParameters, final String id)
+	{
 		forReference(reference, new Runnable()
 		{
 			public void run()
 			{
-				getRealResponse().renderJavaScriptReference(reference, id);
+				getRealResponse().renderJavaScriptReference(reference, pageParameters, id);
 			}
 		});
 	}
@@ -251,11 +259,18 @@ public class HeaderResponseContainerFilt
 	@Override
 	public void renderCSSReference(final ResourceReference reference, final String media)
 	{
+		renderCSSReference(reference, null, media);
+	}
+
+	@Override
+	public void renderCSSReference(final ResourceReference reference,
+		final PageParameters pageParameters, final String media)
+	{
 		forReference(reference, new Runnable()
 		{
 			public void run()
 			{
-				getRealResponse().renderCSSReference(reference, media);
+				getRealResponse().renderCSSReference(reference, pageParameters, media);
 			}
 		});
 	}