"adrian@jboss.org" wrote:
3) We check that all "PREINSTALL" dependencies are satisfied,
basically the classloader and in future the classloading dependencies
4) We switch the context to the scoped controller (creating it if necessary)
5) We check that all "DESCRIBED" dependencies are satisfied
(since the classloader has moved to PREINSTALL this will be none by default)
6) Business as usual, except the context is now in a scoped controller.
So PREINSTALL is before DESCRIBE.
And it does this:
BeanMetaData metaData = context.getBeanMetaData();
if (metaData.getBean() != null)
{
BeanInfo info = configurator.getBeanInfo(metaData);
context.setBeanInfo(info);
MetaData md = addMetaData(context);
+ sets up new child Controller (if there is a scoping annotation on the bean).
But the rest of the dependencies:
try
{
DependencyInfo depends = context.getDependencyInfo();
// add custom dependencies (e.g. AOP layer).
List<Object> dependencies = info.getDependencies(md);
log.trace("Extra dependencies for " + context.getName() + " " + dependencies);
if (dependencies != null)
{
for (Object dependencyName : dependencies)
{
AbstractDependencyItem dependency = new AbstractDependencyItem(metaData.getName(), dependencyName, ControllerState.INSTANTIATED, ControllerState.INSTALLED);
depends.addIDependOn(dependency);
}
}
}
catch (Throwable t)
{
removeMetaData(context);
throw t;
}
are still done in DescribeAction, right.