You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ad...@apache.org on 2016/06/17 16:34:47 UTC
[12/21] wicket git commit: WICKET-6170 Wrong requestmapper used for
cache decorated resources
WICKET-6170 Wrong requestmapper used for cache decorated resources
Undecorate the url before passing it for compatibility score calculation.
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/c1ea238e
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/c1ea238e
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/c1ea238e
Branch: refs/heads/WICKET-6183
Commit: c1ea238e09f17f97530bb30035bffa974e7132f2
Parents: 6966326
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Sat May 21 13:37:36 2016 +0200
Committer: Andrea Del Bene <ad...@apache.org>
Committed: Fri May 27 13:12:16 2016 +0200
----------------------------------------------------------------------
.../core/request/mapper/ResourceMapper.java | 7 ++-
...esourceMapperWithDecoratedResourcesTest.java | 61 ++++++++++++++++++++
.../core/request/mapper/decorated-resource.css | 1 +
3 files changed, 68 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/c1ea238e/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/ResourceMapper.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/ResourceMapper.java b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/ResourceMapper.java
index d89543e..b6565be 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/ResourceMapper.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/ResourceMapper.java
@@ -172,7 +172,12 @@ public class ResourceMapper extends AbstractBookmarkableMapper
@Override
public int getCompatibilityScore(Request request)
{
- int score = super.getCompatibilityScore(request);
+ Url originalUrl = new Url(request.getUrl());
+ PageParameters parameters = extractPageParameters(request, mountSegments.length, parametersEncoder);
+ removeCachingDecoration(originalUrl, parameters);
+ Request requestWithoutDecoration = request.cloneWithUrl(originalUrl);
+
+ int score = super.getCompatibilityScore(requestWithoutDecoration);
if (score > 0)
{
score--; // pages always have priority over resources
http://git-wip-us.apache.org/repos/asf/wicket/blob/c1ea238e/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/ResourceMapperWithDecoratedResourcesTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/ResourceMapperWithDecoratedResourcesTest.java b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/ResourceMapperWithDecoratedResourcesTest.java
new file mode 100644
index 0000000..6cacfbb
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/ResourceMapperWithDecoratedResourcesTest.java
@@ -0,0 +1,61 @@
+/*
+ * 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.core.request.mapper;
+
+import org.apache.wicket.mock.MockApplication;
+import org.apache.wicket.protocol.http.WebApplication;
+import org.apache.wicket.protocol.http.request.HomePage;
+import org.apache.wicket.request.resource.CssResourceReference;
+import org.apache.wicket.request.resource.caching.FilenameWithVersionResourceCachingStrategy;
+import org.apache.wicket.request.resource.caching.version.CachingResourceVersion;
+import org.apache.wicket.request.resource.caching.version.MessageDigestResourceVersion;
+import org.apache.wicket.util.tester.WicketTestCase;
+import org.junit.Assert;
+import org.junit.Test;
+
+
+/**
+ * Simple test using the WicketTester
+ */
+public class ResourceMapperWithDecoratedResourcesTest extends WicketTestCase {
+
+ @Override
+ protected WebApplication newApplication() {
+ return new MockApplication() {
+ @Override
+ public void init() {
+ super.init();
+ getResourceSettings().setCachingStrategy(new FilenameWithVersionResourceCachingStrategy(
+ new CachingResourceVersion(new MessageDigestResourceVersion())));
+ mountResource("stylesheet.css", new CssResourceReference(ResourceMapperWithDecoratedResourcesTest.class, "decorated-resource.css"));
+ mountPage("/", HomePage.class);
+ }
+ };
+ }
+
+ @Test
+ public void resourceNoCacheDecorationSuccessfully() {
+ tester.executeUrl("stylesheet.css");
+ Assert.assertEquals("body { background-color: lightblue; }", tester.getLastResponseAsString());
+ }
+
+ @Test
+ public void resourceWithCacheDecorationSuccessfully() {
+ tester.executeUrl("stylesheet-ver-9876543210.css");
+ Assert.assertEquals("body { background-color: lightblue; }", tester.getLastResponseAsString());
+ }
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/c1ea238e/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/decorated-resource.css
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/decorated-resource.css b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/decorated-resource.css
new file mode 100644
index 0000000..57a5407
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/decorated-resource.css
@@ -0,0 +1 @@
+body { background-color: lightblue; }
\ No newline at end of file