tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dragan Sahpaski (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (TAP5-1663) The @BindParameter annotation should support inherited parameters
Date Mon, 24 Oct 2011 14:27:32 GMT

    [ https://issues.apache.org/jira/browse/TAP5-1663?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13134089#comment-13134089

Dragan Sahpaski commented on TAP5-1663:

This patch is rather small (entire patch file is 253 lines long), and contains integration

Patch Summary:
Files changed 4:
 1. BindParameterWorker: Here is the main logic for inspecting published parameters. Also
the Exception text is changed to contain info that formal and published parameters are searched.
 2. BindParameterDemo.java
 3. BindParameterDemo.tml - Added publish1 component with EchoValueWithId mixin.
 4. CoreBehaviorsTests.java
   -  public void bindparameter() - added few assertions for detecting if the published value
is there. It is the same concept as the EchoValue mixins
   -  public void bindparameter_nomatchingparameter() - changed asserted value of  the exception

Files added 1:
 1. EchoValueWithId mixin in integration/app1: Same as EchoValue mixin except it does take
id as a parameter and doesn't use the container's clientId. This is needed because it is applied
to a Publish1 component that is not a clientElement.

Public API changes: none
Internal API changes: none

Performance issues:
 - BindParameterWorker has a recursive search (iterative implementation) for published parameters
in embeddedComponents. I think this is better than changing public and internal interfaces
to contain metadata for published parameters etc.
A alternative implementation would be to put this metadata in ComponentModel, something like
isPublishedParameter or getPublishedParameters. I think this is not necessary especially because
no one has issued a need for it.
> The @BindParameter annotation should support inherited parameters
> -----------------------------------------------------------------
>                 Key: TAP5-1663
>                 URL: https://issues.apache.org/jira/browse/TAP5-1663
>             Project: Tapestry 5
>          Issue Type: Improvement
>            Reporter: Dragan Sahpaski
>            Priority: Minor
>              Labels: mixin
>         Attachments: TAP5-1663.patch
> Hi,
> Currently the @BindParameter annotation (that binds a parameter of a mixin to a parameter
in the component the mixin is applied to),
> can be applied only to formal parameters of the containing component and not to parameters
that are inherited by the containing component by embedded components.
> I think it is natural that inherited parameters are included in the search for parameters
to bind to with the @BindParameter annotation.
> Here is a motivating example:
> public class MyComponent{
> @Component(parameters = "blankOption=inherit:blankOption", publishParameters="blankOption")
> private Select select;
> }
> public class MyMixin{
> @BindParameter
> private BlankOption blankOption;
> }
> And we get:
> org.apache.tapestry5.ioc.util.UnknownValueException
> Containing component MyComponent does not contain a formal parameter matching any of
(blank), blankOption.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message