It always troubled me when I need to extend an existing component, because I have to copy all the spec from the parent component. Not an OO way. And when I need my pages to have some properties or injected services in common, I have to duplicate the page spec again. Not good either.
Thanks to hivemind, we can extend/replace the engine when we need. I have an implementation for the feature I need. All you have to do is to declear a property in your specification, for example, <property name="_inheritance" initial-value="contrib:Table" /> where the property name is always "_inheritance", and the initial-value is the parent name. For page inheritance, the parent can be a page specification only, you do not need to define the corresponding template. Yunfeng Hou hivemind.xml ======================================================== <implementation service-id="tapestry.page.PageSpecificationResolver"> <invoke-factory model="threaded"> <construct class="com.newtouch.newtouchone.tapestry.InheritancePageSpecificationResolver"> <set-object property="specificationSource" value="infrastructure:specificationSource" /> <set-object property="componentPropertySource" value="infrastructure:componentPropertySource" /> <set-service property="delegate" service-id="tapestry.page.SpecificationResolverDelegate" /> <set-object property="applicationId" value="infrastructure:applicationId" /> <set-object property="contextRoot" value="infrastructure:contextRoot" /> </construct> </invoke-factory> </implementation> <implementation service-id="tapestry.page.ComponentSpecificationResolver"> <invoke-factory model="threaded"> <construct class="com.newtouch.newtouchone.tapestry.InheritanceComponentSpecificationResolver"> <set-object property="specificationSource" value="infrastructure:specificationSource" /> <set-service property="delegate" service-id="tapestry.page.SpecificationResolverDelegate" /> <set-object property="applicationId" value="infrastructure:applicationId" /> <set-object property="contextRoot" value="infrastructure:contextRoot" /> </construct> </invoke-factory> </implementation> ======================================================== __________________________________________ 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]