Hi guys,

Here I am again questiioning things we have discussed in the past. ;-)

I have been thinking about the usage patterns in ANT2 and I am doubting  the 
clarity of the pattern produced by <projectref> as we defined it in the 
previous discussion (some months ago).

Do not take me wrong, I was one pushing for something like <projectref>, but I 
am now thinking we may be 
producing some sort of pattern similar to "Multiple Inheritance". And that make 
me think whether do we really
want that or a more simple "Single Inheritance" pattern may produce more 
maintainable build files (which is
the whole point for these patterns). As with the debate between C++ and Java 
have demonstrated there are
no clear answers in that regard, so I am just trying to bring this issues to 
the front.

The original reason for something like <projectref> was to be able to define 
something like a project template
containing common parts of a shop's build process and then instantiate the 
specifics of a particular project.
Keeping this narrow basic requirement in mind, what do you think of the 
following construct:

    <project name="subproject" extends="superbuild.xml" >

        <target name="overloaded" depends="a,b,super:overloaded,d" >
            ....
        </target>
    </project>

The idea here is that, as with Java code, one can define projects that can 
overload the definition of targets
and call its original implementation either in the dependencies or via 
<antcall>.

What looks exiting here is that there is less chance for complex 
cross-references between buildfiles. As we have envisioned <projectref> up to 
now, there is a lot of chance to define interrelated buildfiles that call 
things on each other
all over the place. The question is does such capability will produce less 
legible buildfiles.

There are other issues we would have to define in order for this to work 
correctly, in particular <property>
resolution. How and when properties defined in "subproject" override 
definitions in the project being extended? 

So, what do you think. Are there any major problems or short commings that you 
can see?
At this point I am only exploring the power of this type of construct, nothing 
else.

Jose Alberto


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to