Author: davsclaus Date: Thu Feb 7 15:15:14 2013 New Revision: 1443541 URL: http://svn.apache.org/viewvc?rev=1443541&view=rev Log: CAMEL-6046: Fixed ftp consumer noop=true and idempotent=false not working.
Added: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpNoopIdempotentFalseTest.java - copied, changed from r1443508, camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpNoopTest.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileEndpoint.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java?rev=1443541&r1=1443540&r2=1443541&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java Thu Feb 7 15:15:14 2013 @@ -416,7 +416,7 @@ public abstract class GenericFileEndpoin this.charset = charset; } - boolean isIdempotentSet() { + protected boolean isIdempotentSet() { return idempotent != null; } Modified: camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileEndpoint.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileEndpoint.java?rev=1443541&r1=1443540&r2=1443541&view=diff ============================================================================== --- camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileEndpoint.java (original) +++ camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileEndpoint.java Thu Feb 7 15:15:14 2013 @@ -90,14 +90,15 @@ public abstract class RemoteFileEndpoint if (isDelete() && getMove() != null) { throw new IllegalArgumentException("You cannot both set delete=true and move options"); } + // if noop=true then idempotent should also be configured - if (isNoop() && !isIdempotent()) { + if (isNoop() && !isIdempotentSet()) { log.info("Endpoint is configured with noop=true so forcing endpoint to be idempotent as well"); setIdempotent(true); } // if idempotent and no repository set then create a default one - if (isIdempotent() && idempotentRepository == null) { + if (isIdempotentSet() && isIdempotent() && idempotentRepository == null) { log.info("Using default memory based idempotent repository with cache max size: " + DEFAULT_IDEMPOTENT_CACHE_SIZE); idempotentRepository = MemoryIdempotentRepository.memoryIdempotentRepository(DEFAULT_IDEMPOTENT_CACHE_SIZE); } Copied: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpNoopIdempotentFalseTest.java (from r1443508, camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpNoopTest.java) URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpNoopIdempotentFalseTest.java?p2=camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpNoopIdempotentFalseTest.java&p1=camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpNoopTest.java&r1=1443508&r2=1443541&rev=1443541&view=diff ============================================================================== --- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpNoopTest.java (original) +++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpNoopIdempotentFalseTest.java Thu Feb 7 15:15:14 2013 @@ -27,12 +27,12 @@ import org.junit.Before; import org.junit.Test; /** - * Unit test to test noop option. + * Unit test to test noop and idempotent option. */ -public class FromFtpNoopTest extends FtpServerTestSupport { +public class FromFtpNoopIdempotentFalseTest extends FtpServerTestSupport { private String getFtpUrl() { - return "ftp://admin@localhost:" + getPort() + "/noop?password=admin&binary=false&noop=true"; + return "ftp://admin@localhost:" + getPort() + "/noop?password=admin&binary=false&noop=true&idempotent=false"; } @Override @@ -45,8 +45,8 @@ public class FromFtpNoopTest extends Ftp @Test public void testNoop() throws Exception { MockEndpoint mock = getMockEndpoint("mock:result"); - // we should not be able to poll the file more than once since its noop and idempotent - mock.expectedMessageCount(1); + // we should be able to poll the same file multiple times + mock.expectedMinimumMessageCount(2); mock.assertIsSatisfied(); @@ -71,7 +71,7 @@ public class FromFtpNoopTest extends Ftp protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { public void configure() throws Exception { - from(getFtpUrl()).to("mock:result"); + from(getFtpUrl()).to("log:result", "mock:result"); } }; }