Very cool!  However, there's a page in the cookbook about this:

http://tapestry.formos.com/nightly/tapestry5/cookbook/defaultparameter.html



On Thu, Aug 14, 2008 at 1:22 PM,  <[EMAIL PROTECTED]> wrote:
> Author: drobiazko
> Date: Thu Aug 14 13:22:52 2008
> New Revision: 686020
>
> URL: http://svn.apache.org/viewvc?rev=686020&view=rev
> Log:
> TAPESTRY-2137: The common idiom of connecting a component's id to a container 
> property should be easier: an attribute of the @Parameter annotation
>
> Modified:
>    
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/annotations/Parameter.java
>    
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/AjaxFormLoop.java
>    
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanDisplay.java
>    
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditForm.java
>    
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditor.java
>    
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Loop.java
>    
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Output.java
>    
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/OutputRaw.java
>    
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Radio.java
>    
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/RadioGroup.java
>    
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ParameterWorker.java
>    
> tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/transform/ParameterWorkerTest.java
>
> Modified: 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/annotations/Parameter.java
> URL: 
> http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/annotations/Parameter.java?rev=686020&r1=686019&r2=686020&view=diff
> ==============================================================================
> --- 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/annotations/Parameter.java
>  (original)
> +++ 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/annotations/Parameter.java
>  Thu Aug 14 13:22:52 2008
> @@ -84,4 +84,10 @@
>      * have more than a single principal parameter.
>      */
>     boolean principal() default false;
> +
> +    /**
> +     * Used to create a binding to be used as a parameter default without to 
> provide a default binding method.
> +     * If true, then the container's property matching the component id is 
> used to bind the parameter.
> +     */
> +    boolean autoconnect() default false;
>  }
>
> Modified: 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/AjaxFormLoop.java
> URL: 
> http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/AjaxFormLoop.java?rev=686020&r1=686019&r2=686020&view=diff
> ==============================================================================
> --- 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/AjaxFormLoop.java
>  (original)
> +++ 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/AjaxFormLoop.java
>  Thu Aug 14 13:22:52 2008
> @@ -49,7 +49,7 @@
>     /**
>      * The objects to iterate over (passed to the internal Loop component).
>      */
> -    @Parameter(required = true)
> +    @Parameter(required = true, autoconnect = true)
>     private Iterable source;
>
>     /**
> @@ -123,8 +123,6 @@
>     @Inject
>     private ComponentClassCache componentClassCache;
>
> -    @Inject
> -    private ComponentDefaultProvider componentDefaultProvider;
>
>     @Inject
>     private PageRenderQueue pageRenderQueue;
> @@ -166,11 +164,6 @@
>         }
>     };
>
> -    Binding defaultSource()
> -    {
> -        return componentDefaultProvider.defaultBinding("source", resources);
> -    }
> -
>
>     String defaultElement()
>     {
>
> Modified: 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanDisplay.java
> URL: 
> http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanDisplay.java?rev=686020&r1=686019&r2=686020&view=diff
> ==============================================================================
> --- 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanDisplay.java
>  (original)
> +++ 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanDisplay.java
>  Thu Aug 14 13:22:52 2008
> @@ -14,7 +14,6 @@
>
>  package org.apache.tapestry5.corelib.components;
>
> -import org.apache.tapestry5.Binding;
>  import org.apache.tapestry5.BindingConstants;
>  import org.apache.tapestry5.ComponentResources;
>  import org.apache.tapestry5.annotations.Parameter;
> @@ -25,7 +24,6 @@
>  import org.apache.tapestry5.internal.beaneditor.BeanModelUtils;
>  import org.apache.tapestry5.ioc.annotations.Inject;
>  import org.apache.tapestry5.services.BeanModelSource;
> -import org.apache.tapestry5.services.ComponentDefaultProvider;
>
>  /**
>  * Used to display the properties of a bean, using an underlying [EMAIL 
> PROTECTED] BeanModel}. The output definition list: a
> @@ -49,7 +47,7 @@
>      * The object to be rendered; if not explicitly bound, a default binding 
> to a property whose name matches this
>      * component's id will be used.
>      */
> -    @Parameter(required = true, allowNull = false)
> +    @Parameter(required = true, allowNull = false, autoconnect = true)
>     @Property(write = false)
>     private Object object;
>
> @@ -107,10 +105,6 @@
>     @Parameter(defaultPrefix = BindingConstants.LITERAL)
>     private String add;
>
> -
> -    @Inject
> -    private ComponentDefaultProvider defaultProvider;
> -
>     @Inject
>     private ComponentResources resources;
>
> @@ -120,14 +114,6 @@
>     @Property
>     private String propertyName;
>
> -    /**
> -     * Defaults the object parameter to a property of the container matching 
> the BeanEditForm's id.
> -     */
> -    Binding defaultObject()
> -    {
> -        return defaultProvider.defaultBinding("object", resources);
> -    }
> -
>     void setupRender()
>     {
>         if (model == null) model = modelSource.create(object.getClass(), 
> false,
>
> Modified: 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditForm.java
> URL: 
> http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditForm.java?rev=686020&r1=686019&r2=686020&view=diff
> ==============================================================================
> --- 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditForm.java
>  (original)
> +++ 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditForm.java
>  Thu Aug 14 13:22:52 2008
> @@ -23,7 +23,6 @@
>  import org.apache.tapestry5.internal.beaneditor.BeanModelUtils;
>  import org.apache.tapestry5.ioc.annotations.Inject;
>  import org.apache.tapestry5.services.BeanModelSource;
> -import org.apache.tapestry5.services.ComponentDefaultProvider;
>
>  /**
>  * A component that creates an entire form editing the properties of a 
> particular bean. Inspired by <a
> @@ -59,7 +58,7 @@
>      * value is ready to be read or updated. Often, the BeanEditForm can 
> create the object as needed (assuming a public,
>      * no arguments constructor).  The object property defaults to a property 
> with the same name as the component id.
>      */
> -    @Parameter(required = true)
> +    @Parameter(required = true, autoconnect = true)
>     @Property
>     private Object object;
>
> @@ -121,22 +120,11 @@
>     private BeanModel model;
>
>     @Inject
> -    private ComponentDefaultProvider defaultProvider;
> -
> -    @Inject
>     private ComponentResources resources;
>
>     @Inject
>     private BeanModelSource beanModelSource;
>
> -    /**
> -     * Defaults the object parameter to a property of the container matching 
> the BeanEditForm's id.
> -     */
> -    Binding defaultObject()
> -    {
> -        return defaultProvider.defaultBinding("object", resources);
> -    }
> -
>
>     void onPrepareFromForm()
>     {
>
> Modified: 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditor.java
> URL: 
> http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditor.java?rev=686020&r1=686019&r2=686020&view=diff
> ==============================================================================
> --- 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditor.java
>  (original)
> +++ 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/BeanEditor.java
>  Thu Aug 14 13:22:52 2008
> @@ -25,7 +25,6 @@
>  import org.apache.tapestry5.ioc.annotations.Inject;
>  import org.apache.tapestry5.ioc.internal.util.TapestryException;
>  import org.apache.tapestry5.services.BeanModelSource;
> -import org.apache.tapestry5.services.ComponentDefaultProvider;
>  import org.apache.tapestry5.services.FormSupport;
>
>  /**
> @@ -56,7 +55,7 @@
>      * for the component is submitted. Typically, the container will listen 
> for a "prepare" event, in order to ensure
>      * that a non-null value is ready to be read or updated.
>      */
> -    @Parameter
> +    @Parameter(autoconnect = true)
>     private Object object;
>
>     /**
> @@ -111,9 +110,6 @@
>     private BeanModelSource modelSource;
>
>     @Inject
> -    private ComponentDefaultProvider defaultProvider;
> -
> -    @Inject
>     private ComponentResources resources;
>
>     @Environmental
> @@ -124,14 +120,6 @@
>     @Property
>     private String propertyName;
>
> -    /**
> -     * Defaults the object parameter to a property of the container matching 
> the BeanEditForm's id.
> -     */
> -    Binding defaultObject()
> -    {
> -        return defaultProvider.defaultBinding("object", resources);
> -    }
> -
>     // Needed for testing as well
>
>     public Object getObject()
>
> Modified: 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Loop.java
> URL: 
> http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Loop.java?rev=686020&r1=686019&r2=686020&view=diff
> ==============================================================================
> --- 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Loop.java
>  (original)
> +++ 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Loop.java
>  Thu Aug 14 13:22:52 2008
> @@ -18,7 +18,6 @@
>  import org.apache.tapestry5.annotations.*;
>  import org.apache.tapestry5.ioc.annotations.Inject;
>  import static 
> org.apache.tapestry5.ioc.internal.util.CollectionFactory.newList;
> -import org.apache.tapestry5.services.ComponentDefaultProvider;
>  import org.apache.tapestry5.services.FormSupport;
>  import org.apache.tapestry5.services.Heartbeat;
>
> @@ -201,7 +200,7 @@
>      * Defines the collection of values for the loop to iterate over. If not 
> specified, defaults to a property of the
>      * container whose name matches the Loop cmponent's id.
>      */
> -    @Parameter(required = true, principal = true)
> +    @Parameter(required = true, principal = true, autoconnect = true)
>     private Iterable<?> source;
>
>     /**
> @@ -250,13 +249,6 @@
>     @Inject
>     private ComponentResources resources;
>
> -    @Inject
> -    private ComponentDefaultProvider componentDefaultProvider;
> -
> -    Binding defaultSource()
> -    {
> -        return componentDefaultProvider.defaultBinding("source", resources);
> -    }
>
>     String defaultElement()
>     {
>
> Modified: 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Output.java
> URL: 
> http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Output.java?rev=686020&r1=686019&r2=686020&view=diff
> ==============================================================================
> --- 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Output.java
>  (original)
> +++ 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Output.java
>  Thu Aug 14 13:22:52 2008
> @@ -14,14 +14,12 @@
>
>  package org.apache.tapestry5.corelib.components;
>
> -import org.apache.tapestry5.Binding;
>  import org.apache.tapestry5.ComponentResources;
>  import org.apache.tapestry5.MarkupWriter;
>  import org.apache.tapestry5.annotations.Parameter;
>  import org.apache.tapestry5.annotations.SupportsInformalParameters;
>  import org.apache.tapestry5.ioc.annotations.Inject;
>  import org.apache.tapestry5.ioc.internal.util.InternalUtils;
> -import org.apache.tapestry5.services.ComponentDefaultProvider;
>
>  import java.text.Format;
>
> @@ -35,7 +33,7 @@
>     /**
>      * The value to be output (before formatting). If the formatted value is 
> blank, no output is produced.
>      */
> -    @Parameter(required = true)
> +    @Parameter(required = true, autoconnect = true)
>     private Object value;
>
>     /**
> @@ -59,15 +57,8 @@
>     private String elementName;
>
>     @Inject
> -    private ComponentDefaultProvider defaultProvider;
> -
> -    @Inject
>     private ComponentResources resources;
>
> -    Binding defaultValue()
> -    {
> -        return defaultProvider.defaultBinding("value", resources);
> -    }
>
>     boolean beginRender(MarkupWriter writer)
>     {
>
> Modified: 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/OutputRaw.java
> URL: 
> http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/OutputRaw.java?rev=686020&r1=686019&r2=686020&view=diff
> ==============================================================================
> --- 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/OutputRaw.java
>  (original)
> +++ 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/OutputRaw.java
>  Thu Aug 14 13:22:52 2008
> @@ -14,12 +14,10 @@
>
>  package org.apache.tapestry5.corelib.components;
>
> -import org.apache.tapestry5.Binding;
>  import org.apache.tapestry5.ComponentResources;
>  import org.apache.tapestry5.MarkupWriter;
>  import org.apache.tapestry5.annotations.Parameter;
>  import org.apache.tapestry5.ioc.annotations.Inject;
> -import org.apache.tapestry5.services.ComponentDefaultProvider;
>
>  /**
>  * Used to output raw markup to the client. Unlike, say, an expansion, the 
> output from OutputRaw is unfiltered, with any
> @@ -34,20 +32,12 @@
>      * The value to to render. If unbound, and a property of the container 
> matches the component's id, then that
>      * property will be the source of the value.
>      */
> -    @Parameter(required = true)
> +    @Parameter(required = true, autoconnect = true)
>     private String value;
>
>     @Inject
> -    private ComponentDefaultProvider defaultProvider;
> -
> -    @Inject
>     private ComponentResources resources;
>
> -    Binding defaultValue()
> -    {
> -        return defaultProvider.defaultBinding("value", resources);
> -    }
> -
>     boolean beginRender(MarkupWriter writer)
>     {
>         if (value != null && value.length() > 0) writer.writeRaw(value);
>
> Modified: 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Radio.java
> URL: 
> http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Radio.java?rev=686020&r1=686019&r2=686020&view=diff
> ==============================================================================
> --- 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Radio.java
>  (original)
> +++ 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Radio.java
>  Thu Aug 14 13:22:52 2008
> @@ -48,7 +48,7 @@
>      * The value associated with this radio button. This is used to determine 
> which radio button will be selected when
>      * the page is rendered, and also becomes the value assigned when the 
> form is submitted.
>      */
> -    @Parameter(required = true, principal = true)
> +    @Parameter(required = true, principal = true, autoconnect = true)
>     private Object value;
>
>     @Inject
> @@ -88,11 +88,6 @@
>         return defaultProvider.defaultLabel(resources);
>     }
>
> -    Binding defaultValue()
> -    {
> -        return defaultProvider.defaultBinding("value", resources);
> -    }
> -
>     /**
>      * Returns the control name provided by the containing [EMAIL PROTECTED] 
> org.apache.tapestry5.RadioContainer}.
>      */
>
> Modified: 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/RadioGroup.java
> URL: 
> http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/RadioGroup.java?rev=686020&r1=686019&r2=686020&view=diff
> ==============================================================================
> --- 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/RadioGroup.java
>  (original)
> +++ 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/RadioGroup.java
>  Thu Aug 14 13:22:52 2008
> @@ -29,7 +29,7 @@
>     /**
>      * The property read and updated by the group as a whole.
>      */
> -    @Parameter(required = true, principal = true)
> +    @Parameter(required = true, principal = true, autoconnect = true)
>     private Object value;
>
>     /**
> @@ -74,11 +74,6 @@
>
>     private String controlName;
>
> -    final Binding defaultValue()
> -    {
> -        return defaultProvider.defaultBinding("value", resources);
> -    }
> -
>     String defaultLabel()
>     {
>         return defaultProvider.defaultLabel(resources);
>
> Modified: 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ParameterWorker.java
> URL: 
> http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ParameterWorker.java?rev=686020&r1=686019&r2=686020&view=diff
> ==============================================================================
> --- 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ParameterWorker.java
>  (original)
> +++ 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/ParameterWorker.java
>  Thu Aug 14 13:22:52 2008
> @@ -35,10 +35,13 @@
>     private static final String BIND_METHOD_NAME = 
> ParameterWorker.class.getName() + ".bind";
>
>     private final BindingSource bindingSource;
> +
> +    private ComponentDefaultProvider defaultProvider;
>
> -    public ParameterWorker(BindingSource bindingSource)
> +    public ParameterWorker(BindingSource bindingSource, 
> ComponentDefaultProvider defaultProvider)
>     {
>         this.bindingSource = bindingSource;
> +        this.defaultProvider = defaultProvider;
>     }
>
>     public void transform(final ClassTransformation transformation, 
> MutableComponentModel model)
> @@ -90,7 +93,7 @@
>
>         String invariantFieldName = addParameterSetup(name, 
> annotation.defaultPrefix(), annotation.value(),
>                                                       parameterName, 
> cachedFieldName, cache, type, resourcesFieldName,
> -                                                      transformation);
> +                                                      transformation, 
> annotation.autoconnect());
>
>         addReaderMethod(name, cachedFieldName, invariantFieldName, cache, 
> parameterName, type, resourcesFieldName,
>                         transformation);
> @@ -105,7 +108,7 @@
>      */
>     private String addParameterSetup(String fieldName, String defaultPrefix, 
> String defaultBinding,
>                                      String parameterName, String 
> cachedFieldName, boolean cache, String fieldType,
> -                                     String resourcesFieldName, 
> ClassTransformation transformation)
> +                                     String resourcesFieldName, 
> ClassTransformation transformation, boolean autoconnect)
>     {
>         String defaultFieldName = transformation.addField(Modifier.PRIVATE, 
> fieldType, fieldName + "_default");
>
> @@ -114,7 +117,7 @@
>         BodyBuilder builder = new BodyBuilder().begin();
>
>         addDefaultBindingSetup(parameterName, defaultPrefix, defaultBinding, 
> resourcesFieldName, transformation,
> -                               builder);
> +                               builder, autoconnect);
>
>         builder.addln("%s = %s.isInvariant(\"%s\");", invariantFieldName, 
> resourcesFieldName, parameterName);
>
> @@ -158,7 +161,7 @@
>
>     private void addDefaultBindingSetup(String parameterName, String 
> defaultPrefix, String defaultBinding,
>                                         String resourcesFieldName, 
> ClassTransformation transformation,
> -                                        BodyBuilder builder)
> +                                        BodyBuilder builder, boolean 
> autoconnect)
>     {
>         if (InternalUtils.isNonBlank(defaultBinding))
>         {
> @@ -174,6 +177,18 @@
>             return;
>
>         }
> +
> +        if(autoconnect)
> +        {
> +            String defaultProviderFieldName = 
> transformation.addInjectedField(ComponentDefaultProvider.class,
> +                    "defaultProvider", defaultProvider);
> +
> +            builder.addln("if (! %s.isBound(\"%s\"))", resourcesFieldName, 
> parameterName);
> +
> +            builder.addln("  %s.bindParameter(\"%s\", 
> %s.defaultBinding(\"%s\", %s));", resourcesFieldName,
> +                            parameterName, defaultProviderFieldName, 
> parameterName, resourcesFieldName);
> +            return;
> +        }
>
>         // If no default binding expression provided in the annotation, then 
> look for a default
>         // binding method to provide the binding.
>
> Modified: 
> tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/transform/ParameterWorkerTest.java
> URL: 
> http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/transform/ParameterWorkerTest.java?rev=686020&r1=686019&r2=686020&view=diff
> ==============================================================================
> --- 
> tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/transform/ParameterWorkerTest.java
>  (original)
> +++ 
> tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/transform/ParameterWorkerTest.java
>  Thu Aug 14 13:22:52 2008
> @@ -35,6 +35,7 @@
>  import org.apache.tapestry5.model.MutableComponentModel;
>  import org.apache.tapestry5.runtime.Component;
>  import org.apache.tapestry5.services.BindingSource;
> +import org.apache.tapestry5.services.ComponentDefaultProvider;
>  import org.slf4j.Logger;
>  import org.testng.annotations.AfterClass;
>  import org.testng.annotations.Test;
> @@ -461,6 +462,7 @@
>         final BindingSource source = mockBindingSource();
>         final InternalComponentResources resources = 
> mockInternalComponentResources();
>         final Binding binding = mockBinding();
> +        ComponentDefaultProvider defaultProvider = 
> newMock(ComponentDefaultProvider.class);
>         String boundValue = "howdy!";
>         final Logger logger = mockLogger();
>
> @@ -486,7 +488,7 @@
>         };
>
>         Component component = setupForIntegrationTest(resources, logger, 
> DefaultParameterComponent.class.getName(),
> -                                                      model, source, 
> phaseTwoTraining);
> +                                                      model, source, 
> phaseTwoTraining, defaultProvider);
>
>         train_isLoaded(resources, true);
>         train_isBound(resources, "value", true);
> @@ -505,6 +507,7 @@
>     {
>         BindingSource source = mockBindingSource();
>         final InternalComponentResources resources = 
> mockInternalComponentResources();
> +        ComponentDefaultProvider defaultProvider = 
> newMock(ComponentDefaultProvider.class);
>         _binding = mockBinding();
>         String boundValue = "yowza!";
>         final Logger logger = mockLogger();
> @@ -531,7 +534,7 @@
>
>         Component component = setupForIntegrationTest(resources, logger,
>                                                       
> DefaultParameterBindingMethodComponent.class.getName(), model,
> -                                                      source, 
> phaseTwoTraining);
> +                                                      source, 
> phaseTwoTraining, defaultProvider);
>
>         train_isLoaded(resources, true);
>         train_isBound(resources, "value", true);
> @@ -562,6 +565,7 @@
>     {
>         final Logger logger = mockLogger();
>         MutableComponentModel model = mockMutableComponentModel(logger);
> +        ComponentDefaultProvider defaultProvider = 
> newMock(ComponentDefaultProvider.class);
>
>         model.addParameter("invariantObject", false, true, 
> BindingConstants.PROP);
>         model.addParameter("invariantPrimitive", false, true, 
> BindingConstants.PROP);
> @@ -583,12 +587,12 @@
>         stub_isDebugEnabled(logger, false);
>
>         return setupForIntegrationTest(resources, logger, 
> ParameterComponent.class.getName(), model,
> -                                       mockBindingSource(), 
> phaseTwoTraining);
> +                                       mockBindingSource(), 
> phaseTwoTraining, defaultProvider);
>     }
>
>     private Component setupForIntegrationTest(InternalComponentResources 
> resources, Logger logger,
>                                               String componentClassName, 
> MutableComponentModel model,
> -                                              BindingSource source, Runnable 
> phaseTwoTraining) throws Exception
> +                                              BindingSource source, Runnable 
> phaseTwoTraining, ComponentDefaultProvider defaultProvider) throws Exception
>     {
>         ClassFactoryClassPool pool = new 
> ClassFactoryClassPool(contextClassLoader);
>
> @@ -605,7 +609,7 @@
>         InternalClassTransformation transformation = new 
> InternalClassTransformationImpl(cf, ctClass, null, model,
>                                                                               
>            null);
>
> -        new ParameterWorker(source).transform(transformation, model);
> +        new ParameterWorker(source, 
> defaultProvider).transform(transformation, model);
>
>         verify();
>
>
>
>



-- 
Howard M. Lewis Ship

Creator Apache Tapestry and Apache HiveMind

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to