The class calling the library is calling it from a static context. Just before the library call I obtained the calling class's classloader, which has the following URLS:
[file:/D:/myartifact/generated/target/classes/, file:/C:/mavenrepo_artifactory/org/freemarker/freemarker/2.3.13/freemarker-2.3.13.jar, file:/C:/mavenrepo_artifactory/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar, file:/C:/mavenrepo_artifactory/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar, file:/C:/mavenrepo_artifactory/xpp3/xpp3/1.1.4c/xpp3-1.1.4c.jar, file:/C:/mavenrepo_artifactory/log4j/log4j/1.2.15/log4j-1.2.15.jar, file:/C:/mavenrepo_artifactory/javax/mail/mail/1.4/mail-1.4.jar, file:/C:/mavenrepo_artifactory/javax/activation/activation/1.1/activation-1.1.jar, file:/C:/mavenrepo_artifactory/javax/jms/jms/1.1/jms-1.1.jar, file:/C:/mavenrepo_artifactory/com/sun/jdmk/jmxtools/1.2.1/jmxtools-1.2.1.jar, file:/C:/mavenrepo_artifactory/com/sun/jmx/jmxri/1.2.1/jmxri-1.2.1.jar, file:/C:/mavenrepo_artifactory/asm/asm/3.0_RC1/asm-3.0_RC1.jar, file:/C:/mavenrepo_artifactory/org/springframework/spring/2.5.5/spring-2.5.5.jar, file:/C:/mavenrepo_artifactory/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar, file:/C:/mavenrepo_artifactory/commons-digester/commons-digester/1.8/commons-digester-1.8.jar, file:/C:/mavenrepo_artifactory/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar, file:/C:/mavenrepo_artifactory/mysql/mysql-connector-java/3.1.12/mysql-connector-java-3.1.12.jar, file:/C:/mavenrepo_artifactory/commons-lang/commons-lang/2.4/commons-lang-2.4.jar, file:/C:/mavenrepo_artifactory/random/bossa/0.8.0/bossa-0.8.0.jar, file:/C:/mavenrepo_artifactory/random/concurrent/1.0/concurrent-1.0.jar, file:/C:/mavenrepo_artifactory/random/db-ojb/1.0/db-ojb-1.0.jar, file:/C:/mavenrepo_artifactory/random/glue/1.0/glue-1.0.jar, When I look at the urls available to the library's classloader, just before the classnotfound exception, I see the following: [file:/C:/mavenrepo_artifactory/org/codehaus/groovy/maven/gmaven-plugin/1.0-rc-2/gmaven-plugin-1.0-rc-2.jar, file:/C:/mavenrepo_artifactory/org/codehaus/groovy/maven/runtime/gmaven-runtime-api/1.0-rc-2/gmaven-runtime-api-1.0-rc-2.jar, file:/C:/mavenrepo_artifactory/org/codehaus/groovy/maven/feature/gmaven-feature-api/1.0-rc-2/gmaven-feature-api-1.0-rc-2.jar, file:/C:/mavenrepo_artifactory/org/codehaus/groovy/maven/runtime/gmaven-runtime-loader/1.0-rc-2/gmaven-runtime-loader-1.0-rc-2.jar, file:/C:/mavenrepo_artifactory/org/slf4j/slf4j-api/1.5.0/slf4j-api-1.5.0.jar, file:/C:/mavenrepo_artifactory/org/codehaus/groovy/maven/feature/gmaven-feature-support/1.0-rc-2/gmaven-feature-support-1.0-rc-2.jar, file:/C:/mavenrepo_artifactory/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar, file:/C:/mavenrepo_artifactory/commons-lang/commons-lang/2.3/commons-lang-2.3.jar, file:/C:/mavenrepo_artifactory/org/codehaus/groovy/maven/support/slf4j-gossip/1.0-rc-2/slf4j-gossip-1.0-rc-2.jar, file:/C:/mavenrepo_artifactory/jline/jline/0.9.94/jline-0.9.94.jar, file:/C:/mavenrepo_artifactory/junit/junit/3.8.2/junit-3.8.2.jar, file:/C:/mavenrepo_artifactory/org/codehaus/groovy/maven/runtime/gmaven-runtime-support/1.0-rc-2/gmaven-runtime-support-1.0-rc-2.jar, file:/C:/mavenrepo_artifactory/org/codehaus/groovy/maven/gmaven-common/1.0-rc-2/gmaven-common-1.0-rc-2.jar, file:/C:/mavenrepo_artifactory/com/thoughtworks/qdox/qdox/1.6.3/qdox-1.6.3.jar, file:/C:/mavenrepo_artifactory/org/apache/maven/shared/file-management/1.1/file-management-1.1.jar, file:/C:/mavenrepo_artifactory/org/apache/maven/shared/maven-shared-io/1.0/maven-shared-io-1.0.jar, file:/C:/mavenrepo_artifactory/org/apache/maven/reporting/maven-reporting-impl/ 2.0.4.1/maven-reporting-impl-2.0.4.1.jar, file:/C:/mavenrepo_artifactory/commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar, file:/C:/mavenrepo_artifactory/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar, file:/C:/mavenrepo_artifactory/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar, file:/C:/mavenrepo_artifactory/commons-digester/commons-digester/1.6/commons-digester-1.6.jar, file:/C:/mavenrepo_artifactory/commons-collections/commons-collections/3.2/commons-collections-3.2.jar, file:/C:/mavenrepo_artifactory/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar, file:/C:/mavenrepo_artifactory/oro/oro/2.0.8/oro-2.0.8.jar, file:/C:/mavenrepo_artifactory/org/apache/maven/doxia/doxia-core/1.0-alpha-10/doxia-core-1.0-alpha-10.jar, file:/C:/mavenrepo_artifactory/org/apache/maven/doxia/doxia-site-renderer/1.0-alpha-10/doxia-site-renderer-1.0-alpha-10.jar, file:/C:/mavenrepo_artifactory/org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar, file:/C:/mavenrepo_artifactory/org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar, file:/C:/mavenrepo_artifactory/org/apache/velocity/velocity/1.5/velocity-1.5.jar, file:/C:/mavenrepo_artifactory/org/apache/maven/doxia/doxia-decoration-model/1.0-alpha-10/doxia-decoration-model-1.0-alpha-10.jar, file:/C:/mavenrepo_artifactory/org/apache/maven/doxia/doxia-module-apt/1.0-alpha-10/doxia-module-apt-1.0-alpha-10.jar, file:/C:/mavenrepo_artifactory/org/apache/maven/doxia/doxia-module-fml/1.0-alpha-10/doxia-module-fml-1.0-alpha-10.jar, file:/C:/mavenrepo_artifactory/org/apache/maven/doxia/doxia-module-xdoc/1.0-alpha-10/doxia-module-xdoc-1.0-alpha-10.jar, file:/C:/mavenrepo_artifactory/org/apache/maven/doxia/doxia-module-xhtml/1.0-alpha-10/doxia-module-xhtml-1.0-alpha-10.jar] Quite peculiar ! On Wed, Jul 23, 2008 at 11:35 AM, Kallin Nagelberg < [EMAIL PROTECTED]> wrote: > I wrote a groovy plugin a while back, and am now trying to convert it to a > simple script as it is only used by one artifact and it makes more sense to > keep it with the artifact in question rather than as a separate artifact. > > The artifact that uses the script, artifact A, depends on some classes in > artifact B. > > I have B setup as a dependency of A, and indeed the script can find classes > from B and use them. > > However, when something from B invokes a third party library that tries to > load a class from B I get a java.lang.ClassNotFoundException: . > at java.net.URLClassLoader$1.run(URLClassLoader.java:200) > at java.security.AccessController.doPrivileged(Native Method) > at java.net.URLClassLoader.findClass(URLClassLoader.java:188) > at java.lang.ClassLoader.loadClass(ClassLoader.java:306) > at > org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195) > at > org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:255) > at > org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:274) > at > org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214) > at java.lang.ClassLoader.loadClass(ClassLoader.java:251) > at > org.apache.commons.digester.ObjectCreateRule.begin(ObjectCreateRule.java:204) > > > > This is really strange because it doesn't happen when the script is instead > a groovy plugin. There is no change other than that where I used to invoke a > custom plugin, I invoke a groovy script. > 50 points for whoever can figure this one out! > > > >
