Return-Path: Delivered-To: apmail-maven-archiva-commits-archive@locus.apache.org Received: (qmail 84313 invoked from network); 28 Aug 2006 06:49:10 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 28 Aug 2006 06:49:10 -0000 Received: (qmail 50093 invoked by uid 500); 28 Aug 2006 06:49:09 -0000 Delivered-To: apmail-maven-archiva-commits-archive@maven.apache.org Received: (qmail 50059 invoked by uid 500); 28 Aug 2006 06:49:09 -0000 Mailing-List: contact archiva-commits-help@maven.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: archiva-dev@maven.apache.org Delivered-To: mailing list archiva-commits@maven.apache.org Received: (qmail 50050 invoked by uid 99); 28 Aug 2006 06:49:09 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 27 Aug 2006 23:49:09 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [140.211.166.113] (HELO eris.apache.org) (140.211.166.113) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 27 Aug 2006 23:49:08 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 841C31A981A; Sun, 27 Aug 2006 23:48:48 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r437570 - in /maven/archiva/trunk/archiva-webapp/src/main: java/org/apache/maven/archiva/web/action/SearchAction.java java/org/apache/maven/archiva/web/action/ShowArtifactAction.java resources/xwork.xml Date: Mon, 28 Aug 2006 06:48:47 -0000 To: archiva-commits@maven.apache.org From: brett@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20060828064848.841C31A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: brett Date: Sun Aug 27 23:48:46 2006 New Revision: 437570 URL: http://svn.apache.org/viewvc?rev=437570&view=rev Log: [MRM-144] fix some minor issues Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java maven/archiva/trunk/archiva-webapp/src/main/resources/xwork.xml Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java?rev=437570&r1=437569&r2=437570&view=diff ============================================================================== --- maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java (original) +++ maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java Sun Aug 27 23:48:46 2006 @@ -75,8 +75,6 @@ */ private ConfigurationStore configurationStore; - private static final String NO_RESULTS = "noResults"; - private static final String RESULTS = "results"; private static final String ARTIFACT = "artifact"; @@ -97,7 +95,6 @@ return ERROR; } - // TODO! this is correct, but ugly MultiFieldQueryParser parser = new MultiFieldQueryParser( new String[]{StandardIndexRecordFields.GROUPID, StandardIndexRecordFields.ARTIFACTID, StandardIndexRecordFields.BASE_VERSION, StandardIndexRecordFields.CLASSIFIER, StandardIndexRecordFields.CLASSES, StandardIndexRecordFields.FILES, @@ -105,6 +102,12 @@ StandardIndexRecordFields.PROJECT_DESCRIPTION}, new StandardAnalyzer() ); searchResults = index.search( new LuceneQuery( parser.parse( q ) ) ); + if ( searchResults.isEmpty() ) + { + addActionError( "No results found" ); + return INPUT; + } + return SUCCESS; } @@ -128,7 +131,8 @@ if ( searchResults.isEmpty() ) { - return NO_RESULTS; + addActionError( "No results found" ); + return INPUT; } if ( searchResults.size() == 1 ) { Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java?rev=437570&r1=437569&r2=437570&view=diff ============================================================================== --- maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java (original) +++ maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java Sun Aug 27 23:48:46 2006 @@ -32,6 +32,7 @@ import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.factory.ArtifactFactory; import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.versioning.DefaultArtifactVersion; import org.apache.maven.model.Dependency; import org.apache.maven.model.Model; import org.apache.maven.project.MavenProject; @@ -45,10 +46,12 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Set; /** * Browse the repository. @@ -278,7 +281,10 @@ private final String artifactId; - private List versions = new ArrayList(); + /** + * Versions added. We ignore duplicates since you might add those with varying classifiers. + */ + private Set versions = new HashSet(); private String version; @@ -318,9 +324,77 @@ return classifier; } + private static class Ver + { + private int buildNumber; + + private int major; + + private int minor; + + private int incremental; + + private String qualifier; + + + } + public void addVersion( String version ) { - versions.add( version ); + // We use DefaultArtifactVersion to get the correct sorting order later, however it does not have + // hashCode properly implemented, so we add it here. + // TODO: add these methods to the actual DefaultArtifactVersion and use that. + versions.add( new DefaultArtifactVersion( version ) + { + public int hashCode() + { + int result; + result = getBuildNumber(); + result = 31 * result + getMajorVersion(); + result = 31 * result + getMinorVersion(); + result = 31 * result + getIncrementalVersion(); + result = 31 * result + ( getQualifier() != null ? getQualifier().hashCode() : 0 ); + return result; + } + + public boolean equals( Object o ) + { + if ( this == o ) + { + return true; + } + if ( o == null || getClass() != o.getClass() ) + { + return false; + } + + DefaultArtifactVersion that = (DefaultArtifactVersion) o; + + if ( getBuildNumber() != that.getBuildNumber() ) + { + return false; + } + if ( getIncrementalVersion() != that.getIncrementalVersion() ) + { + return false; + } + if ( getMajorVersion() != that.getMajorVersion() ) + { + return false; + } + if ( getMinorVersion() != that.getMinorVersion() ) + { + return false; + } + if ( getQualifier() != null ? !getQualifier().equals( that.getQualifier() ) + : that.getQualifier() != null ) + { + return false; + } + + return true; + } + } ); if ( versions.size() == 1 ) { @@ -329,8 +403,6 @@ else { this.version = null; - // TODO: use version comparator! - Collections.sort( versions ); } } @@ -346,6 +418,8 @@ public List getVersions() { + List versions = new ArrayList( this.versions ); + Collections.sort( versions ); return versions; } Modified: maven/archiva/trunk/archiva-webapp/src/main/resources/xwork.xml URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/resources/xwork.xml?rev=437570&r1=437569&r2=437570&view=diff ============================================================================== --- maven/archiva/trunk/archiva-webapp/src/main/resources/xwork.xml (original) +++ maven/archiva/trunk/archiva-webapp/src/main/resources/xwork.xml Sun Aug 27 23:48:46 2006 @@ -76,8 +76,6 @@ /WEB-INF/jsp/quickSearch.jsp /WEB-INF/jsp/results.jsp /WEB-INF/jsp/quickSearch.jsp - /WEB-INF/jsp/noResults.jsp - @@ -88,8 +86,6 @@ /WEB-INF/jsp/findArtifact.jsp /WEB-INF/jsp/results.jsp /WEB-INF/jsp/findArtifact.jsp - /WEB-INF/jsp/noResults.jsp - /browse/${searchResults[0].groupId}/${searchResults[0].artifactId}/${searchResults[0].version}