Hello,

thanks for reply. Maybe I was not exact. I know, how to solve problem, but 
I think this behaviour is little bit strange (and maybe dangerous), and I 
would like to discuss it. At least it is not much well documented.

Suggest bigger project with many developers. When someone adds by misteke 
property definition to existing getter and setter, he will not recognize 
it anyway - only ifhe discover the application is working differently.

Petr




anil udasi <[EMAIL PROTECTED]> 
05.12.2005 16:19
Please respond to
"Tapestry development" <[email protected]>


To
Tapestry development <[email protected]>
cc

Subject
Re: Defining page property using implemented methods in Tapestry 4






Hi, if you dont want Tapestry to implement the
'implementedWithDefinition' please remove its
declaration from property file with your code intact,
It will fix this problem.

Thanks,
Anil Udasi.



--- [EMAIL PROTECTED] wrote:

> Hello,
> 
> when I declare page property using <property
> name="testName"> in page 
> property file and then implements getters and
> setters for this property 
> using concrette (not abstract) methods
> implementation in page class , 
> Tapestry ignores this getters and setters and
> constructs this own methods 
> implementation as the getters and setters were
> defined using abstract 
> methods.
> 
> Result is the implemented logic in methods is
> quitely overriden and 
> ignored. 
> 
> Maybe I am wrong in implementation or misread docs,
> but the reading I did 
> found for this problem is not much helpful, too. On
> 
>
../tapestry-4.0-beta-13-docs/UsersGuide/spec.html#spec.property
> " ... In Tapestry 4.0, the type of the implemented
> property will simply 
> match the type of any existing (abstract) property,
> or will default to 
> Object. ..." 
> 
> This does not expalin too much clearly what will
> happen. Or the abstract 
> method shoud be required for property or the
> concrette implementation 
> should not be overriden for the property.
> 
> I am using:
> 
> Tapestry beta 13
> Hiveming 1.1
> Apache Tomcat 4.1
> Java SDK1.4.2_08
> 
> Attached please find working example. Problem is in
> property 
> "implementedWithDefinition". It has getters and
> setters implemented with 
> log.debug message, which is never called - althoug
> it should be - can be 
> seen in the log example o the end of email.
> 
> Can you tell me ouur opinion about this problem?
> 
> Best regards
> 
> Petr Marek
> 
>
--------------------------------------------------------------------------------------------------------------------------------------------------
> EXAMPLE:
> 
> TestProperties.html
> ------------------------
> <html>
>     <body>
>         Hello, this is test of properties!
>     </body>
> </html>
> 
> TestProperties.page
> -------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE page-specification PUBLIC
>   "-//Apache Software Foundation//Tapestry
> Specification 4.0//EN" 
> 
>
"http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd";>
> 
>   <page-specification
> class="cz.profinit.kos.web.stranky.TestProperties">
>       <property name="abstractWithDefinition"/>
>       <property name="implementedWithDefinition"/>
>   </page-specification>
> 
> TestProperties.java
> ------------------------
> 
> package cz.profinit.kos.web.stranky;
> 
> import org.apache.log4j.Logger;
> import
> org.apache.tapestry.event.PageBeginRenderListener;
> import org.apache.tapestry.event.PageEvent;
> import org.apache.tapestry.html.BasePage;
> 
> /**
>  * Tests the results of calling and setting abstract
> and implemented 
> properties.
>  *
>  * History:
>  * <br>$Log: TestProperties.java,v $
>  * <br>
>  *
>  * @author $Author: pmarek $
>  * @version $Revision: 1.0 $
>  */
> 
> public abstract class TestProperties extends
> BasePage implements 
> PageBeginRenderListener {
> 
>         private static Logger log = 
> Logger.getLogger(TestProperties.class.getName());
> 
>         /**
>          * Abstract property with definition in
> TestProperties.page using 
> <property tag>.
>          * @return
>          */
>         public abstract String
> getAbstractWithDefinition();
>         public abstract void
> setAbstractWithDefinition(String 
> abstractWithDefinition);
> 
>         /**
>          * Implemented property with definition in
> TestProperties.page 
> using <property tag>.
>          */
>         private String implementedWithDefinition;
>         public String getImplementedWithDefinition()
> {
>                 log.debug("running
> getImplementedWithDefinition()...");
>                 return
> this.implementedWithDefinition;
>         }
>         public void
> setImplementedWithDefinition(String 
> implementedWithDefinition) {
>                 log.debug("running
> setImplementedWithDefinition(...)...");
>                 this.implementedWithDefinition = 
> implementedWithDefinition;
>         }
> 
>         /**
>          * Abstract property with NO definition in
> TestProperties.page.
>          * @return
>          */
>         public abstract String
> getAbstractNoDefinition();
>         public abstract void
> setAbstractNoDefinition(String 
> abstractNoDefinition);
> 
>         /**
>          * Implemented property with NO definition
> in TestProperties.page.
>          */
>         private String implementedNoDefinition;
>         public String getImplementedNoDefinition() {
>                 log.debug("running
> getImplementedNoDefinition()...");
>                 return this.implementedNoDefinition;
>         }
>         public void
> setImplementedNoDefinition(String 
> implementedNoDefinition) {
>                 log.debug("running
> setImplementedNoDefinition(...)...");
>                 this.implementedNoDefinition =
> implementedNoDefinition;
>         }
> 
>         /**
>          * Implementation of @see
> PageRenderListener#pageBeginRender.
>          * @param pageEvent
>          */
>         public void pageBeginRender (PageEvent
> pageEvent) {
> 
>
log.debug("setAbstractWithDefinition("+TEST_VALUE_1+")");
> 
> this.setAbstractWithDefinition(TEST_VALUE_1);
> 
> log.debug("getAbstractWithDefinition()");
>                 log.debug("Should be
> '"+TEST_VALUE_1+"'. Is 
> '"+this.getAbstractWithDefinition()+"'");
> 
>
log.debug("setImplementedWithDefinition("+TEST_VALUE_2+")");
> 
> this.setImplementedWithDefinition(TEST_VALUE_2);
> 
> log.debug("getImplementedWithDefinition()");
>                 log.debug("Should be
> '"+TEST_VALUE_2+"'. Is 
> 
=== message truncated ===



 
__________________________________________ 
Yahoo! DSL – Something to write home about. 
Just $16.99/mo. or less. 
dsl.yahoo.com 


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



Reply via email to