You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by jw...@apache.org on 2011/10/21 20:26:01 UTC
svn commit: r1187486 - in
/aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core:
archive/SubsystemContentHeader.java archive/VersionRangeAttribute.java
internal/OsgiIdentityRequirement.java
Author: jwross
Date: Fri Oct 21 18:26:00 2011
New Revision: 1187486
URL: http://svn.apache.org/viewvc?rev=1187486&view=rev
Log:
ARIES-763: Remove OSGi VersionRange dependency.
Removed dependency on org.osgi.framework.VersionRange. Replaced with org.apache.aries.util.VersionRange.
Modified:
aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/archive/SubsystemContentHeader.java
aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/archive/VersionRangeAttribute.java
aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/OsgiIdentityRequirement.java
Modified: aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/archive/SubsystemContentHeader.java
URL: http://svn.apache.org/viewvc/aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/archive/SubsystemContentHeader.java?rev=1187486&r1=1187485&r2=1187486&view=diff
==============================================================================
--- aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/archive/SubsystemContentHeader.java (original)
+++ aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/archive/SubsystemContentHeader.java Fri Oct 21 18:26:00 2011
@@ -19,9 +19,9 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.List;
+import org.apache.aries.util.VersionRange;
import org.osgi.framework.Constants;
import org.osgi.framework.Version;
-import org.osgi.framework.VersionRange;
public class SubsystemContentHeader extends AbstractHeader {
public static class Content {
Modified: aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/archive/VersionRangeAttribute.java
URL: http://svn.apache.org/viewvc/aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/archive/VersionRangeAttribute.java?rev=1187486&r1=1187485&r2=1187486&view=diff
==============================================================================
--- aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/archive/VersionRangeAttribute.java (original)
+++ aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/archive/VersionRangeAttribute.java Fri Oct 21 18:26:00 2011
@@ -13,11 +13,32 @@
*/
package org.apache.aries.subsystem.core.archive;
+import org.apache.aries.util.VersionRange;
import org.osgi.framework.Constants;
import org.osgi.framework.Version;
-import org.osgi.framework.VersionRange;
public class VersionRangeAttribute extends AbstractAttribute {
+ public static String toFilterString(VersionRange range) {
+ String version = Constants.VERSION_ATTRIBUTE;
+ Version min = range.getMinimumVersion();
+ Version max = range.getMaximumVersion();
+ StringBuilder sb = new StringBuilder();
+ if (max != null)
+ sb.append("(&");
+ if (range.isMinimumExclusive())
+ sb.append("(!(").append(version).append("<=").append(min).append("))");
+ else
+ sb.append('(').append(version).append(">=").append(min).append(')');
+ if (max != null) {
+ if (range.isMaximumExclusive())
+ sb.append("(!(").append(version).append(">=").append(range.getMaximumVersion()).append("))");
+ else
+ sb.append('(').append(version).append("<=").append(max).append(')');
+ sb.append(')');
+ }
+ return sb.toString();
+ }
+
private final VersionRange range;
public VersionRangeAttribute() {
@@ -31,7 +52,7 @@ public class VersionRangeAttribute exten
}
public StringBuilder appendToFilter(StringBuilder builder) {
- return builder.append(range.toFilterString(Constants.VERSION_ATTRIBUTE));
+ return builder.append(toFilterString(range));
}
public VersionRange getVersionRange() {
Modified: aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/OsgiIdentityRequirement.java
URL: http://svn.apache.org/viewvc/aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/OsgiIdentityRequirement.java?rev=1187486&r1=1187485&r2=1187486&view=diff
==============================================================================
--- aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/OsgiIdentityRequirement.java (original)
+++ aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/OsgiIdentityRequirement.java Fri Oct 21 18:26:00 2011
@@ -17,12 +17,13 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
+import org.apache.aries.subsystem.core.archive.VersionRangeAttribute;
+import org.apache.aries.util.VersionRange;
import org.osgi.framework.Constants;
import org.osgi.framework.Filter;
import org.osgi.framework.FrameworkUtil;
import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.Version;
-import org.osgi.framework.VersionRange;
import org.osgi.framework.resource.Capability;
import org.osgi.framework.resource.Requirement;
import org.osgi.framework.resource.Resource;
@@ -46,7 +47,7 @@ public class OsgiIdentityRequirement imp
private static Filter createFilter(String symbolicName, VersionRange versionRange, String type) {
return createFilter(
symbolicName,
- versionRange.toFilterString(ResourceConstants.IDENTITY_VERSION_ATTRIBUTE),
+ VersionRangeAttribute.toFilterString(versionRange),
type);
}