You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by kn...@apache.org on 2010/01/20 01:48:18 UTC
svn commit: r901016 - in /wicket/trunk:
wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/
wicket-examples/src/main/java/org/apache/wicket/examples/hangman/
wicket-examples/src/main/java/org/apache/wicket/examples/images/
wicket-exa...
Author: knopp
Date: Wed Jan 20 00:48:15 2010
New Revision: 901016
URL: http://svn.apache.org/viewvc?rev=901016&view=rev
Log:
Pub and hangman working
Added:
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/pub/Beer_de_DE.gif
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/PackageResourceReference.java (with props)
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/SharedResourceReference.java (with props)
Modified:
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/RatingsPage.java
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/hangman/Home.java
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/hangman/Letter.java
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/images/Home.java
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/Home.java
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/pub/Home.java
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/Palette.java
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/image/resource/ThumbnailImageResource.java
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/DefaultAbstractTree.java
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/table/TreeTable.java
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/rating/RatingPanel.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/Application.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebPage.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/Image.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/LabelIconPanel.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/resource/ResourceReferenceRequestHandler.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/resource/ResourceRequestHandler.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractResourceReferenceMapper.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/ResourceReferenceMapper.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/CompressedResourceReference.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/JavascriptResourceReference.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReference.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReferenceRegistry.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/ValidatorStringResourceLoader.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/session/HttpSessionStore.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/IResourceStreamLocator.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/LocaleResourceNameIterator.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceNameIterator.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceStreamLocator.java
Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/RatingsPage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/RatingsPage.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/RatingsPage.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/RatingsPage.java Wed Jan 20 00:48:15 2010
@@ -25,6 +25,7 @@
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.ng.request.handler.resource.ResourceReferenceRequestHandler;
+import org.apache.wicket.ng.resource.PackageResourceReference;
import org.apache.wicket.ng.resource.ResourceReference;
@@ -38,14 +39,14 @@
/**
* Star image for no selected star
*/
- public static final ResourceReference WICKETSTAR0 = new ResourceReference(RatingsPage.class,
- "WicketStar0.png");
+ public static final ResourceReference WICKETSTAR0 = new PackageResourceReference(
+ RatingsPage.class, "WicketStar0.png");
/**
* Star image for selected star
*/
- public static final ResourceReference WICKETSTAR1 = new ResourceReference(RatingsPage.class,
- "WicketStar1.png");
+ public static final ResourceReference WICKETSTAR1 = new PackageResourceReference(
+ RatingsPage.class, "WicketStar1.png");
/** For serialization. */
private static final long serialVersionUID = 1L;
Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/hangman/Home.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/hangman/Home.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/hangman/Home.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/hangman/Home.java Wed Jan 20 00:48:15 2010
@@ -36,6 +36,7 @@
*/
public Home(final PageParameters parameters)
{
+ getSession().bind();
final String word = parameters.getNamedParameter("word").toOptionalString();
if (word == null)
{
Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/hangman/Letter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/hangman/Letter.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/hangman/Letter.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/hangman/Letter.java Wed Jan 20 00:48:15 2010
@@ -19,8 +19,8 @@
import java.awt.Color;
import org.apache.wicket.IClusterable;
-import org.apache.wicket.Resource;
import org.apache.wicket.markup.html.image.resource.DefaultButtonImageResource;
+import org.apache.wicket.ng.resource.IResource;
import org.apache.wicket.ng.resource.ResourceReference;
import org.apache.wicket.util.lang.Primitives;
@@ -79,7 +79,8 @@
return new ResourceReference(Letter.class, asString() +
(isGuessed() ? "_enabled" : "_disabled"))
{
- protected Resource newResource()
+ @Override
+ public IResource getResource()
{
// Lazy loading of shared resource
final DefaultButtonImageResource buttonResource = new DefaultButtonImageResource(
Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/images/Home.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/images/Home.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/images/Home.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/images/Home.java Wed Jan 20 00:48:15 2010
@@ -28,7 +28,9 @@
import org.apache.wicket.markup.html.image.resource.RenderedDynamicImageResource;
import org.apache.wicket.model.Model;
import org.apache.wicket.ng.resource.IResource;
+import org.apache.wicket.ng.resource.PackageResourceReference;
import org.apache.wicket.ng.resource.ResourceReference;
+import org.apache.wicket.ng.resource.SharedResourceReference;
/**
@@ -58,7 +60,7 @@
}
}
- private static final ResourceReference RESOURCE_REF = new ResourceReference(Home.class,
+ private static final ResourceReference RESOURCE_REF = new PackageResourceReference(Home.class,
"Image2.gif");
/**
@@ -67,7 +69,7 @@
public Home()
{
// Image as package resource
- add(new Image("image2"));
+ add(new Image("image2", new PackageResourceReference(Home.class, "image2.gif")));
// Dynamically created image. Will re-render whenever resource is asked
// for.
@@ -83,7 +85,7 @@
add(new Image("okButton", getOkButtonImage()));
// Add cancel button image
- add(new Image("cancelButton", new ResourceReference("cancelButton")));
+ add(new Image("cancelButton", new SharedResourceReference("cancelButton")));
// image loaded as resource ref via model.
add(new Image("imageModelResourceReference", new Model<ResourceReference>(RESOURCE_REF)));
Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/Home.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/Home.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/Home.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/Home.java Wed Jan 20 00:48:15 2010
@@ -32,7 +32,7 @@
import org.apache.wicket.markup.parser.filter.RelativePathPrefixHandler;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.PropertyModel;
-import org.apache.wicket.ng.resource.ResourceReference;
+import org.apache.wicket.ng.resource.SharedResourceReference;
/**
@@ -134,7 +134,7 @@
"Click this link to go to Google in a popup").setPopupSettings(googlePopupSettings));
// Shared resource link
- add(new ResourceLink("cancelButtonLink", new ResourceReference("cancelButton")));
+ add(new ResourceLink("cancelButtonLink", new SharedResourceReference("cancelButton")));
// redirect to external url form
FeedbackPanel feedbackPanel = new FeedbackPanel("feedback");
Added: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/pub/Beer_de_DE.gif
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/pub/Beer_de_DE.gif?rev=901016&view=auto
==============================================================================
Files wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/pub/Beer_de_DE.gif (added) and wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/pub/Beer_de_DE.gif Wed Jan 20 00:48:15 2010 differ
Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/pub/Home.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/pub/Home.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/pub/Home.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/pub/Home.java Wed Jan 20 00:48:15 2010
@@ -25,6 +25,7 @@
import org.apache.wicket.model.Model;
import org.apache.wicket.model.StringResourceModel;
import org.apache.wicket.ng.request.component.PageParameters;
+import org.apache.wicket.ng.resource.PackageResourceReference;
import org.apache.wicket.util.value.ValueMap;
@@ -44,7 +45,7 @@
*/
public Home(final PageParameters parameters)
{
- add(new Image("beer"));
+ add(new Image("beer", new PackageResourceReference(Home.class, "Beer.gif")));
// create a dummy object to serve as our substitution model
ValueMap map = new ValueMap();
Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/Palette.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/Palette.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/Palette.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/Palette.java Wed Jan 20 00:48:15 2010
@@ -37,6 +37,9 @@
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.ResourceModel;
+import org.apache.wicket.ng.resource.CompressedResourceReference;
+import org.apache.wicket.ng.resource.JavascriptResourceReference;
+import org.apache.wicket.ng.resource.PackageResourceReference;
import org.apache.wicket.ng.resource.ResourceReference;
@@ -112,26 +115,28 @@
private Component selectionComponent;
/** reference to the palette's javascript resource */
- private static final ResourceReference JAVASCRIPT = new ResourceReference(Palette.class,
- "palette.js");
+ private static final ResourceReference JAVASCRIPT = new JavascriptResourceReference(
+ Palette.class, "palette.js");
/** reference to the palette's css resource */
- private static final ResourceReference CSS = new ResourceReference(Palette.class, "palette.css");
+ private static final ResourceReference CSS = new CompressedResourceReference(Palette.class,
+ "palette.css");
/** reference to default up button image */
- private static final ResourceReference UP_IMAGE = new ResourceReference(Palette.class, "up.gif");
+ private static final ResourceReference UP_IMAGE = new PackageResourceReference(Palette.class,
+ "up.gif");
/** reference to default down button image */
- private static final ResourceReference DOWN_IMAGE = new ResourceReference(Palette.class,
+ private static final ResourceReference DOWN_IMAGE = new PackageResourceReference(Palette.class,
"down.gif");
/** reference to default remove button image */
- private static final ResourceReference REMOVE_IMAGE = new ResourceReference(Palette.class,
- "remove.gif");
+ private static final ResourceReference REMOVE_IMAGE = new PackageResourceReference(
+ Palette.class, "remove.gif");
/** reference to default add button image */
- private static final ResourceReference ADD_IMAGE = new ResourceReference(Palette.class,
+ private static final ResourceReference ADD_IMAGE = new PackageResourceReference(Palette.class,
"add.gif");
/**
Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/image/resource/ThumbnailImageResource.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/image/resource/ThumbnailImageResource.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/image/resource/ThumbnailImageResource.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/image/resource/ThumbnailImageResource.java Wed Jan 20 00:48:15 2010
@@ -25,8 +25,7 @@
import javax.imageio.ImageIO;
import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.markup.html.WebResource;
-import org.apache.wicket.markup.html.image.resource.DynamicImageResource;
+import org.apache.wicket.ng.resource.DynamicImageResource;
import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
import org.apache.wicket.util.time.Time;
import org.slf4j.Logger;
Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/DefaultAbstractTree.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/DefaultAbstractTree.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/DefaultAbstractTree.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/DefaultAbstractTree.java Wed Jan 20 00:48:15 2010
@@ -37,6 +37,8 @@
import org.apache.wicket.model.IModel;
import org.apache.wicket.ng.request.cycle.RequestCycle;
import org.apache.wicket.ng.request.handler.resource.ResourceReferenceRequestHandler;
+import org.apache.wicket.ng.resource.CompressedResourceReference;
+import org.apache.wicket.ng.resource.PackageResourceReference;
import org.apache.wicket.ng.resource.ResourceReference;
import org.apache.wicket.util.lang.EnumeratedType;
@@ -119,20 +121,20 @@
/**
* Reference to the css file.
*/
- private static final ResourceReference CSS = new ResourceReference(DefaultAbstractTree.class,
- "res/tree.css");
+ private static final ResourceReference CSS = new CompressedResourceReference(
+ DefaultAbstractTree.class, "res/tree.css");
/** Reference to the icon of closed tree folder */
- private static final ResourceReference FOLDER_CLOSED = new ResourceReference(
+ private static final ResourceReference FOLDER_CLOSED = new PackageResourceReference(
DefaultAbstractTree.class, "res/folder-closed.gif");
/** Reference to the icon of open tree folder */
- private static final ResourceReference FOLDER_OPEN = new ResourceReference(
+ private static final ResourceReference FOLDER_OPEN = new PackageResourceReference(
DefaultAbstractTree.class, "res/folder-open.gif");
/** Reference to the icon of tree item (not a folder) */
- private static final ResourceReference ITEM = new ResourceReference(DefaultAbstractTree.class,
- "res/item.gif");
+ private static final ResourceReference ITEM = new PackageResourceReference(
+ DefaultAbstractTree.class, "res/item.gif");
/** The link type, default is {@link LinkType#AJAX ajax}. */
private LinkType linkType = LinkType.AJAX;
Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/table/TreeTable.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/table/TreeTable.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/table/TreeTable.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/table/TreeTable.java Wed Jan 20 00:48:15 2010
@@ -33,6 +33,7 @@
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
+import org.apache.wicket.ng.resource.CompressedResourceReference;
import org.apache.wicket.ng.resource.ResourceReference;
@@ -109,8 +110,8 @@
}
/** Reference to the css file. */
- private static final ResourceReference CSS = new ResourceReference(DefaultAbstractTree.class,
- "res/tree-table.css");
+ private static final ResourceReference CSS = new CompressedResourceReference(
+ DefaultAbstractTree.class, "res/tree-table.css");
private static final long serialVersionUID = 1L;
Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/rating/RatingPanel.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/rating/RatingPanel.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/rating/RatingPanel.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/rating/RatingPanel.java Wed Jan 20 00:48:15 2010
@@ -31,6 +31,7 @@
import org.apache.wicket.model.Model;
import org.apache.wicket.model.StringResourceModel;
import org.apache.wicket.ng.request.handler.resource.ResourceReferenceRequestHandler;
+import org.apache.wicket.ng.resource.PackageResourceReference;
import org.apache.wicket.ng.resource.ResourceReference;
/**
@@ -157,13 +158,13 @@
/**
* Star image for no selected star
*/
- public static final ResourceReference STAR0 = new ResourceReference(RatingPanel.class,
+ public static final ResourceReference STAR0 = new PackageResourceReference(RatingPanel.class,
"star0.gif");
/**
* Star image for selected star
*/
- public static final ResourceReference STAR1 = new ResourceReference(RatingPanel.class,
+ public static final ResourceReference STAR1 = new PackageResourceReference(RatingPanel.class,
"star1.gif");
/**
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Application.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Application.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Application.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Application.java Wed Jan 20 00:48:15 2010
@@ -1387,7 +1387,7 @@
Session session = getSessionStore().lookup(requestCycle.getRequest());
if (session == null)
{
- session = newSession(requestCycle);
+ session = newSession(requestCycle.getRequest(), requestCycle.getResponse());
ThreadContext.setSession(session);
getPageManager().newSessionCreated();
}
@@ -1398,11 +1398,6 @@
return session;
}
- protected Session newSession(RequestCycle requestCycle)
- {
- return new WebSession(requestCycle.getRequest());
- }
-
/**
* Override this method to create custom Request Cycle instance.
*
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java Wed Jan 20 00:48:15 2010
@@ -26,6 +26,7 @@
import org.apache.wicket.ng.request.Url;
import org.apache.wicket.ng.request.cycle.RequestCycle;
import org.apache.wicket.ng.resource.JavascriptResourceReference;
+import org.apache.wicket.ng.resource.PackageResourceReference;
import org.apache.wicket.ng.resource.ResourceReference;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.protocol.http.WebRequest;
@@ -47,7 +48,7 @@
private static final long serialVersionUID = 1L;
/** reference to the default indicator gif file. */
- public static final ResourceReference INDICATOR = new ResourceReference(
+ public static final ResourceReference INDICATOR = new PackageResourceReference(
AbstractDefaultAjaxBehavior.class, "indicator.gif");
/** reference to the default ajax debug support javascript file. */
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebPage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebPage.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebPage.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebPage.java Wed Jan 20 00:48:15 2010
@@ -29,6 +29,7 @@
import org.apache.wicket.model.IModel;
import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.ng.request.handler.IPageRequestHandler;
+import org.apache.wicket.ng.resource.PackageResourceReference;
import org.apache.wicket.ng.resource.ResourceReference;
import org.apache.wicket.protocol.http.WebResponse;
import org.apache.wicket.response.StringResponse;
@@ -97,7 +98,7 @@
}
/** The resource references used for new window/tab support */
- private static ResourceReference cookiesResource = new ResourceReference(WebPage.class,
+ private static ResourceReference cookiesResource = new PackageResourceReference(WebPage.class,
"cookies.js");
/**
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/Image.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/Image.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/Image.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/Image.java Wed Jan 20 00:48:15 2010
@@ -46,13 +46,12 @@
private final LocalizedImageResource localizedImageResource = new LocalizedImageResource(this);
/**
- * This constructor can be used if you have a img tag that has a src that points to a
- * PackageResource (which will be created and bind to the shared resources) Or if you have a
- * value attribute in your tag for which the image factory can make an image.
+ * This constructor can be used if you override {@link #getImageResourceReference()} or
+ * {@link #getImageResource()}
*
- * @see org.apache.wicket.Component#Component(String)
+ * @param id
*/
- public Image(final String id)
+ protected Image(final String id)
{
super(id);
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/image/resource/LocalizedImageResource.java Wed Jan 20 00:48:15 2010
@@ -31,6 +31,7 @@
import org.apache.wicket.ng.request.handler.resource.ResourceReferenceRequestHandler;
import org.apache.wicket.ng.resource.IResource;
import org.apache.wicket.ng.resource.PackageResource;
+import org.apache.wicket.ng.resource.PackageResourceReference;
import org.apache.wicket.ng.resource.ResourceReference;
import org.apache.wicket.ng.resource.IResource.Attributes;
import org.apache.wicket.util.lang.Objects;
@@ -421,7 +422,7 @@
{
// Is resource already available via the application?
if (application.getResourceReferenceRegistry().getResourceReference(
- Application.class, imageReferenceName, locale, style, variation, false) == null)
+ Application.class, imageReferenceName, locale, style, variation, true) == null)
{
// Resource not available yet, so create it with factory and
// share via Application
@@ -435,8 +436,8 @@
}
// Create resource reference
- resourceReference = new ResourceReference(Application.class, imageReferenceName,
- locale, style, variation);
+ resourceReference = new PackageResourceReference(Application.class,
+ imageReferenceName, locale, style, variation);
}
else
{
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/LabelIconPanel.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/LabelIconPanel.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/LabelIconPanel.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/LabelIconPanel.java Wed Jan 20 00:48:15 2010
@@ -23,6 +23,7 @@
import org.apache.wicket.markup.html.image.Image;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
+import org.apache.wicket.ng.resource.PackageResourceReference;
import org.apache.wicket.ng.resource.ResourceReference;
/**
@@ -172,10 +173,10 @@
return RESOURCE_ITEM;
}
- private static final ResourceReference RESOURCE_FOLDER_OPEN = new ResourceReference(
+ private static final ResourceReference RESOURCE_FOLDER_OPEN = new PackageResourceReference(
LabelIconPanel.class, "res/folder-open.gif");
- private static final ResourceReference RESOURCE_FOLDER_CLOSED = new ResourceReference(
+ private static final ResourceReference RESOURCE_FOLDER_CLOSED = new PackageResourceReference(
LabelIconPanel.class, "res/folder-closed.gif");
- private static final ResourceReference RESOURCE_ITEM = new ResourceReference(
+ private static final ResourceReference RESOURCE_ITEM = new PackageResourceReference(
LabelIconPanel.class, "res/item.gif");
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/resolver/AutoLinkResolver.java Wed Jan 20 00:48:15 2010
@@ -34,6 +34,7 @@
import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.ng.request.handler.resource.ResourceReferenceRequestHandler;
import org.apache.wicket.ng.resource.PackageResource;
+import org.apache.wicket.ng.resource.PackageResourceReference;
import org.apache.wicket.ng.resource.ResourceReference;
import org.apache.wicket.protocol.http.RequestUtils;
import org.apache.wicket.util.lang.Packages;
@@ -567,8 +568,8 @@
if (PackageResource.exists(clazz, href, getLocale(), getStyle(), getVariation()))
{
// Create the component implementing the link
- resourceReference = new ResourceReference(clazz, href, getLocale(), getStyle(),
- getVariation());
+ resourceReference = new PackageResourceReference(clazz, href, getLocale(),
+ getStyle(), getVariation());
}
else
{
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/resource/ResourceReferenceRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/resource/ResourceReferenceRequestHandler.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/resource/ResourceReferenceRequestHandler.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/resource/ResourceReferenceRequestHandler.java Wed Jan 20 00:48:15 2010
@@ -86,5 +86,6 @@
*/
public void respond(RequestCycle requestCycle)
{
+ new ResourceRequestHandler(getResourceReference().getResource(), getPageParameters()).respond(requestCycle);
}
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/resource/ResourceRequestHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/resource/ResourceRequestHandler.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/resource/ResourceRequestHandler.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/handler/resource/ResourceRequestHandler.java Wed Jan 20 00:48:15 2010
@@ -16,8 +16,6 @@
*/
package org.apache.wicket.ng.request.handler.resource;
-import java.util.Locale;
-
import org.apache.wicket.IRequestHandler;
import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.ng.request.cycle.RequestCycle;
@@ -32,9 +30,6 @@
public class ResourceRequestHandler implements IRequestHandler
{
private final IResource resource;
- private final Locale locale;
- private final String style;
- private final String variation;
private final PageParameters pageParameters;
/**
@@ -46,41 +41,15 @@
* @param variation
* @param pageParameters
*/
- public ResourceRequestHandler(IResource resource, Locale locale, String style,
- String variation, PageParameters pageParameters)
+ public ResourceRequestHandler(IResource resource, PageParameters pageParameters)
{
Checks.argumentNotNull(resource, "resource");
this.resource = resource;
- this.locale = locale;
- this.style = style;
- this.variation = variation;
- this.pageParameters = pageParameters != null ? pageParameters : new PageParameters();
- }
-
- /**
- * @return locale
- */
- public Locale getLocale()
- {
- return locale;
- }
- /**
- * @return style
- */
- public String getStyle()
- {
- return style;
+ this.pageParameters = pageParameters != null ? pageParameters : new PageParameters();
}
- /**
- * @return variation
- */
- public String getVariation()
- {
- return variation;
- }
/**
* @return page parameters
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractResourceReferenceMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractResourceReferenceMapper.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractResourceReferenceMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/AbstractResourceReferenceMapper.java Wed Jan 20 00:48:15 2010
@@ -30,44 +30,36 @@
*/
public abstract class AbstractResourceReferenceMapper extends AbstractMapper
{
- /**
- *
- */
- protected static class ResourceReferenceAttributes
- {
- protected Locale locale;
- protected String style;
- protected String variation;
- };
/**
*
* @param attributes
* @return
*/
- protected static String encodeResourceReferenceAttributes(ResourceReferenceAttributes attributes)
+ protected static String encodeResourceReferenceAttributes(
+ ResourceReference.UrlAttributes attributes)
{
if (attributes == null ||
- (attributes.locale == null && attributes.style == null && attributes.variation == null))
+ (attributes.getLocale() == null && attributes.getStyle() == null && attributes.getVariation() == null))
{
return null;
}
else
{
StringBuilder res = new StringBuilder();
- if (attributes.locale != null)
+ if (attributes.getLocale() != null)
{
- res.append(attributes.locale.toString());
+ res.append(attributes.getLocale().toString());
}
- if (!Strings.isEmpty(attributes.style))
+ if (!Strings.isEmpty(attributes.getStyle()))
{
res.append("-");
- res.append(attributes.style);
+ res.append(attributes.getStyle());
}
- if (!Strings.isEmpty(attributes.variation))
+ if (!Strings.isEmpty(attributes.getVariation()))
{
res.append("-");
- res.append(attributes.variation);
+ res.append(attributes.getVariation());
}
return res.toString();
}
@@ -78,24 +70,28 @@
* @param attributes
* @return
*/
- protected static ResourceReferenceAttributes decodeResourceReferenceAttributes(String attributes)
+ protected static ResourceReference.UrlAttributes decodeResourceReferenceAttributes(
+ String attributes)
{
- ResourceReferenceAttributes res = new ResourceReferenceAttributes();
+ Locale locale = null;
+ String style = null;
+ String variation = null;
+
if (!Strings.isEmpty(attributes))
{
String split[] = attributes.split("-", 3);
- res.locale = parseLocale(split[0]);
+ locale = parseLocale(split[0]);
if (split.length == 2)
{
- res.style = split[1];
+ style = split[1];
}
else if (split.length == 3)
{
- res.style = split[1];
- res.variation = split[2];
+ style = split[1];
+ variation = split[2];
}
}
- return res;
+ return new ResourceReference.UrlAttributes(locale, style, variation);
}
/**
@@ -138,11 +134,7 @@
*/
protected void encodeResourceReferenceAttributes(Url url, ResourceReference reference)
{
- ResourceReferenceAttributes attributes = new ResourceReferenceAttributes();
- attributes.locale = reference.getLocale();
- attributes.style = reference.getStyle();
- attributes.variation = reference.getVariation();
- String encoded = encodeResourceReferenceAttributes(attributes);
+ String encoded = encodeResourceReferenceAttributes(reference.getUrlAttributes());
if (!Strings.isEmpty(encoded))
{
url.getQueryParameters().add(new Url.QueryParameter(encoded, ""));
@@ -154,7 +146,7 @@
* @param url
* @return
*/
- protected ResourceReferenceAttributes getResourceReferenceAttributes(Url url)
+ protected ResourceReference.UrlAttributes getResourceReferenceAttributes(Url url)
{
if (url == null)
{
@@ -168,6 +160,6 @@
return decodeResourceReferenceAttributes(param.getName());
}
}
- return new ResourceReferenceAttributes();
+ return new ResourceReference.UrlAttributes(null, null, null);
}
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/ResourceReferenceMapper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/ResourceReferenceMapper.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/ResourceReferenceMapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/mapper/ResourceReferenceMapper.java Wed Jan 20 00:48:15 2010
@@ -21,10 +21,8 @@
import org.apache.wicket.ng.request.Url;
import org.apache.wicket.ng.request.component.PageParameters;
import org.apache.wicket.ng.request.handler.resource.ResourceReferenceRequestHandler;
-import org.apache.wicket.ng.request.handler.resource.ResourceRequestHandler;
import org.apache.wicket.ng.request.mapper.parameters.IPageParametersEncoder;
import org.apache.wicket.ng.request.mapper.parameters.SimplePageParametersEncoder;
-import org.apache.wicket.ng.resource.IResource;
import org.apache.wicket.ng.resource.ResourceReference;
import org.apache.wicket.util.lang.Classes;
@@ -85,7 +83,7 @@
name.append(url.getSegments().get(i));
}
- ResourceReferenceAttributes attributes = getResourceReferenceAttributes(url);
+ ResourceReference.UrlAttributes attributes = getResourceReferenceAttributes(url);
// extract the PageParameters from URL if there are any
PageParameters pageParameters = extractPageParameters(request,
@@ -95,18 +93,11 @@
if (scope != null)
{
ResourceReference res = getContext().getResourceReferenceRegistry()
- .getResourceReference(scope, name.toString(), attributes.locale,
- attributes.style, attributes.variation, false);
+ .getResourceReference(scope, name.toString(), attributes.getLocale(),
+ attributes.getStyle(), attributes.getVariation(), true);
if (res != null)
{
- IResource resource = res.getResource();
- if (resource != null)
- {
- ResourceRequestHandler handler = new ResourceRequestHandler(resource,
- attributes.locale, attributes.style, attributes.variation,
- pageParameters);
- return handler;
- }
+ return new ResourceReferenceRequestHandler(res, pageParameters);
}
}
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/CompressedResourceReference.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/CompressedResourceReference.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/CompressedResourceReference.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/CompressedResourceReference.java Wed Jan 20 00:48:15 2010
@@ -19,7 +19,7 @@
import java.util.Locale;
// TODO NG
-public class CompressedResourceReference extends ResourceReference
+public class CompressedResourceReference extends PackageResourceReference
{
public CompressedResourceReference(Class<?> scope, String name, Locale locale, String style,
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/JavascriptResourceReference.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/JavascriptResourceReference.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/JavascriptResourceReference.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/JavascriptResourceReference.java Wed Jan 20 00:48:15 2010
@@ -23,7 +23,7 @@
*
* @author Matej
*/
-public class JavascriptResourceReference extends ResourceReference
+public class JavascriptResourceReference extends PackageResourceReference
{
public JavascriptResourceReference(Class<?> scope, String name, Locale locale, String style,
Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/PackageResourceReference.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/PackageResourceReference.java?rev=901016&view=auto
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/PackageResourceReference.java (added)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/PackageResourceReference.java Wed Jan 20 00:48:15 2010
@@ -0,0 +1,131 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.ng.resource;
+
+import java.util.Locale;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
+import org.apache.wicket.Application;
+import org.apache.wicket.Session;
+import org.apache.wicket.util.lang.Packages;
+import org.apache.wicket.util.resource.locator.IResourceStreamLocator;
+
+public class PackageResourceReference extends ResourceReference
+{
+
+ public PackageResourceReference(Class<?> scope, String name, Locale locale, String style,
+ String variation)
+ {
+ super(scope, name, locale, style, variation);
+ }
+
+ public PackageResourceReference(Class<?> scope, String name)
+ {
+ super(scope, name);
+ }
+
+ public PackageResourceReference(String name)
+ {
+ super(name);
+ }
+
+ @Override
+ public IResource getResource()
+ {
+ return new PackageResource(getScope(), getName(), getLocale(), getStyle(), getVariation());
+ }
+
+ private UrlAttributes testResource(IResourceStreamLocator locator, Locale locale, String style,
+ String variation)
+ {
+ String absolutePath = Packages.absolutePath(getScope(), getName());
+ if (locator.locate(getScope(), absolutePath, style, variation, locale, null, true) != null)
+ {
+ return new UrlAttributes(locale, style, variation);
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ private UrlAttributes getUrlAttributes(Locale locale, String style, String variation)
+ {
+ IResourceStreamLocator locator = Application.get()
+ .getResourceSettings()
+ .getResourceStreamLocator();
+
+ UrlAttributes res;
+
+ res = testResource(locator, locale, style, variation);
+ if (res == null)
+ {
+ res = testResource(locator, locale, style, null);
+ }
+ if (res == null)
+ {
+ res = testResource(locator, locale, null, variation);
+ }
+ if (res == null)
+ {
+ res = testResource(locator, null, style, variation);
+ }
+ if (res == null)
+ {
+ res = testResource(locator, locale, null, null);
+ }
+ if (res == null)
+ {
+ res = testResource(locator, null, style, null);
+ }
+ if (res == null)
+ {
+ res = testResource(locator, null, null, variation);
+ }
+ if (res == null)
+ {
+ res = new UrlAttributes(null, null, null);
+ }
+ return res;
+ }
+
+ private transient ConcurrentMap<UrlAttributes, UrlAttributes> urlAttributesCacheMap;
+
+ @Override
+ public UrlAttributes getUrlAttributes()
+ {
+ Locale locale = getLocale() != null ? getLocale() : Session.get().getLocale();
+ String style = getStyle() != null ? getStyle() : Session.get().getStyle();
+ String variation = getVariation();
+
+ UrlAttributes key = new UrlAttributes(locale, style, variation);
+
+ if (urlAttributesCacheMap == null)
+ {
+ urlAttributesCacheMap = new ConcurrentHashMap<UrlAttributes, UrlAttributes>();
+ }
+ UrlAttributes value = urlAttributesCacheMap.get(key);
+ if (value == null)
+ {
+ value = getUrlAttributes(locale, style, variation);
+ urlAttributesCacheMap.put(key, value);
+ }
+
+ return value;
+ }
+}
Propchange: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/PackageResourceReference.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReference.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReference.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReference.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReference.java Wed Jan 20 00:48:15 2010
@@ -35,7 +35,7 @@
*
* @author Matej Knopp
*/
-public class ResourceReference implements Serializable
+public abstract class ResourceReference implements Serializable
{
private static final long serialVersionUID = 1L;
@@ -167,12 +167,93 @@
}
/**
- * Creates new resource.
+ * Returns the resource.
*
- * @return new resource instance
+ * @return resource instance
*/
- public IResource getResource()
+ public abstract IResource getResource();
+
+ /**
+ * Allows to specify which locale, style and variation values will the generated URL for this
+ * resource reference have.
+ *
+ * @return url attributes
+ */
+ public UrlAttributes getUrlAttributes()
{
- return new PackageResource(getScope(), getName(), getLocale(), getStyle(), getVariation());
+ return new UrlAttributes(getLocale(), getStyle(), getVariation());
}
+
+ /**
+ * @see ResourceReference#getUrlAttributes()
+ *
+ * @author Matej Knopp
+ */
+ public static class UrlAttributes
+ {
+ private final Locale locale;
+ private final String style;
+ private final String variation;
+
+ /**
+ * Construct.
+ *
+ * @param locale
+ * @param style
+ * @param variation
+ */
+ public UrlAttributes(Locale locale, String style, String variation)
+ {
+ this.locale = locale;
+ this.style = style;
+ this.variation = variation;
+ }
+
+ /**
+ * @return locale
+ */
+ public Locale getLocale()
+ {
+ return locale;
+ }
+
+ /**
+ * @return style
+ */
+ public String getStyle()
+ {
+ return style;
+ }
+
+ /**
+ * @return variation
+ */
+ public String getVariation()
+ {
+ return variation;
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (this == obj)
+ {
+ return true;
+ }
+ if (obj instanceof UrlAttributes == false)
+ {
+ return false;
+ }
+ UrlAttributes that = (UrlAttributes)obj;
+ return Objects.equal(getLocale(), that.getLocale()) &&
+ Objects.equal(getStyle(), that.getStyle()) &&
+ Objects.equal(getVariation(), that.getVariation());
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return Objects.hashCode(getLocale(), getStyle(), getVariation());
+ }
+ };
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReferenceRegistry.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReferenceRegistry.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReferenceRegistry.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReferenceRegistry.java Wed Jan 20 00:48:15 2010
@@ -18,7 +18,9 @@
import java.util.Locale;
import java.util.Map;
+import java.util.Queue;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentLinkedQueue;
import org.apache.wicket.util.lang.Checks;
import org.apache.wicket.util.lang.Objects;
@@ -83,6 +85,9 @@
};
private final Map<Key, ResourceReference> map = new ConcurrentHashMap<Key, ResourceReference>();
+ private final Queue<Key> autoAddedQueue = new ConcurrentLinkedQueue<Key>();
+
+ private int autoAddedCapacity = 1000;
/**
* Construct.
@@ -139,6 +144,13 @@
{
Key key = new Key(scope.getName(), name, locale, style, variation);
ResourceReference res = map.get(key);
+ if (strict)
+ {
+ if (res == null)
+ {
+ res = addDefaultResourceReference(scope, name, locale, style, variation);
+ }
+ }
if (strict || res != null)
{
return res;
@@ -172,7 +184,7 @@
}
if (res == null && createIfNotFound)
{
- res = createDefaultResourceReference(scope, name, locale, style, variation);
+ res = addDefaultResourceReference(scope, name, locale, style, variation);
}
return res;
}
@@ -225,18 +237,38 @@
return reference;
}
- /**
- *
- * @param scope
- * @param name
- * @param locale
- * @param style
- * @param variation
- * @return
- */
+
+ private ResourceReference addDefaultResourceReference(Class<?> scope, String name,
+ Locale locale, String style, String variation)
+ {
+ Key key = new Key(scope.getName(), name, locale, style, variation);
+ if (autoAddedQueue.size() > getAutoAddedCapacity())
+ {
+ Key first = autoAddedQueue.remove();
+ map.remove(first);
+ }
+ autoAddedQueue.add(key);
+
+ ResourceReference reference = createDefaultResourceReference(scope, name, locale, style,
+ variation);
+ registerResourceReference(reference);
+ return reference;
+ }
+
protected ResourceReference createDefaultResourceReference(Class<?> scope, String name,
Locale locale, String style, String variation)
{
- return new ResourceReference(scope, name, locale, style, variation);
+ return new PackageResourceReference(scope, name, locale, style, variation);
+ }
+
+
+ public void setAutoAddedCapacity(int autoAddedCapacity)
+ {
+ this.autoAddedCapacity = autoAddedCapacity;
+ }
+
+ public int getAutoAddedCapacity()
+ {
+ return autoAddedCapacity;
}
}
Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/SharedResourceReference.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/SharedResourceReference.java?rev=901016&view=auto
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/SharedResourceReference.java (added)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/SharedResourceReference.java Wed Jan 20 00:48:15 2010
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.ng.resource;
+
+import java.util.Locale;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.wicket.Application;
+
+public class SharedResourceReference extends ResourceReference
+{
+
+ public SharedResourceReference(Class<?> scope, String name, Locale locale, String style,
+ String variation)
+ {
+ super(scope, name, locale, style, variation);
+ }
+
+ public SharedResourceReference(Class<?> scope, String name)
+ {
+ super(scope, name);
+ }
+
+ public SharedResourceReference(String name)
+ {
+ super(name);
+ }
+
+ @Override
+ public IResource getResource()
+ {
+ ResourceReference ref = Application.get()
+ .getResourceReferenceRegistry()
+ .getResourceReference(getScope(), getName(), getLocale(), getStyle(), getVariation(),
+ false);
+
+ if (ref == null)
+ {
+ return new AbstractResource()
+ {
+ @Override
+ protected ResourceResponse newResourceResponse(Attributes attributes)
+ {
+ ResourceResponse res = new ResourceResponse();
+ res.setErrorCode(HttpServletResponse.SC_NOT_FOUND);
+ return res;
+ }
+ };
+ }
+ else
+ {
+ return ref.getResource();
+ }
+ }
+
+}
Propchange: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/SharedResourceReference.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/ComponentStringResourceLoader.java Wed Jan 20 00:48:15 2010
@@ -133,7 +133,7 @@
// Iterator over all the combinations
ResourceNameIterator iter = new ResourceNameIterator(path, style, variation, locale,
- null);
+ null, false);
while (iter.hasNext())
{
String newPath = iter.next();
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java Wed Jan 20 00:48:15 2010
@@ -89,7 +89,7 @@
// Iterator over all the combinations
ResourceNameIterator iter = new ResourceNameIterator(path, style, variation,
- locale, null);
+ locale, null, false);
while (iter.hasNext())
{
String newPath = iter.next();
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/ValidatorStringResourceLoader.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/ValidatorStringResourceLoader.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/ValidatorStringResourceLoader.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/resource/loader/ValidatorStringResourceLoader.java Wed Jan 20 00:48:15 2010
@@ -77,7 +77,7 @@
// iterate over all the combinations
ResourceNameIterator iter = new ResourceNameIterator(path, style, variation, locale,
- null);
+ null, false);
while (iter.hasNext())
{
String newPath = iter.next();
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/session/HttpSessionStore.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/session/HttpSessionStore.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/session/HttpSessionStore.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/session/HttpSessionStore.java Wed Jan 20 00:48:15 2010
@@ -63,6 +63,11 @@
{
}
+ private String getSessionAttribute()
+ {
+ return SESSION_ATTRIBUTE_NAME + Application.get().getApplicationKey();
+ }
+
/**
*
* @param request
@@ -98,7 +103,7 @@
*/
public final void bind(final Request request, final Session newSession)
{
- if (getAttribute(request, SESSION_ATTRIBUTE_NAME) != newSession)
+ if (getAttribute(request, getSessionAttribute()) != newSession)
{
// call template method
onBind(request, newSession);
@@ -111,7 +116,7 @@
new SessionBindingListener(applicationKey, httpSession.getId()));
// register the session object itself
- setAttribute(request, SESSION_ATTRIBUTE_NAME, newSession);
+ setAttribute(request, getSessionAttribute(), newSession);
}
}
@@ -170,7 +175,7 @@
String sessionId = getSessionId(request, false);
if (sessionId != null)
{
- return (Session)getAttribute(request, SESSION_ATTRIBUTE_NAME);
+ return (Session)getAttribute(request, getSessionAttribute());
}
return null;
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/IResourceStreamLocator.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/IResourceStreamLocator.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/IResourceStreamLocator.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/IResourceStreamLocator.java Wed Jan 20 00:48:15 2010
@@ -65,4 +65,28 @@
*/
public IResourceStream locate(Class<?> clazz, String path, String style, String variation,
Locale locale, String extension);
+
+ /**
+ * Loads a resource, given a path, style, variation, locale and extension.
+ *
+ * @param clazz
+ * The class loader for delegating the loading of the resource
+ * @param path
+ * The path of the resource
+ * @param style
+ * Any resource style, such as a skin style (see {@link org.apache.wicket.Session})
+ * @param variation
+ * The component's variation (of the style)
+ * @param locale
+ * The locale of the resource to load
+ * @param extension
+ * The extension of the resource
+ *
+ * @param strict
+ * whether the specified attributes must match exactly
+ *
+ * @return The resource or null
+ */
+ public IResourceStream locate(Class<?> clazz, String path, String style, String variation,
+ Locale locale, String extension, boolean strict);
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/LocaleResourceNameIterator.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/LocaleResourceNameIterator.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/LocaleResourceNameIterator.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/LocaleResourceNameIterator.java Wed Jan 20 00:48:15 2010
@@ -57,6 +57,8 @@
/** Internal state */
private int state = 0;
+ private final boolean strict;
+
/**
* While iterating the various combinations, it will always contain the current combination used
* to create the path
@@ -71,11 +73,13 @@
*
* @param path
* @param locale
+ * @param strict
*/
- public LocaleResourceNameIterator(final String path, final Locale locale)
+ public LocaleResourceNameIterator(final String path, final Locale locale, boolean strict)
{
this.path = path;
this.locale = locale;
+ this.strict = strict;
}
/**
@@ -92,7 +96,13 @@
*/
public boolean hasNext()
{
- return (state < 4);
+ int limit = 4;
+ if (strict && locale != null)
+ {
+ // omit the last step
+ limit = 3;
+ }
+ return (state < limit);
}
/**
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceNameIterator.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceNameIterator.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceNameIterator.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceNameIterator.java Wed Jan 20 00:48:15 2010
@@ -76,6 +76,8 @@
private final static Set<String> isoLanguages = new ConcurrentHashSet<String>(
Arrays.asList(Locale.getISOLanguages()));
+ private final boolean strict;
+
/**
* Construct.
*
@@ -89,9 +91,12 @@
* The Locale to apply
* @param extensions
* the filname's extensions (comma separated)
+ *
+ * @param strict
+ * whether other combinations should be tried
*/
public ResourceNameIterator(String path, final String style, final String variation,
- final Locale locale, final String extensions)
+ final Locale locale, final String extensions, boolean strict)
{
this.locale = locale;
if ((extensions == null) && (path.indexOf('.') != -1))
@@ -107,6 +112,7 @@
path = getLocaleFromFilename(path);
styleIterator = new StyleAndVariationResourceNameIterator(path, style, variation);
+ this.strict = strict;
}
/**
@@ -152,7 +158,7 @@
{
path = path.substring(0, path.length() - filename.length() + matcher.start());
localeIterator = new LocaleResourceNameIterator(path, new Locale(language,
- country != null ? country : "", variant != null ? variant : ""));
+ country != null ? country : "", variant != null ? variant : ""), strict);
}
} // else skip the whole thing... probably user specific underscores used
@@ -212,7 +218,7 @@
{
String newPath = styleIterator.next();
- localeIterator = new LocaleResourceNameIterator(newPath, locale);
+ localeIterator = new LocaleResourceNameIterator(newPath, locale, strict);
while (localeIterator.hasNext())
{
newPath = localeIterator.next();
@@ -223,6 +229,11 @@
return true;
}
}
+
+ if (strict)
+ {
+ break;
+ }
}
// No more combinations found. End of iteration.
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceStreamLocator.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceStreamLocator.java?rev=901016&r1=901015&r2=901016&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceStreamLocator.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/resource/locator/ResourceStreamLocator.java Wed Jan 20 00:48:15 2010
@@ -113,10 +113,16 @@
public IResourceStream locate(final Class<?> clazz, String path, final String style,
final String variation, final Locale locale, final String extension)
{
+ return locate(clazz, path, style, variation, locale, extension, false);
+ }
+
+ public IResourceStream locate(Class<?> clazz, String path, String style, String variation,
+ Locale locale, String extension, boolean strict)
+ {
// Try the various combinations of style, locale and extension to find
// the resource.
ResourceNameIterator iter = new ResourceNameIterator(path, style, variation, locale,
- extension);
+ extension, strict);
while (iter.hasNext())
{
String newPath = iter.next();