Search in sources :

Example 1 with TcpConnectionExceptionEvent

use of org.springframework.integration.ip.tcp.connection.TcpConnectionExceptionEvent in project spring-integration by spring-projects.

the class ConnectionToConnectionTests method testConnectGuts.

@SuppressWarnings("unchecked")
private void testConnectGuts(AbstractClientConnectionFactory client, AbstractServerConnectionFactory server, String gatewayName, boolean expectExceptionOnClose) throws Exception {
    TestingUtilities.waitListening(server, null);
    client.setPort(server.getPort());
    client.start();
    for (int i = 0; i < 100; i++) {
        TcpConnection connection = client.getConnection();
        connection.send(MessageBuilder.withPayload("Test").build());
        Message<?> message = serverSideChannel.receive(10000);
        assertNotNull(message);
        MessageHistory history = MessageHistory.read(message);
        // org.springframework.integration.test.util.TestUtils
        Properties componentHistoryRecord = TestUtils.locateComponentInHistory(history, gatewayName, 0);
        assertNotNull(componentHistoryRecord);
        assertTrue(componentHistoryRecord.get("type").equals("ip:tcp-inbound-gateway"));
        assertNotNull(message);
        assertEquals("Test", new String((byte[]) message.getPayload()));
    }
    int clientOpens = 0;
    int clientCloses = 0;
    int serverOpens = 0;
    int serverCloses = 0;
    int clientExceptions = 0;
    Message<TcpConnectionEvent> eventMessage;
    int i = 0;
    while (i++ < (expectExceptionOnClose ? 600 : 400) && (eventMessage = (Message<TcpConnectionEvent>) events.receive(10000)) != null) {
        TcpConnectionEvent event = eventMessage.getPayload();
        if (event.getConnectionFactoryName().startsWith("client")) {
            if (event instanceof TcpConnectionOpenEvent) {
                clientOpens++;
            } else if (event instanceof TcpConnectionCloseEvent) {
                clientCloses++;
            } else if (event instanceof TcpConnectionExceptionEvent) {
                clientExceptions++;
            }
        } else if (event.getConnectionFactoryName().startsWith("server")) {
            if (event instanceof TcpConnectionOpenEvent) {
                serverOpens++;
            } else if (event instanceof TcpConnectionCloseEvent) {
                serverCloses++;
            }
        }
    }
    assertEquals(100, clientOpens);
    assertEquals(100, clientCloses);
    if (expectExceptionOnClose) {
        assertEquals(100, clientExceptions);
    }
    assertEquals(100, serverOpens);
    assertEquals(100, serverCloses);
}
Also used : MessageHistory(org.springframework.integration.history.MessageHistory) TcpConnectionCloseEvent(org.springframework.integration.ip.tcp.connection.TcpConnectionCloseEvent) TcpConnectionOpenEvent(org.springframework.integration.ip.tcp.connection.TcpConnectionOpenEvent) Message(org.springframework.messaging.Message) TcpConnection(org.springframework.integration.ip.tcp.connection.TcpConnection) Properties(java.util.Properties) TcpConnectionEvent(org.springframework.integration.ip.tcp.connection.TcpConnectionEvent) TcpConnectionExceptionEvent(org.springframework.integration.ip.tcp.connection.TcpConnectionExceptionEvent)

Aggregations

Properties (java.util.Properties)1 MessageHistory (org.springframework.integration.history.MessageHistory)1 TcpConnection (org.springframework.integration.ip.tcp.connection.TcpConnection)1 TcpConnectionCloseEvent (org.springframework.integration.ip.tcp.connection.TcpConnectionCloseEvent)1 TcpConnectionEvent (org.springframework.integration.ip.tcp.connection.TcpConnectionEvent)1 TcpConnectionExceptionEvent (org.springframework.integration.ip.tcp.connection.TcpConnectionExceptionEvent)1 TcpConnectionOpenEvent (org.springframework.integration.ip.tcp.connection.TcpConnectionOpenEvent)1 Message (org.springframework.messaging.Message)1