Bindy does not support quoted value with separator char in CSV datasource -------------------------------------------------------------------------
Key: CAMEL-4655 URL: https://issues.apache.org/jira/browse/CAMEL-4655 Project: Camel Issue Type: Bug Components: camel-bindy Affects Versions: 2.8.2 Environment: Mac Snow Leopard Java(TM) SE Runtime Environment (build 1.6.0_26-b03-384-10M3425) Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-384, mixed mode) Maven 3.0.1 Reporter: Olivier SCHMITT i'm currently writing a tuto on Camel (2.8.2). Showing HTTP4 component usage by downloading US Gov public data, i found a problem : from("quartz://dataTimer?cron=0+*+*+*+*+?").to("direct:datas"); from("direct:datas") .to("http4://earthquake.usgs.gov/earthquakes/catalogs/eqs7day-M1.txt") .unmarshal(new BindyCsvDataFormat("net.thejeearchitectcookbook.camel.earthquake")) .process(new Processor() { public void process(Exchange exchange) throws Exception { Message message = exchange.getIn(); // ... } }); The data format is like : nc,71678421,0,"Wednesday, November 9, 2011 14:53:13 UTC",37.5727,-118.8170,1.3,6.60,14,"Central California" I want to get all datas as java.lang.String but the date value raises exception : java.lang.IllegalArgumentException: No position 11 defined for the field: 14, line: 2 must be specified] My separator is "," but some values are nested inside " ". Unfortunately there are , inside the " ". Bindy get lost ! How can i get String values nested inside " " and containing "," ? I can note that Camel CSV component deals with it without any problems. Here is my pojo : package net.thejeearchitectcookbook.camel.earthquake; import java.io.Serializable; import org.apache.camel.dataformat.bindy.annotation.CsvRecord; import org.apache.camel.dataformat.bindy.annotation.DataField; @CsvRecord( separator = ",") public class EarthquakeInfos implements Serializable { @DataField(pos = 1) private String src; @DataField(pos = 2) private String eqid; @DataField(pos = 3) private String version; @DataField(pos = 4) private String datetime; @DataField(pos = 5) private String lat; @DataField(pos = 6) private String lon; @DataField(pos = 7) private String magnitude; @DataField(pos = 8) private String depth; @DataField(pos = 9) private String nst; @DataField(pos = 10) private String place; public String getSrc() { return src; } public void setSrc(String src) { this.src = src; } public String getEqid() { return eqid; } public void setEqid(String eqid) { this.eqid = eqid; } public String getVersion() { return version; } public void setVersion(String version) { this.version = version; } public String getLat() { return lat; } public void setLat(String lat) { this.lat = lat; } public String getLon() { return lon; } public void setLon(String lon) { this.lon = lon; } public String getDepth() { return depth; } public void setDepth(String depth) { this.depth = depth; } public String getNst() { return nst; } public void setNst(String nst) { this.nst = nst; } public String getDatetime() { return datetime; } public void setDatetime(String datetime) { this.datetime = datetime; } public String getMagnitude() { return magnitude; } public void setMagnitude(String magnitude) { this.magnitude = magnitude; } public String getPlace() { return place; } public void setPlace(String place) { this.place = place; } } I can find that CSV Camel component performs well with the same datasource : from("direct:datas") .to("http4://earthquake.usgs.gov/earthquakes/catalogs/eqs7day-M1.txt") .unmarshal().csv().process(new Processor() { public void process(Exchange exchange) throws Exception { Message message = exchange.getIn(); List<List<String>> datas = (List<List<String>>) message.getBody(); // Skip header datas = datas.subList(1, datas.size() - 1); // Process my data for (List<String> row : datas) { // Process Row String datetime = row.get(3); String region = row.get(9); String magnitude = row.get(6); } } }); -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira