...
The ServiceMix XMPP component provides support for receiving and sending XMPP messages via the enterprise service bus.
Installation
Installing the servicemix-xmpp component can be done in several ways:
- drop the installer zip in an hotdeploy directory monitored by ServiceMix
- using ant tasks
Note that when using ant tasks, the component is not started, you will have to start it manually using ant tasks or a console.
...
Maven Archetype
You can use Maven to create a XMPP service unit.:
Code Block |
---|
mvn archetype:create \
-DarchetypeGroupId=org.apache.servicemix.tooling \
-DarchetypeArtifactId=servicemix-xmpp-service-unit \
-DarchetypeVersion=2010.01 \
-DgroupId=com.mycompany.myproduct \
-DartifactId=mycomponent.artifact
|
Cookbook recipes
Children Display |
---|
page | SM:servicemix-xmpp cookbook |
---|
excerpt | true |
---|
excerptType | simple |
---|
|
Endpoints
Code Block |
---|
lang | xml |
---|
title | Sender (provider) endpoint (Single User Chat) |
---|
|
<xmpp:sender service="test:myJabberService" \
endpoint="senderEndpoint"
host="my.jabberserver.lan"
port="5222"
user="lhein"
password="myPassword"
createAccount="false"
participant="gertv@my.jabberserver.lan" />
|
Code Block |
---|
lang | xml |
---|
title | Sender (provider) endpoint (Multi User Chat Room) |
---|
|
-Dversion=1.0-SNAPSHOT
|
Endpoints Configuation
Receiver Endpoint (Consumer)
The receiver endpoint connects to the XMPP server and waiting for incoming XMPP messages.
When it receives a XMPP message, it converts it to JBI message (using the marshaler) and send to the NMR.
Note |
---|
title | Message Exchange Pattern |
---|
|
The receiver endpoint will only generate InOnly exchanges.
<xmpp:sender service="test:myJabberService"
endpoint="senderEndpoint"
host="my.jabberserver.lan"
port="5222"
user="lhein"
password="myPassword"
createAccount="false"
room="smxchat@conference.my.jabberserver.lan" />
|
Code Block |
---|
lang | xml |
---|
title | Receiving Receiver (consumer) endpoint Endpoint (General) |
---|
|
<xmpp:receiver service="test:myJabberService"
endpoint="receiverEndpoint"
targetService="test:myJabberProcessor"
host="my.jabberserver.lan"
port="5222"
user="lhein"
password="myPassword"
createAccount="false" />
|
Code Block |
---|
lang | xml |
---|
title | Receiving Receiver (consumer) endpoint Endpoint (Chat Room Listener) |
---|
|
<xmpp:receiver service="test:myJabberService"
endpoint="receiverEndpoint"
targetService="test:myJabberProcessor"
host="my.jabberserver.lan"
port="5222"
user="lhein"
password="myPassword"
createAccount="false"
room="smxchat@conference.my.jabberserver.lan"/>
|
Consumer Endpoint (Receiving)
Note |
---|
title | Message Exchange Pattern |
---|
|
The receiver endpoint will only generate InOnly exchanges. |
The following table shows the additional configuration possibilities of the endpoint other than the configuration of the default ConsumerEndpoint class.
Info |
---|
title | Receiver endpoint attributes |
---|
borderStyle | solidbgColor='lighblue' |
---|
|
Name | Type | Description | Default |
---|
host | string | sets the host name or ip adress of the XMPP server | null (must be spec'd) | port | int | the port number of the XMPP service | 5222 | user | String | the user name of the XMPP account | null (must be spec'd) | password | String | the password of the XMPP account | null (must be spec'd) | resource | String | the name of the resource / client | null | room | String | full room name (for example area51@conference.myserver.com) or null | null (means no room) | proxyHost | String | the hostname of the proxy to use | null | proxyPort | String | the port of the proxy to use | 3128 | proxyUser | String | the user name for the proxy to use | null | proxyPass | String | the user password for the proxy to use | null | proxyType | String | the proxy type to use (NONE, HTTP, SOCKS4, SOCKS5) | null | login | boolean | a flag if the user should login to the XMPP account | true | createAccount | boolean | a flag if an account should be created for unknown users | false | filter | class | a class which implements org.jivesoftware.smack.filter.PacketFilter | null | marshaler | class | a marshaler class which converts XMPP to NMSG | DefaultXMPPMarshaler |
|
Sender Endpoint (Provider
...
)
The XMPP Sender endpoint expects messages coming from the NMR, converts it into a XMPP message (using the marshaler) and send to the XMPP server.
Code Block |
---|
lang | xml |
---|
title | Sender (provider) Endpoint (Single User Chat) |
---|
|
<xmpp:sender service="test:myJabberService"
endpoint="senderEndpoint"
host="my.jabberserver.lan"
port="5222"
user="lhein"
password="myPassword"
createAccount="false"
participant="gertv@my.jabberserver.lan" />
|
Code Block |
---|
lang | xml |
---|
title | Sender (provider) Endpoint (Multi User Chat Room) |
---|
|
<xmpp:sender service="test:myJabberService"
endpoint="senderEndpoint"
host="my.jabberserver.lan"
port="5222"
user="lhein"
password="myPassword"
createAccount="false"
room="smxchat@conference.my.jabberserver.lan" />
|
The following table shows the configuration possibilities of the endpoint.
...