Just a quick comment. In my experience I have found data formats to fit in well with the marshal / unmarshal model where there is a low-level data format and a high-level object roundtrip, but not so well with high-level ad-hoc transformations.
If you look at the DataFormat interface, you'll see what I mean, as it's tailored to handle InputStream and OutputStream. If your third party library doesn't handle Input/OutputStreams, maybe your safest bet is to create a simple bean with a transform() method, and pass in any runtime arguments as message headers. But then again, Claus is the God of Camel here and he knows better than me ;) Regards, *Raúl Kripalani* Principal Consultant | FuseSource Corp. [email protected] | fusesource.com <http://www.fusesource.com/> skype: raul.fuse | twitter: @raulvk <http://twitter.com/raulvk>, @fusenews<http://twitter.com/fusenews> <http://twitter.com/fusenews> On 2 May 2012 15:11, Claus Ibsen <[email protected]> wrote: > On Wed, May 2, 2012 at 4:08 PM, Meeraj Kunnumpurath > <[email protected]> wrote: > > Thanks Claus. > > > > So do I defined the custom data format as a Spring bean refer to it from > > the unmarshal XML element. Or do I need to use setDataFormatResolver on > > CamelContext? > > > > Yes just refer to it's spring bean id name. > > You can even do that directly in the routes > > <route> > .. > <marshal ref="myDataFormat"/> > ... > </route> > > See chapter 3, section 3.4.6 in the book as it shows how to write > custom data format and with examples in XML DSL as well. > > > > Thanks > > Meeraj > > > > PS: BTW just got the book, it rocks :) > > > > On Wed, May 2, 2012 at 1:44 PM, Claus Ibsen <[email protected]> > wrote: > > > >> On Wed, May 2, 2012 at 12:04 PM, Meeraj Kunnumpurath > >> <[email protected]> wrote: > >> > Hi, > >> > > >> > I have a need to apply custom transformation using a third party > library. > >> > My plan is to write a new data format. However, I am not sure whether > it > >> is > >> > the right component for me, as the need is to have one transform > method, > >> > which doesn't fit well with the marshal/unmarshal pair. > >> > > >> > >> A data format dont have to support both. For example tiny markup only > >> support one of them. > >> > >> > >> > A second question I have on this is once I have defined the component, > >> how > >> > do I integrate that into the Spring DSL. With a custom data format, I > ran > >> > into the following problems .. > >> > > >> > 1. Since the JAXB context used by loadRouteDefinitions has hard-wired > the > >> > packages it recognizes, I am unable to introduce any new vocabulary > into > >> > the DSL > >> > 2. If I override loadRouteDefinitions to recognize my packages, some > of > >> the > >> > types like UnmarshalDefinition within Camel are constrained in terms > of > >> the > >> > types of children it can have. So I am unable to introduce any new > types > >> in > >> > there. > >> > > >> > >> You can't. Although I think I have seen some ppl post about some hacks > >> he did in the XML DSL to extend with custom namespaces. > >> But its not easy thought. But maybe you can google that, if you really > >> really want to go down that path. > >> > >> You can use a custom data format in the DSL, and just refer to that > >> using the generic marshal / unmarshal. > >> > >> > >> > Kind regards > >> > Meeraj > >> > >> > >> > >> -- > >> Claus Ibsen > >> ----------------- > >> CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com > >> FuseSource > >> Email: [email protected] > >> Web: http://fusesource.com > >> Twitter: davsclaus, fusenews > >> Blog: http://davsclaus.blogspot.com/ > >> Author of Camel in Action: http://www.manning.com/ibsen/ > >> > > > > > > > > -- > > *Meeraj Kunnumpurath* > > *Director and Executive Principal > > Service Symphony Ltd > > 00 44 7702 693597 > > [email protected]* > > > > -- > Claus Ibsen > ----------------- > CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com > FuseSource > Email: [email protected] > Web: http://fusesource.com > Twitter: davsclaus, fusenews > Blog: http://davsclaus.blogspot.com/ > Author of Camel in Action: http://www.manning.com/ibsen/ >
