<?xml version="1.0" ?>

<feature-spec xmlns="urn:jboss:galleon:feature-spec:1.0" name="subsystem.elytron.security-domain">
    <annotation name="jboss-op">
        <elem name="name" value="add"/>
        <elem name="op-params" value="default-realm,evidence-decoder,outflow-anonymous,outflow-security-domains,permission-mapper,post-realm-principal-transformer,pre-realm-principal-transformer,principal-decoder,realm-mapper,realms,role-decoder,role-mapper,security-event-listener,trusted-security-domains"/>
        <elem name="addr-params" value="profile,host,subsystem,security-domain"/>
    </annotation>
    <annotation name="feature-branch">
        <elem name="id" value="subsystem.elytron"/>
    </annotation>
    <provides>
        <capability name="$profile.org.wildfly.security.security-domain.$security-domain"/>
    </provides>
    <requires>
        <capability name="$profile.org.wildfly.security.realm-mapper.$realm-mapper" optional="true"/>
        <capability name="$profile.org.wildfly.security.evidence-decoder.$evidence-decoder" optional="true"/>
        <capability name="$profile.org.wildfly.security.permission-mapper.$permission-mapper" optional="true"/>
        <capability name="$profile.org.wildfly.security.security-domain.$outflow-security-domains" optional="true"/>
        <capability name="$profile.org.wildfly.security.principal-transformer.$pre-realm-principal-transformer" optional="true"/>
        <capability name="$profile.org.wildfly.security.principal-transformer.$post-realm-principal-transformer" optional="true"/>
        <capability name="$profile.org.wildfly.security.role-decoder.$role-decoder" optional="true"/>
        <capability name="$profile.org.wildfly.security.security-domain.$trusted-security-domains" optional="true"/>
        <capability name="$profile.org.wildfly.security.role-mapper.$role-mapper" optional="true"/>
        <capability name="$profile.org.wildfly.security.principal-decoder.$principal-decoder" optional="true"/>
        <capability name="$profile.org.wildfly.security.security-event-listener.$security-event-listener" optional="true"/>
    </requires>
    <refs>
        <ref feature="subsystem.elytron"/>
        <ref feature="profile" nillable="true"/>
        <ref feature="host" nillable="true"/>
    </refs>
    <params>
        <param name="realms" nillable="true"/>
        <param name="permission-mapper" nillable="true"/>
        <param name="profile" feature-id="true" default="GLN_UNDEFINED"/>
        <param name="post-realm-principal-transformer" nillable="true"/>
        <param name="role-decoder" nillable="true"/>
        <param name="subsystem" feature-id="true" default="elytron"/>
        <param name="outflow-anonymous" nillable="true"/>
        <param name="outflow-security-domains" nillable="true" type="List&lt;String&gt;"/>
        <param name="pre-realm-principal-transformer" nillable="true"/>
        <param name="security-domain" feature-id="true"/>
        <param name="trusted-security-domains" nillable="true" type="List&lt;String&gt;"/>
        <param name="role-mapper" nillable="true"/>
        <param name="security-event-listener" nillable="true"/>
        <param name="realm-mapper" nillable="true"/>
        <param name="default-realm" nillable="true"/>
        <param name="evidence-decoder" nillable="true"/>
        <param name="host" feature-id="true" default="GLN_UNDEFINED"/>
        <param name="principal-decoder" nillable="true"/>
    </params>
</feature-spec>