Author: thomas.diesler(a)jboss.com
Date: 2009-11-20 12:43:11 -0500 (Fri, 20 Nov 2009)
New Revision: 96648
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java
Log:
Fix return of PackageAdmin.resolveBundles()
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java
===================================================================
---
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java 2009-11-20
17:16:41 UTC (rev 96647)
+++
projects/jboss-osgi/trunk/reactor/framework/src/main/java/org/jboss/osgi/framework/service/internal/PackageAdminImpl.java 2009-11-20
17:43:11 UTC (rev 96648)
@@ -195,7 +195,7 @@
for (Bundle bundle : bundleArr)
{
if (bundle.getState() == Bundle.INSTALLED)
- unresolvedBundles.add(bundle);
+ unresolvedBundles.add(OSGiBundleState.assertBundleState(bundle));
}
}
Modified:
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java
===================================================================
---
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java 2009-11-20
17:16:41 UTC (rev 96647)
+++
projects/jboss-osgi/trunk/reactor/framework/src/test/java/org/jboss/test/osgi/resolver/AbstractImportExportTest.java 2009-11-20
17:43:11 UTC (rev 96648)
@@ -29,9 +29,6 @@
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
-import java.util.Arrays;
-import java.util.List;
-
import org.jboss.osgi.framework.resolver.ExportPackage;
import org.jboss.osgi.framework.resolver.ImportPackage;
import org.jboss.osgi.framework.resolver.Resolver;
@@ -67,7 +64,8 @@
{
// Resolve the installed bundles
PackageAdmin packageAdmin = getPackageAdmin();
- packageAdmin.resolveBundles(null);
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
// Verify bundle states
assertEquals("BundleA RESOLVED", Bundle.RESOLVED,
bundleA.getState());
@@ -100,7 +98,8 @@
{
// Resolve the installed bundles
PackageAdmin packageAdmin = getPackageAdmin();
- packageAdmin.resolveBundles(null);
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertFalse("Not all resolved", allResolved);
// Verify bundle states
assertEquals("BundleA INSTALLED", Bundle.INSTALLED,
bundleA.getState());
@@ -114,9 +113,6 @@
@Test
public void testExplicitBundleResolve() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in framework", 1,
getSystemContext().getBundles().length);
-
// Bundle-SymbolicName: simpleimport
// Import-Package: org.jboss.test.osgi.classloader.support.a
VirtualFile fileA = assembleBundle("bundleA",
"/bundles/resolver/simpleimport");
@@ -130,19 +126,20 @@
try
{
// Only resolve BundleB
- List<ResolverBundle> resolved = resolver.resolve(Arrays.asList(new
Bundle[] { bundleB }));
- assertEquals("BundleB resolved", 1, resolved.size());
- assertEquals(bundleB.getSymbolicName(), resolved.get(0).getSymbolicName());
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(new Bundle[] { bundleB });
+ assertTrue("All resolved", allResolved);
+
+ // Verify bundle states
+ assertEquals("BundleA INSTALLED", Bundle.INSTALLED,
bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED,
bundleB.getState());
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertFalse("BundleA not resolved", resBundleA.isResolved());
+ allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Resolve the installed bundles
- resolver.resolve(null);
-
- // Verify resBundle for bundleA
- assertTrue("BundleA resolved", resBundleA.isResolved());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED,
bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED,
bundleB.getState());
}
finally
{
@@ -158,28 +155,25 @@
@Test
public void testSelfImportPackage() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in framework", 1,
getSystemContext().getBundles().length);
-
// Bundle-SymbolicName: selfimport
// Export-Package: org.jboss.test.osgi.classloader.support.a
// Import-Package: org.jboss.test.osgi.classloader.support.a
- VirtualFile fileA = assembleBundle("bundleA",
"/bundles/resolver/selfimport");
+ VirtualFile fileA = assembleBundle("bundleA",
"/bundles/resolver/selfimport", A.class);
Bundle bundleA = framework.installBundle(fileA);
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
- ImportPackage importPackage =
resBundleA.getImportPackage(A.class.getPackage().getName());
- assertNotNull("Exporter not null", importPackage.getExporter());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED,
bundleA.getState());
- // Verify that bundleA is wired to the exporter
- ExportPackage exporter = resolver.getExporter(bundleA,
A.class.getPackage().getName());
- assertEquals(bundleA.getSymbolicName(), exporter.getOwner().getSymbolicName());
+ // Verify that the class was loaded from bundleB
+ Class<?> classA = bundleA.loadClass(A.class.getName());
+ Bundle loaderBundle = packageAdmin.getBundle(classA);
+ assertEquals(bundleA.getSymbolicName(), loaderBundle.getSymbolicName());
}
finally
{
@@ -190,9 +184,6 @@
@Test
public void testVersionImportPackage() throws Exception
{
- Resolver resolver = getTestResolver();
- assertEquals("No bundles in framework", 1,
getSystemContext().getBundles().length);
-
//Bundle-SymbolicName: packageimportversion
//Import-Package:
org.jboss.test.osgi.classloader.support.a;version="[0.0.0,1.0.0]"
VirtualFile fileA = assembleBundle("bundleA",
"/bundles/resolver/packageimportversion");
@@ -206,23 +197,18 @@
try
{
// Resolve the installed bundles
- resolver.resolve(null);
+ PackageAdmin packageAdmin = getPackageAdmin();
+ boolean allResolved = packageAdmin.resolveBundles(null);
+ assertTrue("All resolved", allResolved);
- // Verify resBundle for bundleA
- ResolverBundle resBundleA = resolver.getBundle(bundleA);
- assertTrue("BundleA resolved", resBundleA.isResolved());
- ImportPackage importPackage =
resBundleA.getImportPackage(A.class.getPackage().getName());
- assertNotNull("Exporter not null", importPackage.getExporter());
+ // Verify bundle states
+ assertEquals("BundleA RESOLVED", Bundle.RESOLVED,
bundleA.getState());
+ assertEquals("BundleB RESOLVED", Bundle.RESOLVED,
bundleB.getState());
- // Verify that bundleA is wired to the exporter
- ExportPackage exporter = resolver.getExporter(bundleA,
A.class.getPackage().getName());
- assertEquals(bundleB.getSymbolicName(),
exporter.getOwner().getSymbolicName());
-
- // Verify resBundle for bundleB
- ResolverBundle resBundleB = resolver.getBundle(bundleB);
- assertTrue("BundleB resolved", resBundleB.isResolved());
- ExportPackage exportPackage =
resBundleB.getExportPackage(A.class.getPackage().getName());
- assertEquals("Importers not null", 1,
exportPackage.getImporters().size());
+ // Verify that the class was loaded from bundleB
+ Class<?> classA = bundleA.loadClass(A.class.getName());
+ Bundle loaderBundle = packageAdmin.getBundle(classA);
+ assertEquals(bundleB.getSymbolicName(), loaderBundle.getSymbolicName());
}
finally
{