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());
 			}
 		}
 	}