You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Ramon Buckland <no...@thebuckland.com> on 2006/07/31 15:12:50 UTC

SM classloading (how ?)

Hi peoples,

Just wondering if someone could explain the ServiceMix classloading 
structure.
We notice it uses classworlds in standalone (run from commandline mode).

How does this happen when run from the JBoss deployer ?
Is classworlds involved then also ?

We have been having a few funnies happening with some classes needed
by a 3rd party vendor and are trying to nut out the problem with them
and were hoping someone could shed some light on ..

Classloading regarding SA's, Shared Libs and SU's
The servicemix.xml <classpath> xml construct.
lib
lib/optional
The JBoss deployer (and the above items), and what should be in the SAR ?

Once a good set of answers is formulated, I'll get the details onto the web.

Thanks
ramon



Re: SM classloading (how ?)

Posted by Guillaume Nodet <gn...@gmail.com>.
On 7/31/06, Ramon Buckland <no...@thebuckland.com> wrote:
>
> Hi peoples,
>
> Just wondering if someone could explain the ServiceMix classloading
> structure.
> We notice it uses classworlds in standalone (run from commandline mode).
>
> How does this happen when run from the JBoss deployer ?
> Is classworlds involved then also ?


No.

We have been having a few funnies happening with some classes needed
> by a 3rd party vendor and are trying to nut out the problem with them
> and were hoping someone could shed some light on ..
>
> Classloading regarding SA's, Shared Libs and SU's
> The servicemix.xml <classpath> xml construct.
> lib
> lib/optional
> The JBoss deployer (and the above items), and what should be in the SAR ?


When running ServiceMix standalone, the classpath is built using:
  * lib/*.jar
  * lib/optional/*.jar
  * conf

This is the container classloader.
All jbi artifacts classloaders follow the JBI rules (see section 7.3, pages
103 + from the
JBI spec).  All components and shared libraries classloaders are built
according to the jbi descriptor,
and have the container classloader as a parent.
For SUs, it is up to the component, but the classloader is usually the same
as the component
one.  It can be modified when using xbean deployments using <classpath/>
tag.  In such a case,
the urls are used to create a new classloader, with the component
classloader as a parent.

For the JBoss deployer, the same thing happen.  The difference is in the way
the container classloader
is created.  It uses the JBoss mechanism and so the classloader includes all
jars in the SAR file.

Once a good set of answers is formulated, I'll get the details onto the web.


Cool, thx.


Thanks
> ramon
>
>
>


-- 
Cheers,
Guillaume Nodet