You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2013/02/07 16:15:14 UTC

svn commit: r1443541 - in /camel/trunk: camel-core/src/main/java/org/apache/camel/component/file/ components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/ components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/

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