DynamicImport-Package takes presendence over embedded classes
thomas.diesler Jun 15, 2010 7:56 AMWorking on https://jira.jboss.org/browse/JBOSGI-323 I see the following when BundleA, which has a DynamicImport-Package: *, tries to load B.class from BundleB
2010-06-15 13:42:29,835 TRACE [org.jboss.classloader.spi.base.BaseClassLoader] OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} unlock Thread[main,5,main] holding=1 2010-06-15 13:42:29,841 TRACE [org.jboss.classloader.spi.base.BaseClassLoader] OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} loadClass org.jboss.test.osgi.classloader.support.b.B resolve=false 2010-06-15 13:42:29,841 TRACE [org.jboss.classloader.spi.base.BaseClassLoader] OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} aquireLockFairly Thread[main,5,main] 2010-06-15 13:42:29,841 TRACE [org.jboss.classloader.spi.base.BaseClassLoader] OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} aquiredLock Thread[main,5,main] holding=1 2010-06-15 13:42:29,841 TRACE [org.jboss.classloader.spi.base.BaseClassLoader] OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} load from domain org.jboss.test.osgi.classloader.support.b.B domain=OSGiClassLoaderDomain@6762ba99{OSGiClassLoaderDomain} 2010-06-15 13:42:29,841 TRACE [org.jboss.classloader.spi.base.BaseClassLoaderDomain] OSGiClassLoaderDomain@6762ba99{OSGiClassLoaderDomain} findLoader org/jboss/test/osgi/classloader/support/b/B.class classLoader=OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} allExports=false findInParent=true 2010-06-15 13:42:29,841 TRACE [org.jboss.classloader.spi.ClassLoaderDomain] OSGiClassLoaderDomain@6762ba99{OSGiClassLoaderDomain} org/jboss/test/osgi/classloader/support/b/B.class matches parent beforeFilter=<EVERYTHING> 2010-06-15 13:42:29,841 TRACE [org.jboss.classloader.spi.ClassLoaderDomain] OSGiClassLoaderDomain@6762ba99{OSGiClassLoaderDomain} load from parent org/jboss/test/osgi/classloader/support/b/B.class parent=ClassLoaderDomain@6a40afb9{DefaultDomain} 2010-06-15 13:42:29,841 TRACE [org.jboss.classloader.spi.base.BaseClassLoaderDomain] ClassLoaderDomain@6a40afb9{DefaultDomain} findLoader org/jboss/test/osgi/classloader/support/b/B.class classLoader=null allExports=true findInParent=true 2010-06-15 13:42:29,841 TRACE [org.jboss.classloader.spi.ClassLoaderDomain] ClassLoaderDomain@6a40afb9{DefaultDomain} org/jboss/test/osgi/classloader/support/b/B.class does NOT match parent beforeFilter=[java], OSGI_CORE, [javax.imageio, javax.imageio.stream, javax.management, javax.management.loading, javax.management.modelmbean, javax.management.monitor, javax.management.openmbean, javax.management.relation, javax.management.remote, javax.management.remote.rmi, javax.management.timer, javax.naming, javax.naming.event, javax.naming.spi, javax.net, javax.net.ssl, javax.security.cert, javax.xml.datatype, javax.xml.namespace, javax.xml.parsers, javax.xml.transform, javax.xml.transform.dom, javax.xml.transform.sax, javax.xml.transform.stream, javax.xml.validation, org.apache.log4j, org.jboss.beans.metadata.plugins.builder, org.jboss.beans.metadata.plugins, org.jboss.beans.metadata.spi.builder, org.jboss.beans.metadata.spi, org.jboss.dependency.spi, org.jboss.kernel.spi.dependency, org.jboss.logging, org.jboss.osgi.deployment.deployer, org.jboss.osgi.deployment.interceptor, org.jboss.osgi.spi.capability, org.jboss.osgi.spi.framework, org.jboss.osgi.spi.service, org.jboss.osgi.spi.util, org.jboss.osgi.spi, org.jboss.osgi.testing, org.osgi.framework, org.osgi.framework.hooks, org.osgi.framework.hooks.service, org.osgi.framework.launch, org.osgi.service.condpermadmin, org.osgi.service.packageadmin, org.osgi.service.permissionadmin, org.osgi.service.startlevel, org.osgi.service.url, org.w3c.dom, org.w3c.dom.bootstrap, org.w3c.dom.events, org.w3c.dom.ls, org.w3c.dom.ranges, org.w3c.dom.traversal, org.w3c.dom.views, org.xml.sax, org.xml.sax.ext, org.xml.sax.helpers] 2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.base.BaseClassLoaderDomain] ClassLoaderDomain@6a40afb9{DefaultDomain} trying to load org/jboss/test/osgi/classloader/support/b/B.class from all exports of package org.jboss.test.osgi.classloader.support.b null 2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.ClassLoaderDomain] ClassLoaderDomain@6a40afb9{DefaultDomain} org/jboss/test/osgi/classloader/support/b/B.class does NOT match parent afterFilter=<NOTHING> 2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.base.BaseClassLoaderDomain] OSGiClassLoaderDomain@6762ba99{OSGiClassLoaderDomain} not loading org/jboss/test/osgi/classloader/support/b/B.class from all exports 2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.base.BaseClassLoaderDomain] OSGiClassLoaderDomain@6762ba99{OSGiClassLoaderDomain} not loading org/jboss/test/osgi/classloader/support/b/B.class from imports it has no delegates 2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.base.BaseClassLoaderDomain] OSGiClassLoaderDomain@6762ba99{OSGiClassLoaderDomain} trying to load org/jboss/test/osgi/classloader/support/b/B.class from requesting OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} 2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.base.BaseClassLoader] OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} get resource locally org/jboss/test/osgi/classloader/support/b/B.class 2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.base.BaseClassLoader] OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} resource not found locally org/jboss/test/osgi/classloader/support/b/B.class 2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.base.BaseClassLoaderDomain] OSGiClassLoaderDomain@6762ba99{OSGiClassLoaderDomain} trying to load org/jboss/test/osgi/classloader/support/b/B.class from import WildcardDelegateLoader@5ee04fd{delegate=OSGiClassLoaderPolicy@3458213c{jbosgi323-bundleA-0.0.0}} for OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} 2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.filter.FilteredDelegateLoader] WildcardDelegateLoader@5ee04fd{delegate=OSGiClassLoaderPolicy@3458213c{jbosgi323-bundleA-0.0.0}} org/jboss/test/osgi/classloader/support/b/B.class matches resource filter=<EVERYTHING> 2010-06-15 13:42:29,842 TRACE [org.jboss.classloading.spi.dependency.ClassLoadingSpace] OSGiModule jbosgi323-bundleA:0.0.0 resolving org.jboss.classloading.spi.dependency.ClassLoadingSpace@43da850 2010-06-15 13:42:29,842 TRACE [org.jboss.classloader.spi.ClassLoaderDomain] OSGiClassLoaderDomain@6762ba99{OSGiClassLoaderDomain} org/jboss/test/osgi/classloader/support/b/B.class does NOT match parent afterFilter=<NOTHING> 2010-06-15 13:42:29,844 TRACE [org.jboss.classloader.spi.base.BaseClassLoader] OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} unlock Thread[main,5,main] holding=1 2010-06-15 13:42:29,844 TRACE [org.jboss.classloader.spi.base.BaseClassLoader] OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} class not found org.jboss.test.osgi.classloader.support.b.B 2010-06-15 13:42:29,845 ERROR [org.jboss.osgi.testing.OSGiTestHelper] Unexpected ClassNotFoundException for: jbosgi323-bundleA loads org.jboss.test.osgi.classloader.support.b.B java.lang.ClassNotFoundException: org.jboss.test.osgi.classloader.support.b.B from OSGiBundleClassLoader@b09dc35{jbosgi323-bundleA-0.0.0} at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:480) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at org.jboss.osgi.framework.bundle.OSGiBundleState.loadClass(OSGiBundleState.java:190) at org.jboss.osgi.framework.bundle.OSGiBundleWrapper.loadClass(OSGiBundleWrapper.java:171) at org.jboss.osgi.testing.OSGiTestHelper.assertLoadClass(OSGiTestHelper.java:278) at org.jboss.osgi.testing.OSGiTest.assertLoadClass(OSGiTest.java:213) at org.jboss.osgi.testing.OSGiFrameworkTest.assertLoadClass(OSGiFrameworkTest.java:193) at org.jboss.test.osgi.core.jbosgi323.OSGi323TestCase.testDynamicImportWithWildcard(OSGi323TestCase.java:196)
This used to work with jboss-cl-2.0.0.Alpha5
Could you quickly explain how the refactoring around dynamic imports and in particular about WildcardDelegateLoader is suposed to work?
cheers