You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by da...@apache.org on 2008/03/09 02:47:03 UTC

svn commit: r635136 - in /tapestry/tapestry5/trunk/tapestry-core/src: main/java/org/apache/tapestry/annotations/ main/java/org/apache/tapestry/internal/transform/ main/java/org/apache/tapestry/services/ main/resources/org/apache/tapestry/internal/trans...

Author: dadams
Date: Sat Mar  8 17:47:00 2008
New Revision: 635136

URL: http://svn.apache.org/viewvc?rev=635136&view=rev
Log:
TAPESTRY-2244: Add @Cached annotation for caching method values
Renaming @Once to @Cached

Added:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/annotations/Cached.java
      - copied, changed from r635133, tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/annotations/Once.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/CachedWorker.java
      - copied, changed from r635133, tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/OnceWorker.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/CachedPage.java
      - copied, changed from r635133, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/OncePage.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/CachedPage2.java
      - copied, changed from r635133, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/OncePage2.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/CachedWorkerTest.java
      - copied, changed from r635133, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/OnceWorkerTest.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/CachedPage.tml
      - copied, changed from r635133, tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/OncePage.tml
Removed:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/annotations/Once.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/OnceWorker.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/OncePage.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/OncePage2.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/OnceWorkerTest.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/OncePage.tml
Modified:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/TransformMessages.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/TapestryModule.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry/internal/transform/TransformStrings.properties
    tapestry/tapestry5/trunk/tapestry-core/src/site/apt/index.apt
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/IntegrationTests.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/Start.java

Copied: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/annotations/Cached.java (from r635133, tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/annotations/Once.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/annotations/Cached.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/annotations/Cached.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/annotations/Once.java&r1=635133&r2=635136&rev=635136&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/annotations/Once.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/annotations/Cached.java Sat Mar  8 17:47:00 2008
@@ -23,7 +23,7 @@
 /** Indicates that a method should only be evaluated once and the result cached.
  * All further calls to the method will return the cached result. Note that this
  * annotation is inheritence-safe; if a subclass calls a superclass method that 
- * has @Once then the value the subclass method gets is the cached value. 
+ * has \@Cached then the value the subclass method gets is the cached value. 
  * <p>
  * The watch parameter can be passed a binding expression
  * which will be evaluated each time the method is called. The method will then
@@ -35,7 +35,7 @@
 @Target(ElementType.METHOD)
 @Retention(RetentionPolicy.RUNTIME)
 @Documented
-public @interface Once {
+public @interface Cached {
 	/** The optional binding to watch (default binding prefix is "prop") */
 	String watch() default "";
 }

Copied: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/CachedWorker.java (from r635133, tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/OnceWorker.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/CachedWorker.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/CachedWorker.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/OnceWorker.java&r1=635133&r2=635136&rev=635136&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/OnceWorker.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/CachedWorker.java Sat Mar  8 17:47:00 2008
@@ -20,7 +20,7 @@
 
 import org.apache.tapestry.Binding;
 import org.apache.tapestry.TapestryConstants;
-import org.apache.tapestry.annotations.Once;
+import org.apache.tapestry.annotations.Cached;
 import org.apache.tapestry.ioc.util.BodyBuilder;
 import org.apache.tapestry.model.MutableComponentModel;
 import org.apache.tapestry.services.BindingSource;
@@ -30,26 +30,26 @@
 import org.apache.tapestry.services.TransformMethodSignature;
 import org.apache.tapestry.services.TransformUtils;
 
-/** Caches method return values for methods annotated with {@link Once}. */
-public class OnceWorker implements ComponentClassTransformWorker {
+/** Caches method return values for methods annotated with {@link Cached}. */
+public class CachedWorker implements ComponentClassTransformWorker {
 	private final BindingSource _bindingSource;
 	
-	public OnceWorker(BindingSource bindingSource) {
+	public CachedWorker(BindingSource bindingSource) {
 		super();
 		this._bindingSource = bindingSource;
 	}
 
 	public void transform(ClassTransformation transformation, MutableComponentModel model) {
-		List<TransformMethodSignature> methods = transformation.findMethodsWithAnnotation(Once.class);
+		List<TransformMethodSignature> methods = transformation.findMethodsWithAnnotation(Cached.class);
 		if (methods.isEmpty())
 			return;
 		
 		for(TransformMethodSignature method : methods) {
 			if (method.getReturnType().equals("void"))
-				throw new IllegalArgumentException(TransformMessages.onceMethodMustHaveReturnValue(method));
+				throw new IllegalArgumentException(TransformMessages.cachedMethodMustHaveReturnValue(method));
 	
 			if (method.getParameterTypes().length != 0)
-				throw new IllegalArgumentException(TransformMessages.onceMethodsHaveNoParameters(method));
+				throw new IllegalArgumentException(TransformMessages.cachedMethodsHaveNoParameters(method));
 			
 			String propertyName = method.getMethodName();
 						
@@ -57,7 +57,7 @@
 			String fieldName = transformation.addField(PRIVATE, method.getReturnType(), propertyName);
 			String calledField = transformation.addField(PRIVATE, "boolean", fieldName + "$called");
 	
-			Once once = transformation.getMethodAnnotation(method, Once.class);
+			Cached once = transformation.getMethodAnnotation(method, Cached.class);
 			String bindingField = null;
 			String bindingValueField = null;
 			boolean watching = once.watch().length() > 0;

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/TransformMessages.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/TransformMessages.java?rev=635136&r1=635135&r2=635136&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/TransformMessages.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/TransformMessages.java Sat Mar  8 17:47:00 2008
@@ -34,11 +34,11 @@
                 .getComponentResources().getCompleteId(), fieldName, fieldType);
     }
 
-    static String onceMethodMustHaveReturnValue(TransformMethodSignature method) {
-        return MESSAGES.format("once-no-return-value", method);
+    static String cachedMethodMustHaveReturnValue(TransformMethodSignature method) {
+        return MESSAGES.format("cached-no-return-value", method);
     }
     
-    static String onceMethodsHaveNoParameters(TransformMethodSignature method) {
-        return MESSAGES.format("once-no-parameters", method);
+    static String cachedMethodsHaveNoParameters(TransformMethodSignature method) {
+        return MESSAGES.format("cached-no-parameters", method);
     }
 }

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/TapestryModule.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/TapestryModule.java?rev=635136&r1=635135&r2=635136&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/TapestryModule.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/TapestryModule.java Sat Mar  8 17:47:00 2008
@@ -223,7 +223,7 @@
      * annotation</dd> <dt>ContentType</dt> <dd>Checks for {@link org.apache.tapestry.annotations.ContentType}
      * annotation</dd> <dt>ResponseEncoding</dt> <dd>Checks for the {@link org.apache.tapestry.annotations.ResponseEncoding}
      * annotation</dd> <dt>GenerateAccessors</dt> <dd>Generates accessor methods if {@link
-     * org.apache.tapestry.annotations.Property} annotation is present </dd> <dt>Once</dt> <dd>Checks for the {@link Once} annotation</dd></dl>
+     * org.apache.tapestry.annotations.Property} annotation is present </dd> <dt>Cached</dt> <dd>Checks for the {@link Cached} annotation</dd></dl>
      */
     public static void contributeComponentClassTransformWorker(
             OrderedConfiguration<ComponentClassTransformWorker> configuration,
@@ -244,7 +244,7 @@
         // only have a single annotation, the order doesn't matter so much, as long as
         // UnclaimedField is last.
         
-        configuration.add("Once", locator.autobuild(OnceWorker.class));
+        configuration.add("Cached", locator.autobuild(CachedWorker.class));
 
         configuration.add("Meta", new MetaWorker());
 

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry/internal/transform/TransformStrings.properties
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry/internal/transform/TransformStrings.properties?rev=635136&r1=635135&r2=635136&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry/internal/transform/TransformStrings.properties (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/resources/org/apache/tapestry/internal/transform/TransformStrings.properties Sat Mar  8 17:47:00 2008
@@ -14,5 +14,5 @@
 
 field-injection-error=Error obtaining injected value for field %s.%s: %s
 component-not-assignable-to-field=Component %s is not assignable to field %s (of type %s).
-once-no-return-value=@Once may only be used with methods that return values: %s
-once-no-parameters=@Once cannot be used with methods that accept parameters: %s
\ No newline at end of file
+cached-no-return-value=@Cached may only be used with methods that return values: %s
+cached-no-parameters=@Cached cannot be used with methods that accept parameters: %s
\ No newline at end of file

Modified: tapestry/tapestry5/trunk/tapestry-core/src/site/apt/index.apt
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/site/apt/index.apt?rev=635136&r1=635135&r2=635136&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/site/apt/index.apt (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/site/apt/index.apt Sat Mar  8 17:47:00 2008
@@ -10,7 +10,7 @@
 
 New And Of Note
 
-  * The @Once annotation has been added to allowing the caching of method results.
+  * The @Cached annotation has been added to allowing the caching of method results.
 
   * Tapestry can now generate accessor methods for fields automatically via the @Property annotation.
 

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/IntegrationTests.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/IntegrationTests.java?rev=635136&r1=635135&r2=635136&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/IntegrationTests.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/IntegrationTests.java Sat Mar  8 17:47:00 2008
@@ -1862,9 +1862,9 @@
 
     /** TAPESTRY-2244 */
     @Test
-    public void once()
+    public void cached()
     {
-        start("Once Annotation");
+        start("Cached Annotation");
 
         assertText("//span[@id='value']", "000");
         assertText("//span[@id='value2size']", "111");
@@ -1876,8 +1876,8 @@
     
     /** TAPESTRY-2244 */
     @Test
-    public void override_method_with_once() {
-        start("Once Annotation2");
+    public void override_method_with_cached() {
+        start("Cached Annotation2");
         assertText("//span[@id='value']", "111");
     }
 

Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/CachedPage.java (from r635133, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/OncePage.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/CachedPage.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/CachedPage.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/OncePage.java&r1=635133&r2=635136&rev=635136&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/OncePage.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/CachedPage.java Sat Mar  8 17:47:00 2008
@@ -3,9 +3,9 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.tapestry.annotations.Once;
+import org.apache.tapestry.annotations.Cached;
 
-public class OncePage {
+public class CachedPage {
 	private int value;
 	private List<String> value2;
 	private int value3;
@@ -19,18 +19,18 @@
 		watchValue = 0;
 	}
 
-	@Once
+	@Cached
 	public int getValue() {
 		return value++;
 	}
 	
-	@Once
+	@Cached
 	public List<String> getValue2() {
 		value2.add("a");
 		return value2;
 	}
 	
-	@Once(watch="watchValue")
+	@Cached(watch="watchValue")
 	public int getValue3() {
 		return value3++;
 	}

Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/CachedPage2.java (from r635133, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/OncePage2.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/CachedPage2.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/CachedPage2.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/OncePage2.java&r1=635133&r2=635136&rev=635136&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/OncePage2.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/CachedPage2.java Sat Mar  8 17:47:00 2008
@@ -1,6 +1,6 @@
 package org.apache.tapestry.integration.app1.pages;
 
-public class OncePage2 extends OncePage {
+public class CachedPage2 extends CachedPage {
 
 	@Override
 	public int getValue() {

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/Start.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/Start.java?rev=635136&r1=635135&r2=635136&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/Start.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/integration/app1/pages/Start.java Sat Mar  8 17:47:00 2008
@@ -249,9 +249,9 @@
             new Item("injectcomponentdemo", "Inject Component Demo",
                      "inject component defined in template"),
             
-            new Item("oncepage", "Once Annotation", "Caching method return values"),
+            new Item("cachedpage", "Cached Annotation", "Caching method return values"),
             
-            new Item("oncepage2", "Once Annotation2", "Caching method return values w/ inheritence")
+            new Item("cachedpage2", "Cached Annotation2", "Caching method return values w/ inheritence")
     );
 
     static

Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/CachedWorkerTest.java (from r635133, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/OnceWorkerTest.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/CachedWorkerTest.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/CachedWorkerTest.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/OnceWorkerTest.java&r1=635133&r2=635136&rev=635136&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/OnceWorkerTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/transform/CachedWorkerTest.java Sat Mar  8 17:47:00 2008
@@ -17,7 +17,7 @@
 import java.lang.reflect.Modifier;
 import java.util.Arrays;
 
-import org.apache.tapestry.annotations.Once;
+import org.apache.tapestry.annotations.Cached;
 import org.apache.tapestry.services.ClassTransformation;
 import org.apache.tapestry.services.TransformMethodSignature;
 import org.apache.tapestry.test.TapestryTestCase;
@@ -25,17 +25,17 @@
 
 /** Mostly just testing error conditions here. Functionality testing in integration tests. */
 @Test
-public class OnceWorkerTest extends TapestryTestCase
+public class CachedWorkerTest extends TapestryTestCase
 {
     public void must_have_return_type() throws Exception {
         ClassTransformation ct = mockClassTransformation();
         TransformMethodSignature sig = new TransformMethodSignature(Modifier.PUBLIC, "void", "getFoo", new String[0], new String[0]);
         
-        expect(ct.findMethodsWithAnnotation(Once.class)).andReturn(Arrays.asList(sig));
+        expect(ct.findMethodsWithAnnotation(Cached.class)).andReturn(Arrays.asList(sig));
         
         replay();
         try {
-            new OnceWorker(null).transform(ct, null);
+            new CachedWorker(null).transform(ct, null);
             fail("did not throw");
         } catch (IllegalArgumentException e) {}
         verify();
@@ -45,11 +45,11 @@
         ClassTransformation ct = mockClassTransformation();
         TransformMethodSignature sig = new TransformMethodSignature(Modifier.PUBLIC, "java.lang.Object", "getFoo", new String[] { "boolean" }, new String[0]);
         
-        expect(ct.findMethodsWithAnnotation(Once.class)).andReturn(Arrays.asList(sig));
+        expect(ct.findMethodsWithAnnotation(Cached.class)).andReturn(Arrays.asList(sig));
         
         replay();
         try {
-            new OnceWorker(null).transform(ct, null);
+            new CachedWorker(null).transform(ct, null);
             fail("did not throw");
         } catch (IllegalArgumentException e) {}
         verify();

Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/CachedPage.tml (from r635133, tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/OncePage.tml)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/CachedPage.tml?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/CachedPage.tml&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/OncePage.tml&r1=635133&r2=635136&rev=635136&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/OncePage.tml (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/CachedPage.tml Sat Mar  8 17:47:00 2008
@@ -1,6 +1,6 @@
 <html t:type="Border" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
-	<h1>@Once tests</h1>
-	<p>This page tests the @Once annotation.</p>
+	<h1>@Cached tests</h1>
+	<p>This page tests method result caching.</p>
 	
 	<span id="value">${value}${value}${value}</span>
 	<span id="value2size">${value2.size()}${value2.size()}${value2.size()}</span>