Version 3


    The VDF based SARDeployer is a replacement for the legacy JMX based org.jboss.deployment.SARDeployer. The new SARDeployer is split into 3 different deployers. The first, SARDeployer extends the JAXPDeployer and sets the deployment type to ServiceDeployment. Input to the SARDeployer is a legacy jboss-service.xml descriptor. The AbstractSimpleDeployer.deploy method is overriden to invoke createMetaData(unit, null, "-service.xml"):

       public void deploy(DeploymentUnit unit) throws DeploymentException
          createMetaData(unit, null, "-service.xml");

    This triggers the parsing of any -service.xml descriptor found in the deployment unit. The parsing is done via the JAXPDeployer.parse() override:

       protected abstract T parse(DeploymentUnit unit, VirtualFile file, Document document) throws Exception;


    The input DOM document for the jboss-service.xml descriptor is transformed into a org.jboss.system.metadata.ServiceDeployment instance via the org.jboss.system.metadata.ServiceDeploymentParser. The ServiceDeployment is attached to the DeploymentUnit as one of the SARDeployer outputs. The other output is the UCL LoaderRepositoryConfig. This is created by the ServiceDeploymentParser. A side-effect of the SARDeployer is to set the DeploymentUnit.DeploymentContext classpath if the jboss-service.xml contains a classpath element.



    The ServiceDeploymentDeployer is responsible for translating ServiceDeployment instances into ServiceMetaData components. Its an extension of AbstractComponentDeployer. For each ServiceMetaData of a ServiceDeployment, a DeploymentUnit component is created by calling the associated DeploymentUnit.addComponent. The ServiceMetaData is then attached to the component.addAttachment(ServiceMetaData.class.getName(), service). The ServiceMetaDataVisitor likewise translates any existing ServiceMetaData into components and attaches the ServiceMetaData.



    This ServiceClassLoaderDeployer is responsible for creating classloaders for services of ServiceDeployment. Its an extension of AbstractTopLevelClassLoaderDeployer that creates a UCL based on the deployment LoaderRepositoryConfig and classpath.



    The ServiceDeployer is responsible for instatianting services from ServiceMetaData attachments. It extends AbstractSimpleRealDeployer to utilize the MC based ServiceController to created MC beans via the org.jboss.system.ServiceController.install(ServiceMetaData,ObjectName) and associated service lifecycle ops to manage the resulting ServiceContext.



    See ServiceDeploymentClasses.



    Referenced by: