> From: Stefan Bodewig [mailto:[EMAIL PROTECTED]
> 
> On Tue, 29 Apr 2003, Costin Manolache <[EMAIL PROTECTED]> wrote:
> > Stefan Bodewig wrote:
> 
> >>> - Should we use (<parent>, <child>) tuple to find the class? 
> >>> Should we use (ParentClass, <parent>, <child>) tuple ?
> >> 
> >> I'm not sure what the difference is, here.
> > 
> > In the second case, the parent class is also used when constructing
> > the child - i.e. introspection or some other info could be used.
> >  
> > BTW, by <parent> I mean parent namespace + parent element name (
> > even if we don't use ns yet ).
> 
> OK.  I think we'll need ParentClass to apply proper interface
> resolution.  I'm somewhere on the fence, to be honest.
> 
> I don't see a need for separate namespaces depending on the
> interfaces, so only using the child's element name (and namespace)
> could be enough.  I'm not sure whether I'm overlooking a problem.
> 

The problem you are overlooking is the case of <weblogic> element
in <ejbjar>, <jspc>, <serverdeploy>, etc.

All of them allow for vendor specific subelements (which should
be provided by a different role since each API is different).
When you are searching for the definition of "weblogic" you need
to look with respect to the parent supported interfaces;
for <ejbjar> it may be org.apache....ejb.EjbjarLiason
for <serverdeploy> it may be org.apache....ejb.DeployLiason
etc.

This is why you need separate tables per interface.

> In a previous mail I said <child> alone would already break down
> today.  What I had in mind are things like the <fail> element nested
> into <sound> clashing with the <fail> task - all those things that
> make a DTD impossible to write for Ant.
> 
> But these existing name clashes only exist for the non-overloaded
> cases that we are still going to support.  I.e. they exist because
> SoundTask defines addFail(SomeObject) which is fine as it is not
> ambiguos at all.
> 

The case of vendor specific nodes is another case and although it is true
that today is done by addWeblogic() or createWeblogic() a major
point of all this exercise to be able to move those back to the vendors
on their own release cycle.

Jose Alberto

Reply via email to