I disagree with your assessment of mixins. Mixins are primarily tied to the component lifecycle, not to specific component implementations. There are certainly some mixins that can't be universally applied (eg: they may assume that the component is a ClientElement which may or may not be true), but the way you go about implementing them doesn't ordinarily depend on the internal structure of the component. Perhaps the closest framework-supported exception to that is the @BindParameter, but even there you're working with published (ie /public/) information about components, rather than private/internal information.
Robert On Aug 12, 2011, at 8/127:37 PM , Kalle Korhonen wrote: > Well, you can have the same view on all mixins, that they are hacks to > get around design issues with components. Any mixin may break if you > change the internal implementation of a component it's applied to. > Anyway wish you guys had voiced your opinions earlier when Dragan was > begging for comments. Of the three solutions he implemented, an > advice, modifying the grid and this EmbeddedMixin, the last one seemed > cleanest and most generic. 1607 has tests so I told him not to worry > too much about having specific tests for EmbeddedMixin yet although he > offered to write some already. Obviously I partly wanted to force some > comments out by applying the patch, but please do suggest a better > solution for the case if you disagree with the concept. > > Kalle > > > On Fri, Aug 12, 2011 at 4:41 PM, Josh Canfield <[email protected]> wrote: >> I'm also -1. It definitely seems like a hack to get around a design >> issue with a component. >> >> On Fri, Aug 12, 2011 at 3:45 PM, Howard Lewis Ship <[email protected]> wrote: >>> See notes here: >>> >>> https://issues.apache.org/jira/browse/TAP5-1606?focusedCommentId=13084434#comment-13084434 >>> >>> I'm -1 on this change. It goes against an important part of the >>> Tapestry design: that embedded components are part of a components >>> internal structure and not exposed to the outside world as a safeguard >>> that allows a component implementation to be changed without breaking >>> usages of the component. This @EmbeddedMixin tears apart that barrier. >>> >>> -- >>> Howard M. Lewis Ship >>> >>> Creator of Apache Tapestry >>> >>> The source for Tapestry training, mentoring and support. Contact me to >>> learn how I can get you up and productive in Tapestry fast! >>> >>> (971) 678-5210 >>> http://howardlewisship.com >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
