You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pa...@apache.org on 2012/05/04 18:34:36 UTC
git commit: WICKET-4533: addResourceReplacement methods to provide
alternative resources
Updated Branches:
refs/heads/master 021c8269e -> d30af7d18
WICKET-4533: addResourceReplacement methods to provide alternative resources
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/d30af7d1
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/d30af7d1
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/d30af7d1
Branch: refs/heads/master
Commit: d30af7d183c399f664324b2d0173465f2cb5ce00
Parents: 021c826
Author: Emond Papegaaij <pa...@apache.org>
Authored: Fri May 4 18:32:21 2012 +0200
Committer: Emond Papegaaij <pa...@apache.org>
Committed: Fri May 4 18:33:43 2012 +0200
----------------------------------------------------------------------
.../wicket/protocol/http/WebApplication.java | 67 +++++++++++++--
1 files changed, 58 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/d30af7d1/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
index 1f88dbd..7627daf 100644
--- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
+++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
@@ -32,7 +32,14 @@ import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.ajax.AjaxRequestHandler;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.AjaxRequestTargetListenerCollection;
+import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
+import org.apache.wicket.core.request.mapper.MountedMapper;
+import org.apache.wicket.core.request.mapper.PackageMapper;
+import org.apache.wicket.core.request.mapper.ResourceMapper;
+import org.apache.wicket.core.util.file.WebApplicationPath;
import org.apache.wicket.markup.MarkupType;
+import org.apache.wicket.markup.head.CssHeaderItem;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.form.AutoLabelResolver;
import org.apache.wicket.markup.html.form.AutoLabelTextResolver;
@@ -50,16 +57,16 @@ import org.apache.wicket.request.Request;
import org.apache.wicket.request.Response;
import org.apache.wicket.request.Url;
import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
import org.apache.wicket.request.handler.render.PageRenderer;
import org.apache.wicket.request.handler.render.WebPageRenderer;
import org.apache.wicket.request.http.WebRequest;
import org.apache.wicket.request.http.WebResponse;
-import org.apache.wicket.core.request.mapper.MountedMapper;
-import org.apache.wicket.core.request.mapper.PackageMapper;
-import org.apache.wicket.core.request.mapper.ResourceMapper;
import org.apache.wicket.request.mapper.mount.MountMapper;
+import org.apache.wicket.request.resource.CssResourceReference;
+import org.apache.wicket.request.resource.ExternalUrlResourceReference;
+import org.apache.wicket.request.resource.JavaScriptResourceReference;
import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.resource.bundles.ResourceBundleReference;
import org.apache.wicket.session.HttpSessionStore;
import org.apache.wicket.session.ISessionStore;
import org.apache.wicket.util.IContextProvider;
@@ -68,7 +75,6 @@ import org.apache.wicket.util.crypt.CharEncoding;
import org.apache.wicket.util.file.FileCleaner;
import org.apache.wicket.util.file.IFileCleaner;
import org.apache.wicket.util.file.IResourceFinder;
-import org.apache.wicket.core.util.file.WebApplicationPath;
import org.apache.wicket.util.lang.Args;
import org.apache.wicket.util.lang.PackageName;
import org.apache.wicket.util.string.Strings;
@@ -393,6 +399,48 @@ public abstract class WebApplication extends Application
}
/**
+ * Registers a replacement resource for the given javascript resource. This replacement can be
+ * another {@link JavaScriptResourceReference} for a packaged resource, but it can also be an
+ * {@link ExternalUrlResourceReference} to replace the resource by a resource hosted on a CDN.
+ * Registering a replacement will cause the resource to replaced by the given resource
+ * throughout the application: if {@code base} is added, {@code replacement} will be added
+ * instead.
+ *
+ * @param base
+ * The resource to replace
+ * @param replacement
+ * The replacement
+ */
+ public final void addResourceReplacement(JavaScriptResourceReference base,
+ ResourceReference replacement)
+ {
+ ResourceBundleReference bundle = new ResourceBundleReference(replacement);
+ bundle.addProvidedResources(JavaScriptHeaderItem.forReference(base));
+ getResourceBundles().addBundle(JavaScriptHeaderItem.forReference(bundle));
+ }
+
+ /**
+ * Registers a replacement resource for the given CSS resource. This replacement can be another
+ * {@link CssResourceReference} for a packaged resource, but it can also be an
+ * {@link ExternalUrlResourceReference} to replace the resource by a resource hosted on a CDN.
+ * Registering a replacement will cause the resource to replaced by the given resource
+ * throughout the application: if {@code base} is added, {@code replacement} will be added
+ * instead.
+ *
+ * @param base
+ * The resource to replace
+ * @param replacement
+ * The replacement
+ */
+ public final void addResourceReplacement(CssResourceReference base,
+ ResourceReference replacement)
+ {
+ ResourceBundleReference bundle = new ResourceBundleReference(replacement);
+ bundle.addProvidedResources(CssHeaderItem.forReference(base));
+ getResourceBundles().addBundle(CssHeaderItem.forReference(bundle));
+ }
+
+ /**
* Create a new WebRequest. Subclasses of WebRequest could e.g. decode and obfuscate URL which
* has been encoded by an appropriate WebResponse.
*
@@ -626,7 +674,7 @@ public abstract class WebApplication extends Application
{
throw new IllegalStateException(
"Configuration type is write-once. You can not change it. " + "" +
- "Current value='" + configurationType + "'");
+ "Current value='" + configurationType + "'");
}
this.configurationType = Args.notNull(configurationType, "configurationType");
}
@@ -705,8 +753,9 @@ public abstract class WebApplication extends Application
* <p>
* Default implementation: the page mime type must be "application/xhtml+xml" and request
* HTTP_ACCEPT header must include "application/xhtml+xml" to automatically include the xml
- * decl. Please see <a href="https://developer.mozilla.org/en/Writing_JavaScript_for_XHTML#Finally:_Content_Negotiation">Writing JavaScript for XHTML</a>
- * for details.
+ * decl. Please see <a href=
+ * "https://developer.mozilla.org/en/Writing_JavaScript_for_XHTML#Finally:_Content_Negotiation"
+ * >Writing JavaScript for XHTML</a> for details.
* <p>
* Please note that xml decls in Wicket's markup are only used for reading the markup. The
* markup's xml decl will always be removed and never be used to configure the response.
@@ -900,7 +949,7 @@ public abstract class WebApplication extends Application
* the new provider
*/
public void setAjaxRequestTargetProvider(
- IContextProvider<AjaxRequestTarget, Page> ajaxRequestTargetProvider)
+ IContextProvider<AjaxRequestTarget, Page> ajaxRequestTargetProvider)
{
this.ajaxRequestTargetProvider = ajaxRequestTargetProvider;
}