[jboss-dev-forums] [JBoss AS7 Development] - Re: META-INF/services for module extensions - question/issue

Dan Sirbu do-not-reply at jboss.com
Thu Sep 8 15:32:24 EDT 2011


Dan Sirbu [http://community.jboss.org/people/lmcdasi] created the discussion

"Re: META-INF/services for module extensions - question/issue"

To view the discussion, visit: http://community.jboss.org/message/625608#625608

--------------------------------------------------------------
To Jason: many thanks for the link - that spares me for extra trouble  :) 

To Brian: yes - there are for sure other people that are in the 'dark' as me and any open discussion is always productive.  (+) 

I'll go ahead with Jason link and since I will be 'mean'   ;)  - I will create one ModuleExtension and three Modules #1, #2, #3 with the following setup:

     ModuleExtension loads --> ServiceLoadApiFromModule#1 --> executes the impl from Module#1 

     ServiceLoadApiFromModule#1 impl loads --> ServiceLoadApiFromModule#2 --> executes the impl from Module #2 see next (so Module#1 needs to have TCCL visibility on Module#2 )

     ServiceLoadApiFromModule#2 --> ServiceLoadApiFromModule#3 (so Module#2 needs to have TCCL visibility on Module#3) --> executes the impl from Module #3 --> test stops

     In a genric way, once in a Module, the Module should have visibility on all other Modules that were added as dependecies in the ModuleExtension, to cover more complex stuff.

ModuleExtension -> ServiceLoadApiFromModule#1 loader can happen with 2 arguments since it comes from ModuleExtension (it can use even the jboss-module service loader) but the remaining:

ServiceLoadApiFromModule#2,#3 - shall happen only with 1 argument since it is comming from Module and shall use the java.util.ServiceLoader.load().

Should the below achievable via module.xml setup as discussed ? If not, what would be the a code snapshot on classpath settings.

> Brian Stansberry wrote:
> 
> The classloader for the ModuleExtension module, which in 7.0.2 will be the TCCL, may not have visibility to classes in Module#2. That's the nature of modular classloading -- the intent is to provide proper isolation, and not to expose everything to everybody. So if you think Module#1 is going to be relying on the TCCL having visibility to everything Module#1 depends on, then you should set the TCCL to a classloader that should have that visibility. Most likely that is Module#1's classloader.

Is this sound correct to you ?


BR,
Dan S.
--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/625608#625608]

Start a new discussion in JBoss AS7 Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2225]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-dev-forums/attachments/20110908/9b2d9b36/attachment.html 


More information about the jboss-dev-forums mailing list