I'd suggest a "merge" of 2 options :

1 . have an exception list, used by the LegacyBidirectionalLayout to resolve
those artifactIds, maybe stored in the archiva DB or in a file (I've never
used jpox, so can't say if it's simple to do)

2 . add an optional ArtifactReferenceVerifier as param of
toArtifactReference(path) :

public interface ArtifactReferenceVerifier
{
    boolean isValidReference( ArtifactReference ref );
}

3 . make the BidirectionalLegacyLayout build the default
[artifactId:version:classifier] and check for validity. If not, build all
possible combinations and test them until getting a valid one. Store the
result in exceptions (cache).

4 . From the DavProxyServlet, pass a verifier that check for the file to
exists in any proxied repo.
In other place, pass null. The artifact used is allready in the managed repo
so is allready registered as an exception if required.

Using this, we can provide a default exception list for known issues from
central, and also provide with fiew changes a deterministic
LegacyBidirectionalLayout with auto-enhancement of the exception list.

Nico.




2007/10/9, Brett Porter <[EMAIL PROTECTED]>:
>
> Hi Nicolas,
>
> Thanks for the summary - it sounds spot on. Just one clarification:
>
> On 09/10/2007, at 5:25 PM, nicolas de loof wrote:
>
> > Brett suggest to have a dedicated UI to maintain a set of
> > exceptions. That
> > would be a way to force the LegacyBidirectionalLayout to be
> > deterministic.
> > This option has less impact on archiva design, but requires
> > - a new web UI
> > - some work for the repository manager
>
> I actually suggested the simplest possible route here - I think if
> these can be handled via a configuration file that is enough as we
> shoul be able to pre-specify the vast majority of the exceptions
> based on the rules for central.
>
> What is your opinion on the best way forward?
>
> Thanks,
> Brett
>
> --
> Brett Porter - [EMAIL PROTECTED]
> Blog: http://www.devzuz.org/blogs/bporter/
>

Reply via email to