@Override public void initialize(ExtensionContext context) { // Register the remoting subsystem final SubsystemRegistration registration = context.registerSubsystem(SUBSYSTEM_NAME, CURRENT_VERSION); registration.registerXMLElementWriter(RemotingSubsystemXMLPersister::new); final boolean forDomain = context.getType() == ExtensionContext.ContextType.DOMAIN; final ResourceDefinition root = RemotingSubsystemRootResource.create(context.getProcessType(), forDomain); final ManagementResourceRegistration subsystem = registration.registerSubsystemModel(root); subsystem.registerOperationHandler(GenericSubsystemDescribeHandler.DEFINITION, new DescribeHandler()); subsystem.registerSubModel(RemotingEndpointResource.INSTANCE); final ManagementResourceRegistration connector = subsystem.registerSubModel(ConnectorResource.INSTANCE); connector.registerSubModel(PropertyResource.INSTANCE_CONNECTOR); final ManagementResourceRegistration sasl = connector.registerSubModel(SaslResource.INSTANCE_CONNECTOR); sasl.registerSubModel(SaslPolicyResource.INSTANCE_CONNECTOR); sasl.registerSubModel(PropertyResource.INSTANCE_CONNECTOR); final ManagementResourceRegistration httpConnector = subsystem.registerSubModel(HttpConnectorResource.INSTANCE); httpConnector.registerSubModel(PropertyResource.INSTANCE_HTTP_CONNECTOR); final ManagementResourceRegistration httpSasl = httpConnector.registerSubModel(SaslResource.INSTANCE_HTTP_CONNECTOR); httpSasl.registerSubModel(SaslPolicyResource.INSTANCE_HTTP_CONNECTOR); httpSasl.registerSubModel(PropertyResource.INSTANCE_HTTP_CONNECTOR); // remote outbound connection subsystem.registerSubModel(RemoteOutboundConnectionResourceDefinition.INSTANCE); // local outbound connection subsystem.registerSubModel(LocalOutboundConnectionResourceDefinition.INSTANCE); // (generic) outbound connection subsystem.registerSubModel(new GenericOutboundConnectionResourceDefinition()); }