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.