You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Chris Wolf <cw...@gmail.com> on 2012/12/14 19:05:14 UTC
Cannot get came-csv to work
Trying to do just basic csv consumption via camel-csv, but keep getting:
apache.camel.util.ObjectHelper WARN Cannot find class: csv
I tried:
from("file:/tmp/camel?noop=true&filter=#filter")
.log("Received file ${file:onlyname}")
.unmarshal().csv()
.to("mock:foo");
as well as:
final CsvDataFormat csv = new CsvDataFormat();
CamelContext context = new DefaultCamelContext(new SimpleRegistry());
Registry reg = context.getRegistry();
reg = ((PropertyPlaceholderDelegateRegistry)reg).getRegistry();
((SimpleRegistry)reg).put("filter", filter);
((SimpleRegistry)reg).put("csv", csv);
context.addRoutes(new RouteBuilder() {
public void configure() {
from("file:/tmp/camel?noop=true&filter=#filter")
.log("Received file ${file:onlyname}")
.unmarshal(csv)
.to("mock:foo");
}
});
...but the result is always: "apache.camel.util.ObjectHelper WARN
Cannot find class: csv
"
Any ideas, anyone?
Thanks,
CW
Re: Cannot get came-csv to work
Posted by Christian Müller <ch...@gmail.com>.
Make sure you have camel-csv in your class path and you import
org.apache.camel.dataformat.csv.CsvDataFormat, not
org.apache.camel.model.dataformat.CsvDataFormat!
The following example works:
package org.apache.cmueller.camel.test;
import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.file.GenericFile;
import org.apache.camel.component.file.GenericFileFilter;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.dataformat.csv.CsvDataFormat;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.SimpleRegistry;
import org.junit.Before;
import org.junit.Test;
public class CamelCsvTest {
private SimpleRegistry registry;
private CamelContext context;
@Before
public void setUp() throws Exception {
registry = new SimpleRegistry();
@SuppressWarnings("rawtypes")
GenericFileFilter filter = new GenericFileFilter() {
public boolean accept(GenericFile arg0) {
return true;
}
};
registry.put("filter", filter);
context = new DefaultCamelContext(registry);
context.start();
}
@Test
public void test() throws Exception {
MockEndpoint mock = ((MockEndpoint)
context.getEndpoint("mock:foo"));
mock.expectedMessageCount(1);
context.addRoutes(new RouteBuilder() {
public void configure() {
CsvDataFormat csv = new CsvDataFormat();
from("file:src/test/data?fileName=test.csv&noop=true&filter=#filter")
.log("Received file ${file:onlyname}")
.unmarshal(csv)
.to("mock:foo");
}
});
mock.assertIsSatisfied();
}
}
Best,
Christian
On Fri, Dec 14, 2012 at 7:05 PM, Chris Wolf <cw...@gmail.com> wrote:
> context.addRoutes(new RouteBuilder() {
> public void configure() {
> from("file:/tmp/camel?noop=true&filter=#filter")
> .log("Received file ${file:onlyname}")
> .unmarshal(csv)
> .to("mock:foo");
> }
> });
>
--