JBoss.org Community Documentation

Chapter 6. JBoss5 Virtual Deployment Framework

6.1. MainDeployerImpl
6.2. Current StructureDeployers JBoss5StructureDeployerClasses
6.3. Deployer Helper/Base Classes JBoss5BaseDeployerClasses
6.4. Current Deployers
6.5. Virtual File System JBoss5VirtualFileSystem

As indicated in Chapter 1, Introduction the JBoss Application Server 5 is designed around the advanced concept of a Virtual Deployment Framework (VDF). This chapter discusses the JBoss5 Virtual Deployment Framework further. The following UML diagram illustrates an overview of the key JBoss5 Deployment Framework classes.

The JBoss5 Deployment Framework Classes

Figure 6.1. The JBoss5 Deployment Framework Classes

The key classes in the above diagram are:

  • MainDeployer : this interface defines the contract for the MainDeployer. The MainDeployer handles parsing of deployment archives into Deployment instances and deployment of those instances into the microcontainer. This in is an update of the JMX based MainDeployer from earlier versions to a one based on the Microcontainer, JBoss5VirtualFileSystem, and Virtual Deployment Framework (VDF). Deployers are registered with the MainDeployer as an ordered list of deployers. MainDeployer contains two sets of deployers:

    • StructureDeployers used to analyze the structure of a DeploymentContext when addDeploymentContext(DeploymentContext) is invoked. For each StructureDeployer the determineStructure(DeploymentContext) method is invoked to analyze the deployment. A StructureDeployer returns true to indicate that the deployment was recognized and no further StructureDeployer should analyze the DeploymentContext.

  • Deployers used to translate a DeploymentUnit into runtime kernel beans when the MainDeployer.process is run. The Deployer methods are:

    • isRelevant() : does the deployer want to process the unit.

    • prepareDeploy() : take the new deployment to the ready stage

    • prepareUndeploy() : get ready to undeploy

    • handoff(new, old) : handover control from new to old

    • commitDeploy() : new deployment is now in control

    • commitUndeploy() : old deployment is out of here

    • getRelativeOrder() : specify the relative order of the deployer in a chain


  • DeploymentUnit : a representation of a runtime unit of work a Deployer operates on.

  • DeploymentContext : a representation of structural aspects of deployable content.

  • ManagedObject : a representation of the manageable properties for a deployment.

  • VFS : the api for representing the read-only file system of the deployment.

  • VirtualFile : the api for a file in the deployment.

  • DomainClassLoader/ClassLoadingDomain : A generalization of the legacy JMX based unified class loading model. This is still in progress. The org.jboss.vfs.classloding.VFSClassLoader is the current simple implementation.