@Override public void readElement(XMLExtendedStreamReader reader, List<ModelNode> list) throws XMLStreamException { final ModelNode address = new ModelNode(); address.add(SUBSYSTEM, RemotingExtension.SUBSYSTEM_NAME); address.protect(); final ModelNode subsystem = Util.getEmptyOperation(ADD, address); list.add(subsystem); requireNoAttributes(reader); // Handle elements while (reader.hasNext() && reader.nextTag() != END_ELEMENT) { boolean doneWorkerThreadPool = false; final Element element = Element.forName(reader.getLocalName()); switch (element) { case WORKER_THREAD_POOL: if (doneWorkerThreadPool) { throw duplicateNamedElement(reader, Element.WORKER_THREAD_POOL.getLocalName()); } doneWorkerThreadPool = true; parseWorkerThreadPool(reader, subsystem); break; case CONNECTOR: { // Add connector updates parseConnector(reader, address, list); break; } case OUTBOUND_CONNECTIONS: { // parse the outbound-connections this.parseOutboundConnections(reader, address, list); break; } default: { throw unexpectedElement(reader); } } } }
private void writeWorkerThreadPoolIfAttributesSet( final XMLExtendedStreamWriter writer, final ModelNode node) throws XMLStreamException { if (node.hasDefined(CommonAttributes.WORKER_READ_THREADS) || node.hasDefined(CommonAttributes.WORKER_TASK_CORE_THREADS) || node.hasDefined(CommonAttributes.WORKER_TASK_KEEPALIVE) || node.hasDefined(CommonAttributes.WORKER_TASK_LIMIT) || node.hasDefined(CommonAttributes.WORKER_TASK_MAX_THREADS) || node.hasDefined(CommonAttributes.WORKER_WRITE_THREADS)) { writer.writeStartElement(Element.WORKER_THREAD_POOL.getLocalName()); RemotingSubsystemRootResource.WORKER_READ_THREADS.marshallAsAttribute(node, false, writer); RemotingSubsystemRootResource.WORKER_TASK_CORE_THREADS.marshallAsAttribute( node, false, writer); RemotingSubsystemRootResource.WORKER_TASK_KEEPALIVE.marshallAsAttribute(node, false, writer); RemotingSubsystemRootResource.WORKER_TASK_LIMIT.marshallAsAttribute(node, false, writer); RemotingSubsystemRootResource.WORKER_TASK_MAX_THREADS.marshallAsAttribute( node, false, writer); RemotingSubsystemRootResource.WORKER_WRITE_THREADS.marshallAsAttribute(node, false, writer); writer.writeEndElement(); } }