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");
>             }
>         });
>



--