polishing INT-2235

This commit is contained in:
Mark Fisher
2011-11-22 14:51:39 -05:00
parent 72c8fff421
commit 123ba64d2b
4 changed files with 26 additions and 30 deletions

View File

@@ -19,12 +19,10 @@ package org.springframework.integration.resource;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.util.Collection;
import java.util.Collections;
import org.junit.Test;
@@ -37,7 +35,6 @@ import org.springframework.integration.channel.QueueChannel;
import org.springframework.integration.endpoint.SourcePollingChannelAdapter;
import org.springframework.integration.test.util.TestUtils;
import org.springframework.integration.util.CollectionFilter;
import org.springframework.util.CollectionUtils;
/**
* @author Oleg Zhurakousky
@@ -49,7 +46,7 @@ public class ResourceInboundChannelAdapterParserTests {
public void testDefaultConfig(){
ApplicationContext context = new ClassPathXmlApplicationContext("ResourcePatternResolver-config.xml", this.getClass());
SourcePollingChannelAdapter resourceAdapter = context.getBean("resourceAdapterDefault", SourcePollingChannelAdapter.class);
ResourceMessageSource source = TestUtils.getPropertyValue(resourceAdapter, "source", ResourceMessageSource.class);
ResourceRetrievingMessageSource source = TestUtils.getPropertyValue(resourceAdapter, "source", ResourceRetrievingMessageSource.class);
assertNotNull(source);
boolean autoStartup = TestUtils.getPropertyValue(resourceAdapter, "autoStartup", Boolean.class);
assertFalse(autoStartup);
@@ -67,7 +64,7 @@ public class ResourceInboundChannelAdapterParserTests {
public void testCustomPatternResolver(){
ApplicationContext context = new ClassPathXmlApplicationContext("ResourcePatternResolver-config-custom.xml", this.getClass());
SourcePollingChannelAdapter resourceAdapter = context.getBean("resourceAdapterDefault", SourcePollingChannelAdapter.class);
ResourceMessageSource source = TestUtils.getPropertyValue(resourceAdapter, "source", ResourceMessageSource.class);
ResourceRetrievingMessageSource source = TestUtils.getPropertyValue(resourceAdapter, "source", ResourceRetrievingMessageSource.class);
assertNotNull(source);
assertEquals(context.getBean("customResolver"), TestUtils.getPropertyValue(source, "patternResolver"));
}
@@ -105,31 +102,27 @@ public class ResourceInboundChannelAdapterParserTests {
ApplicationContext context = new ClassPathXmlApplicationContext("ResourcePatternResolver-config-usagerf.xml", this.getClass());
SourcePollingChannelAdapter resourceAdapter = context.getBean("resourceAdapterDefault", SourcePollingChannelAdapter.class);
ResourceMessageSource source = TestUtils.getPropertyValue(resourceAdapter, "source", ResourceMessageSource.class);
ResourceRetrievingMessageSource source = TestUtils.getPropertyValue(resourceAdapter, "source", ResourceRetrievingMessageSource.class);
assertNotNull(source);
assertEquals(context.getBean("rlFilter"), TestUtils.getPropertyValue(source, "filter"));
TestCollectionFilter customFilter = context.getBean("customFilter", TestCollectionFilter.class);
assertEquals(customFilter, TestUtils.getPropertyValue(source, "filter"));
assertFalse(customFilter.invoked);
resourceAdapter.start();
QueueChannel resultChannel = context.getBean("resultChannel", QueueChannel.class);
Message<Resource[]> message = (Message<Resource[]>) resultChannel.receive(1000);
assertNotNull(message);
message = (Message<Resource[]>) resultChannel.receive(1000);
assertNull(message);
assertTrue(customFilter.invoked);
}
public static class OneItemAndNeverAgainResourceListFilter implements CollectionFilter<Resource> {
public static class TestCollectionFilter implements CollectionFilter<Resource> {
private volatile boolean invoked = false;
private volatile boolean once = false;
public Collection<Resource> filter(Collection<Resource> unfilteredResources) {
if (!once && !CollectionUtils.isEmpty(unfilteredResources)) {
once = true;
return Collections.singletonList(unfilteredResources.iterator().next());
}
return null;
this.invoked = true;
return unfilteredResources;
}
}

View File

@@ -7,12 +7,12 @@
<int:resource-inbound-channel-adapter id="resourceAdapterDefault" channel="resultChannel"
pattern="file:#{T(java.lang.System).getProperty('java.io.tmpdir') + 'testUsage*'}"
filter="rlFilter" auto-startup="true">
pattern="file:#{T(java.lang.System).getProperty('java.io.tmpdir') + '/testUsage*'}"
filter="customFilter" auto-startup="false">
<int:poller fixed-rate="500"/>
</int:resource-inbound-channel-adapter>
<bean id="rlFilter" class="org.springframework.integration.resource.ResourceInboundChannelAdapterParserTests.OneItemAndNeverAgainResourceListFilter"/>
<bean id="customFilter" class="org.springframework.integration.resource.ResourceInboundChannelAdapterParserTests.TestCollectionFilter"/>
<int:channel id="resultChannel">
<int:queue/>