You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2008/01/15 09:46:22 UTC
svn commit: r612038 - in
/incubator/sling/trunk/osgi/assembly/src/main/java/org/apache/sling/osgi/assembly:
installer/VersionRange.java internal/InstallerImpl.java
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 <em>[a.b.c,a.b.d)</em> is returned where
* <em>d = c + 1</em>.
*/
- 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);