1 Reply Latest reply on Sep 15, 2008 10:13 AM by Adrian Brock

    Modularising the appserver bootstrap

    Adrian Brock Master

      I've made a start on modularising the appserver bootstrap,
      as expected there are some subtle problems laying in wait.


      First, what I've done is replaced bootstrap-beans.xml with a bootstrap.xml
      that confirms to the this simple schema:

      The idea being that the other modularised files are loaded in the order given.
      This makes the changes to the profile service to use a repository rather a lot easier.
      See bootstrap-repo.xml which swaps profile-service.xml for profile-service-repository.xml


      Obviously there's some circular references that need to be setup in the correct
      order to avoid "chicken and egg" problems. This includes making the sure the
      main "repositories"
      * ClassLoading (classloading modules)
      * AspectManager (aop config)
      * MainDeployer (structure/normal deployers)
      are configured first so they can accept other services that get registered later
      (the things in brakets).

      A good example of this, is that the @JMX aspect won't work if something
      annotated with it is deployed before the AspectManager.
      But then the AspectManager itself needs to be registered with JMX also
      which is a sort of circular reference.

      Less obvious is that AOP has some dependencies in the classloading
      (ServiceMBean* and deployers) that need fixing before I can proceed
      with further modularisation.