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 2008/02/12 16:16:07 UTC

svn commit: r620825 - in /wicket/trunk/jdk-1.4/wicket/src: main/java/org/apache/wicket/markup/html/image/Image.java test/java/org/apache/wicket/stateless/ImageStatelessTest.java

Author: jcompagner
Date: Tue Feb 12 07:15:59 2008
New Revision: 620825

URL: http://svn.apache.org/viewvc?rev=620825&view=rev
Log:
fix for WICKET-1340, getStatelessHint a bit more relaxed

Added:
    wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/stateless/ImageStatelessTest.java
Modified:
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/image/Image.java

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/image/Image.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/image/Image.java?rev=620825&r1=620824&r2=620825&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/image/Image.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/image/Image.java Tue Feb 12 07:15:59 2008
@@ -32,9 +32,9 @@
  * An Image component displays a localizable image resource.
  * <p>
  * For details of how Images load, generate and manage images, see {@link LocalizedImageResource}.
- *
+ * 
  * @see NonCachingImage
- *
+ * 
  * @author Jonathan Locke
  */
 public class Image extends WebComponent implements IResourceListener
@@ -48,7 +48,7 @@
 	 * 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.
-	 *
+	 * 
 	 * @see org.apache.wicket.Component#Component(String)
 	 */
 	public Image(final String id)
@@ -59,13 +59,13 @@
 	/**
 	 * Constructs an image from an image resourcereference. That resource reference will bind its
 	 * resource to the current SharedResources.
-	 *
+	 * 
 	 * If you are using non sticky session clustering and the resource reference is pointing to a
 	 * Resource that isn't guaranteed to be on every server, for example a dynamic image or
 	 * resources that aren't added with a IInitializer at application startup. Then if only that
 	 * resource is requested from another server, without the rendering of the page, the image won't
 	 * be there and will result in a broken link.
-	 *
+	 * 
 	 * @param id
 	 *            See Component
 	 * @param resourceReference
@@ -79,13 +79,13 @@
 	/**
 	 * Constructs an image from an image resourcereference. That resource reference will bind its
 	 * resource to the current SharedResources.
-	 *
+	 * 
 	 * If you are using non sticky session clustering and the resource reference is pointing to a
 	 * Resource that isn't guaranteed to be on every server, for example a dynamic image or
 	 * resources that aren't added with a IInitializer at application startup. Then if only that
 	 * resource is requested from another server, without the rendering of the page, the image won't
 	 * be there and will result in a broken link.
-	 *
+	 * 
 	 * @param id
 	 *            See Component
 	 * @param resourceReference
@@ -102,14 +102,14 @@
 
 	/**
 	 * Constructs an image directly from an image resource.
-	 *
+	 * 
 	 * This one doesn't have the 'non sticky session clustering' problem that the ResourceReference
 	 * constructor has. But this will result in a non 'stable' url and the url will have request
 	 * parameters.
-	 *
+	 * 
 	 * @param id
 	 *            See Component
-	 *
+	 * 
 	 * @param imageResource
 	 *            The image resource
 	 */
@@ -241,7 +241,8 @@
 	 */
 	protected boolean getStatelessHint()
 	{
-		return getImageResource() == null && localizedImageResource.isStateless();
+		return (getImageResource() == null || getImageResource() == localizedImageResource.getResource()) &&
+			localizedImageResource.isStateless();
 	}
 
 	/**

Added: wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/stateless/ImageStatelessTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/stateless/ImageStatelessTest.java?rev=620825&view=auto
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/stateless/ImageStatelessTest.java (added)
+++ wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/stateless/ImageStatelessTest.java Tue Feb 12 07:15:59 2008
@@ -0,0 +1,58 @@
+/*
+ * 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.stateless;
+
+import org.apache.wicket.ResourceReference;
+import org.apache.wicket.WicketTestCase;
+import org.apache.wicket.markup.html.image.Image;
+import org.apache.wicket.resource.ByteArrayResource;
+
+/**
+ * @author jcompagner
+ */
+public class ImageStatelessTest extends WicketTestCase
+{
+	/**
+	 * 
+	 */
+	public void testResourceReference()
+	{
+		final Image i = new Image("test", new ResourceReference("test"));
+		tester.startComponent(i);
+		assertTrue("image with resource reference should be stateless", i.isStateless());
+	}
+
+	/**
+	 * 
+	 */
+	public void testEmpty()
+	{
+		final Image i = new Image("test");
+		tester.startComponent(i);
+		assertTrue("image with resource reference should be statefull", !i.isStateless());
+	}
+
+	/**
+	 * 
+	 */
+	public void testResource()
+	{
+		final Image i = new Image("test", new ByteArrayResource("text/text", new byte[0]));
+		tester.startComponent(i);
+		assertTrue("image with resource reference should be statefull", !i.isStateless());
+	}
+}