private void parseDefaultWorkManager(
        final XMLExtendedStreamReader reader,
        final ModelNode parentAddress,
        final List<ModelNode> list,
        final ModelNode node)
        throws XMLStreamException {

      while (reader.hasNext() && reader.nextTag() != END_ELEMENT) {

        final Element element = Element.forName(reader.getLocalName());

        switch (element) {
          case LONG_RUNNING_THREADS:
            {
              ThreadsParser.getInstance()
                  .parseBoundedQueueThreadPool(
                      reader, parentAddress, list, THREAD_POOL, LONG_RUNNING_THREADS);
              break;
            }
          case SHORT_RUNNING_THREADS:
            {
              ThreadsParser.getInstance()
                  .parseBoundedQueueThreadPool(
                      reader, parentAddress, list, THREAD_POOL, SHORT_RUNNING_THREADS);
              break;
            }
          default:
            throw unexpectedElement(reader);
        }
      }
      // AS7-1352 The "blocking" attribute for the JCA thread pools should be ignored as it should
      // always be true.
      for (ModelNode op : list) {
        if (op.hasDefined(BLOCKING)) {
          op.get(BLOCKING).set(Boolean.TRUE);
        }
      }
      // Handle elements
      requireNoContent(reader);
    }
 private void writeDefaultWorkManager(XMLExtendedStreamWriter writer, ModelNode node)
     throws XMLStreamException {
   if (node.hasDefined(THREAD_POOL)) {
     writer.writeStartElement(Element.DEFAULT_WORKMANAGER.getLocalName());
     for (Property prop : node.get(THREAD_POOL).asPropertyList()) {
       if (LONG_RUNNING_THREADS.equals(prop.getName())) {
         ThreadsParser.getInstance()
             .writeBoundedQueueThreadPool(
                 writer, prop.getValue(), Element.LONG_RUNNING_THREADS.getLocalName(), false);
       }
       if (SHORT_RUNNING_THREADS.equals(prop.getName())) {
         ThreadsParser.getInstance()
             .writeBoundedQueueThreadPool(
                 writer, prop.getValue(), Element.SHORT_RUNNING_THREADS.getLocalName(), false);
       }
     }
     writer.writeEndElement();
   }
   // if (hasAnyOf(node, DEFAULT_WORKMANAGER_SHORT_RUNNING_THREAD_POOL,
   // DEFAULT_WORKMANAGER_LONG_RUNNING_THREAD_POOL)) {
   // writer.writeStartElement(Element.DEFAULT_WORKMANAGER.getLocalName());
   // if
   // (node.hasDefined(DEFAULT_WORKMANAGER_LONG_RUNNING_THREAD_POOL)) {
   // writer.writeStartElement(Element.LONG_RUNNING_THREADS.getLocalName());
   // (new NewThreadsParser()).writeThreadsElement(writer,
   // node.get(DEFAULT_WORKMANAGER_THREADS, LONG_RUNNING_THREADS).as);
   // writer.writeEndElement();
   // }
   // if
   // (node.hasDefined(DEFAULT_WORKMANAGER_SHORT_RUNNING_THREAD_POOL))
   // {
   // writer.writeStartElement(Element.SHORT_RUNNING_THREADS.getLocalName());
   // (new NewThreadsParser()).writeThreadsElement(writer,
   // node.get(DEFAULT_WORKMANAGER_THREADS, SHORT_RUNNING_THREADS));
   // writer.writeEndElement();
   // }
   //
   // writer.writeEndElement();
   // }
 }