You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by te...@apache.org on 2008/04/13 17:15:29 UTC

svn commit: r647578 - in /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry: internal/transform/InjectPageWorker.java services/TapestryModule.java

Author: tedst
Date: Sun Apr 13 08:15:28 2008
New Revision: 647578

URL: http://svn.apache.org/viewvc?rev=647578&view=rev
Log:
TAPESTRY-2342: The InjectPageWorker should use the ComponentSource service, rather than the RequestPageCache

Modified:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/InjectPageWorker.java
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/TapestryModule.java

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/InjectPageWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/InjectPageWorker.java?rev=647578&r1=647577&r2=647578&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/InjectPageWorker.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/transform/InjectPageWorker.java Sun Apr 13 08:15:28 2008
@@ -15,14 +15,13 @@
 package org.apache.tapestry.internal.transform;
 
 import org.apache.tapestry.annotations.InjectPage;
-import org.apache.tapestry.internal.services.RequestPageCache;
-import org.apache.tapestry.internal.structure.Page;
 import org.apache.tapestry.ioc.internal.util.InternalUtils;
 import org.apache.tapestry.ioc.util.BodyBuilder;
 import org.apache.tapestry.model.MutableComponentModel;
 import org.apache.tapestry.services.ClassTransformation;
 import org.apache.tapestry.services.ComponentClassResolver;
 import org.apache.tapestry.services.ComponentClassTransformWorker;
+import org.apache.tapestry.services.ComponentSource;
 import org.apache.tapestry.services.TransformMethodSignature;
 
 import java.lang.reflect.Modifier;
@@ -35,13 +34,13 @@
  */
 public class InjectPageWorker implements ComponentClassTransformWorker
 {
-    private final RequestPageCache _requestPageCache;
+    private final ComponentSource _componentSource;
 
     private final ComponentClassResolver _resolver;
 
-    public InjectPageWorker(RequestPageCache requestPageCache, ComponentClassResolver resolver)
+    public InjectPageWorker(ComponentSource componentSource, ComponentClassResolver resolver)
     {
-        _requestPageCache = requestPageCache;
+        _componentSource = componentSource;
         _resolver = resolver;
     }
 
@@ -51,15 +50,16 @@
 
         if (names.isEmpty()) return;
 
-        String cacheFieldName = transformation.addInjectedField(RequestPageCache.class, "_requestPageCache",
-                                                                _requestPageCache);
-
+        String componentSource = transformation.addInjectedField(ComponentSource.class, "_componentSource",
+                                                                _componentSource);
+        
+        
         for (String name : names)
-            addInjectedPage(transformation, name, cacheFieldName);
+            addInjectedPage(transformation, name, componentSource);
 
     }
 
-    private void addInjectedPage(ClassTransformation transformation, String fieldName, String cacheFieldName)
+    private void addInjectedPage(ClassTransformation transformation, String fieldName, String componentSource)
     {
         InjectPage annotation = transformation.getFieldAnnotation(fieldName, InjectPage.class);
 
@@ -77,9 +77,7 @@
         BodyBuilder builder = new BodyBuilder();
         builder.begin();
 
-        builder.addln("%s page = %s.get(\"%s\");", Page.class.getName(), cacheFieldName, injectedPageName);
-
-        builder.addln("return (%s) page.getRootElement().getComponent();", fieldType);
+        builder.addln("return (%s) %s.getPage(\"%s\");", fieldType, componentSource, injectedPageName);
 
         builder.end();
 

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=647578&r1=647577&r2=647578&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 Sun Apr 13 08:15:28 2008
@@ -231,7 +231,7 @@
 
             ComponentClassResolver resolver,
 
-            RequestPageCache requestPageCache,
+            ComponentSource componentSource,
 
             BindingSource bindingsource)
     {
@@ -252,7 +252,7 @@
         configuration.add("Mixin", new MixinWorker(resolver));
         configuration.add("OnEvent", new OnEventWorker());
         configuration.add("SupportsInformalParameters", new SupportsInformalParametersWorker());
-        configuration.add("InjectPage", new InjectPageWorker(requestPageCache, resolver));
+        configuration.add("InjectPage", new InjectPageWorker(componentSource, resolver));
         configuration.add("InjectContainer", new InjectContainerWorker());
         configuration.add("InjectComponent", new InjectComponentWorker());
         configuration.add("RenderCommand", new RenderCommandWorker());