[jboss-dev-forums] [Design the new POJO MicroContainer] - Re: ClassLoader injection Scope issue

adrian@jboss.org do-not-reply at jboss.com
Tue Oct 28 10:02:45 EDT 2008


My guess is that this has nothing to do with JBossAS?
There is nothing that I'm aware of in JBossAS that does anything different.

To use the VFSClassLoaderFactory you need to have the 
ClassLoading/ClassLoaderSystem deployed first.

If you don't do this is a seperate deployment up-front
(see Common.xml in the classloading-vfs tests)
then you need to make sure these don't depend on the vfs classloader
you want to construct otherwise you'll get a "circular dependency".

See conf/classloader.xml in jboss.xml (note they are first with classloader==null)

I quote "circular dependency" because it is not really a circular dependency,
what actually happens is that the classloader (which automatically has classloader=null)
gets re-ordered to be before the ClassLoading being deployed and so it won't get
registered using the incallback before you want to want to do
"ClassLoading".getClassLoader().

Or more schematically:
1) deploy ClassLoading
2) deploy ClassLoader
3) ClassLoading depends on ClassLoader (because classloader != null)
4) ClassLoading Module for ClassLoader is created but not registered with 
ClassLoading (no incallback  yet)
5) Try Configurator.getBeanMetaData("ClassLoading") // ERROR it didn't go through the ClassLoading!
6) If (5) worked then it would register the incallback for "ClassLoading"
and the ClassLoader would properly be constructed.

NOTE (5) could also be any request to get the classloader if its ClassLoadingModule
hasn't been registered with ClassLoading to resolve and create the classloader.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4185105#4185105

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4185105



More information about the jboss-dev-forums mailing list