FELIX-2244 Correctly accept VersionRange for Import-Package headers of installed (not resolved) bundles.
plus: depend on released versions of the utils library and bundlrepository bundle

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@930501 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/webconsole/pom.xml b/webconsole/pom.xml
index 187a99c..9398d59 100644
--- a/webconsole/pom.xml
+++ b/webconsole/pom.xml
@@ -122,6 +122,7 @@
                         <Embed-Dependency>
                             <!-- Import/Export-Package parsing -->
                             org.apache.felix.utils;inline=org/apache/felix/utils/manifest/**,
+                            org.apache.felix.framework;inline=org/apache/felix/framework/util/VersionRange**,
                             
                             <!-- ServiceTracker -->
                             org.osgi.compendium;
@@ -184,7 +185,8 @@
                                         <_donotcopy>LICENSE.json</_donotcopy>
                                         <!-- <_donotcopy>(LICENSE.json|NOTICE.bare)</_donotcopy> -->
                                         <Embed-Dependency>
-                                            org.apache.felix.utils;inline=org/apache/felix/utils/manifest/**
+                                            org.apache.felix.utils;inline=org/apache/felix/utils/manifest/**,
+                                            org.apache.felix.framework;inline=org/apache/felix/framework/util/VersionRange**
                                         </Embed-Dependency>
                                     </instructions>
                                 </configuration>
@@ -248,11 +250,23 @@
             <scope>provided</scope>
         </dependency>
 
+        <!--
+           Required for a simple VersionRange class, the class from
+           the utils bundle is overkill and requires JDK 1.4 or better
+        -->
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.framework</artifactId>
+            <version>2.0.2</version>
+            <scope>provided</scope>
+            <optional>true</optional>
+        </dependency>
+
         <!--  Parsing Import/Export-Package headers -->
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.utils</artifactId>
-            <version>0.1.0-SNAPSHOT</version>
+            <version>1.0.0</version>
             <scope>provided</scope>
             <optional>true</optional>
         </dependency>
@@ -267,7 +281,7 @@
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.bundlerepository</artifactId>
-            <version>1.5.0-SNAPSHOT</version>
+            <version>1.6.0</version>
             <scope>provided</scope>
             <optional>true</optional>
         </dependency>
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java
index b3abff1..f8d3831 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java
@@ -44,6 +44,7 @@
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.fileupload.FileItem;
+import org.apache.felix.framework.util.VersionRange;
 import org.apache.felix.utils.manifest.Clause;
 import org.apache.felix.utils.manifest.Parser;
 import org.apache.felix.webconsole.AbstractWebConsolePlugin;
@@ -1278,8 +1279,15 @@
     {
         if ( imported.getName().equals( exported.getName() ) )
         {
-            Version required = Version.parseVersion( imported.getAttribute( Constants.VERSION_ATTRIBUTE ) );
-            return exported.getVersion().compareTo( required ) > 0;
+            String versionAttr = imported.getAttribute( Constants.VERSION_ATTRIBUTE );
+            if ( versionAttr == null )
+            {
+                // no specific version required, this export surely satisfies it
+                return true;
+            }
+
+            VersionRange required = VersionRange.parse( versionAttr );
+            return required.isInRange( exported.getVersion() );
         }
 
         // no this export does not satisfy the import