Hi Imesh,

On Wed, Oct 16, 2013 at 10:56 AM, Imesh Gunaratne <[email protected]> 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");
>

It is better to mandate the service name, by populating this via
constructor. IMO we should do likewise to other events too.

TopologyEventMessage message = new TopologyEventMessage(event);
> publisher.sendMessage(message.getJson());
>
> *
> *
> *Receiving an Event Message*
>
> package org.apache.stratos.messaging.message;
>
> class MessageProcessor {
>     private Object jsonToObject(String json, Class type) {
>         ...
>     }
>
>     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);
>             ...
>         }
>     }
> }
>

Imesh, I don't think this is a good OOP practice. In this scenario, I think
we should follow the 'chain of responsibility' design pattern.

I'll give a try to fix this.

>
> *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
>



-- 
Best Regards,
Nirmal

Nirmal Fernando.
PPMC Member & Committer of Apache Stratos,
Senior Software Engineer, WSO2 Inc.

Blog: http://nirmalfdo.blogspot.com/

Reply via email to