[jboss-osgi-commits] JBoss-OSGI SVN: r93059 - in projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing: internal and 1 other directory.

jboss-osgi-commits at lists.jboss.org jboss-osgi-commits at lists.jboss.org
Tue Sep 1 02:46:08 EDT 2009


Author: thomas.diesler at jboss.com
Date: 2009-09-01 02:46:07 -0400 (Tue, 01 Sep 2009)
New Revision: 93059

Modified:
   projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/OSGiBundle.java
   projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/internal/EmbeddedBundle.java
   projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/internal/EmbeddedRuntime.java
   projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/internal/OSGiRuntimeImpl.java
   projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/internal/RemoteBundle.java
Log:
Use Bundle.getVersion(). Better error handling on getBundle() after install.

Modified: projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/OSGiBundle.java
===================================================================
--- projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/OSGiBundle.java	2009-09-01 06:21:54 UTC (rev 93058)
+++ projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/OSGiBundle.java	2009-09-01 06:46:07 UTC (rev 93059)
@@ -25,6 +25,7 @@
 
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleException;
+import org.osgi.framework.Version;
 
 /**
  * An abstraction of an OSGi {@link Bundle}.
@@ -45,9 +46,9 @@
    public abstract String getSymbolicName();
 
    /**
-    * Returns the version of this bundle as specified by its Bundle-Version manifest header.
+    * Returns the version of this bundle.
     */
-   public abstract String getVersion();
+   public abstract Version getVersion();
    
    /**
     * Returns this bundle's Manifest headers and values.

Modified: projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/internal/EmbeddedBundle.java
===================================================================
--- projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/internal/EmbeddedBundle.java	2009-09-01 06:21:54 UTC (rev 93058)
+++ projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/internal/EmbeddedBundle.java	2009-09-01 06:46:07 UTC (rev 93059)
@@ -27,7 +27,7 @@
 import org.jboss.osgi.spi.testing.OSGiBundle;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleException;
-import org.osgi.framework.Constants;
+import org.osgi.framework.Version;
 
 /**
  * An OSGi Test Case
@@ -64,9 +64,9 @@
    }
 
    @Override
-   public String getVersion()
+   public Version getVersion()
    {
-      return getHeaders().get(Constants.BUNDLE_VERSION);
+      return bundle.getVersion();
    }
 
    @Override

Modified: projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/internal/EmbeddedRuntime.java
===================================================================
--- projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/internal/EmbeddedRuntime.java	2009-09-01 06:21:54 UTC (rev 93058)
+++ projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/internal/EmbeddedRuntime.java	2009-09-01 06:46:07 UTC (rev 93059)
@@ -77,7 +77,7 @@
       {
          DeployerService service = (DeployerService)context.getService(sref);
          service.deploy(bundleURL);
-         bundle = getBundle(symbolicName, version);
+         bundle = getBundle(symbolicName, version, true);
       }
       else
       {

Modified: projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/internal/OSGiRuntimeImpl.java
===================================================================
--- projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/internal/OSGiRuntimeImpl.java	2009-09-01 06:21:54 UTC (rev 93058)
+++ projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/internal/OSGiRuntimeImpl.java	2009-09-01 06:46:07 UTC (rev 93059)
@@ -25,6 +25,7 @@
 import java.io.IOException;
 import java.net.URL;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -49,6 +50,7 @@
 import org.osgi.framework.BundleException;
 import org.osgi.framework.Constants;
 import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.Version;
 
 /**
  * An abstract implementation of the {@link OSGiRuntime}
@@ -184,21 +186,33 @@
 
    public OSGiBundle getBundle(String symbolicName, String version)
    {
+      OSGiBundle bundle = getBundle(symbolicName, version, false);
+      return bundle;
+   }
+
+   protected OSGiBundle getBundle(String symbolicName, String versionStr, boolean mustExist)
+   {
       OSGiBundle bundle = null;
-      for (OSGiBundle aux : getBundles())
+      Version version = Version.parseVersion(versionStr);
+      List<OSGiBundle> bundles = Arrays.asList(getBundles());
+      for (OSGiBundle aux : bundles)
       {
          if (aux.getSymbolicName().equals(symbolicName))
          {
-            if (version == null || version.equals(aux.getVersion()))
+            if (versionStr == null || version.equals(aux.getVersion()))
             {
                bundle = aux;
                break;
             }
          }
       }
+      
+      if (bundle == null && mustExist == true)
+         throw new IllegalStateException("Cannot obtain bundle: " + symbolicName + "-" + version + ". We have " + bundles);
+      
       return bundle;
    }
-
+   
    protected String getManifestEntry(String location, String key)
    {
       Manifest manifest = getManifest(location);

Modified: projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/internal/RemoteBundle.java
===================================================================
--- projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/internal/RemoteBundle.java	2009-09-01 06:21:54 UTC (rev 93058)
+++ projects/jboss-osgi/projects/spi/trunk/src/main/java/org/jboss/osgi/spi/testing/internal/RemoteBundle.java	2009-09-01 06:46:07 UTC (rev 93059)
@@ -29,6 +29,7 @@
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleException;
 import org.osgi.framework.Constants;
+import org.osgi.framework.Version;
 
 /**
  * An implementation of a remote {@link OSGiBundle}
@@ -48,7 +49,7 @@
 
    private long bundleId;
    private String symbolicName;
-   private String version;
+   private Version version;
    
    public RemoteBundle(OSGiRuntimeImpl runtime, ManagedBundleMBean bundle, String location)
    {
@@ -58,7 +59,9 @@
       
       this.bundleId = bundle.getBundleId();
       this.symbolicName = bundle.getSymbolicName();
-      this.version = getHeaders().get(Constants.BUNDLE_VERSION);
+      
+      String versionStr = getHeaders().get(Constants.BUNDLE_VERSION);
+      this.version = Version.parseVersion(versionStr);
    }
 
    @Override
@@ -80,7 +83,7 @@
    }
 
    @Override
-   public String getVersion()
+   public Version getVersion()
    {
       return version;
    }



More information about the jboss-osgi-commits mailing list