org.apache.mina.proxy
Class ProxyConnector

java.lang.Object
  extended by org.apache.mina.core.service.AbstractIoService
      extended by org.apache.mina.core.service.AbstractIoConnector
          extended by org.apache.mina.proxy.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
Author:
Apache MINA Project
See Also:
http://www.nabble.com/Meta-Transport%3A-an-idea-on-implementing-reconnection-and-proxy-td12969001.html, http://issues.apache.org/jira/browse/DIRMINA-415

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.mina.core.service.AbstractIoService
AbstractIoService.ServiceOperationFuture
 
Field Summary
 
Fields inherited from class org.apache.mina.core.service.AbstractIoService
disposalLock
 
Constructor Summary
ProxyConnector()
          Creates a new proxy connector.
ProxyConnector(SocketConnector connector)
          Creates a new proxy connector.
ProxyConnector(SocketConnector connector, IoSessionConfig config, java.util.concurrent.Executor executor)
          Creates a new proxy connector.
 
Method Summary
 void cancelConnectFuture()
          Cancels the real connection when reconnection is in use.
protected  ConnectFuture connect0(java.net.SocketAddress remoteAddress, java.net.SocketAddress localAddress, IoSessionInitializer<? extends ConnectFuture> sessionInitializer)
          Connects to the specified address.
protected  void dispose0()
          Implement this method to release any acquired resources.
protected  ConnectFuture fireConnected(IoSession session)
          Fires the connection event on the real future to notify the client.
 SocketConnector getConnector()
          Get the SocketConnector to be used for connections to the proxy server.
 ProxyIoSession getProxyIoSession()
          Returns the ProxyIoSession linked with this connector.
 IoSessionConfig getSessionConfig()
          Returns the default configuration of the new IoSessions created by this service.
 TransportMetadata getTransportMetadata()
          Returns the TransportMetadata that this service runs on.
 void setProxyIoSession(ProxyIoSession proxyIoSession)
          Sets the proxy session object of this connector.
 
Methods inherited from class org.apache.mina.core.service.AbstractIoConnector
connect, connect, connect, connect, connect, connect, finishSessionInitialization0, getConnectTimeout, getConnectTimeoutCheckInterval, getConnectTimeoutMillis, getDefaultRemoteAddress, setConnectTimeout, setConnectTimeoutCheckInterval, setConnectTimeoutMillis, setDefaultRemoteAddress, toString
 
Methods inherited from class org.apache.mina.core.service.AbstractIoService
addListener, broadcast, dispose, dispose, executeWorker, executeWorker, getActivationTime, getFilterChain, getFilterChainBuilder, getHandler, getListeners, getManagedSessionCount, getManagedSessions, getScheduledWriteBytes, getScheduledWriteMessages, getSessionDataStructureFactory, getStatistics, initSession, isActive, isDisposed, isDisposing, removeListener, setFilterChainBuilder, setHandler, setSessionDataStructureFactory
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.mina.core.service.IoService
addListener, broadcast, dispose, dispose, getActivationTime, getFilterChain, getFilterChainBuilder, getHandler, getManagedSessionCount, getManagedSessions, getScheduledWriteBytes, getScheduledWriteMessages, getSessionDataStructureFactory, getStatistics, isActive, isDisposed, isDisposing, removeListener, setFilterChainBuilder, setHandler, setSessionDataStructureFactory
 

Constructor Detail

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,
                      java.util.concurrent.Executor executor)
Creates a new proxy connector.

See Also:
AbstractIoConnector(IoSessionConfig, Executor).
Method Detail

getSessionConfig

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

Specified by:
getSessionConfig in interface IoService
Overrides:
getSessionConfig in class AbstractIoService

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(java.net.SocketAddress remoteAddress,
                                 java.net.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()
Get the SocketConnector to be used for connections to the proxy server.


dispose0

protected void dispose0()
                 throws java.lang.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:
java.lang.Exception

getTransportMetadata

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



Copyright © 2004-2011 Apache MINA Project. All Rights Reserved.