On Sunday 20 June 2004 07:16, Markus M. May wrote: > Depot offers a little more. The current design covers Maven repositories > as well as flat file repositories (for the local repository e.g.).
Ok. Avalon Repository has a SPI model in place, but code is currently required, since we cater to our own needs first :o) > 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. Yes, you will need to define or use server-side meta-data. The immediate effect after solving that is the Classloader (not classloading) establishment, since the 'type' of classloader the dependency belongs to, MUST be managed by the repository system, or you have missed a major goal. If Depot is only a tool for build systems itself, then you are also missing the goal, i.e. providing a functionality to a handful of build systems, each having their own solutions to this concern, is not a recipe for wide-spread acceptance, and a chicken-egg problem. > > 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. We have opted NOT to use building blocks, but on the same basis as Maven started out. I.e. "Follow a pattern and all is catered for." A typical build.xml looks like <project name="avalon-activation-impl" default="dist" basedir="." xmlns:x="antlib:org.apache.avalon.tools"> <property file="build.properties"/> <import file="${project.home}/build/standard.xml"/> <target name="init" depends="standard.init"> <x:filter key="avalon-logging-logkit-impl" feature="uri" token="AVALON-LOGGING-LOGKIT-SPEC"/> </target> <target name="package" depends="standard.package"> <x:artifact/> </target> </project> And then ALL projects with Avalon has a single POM-like XML file containing the dependencies (incl, classloading concerns), the definitions, versioning and some other smaller stuff. Death to Maven!!! :o) Cheers Niclas -- +------//-------------------+ / http://www.bali.ac / / http://niclas.hedhman.org / +------//-------------------+