ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jful...@ruminate.co.uk
Subject RE: repository
Date Tue, 16 Nov 2004 15:22:31 GMT
"Dominique Devienne" <DDevienne@lgc.com> wrote ..
> > From: Stefan Bodewig [mailto:bodewig@apache.org]
> > In the end the major difference is a philosophical one.  What is the
> > central piece of the task, the repository or downloading of files.
> > 
> > I guess I'm more on the side of the declarative approach dependencies
> > takes, but I do want those additional bells and whistles like MD5
> > checksum validations and timestamp checks if needed.
> 
> I feel similarly. I prefer the declarative approach of <dependencies>,
> but would like timestamp checking for latest-like dependencies that get
> overwritten (which does need a pseudo-atomic copy-to-tmp+move scheme).
> 
> Additionally, if the notion of what is a dependency could be abstracted
> a bit, it would be great. I'm not sure it's reasonable to ask for this
> now, but I'm throwing that it now so whatever design decision is made
> does not preclude it in the future. What I have in mind are zip
> dependencies containing jar+native-libs+descriptors+etc... We're in a
> mixed Java-C/C++ environment, and some dependencies are in fact C++
> libraries which export their public headers, import libs, and runtime
> .dll/.so as a zip.

the approach I have taken is to define libraries (3rd party), components (project components),
and general artifacts dependencies in a seperate ML.....

for example to define a component dependencies;

<comp:Component rdf:ID="SOME_PROJECT_COMPONENT">
 
<lib:depends rdf:ID="xercesj">
 <version>
                <query key="maturity" value="latest"/>
                <query key="type" value="debug"/> 
 <version>
 <artifact>
                <query key="type" value="JAR"/> 
 <artifact>
</lib:depends>
 
<lib:depends rdf:ID="xercesj">
 <version>
                <query key="maturity" value="latest"/> 
                <query key="type" value="release"/> 
 <version>
 <compatible>
  <query key="compatible" rdf:Value="saxon"/>
 </compatible>
 <artifact>
                <query key="type" value="JAR"/> 
 <artifact>
</lib:depends>
 
<comp:depends rdf:ID="SOME_OTHER_PROJECT_COMPONENT">
 <version>
                <query key="maturity" value="latest"/>
                <query key="type" value="debug"/> 
 <version>
 <artifact>
                <query key="type" value="JAR"/> 
 <artifact>
</comp:depends>
 
</comp:Component>

a library dependency is as follows....

<lib:depends rdf:ID="xmlparser">
 <version>
                <query key="maturity" value="latest"/> 
                <query key="type" value="release"/> 
 <version>
 <artifact>
                <query key="type" value="JAR"/> 
 <artifact>
</lib:depends>
 
general artifacts follow the same format. Dependencies can be grouped up into sets; e.g. dependencysets
so that they can be referenced e.g. ... <lib:dependset rdf:ID="xml_dependencies"/>

I then define all components, libraries, and artifacts using rdf:ID as link...
by structuring via query elements, it gives me an open ended definition for defining new artifact
types....like zip etc.

Currently this ML is processed with XSLT..though I am slowly migrating to RDF processing and
since I use Ant to control the entire process...might make a task of it one day...

I have used RDF because I use the power of triples when asking questions of my component dependencies....which
I havent showed in the primative ML.

--Jim Fuller




> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
> For additional commands, e-mail: dev-help@ant.apache.org


Mime
View raw message