package org.jboss.as.subsystem.test.simple.subsystem; import org.jboss.as.controller.AbstractBoottimeAddStepHandler; import org.jboss.as.controller.OperationContext; import org.jboss.as.controller.OperationFailedException; import org.jboss.as.controller.registry.Resource; import org.jboss.as.server.AbstractDeploymentChainStep; import org.jboss.as.server.DeploymentProcessorTarget; import org.jboss.dmr.ModelNode; /** * Handler responsible for adding the subsystem resource to the model * * @author <a href="kabir.khan@jboss.com">Kabir Khan</a> */ class SimpleSubsystemAdd extends AbstractBoottimeAddStepHandler { static final SimpleSubsystemAdd INSTANCE = new SimpleSubsystemAdd(); private SimpleSubsystemAdd() { } /** {@inheritDoc} */ @Override protected void populateModel(ModelNode operation, ModelNode model) throws OperationFailedException { model.setEmptyObject(); } /** {@inheritDoc} */ @Override public void performBoottime(OperationContext context, ModelNode operation, Resource resource) throws OperationFailedException { //Add deployment processors here //Remove this if you don't need to hook into the deployers, or you can add as many as you like //see SubDeploymentProcessor for explanation of the phases context.addStep(new AbstractDeploymentChainStep() { public void execute(DeploymentProcessorTarget processorTarget) { processorTarget.addDeploymentProcessor(SimpleSubsystemExtension.SUBSYSTEM_NAME, SimpleSubsystemDeploymentProcessor.PHASE, SimpleSubsystemDeploymentProcessor.PRIORITY, new SimpleSubsystemDeploymentProcessor()); } }, OperationContext.Stage.RUNTIME); context.getServiceTarget().addService(SimpleService.NAME, new SimpleService()).install(); } }