incubator-depot-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Markus M. May" <m...@gmx.net>
Subject Re: Moving forward or letting go
Date Sat, 19 Jun 2004 23:16:48 GMT
Hello,


Niclas Hedhman wrote:
> On Friday 18 June 2004 02:49, Adam R. B. Jack wrote:
> 
>>So -- Avalon repository. How do we see about talking to it? What
>>protocols/APIs? Depot tends to use HTTP (to a file system based repository,
>>ala Maven's Ibiblio, ala ASFRepo spec.) What more is wanted?
> 
> 
> Ok, your notes has been registered.
> Let us start the discussion around Avalon Repository, and see if something can 
> be learnt from it (over at Avalon we are pretty pleased with it).
> 
> What is it NOT;
> * Server application.
> * A tool to provide central repository services.
> * A generic toolkit for use in all types of cases (unlike the intent of 
> Depot).
> * Running on top of Merlin.
> * As generic as it possibly could be.
Okay, here we have IMHO some things in common. Depot is not a server 
application and provides only client support for the repository (means 
basically fetching the dependencies). Well we are not running on Merlin 
obviously :-)

> 
> So, It is a client to http-transport repositories, maven styled, but allowing 
> for extra meta info (in a separate file) to be able to handle;
>  * Chained dependencies (i.e. dependencies of dependencies)
>  * Establishing the classloader hierarchy of the downloaded Jar resources.
Depot offers a little more. The current design covers Maven repositories 
as well as flat file repositories (for the local repository e.g.). There 
were a couple of discussions to provide a kind of configuration to also 
support other repository types. This is currently possible through the 
implementation of a couple of abstract classes.
But Depot has nothing to do with the classloading itself. It is like 
already state right now, only for the build dependencies. The chained 
dependencies are resolved via the dependencies of the dependencies. The 
design therefor is not yet clear, because the needed meta-data for this 
is not saved in the repository.
> 
> Repository drives Merlin, meaning Merlin uses Repository to get hold of 
> resources (including itself!) hosted at repositories. The Avalon build tools, 
> includes Maven/Ant/Magic plugins/task that generate the resource meta info.
> The .meta file for Merlin itself is attached below;
> 
> All-in-all, Avalon Repository is both very capable and complete, but it is not 
> 'toolkit-like'. OTOH, 8 months ago it was completely embedded inside Merlin, 
> without any traces as a standalone package, so the first step of refactoring 
> has been made.
> 
> We at Avalon, also have created our own build system, based enitrely on Ant, 
> doing just about the same things that Maven is famous for, but at 10x the 
> speed (3min instead of 30-40min on my system for the entire Avalon build).
> We call this product "Magic", and it too has 'repository features', but we 
> have not used any of the parts in Avalon Repository, largely because Magic 
> builds Repository, and we really don't want that kind of cyclic dependency.
Nice :-) The depot build system is based on antlets, which is a pretty 
cool build system basically driven by nick chalko. The antlets offer 
some "reuse" components for the build.
> 
> I hope you can digest this info a bit. The important Avalon crowd, Aaron, 
> Stephen, Alex and myself, have expressed a wish to move Repository 
> functionality into Depot, and get Depot out of Incubator and get proper 
> releases out. Personally, I think Depot importance is big enough to validate 
> a TLP.
fine :-)
> 
> Cheers
> Niclas
> 
> #
> # Meta classifier.
> #
> meta.domain = avalon
> meta.version = 1.1
> 
> #
> # Artifact descriptor.
> #
> avalon.artifact.group = avalon/merlin
> avalon.artifact.name = avalon-merlin-impl
> avalon.artifact.version = 3.3.0
> avalon.artifact.signature = 20040617.091454
> 
> #
> # Factory classname.
> #
> avalon.artifact.factory = org.apache.avalon.merlin.impl.DefaultFactory
> 
> #
> # API dependencies.
> #
> avalon.artifact.dependency.api.0 = 
> artifact:jar:avalon/framework/avalon-framework-api#4.2.1
> avalon.artifact.dependency.api.1 = 
> artifact:jar:avalon/util/avalon-util-lifecycle#1.1.1
> 
> #
> # SPI dependencies.
> #
> avalon.artifact.dependency.spi.0 = 
> artifact:jar:avalon/util/avalon-util-extension-api#1.2.0
> avalon.artifact.dependency.spi.1 = 
> artifact:jar:avalon/merlin/avalon-merlin-api#3.3.0
> avalon.artifact.dependency.spi.2 = 
> artifact:jar:avalon/composition/avalon-composition-api#2.0.0
> avalon.artifact.dependency.spi.3 = 
> artifact:jar:avalon/repository/avalon-repository-api#2.0.0
> avalon.artifact.dependency.spi.4 = 
> artifact:jar:avalon/logging/avalon-logging-api#1.0.0
> avalon.artifact.dependency.spi.5 = 
> artifact:jar:avalon/meta/avalon-meta-api#1.4.0
> avalon.artifact.dependency.spi.6 = 
> artifact:jar:avalon/meta/avalon-meta-spi#1.4.0
> avalon.artifact.dependency.spi.7 = 
> artifact:jar:avalon/repository/avalon-repository-spi#2.0.0
> avalon.artifact.dependency.spi.8 = 
> artifact:jar:avalon/logging/avalon-logging-spi#1.0.0
> avalon.artifact.dependency.spi.9 = 
> artifact:jar:avalon/composition/avalon-composition-spi#2.0.0
> 
> #
> # Implementation dependencies.
> #
> avalon.artifact.dependency.0 = 
> artifact:jar:avalon/composition/avalon-composition-impl#2.0.1
> avalon.artifact.dependency.1 = 
> artifact:jar:avalon/repository/avalon-repository-main#2.0.0
> avalon.artifact.dependency.2 = 
> artifact:jar:avalon/repository/avalon-repository-util#2.0.0
> avalon.artifact.dependency.3 = 
> artifact:jar:avalon/util/avalon-util-exception#1.0.0
> avalon.artifact.dependency.4 = artifact:jar:avalon/util/avalon-util-env#1.1.1
> avalon.artifact.dependency.5 = artifact:jar:avalon/util/avalon-util-i18n#1.0.0
> avalon.artifact.dependency.6 = 
> artifact:jar:avalon/util/avalon-util-criteria#1.1.0
> avalon.artifact.dependency.7 = 
> artifact:jar:avalon/util/avalon-util-defaults#1.2.1
> avalon.artifact.dependency.8 = artifact:jar:avalon/meta/avalon-meta-impl#1.4.0
> avalon.artifact.dependency.9 = 
> artifact:jar:avalon/util/avalon-util-configuration#1.0.0
> avalon.artifact.dependency.10 = 
> artifact:jar:avalon/framework/avalon-framework-impl#4.2.1
> avalon.artifact.dependency.11 = 
> artifact:jar:avalon/framework/avalon-framework-legacy#4.2.1
> avalon.artifact.dependency.12 = artifact:jar:avalon/logkit/avalon-logkit#2.0.0
> avalon.artifact.dependency.13 = artifact:jar:log4j/log4j#1.2.8
> avalon.artifact.dependency.14 = artifact:jar:servletapi/servletapi#2.3
> avalon.artifact.dependency.15 = artifact:jar:avalon/tools/mailapi#1.3.1
> avalon.artifact.dependency.16 = artifact:jar:avalon/tools/jms#1.1
> avalon.artifact.dependency.17 = 
> artifact:jar:avalon/util/avalon-util-extension-impl#1.2.0
> avalon.artifact.dependency.18 = 
> artifact:jar:avalon/logging/avalon-logging-impl#1.0.0
> 
> #
> # EOF.
> #
> 


Mime
View raw message