[[smPlugins]]
= plugins
:author: Artur Hefczyc <artur.hefczyc@tigase.net>
:version: v2.0, June 2017: Reformatted for Kernel/DSL

*Description:* The former `--sm-plugins` property has been replaced by a new style of formatting with DSL. The former long unbroken string of plusses and minuses have been replaced by a compartmentalized style.
Plugins controlled under session manager will now be children of the `'sess-man'` bean. For example, to turn on the personal eventing protocol, the following may be used:
[source,dsl]
-----
'sess-man' () {
    pep ()
}
-----

Should any plugin require configuration, those configurations will be under it's own brackets. For example, this section not only turns on jabber:iq:auth but also sets the treads to 16.
[source,dsl]
-----
'sess-man' () {
    'jabber:iq:auth' () {
        threadsNo = 16
    }
}
-----

As you may have noticed, beans or configuration options that require escape characters such as `:` or `-` will fall into single quotes to contain any special characters. If no special characters are in the bean name, then no single quotes are not required.
If you need to disable certain plugins, you can do so after declaring the bean.
[source,dsl]
-----
'sess-man' () {
    pep (active: false) {}
}
-----

Typically if a bean is called, it is automatically active. Session manager plugins will typically look like a list of plugins without configurations. The example section will show what one will look like.

*Default value:* 'none'

*Example:*
[source,dsl]
-----
'sess-man' () {
    'version' () {}
    amp () {}
    'basic-filter' () {}
    'domain-filter' () {}
    'http:' {
         {
            'jabber.org' {
                protocol {
                    commands () {}
                    stats () {}
                }
            }
        }
    }
    'jabber:iq:auth' () {
        threadsNo = 16
    }
    'jabber:iq:privacy' () {}
    'jabber:iq:private' () {}
    'jabber:iq:register' () {}
    'jabber:iq:roster' () {}
    'message-archive-xep-0136' () {}
    msgoffline (active: false) {}
    pep () {}
    'presence-state' () {}
    'presence-subscription' () {}
    starttls () {}
    'urn:ietf:params:xml:ns:xmpp-bind' () {}
    'urn:ietf:params:xml:ns:xmpp-sasl' () {}
    'urn:ietf:params:xml:ns:xmpp-session' () {}
    'urn:xmpp:ping' () {}
    'vcard-temp' () {}
    zlib () {}
}
-----

*Possible values:* DSL format plugins list and configurations.

*Available since:* 8.0.0
