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/
>

Reply via email to