camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vitalii Tymchyshyn (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CAMEL-6575) Enhancements for camel-avro
Date Thu, 25 Jul 2013 09:25:53 GMT
Vitalii Tymchyshyn created CAMEL-6575:
-----------------------------------------

             Summary: Enhancements for camel-avro
                 Key: CAMEL-6575
                 URL: https://issues.apache.org/jira/browse/CAMEL-6575
             Project: Camel
          Issue Type: New Feature
            Reporter: Vitalii Tymchyshyn


Hello.

We've created certain enhancements to camel-avro RPC support we'd like to contribute to community.
I will create a pull request against apache/master on github shortly and add comment here.

The enhancements are:
1) Support for avro reflection mode. It's plug-and-play now, so if you specify protocol class
that is not generated, reflection mode will be automatically enabled

2) Support for message names in URIs itself, e.g. you can specify avro:netty:host:port/message
uri for both consumer and producer. Consumer dispatching will be done automatically by camel-avro.
All mechanisms can be used at the same time. For producer header has the preference over URI,
for consumer header will be set, consumers mapped to message names has precedence, consumer
without message name (if any) is used as default one.

3) Special support for messages with single parameter - one can specify singleParameter=true
in consumer URI for messages with single parameter. This will make consumer not to wrap parameter
in array, so no unwrapping in the route itself is needed.

All this things together makes camel-avro very easy to use and efficient RPC mechanism for
camel. To make an RPC one needs to:
a) Define protocol interface with required messages, e.g.
public interface MyRPC {
 POJOOp1Response op1(POJOOp1Request request);
 POJOOp2Response op2(POJOOp2Request request);
}
b) Use uris, like avro:netty:host:port/op1&singleParameter=true&protocolClassName=package.MyRPC

P.S. The people who did the enhancement are me (Vitalii Tymchyshyn github.com/tivv and Oleksii
Kondratyuk github.com/alexrwd)


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message