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
* 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.