You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2006/07/15 21:40:25 UTC

svn commit: r422284 - in /tapestry/tapestry4/trunk: src/site/resources/images/ComponentReference/ src/site/xdoc/components/ tapestry-annotations/src/descriptor/META-INF/ tapestry-annotations/src/java/org/apache/tapestry/annotations/ tapestry-annotation...

Author: jkuhnert
Date: Sat Jul 15 12:40:25 2006
New Revision: 422284

URL: http://svn.apache.org/viewvc?rev=422284&view=rev
Log:
Fixes TAPESTRY-1004 and a few documentation bugs

Added:
    tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/
    tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/DirectLink.png   (with props)
    tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/Image.png   (with props)
    tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/Insert.png   (with props)
    tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/PoweredByTapestry.png   (with props)
    tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/RenderBlock.png   (with props)
    tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/RenderBody.png   (with props)
    tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/Script.png   (with props)
Modified:
    tapestry/tapestry4/trunk/src/site/xdoc/components/Image.xml
    tapestry/tapestry4/trunk/src/site/xdoc/components/Rollover.xml
    tapestry/tapestry4/trunk/src/site/xdoc/components/Script.xml
    tapestry/tapestry4/trunk/tapestry-annotations/src/descriptor/META-INF/hivemodule.xml
    tapestry/tapestry4/trunk/tapestry-annotations/src/java/org/apache/tapestry/annotations/AnnotationEnhancementWorker.java
    tapestry/tapestry4/trunk/tapestry-annotations/src/java/org/apache/tapestry/annotations/EventListenerAnnotationWorker.java
    tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/AnnotationEnhancementWorkerTest.java

Added: tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/DirectLink.png
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/DirectLink.png?rev=422284&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/DirectLink.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/Image.png
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/Image.png?rev=422284&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/Image.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/Insert.png
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/Insert.png?rev=422284&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/Insert.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/PoweredByTapestry.png
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/PoweredByTapestry.png?rev=422284&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/PoweredByTapestry.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/RenderBlock.png
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/RenderBlock.png?rev=422284&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/RenderBlock.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/RenderBody.png
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/RenderBody.png?rev=422284&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/RenderBody.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/Script.png
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/Script.png?rev=422284&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry4/trunk/src/site/resources/images/ComponentReference/Script.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: tapestry/tapestry4/trunk/src/site/xdoc/components/Image.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/xdoc/components/Image.xml?rev=422284&r1=422283&r2=422284&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/src/site/xdoc/components/Image.xml (original)
+++ tapestry/tapestry4/trunk/src/site/xdoc/components/Image.xml Sat Jul 15 12:40:25 2006
@@ -57,10 +57,10 @@
                                 IAsset
                             </a>
                         </td>
-
+                        
                         <td>in</td>
                         <td>yes</td>
-                        <td />
+                        <td></td>
                         <td>The image to show.</td>
                     </tr>
                 </table>
@@ -89,7 +89,7 @@
                     <br />
                     This example uses a &lt;context-asset&gt; to reference the image.
                 </p>
-                <img src="../../images/tapestry/ComponentReference/PoweredByTapestry.png"
+                <img src="./images/ComponentReference/PoweredByTapestry.png"
                     alt="PoweredByTapestry Screen Shot" />
                 <p>HTML Template</p>
                 <source xml:space="preserve">
@@ -122,7 +122,7 @@
                     </a>
                     to reference the image's URL.
                 </p>
-                <img src="../../images/tapestry/ComponentReference/Image.png"
+                <img src="./images/ComponentReference/Image.png"
                     alt="Image Screen Shot" />
                 <p>HTML Template</p>
                 <source xml:space="preserve">

Modified: tapestry/tapestry4/trunk/src/site/xdoc/components/Rollover.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/xdoc/components/Rollover.xml?rev=422284&r1=422283&r2=422284&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/src/site/xdoc/components/Rollover.xml (original)
+++ tapestry/tapestry4/trunk/src/site/xdoc/components/Rollover.xml Sat Jul 15 12:40:25 2006
@@ -97,7 +97,7 @@
                         <td>
                             If provided (and the component is not disabled), then a JavaScript
                             onMouseOver event handler is added to change the image. An onMouseOut
-                            event handler is also provided, to change the button to either it's base
+                            event handler is also provided, to change the button to either its base
                             image, or its mouseOut image. Deprecated alias: focus.
                         </td>
                     </tr>

Modified: tapestry/tapestry4/trunk/src/site/xdoc/components/Script.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/xdoc/components/Script.xml?rev=422284&r1=422283&r2=422284&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/src/site/xdoc/components/Script.xml (original)
+++ tapestry/tapestry4/trunk/src/site/xdoc/components/Script.xml Sat Jul 15 12:40:25 2006
@@ -58,7 +58,7 @@
                         <th>Description</th>
                     </tr>
                     <tr>
-                        <td>scriptPath</td>
+                        <td>script</td>
                         <td>String</td>
 
                         <td>in</td>
@@ -66,7 +66,7 @@
                         <td></td>
                         <td>
                             The path of a resource (on the classpath) containing the script. One of
-                            either scriptPath or scriptAsset must be specified.
+                            either <code>script</code> or <code>scriptAsset</code> must be specified.
                         </td>
                     </tr>
                     <tr>

Modified: tapestry/tapestry4/trunk/tapestry-annotations/src/descriptor/META-INF/hivemodule.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-annotations/src/descriptor/META-INF/hivemodule.xml?rev=422284&r1=422283&r2=422284&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-annotations/src/descriptor/META-INF/hivemodule.xml (original)
+++ tapestry/tapestry4/trunk/tapestry-annotations/src/descriptor/META-INF/hivemodule.xml Sat Jul 15 12:40:25 2006
@@ -28,7 +28,7 @@
       <construct class="AnnotationEnhancementWorker">
         <set-configuration property="methodWorkers" configuration-id="MethodWorkers"/>
         <set-configuration property="classWorkers" configuration-id="ClassWorkers"/>
-        <set-service property="secondaryAnnotationWorker" service-id="SecondaryAnnotationWorkers"/>
+        <set-configuration property="secondaryAnnotationWorkers" configuration-id="SecondaryAnnotationWorkers"/>
       </construct>
     </invoke-factory>
     
@@ -148,25 +148,30 @@
     
   </service-point>
   
-  <configuration-point id="SecondaryAnnotationWorkers" schema-id="hivemind.lib.ChainContribution">
+  <configuration-point id="SecondaryAnnotationWorkers">
     
-    Defines a chain of command for secondary annotation workers; workers that operate after
-    any MethodWorkers.
+    Configures a list of secondary annotation workers.
+    <schema>
+      <element name="worker">
+        
+        <attribute name="object" translator="object" required="true">
+          
+          An object that implements the SecondaryAnnotationEnhancementWorker interface.
+        </attribute>
+        
+        <rules>
+          <push-attribute attribute="object"/>
+          <invoke-parent method="addElement"/>
+        </rules>
+        
+      </element>
+    </schema>
     
   </configuration-point>
   
   <contribution configuration-id="SecondaryAnnotationWorkers"> 
-    <command id="initial-value" object="instance:InitialValueAnnotationWorker"/>
-    <command id="event-listener" object="service:EventListenerAnnotationWorker"/>
+    <worker object="instance:InitialValueAnnotationWorker"/>
+    <worker object="service:EventListenerAnnotationWorker"/>
   </contribution>
-  
-  <service-point id="SecondaryAnnotationWorkers" interface="SecondaryAnnotationWorker">
-    
-    Chain of command for secondary annnotation workers that operate after any MethodWorkers.
-    
-    <invoke-factory service-id="hivemind.lib.ChainFactory">
-      <construct configuration-id="SecondaryAnnotationWorkers"/>
-    </invoke-factory>    
-  </service-point>
   
 </module>

Modified: tapestry/tapestry4/trunk/tapestry-annotations/src/java/org/apache/tapestry/annotations/AnnotationEnhancementWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-annotations/src/java/org/apache/tapestry/annotations/AnnotationEnhancementWorker.java?rev=422284&r1=422283&r2=422284&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-annotations/src/java/org/apache/tapestry/annotations/AnnotationEnhancementWorker.java (original)
+++ tapestry/tapestry4/trunk/tapestry-annotations/src/java/org/apache/tapestry/annotations/AnnotationEnhancementWorker.java Sat Jul 15 12:40:25 2006
@@ -16,6 +16,7 @@
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.hivemind.ClassResolver;
@@ -47,7 +48,7 @@
 
     private Map _classWorkers;
 
-    private SecondaryAnnotationWorker _secondaryAnnotationWorker;
+    private List<SecondaryAnnotationWorker> _secondaryAnnotationWorkers;
 
     public void setClassWorkers(Map classWorkers)
     {
@@ -112,11 +113,11 @@
 
         try
         {
-            // Remember; _secondaryWorker is a chain-of-command, so this returns true
-            // if any command in the chain returns true.
-
-            if (_secondaryAnnotationWorker.canEnhance(method))
-                _secondaryAnnotationWorker.peformEnhancement(op, spec, method, classResource);
+            
+            for (SecondaryAnnotationWorker worker : _secondaryAnnotationWorkers)
+                if (worker.canEnhance(method))
+                    worker.peformEnhancement(op, spec, method, classResource);
+            
         }
         catch (Exception ex)
         {
@@ -166,8 +167,8 @@
         _classResolver = classResolver;
     }
 
-    public void setSecondaryAnnotationWorker(SecondaryAnnotationWorker secondaryWorker)
+    public void setSecondaryAnnotationWorkers(List<SecondaryAnnotationWorker> workers)
     {
-        _secondaryAnnotationWorker = secondaryWorker;
+        _secondaryAnnotationWorkers = workers;
     }
 }

Modified: tapestry/tapestry4/trunk/tapestry-annotations/src/java/org/apache/tapestry/annotations/EventListenerAnnotationWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-annotations/src/java/org/apache/tapestry/annotations/EventListenerAnnotationWorker.java?rev=422284&r1=422283&r2=422284&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-annotations/src/java/org/apache/tapestry/annotations/EventListenerAnnotationWorker.java (original)
+++ tapestry/tapestry4/trunk/tapestry-annotations/src/java/org/apache/tapestry/annotations/EventListenerAnnotationWorker.java Sat Jul 15 12:40:25 2006
@@ -47,9 +47,6 @@
     {
         EventListener listener = method.getAnnotation(EventListener.class);
         
-        if (listener == null)
-            return;
-        
         String[] targets = listener.targets();
         String[] elements = listener.elements();
         String formId = listener.submitForm();

Modified: tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/AnnotationEnhancementWorkerTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/AnnotationEnhancementWorkerTest.java?rev=422284&r1=422283&r2=422284&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/AnnotationEnhancementWorkerTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-annotations/src/test/org/apache/tapestry/annotations/AnnotationEnhancementWorkerTest.java Sat Jul 15 12:40:25 2006
@@ -14,10 +14,14 @@
 
 package org.apache.tapestry.annotations;
 
-import static org.easymock.EasyMock.*;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.expectLastCall;
+
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
+import java.util.ArrayList;
 import java.util.Collections;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.hivemind.ClassResolver;
@@ -52,20 +56,7 @@
     {
         return Collections.singletonMap(annotationClass, worker);
     }
-
-    private class NoOp implements SecondaryAnnotationWorker
-    {
-        public boolean canEnhance(Method method)
-        {
-            return false;
-        }
-
-        public void peformEnhancement(EnhancementOperation op, IComponentSpecification spec,
-                Method method, Resource classResource)
-        {
-        }
-    }
-
+    
     /**
      * No method annotations registered.
      */
@@ -78,8 +69,8 @@
 
         AnnotationEnhancementWorker worker = new AnnotationEnhancementWorker();
         worker.setMethodWorkers(Collections.EMPTY_MAP);
-        worker.setSecondaryAnnotationWorker(new NoOp());
-
+        worker.setSecondaryAnnotationWorkers(Collections.EMPTY_LIST);
+        
         worker.performEnhancement(op, spec);
 
         verify();
@@ -105,8 +96,8 @@
         AnnotationEnhancementWorker worker = new AnnotationEnhancementWorker();
         worker.setMethodWorkers(newMap(InjectObject.class, methodWorker));
         worker.setClassResolver(resolver);
-        worker.setSecondaryAnnotationWorker(new NoOp());
-
+        worker.setSecondaryAnnotationWorkers(Collections.EMPTY_LIST);
+        
         worker.performEnhancement(op, spec);
 
         verify();
@@ -147,8 +138,8 @@
         AnnotationEnhancementWorker worker = new AnnotationEnhancementWorker();
         worker.setMethodWorkers(newMap(InjectObject.class, methodWorker));
         worker.setClassResolver(resolver);
-        worker.setSecondaryAnnotationWorker(new NoOp());
-
+        worker.setSecondaryAnnotationWorkers(Collections.EMPTY_LIST);
+        
         worker.performEnhancement(op, spec);
 
         verify();
@@ -185,8 +176,8 @@
         worker.setMethodWorkers(newMap(InjectObject.class, methodWorker));
         worker.setErrorLog(log);
         worker.setClassResolver(resolver);
-        worker.setSecondaryAnnotationWorker(new NoOp());
-
+        worker.setSecondaryAnnotationWorkers(Collections.EMPTY_LIST);
+        
         worker.performEnhancement(op, spec);
 
         verify();
@@ -210,8 +201,8 @@
         AnnotationEnhancementWorker worker = new AnnotationEnhancementWorker();
         worker.setClassWorkers(newMap(Deprecated.class, classWorker));
         worker.setClassResolver(resolver);
-        worker.setSecondaryAnnotationWorker(new NoOp());
-
+        worker.setSecondaryAnnotationWorkers(Collections.EMPTY_LIST);
+        
         worker.performEnhancement(op, spec);
 
         verify();
@@ -245,8 +236,8 @@
         worker.setClassWorkers(newMap(Deprecated.class, classWorker));
         worker.setErrorLog(log);
         worker.setClassResolver(resolver);
-        worker.setSecondaryAnnotationWorker(new NoOp());
-
+        worker.setSecondaryAnnotationWorkers(Collections.EMPTY_LIST);
+        
         worker.performEnhancement(op, spec);
 
         verify();
@@ -261,8 +252,8 @@
 
         AnnotationEnhancementWorker worker = new AnnotationEnhancementWorker();
         worker.setClassWorkers(Collections.EMPTY_MAP);
-        worker.setSecondaryAnnotationWorker(new NoOp());
-
+        worker.setSecondaryAnnotationWorkers(Collections.EMPTY_LIST);
+        
         worker.performEnhancement(op, spec);
 
         verify();
@@ -271,7 +262,10 @@
     public void testSecondaryEnhancementWorker()
     {
         SecondaryAnnotationWorker secondary = newSecondaryAnnotationWorker();
-
+        
+        List<SecondaryAnnotationWorker> secWorkers = new ArrayList<SecondaryAnnotationWorker>();
+        secWorkers.add(secondary);
+        
         EnhancementOperation op = newOp();
         IComponentSpecification spec = newSpec();
         Method method = findMethod(AnnotatedPage.class, "getPropertyWithInitialValue");
@@ -283,11 +277,11 @@
         secondary.peformEnhancement(op, spec, method, classResource);
 
         replay();
-
+        
         AnnotationEnhancementWorker worker = new AnnotationEnhancementWorker();
-        worker.setSecondaryAnnotationWorker(secondary);
+        worker.setSecondaryAnnotationWorkers(secWorkers);
         worker.setMethodWorkers(Collections.EMPTY_MAP);
-
+        
         worker.performMethodEnhancement(op, spec, method, classResource);
 
         verify();
@@ -296,7 +290,10 @@
     public void testSecondaryEnhancementWorkerFailure()
     {
         SecondaryAnnotationWorker secondary = newSecondaryAnnotationWorker();
-
+        
+        List<SecondaryAnnotationWorker> secWorkers = new ArrayList<SecondaryAnnotationWorker>();
+        secWorkers.add(secondary);
+        
         EnhancementOperation op = newOp();
         IComponentSpecification spec = newSpec();
         ErrorLog log = newErrorLog();
@@ -314,10 +311,10 @@
         replay();
         
         AnnotationEnhancementWorker worker = new AnnotationEnhancementWorker();
-        worker.setSecondaryAnnotationWorker(secondary);
+        worker.setSecondaryAnnotationWorkers(secWorkers);
         worker.setMethodWorkers(Collections.EMPTY_MAP);
         worker.setErrorLog(log);
-
+        
         worker.performMethodEnhancement(op, spec, method, classResource);
 
         verify();