This document discusses POM processing in great detail, while in Mercury we abstracted it into external interface MetadataProcessor. You give it GAV to the POM, MetadataReader and it returns back a list of dependency GAVs interpolated for the given environment. Not transitive - just direct dependencies.

List<ArtifactBasicMetadata> getDependencies( ArtifactBasicMetadata bmd, MetadataReader mdReader, Hashtable env )
   throws MetadataProcessingException;

MetadataReader is implemented by Mercury as all it does is: given GAV - returns back POM bytes, so that MetadataProcessor have something to interpret.

 public byte [] readMetadata( ArtifactBasicMetadata bmd )
 throws MetadataProcessingException;


Then Mercury concentrates on building the dependency tree for transitive dependencies and resolving conflicts for a particular scope.

So majority of the document applies to MetadataProcessor abstraction, and ProjectBuilder is the perfect candidate :)

I will write up the overall process and integrate that piece.

Thanks,
Oleg


Jason van Zyl wrote:
Oleg,

Not sure if you've seen this, but could you take a crack at integrating this, if applicable, into the Mercury write up?

http://docs.codehaus.org/display/MAVEN/Maven+2.1+Artifact+Resolution+Specification

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
jason at sonatype dot com
----------------------------------------------------------

the course of true love never did run smooth ...

 -- Shakespeare


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



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

Reply via email to