JBoss.org Community Documentation
Once the structure of a deployment has been determined then the next step is to create a number of DeploymentContext objects. A DeploymentContext is required for each deployment, whether top-level or nested, in order to store information such as:
the location of any deployment descriptors - the metadata path
the location of any classes - the classpath
the relative path to the top-level deployment - the relative path
the deployment name
the order it should be deployed in relative to other deployments - the relative order
a list of deployment types that it represents (including nested deployments) - the types
the state of the deployment - whether it is deployed or not
the deployment class loader
the deployment resource loader
dependencies on other deployments or runtime components
references to any components that it deploys - POJOs, MBeans etc...
references to any nested (child) deployments or the parent deployment
Since the StructureMetaData object created using the StructureDeployer implementations already contains some of this information we subsequently pass it to a StructureBuilder together with a reference to the original Deployment to populate the deployment with a tree of DeploymentContexts:
public interface StructureBuilder
{
DeploymentContext populateContext(Deployment deployment, StructureMetaData metaData) throws DeploymentException;
}
During this method call the information contained within the ContextInfo objects, found inside the StructureMetaData , is transferred to new instances of DeploymentContext that are assembled into a hierarchy. A reference to the top-level DeploymentContext is then returned.