<?xml version="1.0" ?>

<feature-spec xmlns="urn:jboss:galleon:feature-spec:1.0" name="subsystem.modcluster.proxy">
    <annotation name="jboss-op">
        <elem name="name" value="add"/>
        <elem name="op-params" value="advertise,advertise-security-key,advertise-socket,auto-enable-contexts,balancer,excluded-contexts,flush-packets,flush-wait,listener,load-balancing-group,max-attempts,node-timeout,ping,proxies,proxy-list,proxy-url,session-draining-strategy,smax,socket-timeout,status-interval,sticky-session,sticky-session-remove,sticky-session-force,stop-context-timeout,ttl,worker-timeout,ssl-context,connector,simple-load-provider"/>
        <elem name="addr-params" value="profile,subsystem,proxy"/>
    </annotation>
    <annotation name="feature-branch">
        <elem name="id" value="subsystem.modcluster"/>
    </annotation>
    <provides>
        <capability name="$profile.org.wildfly.mod_cluster.service.$proxy"/>
    </provides>
    <requires>
        <capability name="$profile.org.wildfly.security.ssl-context.$ssl-context" optional="true"/>
        <capability name="$profile.org.wildfly.undertow.listener.$listener"/>
        <capability name="org.wildfly.network.socket-binding.$advertise-socket" optional="true"/>
        <capability name="org.wildfly.network.outbound-socket-binding.$proxies" optional="true"/>
    </requires>
    <refs>
        <ref feature="subsystem.modcluster"/>
        <ref feature="profile" nillable="true"/>
    </refs>
    <params>
        <param name="worker-timeout" nillable="true"/>
        <param name="advertise-socket" nillable="true"/>
        <param name="ping" nillable="true"/>
        <param name="listener"/>
        <param name="subsystem" feature-id="true" default="modcluster"/>
        <param name="ssl-context" nillable="true"/>
        <param name="advertise-security-key" nillable="true"/>
        <param name="sticky-session" nillable="true"/>
        <param name="proxy-list" nillable="true"/>
        <param name="sticky-session-force" nillable="true"/>
        <param name="balancer" nillable="true"/>
        <param name="flush-packets" nillable="true"/>
        <param name="session-draining-strategy" nillable="true"/>
        <param name="max-attempts" nillable="true"/>
        <param name="auto-enable-contexts" nillable="true"/>
        <param name="proxies" nillable="true" type="List&lt;String&gt;"/>
        <param name="proxy-url" nillable="true"/>
        <param name="node-timeout" nillable="true"/>
        <param name="smax" nillable="true"/>
        <param name="stop-context-timeout" nillable="true"/>
        <param name="profile" feature-id="true" default="GLN_UNDEFINED"/>
        <param name="ttl" nillable="true"/>
        <param name="proxy" feature-id="true"/>
        <param name="load-balancing-group" nillable="true"/>
        <param name="connector" nillable="true"/>
        <param name="simple-load-provider" nillable="true"/>
        <param name="sticky-session-remove" nillable="true"/>
        <param name="socket-timeout" nillable="true"/>
        <param name="advertise" nillable="true"/>
        <param name="excluded-contexts" nillable="true"/>
        <param name="flush-wait" nillable="true"/>
        <param name="status-interval" nillable="true"/>
    </params>
</feature-spec>