Author: hlship
Date: Sun Jul 24 02:17:43 2011
New Revision: 1150251
URL: http://svn.apache.org/viewvc?rev=1150251&view=rev
Log:
TAP5-1508: Recode MixinAfterWorker using CCTW2
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/MixinAfterWorker.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/transform/MixinAfterWorkerTest.java
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/MixinAfterWorker.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/MixinAfterWorker.java?rev=1150251&r1=1150250&r2=1150251&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/MixinAfterWorker.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/MixinAfterWorker.java
Sun Jul 24 02:17:43 2011
@@ -1,4 +1,4 @@
-// Copyright 2006 The Apache Software Foundation
+// Copyright 2006, 2011 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -16,20 +16,21 @@ package org.apache.tapestry5.internal.tr
import org.apache.tapestry5.annotations.MixinAfter;
import org.apache.tapestry5.model.MutableComponentModel;
-import org.apache.tapestry5.services.ClassTransformation;
-import org.apache.tapestry5.services.ComponentClassTransformWorker;
+import org.apache.tapestry5.plastic.PlasticClass;
+import org.apache.tapestry5.services.transform.ComponentClassTransformWorker2;
+import org.apache.tapestry5.services.transform.TransformationSupport;
/**
* Looks for the {@link org.apache.tapestry5.annotations.MixinAfter}
annotation and sets the {@link
* org.apache.tapestry5.model.ComponentModel#isMixinAfter() mixinAfter flag}
if present.
*/
-public class MixinAfterWorker implements ComponentClassTransformWorker
+public class MixinAfterWorker implements ComponentClassTransformWorker2
{
-
- public void transform(ClassTransformation transformation,
MutableComponentModel model)
+ public void transform(PlasticClass plasticClass, TransformationSupport
support, MutableComponentModel model)
{
- if (transformation.getAnnotation(MixinAfter.class) != null)
+ if (plasticClass.hasAnnotation(MixinAfter.class))
+ {
model.setMixinAfter(true);
+ }
}
-
}
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java?rev=1150251&r1=1150250&r2=1150251&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
Sun Jul 24 02:17:43 2011
@@ -517,6 +517,7 @@ public final class TapestryModule
* <dd>Checks for meta data annotations and adds it to the component
model</dd>
* <dt>PageActivationContext</dt> <dd>Support for {@link
PageActivationContext} annotation</dd>
* <dt>DiscardAfter</dt> <dd>Support for {@link DiscardAfter} method
annotation </dd>
+ * <dt>MixinAfter</dt> <dd>Support for the {@link MixinAfter} mixin class
annotation</dd>
* <dt>Cached</dt>
* <dd>Checks for the {@link org.apache.tapestry5.annotations.Cached}
annotation</dd>
* </dl>
@@ -534,6 +535,8 @@ public final class TapestryModule
configuration.addInstance("OnEvent", OnEventWorker.class);
+ configuration.add("MixinAfter", new MixinAfterWorker());
+
// These must come after Property, since they actually delete fields
// that may still have the annotation
configuration.addInstance("ApplicationState",
ApplicationStateWorker.class, "after:Property");
@@ -622,7 +625,6 @@ public final class TapestryModule
configuration.addInstance("InjectService", InjectServiceWorker.class);
configuration.addInstance("InjectNamed", InjectNamedWorker.class);
- configuration.add("MixinAfter", new MixinAfterWorker());
configuration
.addInstance("ActivationRequestParameter",
ActivationRequestParameterWorker.class, "after:OnEvent");
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/transform/MixinAfterWorkerTest.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/transform/MixinAfterWorkerTest.java?rev=1150251&r1=1150250&r2=1150251&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/transform/MixinAfterWorkerTest.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/transform/MixinAfterWorkerTest.java
Sun Jul 24 02:17:43 2011
@@ -17,7 +17,7 @@ package org.apache.tapestry5.internal.tr
import org.apache.tapestry5.annotations.MixinAfter;
import org.apache.tapestry5.internal.test.InternalBaseTestCase;
import org.apache.tapestry5.model.MutableComponentModel;
-import org.apache.tapestry5.services.ClassTransformation;
+import org.apache.tapestry5.plastic.PlasticClass;
import org.testng.annotations.Test;
public class MixinAfterWorkerTest extends InternalBaseTestCase
@@ -25,14 +25,14 @@ public class MixinAfterWorkerTest extend
@Test
public void annotation_not_present()
{
- ClassTransformation transformation = mockClassTransformation();
+ PlasticClass pc = newMock(PlasticClass.class);
MutableComponentModel model = mockMutableComponentModel();
- train_getAnnotation(transformation, MixinAfter.class, null);
+ expect(pc.hasAnnotation(MixinAfter.class)).andReturn(false);
replay();
- new MixinAfterWorker().transform(transformation, model);
+ new MixinAfterWorker().transform(pc, null, model);
verify();
}
@@ -40,16 +40,17 @@ public class MixinAfterWorkerTest extend
@Test
public void annotation_present()
{
- ClassTransformation transformation = mockClassTransformation();
+ PlasticClass pc = newMock(PlasticClass.class);
MutableComponentModel model = mockMutableComponentModel();
- MixinAfter annotation = newMock(MixinAfter.class);
- train_getAnnotation(transformation, MixinAfter.class, annotation);
+
+ expect(pc.hasAnnotation(MixinAfter.class)).andReturn(true);
+
model.setMixinAfter(true);
replay();
- new MixinAfterWorker().transform(transformation, model);
+ new MixinAfterWorker().transform(pc, null, model);
verify();
}