'Init function for Components.
As components use a different auth mechanism which includes the namespace of the component.
Jabberd1.4 and Ejabberd use the default namespace then for all client messages.
Jabberd2 uses jabber:client.
\'transport\' argument is a transport name that you are going to serve (f.e. "irc.localhost").
\'port\' can be specified if \'transport\' resolves to correct IP. If it is not then you\'ll have to specify IP
and port while calling "connect()".
If you are going to serve several different domains with single Component instance - you must list them ALL
in the \'domains\' argument.
For jabberd2 servers you should set typ=\'jabberd2\' argument.'

def __init__(self, transport, port=5347, typ=None, debug=['always', 'nodebuilder'], domains=None, sasl=0, bind=0, route=0, xcp=0):

    CommonClient.__init__(self, transport, port=port, debug=debug)
    self.typ = typ
    self.sasl = sasl
    self.bind = bind
    self.route = route
    self.xcp = xcp
    if domains:
        self.domains = domains
    else:
        self.domains = [transport]
