QUALITY: fix warnings, let AntPathFileListFilter implement FileListFilter
This commit is contained in:
@@ -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<FileRead
|
||||
} else {
|
||||
CompositeEntryListFilter<File> fileCompositeEntryListFilter = new CompositeEntryListFilter<File>();
|
||||
|
||||
for (EntryListFilter<File> 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);
|
||||
|
||||
@@ -54,8 +54,9 @@ public class CompositeEntryListFilter<T> implements EntryListFilter<T> {
|
||||
return leftOver;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked") //to please the eclipse compiler
|
||||
public CompositeEntryListFilter<T> addFilter(EntryListFilter<T> filter) {
|
||||
return this.addFilters(Arrays.asList(filter));
|
||||
return this.addFilters(filter);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -63,8 +64,7 @@ public class CompositeEntryListFilter<T> implements EntryListFilter<T> {
|
||||
* @return this CompositeFileFilter instance with the added filters
|
||||
* @see #addFilters(Collection)
|
||||
*/
|
||||
@SuppressWarnings("unused")
|
||||
public CompositeEntryListFilter<T> addFilters(EntryListFilter<T>[] filters) {
|
||||
public CompositeEntryListFilter<T> addFilters(EntryListFilter<T>... filters) {
|
||||
return addFilters(Arrays.asList(filters));
|
||||
}
|
||||
|
||||
@@ -76,8 +76,9 @@ public class CompositeEntryListFilter<T> implements EntryListFilter<T> {
|
||||
* @param filtersToAdd a list of filters to add
|
||||
* @return this CompositeEntryListFilter instance with the added filters
|
||||
*/
|
||||
public CompositeEntryListFilter<T> addFilters(Collection<EntryListFilter<T>> filtersToAdd) {
|
||||
for (EntryListFilter<T> elf : filtersToAdd)
|
||||
@SuppressWarnings("unchecked")
|
||||
public CompositeEntryListFilter<T> addFilters(Collection<? extends EntryListFilter<T>> filtersToAdd) {
|
||||
for (EntryListFilter<? extends T> elf : filtersToAdd)
|
||||
if (elf instanceof InitializingBean) {
|
||||
try {
|
||||
((InitializingBean) elf).afterPropertiesSet();
|
||||
|
||||
@@ -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<File
|
||||
* Filter out all the files that this instance has seen before.
|
||||
*/
|
||||
public List<File> filterFiles(File[] files) {
|
||||
Assert.notNull(files, "'files' must not be null.");
|
||||
return this.filterEntries(files);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<File> {
|
||||
public class AntPathFileListFilter extends AbstractEntryListFilter<File> implements FileListFilter {
|
||||
|
||||
private final AntPathMatcher matcher = new AntPathMatcher();
|
||||
private final String path;
|
||||
@@ -19,6 +25,11 @@ public class AntPathFileListFilter extends AbstractEntryListFilter<File> {
|
||||
|
||||
@Override
|
||||
public boolean accept(File file) {
|
||||
return matcher.match( path, file.getPath());
|
||||
return matcher.match(path, file.getPath());
|
||||
}
|
||||
|
||||
public List<File> filterFiles(File[] files) {
|
||||
Assert.notNull("'files' must not be null.");
|
||||
return this.filterEntries(files);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,12 +45,9 @@ public class CompositeFileListFilter extends CompositeEntryListFilter<File> impl
|
||||
* {@inheritDoc}
|
||||
* <p/>
|
||||
* 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<File> filterFiles(File[] files) {
|
||||
Assert.notNull(files, "'files' should not be null");
|
||||
|
||||
Assert.notNull(files, "'files' should not be null.");
|
||||
return this.filterEntries(files);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<File> filterFiles(File[] files) {
|
||||
Assert.notNull(files, "'files' must not be null");
|
||||
Assert.notNull(files, "'files' must not be null.");
|
||||
return this.filterEntries(files);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<Message<?>> received = Arrays.asList(files.receive(), files.receive());
|
||||
//verify
|
||||
assertThat(received, hasItems(hasPayload(siblingFile), hasPayload(childFile)));
|
||||
}
|
||||
List<Message<?>> received = Arrays.asList(files.receive(), files.receive());
|
||||
//verify
|
||||
assertThat(received, hasItems(hasPayload(siblingFile), hasPayload(childFile)));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user