On 3/6/06, Dave Ross <[EMAIL PROTECTED]> wrote: > duck-typing support - fine, good, it doesn't make much of a difference > to those who aren't using it
Cool. > walking the inheritance tree when searching metadata - this has > several implications that have been discussed in the past - my biggest > concern is autowiring - mixing autowiring and inherited methods seems > dangerous... And I agreed in the past. Chris and I have discussed this at length (again, in the past) and I was definitely on the side of concrete objects only as far as ColdSpring is concerned. > if you've explicitly defined the <property/> or > <constructor-arg/> then I don't have a problem with it using an > "inherited setter" to push in a dependency... but doesn't that work > already? It probably does but that wasn't the case I was really focused on. > Inheriting an init() is another case where I'm not sure > whether to support that or not - I'm of the opinion that all CFC's > should have an init() no matter what - sure we support ones that don't > but I'm not sure we should be calling init() if it doesn't exist in > the concrete CFC. I agree in principle. > regardless, we should probably refactor the metadata "gathering" into > a separate utility class, then we can only have to tweak this in one > place in the future. thoughts on that? Looking at the way it is used, I don't believe that would be the right solution. If you do that, then you have calls to accumulate all the function metadata followed by loops through that metadata - so you'll be looping twice and, unless you convert the metadata from an array to a struct, you'll be copying arrays left, right and center. The practical issue is that as it stands today, operating on those principles, ColdSpring cannot manage Reactor-generated DAOs, gateways etc. Because Reactor generates code and, indeed, uses some pretty complex object relationships, ColdSpring can't easily mandate how the inheritance chains will work in Reactor-based applications. If ColdSpring should support injection of Reactor gateways, for example, ColdSpring needs to walk the inheritance chain. That's the crux of the decision. > Well, I came up short on a jump yesterday and have a sore ankle, knee, > groin, back, and neck. Heading back out for revenge now... :) Bummer! Make the snow pay for its insolence! -- Sean A Corfield -- http://corfield.org/ Got frameworks? "If you're not annoying somebody, you're not really alive." -- Margaret Atwood
