transactions/src/main/java/org/jboss/as/txn/subsystem/TransactionSubsystemXMLPersister.java
@Override
    public void writeContent(XMLExtendedStreamWriter writer, SubsystemMarshallingContext context) throws XMLStreamException {

        context.startSubsystemElement(Namespace.CURRENT.getUriString(), false);

        ModelNode node = context.getModelNode();


        writer.writeStartElement(Element.CORE_ENVIRONMENT.getLocalName());

        TransactionSubsystemRootResourceDefinition.NODE_IDENTIFIER.marshallAsAttribute(node, writer);

        writeProcessId(writer, node);

        writer.writeEndElement();

        if (TransactionSubsystemRootResourceDefinition.BINDING.isMarshallable(node) ||
                TransactionSubsystemRootResourceDefinition.STATUS_BINDING.isMarshallable(node) ||
                TransactionSubsystemRootResourceDefinition.RECOVERY_LISTENER.isMarshallable(node)) {
            writer.writeStartElement(Element.RECOVERY_ENVIRONMENT.getLocalName());
            TransactionSubsystemRootResourceDefinition.BINDING.marshallAsAttribute(node, writer);

            TransactionSubsystemRootResourceDefinition.STATUS_BINDING.marshallAsAttribute(node, writer);

            TransactionSubsystemRootResourceDefinition.RECOVERY_LISTENER.marshallAsAttribute(node, writer);

            writer.writeEndElement();
        }
        if (TransactionSubsystemRootResourceDefinition.STATISTICS_ENABLED.isMarshallable(node)
                || TransactionSubsystemRootResourceDefinition.ENABLE_TSM_STATUS.isMarshallable(node)
                || TransactionSubsystemRootResourceDefinition.DEFAULT_TIMEOUT.isMarshallable(node)
                || TransactionSubsystemRootResourceDefinition.MAXIMUM_TIMEOUT.isMarshallable(node)) {

            writer.writeStartElement(Element.COORDINATOR_ENVIRONMENT.getLocalName());

            TransactionSubsystemRootResourceDefinition.STATISTICS_ENABLED.marshallAsAttribute(node, writer);
            TransactionSubsystemRootResourceDefinition.ENABLE_TSM_STATUS.marshallAsAttribute(node, writer);
            TransactionSubsystemRootResourceDefinition.DEFAULT_TIMEOUT.marshallAsAttribute(node, writer);
            TransactionSubsystemRootResourceDefinition.MAXIMUM_TIMEOUT.marshallAsAttribute(node, writer);

            writer.writeEndElement();
        }

        if (TransactionSubsystemRootResourceDefinition.OBJECT_STORE_RELATIVE_TO.isMarshallable(node)
                || TransactionSubsystemRootResourceDefinition.OBJECT_STORE_PATH.isMarshallable(node)) {
            writer.writeStartElement(Element.OBJECT_STORE.getLocalName());
            TransactionSubsystemRootResourceDefinition.OBJECT_STORE_PATH.marshallAsAttribute(node, writer);
            TransactionSubsystemRootResourceDefinition.OBJECT_STORE_RELATIVE_TO.marshallAsAttribute(node, writer);
            writer.writeEndElement();
        }

        if(node.hasDefined(CommonAttributes.JTS) && node.get(CommonAttributes.JTS).asBoolean()) {
            writer.writeStartElement(Element.JTS.getLocalName());
            writer.writeEndElement();
        }

        if(node.hasDefined(CommonAttributes.USE_JOURNAL_STORE) && node.get(CommonAttributes.USE_JOURNAL_STORE).asBoolean()) {
            writer.writeStartElement(Element.USE_JOURNAL_STORE.getLocalName());
            TransactionSubsystemRootResourceDefinition.JOURNAL_STORE_ENABLE_ASYNC_IO.marshallAsAttribute(node, writer);
            writer.writeEndElement();
        }

        if (node.hasDefined(CommonAttributes.USE_JDBC_STORE) && node.get(CommonAttributes.USE_JDBC_STORE).asBoolean()) {
            writer.writeStartElement(Element.JDBC_STORE.getLocalName());
            TransactionSubsystemRootResourceDefinition.JDBC_STORE_DATASOURCE.marshallAsAttribute(node, writer);
            if (TransactionSubsystemRootResourceDefinition.JDBC_ACTION_STORE_TABLE_PREFIX.isMarshallable(node)
                    || TransactionSubsystemRootResourceDefinition.JDBC_ACTION_STORE_DROP_TABLE.isMarshallable(node)) {
                writer.writeEmptyElement(Element.JDBC_ACTION_STORE.getLocalName());
                TransactionSubsystemRootResourceDefinition.JDBC_ACTION_STORE_TABLE_PREFIX.marshallAsAttribute(node, writer);
                TransactionSubsystemRootResourceDefinition.JDBC_ACTION_STORE_DROP_TABLE.marshallAsAttribute(node, writer);
            }
            if (TransactionSubsystemRootResourceDefinition.JDBC_COMMUNICATION_STORE_TABLE_PREFIX.isMarshallable(node)
                    || TransactionSubsystemRootResourceDefinition.JDBC_COMMUNICATION_STORE_DROP_TABLE.isMarshallable(node)) {
                writer.writeEmptyElement(Element.JDBC_COMMUNICATION_STORE.getLocalName());
                TransactionSubsystemRootResourceDefinition.JDBC_COMMUNICATION_STORE_TABLE_PREFIX.marshallAsAttribute(node, writer);
                TransactionSubsystemRootResourceDefinition.JDBC_COMMUNICATION_STORE_DROP_TABLE.marshallAsAttribute(node, writer);
            }
            if (TransactionSubsystemRootResourceDefinition.JDBC_STATE_STORE_TABLE_PREFIX.isMarshallable(node)
                    || TransactionSubsystemRootResourceDefinition.JDBC_STATE_STORE_DROP_TABLE.isMarshallable(node)) {
                writer.writeEmptyElement(Element.JDBC_STATE_STORE.getLocalName());
                TransactionSubsystemRootResourceDefinition.JDBC_STATE_STORE_TABLE_PREFIX.marshallAsAttribute(node, writer);
                TransactionSubsystemRootResourceDefinition.JDBC_STATE_STORE_DROP_TABLE.marshallAsAttribute(node, writer);
            }
            writer.writeEndElement();
        }

        if (node.hasDefined(CommonAttributes.CM_RESOURCE) && node.get(CommonAttributes.CM_RESOURCE).asList().size() > 0) {
            writer.writeStartElement(Element.CM_RESOURCES.getLocalName());
            for (Property cmr : node.get(CommonAttributes.CM_RESOURCE).asPropertyList()) {
                writer.writeStartElement(CommonAttributes.CM_RESOURCE);
                writer.writeAttribute(Attribute.JNDI_NAME.getLocalName(), cmr.getName());
                if (cmr.getValue().hasDefined(CMResourceResourceDefinition.CM_TABLE_NAME.getName()) ||
                        cmr.getValue().hasDefined(CMResourceResourceDefinition.CM_TABLE_BATCH_SIZE.getName()) ||
                        cmr.getValue().hasDefined(CMResourceResourceDefinition.CM_TABLE_IMMEDIATE_CLEANUP.getName())) {
                    writer.writeStartElement(Element.CM_TABLE.getLocalName());
                    CMResourceResourceDefinition.CM_TABLE_NAME.marshallAsAttribute(cmr.getValue(), writer);
                    CMResourceResourceDefinition.CM_TABLE_BATCH_SIZE.marshallAsAttribute(cmr.getValue(), writer);
                    CMResourceResourceDefinition.CM_TABLE_IMMEDIATE_CLEANUP.marshallAsAttribute(cmr.getValue(), writer);
                    writer.writeEndElement();
                }
                writer.writeEndElement();
            }
            writer.writeEndElement();
        }
        writer.writeEndElement();
    }
@Override
    public void writeContent(XMLExtendedStreamWriter writer, SubsystemMarshallingContext context) throws XMLStreamException {

        context.startSubsystemElement(Namespace.CURRENT.getUriString(), false);

        ModelNode node = context.getModelNode();


        writer.writeStartElement(Element.CORE_ENVIRONMENT.getLocalName());

        TransactionSubsystemRootResourceDefinition.NODE_IDENTIFIER.marshallAsAttribute(node, writer);

        writeProcessId(writer, node);

        writer.writeEndElement();

        if (TransactionSubsystemRootResourceDefinition.BINDING.isMarshallable(node) ||
                TransactionSubsystemRootResourceDefinition.STATUS_BINDING.isMarshallable(node) ||
                TransactionSubsystemRootResourceDefinition.RECOVERY_LISTENER.isMarshallable(node)) {
            writer.writeStartElement(Element.RECOVERY_ENVIRONMENT.getLocalName());
            TransactionSubsystemRootResourceDefinition.BINDING.marshallAsAttribute(node, writer);

            TransactionSubsystemRootResourceDefinition.STATUS_BINDING.marshallAsAttribute(node, writer);

            TransactionSubsystemRootResourceDefinition.RECOVERY_LISTENER.marshallAsAttribute(node, writer);

            writer.writeEndElement();
        }
        if (TransactionSubsystemRootResourceDefinition.STATISTICS_ENABLED.isMarshallable(node)
                || TransactionSubsystemRootResourceDefinition.ENABLE_TSM_STATUS.isMarshallable(node)
                || TransactionSubsystemRootResourceDefinition.DEFAULT_TIMEOUT.isMarshallable(node)
                || TransactionSubsystemRootResourceDefinition.MAXIMUM_TIMEOUT.isMarshallable(node)) {

            writer.writeStartElement(Element.COORDINATOR_ENVIRONMENT.getLocalName());

            TransactionSubsystemRootResourceDefinition.STATISTICS_ENABLED.marshallAsAttribute(node, writer);
            TransactionSubsystemRootResourceDefinition.ENABLE_TSM_STATUS.marshallAsAttribute(node, writer);
            TransactionSubsystemRootResourceDefinition.DEFAULT_TIMEOUT.marshallAsAttribute(node, writer);
            TransactionSubsystemRootResourceDefinition.MAXIMUM_TIMEOUT.marshallAsAttribute(node, writer);

            writer.writeEndElement();
        }

        if (TransactionSubsystemRootResourceDefinition.OBJECT_STORE_RELATIVE_TO.isMarshallable(node)
                || TransactionSubsystemRootResourceDefinition.OBJECT_STORE_PATH.isMarshallable(node)) {
            writer.writeStartElement(Element.OBJECT_STORE.getLocalName());
            TransactionSubsystemRootResourceDefinition.OBJECT_STORE_PATH.marshallAsAttribute(node, writer);
            TransactionSubsystemRootResourceDefinition.OBJECT_STORE_RELATIVE_TO.marshallAsAttribute(node, writer);
            writer.writeEndElement();
        }

        if(node.hasDefined(CommonAttributes.JTS) && node.get(CommonAttributes.JTS).asBoolean()) {
            writer.writeStartElement(Element.JTS.getLocalName());
            writer.writeEndElement();
        }

        if(node.hasDefined(CommonAttributes.USE_JOURNAL_STORE) && node.get(CommonAttributes.USE_JOURNAL_STORE).asBoolean()) {
            writer.writeStartElement(Element.USE_JOURNAL_STORE.getLocalName());
            TransactionSubsystemRootResourceDefinition.JOURNAL_STORE_ENABLE_ASYNC_IO.marshallAsAttribute(node, writer);
            writer.writeEndElement();
        }

        if (node.hasDefined(CommonAttributes.USE_JDBC_STORE) && node.get(CommonAttributes.USE_JDBC_STORE).asBoolean()) {
            writer.writeStartElement(Element.JDBC_STORE.getLocalName());
            TransactionSubsystemRootResourceDefinition.JDBC_STORE_DATASOURCE.marshallAsAttribute(node, writer);
            if (TransactionSubsystemRootResourceDefinition.JDBC_ACTION_STORE_TABLE_PREFIX.isMarshallable(node)
                    || TransactionSubsystemRootResourceDefinition.JDBC_ACTION_STORE_DROP_TABLE.isMarshallable(node)) {
                writer.writeEmptyElement(Element.JDBC_ACTION_STORE.getLocalName());
                TransactionSubsystemRootResourceDefinition.JDBC_ACTION_STORE_TABLE_PREFIX.marshallAsAttribute(node, writer);
                TransactionSubsystemRootResourceDefinition.JDBC_ACTION_STORE_DROP_TABLE.marshallAsAttribute(node, writer);
            }
            if (TransactionSubsystemRootResourceDefinition.JDBC_COMMUNICATION_STORE_TABLE_PREFIX.isMarshallable(node)
                    || TransactionSubsystemRootResourceDefinition.JDBC_COMMUNICATION_STORE_DROP_TABLE.isMarshallable(node)) {
                writer.writeEmptyElement(Element.JDBC_COMMUNICATION_STORE.getLocalName());
                TransactionSubsystemRootResourceDefinition.JDBC_COMMUNICATION_STORE_TABLE_PREFIX.marshallAsAttribute(node, writer);
                TransactionSubsystemRootResourceDefinition.JDBC_COMMUNICATION_STORE_DROP_TABLE.marshallAsAttribute(node, writer);
            }
            if (TransactionSubsystemRootResourceDefinition.JDBC_STATE_STORE_TABLE_PREFIX.isMarshallable(node)
                    || TransactionSubsystemRootResourceDefinition.JDBC_STATE_STORE_DROP_TABLE.isMarshallable(node)) {
                writer.writeEmptyElement(Element.JDBC_STATE_STORE.getLocalName());
                TransactionSubsystemRootResourceDefinition.JDBC_STATE_STORE_TABLE_PREFIX.marshallAsAttribute(node, writer);
                TransactionSubsystemRootResourceDefinition.JDBC_STATE_STORE_DROP_TABLE.marshallAsAttribute(node, writer);
            }
            writer.writeEndElement();
        }

        if (node.hasDefined(CommonAttributes.CM_RESOURCE) && node.get(CommonAttributes.CM_RESOURCE).asList().size() > 0) {
            writer.writeStartElement(Element.CM_RESOURCES.getLocalName());
            for (Property cmr : node.get(CommonAttributes.CM_RESOURCE).asPropertyList()) {
                writer.writeStartElement(CommonAttributes.CM_RESOURCE);
                writer.writeAttribute(Attribute.JNDI_NAME.getLocalName(), cmr.getName());
                if (cmr.getValue().hasDefined(CMResourceResourceDefinition.CM_TABLE_NAME.getName()) ||
                        cmr.getValue().hasDefined(CMResourceResourceDefinition.CM_TABLE_BATCH_SIZE.getName()) ||
                        cmr.getValue().hasDefined(CMResourceResourceDefinition.CM_TABLE_IMMEDIATE_CLEANUP.getName())) {
                    writer.writeStartElement(Element.CM_TABLE.getLocalName());
                    CMResourceResourceDefinition.CM_TABLE_NAME.marshallAsAttribute(cmr.getValue(), writer);
                    CMResourceResourceDefinition.CM_TABLE_BATCH_SIZE.marshallAsAttribute(cmr.getValue(), writer);
                    CMResourceResourceDefinition.CM_TABLE_IMMEDIATE_CLEANUP.marshallAsAttribute(cmr.getValue(), writer);
                    writer.writeEndElement();
                }
                writer.writeEndElement();
            }
            writer.writeEndElement();
        }
        writer.writeEndElement();
    }
@ Override public void writeContent ( XMLExtendedStreamWriter writer , SubsystemMarshallingContext context ) throws XMLStreamException { context . startSubsystemElement ( Namespace . CURRENT . getUriString ( ) , false ) ; ModelNode node = context . getModelNode ( ) ; writer . writeStartElement ( Element . CORE_ENVIRONMENT . getLocalName ( ) ) ; TransactionSubsystemRootResourceDefinition . NODE_IDENTIFIER . marshallAsAttribute ( node , writer ) ; writeProcessId ( writer , node ) ; writer . writeEndElement ( ) ; if ( TransactionSubsystemRootResourceDefinition . BINDING . isMarshallable ( node ) || TransactionSubsystemRootResourceDefinition . STATUS_BINDING . isMarshallable ( node ) || TransactionSubsystemRootResourceDefinition . RECOVERY_LISTENER . isMarshallable ( node ) ) { writer . writeStartElement ( Element . RECOVERY_ENVIRONMENT . getLocalName ( ) ) ; TransactionSubsystemRootResourceDefinition . BINDING . marshallAsAttribute ( node , writer ) ; TransactionSubsystemRootResourceDefinition . STATUS_BINDING . marshallAsAttribute ( node , writer ) ; TransactionSubsystemRootResourceDefinition . RECOVERY_LISTENER . marshallAsAttribute ( node , writer ) ; writer . writeEndElement ( ) ; } if ( TransactionSubsystemRootResourceDefinition . STATISTICS_ENABLED . isMarshallable ( node ) || TransactionSubsystemRootResourceDefinition . ENABLE_TSM_STATUS . isMarshallable ( node ) || TransactionSubsystemRootResourceDefinition . DEFAULT_TIMEOUT . isMarshallable ( node ) || TransactionSubsystemRootResourceDefinition . MAXIMUM_TIMEOUT . isMarshallable ( node ) ) { writer . writeStartElement ( Element . COORDINATOR_ENVIRONMENT . getLocalName ( ) ) ; TransactionSubsystemRootResourceDefinition . STATISTICS_ENABLED . marshallAsAttribute ( node , writer ) ; TransactionSubsystemRootResourceDefinition . ENABLE_TSM_STATUS . marshallAsAttribute ( node , writer ) ; TransactionSubsystemRootResourceDefinition . DEFAULT_TIMEOUT . marshallAsAttribute ( node , writer ) ; TransactionSubsystemRootResourceDefinition . MAXIMUM_TIMEOUT . marshallAsAttribute ( node , writer ) ; writer . writeEndElement ( ) ; } if ( TransactionSubsystemRootResourceDefinition . OBJECT_STORE_RELATIVE_TO . isMarshallable ( node ) || TransactionSubsystemRootResourceDefinition . OBJECT_STORE_PATH . isMarshallable ( node ) ) { writer . writeStartElement ( Element . OBJECT_STORE . getLocalName ( ) ) ; TransactionSubsystemRootResourceDefinition . OBJECT_STORE_PATH . marshallAsAttribute ( node , writer ) ; TransactionSubsystemRootResourceDefinition . OBJECT_STORE_RELATIVE_TO . marshallAsAttribute ( node , writer ) ; writer . writeEndElement ( ) ; } if ( node . hasDefined ( CommonAttributes . JTS ) && node . get ( CommonAttributes . JTS ) . asBoolean ( ) ) { writer . writeStartElement ( Element . JTS . getLocalName ( ) ) ; writer . writeEndElement ( ) ; } if ( node . hasDefined ( CommonAttributes . USE_JOURNAL_STORE ) && node . get ( CommonAttributes . USE_JOURNAL_STORE ) . asBoolean ( ) ) { writer . writeStartElement ( Element . USE_JOURNAL_STORE . getLocalName ( ) ) ; TransactionSubsystemRootResourceDefinition . JOURNAL_STORE_ENABLE_ASYNC_IO . marshallAsAttribute ( node , writer ) ; writer . writeEndElement ( ) ; } if ( node . hasDefined ( CommonAttributes . USE_JDBC_STORE ) && node . get ( CommonAttributes . USE_JDBC_STORE ) . asBoolean ( ) ) { writer . writeStartElement ( Element . JDBC_STORE . getLocalName ( ) ) ; TransactionSubsystemRootResourceDefinition . JDBC_STORE_DATASOURCE . marshallAsAttribute ( node , writer ) ; if ( TransactionSubsystemRootResourceDefinition . JDBC_ACTION_STORE_TABLE_PREFIX . isMarshallable ( node ) || TransactionSubsystemRootResourceDefinition . JDBC_ACTION_STORE_DROP_TABLE . isMarshallable ( node ) ) { writer . writeEmptyElement ( Element . JDBC_ACTION_STORE . getLocalName ( ) ) ; TransactionSubsystemRootResourceDefinition . JDBC_ACTION_STORE_TABLE_PREFIX . marshallAsAttribute ( node , writer ) ; TransactionSubsystemRootResourceDefinition . JDBC_ACTION_STORE_DROP_TABLE . marshallAsAttribute ( node , writer ) ; } if ( TransactionSubsystemRootResourceDefinition . JDBC_COMMUNICATION_STORE_TABLE_PREFIX . isMarshallable ( node ) || TransactionSubsystemRootResourceDefinition . JDBC_COMMUNICATION_STORE_DROP_TABLE . isMarshallable ( node ) ) { writer . writeEmptyElement ( Element . JDBC_COMMUNICATION_STORE . getLocalName ( ) ) ; TransactionSubsystemRootResourceDefinition . JDBC_COMMUNICATION_STORE_TABLE_PREFIX . marshallAsAttribute ( node , writer ) ; TransactionSubsystemRootResourceDefinition . JDBC_COMMUNICATION_STORE_DROP_TABLE . marshallAsAttribute ( node , writer ) ; } if ( TransactionSubsystemRootResourceDefinition . JDBC_STATE_STORE_TABLE_PREFIX . isMarshallable ( node ) || TransactionSubsystemRootResourceDefinition . JDBC_STATE_STORE_DROP_TABLE . isMarshallable ( node ) ) { writer . writeEmptyElement ( Element . JDBC_STATE_STORE . getLocalName ( ) ) ; TransactionSubsystemRootResourceDefinition . JDBC_STATE_STORE_TABLE_PREFIX . marshallAsAttribute ( node , writer ) ; TransactionSubsystemRootResourceDefinition . JDBC_STATE_STORE_DROP_TABLE . marshallAsAttribute ( node , writer ) ; } writer . writeEndElement ( ) ; } if ( node . hasDefined ( CommonAttributes . CM_RESOURCE ) && node . get ( CommonAttributes . CM_RESOURCE ) . asList ( ) . size ( ) > 0 ) { writer . writeStartElement ( Element . CM_RESOURCES . getLocalName ( ) ) ; for ( Property cmr : node . get ( CommonAttributes . CM_RESOURCE ) . asPropertyList ( ) ) { writer . writeStartElement ( CommonAttributes . CM_RESOURCE ) ; writer . writeAttribute ( Attribute . JNDI_NAME . getLocalName ( ) , cmr . getName ( ) ) ; if ( cmr . getValue ( ) . hasDefined ( CMResourceResourceDefinition . CM_TABLE_NAME . getName ( ) ) || cmr . getValue ( ) . hasDefined ( CMResourceResourceDefinition . CM_TABLE_BATCH_SIZE . getName ( ) ) || cmr . getValue ( ) . hasDefined ( CMResourceResourceDefinition . CM_TABLE_IMMEDIATE_CLEANUP . getName ( ) ) ) { writer . writeStartElement ( Element . CM_TABLE . getLocalName ( ) ) ; CMResourceResourceDefinition . CM_TABLE_NAME . marshallAsAttribute ( cmr . getValue ( ) , writer ) ; CMResourceResourceDefinition . CM_TABLE_BATCH_SIZE . marshallAsAttribute ( cmr . getValue ( ) , writer ) ; CMResourceResourceDefinition . CM_TABLE_IMMEDIATE_CLEANUP . marshallAsAttribute ( cmr . getValue ( ) , writer ) ; writer . writeEndElement ( ) ; } writer . writeEndElement ( ) ; } writer . writeEndElement ( ) ; } writer . writeEndElement ( ) ; }
{@inheritDoc}
{