You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by Steve Loughran <st...@apache.org> on 2006/06/04 22:02:06 UTC
Re: ComponentHelper replacement
Stephen McConnell (DPML) wrote:
>
>
>
>>-----Original Message-----
>>From: Steve Loughran [mailto:stevel@apache.org]
>>Sent: Friday, 26 May 2006 10:59 PM
>>To: Ant Developers List
>>Subject: Re: ComponentHelper replacement
>>
>>Wolfgang Häfelinger wrote:
>>
>>>>>My preference is to improve Ant's API.
>>>
>>>
>>>I would like to see Ant evolving in such a way allowing me to
>>>implement a framework like Maven on top of it.
>
>
> I agree.
>
> IMO there are two views that could be addressed here:
>
> (a) build.xml integrity
> (b) the Ant implementation quality
>
> The first item (a) concerning build integrity is related to the integrity of
> the XML file parsed by Ant. I would like to see the build file evolve
> towards an XML schema compliant source which would suggest that there is a
> generic Ant schema with support for extended data types and task definition
> schemas. Validation of custom data and tasks at the XML Schema level would
> be a major improvement over the current status-quo through simple
> elimination of XML structural issues combined with pre-execution validation
> for custom tasks. Introduction of XML schema has build and runtime
> implications that would require evaluation of JDK version and XML API
> support. A worst-case scenario would be schema-enabled versus
> schema-unsupported distributions.
I'm sorry, I have to work with XSD as my day job. It's evil and wrong.
It's one of the primary causes of grief in the whole O/X mapping area,
and it is very hard to work with.
Only people with a formal CS background and experience in those
mathematical language models can begin to understand all of it, and even
then it doesnt make sense to most of them.
>
> A more immediate concern is validation of the Ant implementation - in
> particular, tests cases against the Ant distribution. An earlier thread
> raised by Subir Bhaumik on the subject of "Using Ant Programmatically" and
> the appearance of an NPE is an example of the type of problem that should
> not occur or at least should be easily replication within a junit or
> integration test. Looking into the subject of that thread its relatively
> easy to see that the scope of existing tests related to Taskdef are limited:
>
> public TaskdefsTest(String name) {
> super(name);
> }
>
> My immediate thoughts here are related to the process of Ant improvement.
> Subir's post as a minimum should be treated as a challenge - i.e.
> replication of the NPE in a testcase. Instead Subir was told to look at the
> source and figure this out for himself (which IMO is not equal to
> satisfactory process closure). I think that part of the problem here is that
> Ant is bootstrapping itself from nothing and as a consequence we have an
> overly complex build file that does not generate the information needed for
> rapid problem identification/resolution by the non-committer community.
that sounds like one of my comments. Programmatic use of ant is always
secondary. Do we want to change that? If so, how?
-split out libraries for execution, java exec, other misc things
-complete programmatic use of ant without problems
> In particular:
>
> (a) default bootstrapping scenario presumes user intervention
you mean the double step of bootstrap/build?
> (b) default build file exemplifies a bad-practices (mixing core with
> external dependent builds) resulting in a complex 67kB XML file
yes, its got a bit big.
> (c) no build metric (test case reports, etc.) for published
> distributions
>
> All of the above could be improved with some refactoring of:
>
> (a) the project structure
> (b) the build strategy
> (c) published metrics
>
> The build structure could be improved with the separation of core from
> extension projects (with the assumption that each extension project
> addresses the specific extension concern). In effect, each project could
> represent the build solution for each of the package Ant jar file included
> in the formal Ant distribution. With rationalization of build structure the
> build strategy could be significantly improved by using a released (bundled
> binary?) version of Ant as the build system - enabling a much more rigorous
> evaluation of the result (junit reports, coverage, etc.) with respect to the
> Ant core and specific extensions (without the user intervention
> prerequisite).
>
> Given the above - it could be reasonable to assume:
>
> (a) a complete Ant build without user intervention
we could write (and maintain) another .bat/.sh for this.
> (b) build metrics created as a part of the build process
reasonable.
> (c) publication content (apis, junit reports, checkstyle reports, etc.)
> generated as a part of formal distribution content
>
possible. Would be nice up on the web site as a proof of 'compliance'.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
RE: ComponentHelper replacement
Posted by "Stephen McConnell (DPML)" <mc...@apache.org>.
> -----Original Message-----
> From: Steve Loughran [mailto:stevel@apache.org]
<snip/>
Apologies for the delay in responding (have been
swamped with moving house and the cup).
> > I think that part of the problem here is that Ant is
> > bootstrapping itself from nothing and as a
> > consequence we have an overly complex build file that does not
> > generate the information needed for rapid problem
> > identification/resolution by the non-committer community.
>
> that sounds like one of my comments. Programmatic use of ant
> is always secondary. Do we want to change that?
>
> If so, how?
>
> -split out libraries for execution, java exec, other misc
> things -complete programmatic use of ant without problems
I'm thinking along the lines of moving the ant codebase structure to
something that reflects a project codebase per jar file where each
project (a.k.a. ant-sub-project) would have its own build file,
clearly identified dependencies, testcases, and resulting artifacts.
Could this be a feasible post-1.7 objective?
Cheers, Steve.
--------------------------
Stephen McConnell
mailto:mcconnell@dpml.net
http://www.dpml.net
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org