You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jc...@apache.org on 2010/11/10 17:03:27 UTC
svn commit: r1033552 - in
/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket:
protocol/http/WicketFilter.java
request/target/coding/SharedResourceRequestTargetUrlCodingStrategy.java
Author: jcompagner
Date: Wed Nov 10 16:03:26 2010
New Revision: 1033552
URL: http://svn.apache.org/viewvc?rev=1033552&view=rev
Log:
make lastmodified calls also work for mounted shared resources
Modified:
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/coding/SharedResourceRequestTargetUrlCodingStrategy.java
Modified: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java
URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java?rev=1033552&r1=1033551&r2=1033552&view=diff
==============================================================================
--- wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java (original)
+++ wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java Wed Nov 10 16:03:26 2010
@@ -50,6 +50,8 @@ import org.apache.wicket.protocol.http.p
import org.apache.wicket.protocol.http.portlet.WicketFilterPortletContext;
import org.apache.wicket.protocol.http.request.WebRequestCodingStrategy;
import org.apache.wicket.request.RequestParameters;
+import org.apache.wicket.request.target.coding.IRequestTargetUrlCodingStrategy;
+import org.apache.wicket.request.target.coding.SharedResourceRequestTargetUrlCodingStrategy;
import org.apache.wicket.session.ISessionStore;
import org.apache.wicket.settings.IRequestCycleSettings;
import org.apache.wicket.util.resource.IResourceStream;
@@ -1132,11 +1134,23 @@ public class WicketFilter implements Fil
* @param servletRequest
* @return The last modified time stamp
*/
- long getLastModified(final HttpServletRequest servletRequest)
+ protected long getLastModified(final HttpServletRequest servletRequest)
{
final String pathInfo = getRelativePath(servletRequest);
+ if (Strings.isEmpty(pathInfo))
+ return -1;
- if (pathInfo.startsWith(WebRequestCodingStrategy.RESOURCES_PATH_PREFIX))
+ IRequestTargetUrlCodingStrategy sharedResourceMount = null;
+ boolean sharedResource = pathInfo.startsWith(WebRequestCodingStrategy.RESOURCES_PATH_PREFIX);
+ if (!sharedResource)
+ {
+ sharedResourceMount = webApplication.getRequestCycleProcessor()
+ .getRequestCodingStrategy()
+ .urlCodingStrategyForPath(pathInfo);
+ sharedResource = sharedResourceMount instanceof SharedResourceRequestTargetUrlCodingStrategy;
+ }
+
+ if (sharedResource)
{
Resource resource = null;
WebRequestCycle requestCycle = null;
@@ -1151,7 +1165,15 @@ public class WicketFilter implements Fil
Application.set(webApplication);
}
- final String resourceReferenceKey = WicketURLDecoder.PATH_INSTANCE.decode(pathInfo.substring(WebRequestCodingStrategy.RESOURCES_PATH_PREFIX.length()));
+ final String resourceReferenceKey;
+ if (sharedResourceMount != null)
+ {
+ resourceReferenceKey = ((SharedResourceRequestTargetUrlCodingStrategy)sharedResourceMount).getResourceKey();
+ }
+ else
+ {
+ resourceReferenceKey = WicketURLDecoder.PATH_INSTANCE.decode(pathInfo.substring(WebRequestCodingStrategy.RESOURCES_PATH_PREFIX.length()));
+ }
// Try to find shared resource
@@ -1181,6 +1203,10 @@ public class WicketFilter implements Fil
.getProcessor()
.getRequestCodingStrategy()
.decode(request);
+ if (sharedResourceMount != null)
+ {
+ sharedResourceMount.decode(rp);
+ }
// Set parameters from servlet request
resource.setParameters(rp.getParameters());
Modified: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/coding/SharedResourceRequestTargetUrlCodingStrategy.java
URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/coding/SharedResourceRequestTargetUrlCodingStrategy.java?rev=1033552&r1=1033551&r2=1033552&view=diff
==============================================================================
--- wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/coding/SharedResourceRequestTargetUrlCodingStrategy.java (original)
+++ wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/coding/SharedResourceRequestTargetUrlCodingStrategy.java Wed Nov 10 16:03:26 2010
@@ -98,6 +98,14 @@ public class SharedResourceRequestTarget
}
/**
+ * @return the shared resource key for this mount
+ */
+ public String getResourceKey()
+ {
+ return resourceKey;
+ }
+
+ /**
* @see java.lang.Object#toString()
*/
@Override