Hello Tapestry Team, I'm finishing project on T4 and have a lot of problems when I need to extend Tapestry framework. Here is one of my use cases:
I want to extend asset service which will dynamically resize images before showing them. I suppose to make ResizableImage component and use it like this: <span jwcid="@ResizableImage" image="ognl:myAsset" width="400" height="300"/> FIRST PROBLEM I can't provide these width/height parameters to my service, because ILink instance in unmodifiable - it has not addParameter(...) method. I can't extend its default impl. because of private members. So I have to copy code from EngineServiceLink and add my methods. Ugly way. SECOND PROBLEM Now I wan't to construct my modifiable ILink instance. I can't extend LinkFactory impl. because of private members. I have to copy code from it and change only *one* line. Terrible. THIRD PROBLEM Ok. Now I can provide parameters to my custom service. But I can't extend AssetService. I can't override it's service() method because of private members. I have to copy/paste again! CONCLUSION We can use contributions, this is great. But we cannot effectively extend existing services. Here are links to other samples: http://issues.apache.org/jira/browse/TAPESTRY-396 http://issues.apache.org/jira/browse/TAPESTRY-621 http://issues.apache.org/jira/browse/TAPESTRY-716 http://issues.apache.org/jira/browse/TAPESTRY-689 http://issues.apache.org/jira/browse/TAPESTRY-442 QUESTION Do you plan to refactor tapestry classes to make them really extendable? Do you plan to do it for 4.0 release? Or explain why you don't want it, please. Thank you -- Alexandr Kundirenko Tapestry user --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
