You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by fm...@apache.org on 2010/04/03 11:55:38 UTC

svn commit: r930501 - in /felix/trunk/webconsole: pom.xml src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java

Author: fmeschbe
Date: Sat Apr  3 09:55:38 2010
New Revision: 930501

URL: http://svn.apache.org/viewvc?rev=930501&view=rev
Log:
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

Modified:
    felix/trunk/webconsole/pom.xml
    felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java

Modified: felix/trunk/webconsole/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/webconsole/pom.xml?rev=930501&r1=930500&r2=930501&view=diff
==============================================================================
--- felix/trunk/webconsole/pom.xml (original)
+++ felix/trunk/webconsole/pom.xml Sat Apr  3 09:55:38 2010
@@ -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>

Modified: felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java
URL: http://svn.apache.org/viewvc/felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java?rev=930501&r1=930500&r2=930501&view=diff
==============================================================================
--- felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java (original)
+++ felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/core/BundlesServlet.java Sat Apr  3 09:55:38 2010
@@ -44,6 +44,7 @@ import javax.servlet.http.HttpServletReq
 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 @@ public class BundlesServlet extends Simp
     {
         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