For in-depth classloader discussions, you are probably better off in one of the 
JBoss AS forums.

1) Yes, each deployment gets 1 UCL that covers the entire archive, including 
sub-deployments

2) Every class in a deployment can see every other class in that same 
deployment (WAR files are a special case)

3) WAR files are special because the servlet spec says they should be special.  
If you have two WAR files in an EAR, they should not see eachothers classes.  
So, JBoss does not add WEB-INF/classes or WEB-INF/lib/* to the UCL by default.  
You can change this behavior by setting the UseJBossWebLoader option.  When you 
do that, tomcat will use the deployment UCL for web app loading, making 
everything visible throughout your app.  

4) Every archive has it's own UCL.   A scoped application has a UCL that points 
to it's own repository instead of to the main repository. 

5) In general, one app should be able to look up and use beans in another app 
on the same server.   If there aren't common class definitions between the two 
apps, you have to go through serialization.  This is costly, though JBoss 
people often make the mistake of over-emphasizing the cost.  (by comparing the 
cost of serialization to the cost of a direct call without considering the 
amount of work being done in the call)  


My general belief is that shared class definitions is a bad thing for 
applications and a good thing for services.  I would always scope my 
applications in the absence of a compelling reason not to.  

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

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3992376
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to