INT-1591 FileListFilter is now parameterized. Existing implementations required refactoring to specify <File> for <F>.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2008 the original author or authors.
|
||||
* Copyright 2002-2010 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -16,18 +16,22 @@
|
||||
|
||||
package org.springframework.integration.file;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.springframework.integration.file.entries.CompositeEntryListFilter;
|
||||
import org.springframework.integration.file.entries.EntryListFilter;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.Matchers.isA;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.Mockito.*;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.integration.file.filters.CompositeFileListFilter;
|
||||
import org.springframework.integration.file.filters.FileListFilter;
|
||||
|
||||
/**
|
||||
* @author Iwein Fuld
|
||||
@@ -35,46 +39,46 @@ import static org.mockito.Mockito.*;
|
||||
public class CompositeFileListFilterTests {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private EntryListFilter<File> fileFilterMock1 = mock(EntryListFilter.class);
|
||||
private FileListFilter<File> fileFilterMock1 = mock(FileListFilter.class);
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private EntryListFilter<File> fileFilterMock2 = mock(EntryListFilter.class);
|
||||
private FileListFilter<File> fileFilterMock2 = mock(FileListFilter.class);
|
||||
|
||||
private File fileMock = mock(File.class);
|
||||
|
||||
@Test
|
||||
public void forwardedToFilters() throws Exception {
|
||||
CompositeEntryListFilter<File> compositeFileFilter = new CompositeEntryListFilter<File>();
|
||||
compositeFileFilter .addFilter(fileFilterMock1);compositeFileFilter.addFilter( fileFilterMock2);
|
||||
CompositeFileListFilter<File> compositeFileFilter = new CompositeFileListFilter<File>();
|
||||
compositeFileFilter .addFilter(fileFilterMock1);compositeFileFilter.addFilter(fileFilterMock2);
|
||||
List<File> returnedFiles = Arrays.asList( fileMock);
|
||||
when(fileFilterMock1.filterEntries(isA(File[].class))).thenReturn(returnedFiles);
|
||||
when(fileFilterMock2.filterEntries(isA(File[].class))).thenReturn(returnedFiles);
|
||||
assertEquals(returnedFiles, compositeFileFilter.filterEntries(new File[]{fileMock}));
|
||||
verify(fileFilterMock1).filterEntries(isA(File[].class));
|
||||
verify(fileFilterMock2).filterEntries(isA(File[].class));
|
||||
when(fileFilterMock1.filterFiles(isA(File[].class))).thenReturn(returnedFiles);
|
||||
when(fileFilterMock2.filterFiles(isA(File[].class))).thenReturn(returnedFiles);
|
||||
assertEquals(returnedFiles, compositeFileFilter.filterFiles(new File[]{fileMock}));
|
||||
verify(fileFilterMock1).filterFiles(isA(File[].class));
|
||||
verify(fileFilterMock2).filterFiles(isA(File[].class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void forwardedToAddedFilters() throws Exception {
|
||||
CompositeEntryListFilter<File> compositeFileFilter = new CompositeEntryListFilter<File>();
|
||||
CompositeFileListFilter<File> compositeFileFilter = new CompositeFileListFilter<File>();
|
||||
compositeFileFilter.addFilter(fileFilterMock1);
|
||||
compositeFileFilter.addFilter( fileFilterMock2);
|
||||
List<File> returnedFiles = Arrays.asList(fileMock);
|
||||
when(fileFilterMock1.filterEntries(isA(File[].class))).thenReturn(returnedFiles);
|
||||
when(fileFilterMock2.filterEntries(isA(File[].class))).thenReturn(returnedFiles);
|
||||
assertEquals(returnedFiles, compositeFileFilter.filterEntries(new File[]{fileMock}));
|
||||
verify(fileFilterMock1).filterEntries(isA(File[].class));
|
||||
verify(fileFilterMock2).filterEntries(isA(File[].class));
|
||||
when(fileFilterMock1.filterFiles(isA(File[].class))).thenReturn(returnedFiles);
|
||||
when(fileFilterMock2.filterFiles(isA(File[].class))).thenReturn(returnedFiles);
|
||||
assertEquals(returnedFiles, compositeFileFilter.filterFiles(new File[]{fileMock}));
|
||||
verify(fileFilterMock1).filterFiles(isA(File[].class));
|
||||
verify(fileFilterMock2).filterFiles(isA(File[].class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void negative() throws Exception {
|
||||
CompositeEntryListFilter<File> compositeFileFilter = new CompositeEntryListFilter<File>();
|
||||
CompositeFileListFilter<File> compositeFileFilter = new CompositeFileListFilter<File>();
|
||||
compositeFileFilter.addFilter(fileFilterMock1);
|
||||
compositeFileFilter.addFilter(fileFilterMock2);
|
||||
|
||||
when(fileFilterMock2.filterEntries(isA(File[].class))).thenReturn(new ArrayList<File>());
|
||||
when(fileFilterMock1.filterEntries(isA(File[].class))).thenReturn(new ArrayList<File>());
|
||||
assertTrue(compositeFileFilter.filterEntries(new File[]{fileMock}).isEmpty());
|
||||
when(fileFilterMock2.filterFiles(isA(File[].class))).thenReturn(new ArrayList<File>());
|
||||
when(fileFilterMock1.filterFiles(isA(File[].class))).thenReturn(new ArrayList<File>());
|
||||
assertTrue(compositeFileFilter.filterFiles(new File[]{fileMock}).isEmpty());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,12 +13,12 @@
|
||||
<bean id="entryNameExtractor" class="org.springframework.integration.file.entries.FileEntryNameExtractor"/>
|
||||
|
||||
<!-- customized filter -->
|
||||
<bean id="legacyCompositeFilter" class="org.springframework.integration.file.entries.CompositeEntryListFilter">
|
||||
<bean id="legacyCompositeFilter" class="org.springframework.integration.file.filters.CompositeFileListFilter">
|
||||
<constructor-arg>
|
||||
<list>
|
||||
<bean class="org.springframework.integration.file.entries.AcceptOnceEntryFileListFilter"/>
|
||||
<bean class="org.springframework.integration.file.filters.AcceptOnceFileListFilter"/>
|
||||
<bean class="org.springframework.integration.file.TestFileListFilter"/>
|
||||
<bean class="org.springframework.integration.file.entries.PatternMatchingEntryListFilter">
|
||||
<bean class="org.springframework.integration.file.filters.PatternMatchingFileListFilter">
|
||||
<constructor-arg ref="entryNameExtractor"/>
|
||||
<constructor-arg value="test*"/>
|
||||
</bean>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2008 the original author or authors.
|
||||
* Copyright 2002-2010 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -16,8 +16,21 @@
|
||||
|
||||
package org.springframework.integration.file;
|
||||
|
||||
import org.junit.*;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNotSame;
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.DirectFieldAccessor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.integration.Message;
|
||||
@@ -25,11 +38,6 @@ import org.springframework.test.annotation.Repeat;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* @author Iwein Fuld
|
||||
*/
|
||||
|
||||
@@ -16,19 +16,21 @@
|
||||
|
||||
package org.springframework.integration.file;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.springframework.beans.factory.BeanCreationException;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
import org.springframework.integration.file.entries.EntryListFilter;
|
||||
import org.springframework.integration.file.entries.FileEntryNameExtractor;
|
||||
import org.springframework.integration.file.entries.PatternMatchingEntryListFilter;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.beans.factory.BeanCreationException;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
import org.springframework.integration.file.entries.FileEntryNameExtractor;
|
||||
import org.springframework.integration.file.entries.PatternMatchingEntryListFilter;
|
||||
import org.springframework.integration.file.filters.FileListFilter;
|
||||
import org.springframework.integration.file.filters.PatternMatchingFileListFilter;
|
||||
|
||||
/**
|
||||
* @author Mark Fisher
|
||||
@@ -41,8 +43,8 @@ public class PatternMatchingFileListFilterTests {
|
||||
public void matchSingleFile() {
|
||||
File[] files = new File[]{new File("/some/path/test.txt")};
|
||||
Pattern pattern = Pattern.compile("[a-z]+\\.txt");
|
||||
PatternMatchingEntryListFilter<File> filter = new PatternMatchingEntryListFilter<File>(fileEntryNameExtractor, pattern);
|
||||
List<File> accepted = filter.filterEntries(files);
|
||||
PatternMatchingFileListFilter<File> filter = new PatternMatchingFileListFilter<File>(fileEntryNameExtractor, pattern);
|
||||
List<File> accepted = filter.filterFiles(files);
|
||||
assertEquals(1, accepted.size());
|
||||
}
|
||||
|
||||
@@ -50,8 +52,8 @@ public class PatternMatchingFileListFilterTests {
|
||||
public void noMatchWithSingleFile() {
|
||||
File[] files = new File[]{new File("/some/path/Test.txt")};
|
||||
Pattern pattern = Pattern.compile("[a-z]+\\.txt");
|
||||
PatternMatchingEntryListFilter<File> filter = new PatternMatchingEntryListFilter<File>(fileEntryNameExtractor, pattern);
|
||||
List<File> accepted = filter.filterEntries(files);
|
||||
PatternMatchingFileListFilter<File> filter = new PatternMatchingFileListFilter<File>(fileEntryNameExtractor, pattern);
|
||||
List<File> accepted = filter.filterFiles(files);
|
||||
assertEquals(0, accepted.size());
|
||||
}
|
||||
|
||||
@@ -77,9 +79,9 @@ public class PatternMatchingFileListFilterTests {
|
||||
public void patternEditorInContext() {
|
||||
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
|
||||
"patternMatchingFileListFilterTests.xml", this.getClass());
|
||||
EntryListFilter<File> filter = (EntryListFilter<File>) context.getBean("filter");
|
||||
File[] files = new File[]{new File("/some/path/foo.txt")};
|
||||
List<File> accepted = filter.filterEntries(files);
|
||||
FileListFilter<File> filter = (FileListFilter<File>) context.getBean("filter");
|
||||
File[] files = new File[] { new File("/some/path/foo.txt") };
|
||||
List<File> accepted = filter.filterFiles(files);
|
||||
assertEquals(1, accepted.size());
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2008 the original author or authors.
|
||||
* Copyright 2002-2010 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -16,17 +16,19 @@
|
||||
|
||||
package org.springframework.integration.file;
|
||||
|
||||
import org.springframework.integration.file.entries.EntryListFilter;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.integration.file.filters.FileListFilter;
|
||||
|
||||
/**
|
||||
* @author Iwein Fuld
|
||||
*/
|
||||
public class TestFileListFilter implements EntryListFilter<File> {
|
||||
public List<File> filterEntries(File[] entries) {
|
||||
public class TestFileListFilter implements FileListFilter<File> {
|
||||
|
||||
public List<File> filterFiles(File[] entries) {
|
||||
return Arrays.asList(entries);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,25 +16,28 @@
|
||||
|
||||
package org.springframework.integration.file.config;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertSame;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Comparator;
|
||||
import java.util.concurrent.PriorityBlockingQueue;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.DirectFieldAccessor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.integration.channel.AbstractMessageChannel;
|
||||
import org.springframework.integration.file.DefaultDirectoryScanner;
|
||||
import org.springframework.integration.file.FileReadingMessageSource;
|
||||
import org.springframework.integration.file.entries.AcceptOnceEntryFileListFilter;
|
||||
import org.springframework.integration.file.filters.AcceptOnceFileListFilter;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Comparator;
|
||||
import java.util.concurrent.PriorityBlockingQueue;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* @author Iwein Fuld
|
||||
* @author Mark Fisher
|
||||
@@ -76,7 +79,7 @@ public class FileInboundChannelAdapterParserTests {
|
||||
DirectFieldAccessor scannerAccessor = new DirectFieldAccessor(scanner);
|
||||
Object filter = scannerAccessor.getPropertyValue("filter");
|
||||
assertTrue("'filter' should be set",
|
||||
filter instanceof AcceptOnceEntryFileListFilter);
|
||||
filter instanceof AcceptOnceFileListFilter);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -16,8 +16,17 @@
|
||||
|
||||
package org.springframework.integration.file.config;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Set;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.DirectFieldAccessor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
@@ -25,18 +34,13 @@ import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.integration.channel.AbstractMessageChannel;
|
||||
import org.springframework.integration.endpoint.AbstractEndpoint;
|
||||
import org.springframework.integration.file.FileReadingMessageSource;
|
||||
import org.springframework.integration.file.entries.AcceptOnceEntryFileListFilter;
|
||||
import org.springframework.integration.file.entries.CompositeEntryListFilter;
|
||||
import org.springframework.integration.file.entries.EntryListFilter;
|
||||
import org.springframework.integration.file.filters.AcceptOnceFileListFilter;
|
||||
import org.springframework.integration.file.filters.CompositeFileListFilter;
|
||||
import org.springframework.integration.file.filters.FileListFilter;
|
||||
import org.springframework.integration.file.filters.SimplePatternFileListFilter;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* @author Mark Fisher
|
||||
* @author Iwein Fuld
|
||||
@@ -83,15 +87,14 @@ public class FileInboundChannelAdapterWithPatternParserTests {
|
||||
@Test
|
||||
public void compositeFilterType() {
|
||||
DirectFieldAccessor scannerAccessor = new DirectFieldAccessor(accessor.getPropertyValue("scanner"));
|
||||
assertTrue(scannerAccessor.getPropertyValue("filter") instanceof CompositeEntryListFilter);
|
||||
assertTrue(scannerAccessor.getPropertyValue("filter") instanceof CompositeFileListFilter);
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("unchecked")
|
||||
public void compositeFilterSetSize() {
|
||||
DirectFieldAccessor scannerAccessor = new DirectFieldAccessor(accessor.getPropertyValue("scanner"));
|
||||
|
||||
Set<EntryListFilter<File>> filters = (Set<EntryListFilter<File>>) new DirectFieldAccessor(
|
||||
Set<FileListFilter<File>> filters = (Set<FileListFilter<File>>) new DirectFieldAccessor(
|
||||
scannerAccessor.getPropertyValue("filter")).getPropertyValue("fileFilters");
|
||||
assertEquals(2, filters.size());
|
||||
}
|
||||
@@ -100,12 +103,11 @@ public class FileInboundChannelAdapterWithPatternParserTests {
|
||||
@SuppressWarnings("unchecked")
|
||||
public void acceptOnceFilter() {
|
||||
DirectFieldAccessor scannerAccessor = new DirectFieldAccessor(accessor.getPropertyValue("scanner"));
|
||||
|
||||
Set<EntryListFilter<File>> filters = (Set<EntryListFilter<File>>) new DirectFieldAccessor(
|
||||
Set<FileListFilter<File>> filters = (Set<FileListFilter<File>>) new DirectFieldAccessor(
|
||||
scannerAccessor.getPropertyValue("filter")).getPropertyValue("fileFilters");
|
||||
boolean hasAcceptOnceFilter = false;
|
||||
for (EntryListFilter<File> filter : filters) {
|
||||
if (filter instanceof AcceptOnceEntryFileListFilter) {
|
||||
for (FileListFilter<File> filter : filters) {
|
||||
if (filter instanceof AcceptOnceFileListFilter) {
|
||||
hasAcceptOnceFilter = true;
|
||||
}
|
||||
}
|
||||
@@ -116,10 +118,10 @@ public class FileInboundChannelAdapterWithPatternParserTests {
|
||||
@SuppressWarnings("unchecked")
|
||||
public void patternFilter() {
|
||||
DirectFieldAccessor scannerAccessor = new DirectFieldAccessor(accessor.getPropertyValue("scanner"));
|
||||
Set<EntryListFilter<?>> filters = (Set<EntryListFilter<?>>) new DirectFieldAccessor(
|
||||
Set<FileListFilter<?>> filters = (Set<FileListFilter<?>>) new DirectFieldAccessor(
|
||||
scannerAccessor.getPropertyValue("filter")).getPropertyValue("fileFilters");
|
||||
String pattern = null;
|
||||
for (EntryListFilter<?> filter : filters) {
|
||||
for (FileListFilter<?> filter : filters) {
|
||||
if (filter instanceof SimplePatternFileListFilter) {
|
||||
pattern = (String) new DirectFieldAccessor(filter).getPropertyValue("path");
|
||||
}
|
||||
|
||||
@@ -16,27 +16,33 @@
|
||||
|
||||
package org.springframework.integration.file.config;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.DirectFieldAccessor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.integration.file.TestFileListFilter;
|
||||
import org.springframework.integration.file.entries.AcceptOnceEntryFileListFilter;
|
||||
import org.springframework.integration.file.entries.CompositeEntryListFilter;
|
||||
import org.springframework.integration.file.entries.EntryListFilter;
|
||||
import org.springframework.integration.file.filters.SimplePatternFileListFilter;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertSame;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.junit.Assert.*;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.DirectFieldAccessor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.integration.file.TestFileListFilter;
|
||||
import org.springframework.integration.file.filters.AcceptOnceFileListFilter;
|
||||
import org.springframework.integration.file.filters.CompositeFileListFilter;
|
||||
import org.springframework.integration.file.filters.FileListFilter;
|
||||
import org.springframework.integration.file.filters.SimplePatternFileListFilter;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
/**
|
||||
* @author Mark Fisher
|
||||
@@ -55,98 +61,98 @@ public class FileInboundChannelAdapterWithPreventDuplicatesFlagTests {
|
||||
|
||||
@Test
|
||||
public void filterAndNull() {
|
||||
EntryListFilter<?> filter = this.extractFilter("filterAndNull");
|
||||
assertFalse(filter instanceof CompositeEntryListFilter);
|
||||
FileListFilter<?> filter = this.extractFilter("filterAndNull");
|
||||
assertFalse(filter instanceof CompositeFileListFilter);
|
||||
assertSame(testFilter, filter);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void filterAndTrue() {
|
||||
EntryListFilter<?> filter = this.extractFilter("filterAndTrue");
|
||||
assertTrue(filter instanceof CompositeEntryListFilter);
|
||||
FileListFilter<?> filter = this.extractFilter("filterAndTrue");
|
||||
assertTrue(filter instanceof CompositeFileListFilter);
|
||||
Collection<?> filters = (Collection<?>) new DirectFieldAccessor(filter).getPropertyValue("fileFilters");
|
||||
assertTrue(filters.iterator().next() instanceof AcceptOnceEntryFileListFilter);
|
||||
assertTrue(filters.iterator().next() instanceof AcceptOnceFileListFilter);
|
||||
assertTrue(filters.contains(testFilter));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void filterAndFalse() throws Exception {
|
||||
EntryListFilter<?> filter = this.extractFilter("filterAndFalse");
|
||||
assertFalse(filter instanceof CompositeEntryListFilter);
|
||||
FileListFilter<?> filter = this.extractFilter("filterAndFalse");
|
||||
assertFalse(filter instanceof CompositeFileListFilter);
|
||||
assertSame(testFilter, filter);
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("unchecked")
|
||||
public void patternAndNull() throws Exception {
|
||||
EntryListFilter<?> filter = this.extractFilter("patternAndNull");
|
||||
assertTrue(filter instanceof CompositeEntryListFilter);
|
||||
Collection<EntryListFilter<File>> filters = (Collection<EntryListFilter<File>>)
|
||||
FileListFilter<?> filter = this.extractFilter("patternAndNull");
|
||||
assertTrue(filter instanceof CompositeFileListFilter);
|
||||
Collection<FileListFilter<File>> filters = (Collection<FileListFilter<File>>)
|
||||
new DirectFieldAccessor(filter).getPropertyValue("fileFilters");
|
||||
Iterator<EntryListFilter<File>> iterator = filters.iterator();
|
||||
assertTrue(iterator.next() instanceof AcceptOnceEntryFileListFilter);
|
||||
Iterator<FileListFilter<File>> iterator = filters.iterator();
|
||||
assertTrue(iterator.next() instanceof AcceptOnceFileListFilter);
|
||||
assertThat(iterator.next(), is(SimplePatternFileListFilter.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("unchecked")
|
||||
public void patternAndTrue() throws Exception {
|
||||
EntryListFilter<?> filter = this.extractFilter("patternAndTrue");
|
||||
assertTrue(filter instanceof CompositeEntryListFilter);
|
||||
Collection<EntryListFilter<File>> filters = (Collection<EntryListFilter<File>>)
|
||||
FileListFilter<?> filter = this.extractFilter("patternAndTrue");
|
||||
assertTrue(filter instanceof CompositeFileListFilter);
|
||||
Collection<FileListFilter<File>> filters = (Collection<FileListFilter<File>>)
|
||||
new DirectFieldAccessor(filter).getPropertyValue("fileFilters");
|
||||
Iterator<EntryListFilter<File>> iterator = filters.iterator();
|
||||
assertTrue(iterator.next() instanceof AcceptOnceEntryFileListFilter);
|
||||
Iterator<FileListFilter<File>> iterator = filters.iterator();
|
||||
assertTrue(iterator.next() instanceof AcceptOnceFileListFilter);
|
||||
assertThat(iterator.next(), is(SimplePatternFileListFilter.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void patternAndFalse() throws Exception {
|
||||
EntryListFilter<File> filter = this.extractFilter("patternAndFalse");
|
||||
assertFalse(filter instanceof CompositeEntryListFilter);
|
||||
FileListFilter<File> filter = this.extractFilter("patternAndFalse");
|
||||
assertFalse(filter instanceof CompositeFileListFilter);
|
||||
assertThat(filter, is(SimplePatternFileListFilter.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void defaultAndNull() throws Exception {
|
||||
EntryListFilter<File> filter = this.extractFilter("defaultAndNull");
|
||||
FileListFilter<File> filter = this.extractFilter("defaultAndNull");
|
||||
assertNotNull(filter);
|
||||
assertFalse(filter instanceof CompositeEntryListFilter);
|
||||
assertTrue(filter instanceof AcceptOnceEntryFileListFilter);
|
||||
assertFalse(filter instanceof CompositeFileListFilter);
|
||||
assertTrue(filter instanceof AcceptOnceFileListFilter);
|
||||
|
||||
File testFile = new File("test");
|
||||
File[] files = new File[] { testFile, testFile, testFile };
|
||||
List<File> result = filter.filterEntries(files);
|
||||
List<File> result = filter.filterFiles(files);
|
||||
assertEquals(1, result.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void defaultAndTrue() throws Exception {
|
||||
EntryListFilter<File> filter = this.extractFilter("defaultAndTrue");
|
||||
assertFalse(filter instanceof CompositeEntryListFilter);
|
||||
assertTrue(filter instanceof AcceptOnceEntryFileListFilter);
|
||||
FileListFilter<File> filter = this.extractFilter("defaultAndTrue");
|
||||
assertFalse(filter instanceof CompositeFileListFilter);
|
||||
assertTrue(filter instanceof AcceptOnceFileListFilter);
|
||||
File testFile = new File("test");
|
||||
File[] files = new File[] { testFile, testFile, testFile };
|
||||
List<File> result = filter.filterEntries(files);
|
||||
List<File> result = filter.filterFiles(files);
|
||||
assertEquals(1, result.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void defaultAndFalse() throws Exception {
|
||||
EntryListFilter<File> filter = this.extractFilter("defaultAndFalse");
|
||||
FileListFilter<File> filter = this.extractFilter("defaultAndFalse");
|
||||
assertNotNull(filter);
|
||||
assertFalse(filter instanceof CompositeEntryListFilter);
|
||||
assertFalse(filter instanceof AcceptOnceEntryFileListFilter);
|
||||
assertFalse(filter instanceof CompositeFileListFilter);
|
||||
assertFalse(filter instanceof AcceptOnceFileListFilter);
|
||||
File testFile = new File("test");
|
||||
File[] files = new File[] { testFile, testFile, testFile };
|
||||
List<File> result = filter.filterEntries(files);
|
||||
List<File> result = filter.filterFiles(files);
|
||||
assertEquals(3, result.size());
|
||||
}
|
||||
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private EntryListFilter<File> extractFilter(String beanName) {
|
||||
return (EntryListFilter<File>)
|
||||
private FileListFilter<File> extractFilter(String beanName) {
|
||||
return (FileListFilter<File>)
|
||||
new DirectFieldAccessor(
|
||||
new DirectFieldAccessor(
|
||||
new DirectFieldAccessor(context.getBean(beanName))
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
</inbound-channel-adapter>
|
||||
<beans:bean class="org.springframework.integration.file.config.FileListFilterFactoryBean" />
|
||||
|
||||
<beans:bean id="filter" class="org.springframework.integration.file.entries.CompositeEntryListFilter">
|
||||
<beans:bean id="filter" class="org.springframework.integration.file.filters.CompositeFileListFilter">
|
||||
<beans:constructor-arg>
|
||||
<beans:list></beans:list>
|
||||
</beans:constructor-arg>
|
||||
|
||||
@@ -16,17 +16,24 @@
|
||||
|
||||
package org.springframework.integration.file.config;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.springframework.beans.DirectFieldAccessor;
|
||||
import org.springframework.integration.file.entries.*;
|
||||
import org.springframework.integration.file.filters.SimplePatternFileListFilter;
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertSame;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.junit.Assert.*;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.beans.DirectFieldAccessor;
|
||||
import org.springframework.integration.file.filters.AbstractFileListFilter;
|
||||
import org.springframework.integration.file.filters.AcceptOnceFileListFilter;
|
||||
import org.springframework.integration.file.filters.CompositeFileListFilter;
|
||||
import org.springframework.integration.file.filters.FileListFilter;
|
||||
import org.springframework.integration.file.filters.SimplePatternFileListFilter;
|
||||
|
||||
/**
|
||||
* @author Mark Fisher
|
||||
@@ -47,8 +54,8 @@ public class FileListFilterFactoryBeanTests {
|
||||
FileListFilterFactoryBean factory = new FileListFilterFactoryBean();
|
||||
TestFilter testFilter = new TestFilter();
|
||||
factory.setFilterReference(testFilter);
|
||||
EntryListFilter<File> result = factory.getObject();
|
||||
assertFalse(result instanceof CompositeEntryListFilter);
|
||||
FileListFilter<File> result = factory.getObject();
|
||||
assertFalse(result instanceof CompositeFileListFilter);
|
||||
assertSame(testFilter, result);
|
||||
}
|
||||
|
||||
@@ -58,10 +65,10 @@ public class FileListFilterFactoryBeanTests {
|
||||
TestFilter testFilter = new TestFilter();
|
||||
factory.setFilterReference(testFilter);
|
||||
factory.setPreventDuplicates(Boolean.TRUE);
|
||||
EntryListFilter<File> result = factory.getObject();
|
||||
assertTrue(result instanceof CompositeEntryListFilter);
|
||||
FileListFilter<File> result = factory.getObject();
|
||||
assertTrue(result instanceof CompositeFileListFilter);
|
||||
Collection<?> filters = (Collection<?>) new DirectFieldAccessor(result).getPropertyValue("fileFilters");
|
||||
assertTrue(filters.iterator().next() instanceof AcceptOnceEntryFileListFilter);
|
||||
assertTrue(filters.iterator().next() instanceof AcceptOnceFileListFilter);
|
||||
assertTrue(filters.contains(testFilter));
|
||||
}
|
||||
|
||||
@@ -71,8 +78,8 @@ public class FileListFilterFactoryBeanTests {
|
||||
TestFilter testFilter = new TestFilter();
|
||||
factory.setFilterReference(testFilter);
|
||||
factory.setPreventDuplicates(Boolean.FALSE);
|
||||
EntryListFilter<File> result = factory.getObject();
|
||||
assertFalse(result instanceof CompositeEntryListFilter);
|
||||
FileListFilter<File> result = factory.getObject();
|
||||
assertFalse(result instanceof CompositeFileListFilter);
|
||||
assertSame(testFilter, result);
|
||||
}
|
||||
|
||||
@@ -81,12 +88,12 @@ public class FileListFilterFactoryBeanTests {
|
||||
public void filenamePatternAndPreventDuplicatesNull() throws Exception {
|
||||
FileListFilterFactoryBean factory = new FileListFilterFactoryBean();
|
||||
factory.setFilenamePattern("foo");
|
||||
EntryListFilter<File> result = factory.getObject();
|
||||
assertTrue(result instanceof CompositeEntryListFilter);
|
||||
Collection<EntryListFilter<?>> filters = (Collection<EntryListFilter<?>>)
|
||||
FileListFilter<File> result = factory.getObject();
|
||||
assertTrue(result instanceof CompositeFileListFilter);
|
||||
Collection<FileListFilter<?>> filters = (Collection<FileListFilter<?>>)
|
||||
new DirectFieldAccessor(result).getPropertyValue("fileFilters");
|
||||
Iterator<EntryListFilter<?>> iterator = filters.iterator();
|
||||
assertTrue(iterator.next() instanceof AcceptOnceEntryFileListFilter);
|
||||
Iterator<FileListFilter<?>> iterator = filters.iterator();
|
||||
assertTrue(iterator.next() instanceof AcceptOnceFileListFilter);
|
||||
assertThat(iterator.next(), is(SimplePatternFileListFilter.class));
|
||||
}
|
||||
|
||||
@@ -96,12 +103,12 @@ public class FileListFilterFactoryBeanTests {
|
||||
FileListFilterFactoryBean factory = new FileListFilterFactoryBean();
|
||||
factory.setFilenamePattern(("foo"));
|
||||
factory.setPreventDuplicates(Boolean.TRUE);
|
||||
EntryListFilter<File> result = factory.getObject();
|
||||
assertTrue(result instanceof CompositeEntryListFilter);
|
||||
Collection<EntryListFilter<?>> filters = (Collection<EntryListFilter<?>>)
|
||||
FileListFilter<File> result = factory.getObject();
|
||||
assertTrue(result instanceof CompositeFileListFilter);
|
||||
Collection<FileListFilter<?>> filters = (Collection<FileListFilter<?>>)
|
||||
new DirectFieldAccessor(result).getPropertyValue("fileFilters");
|
||||
Iterator<EntryListFilter<?>> iterator = filters.iterator();
|
||||
assertTrue(iterator.next() instanceof AcceptOnceEntryFileListFilter);
|
||||
Iterator<FileListFilter<?>> iterator = filters.iterator();
|
||||
assertTrue(iterator.next() instanceof AcceptOnceFileListFilter);
|
||||
assertThat(iterator.next(), is(SimplePatternFileListFilter.class));
|
||||
}
|
||||
|
||||
@@ -110,13 +117,13 @@ public class FileListFilterFactoryBeanTests {
|
||||
FileListFilterFactoryBean factory = new FileListFilterFactoryBean();
|
||||
factory.setFilenamePattern(("foo"));
|
||||
factory.setPreventDuplicates(Boolean.FALSE);
|
||||
EntryListFilter<File> result = factory.getObject();
|
||||
assertFalse(result instanceof CompositeEntryListFilter);
|
||||
FileListFilter<File> result = factory.getObject();
|
||||
assertFalse(result instanceof CompositeFileListFilter);
|
||||
assertThat(result, is(SimplePatternFileListFilter.class));
|
||||
}
|
||||
|
||||
|
||||
private static class TestFilter extends AbstractEntryListFilter<File> {
|
||||
private static class TestFilter extends AbstractFileListFilter<File> {
|
||||
@Override
|
||||
public boolean accept(File file) {
|
||||
return true;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2008 the original author or authors.
|
||||
* Copyright 2002-2010 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -13,25 +13,27 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.integration.file.locking;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.junit.Assert.assertThat;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.DirectFieldAccessor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.integration.endpoint.SourcePollingChannelAdapter;
|
||||
import org.springframework.integration.file.FileReadingMessageSource;
|
||||
import org.springframework.integration.file.entries.CompositeEntryListFilter;
|
||||
import org.springframework.integration.file.filters.CompositeFileListFilter;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.junit.Assert.assertThat;
|
||||
|
||||
/**
|
||||
* @author Iwein Fuld
|
||||
*/
|
||||
@@ -65,7 +67,7 @@ public class FileLockingNamespaceTests {
|
||||
@Test
|
||||
public void shouldSetCustomLockerProperly() {
|
||||
assertThat(extractFromScanner("locker", customLockingSource), is(StubLocker.class));
|
||||
assertThat(extractFromScanner("filter", customLockingSource), is(CompositeEntryListFilter.class));
|
||||
assertThat(extractFromScanner("filter", customLockingSource), is(CompositeFileListFilter.class));
|
||||
}
|
||||
|
||||
private Object extractFromScanner(String propertyName, FileReadingMessageSource source) {
|
||||
@@ -75,7 +77,7 @@ public class FileLockingNamespaceTests {
|
||||
@Test
|
||||
public void shouldSetNioLockerProperly() {
|
||||
assertThat(extractFromScanner("locker", nioLockingSource), is(NioFileLocker.class));
|
||||
assertThat(extractFromScanner("filter", nioLockingSource), is(CompositeEntryListFilter.class));
|
||||
assertThat(extractFromScanner("filter", nioLockingSource), is(CompositeFileListFilter.class));
|
||||
}
|
||||
|
||||
public static class StubLocker extends AbstractFileLockerFilter {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2008 the original author or authors.
|
||||
* Copyright 2002-2010 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -13,6 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.integration.file.locking;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.nullValue;
|
||||
@@ -26,6 +27,7 @@ import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.integration.file.FileReadingMessageSource;
|
||||
@@ -37,51 +39,51 @@ import org.springframework.test.context.ContextConfiguration;
|
||||
@ContextConfiguration
|
||||
@RunWith(org.springframework.test.context.junit4.SpringJUnit4ClassRunner.class)
|
||||
public class FileLockingWithMultipleSourcesIntegrationTests {
|
||||
private static File workdir;
|
||||
|
||||
@BeforeClass
|
||||
public static void setupWorkDirectory() throws Exception {
|
||||
workdir = new File(
|
||||
new File(System.getProperty("java.io.tmpdir")),
|
||||
FileLockingWithMultipleSourcesIntegrationTests.class.getSimpleName()
|
||||
);
|
||||
workdir.mkdir();
|
||||
}
|
||||
private static File workdir;
|
||||
|
||||
@Autowired
|
||||
@Qualifier("fileSource1")
|
||||
private FileReadingMessageSource fileSource1;
|
||||
@BeforeClass
|
||||
public static void setupWorkDirectory() throws Exception {
|
||||
workdir = new File(new File(System.getProperty("java.io.tmpdir")),
|
||||
FileLockingWithMultipleSourcesIntegrationTests.class.getSimpleName());
|
||||
workdir.mkdir();
|
||||
}
|
||||
|
||||
@Autowired
|
||||
@Qualifier("fileSource2")
|
||||
private FileReadingMessageSource fileSource2;
|
||||
@Autowired
|
||||
@Qualifier("fileSource1")
|
||||
private FileReadingMessageSource fileSource1;
|
||||
|
||||
@Autowired
|
||||
@Qualifier("fileSource2")
|
||||
private FileReadingMessageSource fileSource3;
|
||||
@Autowired
|
||||
@Qualifier("fileSource2")
|
||||
private FileReadingMessageSource fileSource2;
|
||||
|
||||
@Before
|
||||
public void cleanoutWorkDir() {
|
||||
for (File file : workdir.listFiles()) {
|
||||
file.delete();
|
||||
}
|
||||
}
|
||||
@Autowired
|
||||
@Qualifier("fileSource2")
|
||||
private FileReadingMessageSource fileSource3;
|
||||
|
||||
@Test
|
||||
public void filePickedUpOnceWithDistinctFilters() throws IOException {
|
||||
File testFile = new File(workdir, "test");
|
||||
testFile.createNewFile();
|
||||
assertThat(fileSource1.receive(), hasPayload(testFile));
|
||||
assertThat(fileSource2.receive(), nullValue());
|
||||
FileChannelCache.closeChannelFor(testFile);
|
||||
}
|
||||
@Before
|
||||
public void cleanoutWorkDir() {
|
||||
for (File file : workdir.listFiles()) {
|
||||
file.delete();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void filePickedUpOnceWithDistinctFilters() throws IOException {
|
||||
File testFile = new File(workdir, "test");
|
||||
testFile.createNewFile();
|
||||
assertThat(fileSource1.receive(), hasPayload(testFile));
|
||||
assertThat(fileSource2.receive(), nullValue());
|
||||
FileChannelCache.closeChannelFor(testFile);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void filePickedUpTwiceWithSharedFilter() throws Exception {
|
||||
File testFile = new File(workdir, "test");
|
||||
testFile.createNewFile();
|
||||
assertThat(fileSource1.receive(), hasPayload(testFile));
|
||||
assertThat(fileSource3.receive(), hasPayload(testFile));
|
||||
FileChannelCache.closeChannelFor(testFile);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void filePickedUpTwiceWithSharedFilter() throws Exception {
|
||||
File testFile = new File(workdir, "test");
|
||||
testFile.createNewFile();
|
||||
assertThat(fileSource1.receive(), hasPayload(testFile));
|
||||
assertThat(fileSource3.receive(), hasPayload(testFile));
|
||||
FileChannelCache.closeChannelFor(testFile);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,20 +13,22 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.integration.file.locking;
|
||||
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.TemporaryFolder;
|
||||
import org.springframework.integration.file.entries.EntryListFilter;
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.junit.Assert.assertThat;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.TemporaryFolder;
|
||||
|
||||
import org.springframework.integration.file.filters.FileListFilter;
|
||||
|
||||
/**
|
||||
* @author Iwein Fuld
|
||||
@@ -49,20 +51,20 @@ public class NioFileLockerTests {
|
||||
NioFileLocker filter = new NioFileLocker();
|
||||
File testFile = new File(workdir, "test0");
|
||||
testFile.createNewFile();
|
||||
assertThat(filter.filterEntries(workdir.listFiles()).get(0), is(testFile));
|
||||
assertThat(filter.filterFiles(workdir.listFiles()).get(0), is(testFile));
|
||||
filter.lock(testFile);
|
||||
assertThat(filter.filterEntries(workdir.listFiles()).get(0), is(testFile));
|
||||
assertThat(filter.filterFiles(workdir.listFiles()).get(0), is(testFile));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void fileNotListedWhenLockedByOtherFilter() throws IOException {
|
||||
NioFileLocker filter1 = new NioFileLocker();
|
||||
EntryListFilter<File> filter2 = new NioFileLocker();
|
||||
FileListFilter<File> filter2 = new NioFileLocker();
|
||||
File testFile = new File(workdir, "test1");
|
||||
testFile.createNewFile();
|
||||
assertThat(filter1.filterEntries(workdir.listFiles()).get(0), is(testFile));
|
||||
assertThat(filter1.filterFiles(workdir.listFiles()).get(0), is(testFile));
|
||||
filter1.lock(testFile);
|
||||
assertThat(filter2.filterEntries(workdir.listFiles()), is((List<File>)new ArrayList<File>()));
|
||||
assertThat(filter2.filterFiles(workdir.listFiles()), is((List<File>) new ArrayList<File>()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<constructor-arg value="fo+\.[tx]{3}"/>
|
||||
</bean>
|
||||
-->
|
||||
<bean id="filter" class="org.springframework.integration.file.entries.PatternMatchingEntryListFilter">
|
||||
<bean id="filter" class="org.springframework.integration.file.filters.PatternMatchingFileListFilter">
|
||||
<constructor-arg>
|
||||
<bean class="org.springframework.integration.file.entries.FileEntryNameExtractor"/>
|
||||
</constructor-arg>
|
||||
|
||||
Reference in New Issue
Block a user