stratos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Isuru Perera <isu...@wso2.com>
Subject Re: [New Architecture] A Sample for Event Message Pub/Sub
Date Wed, 16 Oct 2013 10:07:01 GMT
Hi,

Please check my comments inline.

On Wed, Oct 16, 2013 at 10:56 AM, Imesh Gunaratne <imesh@apache.org> wrote:

> Hi,
>
> Please find the below sample for publishing and receiving an event message
> using the new messaging system.
> *
> *
> *Publishing an Event Message*
>
> ...
> ServiceCreatedEvent event = new ServiceCreatedEvent();
> event.setServiceName("AppServer");
> TopologyEventMessage message = new TopologyEventMessage(event);
> publisher.sendMessage(message.getJson());
>
How do we get the publisher here. :)

And we should be able to get the json inside publisher, right? Otherwise
everyone will have to call getJson() before calling sendMessage(). Also
TopologyEventMessage class seems to be a *final* class, hence I do not see
any problem of calling getJson() inside publisher.

>
> *
> *
> *Receiving an Event Message*
>
> package org.apache.stratos.messaging.message;
>
> class MessageProcessor {
>     private Object jsonToObject(String json, Class type) {
>
This could return a generic Event type. Implies that when looking at below
code.

>         ...
>     }
>
>     public EventMessageHeader readHeader(String json) {
>         ...
>     }
> }
>
>
> class TopologyEventMessageProcessor extends MessageProcessor {
>     public void run() {
>         ...
>         String json = subscriber.receive();
>         // Read message header to identify the event, this will only parse
> the header
>         EventMessageHeader header = readHeader(json);
>
>         if
> (header.getEventClassName().equals(ServiceCreatedEvent.class.getName())) {
>             // Read the complete message and build the event
>             TopologyEventMessage message = jsonToObject(json,
> TopologyEventMessage.class);
>             ServiceCreatedEvent event = jsonToObject(message.getBody(),
> ServiceCreatedEvent.class);
>             ...
>         }
>     }
> }
>
> *jndi.properties File Content*
> connectionfactoryName=topicConnectionfactory
> connectionfactory.topicConnectionfactory=amqp://admin:admin@carbon
> /carbon?brokerlist='tcp://localhost:5677'
>
> java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory
>
>
> Thanks
> Imesh
>



-- 
Isuru Perera
Senior Software Engineer | WSO2, Inc. | http://wso2.com/
Lean . Enterprise . Middleware

about.me/chrishantha

Mime
View raw message