diff --git a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/AcceptOnceFileFilter.java b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/AcceptOnceFileFilter.java index 0c26477534..d0c73108e0 100644 --- a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/AcceptOnceFileFilter.java +++ b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/AcceptOnceFileFilter.java @@ -6,20 +6,41 @@ import java.util.List; import java.util.Queue; import java.util.concurrent.LinkedBlockingQueue; +/** + * {@link FileListFilter} that passes files only one time. This can conveniently + * be used to prevent duplication of files, as is done in + * {@link PollableFileSource} + * + * @author Iwein Fuld + * + */ public class AcceptOnceFileFilter implements FileListFilter { private final Queue seen; private final Object monitor = new Object(); + /** + * Creates an AcceptOnceFileFilter that is based on a bounded queue. If the + * queue overflows files that fall out will be pass this filter again if + * passed to the {@link #filterFiles(File[])} method + * @param maxCapacity + */ public AcceptOnceFileFilter(int maxCapacity) { seen = new LinkedBlockingQueue(maxCapacity); } + /** + * Creates an AcceptOnceFileFilter based on an unbounded queue + */ public AcceptOnceFileFilter() { seen = new LinkedBlockingQueue(); } + /** + * Returns the list of files that have not been filtered by this instance + * before + */ public List filterFiles(File[] files) { List accepted = new ArrayList(); for (File file : files) { @@ -42,5 +63,4 @@ public class AcceptOnceFileFilter implements FileListFilter { return false; } } - } diff --git a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/CompositeFileFilter.java b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/CompositeFileFilter.java index 56333134e1..40160b20b5 100644 --- a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/CompositeFileFilter.java +++ b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/CompositeFileFilter.java @@ -24,7 +24,7 @@ import java.util.List; import java.util.Set; /** - * Composition that delegates to multiple {@link FileFilter}s. The compostition + * Composition that delegates to multiple {@link FileFilter}s. The composition * is AND based, meaning that all filters must {@link #filterFiles(File)} in * order for a file to be accepted by the composite. * diff --git a/org.springframework.integration.file/src/test/java/org/springframework/integration/file/PollableFileSourceIntegrationTests.java b/org.springframework.integration.file/src/test/java/org/springframework/integration/file/PollableFileSourceIntegrationTests.java index e3ae46ae90..b55e795235 100644 --- a/org.springframework.integration.file/src/test/java/org/springframework/integration/file/PollableFileSourceIntegrationTests.java +++ b/org.springframework.integration.file/src/test/java/org/springframework/integration/file/PollableFileSourceIntegrationTests.java @@ -22,7 +22,6 @@ import static org.junit.Assert.assertNull; import java.io.File; import java.util.concurrent.CountDownLatch; -import java.util.concurrent.atomic.AtomicLong; import org.junit.After; import org.junit.AfterClass;