Hi, no I don't use ByteBuffer as body type. The easiest example what I did is to create the following route: <from uri="mina:udp://localhost:2002?sync=false"/> <to uri="mina:udp://localhost:2000?sync=false"/>
Just route it from on port to another port on the same host. Nothing between it. The MinaUdpProtocolCodecFactory on the consumer side decodes it from an udp datagram to a byte[]. byte[] bytes = context.getTypeConverter().convertTo(byte[].class, in); On the provider side where it gets back to the wire it gets converted to a string: String value = context.getTypeConverter().convertTo(String.class, message); and then set to the ByteBuffer with the given charset. The result is that the original datagram is not anymore valid. What I thought what would be right is, to not convert it to a String but leave it as a byte array and put it into the ByteBuffer. I know of course that I can create an own codec. I do it currently to get the route work but I thought it would be not necessary to just route UDP datagramms. Cheers, Thomas On Fri, Apr 19, 2013 at 8:43 AM, Claus Ibsen <claus.ib...@gmail.com> wrote: > Hi > > You can always create your own codec and use that. > > And do you really use ByteBuffer as the body type? That is a Mina type? > > What we can do is to check the type of the body. If its already a > ByteBuffer then use it as is. > Otherwise we can try converting to byte[] and String. Which we need to > create the ByteBuffer. > > > > > > On Thu, Apr 18, 2013 at 5:17 PM, Thomas Termin <thomas.ter...@gmail.com> > wrote: > > Hi Claus, > > > > yeah it is the camel-mina. Sorry. > > > > We could make this configurable within the camel uri. Something like > > encode=raw or whatever. Let me know if I should provide a fix/patch or > > whatever. > > > > Cheers, > > Thomas > > > > > > On Thu, Apr 18, 2013 at 3:29 PM, Claus Ibsen <claus.ib...@gmail.com> > wrote: > > > >> Hi > >> > >> Yeah it should probably be byte[] instead of a String. > >> > >> And I assume you refer to camel-mina ? > >> > >> On Thu, Apr 18, 2013 at 1:35 PM, Thomas Termin <thomas.ter...@gmail.com > > > >> wrote: > >> > Hello, > >> > > >> > is there a special reason, that the MinaUdpProtocolCodecFactory encode > >> > method always try to convert the message body to a string? Is there a > way > >> > to avoid the conversion to a String? I would need the falilback method > >> > which is a conversion to a ByteBuffer. It would be nice to have that > >> > configurable. > >> > > >> > String value = context.getTypeConverter().convertTo(String.class, > >> message); > >> > if (value != null) { > >> > ByteBuffer answer = > >> > ByteBuffer.allocate(value.length()).setAutoExpand(false); > >> > answer.putString(value, encoder); > >> > return answer; > >> > } > >> > > >> > // failback to use a byte buffer converter > >> > return context.getTypeConverter().mandatoryConvertTo(ByteBuffer.class, > >> > message); > >> > > >> > Cheers, > >> > Thomas > >> > >> > >> > >> -- > >> Claus Ibsen > >> ----------------- > >> Red Hat, Inc. > >> FuseSource is now part of Red Hat > >> Email: cib...@redhat.com > >> Web: http://fusesource.com > >> Twitter: davsclaus > >> Blog: http://davsclaus.com > >> Author of Camel in Action: http://www.manning.com/ibsen > >> > > > > -- > Claus Ibsen > ----------------- > Red Hat, Inc. > FuseSource is now part of Red Hat > Email: cib...@redhat.com > Web: http://fusesource.com > Twitter: davsclaus > Blog: http://davsclaus.com > Author of Camel in Action: http://www.manning.com/ibsen >