svn commit: r673527 - in /tapestry/tapestry5/trunk/tapestry-core/src: main/java/org/apache/tapestry5/internal/transform/PageActivationContextWorker.java test/java/org/apache/tapestry5/internal/transform/PageActivationContextWorkerTest.java

View: New views
1 Messages — Rating Filter:   Alert me  

svn commit: r673527 - in /tapestry/tapestry5/trunk/tapestry-core/src: main/java/org/apache/tapestry5/internal/transform/PageActivationContextWorker.java test/java/org/apache/tapestry5/internal/transform/PageActivationContextWorkerTest.java

by hlship :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Author: hlship
Date: Wed Jul  2 15:23:23 2008
New Revision: 673527

URL: http://svn.apache.org/viewvc?rev=673527&view=rev
Log:
TAPESTRY-2500: Using @PageActivationContext on an int field results in a java.lang.Verify error

Modified:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/PageActivationContextWorker.java
    tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/transform/PageActivationContextWorkerTest.java

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/PageActivationContextWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/PageActivationContextWorker.java?rev=673527&r1=673526&r2=673527&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/PageActivationContextWorker.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/PageActivationContextWorker.java Wed Jul  2 15:23:23 2008
@@ -14,15 +14,15 @@
 
 package org.apache.tapestry5.internal.transform;
 
-import java.lang.reflect.Modifier;
-import java.util.List;
-
 import org.apache.tapestry5.annotations.PageActivationContext;
 import org.apache.tapestry5.model.MutableComponentModel;
 import org.apache.tapestry5.services.ClassTransformation;
 import org.apache.tapestry5.services.ComponentClassTransformWorker;
 import org.apache.tapestry5.services.TransformMethodSignature;
 
+import java.lang.reflect.Modifier;
+import java.util.List;
+
 /**
  * Provides the page activation context handlers.
  *
@@ -33,13 +33,14 @@
     public void transform(ClassTransformation transformation, MutableComponentModel model)
     {
         List<String> fields = transformation.findFieldsWithAnnotation(PageActivationContext.class);
-        
-        if(fields.size()>1)
+
+        if (fields.size() > 1)
             throw new RuntimeException(TransformMessages.illegalNumberOfPageActivationContextHandlers(fields));
-        
+
         for (String fieldName : fields)
         {
-            PageActivationContext annotation = transformation.getFieldAnnotation(fieldName, PageActivationContext.class);
+            PageActivationContext annotation = transformation.getFieldAnnotation(fieldName,
+                                                                                 PageActivationContext.class);
 
             String fieldType = transformation.getFieldType(fieldName);
 
@@ -48,16 +49,17 @@
                 TransformMethodSignature activate
                         = new TransformMethodSignature(Modifier.PROTECTED | Modifier.FINAL, "void",
                                                        "onActivate",
-                                                       new String[] { fieldType }, null);
+                                                       new String[]{fieldType}, null);
                 transformation.addTransformedMethod(activate, fieldName + " = $1;");
             }
 
             if (annotation.passivate())
             {
                 TransformMethodSignature passivate
-                        = new TransformMethodSignature(Modifier.PROTECTED | Modifier.FINAL, "java.lang.Object", "onPassivate",
-                         null, null);
-                transformation.addTransformedMethod(passivate, "return "+fieldName + ";");
+                        = new TransformMethodSignature(Modifier.PROTECTED | Modifier.FINAL, "java.lang.Object",
+                                                       "onPassivate",
+                                                       null, null);
+                transformation.addTransformedMethod(passivate, "return ($w) " + fieldName + ";");
             }
         }
 

Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/transform/PageActivationContextWorkerTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/transform/PageActivationContextWorkerTest.java?rev=673527&r1=673526&r2=673527&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/transform/PageActivationContextWorkerTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/transform/PageActivationContextWorkerTest.java Wed Jul  2 15:23:23 2008
@@ -13,8 +13,6 @@
 // limitations under the License.
 package org.apache.tapestry5.internal.transform;
 
-import java.lang.reflect.Modifier;
-
 import org.apache.tapestry5.annotations.PageActivationContext;
 import org.apache.tapestry5.integration.app1.data.Track;
 import org.apache.tapestry5.model.MutableComponentModel;
@@ -24,90 +22,96 @@
 import org.apache.tapestry5.test.TapestryTestCase;
 import org.testng.annotations.Test;
 
-public class PageActivationContextWorkerTest extends TapestryTestCase {
+import java.lang.reflect.Modifier;
+
+public class PageActivationContextWorkerTest extends TapestryTestCase
+{
+
+    private static final String CLASS_NAME = Track.class.getName();
+
+    @Test
+    public void activate_dafault_passivate_false()
+    {
+        ClassTransformation ct = mockClassTransformation();
+        MutableComponentModel model = mockMutableComponentModel();
+        PageActivationContext annotation = newMock(PageActivationContext.class);
+        ComponentClassTransformWorker worker = new PageActivationContextWorker();
+
+        train_findFieldsWithAnnotation(ct, PageActivationContext.class,
+                                       "myfield");
+        train_getFieldAnnotation(ct, "myfield", PageActivationContext.class,
+                                 annotation);
+        train_getFieldType(ct, "myfield", CLASS_NAME);
+        expect(annotation.activate()).andReturn(true);
+
+        TransformMethodSignature sig = new TransformMethodSignature(
+                Modifier.PROTECTED | Modifier.FINAL, "void", "onActivate",
+                new String[]{CLASS_NAME}, null);
+
+        ct.addTransformedMethod(sig, "myfield = $1;");
+
+        expect(annotation.passivate()).andReturn(false);
+
+        replay();
+
+        worker.transform(ct, model);
+
+        verify();
+    }
+
+    @Test
+    public void activate_false_passivate_default()
+    {
+        ClassTransformation ct = mockClassTransformation();
+        MutableComponentModel model = mockMutableComponentModel();
+        PageActivationContext annotation = newMock(PageActivationContext.class);
+        ComponentClassTransformWorker worker = new PageActivationContextWorker();
+
+        train_findFieldsWithAnnotation(ct, PageActivationContext.class,
+                                       "myfield");
+        train_getFieldAnnotation(ct, "myfield", PageActivationContext.class,
+                                 annotation);
+        train_getFieldType(ct, "myfield", CLASS_NAME);
+        expect(annotation.activate()).andReturn(false);
+
+        expect(annotation.passivate()).andReturn(true);
+
+        TransformMethodSignature sig = new TransformMethodSignature(
+                Modifier.PROTECTED | Modifier.FINAL, "java.lang.Object",
+                "onPassivate", null, null);
 
- private static final String CLASS_NAME = Track.class.getName();
+        ct.addTransformedMethod(sig, "return ($w) myfield;");
 
- @Test
- public void activate_dafault_passivate_false() {
- ClassTransformation ct = mockClassTransformation();
- MutableComponentModel model = mockMutableComponentModel();
- PageActivationContext annotation = newMock(PageActivationContext.class);
- ComponentClassTransformWorker worker = new PageActivationContextWorker();
-
- train_findFieldsWithAnnotation(ct, PageActivationContext.class,
- "myfield");
- train_getFieldAnnotation(ct, "myfield", PageActivationContext.class,
- annotation);
- train_getFieldType(ct, "myfield", CLASS_NAME);
- expect(annotation.activate()).andReturn(true);
-
- TransformMethodSignature sig = new TransformMethodSignature(
- Modifier.PROTECTED | Modifier.FINAL, "void", "onActivate",
- new String[] { CLASS_NAME }, null);
-
- ct.addTransformedMethod(sig, "myfield = $1;");
-
- expect(annotation.passivate()).andReturn(false);
-
- replay();
-
- worker.transform(ct, model);
-
- verify();
- }
-
- @Test
- public void activate_false_passivate_default() {
- ClassTransformation ct = mockClassTransformation();
- MutableComponentModel model = mockMutableComponentModel();
- PageActivationContext annotation = newMock(PageActivationContext.class);
- ComponentClassTransformWorker worker = new PageActivationContextWorker();
-
- train_findFieldsWithAnnotation(ct, PageActivationContext.class,
- "myfield");
- train_getFieldAnnotation(ct, "myfield", PageActivationContext.class,
- annotation);
- train_getFieldType(ct, "myfield", CLASS_NAME);
- expect(annotation.activate()).andReturn(false);
-
- expect(annotation.passivate()).andReturn(true);
-
- TransformMethodSignature sig = new TransformMethodSignature(
- Modifier.PROTECTED | Modifier.FINAL, "java.lang.Object",
- "onPassivate", null, null);
-
- ct.addTransformedMethod(sig, "return myfield;");
-
- replay();
-
- worker.transform(ct, model);
-
- verify();
- }
-
- @Test
- public void activate_false_passivate_false() {
- ClassTransformation ct = mockClassTransformation();
- MutableComponentModel model = mockMutableComponentModel();
- PageActivationContext annotation = newMock(PageActivationContext.class);
- ComponentClassTransformWorker worker = new PageActivationContextWorker();
-
- train_findFieldsWithAnnotation(ct, PageActivationContext.class,
- "myfield");
- train_getFieldAnnotation(ct, "myfield", PageActivationContext.class,
- annotation);
- train_getFieldType(ct, "myfield", CLASS_NAME);
- expect(annotation.activate()).andReturn(false);
+        replay();
 
- expect(annotation.passivate()).andReturn(false);
+        worker.transform(ct, model);
 
- replay();
+        verify();
+    }
 
- worker.transform(ct, model);
+    @Test
+    public void activate_false_passivate_false()
+    {
+        ClassTransformation ct = mockClassTransformation();
+        MutableComponentModel model = mockMutableComponentModel();
+        PageActivationContext annotation = newMock(PageActivationContext.class);
+        ComponentClassTransformWorker worker = new PageActivationContextWorker();
 
- verify();
- }
+        train_findFieldsWithAnnotation(ct, PageActivationContext.class,
+                                       "myfield");
+        train_getFieldAnnotation(ct, "myfield", PageActivationContext.class,
+                                 annotation);
+        train_getFieldType(ct, "myfield", CLASS_NAME);
+        expect(annotation.activate()).andReturn(false);
+
+        expect(annotation.passivate()).andReturn(false);
+
+        replay();
+
+        worker.transform(ct, model);
+
+        verify();
+    }
 
     @Test
     public void illegal_number_of_page_activation_context_handlers()
@@ -117,21 +121,22 @@
         ComponentClassTransformWorker worker = new PageActivationContextWorker();
 
         train_findFieldsWithAnnotation(ct, PageActivationContext.class,
-                "myfield", "myfield2");
-        
+                                       "myfield", "myfield2");
+
         replay();
-        
+
         try
         {
             worker.transform(ct, model);
             fail("did not throw");
-        }catch(RuntimeException e)
+        }
+        catch (RuntimeException e)
         {
             e.printStackTrace();
         }
 
         verify();
     }
-
-
+
+
 }


LightInTheBox - Buy quality products at wholesale price