[jboss-dev-forums] [Design of AOP on JBoss (Aspects/JBoss)] - Modularising the appserver bootstrap

adrian@jboss.org do-not-reply at jboss.com
Mon Sep 15 09:52:49 EDT 2008


WRT: https://jira.jboss.org/jira/browse/JBAS-5535

I never really followed up on this, but the reason why this issue has stalled
is because AOP is introducing a ciruclar dependency in the bootstrap.

AspectManager -> scoping policy -> deployment unit -> main deployer -> jmx -> aop (via @JMX)

This means we can't properly setup the bootstrap classloaders to be modular,
see the FIXMEs in conf/classloader.xml


  |    <classloader name="bootstrap-classloader" xmlns="urn:jboss:classloader:1.0" export-all="NON_EMPTY" import-all="true">
  |       <!-- FIXME Move to Deployers -->
  |       <root>${jboss.lib.url}/jboss-deployers-core-spi.jar</root>
  |       <root>${jboss.lib.url}/jboss-deployers-core.jar</root>
  |       <root>${jboss.lib.url}/jboss-deployers-client-spi.jar</root>
  |       <root>${jboss.lib.url}/jboss-deployers-client.jar</root>
  |       <root>${jboss.lib.url}/jboss-deployers-structure-spi.jar</root>
  |       <root>${jboss.lib.url}/jboss-deployers-spi.jar</root>
  |       <root>${jboss.lib.url}/jboss-deployers-impl.jar</root>
  |       <root>${jboss.lib.url}/jboss-deployers-vfs-spi.jar</root>
  |       <root>${jboss.lib.url}/jboss-deployers-vfs.jar</root>
  |       <!-- System -->
  |       <root>${jboss.lib.url}/jboss-system.jar</root>
  |       <!-- FIXME Move to JMX -->
  |       <root>${jboss.lib.url}/jboss-j2se.jar</root>
  |       <root>${jboss.lib.url}/jboss-mbeans.jar</root>
  |       <root>${jboss.lib.url}/jboss-jmx.jar</root>
  |       <root>${jboss.lib.url}/jboss-system-jmx.jar</root>
  |       <root>${jboss.lib.url}/dom4j.jar</root>
  |       <!-- JAXB impl here, api is in endorsed -->
  |       <root>${jboss.lib.url}/jaxb-impl.jar</root>
  |       <!-- STAX2 impl here, api is in endorsed -->
  |       <root>${jboss.lib.url}/wstx.jar</root>
  |    </classloader>
  | 

The fix would to refactor the VFSClassLoaderScopingPolicy
such that the deployment logic is in the deployers which just invoke the
registerClassLoader()

i.e. remove its dependency on the deployment layer

That way we can bootstrap the AspectManager before the deployers and JMX
are even loaded and it becomes independent of this implementation detail.

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

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



More information about the jboss-dev-forums mailing list