Hello,

I have a standard route with a ftp uri as a consumer endpoint with a
pollStrategy defined and added to the registry. However, I am getting the
following error:

Caused by: java.lang.IllegalArgumentException: Could not find a suitable
setter for property: pollStrategy as there isn't a setter method with same
type: java.lang.String nor type conversion possible: No type converter
available to convert from type: java.lang.String to the required type:
org.apache.camel.spi.PollingConsumerPollStrategy with value #pollingStrategy
        at
org.apache.camel.util.IntrospectionSupport.setProperty(IntrospectionSupport.java:588)
        at
org.apache.camel.util.IntrospectionSupport.setProperty(IntrospectionSupport.java:616)
        at
org.apache.camel.util.IntrospectionSupport.setProperties(IntrospectionSupport.java:473)
        at
org.apache.camel.util.IntrospectionSupport.setProperties(IntrospectionSupport.java:483)
        at
org.apache.camel.util.EndpointHelper.setProperties(EndpointHelper.java:255)
        at
org.apache.camel.impl.DefaultComponent.setProperties(DefaultComponent.java:257)
        at
org.apache.camel.component.file.GenericFileComponent.createEndpoint(GenericFileComponent.java:67)
        at
org.apache.camel.component.file.GenericFileComponent.createEndpoint(GenericFileComponent.java:37)
        at
org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.java:114)
        at
org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:568)


I have tried diferent combinations but always end up with this error. Can
anyone spot what I am missing? My code seems fairly similar to the Camel
unit tests I looked at. The route looks like this:

package com.axiell.lsp.integrations.marc21import.routes;

import org.apache.camel.*;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultPollingConsumerPollStrategy;
import org.apache.camel.spi.PollingConsumerPollStrategy;
import org.apache.camel.util.ServiceHelper;
import org.apache.commons.lang3.StringUtils;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.CountDownLatch;
import static org.apache.camel.builder.ProcessorBuilder.setBody;

public class BDSDepositeAndReceive extends RouteBuilder {

  final CamelContext camelContext = getContext();
  final org.apache.camel.impl.SimpleRegistry registry = new
org.apache.camel.impl.SimpleRegistry();
  final org.apache.camel.impl.CompositeRegistry compositeRegistry = new
org.apache.camel.impl.CompositeRegistry();
  private final CountDownLatch latch = new CountDownLatch(1);

  @Override
  public void configure() throws Exception {
    ExceptionBuilder.setup(this);
    compositeRegistry.addRegistry(camelContext.getRegistry());
    compositeRegistry.addRegistry(registry);
    ((org.apache.camel.impl.DefaultCamelContext)
camelContext).setRegistry(compositeRegistry);
    registry.put("pollingStrategy", new MyPollStrategy());
   
from("ftp://user@localhost/receive/in?password=1234&autoCreate=false&startingDirectoryMustExist=true&pollStrategy=#pollingStrategy&fileName=test.csv&consumer.delay=10m";)
            .convertBodyTo(String.class)
            .log(LoggingLevel.INFO, "TEST", "${body} : ${headers}");

  }

  private class MyPollStrategy implements PollingConsumerPollStrategy {
    int maxPolls=3;
    public boolean begin(Consumer consumer, Endpoint endpoint) {
      return true;
    }

    public void commit(Consumer consumer, Endpoint endpoint, int
polledMessages) {
      if (polledMessages > maxPolls) {
        maxPolls = polledMessages;
      }
      latch.countDown();
    }

    public boolean rollback(Consumer consumer, Endpoint endpoint, int
retryCounter, Exception cause) throws Exception {
      return false;
    }
  }
}





--
View this message in context: 
http://camel.465427.n5.nabble.com/FTP-polling-strategy-fails-tp5784133.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to