Lahiru, This complicates the stuff a bit though.
* You need to pass headers separately to TopicPublisher, in a generic manner. * and we should get confirmed that we can set headers via Python library. On Thu, Oct 17, 2013 at 5:41 PM, Lahiru Sandaruwan <[email protected]> wrote: > Hi Nirmal, > > > On Thu, Oct 17, 2013 at 11:08 AM, Nirmal Fernando > <[email protected]>wrote: > >> >> >> >> On Thu, Oct 17, 2013 at 10:20 AM, Lahiru Sandaruwan <[email protected]>wrote: >> >>> 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"); >>>> 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) { >>>> >>> >>> Are we reading header from Json message? >>> I thought we would use real message headers without looking at message >>> at all. >>> >> >> Can you send a sample on how to do that? Will that be supported by all >> message brokers? >> > > We can set properties as follows, > > textMessage.setStringProperty(Constants.EVENT, eventName); > > And retrieve as follows, > > String eventName = > textMessage.getStringProperty(Constants.EVENT); > > I have changed the component with this. will commit soon. > > Thanks. > >> >>> Thanks. >>> >>>> ... >>>> } >>>> } >>>> >>>> >>>> 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 >>>> >>> >>> >>> >>> -- >>> -- >>> Lahiru Sandaruwan >>> Software Engineer, >>> Platform Technologies, >>> WSO2 Inc., http://wso2.com >>> lean.enterprise.middleware >>> >>> email: [email protected] cell: (+94) 773 325 954 >>> blog: http://lahiruwrites.blogspot.com/ >>> twitter: http://twitter.com/lahirus >>> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146 >>> >>> >> >> >> -- >> Best Regards, >> Nirmal >> >> Nirmal Fernando. >> PPMC Member & Committer of Apache Stratos, >> Senior Software Engineer, WSO2 Inc. >> >> Blog: http://nirmalfdo.blogspot.com/ >> > > > > -- > -- > Lahiru Sandaruwan > Software Engineer, > Platform Technologies, > WSO2 Inc., http://wso2.com > lean.enterprise.middleware > > email: [email protected] cell: (+94) 773 325 954 > blog: http://lahiruwrites.blogspot.com/ > twitter: http://twitter.com/lahirus > linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146 > > -- Best Regards, Nirmal Nirmal Fernando. PPMC Member & Committer of Apache Stratos, Senior Software Engineer, WSO2 Inc. Blog: http://nirmalfdo.blogspot.com/
