Thanks Mantas. I tried it out, my route is ..
<!-- define Jackson data format --> <dataFormats> <json id="jackson" library="Jackson" /> </dataFormats> <route id="isp.routes.system.deployment"> .. <setBody><constant>{"lastName": "Doo"}</constant></setBody> <log message="json: ${in.body}" /> <!-- unmarshal JSON to Java Map --> <unmarshal><custom ref="jackson"/></unmarshal> <to uri="activemq:queue:IN" /> <log message="map: ${in.body}" /> <!-- process the velocity template --> <to uri="velocity:file:{{karaf.etc}}/file.vm?contentCache=false" /> My Velocity template is .. name=${lastName} But I'm still missing the glue between the Java Map and the reference within the Velocity template. Tried something but nothing was successful yet. Any hints are appreciated. Best - Gerald > Mantas Gridinas < mgridi...@gmail.com mailto:mgridi...@gmail.com > hat am > 7. Januar 2020 um 14:14 geschrieben: > > > Not necessarily. Unmarshal EIP can be configured to unmarshal into a map. > Check out https://camel.apache.org/manual/latest/json.html as well as the > signature of DataFormatClause#json > > On Tue, Jan 7, 2020, 15:09 Gerald Kallas < catsh...@mailbox.org > mailto:catsh...@mailbox.org > wrote: > > > > > Tx, Mantas. > > > > > > > > Neverthless that still means to transfer the JSON into a > (pre-defined) > > POJO in front of Velocity processing. I wonder if there is any > > other way to > > access a JSON object directly from the Velocity engine. > > > > > > > > Best > > - Gerald > > > > > > > > > > > > > Mantas Gridinas < mgridi...@gmail.com > > mailto:mgridi...@gmail.com > hat am 7. Januar 2020 um 12:51 > > > > > > > > geschrieben: > > > > > > > > > > > > > Might want to read up on Velocity user guide, > > then > > > > > > > > > > > https://velocity.apache.org/engine/2.1/user-guide.html#property-lookup-rules > > > > > > > > > > On Tue, Jan 7, 2020 at 1:48 PM Gerald Kallas > > - mailbox.org > > > < catsh...@mailbox.org mailto:catsh...@mailbox.org > wrote: > > > > > > > > > > > > > > Tx for the reply. I tried this > > > already, but the question still remains > > > > > > > > > > > > > > > > how to access the single attributes of the JSON tree > > > inside Velocity > > component. > > > > > > > > > > > > > > > > > > > > > > > > > > > > Best > > > > - Gerald > > > > > > > > > > > > > > > > > > Am 07.01.2020 um 12:45 schrieb > > > Mantas Gridinas < mgridi...@gmail.com mailto:mgridi...@gmail.com >: > > > > > > > > > > > > > > > > > > Why not use > > > > unmarshall EIP before passing the body to velocity > > > > > template? Then, as per the velocity component, > > > > > you would access your > > > > > body via $body variable. > > > > > > > > > > > > > > >> On Mon, Jan 6, 2020 at > > > > > 3:19 PM Alex Dettinger < > > > > > > > > > > > > > > > > aldettin...@gmail.com mailto:aldettin...@gmail.com > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >> Hi Gerald, > > > > >> > > > > >> The example below shows how to use a pojo from a > > > > velocity context: > > > > >> > > > > >> > > > > > > > > > > > > > > > > > > > https://github.com/apache/camel/blob/master/components/camel-velocity/src/test/java/org/apache/camel/component/velocity/VelocityBodyAsDomainObjectTest.java > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >> So, chances are that you > > > > > just need to set the body to a pojo > > > > > > > > > > > > > > > > offering a > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > getName() > > > > > method and then use it from the velocity context with $ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > body.name. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > This is > > > > > not something I've tested, but looks worth a try. > > > > > > > > > > > > > > > > > > > > > > > > > > >> Alex > > > > >> > > > > >>> On Mon, Jan 6, 2020 at 12:54 PM Gerald Kallas < > > > > > > > > > > > > > > > > catsh...@mailbox.org mailto:catsh...@mailbox.org > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> Dear community, > > > > >>> > > > > >>> I've following snippet .. > > > > >>> > > > > >>> > > > > >>> > > > > > > > > > > > > > > > > > > > <setBody><constant>[{"name":"Wonderland","surname":"Alice"}]</constant></setBody> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > <to uri="velocity:file:{{karaf.etc}}/file.vm?contentCache=true" /> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> The body comes from a > > > > > jsonpath expression earlier. I've just > > > > > > > > > > > > > > > > stripped it > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > to the essentials. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> Is it possible to access > > > > > inside a Camel Velocity component > > > > > > > > > > > > > > > > template to the > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > attribute values for name and surname? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>> Many thanks for any > > > > > response in advance. > > > > >>> > > > > >>> Best > > > > >>> - Gerald > > > > > > > > > > > > > > > > > > >