private static boolean hasDefinedInboundConfigAttributes(ModelNode pcf) { for (ConnectionFactoryAttribute attribute : PooledConnectionFactoryDefinition.ATTRIBUTES) { if (attribute.isInboundConfig() && pcf.hasDefined(attribute.getDefinition().getName())) { return true; } } return false; }
private static void writePooledConnectionFactories( final XMLExtendedStreamWriter writer, final ModelNode node) throws XMLStreamException { if (!node.isDefined() || node.keys().size() == 0) { return; } List<Property> properties = node.asPropertyList(); if (!properties.isEmpty()) { for (Property prop : properties) { final String name = prop.getName(); final ModelNode factory = prop.getValue(); if (factory.isDefined()) { writer.writeStartElement(Element.POOLED_CONNECTION_FACTORY.getLocalName()); writer.writeAttribute(Attribute.NAME.getLocalName(), name); // write inbound config attributes first... if (hasDefinedInboundConfigAttributes(factory)) { writer.writeStartElement(Element.INBOUND_CONFIG.getLocalName()); for (ConnectionFactoryAttribute attribute : PooledConnectionFactoryDefinition.ATTRIBUTES) { if (attribute.isInboundConfig()) { attribute.getDefinition().marshallAsElement(factory, writer); } } writer.writeEndElement(); } // ... then the attributes that are not part of the inbound config for (ConnectionFactoryAttribute attribute : PooledConnectionFactoryDefinition.ATTRIBUTES) { if (!attribute.isInboundConfig()) { attribute.getDefinition().marshallAsElement(factory, writer); } } writer.writeEndElement(); } } } }