incubator-depot-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Niclas Hedhman <nic...@hedhman.org>
Subject Re: Moving forward or letting go
Date Fri, 18 Jun 2004 06:31:15 GMT
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.

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.

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.

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.

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.
#

-- 
   +------//-------------------+
  / http://www.bali.ac        /
 / http://niclas.hedhman.org / 
+------//-------------------+


Mime
View raw message