We should just put it into the abstract class and make it required. If the goal of the mercury wagon is to replace the http one, then it should implement the same methods and be completely drop-in capable (sounds like you did implement it already). And since it's so confusing by having this sort-of optional method, let's just make it clear and make it required.
-----Original Message----- From: Ralph Goers [mailto:[EMAIL PROTECTED] Sent: Tuesday, September 30, 2008 3:33 AM To: Maven Developers List Subject: Re: wagon's resourceExists() call efficiency ? I apologize for dragging this out. I looked at AbstractWagon and do see that it implements resourceExists by throwing the UnsupportedOperationException. For clarity this really should be declared in the Wagon interface even though it is a RuntimeException. I also looked at all the existing Wagon providers and noticed that they all seem to implement the method - meaning the method provided by AbstractWagon was previously never used by anything. I then looked at Google and Krugle to see what might be calling resourceExists. I can see that if your Wagon implementation is used by the maven-project-info-reports-plugin that when it calls the dependencyExistsInRepo method of the RepositoryUtils class the UnsupportedOperationException will not be handled. I also notice that Spring seems to have implemented at least one Wagon of its own - to access the Amazon S3 service. I wonder how this gets used? I wonder why they don't just use Maven's implementation? It might also be useful to look at http://jira.codehaus.org/browse/WAGON-58 which documents why the resourceExists method was added. From what I can tell resourceExists was added to support the maven-project-info-reports-plugin. You wanted a case where HEAD is not followed by GET? Here it is. Ralph Oleg Gusakov wrote: > Man, I did not want to talk about this any more .. but cannot help it, > as this is about a second half of the issue. > > Ralph Goers wrote: >> Perhaps. Except that resourceExists is still NOT an optional method. > If developer follows a stable dev. pattern, in this case: create a new > wagon provider by extending AbstractWagon - and is not mandated by the > language to implement a method, this to me constitutes an optional > method. If I would not try to pass ITs, I'd never suspect that method > even exists! > > We are out of the woods, we use a language that allows us to express > what we want. And I dare say that knowledge and experience of any > single individual on this list goes far beyond a simple task of > mandating something deemed not optional - in this case declare an > abstract method in abstract class. > > And let's stop this thread, too much about nothing :) > > Thanks, > Oleg > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]