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 2014/07/21 12:04:14 UTC
git commit: WICKET-5635 Provide a way to modify
ResourceReferenceRegistry.DefaultResourceReferenceFactory externally to be
used by wicket-bootstrap-less
Repository: wicket
Updated Branches:
refs/heads/wicket-6.x 5772296f9 -> 6154fd6aa
WICKET-5635 Provide a way to modify ResourceReferenceRegistry.DefaultResourceReferenceFactory externally to be used by wicket-bootstrap-less
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/6154fd6a
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/6154fd6a
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/6154fd6a
Branch: refs/heads/wicket-6.x
Commit: 6154fd6aae702ec5c23d39f6ac3ae9593da4d3b9
Parents: 5772296
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Mon Jul 21 13:02:01 2014 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Mon Jul 21 13:02:01 2014 +0300
----------------------------------------------------------------------
.../resource/ResourceReferenceRegistry.java | 31 ++++++++++++++++++--
.../resource/LessResourceReferenceTest.java | 6 ++--
.../resource/ResourceReferenceRegistryTest.java | 31 ++++++++++++++++++--
3 files changed, 61 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/6154fd6a/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceReferenceRegistry.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceReferenceRegistry.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceReferenceRegistry.java
index 254f5af..3d2282d 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceReferenceRegistry.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceReferenceRegistry.java
@@ -88,7 +88,7 @@ public class ResourceReferenceRegistry
* The factory to use when a ResourceReference is not previously
* registered and a new instance should be create
*/
- private final IResourceReferenceFactory resourceReferenceFactory;
+ private IResourceReferenceFactory resourceReferenceFactory;
/**
* Constructor.
@@ -395,7 +395,12 @@ public class ResourceReferenceRegistry
*/
protected ResourceReference createDefaultResourceReference(final Key key)
{
- return resourceReferenceFactory.create(key);
+ IResourceReferenceFactory factory = getResourceReferenceFactory();
+ if (factory == null)
+ {
+ factory = new DefaultResourceReferenceFactory();
+ }
+ return factory.create(key);
}
/**
@@ -466,4 +471,26 @@ public class ResourceReferenceRegistry
{
return map.size();
}
+
+ /**
+ * @return the factory that will create the resource reference by using the parsed
+ * {@link org.apache.wicket.request.resource.ResourceReference.Key}
+ */
+ public IResourceReferenceFactory getResourceReferenceFactory()
+ {
+ return resourceReferenceFactory;
+ }
+
+ /**
+ * Sets the factory to use when a ResourceReference is not previously
+ * registered and a new instance should be created
+ *
+ * @param resourceReferenceFactory
+ * the factory that will create the resource reference by using the parsed
+ * {@link org.apache.wicket.request.resource.ResourceReference.Key}
+ */
+ public void setResourceReferenceFactory(IResourceReferenceFactory resourceReferenceFactory)
+ {
+ this.resourceReferenceFactory = resourceReferenceFactory;
+ }
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/6154fd6a/wicket-core/src/test/java/org/apache/wicket/request/resource/LessResourceReferenceTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/LessResourceReferenceTest.java b/wicket-core/src/test/java/org/apache/wicket/request/resource/LessResourceReferenceTest.java
index 8e8dbb8..5cac60a 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/resource/LessResourceReferenceTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/LessResourceReferenceTest.java
@@ -46,7 +46,7 @@ public class LessResourceReferenceTest extends WicketTestCase
* An {@link IResourceReferenceFactory} that creates
* LessResourceReference for resources with extension '.less'
*/
- private static class LessResourceReferenceFactory extends ResourceReferenceRegistry.DefaultResourceReferenceFactory
+ static class LessResourceReferenceFactory extends ResourceReferenceRegistry.DefaultResourceReferenceFactory
{
@Override
public ResourceReference create(ResourceReference.Key key)
@@ -147,7 +147,7 @@ public class LessResourceReferenceTest extends WicketTestCase
}
}
- private static class LessResourceReference extends CssResourceReference
+ static class LessResourceReference extends CssResourceReference
{
public LessResourceReference(Class<?> scope, String name)
{
@@ -166,7 +166,7 @@ public class LessResourceReferenceTest extends WicketTestCase
}
}
- private static class LessPackageResource extends CssPackageResource
+ static class LessPackageResource extends CssPackageResource
{
public LessPackageResource(Class<?> scope, String name)
{
http://git-wip-us.apache.org/repos/asf/wicket/blob/6154fd6a/wicket-core/src/test/java/org/apache/wicket/request/resource/ResourceReferenceRegistryTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/ResourceReferenceRegistryTest.java b/wicket-core/src/test/java/org/apache/wicket/request/resource/ResourceReferenceRegistryTest.java
index 6dd8088..0a90eaf 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/resource/ResourceReferenceRegistryTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/ResourceReferenceRegistryTest.java
@@ -16,13 +16,16 @@
*/
package org.apache.wicket.request.resource;
-import org.junit.Assert;
+import static org.hamcrest.Matchers.instanceOf;
+import static org.hamcrest.Matchers.is;
+
+import org.apache.wicket.WicketTestCase;
import org.junit.Test;
/**
* Tests for {@link ResourceReferenceRegistry}
*/
-public class ResourceReferenceRegistryTest extends Assert
+public class ResourceReferenceRegistryTest extends WicketTestCase
{
/**
@@ -59,4 +62,28 @@ public class ResourceReferenceRegistryTest extends Assert
registry.registerResourceReference(reference);
assertEquals(0, registry.getSize());
}
+
+ @Test
+ public void setNullResourceReferenceFactoryStillUsesTheDefault()
+ {
+ ResourceReferenceRegistry registry = new ResourceReferenceRegistry();
+ registry.setResourceReferenceFactory(null);
+ ResourceReference.Key key = new ResourceReference.Key(ResourceReferenceRegistryTest.class.getName(),
+ "a.css", null, null, null);
+ ResourceReference reference = registry.createDefaultResourceReference(key);
+ assertThat(reference, is(instanceOf(ResourceReference.class)));
+ assertThat(reference.getResource(), is(instanceOf(CssPackageResource.class)));
+ }
+
+ @Test
+ public void createLessResourceReference()
+ {
+ ResourceReferenceRegistry registry = new ResourceReferenceRegistry();
+ registry.setResourceReferenceFactory(new LessResourceReferenceTest.LessResourceReferenceFactory());
+ ResourceReference.Key key = new ResourceReference.Key(ResourceReferenceRegistryTest.class.getName(),
+ "LessResourceReference.less", null, null, null);
+ ResourceReference reference = registry.createDefaultResourceReference(key);
+ assertThat(reference, is(instanceOf(LessResourceReferenceTest.LessResourceReference.class)));
+ assertThat(reference.getResource(), is(instanceOf(LessResourceReferenceTest.LessPackageResource.class)));
+ }
}