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