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

Reply via email to