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 2012/03/26 17:29:32 UTC
git commit: WICKET-4474 Disallow PackageResources in the bundles
Updated Branches:
refs/heads/master bfc1b6631 -> a6c5037bf
WICKET-4474 Disallow PackageResources in the bundles
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/a6c5037b
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/a6c5037b
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/a6c5037b
Branch: refs/heads/master
Commit: a6c5037bf7fc91576ccb368cd8300f770b31b4d3
Parents: bfc1b66
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Mon Mar 26 17:28:40 2012 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Mon Mar 26 17:28:40 2012 +0200
----------------------------------------------------------------------
.../java/org/apache/wicket/ResourceBundles.java | 29 +++++++++------
.../bundles/ConcatResourceBundleReference.java | 9 +++--
2 files changed, 23 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/a6c5037b/wicket-core/src/main/java/org/apache/wicket/ResourceBundles.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ResourceBundles.java b/wicket-core/src/main/java/org/apache/wicket/ResourceBundles.java
index d1dd755..5d138f5 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ResourceBundles.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ResourceBundles.java
@@ -27,10 +27,12 @@ import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.markup.head.IReferenceHeaderItem;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.markup.head.JavaScriptReferenceHeaderItem;
-import org.apache.wicket.request.resource.PackageResourceReference;
+import org.apache.wicket.request.resource.CssResourceReference;
+import org.apache.wicket.request.resource.JavaScriptResourceReference;
import org.apache.wicket.request.resource.ResourceReference;
import org.apache.wicket.request.resource.ResourceReferenceRegistry;
import org.apache.wicket.resource.bundles.ConcatResourceBundleReference;
+import org.apache.wicket.util.lang.Args;
/**
* Contains all resource bundles that are registered in the application. Resource bundles provide a
@@ -46,19 +48,17 @@ public class ResourceBundles
{
private final ResourceReferenceRegistry registry;
- private final List<HeaderItem> bundles;
-
private final Map<HeaderItem, HeaderItem> providedResourcesToBundles;
/**
* Construct.
*
* @param registry
+ * the registry that keeps all referenced resources
*/
- public ResourceBundles(ResourceReferenceRegistry registry)
+ public ResourceBundles(final ResourceReferenceRegistry registry)
{
- this.registry = registry;
- this.bundles= new ArrayList<HeaderItem>();
+ this.registry = Args.notNull(registry, "registry");
this.providedResourcesToBundles = new HashMap<HeaderItem, HeaderItem>();
}
@@ -80,10 +80,10 @@ public class ResourceBundles
* @return the newly created bundle
*/
public JavaScriptReferenceHeaderItem addJavaScriptBundle(Class<?> scope, String name,
- PackageResourceReference... references)
+ JavaScriptResourceReference... references)
{
List<JavaScriptReferenceHeaderItem> items = new ArrayList<JavaScriptReferenceHeaderItem>();
- for (PackageResourceReference curReference : references)
+ for (JavaScriptResourceReference curReference : references)
{
items.add(JavaScriptHeaderItem.forReference(curReference));
}
@@ -110,10 +110,10 @@ public class ResourceBundles
* @return the newly created bundle
*/
public CssReferenceHeaderItem addCssBundle(Class<?> scope, String name,
- PackageResourceReference... references)
+ CssResourceReference... references)
{
List<CssReferenceHeaderItem> items = new ArrayList<CssReferenceHeaderItem>();
- for (PackageResourceReference curReference : references)
+ for (CssResourceReference curReference : references)
{
items.add(CssHeaderItem.forReference(curReference));
}
@@ -144,9 +144,14 @@ public class ResourceBundles
}
providedResourcesToBundles.put(curProvidedResource, bundle);
}
- bundles.add(bundle);
if (bundle instanceof IReferenceHeaderItem)
- registry.registerResourceReference(((IReferenceHeaderItem)bundle).getReference());
+ {
+ ResourceReference reference = ((IReferenceHeaderItem) bundle).getReference();
+ if (reference.canBeRegistered())
+ {
+ registry.registerResourceReference(reference);
+ }
+ }
return bundle;
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/a6c5037b/wicket-core/src/main/java/org/apache/wicket/resource/bundles/ConcatResourceBundleReference.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/resource/bundles/ConcatResourceBundleReference.java b/wicket-core/src/main/java/org/apache/wicket/resource/bundles/ConcatResourceBundleReference.java
index c1af038..ebf37e6 100644
--- a/wicket-core/src/main/java/org/apache/wicket/resource/bundles/ConcatResourceBundleReference.java
+++ b/wicket-core/src/main/java/org/apache/wicket/resource/bundles/ConcatResourceBundleReference.java
@@ -26,7 +26,9 @@ import org.apache.wicket.Application;
import org.apache.wicket.ResourceBundles;
import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.markup.head.IReferenceHeaderItem;
+import org.apache.wicket.request.resource.CssResourceReference;
import org.apache.wicket.request.resource.IResource;
+import org.apache.wicket.request.resource.JavaScriptResourceReference;
import org.apache.wicket.request.resource.PackageResourceReference;
import org.apache.wicket.request.resource.ResourceReference;
import org.apache.wicket.util.lang.Args;
@@ -118,12 +120,13 @@ public class ConcatResourceBundleReference<T extends HeaderItem & IReferenceHead
{
for (T curProvidedResource : providedResources)
{
- if (!(curProvidedResource.getReference() instanceof PackageResourceReference))
+ ResourceReference reference = curProvidedResource.getReference();
+ if (!(reference instanceof CssResourceReference || reference instanceof JavaScriptResourceReference))
{
throw new IllegalArgumentException(
- "ConcatResourceBundleReference only works with PackageResourceReference, " +
+ "ConcatResourceBundleReference only works with CssResourceReference and JavaScriptResourceReference, " +
curProvidedResource + " provides a " +
- curProvidedResource.getReference().getClass().getSimpleName());
+ reference.getClass().getSimpleName());
}
}
}