Hi Bindy does not support mapping to java.util.Map. The idea is that you may from flatfile/csv to POJOs, where you annotate the POJOs with how to map.
Maybe take a look at some of the other csv components/data formats, such as beanio, csv, flatpack You can see the list here http://camel.apache.org/data-format.html On Wed, Apr 16, 2014 at 11:00 PM, contactreji <[email protected]> wrote: > Hi > > I am trying to parse some CSV data. Camel Bindy component seems to be doing > its job well. > When I am taking the data to a processor to access each Object separately > and do the processing, I see that Bindy returns a List and the List > contains a Hashmap!! > > Is there a way to configure Bindy to return a list of Java Objects instead > of Hashmap? > > I did a debug and the screenshot attached. In the debug view, we see that > exchange->in contains a HashMap. > > Can you suggest how can i retrieve the data? If its HashMap, what would be > the keys to retrieve the value? > > <http://camel.465427.n5.nabble.com/file/n5750340/Bindy.jpg> > > > > My Camel Code is > > * > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:amq="http://activemq.apache.org/schema/core" > xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans.xsd > http://camel.apache.org/schema/spring > http://camel.apache.org/schema/spring/camel-spring.xsd > http://activemq.apache.org/schema/core > http://activemq.apache.org/schema/core/activemq-core.xsd"> > > > > <bean id="bindyDataformat" > > class="org.apache.camel.dataformat.bindy.csv.BindyCsvDataFormat"> > <constructor-arg value="com.poc.camel.csv.java.bindy" /> > </bean> > > <bean id="csv" class="com.poc.camel.csv.java.bindy.HandleOrderBean" /> > > <camelContext xmlns="http://camel.apache.org/schema/spring"> > > <dataFormats> > <jaxb id="myJaxb" prettyPrint="true" > contextPath="com.poc.camel.csv.java.bindy" /> > </dataFormats> > > > > <route streamCache="true"> > <from uri="file://C:/Users/Mathews/Desktop/in" /> > <unmarshal ref="bindyDataformat" /> > <to uri="bean:csv" /> > > </route> > > <route> > <from uri="seda:queue:in" /> > <to uri="log:reached route 2"/> > <marshal ref="myJaxb" /> > <to uri="file://C:/Users/Mathews/Desktop/out" /> > </route> > > </camelContext> > > </beans> > > > * > > > And Java code is > > * > package com.poc.camel.csv.java.bindy; > > import java.util.ArrayList; > import java.util.HashMap; > import java.util.List; > import java.util.Map; > > import org.apache.camel.Exchange; > import org.apache.camel.Processor; > > public class HandleOrderBean implements Processor { > > > @SuppressWarnings("unchecked") > @Override > public void process(Exchange exchange) throws Exception { > // TODO Auto-generated method stub > > List list=new ArrayList<Result>(); > > > list = (List) exchange.getIn().getBody(); > > > System.out.println("Wanna convert things into XML now"); > > System.out.println("Wanna convert things into XML now"); > /*list.toString();*/ > > } > > > > > } > > > * > > > and My POJO class is > > package com.poc.camel.csv.java.bindy; > > import java.io.Serializable; > > import javax.xml.bind.annotation.XmlRootElement; > import org.apache.camel.dataformat.bindy.annotation.CsvRecord; > import org.apache.camel.dataformat.bindy.annotation.DataField; > > @XmlRootElement > @CsvRecord(separator = ",",crlf="WINDOWS",generateHeaderColumns=false) > public class Result implements Serializable{ > > @DataField(pos = 1) > private String firstName; > > @DataField(pos = 2) > private String lastName; > > @DataField(pos = 3) > private String rollNo; > > @DataField(pos = 4) > private String result; > > public String getFirstName() { > return firstName; > } > > public void setFirstName(String firstName) { > this.firstName = firstName; > } > > public String getLastName() { > return lastName; > } > > public void setLastName(String lastName) { > this.lastName = lastName; > } > > public String getRollNo() { > return rollNo; > } > > public void setRollNo(String rollNo) { > this.rollNo = rollNo; > } > > public String getResult() { > return result; > } > > public void setResult(String result) { > this.result = result; > } > > > > } > > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/Camel-Bindy-Issues-with-returntype-tp5750340.html > Sent from the Camel - Users mailing list archive at Nabble.com. -- Claus Ibsen ----------------- Red Hat, Inc. Email: [email protected] Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen hawtio: http://hawt.io/ fabric8: http://fabric8.io/
