INT-2264, INT-2263 TCP GW Reconcile reply-timeout
reply-timeout had the wrong function, when compared to other gateways. Add remote-timeout to reflect the time we will wait for a reply from the remote system Make reply-timeout set the sendTimeout on the messaging template Set remore-timeout to reply-timeout (if set) unless remote-timeout is explicitly set. Update reference doc, and migration guide on Wiki.
This commit is contained in:
@@ -184,6 +184,7 @@
|
||||
connection-factory="cfC2"
|
||||
request-timeout="234"
|
||||
reply-timeout="567"
|
||||
remote-timeout="789"
|
||||
order="24"
|
||||
auto-startup="false"
|
||||
phase="127"
|
||||
|
||||
@@ -39,6 +39,7 @@ import org.springframework.core.task.TaskExecutor;
|
||||
import org.springframework.integration.MessageChannel;
|
||||
import org.springframework.integration.channel.DirectChannel;
|
||||
import org.springframework.integration.core.MessageHandler;
|
||||
import org.springframework.integration.core.MessagingTemplate;
|
||||
import org.springframework.integration.endpoint.EventDrivenConsumer;
|
||||
import org.springframework.integration.ip.tcp.TcpInboundGateway;
|
||||
import org.springframework.integration.ip.tcp.TcpOutboundGateway;
|
||||
@@ -382,7 +383,10 @@ public class ParserUnitTests {
|
||||
DirectFieldAccessor dfa = new DirectFieldAccessor(tcpOutboundGateway);
|
||||
assertSame(cfC2, dfa.getPropertyValue("connectionFactory"));
|
||||
assertEquals(234L, dfa.getPropertyValue("requestTimeout"));
|
||||
assertEquals(567L, dfa.getPropertyValue("replyTimeout"));
|
||||
MessagingTemplate messagingTemplate = TestUtils.getPropertyValue(tcpOutboundGateway, "messagingTemplate",
|
||||
MessagingTemplate.class);
|
||||
assertEquals(Long.valueOf(567), TestUtils.getPropertyValue(messagingTemplate, "sendTimeout", Long.class));
|
||||
assertEquals(789L, dfa.getPropertyValue("remoteTimeout"));
|
||||
assertEquals("outGateway",tcpOutboundGateway.getComponentName());
|
||||
assertEquals("ip:tcp-outbound-gateway", tcpOutboundGateway.getComponentType());
|
||||
assertTrue(cfC2.isLookupHost());
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2011 the original author or authors.
|
||||
* Copyright 2002-2012 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,6 +16,7 @@
|
||||
|
||||
package org.springframework.integration.ip.tcp;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
@@ -46,6 +47,7 @@ import org.springframework.integration.ip.tcp.connection.AbstractConnectionFacto
|
||||
import org.springframework.integration.ip.tcp.connection.TcpNetClientConnectionFactory;
|
||||
import org.springframework.integration.ip.util.SocketTestUtils;
|
||||
import org.springframework.integration.support.MessageBuilder;
|
||||
import org.springframework.integration.test.util.TestUtils;
|
||||
|
||||
/**
|
||||
* @author Gary Russell
|
||||
@@ -90,7 +92,15 @@ public class TcpOutboundGatewayTests {
|
||||
QueueChannel replyChannel = new QueueChannel();
|
||||
gateway.setRequiresReply(true);
|
||||
gateway.setOutputChannel(replyChannel);
|
||||
gateway.setReplyTimeout(60000);
|
||||
// check the default remote timeout
|
||||
assertEquals(Long.valueOf(10000), TestUtils.getPropertyValue(gateway, "remoteTimeout", Long.class));
|
||||
gateway.setSendTimeout(123);
|
||||
// ensure this also changed the remote timeout
|
||||
assertEquals(Long.valueOf(123), TestUtils.getPropertyValue(gateway, "remoteTimeout", Long.class));
|
||||
gateway.setRemoteTimeout(60000);
|
||||
gateway.setSendTimeout(61000);
|
||||
// ensure this did NOT change the remote timeout
|
||||
assertEquals(Long.valueOf(60000), TestUtils.getPropertyValue(gateway, "remoteTimeout", Long.class));
|
||||
gateway.setRequestTimeout(60000);
|
||||
for (int i = 100; i < 200; i++) {
|
||||
gateway.handleMessage(MessageBuilder.withPayload("Test" + i).build());
|
||||
|
||||
Reference in New Issue
Block a user