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

jboss-osgi-commits at lists.jboss.org jboss-osgi-commits at lists.jboss.org
Tue Jan 12 08:53:14 EST 2010


Author: thomas.diesler at jboss.com
Date: 2010-01-12 08:53:12 -0500 (Tue, 12 Jan 2010)
New Revision: 99282

Modified:
   projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/OSGiPackageAdmin.java
   projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/EmbeddedBundle.java
   projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/EmbeddedPackageAdmin.java
   projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/EmbeddedRuntime.java
   projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteBundle.java
   projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/RemotePackageAdmin.java
Log:
Add PackageAdmin.resolveBundles()

Modified: projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/OSGiPackageAdmin.java
===================================================================
--- projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/OSGiPackageAdmin.java	2010-01-12 13:49:21 UTC (rev 99281)
+++ projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/OSGiPackageAdmin.java	2010-01-12 13:53:12 UTC (rev 99282)
@@ -42,4 +42,14 @@
     * or null for all bundles updated or uninstalled since the last call to this method. 
     */
    void refreshPackages(OSGiBundle[] bundles);
+
+   /**
+    * Resolve the specified bundles.
+    * 
+    * @see {@link PackageAdmin#resolveBundles(org.osgi.framework.Bundle[])}
+    * 
+    * @param bundles The bundles to resolve or null to resolve all unresolved bundles installed in the Framework.
+    * @return true if all specified bundles are resolved 
+    */
+   boolean resolveBundles(OSGiBundle[] bundles);
 }

Modified: projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/EmbeddedBundle.java
===================================================================
--- projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/EmbeddedBundle.java	2010-01-12 13:49:21 UTC (rev 99281)
+++ projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/EmbeddedBundle.java	2010-01-12 13:53:12 UTC (rev 99282)
@@ -147,7 +147,7 @@
       assertNotUninstalled();
       try
       {
-         BundleContext context = ((EmbeddedRuntime)getRuntime()).getBundleContext();
+         BundleContext context = ((EmbeddedRuntime)getRuntime()).getSystemContext();
          ServiceReference sref = context.getServiceReference(DeployerService.class.getName());
          if (sref != null)
          {

Modified: projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/EmbeddedPackageAdmin.java
===================================================================
--- projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/EmbeddedPackageAdmin.java	2010-01-12 13:49:21 UTC (rev 99281)
+++ projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/EmbeddedPackageAdmin.java	2010-01-12 13:53:12 UTC (rev 99282)
@@ -34,15 +34,27 @@
  */
 public class EmbeddedPackageAdmin implements OSGiPackageAdmin
 {
-   private PackageAdmin packAdmin;
+   private PackageAdmin delegate;
 
    public EmbeddedPackageAdmin(PackageAdmin packAdmin)
    {
-      this.packAdmin = packAdmin;
+      this.delegate = packAdmin;
    }
 
+   public boolean resolveBundles(OSGiBundle[] bundles)
+   {
+      Bundle[] bundleArr = getBundles(bundles);
+      return delegate.resolveBundles(bundleArr);
+   }
+
    public void refreshPackages(OSGiBundle[] bundles)
    {
+      Bundle[] bundleArr = getBundles(bundles);
+      delegate.refreshPackages(bundleArr);
+   }
+
+   private Bundle[] getBundles(OSGiBundle[] bundles)
+   {
       Bundle[] bundleArr = null;
       if (bundles != null)
       {
@@ -52,6 +64,6 @@
             bundleArr[i] = ((EmbeddedBundle)bundles[i]).getBundle();
          }
       }
-      packAdmin.refreshPackages(bundleArr);
+      return bundleArr;
    }
 }

Modified: projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/EmbeddedRuntime.java
===================================================================
--- projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/EmbeddedRuntime.java	2010-01-12 13:49:21 UTC (rev 99281)
+++ projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/EmbeddedRuntime.java	2010-01-12 13:53:12 UTC (rev 99282)
@@ -74,7 +74,7 @@
 
       OSGiBundle bundle;
 
-      BundleContext context = getBundleContext();
+      BundleContext context = getSystemContext();
       ServiceReference sref = context.getServiceReference(DeployerService.class.getName());
       if (sref != null)
       {
@@ -95,7 +95,7 @@
    public OSGiBundle[] getBundles()
    {
       List<OSGiBundle> absBundles = new ArrayList<OSGiBundle>();
-      for (Bundle bundle : getBundleContext().getBundles())
+      for (Bundle bundle : getSystemContext().getBundles())
       {
          absBundles.add(new EmbeddedBundle(this, bundle));
       }
@@ -106,13 +106,13 @@
 
    public OSGiBundle getBundle(long bundleId)
    {
-      Bundle bundle = getBundleContext().getBundle(bundleId);
+      Bundle bundle = getSystemContext().getBundle(bundleId);
       return bundle != null ? new EmbeddedBundle(this, bundle) : null;
    }
 
    public OSGiServiceReference getServiceReference(String clazz)
    {
-      ServiceReference sref = getBundleContext().getServiceReference(clazz);
+      ServiceReference sref = getSystemContext().getServiceReference(clazz);
       return (sref != null ? new EmbeddedServiceReference(sref) : null);
    }
 
@@ -123,7 +123,7 @@
       ServiceReference[] srefs;
       try
       {
-         srefs = getBundleContext().getServiceReferences(clazz, filter);
+         srefs = getSystemContext().getServiceReferences(clazz, filter);
       }
       catch (InvalidSyntaxException e)
       {
@@ -179,25 +179,6 @@
       }
    }
 
-   public BundleContext getBundleContext()
-   {
-      OSGiBootstrapProvider bootProvider = getTestHelper().getBootstrapProvider();
-      Framework framework = bootProvider.getFramework();
-      if (framework.getState() != Bundle.ACTIVE)
-      {
-         try
-         {
-            log.debug("Framework start: " + framework);
-            framework.start();
-         }
-         catch (BundleException ex)
-         {
-            throw new IllegalStateException("Cannot start framework", ex);
-         }
-      }
-      return framework.getBundleContext();
-   }
-
    @SuppressWarnings("unchecked")
    public MBeanServerConnection getMBeanServer()
    {
@@ -217,7 +198,7 @@
 
    public OSGiPackageAdmin getPackageAdmin()
    {
-      BundleContext context = getBundleContext();
+      BundleContext context = getSystemContext();
       ServiceReference sref = context.getServiceReference(PackageAdmin.class.getName());
       PackageAdmin packAdmin = (PackageAdmin)context.getService(sref);
       return new EmbeddedPackageAdmin(packAdmin);
@@ -227,4 +208,23 @@
    {
       return false;
    }
+   
+   BundleContext getSystemContext()
+   {
+      OSGiBootstrapProvider bootProvider = getTestHelper().getBootstrapProvider();
+      Framework framework = bootProvider.getFramework();
+      if (framework.getState() != Bundle.ACTIVE)
+      {
+         try
+         {
+            log.debug("Framework start: " + framework);
+            framework.start();
+         }
+         catch (BundleException ex)
+         {
+            throw new IllegalStateException("Cannot start framework", ex);
+         }
+      }
+      return framework.getBundleContext();
+   }
 }

Modified: projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteBundle.java
===================================================================
--- projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteBundle.java	2010-01-12 13:49:21 UTC (rev 99281)
+++ projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/RemoteBundle.java	2010-01-12 13:53:12 UTC (rev 99282)
@@ -23,6 +23,7 @@
 
 // $Id$
 
+import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Dictionary;
 
@@ -130,14 +131,14 @@
    public URL getEntry(String path)
    {
       assertNotUninstalled();
-      return bundle.getEntry(path);
+      return toURL(bundle.getEntry(path));
    }
 
    @Override
    public URL getResource(String name)
    {
       assertNotUninstalled();
-      return bundle.getResource(name);
+      return toURL(bundle.getResource(name));
    }
 
    @Override
@@ -182,4 +183,16 @@
          log.error("Cannot uninstall: " + getLocation(), ex);
       }
    }
+   
+   private URL toURL(String urlstr)
+   {
+      try
+      {
+         return urlstr != null ? new URL(urlstr) : null;
+      }
+      catch (MalformedURLException ex)
+      {
+         throw new IllegalArgumentException("Invalid URL: " + urlstr);
+      }
+   }
 }

Modified: projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/RemotePackageAdmin.java
===================================================================
--- projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/RemotePackageAdmin.java	2010-01-12 13:49:21 UTC (rev 99281)
+++ projects/jboss-osgi/projects/bundles/husky/trunk/src/main/java/org/jboss/osgi/testing/internal/RemotePackageAdmin.java	2010-01-12 13:53:12 UTC (rev 99282)
@@ -46,8 +46,36 @@
       this.runtime = runtime;
    }
 
+   public boolean resolveBundles(OSGiBundle[] bundles)
+   {
+      ObjectName[] bundleArr = getBundleNames(bundles);
+      try
+      {
+         ManagedFrameworkMBean mbeanProxy = MBeanProxy.get(ManagedFrameworkMBean.class, ManagedFrameworkMBean.MBEAN_MANAGED_FRAMEWORK, runtime.getMBeanServer());
+         return mbeanProxy.resolveBundles(bundleArr);
+      }
+      catch (MBeanProxyException ex)
+      {
+         throw new IllegalStateException("Cannot refresh packages", ex);
+      }
+   }
+
    public void refreshPackages(OSGiBundle[] bundles)
    {
+      ObjectName[] bundleArr = getBundleNames(bundles);
+      try
+      {
+         ManagedFrameworkMBean mbeanProxy = MBeanProxy.get(ManagedFrameworkMBean.class, ManagedFrameworkMBean.MBEAN_MANAGED_FRAMEWORK, runtime.getMBeanServer());
+         mbeanProxy.refreshPackages(bundleArr);
+      }
+      catch (MBeanProxyException ex)
+      {
+         throw new IllegalStateException("Cannot refresh packages", ex);
+      }
+   }
+
+   private ObjectName[] getBundleNames(OSGiBundle[] bundles)
+   {
       ObjectName[] bundleArr = null;
       if (bundles != null)
       {
@@ -61,14 +89,6 @@
             bundleArr[i] = ManagedBundle.getObjectName(id, symbolicName, version);
          }
       }
-      try
-      {
-         ManagedFrameworkMBean mbeanProxy = MBeanProxy.get(ManagedFrameworkMBean.class, ManagedFrameworkMBean.MBEAN_MANAGED_FRAMEWORK, runtime.getMBeanServer());
-         mbeanProxy.refreshPackages(bundleArr);
-      }
-      catch (MBeanProxyException ex)
-      {
-         throw new IllegalStateException("Cannot refresh packages", ex);
-      }
+      return bundleArr;
    }
 }



More information about the jboss-osgi-commits mailing list