geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dain Sundstrom <d...@iq80.com>
Subject Re: GroupId for DayTrader needed.
Date Fri, 21 Jul 2006 23:34:37 GMT
On Jul 20, 2006, at 4:01 PM, Jason Dillon wrote:

> It is not just how we use the m2-style repo inside of G, but also  
> how we build G using m2 that will cause problems for windows peeps.
>
> The later is going to be more trouble to resolve I think.
>
> I'm still thinking it would be a good idea to have some sort of  
> file-system abstraction for our m2-style repo... in the same way  
> that SVN has an abstraction... that could use BDB or a regular file  
> system (ie. FSFS) for actual storage.  WIth something like this, we  
> could have the default distro use a BDB-ish filesystem and  
> completely resolve the windows file name limitations.  With a set  
> of cli tools we can easily allow the BDB-ish to be converted to a  
> FSFS.

The repo is an interface.  Well it is really three interfaces  
depending how much you want to implement:

public interface Repository {
     boolean contains(Artifact artifact);
     File getLocation(Artifact artifact);
     LinkedHashSet getDependencies(Artifact artifact);
}

public interface WriteableRepository extends Repository {
     void copyToRepository(File source, Artifact destination,  
FileWriteMonitor monitor) throws IOException;
     void copyToRepository(InputStream source, int size, Artifact  
destination, FileWriteMonitor monitor) throws IOException;
}

public interface ListableRepository extends Repository {
     SortedSet list();
     SortedSet list(Artifact query);
}

We have an M1 and M2 implementation of these, so if you want another  
one you have some good base code to start with.

-dain

Mime
View raw message