diff --git a/docs/src/reference/docbook/ip.xml b/docs/src/reference/docbook/ip.xml
index 3bf14e07bf..1f724b9d6a 100644
--- a/docs/src/reference/docbook/ip.xml
+++ b/docs/src/reference/docbook/ip.xml
@@ -123,6 +123,13 @@
check-length="true" />]]>
A basic multicast inbound udp channel adapter.
+
+ By default, reverse DNS lookups are done on inbound packets to convert IP addresses to
+ hostnames for use in message headers.
+ In environments where DNS is not configured, this can cause delays.
+ This default behavior can be overridden by setting the lookup-host
+ attribute to "false".
+
TCP Connection Factories
@@ -306,6 +313,13 @@
For full details of the attributes available on connection factories, see the
reference at the end of this section.
+
+ By default, reverse DNS lookups are done on inbound packets to convert IP addresses to
+ hostnames for use in message headers.
+ In environments where DNS is not configured, this can cause connection delays.
+ This default behavior can be overridden by setting the lookup-host
+ attribute to "false".
+
Tcp Connection Interceptors
@@ -782,6 +796,16 @@
However, pool-size is also used for the server socket backlog,
regardless of whether an external task executor is used. Defaults to 5.
+
+ lookup-host
+ Y
+ Y
+ true, false
+
+ Specifies whether reverse lookups are done on IP addresses to convert to host names
+ for use in message headers. If false, the IP address is used instead. Defaults to true.
+
+
interceptor-factory-chain
Y
@@ -885,6 +909,14 @@
component, the MessagingException message containing the exception
and failed message is sent to this channel.
+
+ lookup-host
+ true, false
+
+ Specifies whether reverse lookups are done on IP addresses to convert to host names
+ for use in message headers. If false, the IP address is used instead. Defaults to true.
+
+
diff --git a/spring-integration-ip/src/main/java/org/springframework/integration/ip/config/IpAdapterParserUtils.java b/spring-integration-ip/src/main/java/org/springframework/integration/ip/config/IpAdapterParserUtils.java
index 20a2ae9804..2c1c734998 100644
--- a/spring-integration-ip/src/main/java/org/springframework/integration/ip/config/IpAdapterParserUtils.java
+++ b/spring-integration-ip/src/main/java/org/springframework/integration/ip/config/IpAdapterParserUtils.java
@@ -104,6 +104,8 @@ public abstract class IpAdapterParserUtils {
public static final String REPLY_TIMEOUT = "reply-timeout";
public static final String REPLY_CHANNEL = "reply-channel";
+
+ public static final String LOOKUP_HOST = "lookup-host";
/**
diff --git a/spring-integration-ip/src/main/java/org/springframework/integration/ip/config/TcpConnectionParser.java b/spring-integration-ip/src/main/java/org/springframework/integration/ip/config/TcpConnectionParser.java
index e42f86f670..5903425e24 100644
--- a/spring-integration-ip/src/main/java/org/springframework/integration/ip/config/TcpConnectionParser.java
+++ b/spring-integration-ip/src/main/java/org/springframework/integration/ip/config/TcpConnectionParser.java
@@ -92,6 +92,8 @@ public class TcpConnectionParser extends AbstractBeanDefinitionParser {
IpAdapterParserUtils.SINGLE_USE);
IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element,
IpAdapterParserUtils.INTERCEPTOR_FACTORY_CHAIN);
+ IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element,
+ IpAdapterParserUtils.LOOKUP_HOST);
return builder.getBeanDefinition();
}
diff --git a/spring-integration-ip/src/main/java/org/springframework/integration/ip/config/UdpInboundChannelAdapterParser.java b/spring-integration-ip/src/main/java/org/springframework/integration/ip/config/UdpInboundChannelAdapterParser.java
index 80830b3294..127774e1d1 100644
--- a/spring-integration-ip/src/main/java/org/springframework/integration/ip/config/UdpInboundChannelAdapterParser.java
+++ b/spring-integration-ip/src/main/java/org/springframework/integration/ip/config/UdpInboundChannelAdapterParser.java
@@ -47,6 +47,8 @@ public class UdpInboundChannelAdapterParser extends AbstractChannelAdapterParser
element, "error-channel", "errorChannel");
IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element,
IpAdapterParserUtils.TASK_EXECUTOR);
+ IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element,
+ IpAdapterParserUtils.LOOKUP_HOST);
return builder.getBeanDefinition();
}
diff --git a/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/AbstractConnectionFactory.java b/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/AbstractConnectionFactory.java
index bb8cb23a76..db89441c0f 100644
--- a/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/AbstractConnectionFactory.java
+++ b/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/AbstractConnectionFactory.java
@@ -86,9 +86,11 @@ public abstract class AbstractConnectionFactory
protected int poolSize = 5;
- protected boolean active;
+ protected volatile boolean active;
protected TcpConnectionInterceptorFactoryChain interceptorFactoryChain;
+
+ private boolean lookupHost = true;
/**
* Sets socket attributes on the socket.
@@ -305,6 +307,22 @@ public abstract class AbstractConnectionFactory
this.interceptorFactoryChain = interceptorFactoryChain;
}
+ /**
+ * If true, DNS reverse lookup is done on the remote ip address.
+ * Default true.
+ * @param lookupHost the lookupHost to set
+ */
+ public void setLookupHost(boolean lookupHost) {
+ this.lookupHost = lookupHost;
+ }
+
+ /**
+ * @return the lookupHost
+ */
+ public boolean isLookupHost() {
+ return lookupHost;
+ }
+
/**
* Closes the server.
*/
diff --git a/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/AbstractTcpConnection.java b/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/AbstractTcpConnection.java
index 963af34fe0..5860a2dc22 100644
--- a/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/AbstractTcpConnection.java
+++ b/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/AbstractTcpConnection.java
@@ -70,13 +70,26 @@ public abstract class AbstractTcpConnection implements TcpConnection {
private String hostAddress = "unknown";
- public AbstractTcpConnection(Socket socket, boolean server) {
+ private int port;
+
+ private final boolean lookupHost;
+
+ private int hashCode;
+
+ public AbstractTcpConnection(Socket socket, boolean server, boolean lookupHost) {
this.server = server;
+ this.lookupHost = lookupHost;
+ this.hashCode = socket.hashCode();
InetAddress inetAddress = socket.getInetAddress();
if (inetAddress != null) {
this.hostAddress = inetAddress.getHostAddress();
- this.hostName = inetAddress.getHostName();
+ if (this.lookupHost) {
+ this.hostName = inetAddress.getHostName();
+ } else {
+ this.hostName = this.hostAddress;
+ }
}
+ this.connectionId = this.hostName + ":" + this.port + ":" + this.hashCode;
try {
this.soLinger = socket.getSoLinger();
} catch (SocketException e) { }
@@ -239,5 +252,8 @@ public abstract class AbstractTcpConnection implements TcpConnection {
return this.hostName;
}
+ public String getConnectionId() {
+ return this.connectionId;
+ }
}
diff --git a/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNetClientConnectionFactory.java b/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNetClientConnectionFactory.java
index b79d8e1a76..0b9d92d2e9 100644
--- a/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNetClientConnectionFactory.java
+++ b/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNetClientConnectionFactory.java
@@ -50,7 +50,7 @@ public class TcpNetClientConnectionFactory extends
logger.debug("Opening new socket connection to " + this.host + ":" + this.port);
Socket socket = SocketFactory.getDefault().createSocket(this.host, this.port);
setSocketAttributes(socket);
- TcpConnection connection = new TcpNetConnection(socket, false);
+ TcpConnection connection = new TcpNetConnection(socket, false, this.isLookupHost());
connection = wrapConnection(connection);
initializeConnection(connection, socket);
this.taskExecutor.execute(connection);
diff --git a/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNetConnection.java b/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNetConnection.java
index 43a3333cbf..d44c64b5ac 100644
--- a/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNetConnection.java
+++ b/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNetConnection.java
@@ -16,14 +16,12 @@
package org.springframework.integration.ip.tcp.connection;
-import java.net.InetAddress;
import java.net.Socket;
import java.net.SocketTimeoutException;
import org.springframework.core.serializer.Deserializer;
import org.springframework.integration.Message;
import org.springframework.integration.ip.tcp.serializer.SoftEndOfStreamException;
-import org.springframework.integration.ip.util.SocketUtils;
/**
* A TcpConnection that uses and underlying {@link Socket}.
@@ -44,10 +42,9 @@ public class TcpNetConnection extends AbstractTcpConnection {
* @param server if true this connection was created as
* a result of an incoming request.
*/
- public TcpNetConnection(Socket socket, boolean server) {
- super(socket, server);
+ public TcpNetConnection(Socket socket, boolean server, boolean lookupHost) {
+ super(socket, server, lookupHost);
this.socket = socket;
- getConnectionId();
}
/**
@@ -162,12 +159,4 @@ public class TcpNetConnection extends AbstractTcpConnection {
}
}
- public String getConnectionId() {
- if (this.connectionId == null) {
- this.connectionId = SocketUtils.getSocketId(this.socket);
- }
- return this.connectionId;
- }
-
-
}
diff --git a/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNetServerConnectionFactory.java b/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNetServerConnectionFactory.java
index c43cec354a..1f17431935 100644
--- a/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNetServerConnectionFactory.java
+++ b/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNetServerConnectionFactory.java
@@ -72,7 +72,7 @@ public class TcpNetServerConnectionFactory extends AbstractServerConnectionFacto
final Socket socket = serverSocket.accept();
logger.debug("Accepted connection from " + socket.getInetAddress().getHostAddress());
setSocketAttributes(socket);
- TcpConnection connection = new TcpNetConnection(socket, true);
+ TcpConnection connection = new TcpNetConnection(socket, true, this.isLookupHost());
connection = wrapConnection(connection);
this.initializeConnection(connection, socket);
this.taskExecutor.execute(connection);
diff --git a/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNioClientConnectionFactory.java b/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNioClientConnectionFactory.java
index 42ab27344e..ad6df77813 100644
--- a/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNioClientConnectionFactory.java
+++ b/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNioClientConnectionFactory.java
@@ -78,7 +78,7 @@ public class TcpNioClientConnectionFactory extends
logger.debug("Opening new socket channel connection to " + this.host + ":" + this.port);
SocketChannel socketChannel = SocketChannel.open(new InetSocketAddress(this.host, this.port));
setSocketAttributes(socketChannel.socket());
- TcpNioConnection connection = new TcpNioConnection(socketChannel, false);
+ TcpNioConnection connection = new TcpNioConnection(socketChannel, false, this.isLookupHost());
connection.setUsingDirectBuffers(this.usingDirectBuffers);
if (this.taskExecutor == null) {
connection.setTaskExecutor(Executors.newSingleThreadExecutor());
diff --git a/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNioConnection.java b/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNioConnection.java
index c658bcdb12..40ae936a30 100644
--- a/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNioConnection.java
+++ b/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNioConnection.java
@@ -32,7 +32,6 @@ import java.util.concurrent.atomic.AtomicInteger;
import org.springframework.integration.Message;
import org.springframework.integration.ip.tcp.serializer.SoftEndOfStreamException;
-import org.springframework.integration.ip.util.SocketUtils;
/**
* A TcpConnection that uses and underlying {@link SocketChannel}.
@@ -71,16 +70,12 @@ public class TcpNioConnection extends AbstractTcpConnection {
* @param server if true this connection was created as
* a result of an incoming request.
*/
- public TcpNioConnection(SocketChannel socketChannel, boolean server) throws Exception {
- super(socketChannel.socket(), server);
+ public TcpNioConnection(SocketChannel socketChannel, boolean server, boolean lookupHost) throws Exception {
+ super(socketChannel.socket(), server, lookupHost);
this.socketChannel = socketChannel;
this.pipedInputStream = new PipedInputStream();
this.pipedOutputStream = new PipedOutputStream(this.pipedInputStream);
this.channelOutputStream = new ChannelOutputStream();
- getConnectionId();
- if (this.connectionId == null) {
- throw new Exception("Null id");
- }
}
public void close() {
@@ -338,13 +333,6 @@ public class TcpNioConnection extends AbstractTcpConnection {
this.usingDirectBuffers = usingDirectBuffers;
}
- public String getConnectionId() {
- if (this.connectionId == null) {
- this.connectionId = SocketUtils.getSocketId(this.socketChannel.socket());
- }
- return this.connectionId;
- }
-
/**
*
* @return Time of last read.
diff --git a/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNioServerConnectionFactory.java b/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNioServerConnectionFactory.java
index 6574d3e081..a6d826f1d2 100644
--- a/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNioServerConnectionFactory.java
+++ b/spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/TcpNioServerConnectionFactory.java
@@ -142,7 +142,7 @@ public class TcpNioServerConnectionFactory extends AbstractServerConnectionFacto
private TcpNioConnection createTcpNioConnection(SocketChannel socketChannel) {
try {
- TcpNioConnection connection = new TcpNioConnection(socketChannel, true);
+ TcpNioConnection connection = new TcpNioConnection(socketChannel, true, this.isLookupHost());
connection.setUsingDirectBuffers(this.usingDirectBuffers);
TcpConnection wrappedConnection = wrapConnection(connection);
this.initializeConnection(wrappedConnection, socketChannel.socket());
diff --git a/spring-integration-ip/src/main/java/org/springframework/integration/ip/udp/DatagramPacketMessageMapper.java b/spring-integration-ip/src/main/java/org/springframework/integration/ip/udp/DatagramPacketMessageMapper.java
index f3ab492594..ff72e6b783 100644
--- a/spring-integration-ip/src/main/java/org/springframework/integration/ip/udp/DatagramPacketMessageMapper.java
+++ b/spring-integration-ip/src/main/java/org/springframework/integration/ip/udp/DatagramPacketMessageMapper.java
@@ -66,6 +66,8 @@ public class DatagramPacketMessageMapper implements InboundMessageMapper 0) {
message = MessageBuilder.withPayload(payload)
- .setHeader(IpHeaders.HOSTNAME, packet.getAddress().getHostName())
- .setHeader(IpHeaders.IP_ADDRESS, packet.getAddress().getHostAddress())
+ .setHeader(IpHeaders.HOSTNAME, hostName)
+ .setHeader(IpHeaders.IP_ADDRESS, hostAddress)
.build();
}
}
diff --git a/spring-integration-ip/src/main/java/org/springframework/integration/ip/udp/UnicastReceivingChannelAdapter.java b/spring-integration-ip/src/main/java/org/springframework/integration/ip/udp/UnicastReceivingChannelAdapter.java
index a07014b00d..1b49345761 100644
--- a/spring-integration-ip/src/main/java/org/springframework/integration/ip/udp/UnicastReceivingChannelAdapter.java
+++ b/spring-integration-ip/src/main/java/org/springframework/integration/ip/udp/UnicastReceivingChannelAdapter.java
@@ -189,7 +189,7 @@ public class UnicastReceivingChannelAdapter extends AbstractInternetProtocolRece
super.doStop();
try {
this.socket.close();
- socket = null;
+ this.socket = null;
}
catch (Exception e) {
// ignore
@@ -200,6 +200,10 @@ public class UnicastReceivingChannelAdapter extends AbstractInternetProtocolRece
this.soSendBufferSize = soSendBufferSize;
}
+ public void setLookupHost(boolean lookupHost) {
+ this.mapper.setLookupHost(lookupHost);
+ }
+
public String getComponentType(){
return "ip:udp-inbound-channel-adapter";
}
diff --git a/spring-integration-ip/src/main/java/org/springframework/integration/ip/util/SocketUtils.java b/spring-integration-ip/src/main/java/org/springframework/integration/ip/util/SocketUtils.java
deleted file mode 100644
index 780b2e7b49..0000000000
--- a/spring-integration-ip/src/main/java/org/springframework/integration/ip/util/SocketUtils.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.integration.ip.util;
-
-import java.net.InetAddress;
-import java.net.Socket;
-
-/**
- * @author Gary Russell
- * @since 2.0
- */
-public abstract class SocketUtils {
-
- public static String getSocketId(Socket socket) {
- InetAddress inetAddress = socket.getInetAddress();
- String hostName = "";
- if (inetAddress != null) {
- hostName = inetAddress.getHostName();
- }
- return hostName + ":" + socket.getPort() + ":" + socket.hashCode();
- }
-
-}
diff --git a/spring-integration-ip/src/main/resources/org/springframework/integration/ip/config/spring-integration-ip-2.0.xsd b/spring-integration-ip/src/main/resources/org/springframework/integration/ip/config/spring-integration-ip-2.0.xsd
index c6de636097..7f76faf778 100644
--- a/spring-integration-ip/src/main/resources/org/springframework/integration/ip/config/spring-integration-ip-2.0.xsd
+++ b/spring-integration-ip/src/main/resources/org/springframework/integration/ip/config/spring-integration-ip-2.0.xsd
@@ -62,6 +62,14 @@ its configuration specifies the number of threads.
+
+
+
+Whether or not to do a DNS reverse-lookup on the remote ip address to insert the host name into the
+message headers (ip_hostName). Default "true".
+
+
+
@@ -385,6 +393,14 @@ its configuration specifies the number of threads.
+
+
+
+Whether or not to do a DNS reverse-lookup on the remote ip address to insert the host name into the
+message headers (ip_connectionId, ip_hostName). Default "true".
+
+
+
diff --git a/spring-integration-ip/src/test/java/org/springframework/integration/ip/config/ParserUnitTests-context.xml b/spring-integration-ip/src/test/java/org/springframework/integration/ip/config/ParserUnitTests-context.xml
index 1b888f7d9d..8dc22a1919 100644
--- a/spring-integration-ip/src/test/java/org/springframework/integration/ip/config/ParserUnitTests-context.xml
+++ b/spring-integration-ip/src/test/java/org/springframework/integration/ip/config/ParserUnitTests-context.xml
@@ -30,6 +30,7 @@
local-address="127.0.0.1"
task-executor="externalTE"
error-channel="errorChannel"
+ lookup-host="false"
/>
@@ -27,6 +28,7 @@
host="localhost"
port="#{server.port}"
single-use="true"
+ lookup-host="false"
so-timeout="100000"
/>
diff --git a/spring-integration-ip/src/test/java/org/springframework/integration/ip/tcp/ConnectionToConnectionTests.java b/spring-integration-ip/src/test/java/org/springframework/integration/ip/tcp/ConnectionToConnectionTests.java
index d4e3c80012..84635eef01 100644
--- a/spring-integration-ip/src/test/java/org/springframework/integration/ip/tcp/ConnectionToConnectionTests.java
+++ b/spring-integration-ip/src/test/java/org/springframework/integration/ip/tcp/ConnectionToConnectionTests.java
@@ -18,6 +18,7 @@ package org.springframework.integration.ip.tcp;
import static junit.framework.Assert.assertTrue;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import java.util.Properties;
@@ -99,4 +100,19 @@ public class ConnectionToConnectionTests {
assertNotNull(message);
assertEquals("Test", new String((byte[]) message.getPayload()));
}
+
+ @Test
+ public void testLookup() throws Exception {
+ TcpConnection connection = client.getConnection();
+ assertFalse(connection.getConnectionId().contains("localhost"));
+ connection.close();
+ client.setLookupHost(true);
+ connection = client.getConnection();
+ assertTrue(connection.getConnectionId().contains("localhost"));
+ connection.close();
+ client.setLookupHost(false);
+ connection = client.getConnection();
+ assertFalse(connection.getConnectionId().contains("localhost"));
+ connection.close();
+ }
}
diff --git a/spring-integration-ip/src/test/java/org/springframework/integration/ip/tcp/connection/TcpMessageMapperTests.java b/spring-integration-ip/src/test/java/org/springframework/integration/ip/tcp/connection/TcpMessageMapperTests.java
index 414bdf62c0..29cde829e5 100644
--- a/spring-integration-ip/src/test/java/org/springframework/integration/ip/tcp/connection/TcpMessageMapperTests.java
+++ b/spring-integration-ip/src/test/java/org/springframework/integration/ip/tcp/connection/TcpMessageMapperTests.java
@@ -73,7 +73,7 @@ public class TcpMessageMapperTests {
TcpMessageMapper mapper = new TcpMessageMapper();
Socket socket = SocketFactory.getDefault().createSocket();
- TcpConnection connection = new AbstractTcpConnection(socket, false) {
+ TcpConnection connection = new AbstractTcpConnection(socket, false, false) {
public void run() {
}
public void send(Message> message) throws Exception {
diff --git a/spring-integration-ip/src/test/java/org/springframework/integration/ip/udp/DatagramPacketMessageMapperTests.java b/spring-integration-ip/src/test/java/org/springframework/integration/ip/udp/DatagramPacketMessageMapperTests.java
index 9a8296a03f..fb6f07ec0d 100644
--- a/spring-integration-ip/src/test/java/org/springframework/integration/ip/udp/DatagramPacketMessageMapperTests.java
+++ b/spring-integration-ip/src/test/java/org/springframework/integration/ip/udp/DatagramPacketMessageMapperTests.java
@@ -18,6 +18,7 @@ package org.springframework.integration.ip.udp;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.fail;
import java.net.DatagramPacket;
@@ -71,6 +72,15 @@ public class DatagramPacketMessageMapperTests {
assertEquals(messageOut.getHeaders().get(IpHeaders.ACK_ID).toString(),
message.getHeaders().getId().toString());
}
+ assertTrue(((String)messageOut.getHeaders().get(IpHeaders.HOSTNAME)).contains("localhost"));
+ mapper.setLookupHost(false);
+ messageOut = mapper.toMessage(packet);
+ assertEquals(new String(message.getPayload()), new String(messageOut.getPayload()));
+ if (ack) {
+ assertEquals(messageOut.getHeaders().get(IpHeaders.ACK_ID).toString(),
+ message.getHeaders().getId().toString());
+ }
+ assertFalse(((String)messageOut.getHeaders().get(IpHeaders.HOSTNAME)).contains("localhost"));
}
@Test