Class ProxyConnector

All Implemented Interfaces:
IoConnector, IoService

public class ProxyConnector extends AbstractIoConnector
ProxyConnector.java - Decorator for SocketConnector to provide proxy support, as suggested by MINA list discussions.

Operates by intercepting connect requests and replacing the endpoint address with the proxy address, then adding a ProxyFilter as the first IoFilter which performs any necessary handshaking with the proxy before allowing data to flow normally. During the handshake, any outgoing write requests are buffered.

Since:
MINA 2.0.0-M3
See Also:
  • Field Details

  • Constructor Details

    • ProxyConnector

      public ProxyConnector()
      Creates a new proxy connector.
    • ProxyConnector

      public ProxyConnector(SocketConnector connector)
      Creates a new proxy connector.
      Parameters:
      connector - Connector used to establish proxy connections.
    • ProxyConnector

      public ProxyConnector(SocketConnector connector, IoSessionConfig config, Executor executor)
      Creates a new proxy connector.
      Parameters:
      connector - The Connector used to establish proxy connections.
      config - The session confiugarion to use
      executor - The associated executor
  • Method Details

    • getSessionConfig

      public IoSessionConfig getSessionConfig()
      Returns:
      the default configuration of the new IoSessions created by this service.
    • getProxyIoSession

      public ProxyIoSession getProxyIoSession()
      Returns:
      the ProxyIoSession linked with this connector.
    • setProxyIoSession

      public void setProxyIoSession(ProxyIoSession proxyIoSession)
      Sets the proxy session object of this connector.
      Parameters:
      proxyIoSession - the configuration of this connector.
    • connect0

      protected ConnectFuture connect0(SocketAddress remoteAddress, SocketAddress localAddress, IoSessionInitializer<? extends ConnectFuture> sessionInitializer)
      Connects to the specified address. If communication starts successfully, events are fired to the connector's handler.
      Specified by:
      connect0 in class AbstractIoConnector
      Parameters:
      remoteAddress - the remote address to connect to
      localAddress - the local address
      sessionInitializer - the session initializer
      Returns:
      ConnectFuture that will tell the result of the connection attempt
    • cancelConnectFuture

      public void cancelConnectFuture()
      Cancels the real connection when reconnection is in use.
    • fireConnected

      protected ConnectFuture fireConnected(IoSession session)
      Fires the connection event on the real future to notify the client.
      Parameters:
      session - the current session
      Returns:
      the future holding the connected session
    • getConnector

      public final SocketConnector getConnector()
      Returns:
      the SocketConnector to be used for connections to the proxy server.
    • setConnector

      private void setConnector(SocketConnector connector)
      Sets the SocketConnector to be used for connections to the proxy server.
      Parameters:
      connector - the connector to use
    • dispose0

      protected void dispose0() throws Exception
      Implement this method to release any acquired resources. This method is invoked only once by AbstractIoService.dispose().
      Specified by:
      dispose0 in class AbstractIoService
      Throws:
      Exception - If the dispose failed
    • getTransportMetadata

      public TransportMetadata getTransportMetadata()
      Returns:
      the TransportMetadata that this service runs on.