Return-Path: Delivered-To: apmail-incubator-sling-commits-archive@locus.apache.org Received: (qmail 93150 invoked from network); 15 Jan 2008 08:46:45 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 15 Jan 2008 08:46:45 -0000 Received: (qmail 82641 invoked by uid 500); 15 Jan 2008 08:46:35 -0000 Delivered-To: apmail-incubator-sling-commits-archive@incubator.apache.org Received: (qmail 82625 invoked by uid 500); 15 Jan 2008 08:46:35 -0000 Mailing-List: contact sling-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: sling-dev@incubator.apache.org Delivered-To: mailing list sling-commits@incubator.apache.org Received: (qmail 82616 invoked by uid 99); 15 Jan 2008 08:46:35 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 15 Jan 2008 00:46:35 -0800 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 15 Jan 2008 08:46:18 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 6A5FD1A9832; Tue, 15 Jan 2008 00:46:24 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r612038 - in /incubator/sling/trunk/osgi/assembly/src/main/java/org/apache/sling/osgi/assembly: installer/VersionRange.java internal/InstallerImpl.java Date: Tue, 15 Jan 2008 08:46:22 -0000 To: sling-commits@incubator.apache.org From: fmeschbe@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080115084624.6A5FD1A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: fmeschbe Date: Tue Jan 15 00:46:11 2008 New Revision: 612038 URL: http://svn.apache.org/viewvc?rev=612038&view=rev Log: SLING-153: Implement VersionRange.equals method and do not set an equality version, if the VersionRange equals the default version range 0.0.0. Modified: incubator/sling/trunk/osgi/assembly/src/main/java/org/apache/sling/osgi/assembly/installer/VersionRange.java incubator/sling/trunk/osgi/assembly/src/main/java/org/apache/sling/osgi/assembly/internal/InstallerImpl.java Modified: incubator/sling/trunk/osgi/assembly/src/main/java/org/apache/sling/osgi/assembly/installer/VersionRange.java URL: http://svn.apache.org/viewvc/incubator/sling/trunk/osgi/assembly/src/main/java/org/apache/sling/osgi/assembly/installer/VersionRange.java?rev=612038&r1=612037&r2=612038&view=diff ============================================================================== --- incubator/sling/trunk/osgi/assembly/src/main/java/org/apache/sling/osgi/assembly/installer/VersionRange.java (original) +++ incubator/sling/trunk/osgi/assembly/src/main/java/org/apache/sling/osgi/assembly/installer/VersionRange.java Tue Jan 15 00:46:11 2008 @@ -18,6 +18,8 @@ import org.osgi.framework.Version; +import sun.security.action.GetLongAction; + public class VersionRange { /** @@ -184,9 +186,63 @@ return "(&(version" + op + "=" + v + ")(!(version=" + v + ")))"; } + @Override + public boolean equals(Object obj) { + if (obj == this) { + return true; + } else if (!(obj instanceof VersionRange)) { + return false; + } + + VersionRange other = (VersionRange) obj; + + if (!getLow().equals(other.getLow())) { + return false; + } + + if (isLowInclusive() != other.isLowInclusive()) { + return false; + } + + if (getHigh() == null) { + if (other.getHigh() != null) { + return false; + } + } else { + if (!getHigh().equals(other.getHigh())) { + return false; + } + } + + if (isHighInclusive() != other.isHighInclusive()) { + return false; + } + + // if all checks succeeded, the ranges are equal + return true; + } + + @Override + public int hashCode() { + int code = 17 * getLow().hashCode(); + if (isLowInclusive()) { + code += 33; + } + + if (getHigh() != null) { + code += 41 * getHigh().hashCode(); + if (isHighInclusive()) { + code += 11; + } + } + + return code; + } + /** * Returns a string representation of this version range. */ + @Override public String toString() { // return single version if there is no upper bound if (this.getHigh() == null) { Modified: incubator/sling/trunk/osgi/assembly/src/main/java/org/apache/sling/osgi/assembly/internal/InstallerImpl.java URL: http://svn.apache.org/viewvc/incubator/sling/trunk/osgi/assembly/src/main/java/org/apache/sling/osgi/assembly/internal/InstallerImpl.java?rev=612038&r1=612037&r2=612038&view=diff ============================================================================== --- incubator/sling/trunk/osgi/assembly/src/main/java/org/apache/sling/osgi/assembly/internal/InstallerImpl.java (original) +++ incubator/sling/trunk/osgi/assembly/src/main/java/org/apache/sling/osgi/assembly/internal/InstallerImpl.java Tue Jan 15 00:46:11 2008 @@ -392,7 +392,9 @@ * version range [a.b.c,a.b.d) is returned where * d = c + 1. */ - if (versionRange != null && versionRange.getHigh() == null) { + if (versionRange != null && versionRange.getHigh() == null + && !VersionRange.DEFAULT.equals(versionRange)) { + Version low = versionRange.getLow(); Version high = new Version(low.getMajor(), low.getMinor(), low.getMicro() + 1);