# Element Summary

Element | Description | Class
--- | --- | ---
component | XMPP Component | org.apache.servicemix.xmpp.XMPPComponent
receiver | This endpoint receives XMPP messages and events and sends them as xml message into the NMR to the defined target | org.apache.servicemix.xmpp.XMPPReceiverEndpoint
sender | This endpoint sends XMPP messages from the NMR to a specified target (user or room) | org.apache.servicemix.xmpp.XMPPSenderEndpoint

# Element Detail

## Element: component

Element | Type | Description
--- | --- | ---
endpoints | (receiver | sender)* |
executorFactory | <spring:bean/> | The executor factory to use to create the executor. If none is provided, one will be retrieved from the JBI container when the component is deployed into ServiceMix 3.x, or a default implementation will be used.

## Element: receiver

Attribute | Type | Description
--- | --- | ---
createAccount | xs:boolean | Specify here if you want to create an account for the user if the user is currently not existing on the XMPP server.
endpoint | xs:string | Get the endpoint implementation.
host | xs:string | With that method you can specify the host name of the XMPP server as hostname or ip address.
interfaceName | xs:QName | Get the qualified name of the endpoint interface.
login | xs:boolean | Here you can specify if the user should login to the server or not. Not logging in means that endpoint itself will be created but it will be inactive.
password | xs:string | This method sets the password for connecting to the XMPP server.
port | xs:integer | This method will set the port number for the XMPP connection. If nothing is defined the default XMPP port number 5222 will be used.
proxyHost | xs:string | Here you can specify the hostname or ip address of a proxy to be used to connect to the XMPP server. If you don't define this no proxy is used.
proxyPass | xs:string | If your proxy needs authentication you can specify here the user password. Leave this undefined if your proxy does not need authentication.
proxyPort | xs:string | Here you can specify the port of the proxy server. If you do not define this the default port (3128) will be used.
proxyType | xs:string | Here you can specify the type of proxy you have. Possible values are: `NONE`, `HTTP`, `SOCKS4`, `SOCKS5`
proxyUser | xs:string | If your proxy needs authentication you can specify here the user name. Leave this undefined if your proxy does not need authentication.
resource | xs:string | Specify here the resource string to submit to the XMPP server. Usually you define the identifier of the XMPP client here.
room | xs:string | Specify here an optional room to join. If set, the user will join that room and listens to messages there.
service | xs:QName | Get the service qualified name of the endpoint.
targetEndpoint | xs:string | the name of the endpoint to which requests are sent
targetInterface | xs:QName | the QName of the interface to which requests are sent
targetOperation | xs:QName | the QName of the operation to which requests are sent
targetService | xs:QName | the QName of the service to which requests are sent
targetUri | xs:string | Gets the target URI of the consumer endpoint.
user | xs:string | This method if used to specify the user name to use for connecting to the XMPP server. It is not required that this user already exists but if not then the server should allow registration of new users and this user should not already exist with another password.

Element | Type | Description
--- | --- | ---
filter | <spring:bean/> | Here you can define a `PacketFilter` to use for filtering XMPP packets.
marshaler | <spring:bean/> | With this method you can specify a marshaler class which provides the logic for converting an xmpp message into a normalized message. This class has to implement the interface `XMPPMarshalerSupport` or another class which implements it. If you don't specify a marshaler, the `DefaultXMPPMarshaler` will be used.

## Element: sender

Attribute | Type | Description
--- | --- | ---
createAccount | xs:boolean | Specify here if you want to create an account for the user if the user is currently not existing on the XMPP server.
endpoint | xs:string | Get the endpoint implementation.
host | xs:string | With that method you can specify the host name of the XMPP server as hostname or ip address.
interfaceName | xs:QName | Get the qualified name of the endpoint interface.
login | xs:boolean | Here you can specify if the user should login to the server or not. Not logging in means that endpoint itself will be created but it will be inactive.
participant | xs:string | Specify here an optional participant to send messages to. You have to define a room or participant in order to have send function working.
password | xs:string | This method sets the password for connecting to the XMPP server.
port | xs:integer | This method will set the port number for the XMPP connection. If nothing is defined the default XMPP port number 5222 will be used.
proxyHost | xs:string | Here you can specify the hostname or ip address of a proxy to be used to connect to the XMPP server. If you don't define this no proxy is used.
proxyPass | xs:string | If your proxy needs authentication you can specify here the user password. Leave this undefined if your proxy does not need authentication.
proxyPort | xs:string | Here you can specify the port of the proxy server. If you do not define this the default port (3128) will be used.
proxyType | xs:string | Here you can specify the type of proxy you have. Possible values are: `NONE`, `HTTP`, `SOCKS4`, `SOCKS5`
proxyUser | xs:string | If your proxy needs authentication you can specify here the user name. Leave this undefined if your proxy does not need authentication.
resource | xs:string | Specify here the resource string to submit to the XMPP server. Usually you define the identifier of the XMPP client here.
room | xs:string | Specify here an optional room to join. If set, the user will join that room and listens to messages there.
service | xs:QName | Get the service qualified name of the endpoint.
user | xs:string | This method if used to specify the user name to use for connecting to the XMPP server. It is not required that this user already exists but if not then the server should allow registration of new users and this user should not already exist with another password.

Element | Type | Description
--- | --- | ---
marshaler | <spring:bean/> | With this method you can specify a marshaler class which provides the logic for converting an xmpp message into a normalized message. This class has to implement the interface `XMPPMarshalerSupport` or another class which implements it. If you don't specify a marshaler, the `DefaultXMPPMarshaler` will be used.