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

Reply via email to