[ 
https://issues.apache.org/jira/browse/STRATOS-111?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13799111#comment-13799111
 ] 

Nirmal Fernando commented on STRATOS-111:
-----------------------------------------

Committed in:

7fd64fa9937f7865f6eaa99a039be12e1e2c0e39
63cc70c762a50d8c62e5b58b4accba39ab096cea

> Implement new messaging component for topic pub/sub
> ---------------------------------------------------
>
>                 Key: STRATOS-111
>                 URL: https://issues.apache.org/jira/browse/STRATOS-111
>             Project: Stratos
>          Issue Type: New Feature
>    Affects Versions: 4.0.0 M1
>            Reporter: Nirmal Fernando
>            Assignee: Nirmal Fernando
>            Priority: Critical
>             Fix For: 4.0.0 M1
>
>
> This is the initial API, let's build upon this. Please fire 
> suggestions/issues, if you have/faced any.
> Artifact Info:
> <groupId>org.apache.stratos</groupId>
> <artifactId>org.apache.stratos.messaging</artifactId>
> <version>3.0.0-SNAPSHOT</version>
> Topic Publisher API
> * You should create a 
> org.apache.stratos.messaging.broker.publish.TopicPublisher per a topic.
> TopicPublisher aPublisher = new TopicPublisher(topic);
> * You can publish any Java Object via the API and underlying implementation 
> would convert the Java Object to JSON format using Google gson (this is to 
> mandate the communication of Stratos via json).
> Also you can set any message header in java.util.Properties.
> aPublisher.publish(msgObject, headers);
> PS: I've decided against throwing an exception from this message, since I 
> don't think it'll be of any use to the object which uses this class. Let me 
> know if you think otherwise.
> * You should close the publisher once its work is done:
> aPublisher.close();
> Note: Please try to use the same TopicPublisher instance through out the life 
> time of your component.
> Topic Subscriber API
> * Topic Subscriber is an implementation of java.lang.Runnable interface and 
> there should be a 
> org.apache.stratos.messaging.broker.subscribe.TopicSubscriber per a topic.
> TopicSubscriber aSubscriber = new TopicSubscriber(topic);
> * You should have a class in your component which implements 
> javax.jms.MessageListener in order to receive the messages published to the 
> subjected topic and should set it in the topic Subscriber instance.
> aSubscriber.setMessageListener(new TopologyListener());
>            
> * Once the two steps mentioned above are done, you should start the 
> Subscriber Thread.
> Thread subscriber = new Thread(aSubscriber);
> subscriber.start();
> Note: Topic Connectors load the jms properties from the jndi.properties file, 
> please read the dev@stratos thread "Making Stratos independent of underlying 
> message broker" for more info.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to