Updated Branches: refs/heads/master 6cd29d5ee -> b834c6d35
NonCachingImage simplified with override #shouldAddAntiCacheParameter(), added test Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b834c6d3 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b834c6d3 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b834c6d3 Branch: refs/heads/master Commit: b834c6d3588cc51dce20d35359235caa0e73b236 Parents: 6cd29d5 Author: svenmeier <[email protected]> Authored: Sat Jul 7 13:05:26 2012 +0200 Committer: svenmeier <[email protected]> Committed: Sat Jul 7 13:05:26 2012 +0200 ---------------------------------------------------------------------- .../wicket/markup/html/image/NonCachingImage.java | 28 ++++----- .../markup/html/image/NonCachingImagePage.html | 9 +++ .../markup/html/image/NonCachingImagePage.java | 49 +++++++++++++++ .../markup/html/image/NonCachingImageTest.java | 41 ++++++++++++ 4 files changed, 111 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/b834c6d3/wicket-core/src/main/java/org/apache/wicket/markup/html/image/NonCachingImage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/NonCachingImage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/NonCachingImage.java index 056a164..e29ac64 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/NonCachingImage.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/NonCachingImage.java @@ -16,17 +16,17 @@ */ package org.apache.wicket.markup.html.image; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.model.IModel; import org.apache.wicket.request.mapper.parameter.PageParameters; import org.apache.wicket.request.resource.IResource; import org.apache.wicket.request.resource.ResourceReference; /** - * A subclass of {@link Image} that adds random noise to the url every request to prevent the + * A subclass of {@link Image} that always adds random noise to the url every request to prevent the * browser from caching the image. * + * @see Image#shouldAddAntiCacheParameter() + * * @author Igor Vaynberg (ivaynberg) */ public class NonCachingImage extends Image @@ -51,9 +51,9 @@ public class NonCachingImage extends Image /** * Construct. - * + * * @see Image#Image(String, org.apache.wicket.request.resource.IResource) - * + * * @param id * @param imageResource */ @@ -65,7 +65,8 @@ public class NonCachingImage extends Image /** * Construct. * - * @see Image#Image(String, org.apache.wicket.request.resource.ResourceReference, org.apache.wicket.request.mapper.parameter.PageParameters) + * @see Image#Image(String, org.apache.wicket.request.resource.ResourceReference, + * org.apache.wicket.request.mapper.parameter.PageParameters) * * @param id * @param resourceReference @@ -117,18 +118,13 @@ public class NonCachingImage extends Image } /** - * @see org.apache.wicket.markup.html.image.Image#onComponentTag(org.apache.wicket.markup.ComponentTag) + * Overriden to precent caching. + * + * @return always {@code true} */ @Override - protected void onComponentTag(ComponentTag tag) + protected boolean shouldAddAntiCacheParameter() { - super.onComponentTag(tag); - - // the parameter is already added for Ajax requests by the super call - if (getRequestCycle().find(AjaxRequestTarget.class) == null) - { - addAntiCacheParameter(tag); - } + return true; } - } http://git-wip-us.apache.org/repos/asf/wicket/blob/b834c6d3/wicket-core/src/test/java/org/apache/wicket/markup/html/image/NonCachingImagePage.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/NonCachingImagePage.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/NonCachingImagePage.html new file mode 100644 index 0000000..efaf89f --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/NonCachingImagePage.html @@ -0,0 +1,9 @@ +<html xmlns:wicket="http://wicket.apache.org/"> +<head> + <title>Wicket Examples - pub</title> + <link rel="stylesheet" type="text/css" href="style.css"/> +</head> +<body> + <img wicket:id="image" /> +</body> +</html> http://git-wip-us.apache.org/repos/asf/wicket/blob/b834c6d3/wicket-core/src/test/java/org/apache/wicket/markup/html/image/NonCachingImagePage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/NonCachingImagePage.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/NonCachingImagePage.java new file mode 100644 index 0000000..c88706f --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/NonCachingImagePage.java @@ -0,0 +1,49 @@ +/* + * 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.markup.html.image; + +import org.apache.wicket.markup.html.WebPage; +import org.apache.wicket.request.mapper.parameter.PageParameters; +import org.apache.wicket.request.resource.PackageResourceReference; + +/** + * Demonstrates {@link NonCachingImage}. + * + * @author svenmeier + */ +public final class NonCachingImagePage extends WebPage +{ + private static final long serialVersionUID = 1L; + + /** + */ + public NonCachingImage image; + + /** + * Constructor + * + * @param parameters + * Page parameters (ignored since this is the home page) + */ + public NonCachingImagePage(final PageParameters parameters) + { + image = new NonCachingImage("image", new PackageResourceReference( + NonCachingImagePage.class, "Beer.gif")); + image.setOutputMarkupId(true); + add(image); + } +} http://git-wip-us.apache.org/repos/asf/wicket/blob/b834c6d3/wicket-core/src/test/java/org/apache/wicket/markup/html/image/NonCachingImageTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/NonCachingImageTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/NonCachingImageTest.java new file mode 100644 index 0000000..3eb2340 --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/NonCachingImageTest.java @@ -0,0 +1,41 @@ +/* + * 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.markup.html.image; + +import org.apache.wicket.WicketTestCase; +import org.apache.wicket.util.tester.TagTester; + +/** + * Test for {@link NonCachingImage}. + * + * @author svenmeier + */ +public class NonCachingImageTest extends WicketTestCase +{ + + /** + * {@link NonCachingImage} always adds anticache. + */ + public void test() + { + NonCachingImagePage page = tester.startPage(NonCachingImagePage.class); + + TagTester tag = tester.getTagById(page.image.getMarkupId()); + + assertTrue(tag.getAttribute("src").contains("antiCache")); + } +} \ No newline at end of file
