Hi Imesh,

Based on the information that you given, there are two ways to implement
this which discussed in this thread.

1) Patching the old JMS adaptor to support user defined AMQP properties

2) Writing a new output event adaptor which support for your usecase.

IMHO, as you said better to write a new adaptor (option 2) which matches
for usecase since it is clean and more flexible rather than patching the
jms adaptor. As you mentioned you can re-use jms implementation to achieve
your task.

You can follow the link [1] to write a custom event adaptor.

[1]
http://wso2.com/library/articles/2013/08/writing-custom-event-adaptors-for-cep-3.0.0/

Thanks & Regards,
Mohan



On Sun, Dec 22, 2013 at 5:00 PM, Imesh Gunaratne <[email protected]> wrote:

> Hi,
>
> Thanks Lasantha for your feedback.
>
> No, there won't be any processing happening in CEP based on the AMQP
> properties. The idea is to support the AMQP protocol when writing from CEP
> to the message consumer. As a result AMQP properties could be included in
> messages using event formatters.
>
> Nirmal, the reason why I proposed to implement a new adapter is that JMS
> and AMQP would mean two different things (as you have mentioned) in the
> context of messaging:
>
>    - JMS is a standard* messaging API for Java platform*
>    - AMQP is a specification which provides a *standard messaging
>    protocol across all platforms*.
>
> Therefore I think an AMQP Output Adapter would provide a much clear view
> and add more value to CEP when communicating with AMQP based, non Java
> message consumers.
>
> Yes as I have pointed out earlier the idea is to implement the AMQP Output
> Adapter by re-using the features in JMS Output Adapter.
>
> Thanks
>
>
>
> On Sun, Dec 22, 2013 at 1:18 PM, Lasantha Fernando <[email protected]>wrote:
>
>> Hi Imesh,
>>
>> +1 for implementing an AMQP output adapter. I think it will be very
>> useful to add it as a supported adapter type for CEP.
>>
>> Will there be any processing happening based on the AMQP properties
>> within the CEP? Or is it simply that an AMQP message needs to be sent with
>> properties to the AMQP based broker?
>>
>> Thanks,
>> Lasantha
>>
>>
>> On 22 December 2013 10:34, Imesh Gunaratne <[email protected]> wrote:
>>
>>> Hi All,
>>>
>>> In Apache Stratos (incubating) 4.0.0 we are using WSO2 CEP for
>>> aggregating statistics events sent by load balancers and cartridge agents
>>> (agents in VM instances). The aggregated values are used by the Autoscaler
>>> for taking autoscaling decisions.
>>>
>>> Here the events are sent to CEP using the default input adapter (via
>>> Thrift) and the aggregated events are sent to an AMQP based message broker
>>> using the JMS Output Adapter. Event formatters have been used for defining
>>> the formats of the output messages.
>>>
>>> *A Sample Event Formatter:*
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <eventFormatter name="AverageRequestsInflightEventFormatter"
>>>   statistics="disable" trace="enable" xmlns="
>>> http://wso2.org/carbon/eventformatter";>
>>>   <from streamName="average_in_flight_requests" version="1.0.0"/>
>>>   <mapping customMapping="enable" type="json">
>>>
>>> <inline>{"average_in_flight_requests":{"cluster_id":"{{cluster_id}}","network_partition_id":"{{network_partition_id}}","value":"{{count}}"}}</inline>
>>>   </mapping>
>>>   <to eventAdaptorName="JMSOutputAdaptor" eventAdaptorType="jms">
>>>     <property
>>> name="transport.jms.Destination">summarized-health-stats</property>
>>>   </to>
>>> </eventFormatter>
>>>
>>> The above is a sample event formatter which defines an aggregated event.
>>> Similarly there is a collection of events sent by CEP to the message
>>> broker. For each event there is an event formatter defined.
>>>
>>>
>>> *The Requirement:*
>>> Here there is a requirement to include a set of AMQP Properties [1] in
>>> the output message. These properties may include name value pairs specific
>>> for each event:
>>>
>>> *A Sample AMQP Message*
>>> Message Properties:
>>>
>>> event_class_name: 
>>> org.apache.stratos.messaging.event.health.stat.AverageInFlightRequests
>>>
>>> Message Body:
>>>
>>> {"average_in_flight_requests":{"cluster_id":"{{cluster_id}}","network_partition_id":"{{network_partition_id}}","value":"{{count}}"}}
>>>
>>>
>>> *The Proposal:*
>>> As I understood this functionality is not supported by the JMS Output
>>> Adapter at the moment and I think it's logical since AMQP features should
>>> not be included in JMS Output Adapter.
>>>
>>> As a solution to this requirement I would like to implement an AMQP
>>> Output Adapter on top of the JMS Output Adapter to support this
>>> functionality [2]. I will send more implementation design details in
>>> another mail as I progress.
>>>
>>> Really appreciate your thoughts on this.
>>>
>>> [1]
>>> http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol#Message_format
>>> [2] http://docs.wso2.org/display/CEP300/Output+Event+Adaptors
>>>
>>>
>>> Many Thanks
>>> --
>>> *Imesh Gunaratne*
>>> Technical Lead
>>> WSO2 Inc: http://wso2.com
>>> T: +94 11 214 5345 M: +94 77 374 2057
>>> W: http://imesh.gunaratne.org
>>> Lean . Enterprise . Middleware
>>>
>>>
>>> _______________________________________________
>>> Architecture mailing list
>>> [email protected]
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>>
>> --
>> *Lasantha Fernando*
>> Software Engineer - Data Technologies Team
>> WSO2 Inc. http://wso2.com
>>
>> email: [email protected]
>> mobile: (+94) 71 5247551
>>
>> _______________________________________________
>> Architecture mailing list
>> [email protected]
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
> *Imesh Gunaratne*
> Technical Lead
> WSO2 Inc: http://wso2.com
> T: +94 11 214 5345 M: +94 77 374 2057
> W: http://imesh.gunaratne.org
> Lean . Enterprise . Middleware
>
>
> _______________________________________________
> Architecture mailing list
> [email protected]
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
*V. Mohanadarshan*
*Software Engineer,*
*Data Technologies Team,*
*WSO2, Inc. http://wso2.com <http://wso2.com> *
*lean.enterprise.middleware.*

email: [email protected]
phone:(+94) 771117673
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to