Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Complete
    • Affects Version/s: 2.0 M2
    • Fix Version/s: 2.0 M4
    • Component/s: Adapters
    • Labels:
      None

      Description

      This will be a "bidirectional" inbound TCP endpoint (sends replies). It's not likely that we would need the same for UDP, but we probably do want to consider a mirror image "outbound gateway".

        Activity

        Hide
        Gary Russell added a comment -

        This is relatively straightforward when each client of a (potential) inbound gateway sends one message and waits for its response. It gets a little more tricky if a client multiplexes many messages over its connection. In this arena, we'd need a correlation id of some kind in the wire protocol so the client can associate a response with its corresponding request.

        This is not so big an issue if the "other end" of the connection is a spring-integration outbound gateway because SI can use whatever wire protocol it likes. It is more difficult, though, for interop with non spring-integration clients. We may need something more robust than the current channel adapter pluggable wire protocol for tcp to handle more sophisticated wire protocols that include correlation data.

        I see several options/phases; what can get done and when will depend on need and resource availability.

        1. Inbound gateway that does not support multiplexed requests per connection.
        + blocking outbound gateway that single threads requests/responses over its connection.

        2. Outbound/inbound gateways that support multiplexed requests over each connection, using a fixed wire protocol (albeit extensible via the current simple pluggable mechanism).

        3. Build on 2 with a more sophisticated wire protocol pluggability.

        Show
        Gary Russell added a comment - This is relatively straightforward when each client of a (potential) inbound gateway sends one message and waits for its response. It gets a little more tricky if a client multiplexes many messages over its connection. In this arena, we'd need a correlation id of some kind in the wire protocol so the client can associate a response with its corresponding request. This is not so big an issue if the "other end" of the connection is a spring-integration outbound gateway because SI can use whatever wire protocol it likes. It is more difficult, though, for interop with non spring-integration clients. We may need something more robust than the current channel adapter pluggable wire protocol for tcp to handle more sophisticated wire protocols that include correlation data. I see several options/phases; what can get done and when will depend on need and resource availability. 1. Inbound gateway that does not support multiplexed requests per connection. + blocking outbound gateway that single threads requests/responses over its connection. 2. Outbound/inbound gateways that support multiplexed requests over each connection, using a fixed wire protocol (albeit extensible via the current simple pluggable mechanism). 3. Build on 2 with a more sophisticated wire protocol pluggability.
        Hide
        Shahzada Hatim added a comment -

        am really looking forward to this feature. Any ideas when can we see it in trunk.

        Show
        Shahzada Hatim added a comment - am really looking forward to this feature. Any ideas when can we see it in trunk.
        Hide
        Gary Russell added a comment -

        It's in the trunk now; see SimpleTcpNetInboundGateway.

        	<int-ip:inbound-gateway id="telnetGateway"
        		port="9876"
        		request-channel="telnetInTransformerChannel"
        		message-format="crlf" />
        

        This configuration allows you to open a telnet session to 'localhost 9876'.

        Please let us know whether it serves your needs; thanks.

        Show
        Gary Russell added a comment - It's in the trunk now; see SimpleTcpNetInboundGateway. <int-ip:inbound-gateway id="telnetGateway" port="9876" request-channel="telnetInTransformerChannel" message-format="crlf" /> This configuration allows you to open a telnet session to 'localhost 9876'. Please let us know whether it serves your needs; thanks.
        Hide
        Gary Russell added a comment -

        SimpleTcpNetOutboundGateway was added to trunk last weekend.

        Show
        Gary Russell added a comment - SimpleTcpNetOutboundGateway was added to trunk last weekend.
        Hide
        Gary Russell added a comment -

        Simple inbound and outbound gateways are now available.

        Show
        Gary Russell added a comment - Simple inbound and outbound gateways are now available.

          People

          • Assignee:
            Gary Russell
            Reporter:
            Mark Fisher
          • Votes:
            5 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: