<?xml version="1.0" ?>

<feature-spec xmlns="urn:jboss:galleon:feature-spec:1.0" name="subsystem.datasources.xa-data-source">
    <annotation name="jboss-op">
        <elem name="name" value="add"/>
        <elem name="op-params" value="allocation-retry,allocation-retry-wait-millis,allow-multiple-users,authentication-context,background-validation,background-validation-millis,blocking-timeout-wait-millis,capacity-decrementer-class,capacity-decrementer-properties,capacity-incrementer-class,capacity-incrementer-properties,check-valid-connection-sql,connectable,connection-listener-class,connection-listener-property,credential-reference,driver-name,elytron-enabled,enabled,enlistment-trace,exception-sorter-class-name,exception-sorter-properties,flush-strategy,idle-timeout-minutes,initial-pool-size,interleaving,jndi-name,max-pool-size,mcp,min-pool-size,new-connection-sql,no-recovery,no-tx-separate-pool,pad-xid,password,pool-fair,pool-prefill,pool-use-strict-min,prepared-statements-cache-size,query-timeout,reauth-plugin-class-name,reauth-plugin-properties,recovery-authentication-context,recovery-credential-reference,recovery-elytron-enabled,recovery-password,recovery-plugin-class-name,recovery-plugin-properties,recovery-security-domain,recovery-username,same-rm-override,security-domain,set-tx-query-timeout,share-prepared-statements,spy,stale-connection-checker-class-name,stale-connection-checker-properties,statistics-enabled,track-statements,tracking,transaction-isolation,url-delimiter,url-property,url-selector-strategy-class-name,use-ccm,use-fast-fail,use-java-context,use-try-lock,user-name,valid-connection-checker-class-name,valid-connection-checker-properties,validate-on-match,wrap-xa-resource,xa-datasource-class,xa-resource-timeout"/>
        <elem name="addr-params" value="profile,subsystem,xa-data-source"/>
    </annotation>
    <annotation name="feature-branch">
        <elem name="id" value="subsystem.datasources"/>
    </annotation>
    <provides>
        <capability name="$profile.org.wildfly.data-source.$xa-data-source"/>
    </provides>
    <requires>
        <capability name="$profile.org.wildfly.jca.transaction-integration"/>
        <capability name="$profile.org.wildfly.security.authentication-context.$authentication-context" optional="true"/>
        <capability name="$profile.org.wildfly.security.authentication-context.$recovery-authentication-context" optional="true"/>
        <capability name="$profile.org.wildfly.naming"/>
    </requires>
    <refs>
        <ref feature="subsystem.datasources"/>
        <ref feature="profile" nillable="true"/>
    </refs>
    <params>
        <param name="connection-listener-property" nillable="true"/>
        <param name="track-statements" nillable="true"/>
        <param name="connectable" nillable="true"/>
        <param name="recovery-password" nillable="true"/>
        <param name="use-java-context" nillable="true"/>
        <param name="connection-listener-class" nillable="true"/>
        <param name="recovery-elytron-enabled" nillable="true"/>
        <param name="same-rm-override" nillable="true"/>
        <param name="subsystem" feature-id="true" default="datasources"/>
        <param name="pool-use-strict-min" nillable="true"/>
        <param name="statistics-enabled" nillable="true"/>
        <param name="stale-connection-checker-properties" nillable="true"/>
        <param name="tracking" nillable="true"/>
        <param name="pad-xid" nillable="true"/>
        <param name="prepared-statements-cache-size" nillable="true"/>
        <param name="valid-connection-checker-class-name" nillable="true"/>
        <param name="password" nillable="true"/>
        <param name="mcp" nillable="true"/>
        <param name="new-connection-sql" nillable="true"/>
        <param name="capacity-decrementer-class" nillable="true"/>
        <param name="recovery-plugin-class-name" nillable="true"/>
        <param name="no-recovery" nillable="true"/>
        <param name="recovery-credential-reference" nillable="true"/>
        <param name="use-try-lock" nillable="true"/>
        <param name="profile" feature-id="true" default="GLN_UNDEFINED"/>
        <param name="share-prepared-statements" nillable="true"/>
        <param name="url-property" nillable="true"/>
        <param name="credential-reference" nillable="true"/>
        <param name="xa-resource-timeout" nillable="true"/>
        <param name="background-validation" nillable="true"/>
        <param name="url-selector-strategy-class-name" nillable="true"/>
        <param name="security-domain" nillable="true"/>
        <param name="exception-sorter-properties" nillable="true"/>
        <param name="background-validation-millis" nillable="true"/>
        <param name="reauth-plugin-class-name" nillable="true"/>
        <param name="user-name" nillable="true"/>
        <param name="no-tx-separate-pool" nillable="true"/>
        <param name="check-valid-connection-sql" nillable="true"/>
        <param name="wrap-xa-resource" nillable="true"/>
        <param name="set-tx-query-timeout" nillable="true"/>
        <param name="spy" nillable="true"/>
        <param name="allocation-retry" nillable="true"/>
        <param name="elytron-enabled" nillable="true"/>
        <param name="xa-datasource-class" nillable="true"/>
        <param name="idle-timeout-minutes" nillable="true"/>
        <param name="recovery-plugin-properties" nillable="true"/>
        <param name="allocation-retry-wait-millis" nillable="true"/>
        <param name="capacity-incrementer-properties" nillable="true"/>
        <param name="enabled" nillable="true"/>
        <param name="query-timeout" nillable="true"/>
        <param name="enlistment-trace" nillable="true"/>
        <param name="capacity-incrementer-class" nillable="true"/>
        <param name="use-fast-fail" nillable="true"/>
        <param name="pool-prefill" nillable="true"/>
        <param name="url-delimiter" nillable="true"/>
        <param name="authentication-context" nillable="true"/>
        <param name="blocking-timeout-wait-millis" nillable="true"/>
        <param name="use-ccm" nillable="true"/>
        <param name="driver-name"/>
        <param name="min-pool-size" nillable="true"/>
        <param name="reauth-plugin-properties" nillable="true"/>
        <param name="initial-pool-size" nillable="true"/>
        <param name="exception-sorter-class-name" nillable="true"/>
        <param name="flush-strategy" nillable="true"/>
        <param name="xa-data-source" feature-id="true"/>
        <param name="pool-fair" nillable="true"/>
        <param name="validate-on-match" nillable="true"/>
        <param name="capacity-decrementer-properties" nillable="true"/>
        <param name="interleaving" nillable="true"/>
        <param name="jndi-name"/>
        <param name="valid-connection-checker-properties" nillable="true"/>
        <param name="allow-multiple-users" nillable="true"/>
        <param name="max-pool-size" nillable="true"/>
        <param name="recovery-authentication-context" nillable="true"/>
        <param name="recovery-security-domain" nillable="true"/>
        <param name="transaction-isolation" nillable="true"/>
        <param name="recovery-username" nillable="true"/>
        <param name="stale-connection-checker-class-name" nillable="true"/>
    </params>
</feature-spec>