On Thu, Jun 18, 2009 at 1:11 PM, Charles Moulliard <cmoulli...@gmail.com>wrote:

> For me too. Camel bindy uses the echange for classloading of the model
> classes and use converter
>

I am wondering if a DataFormat could implement CamelContextAware and get
that injected.
>From the camel context we can get hold of the type converter and class
resolvers.

So it could/should be possible. Then we can have a neutral Object as
parameter.

But need to take a deeper look into how all of the xxx DataFormat currently
is implemented.

Charles feel free to create a ticket about this then we could look into it
in 2.1

It is after all a good idea to provide neutral Data Formats so you can use
it more freely.




>
> BTW, I think that I will create a BindyContext (like JAXBcontext) that I
> could use to parse the messages without Camel
>

Good idea.


>
>
> Charles Moulliard
> Senior Enterprise Architect
> Apache Camel Committer
>
> *****************************
> blog : http://cmoulliard.blogspot.com
>
>
> On Thu, Jun 18, 2009 at 11:32 AM, Claus Ibsen <claus.ib...@gmail.com>
> wrote:
>
> > Hi
> > I cannot see how we can easily add support for using Camel DataFormat as
> a
> > POJO without the Exchange parameter.
> >
> >
> >
> > On Thu, Jun 18, 2009 at 11:25 AM, Claus Ibsen <claus.ib...@gmail.com>
> > wrote:
> >
> > > Hi
> > > Yeah but do not use DataFormat but use your own POJO that just does
> what
> > > Camel does to invoke the real marshaller / unmarshaller logic.
> > >
> > > You do not have to try shoehorn this into DataFormat that cannot work
> > > without Exchange.
> > > Use POJO and let Camel invoke your POJO as a "data format"
> > >
> > >
> > >
> > > On Thu, Jun 18, 2009 at 11:21 AM, Charles Moulliard <
> > cmoulli...@gmail.com>wrote:
> > >
> > >> This is what I have done but unfortunately, Exchange is a required
> > >> parameter
> > >> in both methods of DataFormat (
> > >>
> > >>
> >
> http://camel.apache.org/maven/camel-core/apidocs/org/apache/camel/model/dataformat/DataFormatType.html
> > >> ):
> > >>
> > >>  void *marshal<
> > >>
> >
> http://camel.apache.org/maven/camel-core/apidocs/org/apache/camel/model/dataformat/DataFormatType.html#marshal%28org.apache.camel.Exchange,%20java.lang.Object,%20java.io.OutputStream%29
> > >> >
> > >> *(Exchange<
> > >>
> >
> http://camel.apache.org/maven/camel-core/apidocs/org/apache/camel/Exchange.html
> > >> >
> > >> exchange,
> > >> Object<
> > >>
> >
> http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true
> > >> >
> > >> graph,
> > >> OutputStream<
> > >>
> >
> http://java.sun.com/j2se/1.5.0/docs/api/java/io/OutputStream.html?is-external=true
> > >> >
> > >>  stream)
> > >>          Marshals the object to the given Stream.
> > >>
> > >>  Object<
> > >>
> >
> http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true
> > >> >
> > >> *unmarshal<
> > >>
> >
> http://camel.apache.org/maven/camel-core/apidocs/org/apache/camel/model/dataformat/DataFormatType.html#unmarshal%28org.apache.camel.Exchange,%20java.io.InputStream%29
> > >> >
> > >> *(Exchange<
> > >>
> >
> http://camel.apache.org/maven/camel-core/apidocs/org/apache/camel/Exchange.html
> > >> >
> > >> exchange,
> > >> InputStream<
> > >>
> >
> http://java.sun.com/j2se/1.5.0/docs/api/java/io/InputStream.html?is-external=true
> > >> >
> > >>  stream)
> > >>          Unmarshals the given stream into an object.
> > >>
> > >>
> > >>
> > >> On Thu, Jun 18, 2009 at 10:41 AM, Claus Ibsen <claus.ib...@gmail.com>
> > >> wrote:
> > >>
> > >> > Hi
> > >> > The Data Format abstraction in Camel is a thin layer. So you could
> > >> create
> > >> > your own POJO layer you can invoke.
> > >> > And in the impl of the POJO layer you more or less do the same as
> > Camel
> > >> > does, but without the Exchange as parameter.
> > >> >
> > >> >
> > >> >
> > >> > On Thu, Jun 18, 2009 at 9:58 AM, Charles Moulliard <
> > >> cmoulli...@gmail.com
> > >> > >wrote:
> > >> >
> > >> > > Hi,
> > >> > >
> > >> > > I would like to know if it is possible for a camel bean to call an
> > >> > > unmarshall/marshall endpoint/process (I don't know if it must be
> > >> > > considerate
> > >> > > as an endpoint or process) from a Camel bean ?
> > >> > >
> > >> > > In a normal routing, we call unmarshall/marshall like this :
> > >> > >
> > >> > >  <route>
> > >> > >    <from uri="direct:start"/>
> > >> > >    <marshal ref="myJaxb"/>
> > >> > >    <to uri="direct:marshalled"/>
> > >> > >  </route>
> > >> > >
> > >> > > What I would like to do is to declare marshal/unmarshal in a
> spring
> > >> > > DSL file (if it possible) and call it inside a bean ?
> > >> > > Why, because the payload to be marshalled/unmarshalled is part of
> an
> > >> > > object and I would like to keep this object during the pipeline
> > route.
> > >> > >
> > >> > > ex
> > >> > >
> > >> > > <from uri=file://temp/data/>
> > >> > > <convertBodyTo type="java.io.String"/>
> > >> > > <bean ref="ServiceHelper" method="createRequest" /> // The Request
> > >> > > object is an object used by Hibernate and will contain the content
> > of
> > >> > > the file. So this object cannot be unmarshalled/marshalled by its
> > >> > > content well
> > >> > > <bean ref="ServiceHelper" method="parseRequest" /> // Method who
> > will
> > >> > > call the unmarshall/marshall endpoint / process defined in Spring
> > DSL
> > >> > > file. This method send the string content to the endpoint
> > >> > > who will unmarshall by example the content into a collection of
> > >> > > Objects. The result is saved into the object Request
> > >> > > <bean ref=ServiceHelper" method="saveRequest"/>
> > >> > >
> > >> > > because it is not possible to do this without loosing the Request
> > >> object
> > >> > >
> > >> > > <from uri=file://temp/data/>
> > >> > > <convertBodyTo type="java.io.String"/>
> > >> > > <bean ref="ServiceHelper" method="createRequest" />
> > >> > > <unmarshall ref="csbBindyDataFormat"/>
> > >> > > <bean ref=ServiceHelper" method="saveRequest"/>
> > >> > >
> > >> > >
> > >> > > Regards,
> > >> > >
> > >> > > Charles Moulliard
> > >> > > Senior Enterprise Architect
> > >> > > Apache Camel Committer
> > >> > >
> > >> > > *****************************
> > >> > > blog : http://cmoulliard.blogspot.com
> > >> > >
> > >> >
> > >> >
> > >> >
> > >> > --
> > >> > Claus Ibsen
> > >> > Apache Camel Committer
> > >> >
> > >> > Open Source Integration: http://fusesource.com
> > >> > Blog: http://davsclaus.blogspot.com/
> > >> > Twitter: http://twitter.com/davsclaus
> > >> >
> > >>
> > >
> > >
> > >
> > > --
> > > Claus Ibsen
> > > Apache Camel Committer
> > >
> > > Open Source Integration: http://fusesource.com
> > > Blog: http://davsclaus.blogspot.com/
> > > Twitter: http://twitter.com/davsclaus
> > >
> > >
> >
> >
> > --
> > Claus Ibsen
> > Apache Camel Committer
> >
> > Open Source Integration: http://fusesource.com
> > Blog: http://davsclaus.blogspot.com/
> > Twitter: http://twitter.com/davsclaus
> >
>



-- 
Claus Ibsen
Apache Camel Committer

Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Reply via email to