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 <context-asset> 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();