Qpid JMS event publisher is used to publish events in m ap, XML, JSON, and text formats via JMS transport.
Prerequisites
Follow the steps below to set up the prerequisites before starting the configuration.
Install Qpid JMS Broker and Qpid JMS Client.
- Add the following Qpid JMS-specific JAR files to
<PRODUCT_HOME>/repository/components/lib/
directory.< ACTIVEMQ_HOME>/lib/geronimo-jms_1.1_spec-1.0.jar
<QPID-CLIENT_HOME>/lib/ qpid-client-xxx.jar
<QPID-CLIENT_HOME>/lib/ qpid-common-xxx.jar
Register a connection factory in the
<PRODUCT_HOME>/repository/conf/jndi.properties
. For example, if the connection factory JNDI name isTopicConnectionFactory
, it will point the default Qpid host to localhost and port to 5672 as shown below. Furthermore, add the topics to be sent to the Qpid broker in the format: topic.{topicName} = {topicName}connectionfactory.TopicConnectionFactory=amqp://admin:admin@clientid/default?brokerlist='tcp://localhost:5672' topic.topicMap = topicMap topic.topicJSON = topicJSON
Start Qpid Broker, and then start the product.
Creating a Qpid JMS event publisher
For instructions on creating a Qpid JMS event publisher, see Creating Alerts.
Configuring adapter properties
Specify the Static and Dynamic Adapter Properties, when creating a Qpid JMS event publisher using the management console as shown below.
After entering the above adapter properties, select the Message Format which you want to apply on the published events. Also, click Advanced to define custom output mappings based on the Message Format you selected. For more information on custom output mapping types, see Output Mapping Types.
You can also d efine the respective adapter properties of the event publisher based on the transport type within the <to>
element of the event publisher configuration in the <PRODUCT_HOME>/repository/deployment/server/eventpublishers/
directory as follows.
<eventPublisher name="QpidJMSOutputEventAdapter" statistics="disable" trace="disable" xmlns="http://wso2.org/carbon/eventpublisher"> .................. <to eventAdapterType="jms"> <property name="java.naming.factory.initial">org.apache.qpid.jndi.PropertiesFileInitialContextFactory</property> <property name="java.naming.provider.url">repository/conf/jndi.properties</property> <property name="transport.jms.UserName">jms-user</property> <property encrypted="true" name="transport.jms.Password">JP4yDiEh6HogOEjJzQQwHaJFIWZlnJTzaERl4eYrwukNeypm36R+odMkaN9b2q4H9jBQsRV+mhcT1wQVnBpEZn4a+SuFuLKh3NihDEgww6R1tZVo8p1D6TUKvSHXYEpwSOgKrkOmdaFEOQOjfdhfK3Hrnjkz/MYPYQknrLK5MIY=</property> <property name="transport.jms.DestinationType">topic</property> <property name="transport.jms.Header">header_name1:header_value1,header_name2:header_value2</property> <property name="transport.jms.Destination">test_topic</property> <property name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</property> </to> </eventPublisher>
The above adapter properties are described below.
Static adapter properties
Adapter Property | Description | Configuration file property | Example |
---|---|---|---|
JNDI Initial Context Factory Class | The JNDI initial context factory class. The class must implement the java.naming.spi.InitialContextFactory interface | java.naming.factory.initial | org.apache.qpid.jndi.PropertiesFileInitialContextFactory |
JNDI Provider URL | URL of the JNDI provider | java.naming.provider.url | repository/conf/jndi.properties |
Username | Valid username for the JMS connection | transport.jms.UserName | jms-user |
Password | Valid password for the JMS connection | transport.jms.Password | jms-password |
Connection Factory JNDI Name | The JNDI name of the connection factory | transport.jms.ConnectionFactoryJNDIName | TopicConnectionFactory |
Destination Type | The sort order for messages that arrive on a specific destination | transport.jms.DestinationType | topic/queue |
Destination | The topic or queue to which WSO2 CEP/DAS sends messages by publishing. | transport.jms.Destination | test_topic |
Dynamic adapter properties
Adapter Property | Description | Configuration file property | Example |
---|---|---|---|
Header | Define transport headers as a valid header name in a header value pair format | transport.jms.Header | header_name1:header_value1,header_name2:header_value2 |
Related samples
For more information on Qpid event publisher type, see the following sample in WSO2 CEP Documentation.