[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