@Override
public void initialize(ExtensionContext context) {
final boolean registerRuntimeOnly = context.isRuntimeOnlyRegistrationValid();
final SubsystemRegistration subsystem = context.registerSubsystem(SUBSYSTEM_NAME, MANAGEMENT_API_MAJOR_VERSION,
MANAGEMENT_API_MINOR_VERSION, MANAGEMENT_API_MICRO_VERSION);
subsystem.registerXMLElementWriter(EJB3SubsystemXMLPersister.INSTANCE);
PathManager pathManager = context.getProcessType().isServer() ? context.getPathManager() : null;
subsystem.registerSubsystemModel(new EJB3SubsystemRootResourceDefinition(registerRuntimeOnly, pathManager));
if (registerRuntimeOnly) {
ResourceDefinition deploymentsDef = new SimpleResourceDefinition(PathElement.pathElement(ModelDescriptionConstants.SUBSYSTEM, SUBSYSTEM_NAME),
getResourceDescriptionResolver("deployed"));
final ManagementResourceRegistration deploymentsRegistration = subsystem.registerDeploymentModel(deploymentsDef);
deploymentsRegistration.registerSubModel(EntityBeanResourceDefinition.INSTANCE);
deploymentsRegistration.registerSubModel(MessageDrivenBeanResourceDefinition.INSTANCE);
deploymentsRegistration.registerSubModel(SingletonBeanDeploymentResourceDefinition.INSTANCE);
deploymentsRegistration.registerSubModel(StatelessSessionBeanDeploymentResourceDefinition.INSTANCE);
deploymentsRegistration.registerSubModel(StatefulSessionBeanDeploymentResourceDefinition.INSTANCE);
}
if (context.isRegisterTransformers()) {
EJB3SubsystemRootResourceDefinition.registerTransformers(subsystem);
}
}