diff --git a/spring-integration-file/src/main/java/org/springframework/integration/file/config/FileReadingMessageSourceFactoryBean.java b/spring-integration-file/src/main/java/org/springframework/integration/file/config/FileReadingMessageSourceFactoryBean.java index 00932172ad..7a57605ac3 100644 --- a/spring-integration-file/src/main/java/org/springframework/integration/file/config/FileReadingMessageSourceFactoryBean.java +++ b/spring-integration-file/src/main/java/org/springframework/integration/file/config/FileReadingMessageSourceFactoryBean.java @@ -17,9 +17,7 @@ package org.springframework.integration.file.config; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; - import org.springframework.beans.factory.FactoryBean; - import org.springframework.integration.file.DirectoryScanner; import org.springframework.integration.file.FileReadingMessageSource; import org.springframework.integration.file.entries.CompositeEntryListFilter; @@ -27,9 +25,6 @@ import org.springframework.integration.file.entries.EntryListFilter; import org.springframework.integration.file.locking.AbstractFileLockerFilter; import java.io.File; - -import java.util.Arrays; -import java.util.Collection; import java.util.Comparator; @@ -143,8 +138,8 @@ public class FileReadingMessageSourceFactoryBean implements FactoryBean fileCompositeEntryListFilter = new CompositeEntryListFilter(); - for (EntryListFilter filter : Arrays.asList(this.filter, this.locker)) - fileCompositeEntryListFilter.addFilter(filter); + fileCompositeEntryListFilter.addFilter(this.filter); + fileCompositeEntryListFilter.addFilter(this.locker); this.source.setFilter(fileCompositeEntryListFilter); this.source.setLocker(locker); diff --git a/spring-integration-file/src/main/java/org/springframework/integration/file/entries/CompositeEntryListFilter.java b/spring-integration-file/src/main/java/org/springframework/integration/file/entries/CompositeEntryListFilter.java index 0ee88f6033..fb428f967b 100644 --- a/spring-integration-file/src/main/java/org/springframework/integration/file/entries/CompositeEntryListFilter.java +++ b/spring-integration-file/src/main/java/org/springframework/integration/file/entries/CompositeEntryListFilter.java @@ -54,8 +54,9 @@ public class CompositeEntryListFilter implements EntryListFilter { return leftOver; } + @SuppressWarnings("unchecked") //to please the eclipse compiler public CompositeEntryListFilter addFilter(EntryListFilter filter) { - return this.addFilters(Arrays.asList(filter)); + return this.addFilters(filter); } /** @@ -63,8 +64,7 @@ public class CompositeEntryListFilter implements EntryListFilter { * @return this CompositeFileFilter instance with the added filters * @see #addFilters(Collection) */ - @SuppressWarnings("unused") - public CompositeEntryListFilter addFilters(EntryListFilter[] filters) { + public CompositeEntryListFilter addFilters(EntryListFilter... filters) { return addFilters(Arrays.asList(filters)); } @@ -76,8 +76,9 @@ public class CompositeEntryListFilter implements EntryListFilter { * @param filtersToAdd a list of filters to add * @return this CompositeEntryListFilter instance with the added filters */ - public CompositeEntryListFilter addFilters(Collection> filtersToAdd) { - for (EntryListFilter elf : filtersToAdd) + @SuppressWarnings("unchecked") + public CompositeEntryListFilter addFilters(Collection> filtersToAdd) { + for (EntryListFilter elf : filtersToAdd) if (elf instanceof InitializingBean) { try { ((InitializingBean) elf).afterPropertiesSet(); diff --git a/spring-integration-file/src/main/java/org/springframework/integration/file/filters/AcceptOnceFileListFilter.java b/spring-integration-file/src/main/java/org/springframework/integration/file/filters/AcceptOnceFileListFilter.java index 43522376c6..85cd327fae 100644 --- a/spring-integration-file/src/main/java/org/springframework/integration/file/filters/AcceptOnceFileListFilter.java +++ b/spring-integration-file/src/main/java/org/springframework/integration/file/filters/AcceptOnceFileListFilter.java @@ -16,6 +16,7 @@ package org.springframework.integration.file.filters; import org.springframework.integration.file.entries.AcceptOnceEntryFileListFilter; +import org.springframework.util.Assert; import java.io.File; import java.util.List; @@ -56,6 +57,7 @@ public class AcceptOnceFileListFilter extends AcceptOnceEntryFileListFilter filterFiles(File[] files) { + Assert.notNull(files, "'files' must not be null."); return this.filterEntries(files); } } diff --git a/spring-integration-file/src/main/java/org/springframework/integration/file/filters/AntPathFileListFilter.java b/spring-integration-file/src/main/java/org/springframework/integration/file/filters/AntPathFileListFilter.java index 6a88127441..0b6d8f410c 100644 --- a/spring-integration-file/src/main/java/org/springframework/integration/file/filters/AntPathFileListFilter.java +++ b/spring-integration-file/src/main/java/org/springframework/integration/file/filters/AntPathFileListFilter.java @@ -2,13 +2,19 @@ package org.springframework.integration.file.filters; import org.springframework.integration.file.entries.AbstractEntryListFilter; import org.springframework.util.AntPathMatcher; +import org.springframework.util.Assert; import java.io.File; +import java.util.List; /** + * Filter that supports ant style path expressions, which are less powerful but more readable than regular expressions. + * * @author Iwein Fuld + * @see org.springframework.integration.file.filters.PatternMatchingFileListFilter + * @since 2.0.0 */ -public class AntPathFileListFilter extends AbstractEntryListFilter { +public class AntPathFileListFilter extends AbstractEntryListFilter implements FileListFilter { private final AntPathMatcher matcher = new AntPathMatcher(); private final String path; @@ -19,6 +25,11 @@ public class AntPathFileListFilter extends AbstractEntryListFilter { @Override public boolean accept(File file) { - return matcher.match( path, file.getPath()); + return matcher.match(path, file.getPath()); + } + + public List filterFiles(File[] files) { + Assert.notNull("'files' must not be null."); + return this.filterEntries(files); } } diff --git a/spring-integration-file/src/main/java/org/springframework/integration/file/filters/CompositeFileListFilter.java b/spring-integration-file/src/main/java/org/springframework/integration/file/filters/CompositeFileListFilter.java index a28a9a8707..416a1f7272 100644 --- a/spring-integration-file/src/main/java/org/springframework/integration/file/filters/CompositeFileListFilter.java +++ b/spring-integration-file/src/main/java/org/springframework/integration/file/filters/CompositeFileListFilter.java @@ -45,12 +45,9 @@ public class CompositeFileListFilter extends CompositeEntryListFilter impl * {@inheritDoc} *

* This implementation delegates to a collection of filters and returns only files that pass all the filters. - * @deprecated use {@link #filterEntries} instead */ - @Deprecated public List filterFiles(File[] files) { - Assert.notNull(files, "'files' should not be null"); - + Assert.notNull(files, "'files' should not be null."); return this.filterEntries(files); } } diff --git a/spring-integration-file/src/main/java/org/springframework/integration/file/filters/PatternMatchingFileListFilter.java b/spring-integration-file/src/main/java/org/springframework/integration/file/filters/PatternMatchingFileListFilter.java index 6607547af8..797df701b3 100644 --- a/spring-integration-file/src/main/java/org/springframework/integration/file/filters/PatternMatchingFileListFilter.java +++ b/spring-integration-file/src/main/java/org/springframework/integration/file/filters/PatternMatchingFileListFilter.java @@ -47,11 +47,9 @@ public class PatternMatchingFileListFilter extends PatternMatchingEntryListFilte /** * Filter out the files of which the name doesn't match the pattern of this filter - * - * @deprecated use {@link #filterEntries} instead */ public List filterFiles(File[] files) { - Assert.notNull(files, "'files' must not be null"); + Assert.notNull(files, "'files' must not be null."); return this.filterEntries(files); } } diff --git a/spring-integration-file/src/test/java/org/springframework/integration/file/recursive/FileInboundChannelAdapterWithRecursiveDirectoryTests.java b/spring-integration-file/src/test/java/org/springframework/integration/file/recursive/FileInboundChannelAdapterWithRecursiveDirectoryTests.java index 53b846a7be..b8792d06fd 100644 --- a/spring-integration-file/src/test/java/org/springframework/integration/file/recursive/FileInboundChannelAdapterWithRecursiveDirectoryTests.java +++ b/spring-integration-file/src/test/java/org/springframework/integration/file/recursive/FileInboundChannelAdapterWithRecursiveDirectoryTests.java @@ -60,17 +60,18 @@ public class FileInboundChannelAdapterWithRecursiveDirectoryTests { assertThat(files.receive(), hasPayload(file)); } + @SuppressWarnings("unchecked") @Test(timeout = 2000) - public void shouldReturnFilesMultipleLevels() throws IOException { + public void shouldReturnFilesMultipleLevels() throws IOException { - //when - File folder = directory.newFolder("foo"); - File siblingFile = directory.newFile("bar"); - File childFile = new File(folder, "baz"); + //when + File folder = directory.newFolder("foo"); + File siblingFile = directory.newFile("bar"); + File childFile = new File(folder, "baz"); assertTrue(childFile.createNewFile()); - List> received = Arrays.asList(files.receive(), files.receive()); - //verify - assertThat(received, hasItems(hasPayload(siblingFile), hasPayload(childFile))); - } + List> received = Arrays.asList(files.receive(), files.receive()); + //verify + assertThat(received, hasItems(hasPayload(siblingFile), hasPayload(childFile))); + } }