public class org.apache.dubbo.remoting.transport.mina.MinaServer extends org.apache.dubbo.remoting.transport.AbstractServer
{
private static final org.apache.dubbo.common.logger.Logger logger;
private org.apache.mina.transport.socket.nio.SocketAcceptor acceptor;
public void <init>(org.apache.dubbo.common.URL, org.apache.dubbo.remoting.ChannelHandler) throws org.apache.dubbo.remoting.RemotingException
{
org.apache.dubbo.remoting.ChannelHandler v, v;
org.apache.dubbo.common.URL v, v;
org.apache.dubbo.remoting.transport.mina.MinaServer v;
v := @this: org.apache.dubbo.remoting.transport.mina.MinaServer;
v := @parameter: org.apache.dubbo.common.URL;
v := @parameter: org.apache.dubbo.remoting.ChannelHandler;
v = staticinvoke <org.apache.dubbo.common.utils.ExecutorUtil: org.apache.dubbo.common.URL setThreadName(org.apache.dubbo.common.URL,java.lang.String)>(v, "DubboServerHandler");
v = staticinvoke <org.apache.dubbo.remoting.transport.dispatcher.ChannelHandlers: org.apache.dubbo.remoting.ChannelHandler wrap(org.apache.dubbo.remoting.ChannelHandler,org.apache.dubbo.common.URL)>(v, v);
specialinvoke v.<org.apache.dubbo.remoting.transport.AbstractServer: void <init>(org.apache.dubbo.common.URL,org.apache.dubbo.remoting.ChannelHandler)>(v, v);
return;
}
protected void doOpen() throws java.lang.Throwable
{
org.apache.dubbo.remoting.Codec v;
org.apache.mina.common.ThreadModel v;
org.apache.dubbo.common.utils.NamedThreadFactory v;
org.apache.mina.transport.socket.nio.SocketAcceptor v, v, v, v;
org.apache.dubbo.common.URL v, v, v;
org.apache.mina.filter.codec.ProtocolCodecFilter v;
int v, v;
java.util.concurrent.ExecutorService v;
org.apache.dubbo.remoting.transport.mina.MinaServer v;
org.apache.mina.common.DefaultIoFilterChainBuilder v;
org.apache.dubbo.remoting.transport.mina.MinaHandler v;
org.apache.mina.transport.socket.nio.SocketAcceptorConfig v;
org.apache.dubbo.remoting.transport.mina.MinaCodecAdapter v;
java.net.InetSocketAddress v;
v := @this: org.apache.dubbo.remoting.transport.mina.MinaServer;
v = new org.apache.mina.transport.socket.nio.SocketAcceptor;
v = virtualinvoke v.<org.apache.dubbo.remoting.transport.mina.MinaServer: org.apache.dubbo.common.URL getUrl()>();
v = <org.apache.dubbo.remoting.Constants: int DEFAULT_IO_THREADS>;
v = virtualinvoke v.<org.apache.dubbo.common.URL: int getPositiveParameter(java.lang.String,int)>("iothreads", v);
v = new org.apache.dubbo.common.utils.NamedThreadFactory;
specialinvoke v.<org.apache.dubbo.common.utils.NamedThreadFactory: void <init>(java.lang.String,boolean)>("MinaServerWorker", 1);
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ExecutorService newCachedThreadPool(java.util.concurrent.ThreadFactory)>(v);
specialinvoke v.<org.apache.mina.transport.socket.nio.SocketAcceptor: void <init>(int,java.util.concurrent.Executor)>(v, v);
v.<org.apache.dubbo.remoting.transport.mina.MinaServer: org.apache.mina.transport.socket.nio.SocketAcceptor acceptor> = v;
v = v.<org.apache.dubbo.remoting.transport.mina.MinaServer: org.apache.mina.transport.socket.nio.SocketAcceptor acceptor>;
v = virtualinvoke v.<org.apache.mina.transport.socket.nio.SocketAcceptor: org.apache.mina.transport.socket.nio.SocketAcceptorConfig getDefaultConfig()>();
v = <org.apache.mina.common.ThreadModel: org.apache.mina.common.ThreadModel MANUAL>;
virtualinvoke v.<org.apache.mina.transport.socket.nio.SocketAcceptorConfig: void setThreadModel(org.apache.mina.common.ThreadModel)>(v);
v = v.<org.apache.dubbo.remoting.transport.mina.MinaServer: org.apache.mina.transport.socket.nio.SocketAcceptor acceptor>;
v = virtualinvoke v.<org.apache.mina.transport.socket.nio.SocketAcceptor: org.apache.mina.common.DefaultIoFilterChainBuilder getFilterChain()>();
v = new org.apache.mina.filter.codec.ProtocolCodecFilter;
v = new org.apache.dubbo.remoting.transport.mina.MinaCodecAdapter;
v = virtualinvoke v.<org.apache.dubbo.remoting.transport.mina.MinaServer: org.apache.dubbo.remoting.Codec getCodec()>();
v = virtualinvoke v.<org.apache.dubbo.remoting.transport.mina.MinaServer: org.apache.dubbo.common.URL getUrl()>();
specialinvoke v.<org.apache.dubbo.remoting.transport.mina.MinaCodecAdapter: void <init>(org.apache.dubbo.remoting.Codec,org.apache.dubbo.common.URL,org.apache.dubbo.remoting.ChannelHandler)>(v, v, v);
specialinvoke v.<org.apache.mina.filter.codec.ProtocolCodecFilter: void <init>(org.apache.mina.filter.codec.ProtocolCodecFactory)>(v);
virtualinvoke v.<org.apache.mina.common.DefaultIoFilterChainBuilder: void addLast(java.lang.String,org.apache.mina.common.IoFilter)>("codec", v);
v = v.<org.apache.dubbo.remoting.transport.mina.MinaServer: org.apache.mina.transport.socket.nio.SocketAcceptor acceptor>;
v = virtualinvoke v.<org.apache.dubbo.remoting.transport.mina.MinaServer: java.net.InetSocketAddress getBindAddress()>();
v = new org.apache.dubbo.remoting.transport.mina.MinaHandler;
v = virtualinvoke v.<org.apache.dubbo.remoting.transport.mina.MinaServer: org.apache.dubbo.common.URL getUrl()>();
specialinvoke v.<org.apache.dubbo.remoting.transport.mina.MinaHandler: void <init>(org.apache.dubbo.common.URL,org.apache.dubbo.remoting.ChannelHandler)>(v, v);
virtualinvoke v.<org.apache.mina.transport.socket.nio.SocketAcceptor: void bind(java.net.SocketAddress,org.apache.mina.common.IoHandler)>(v, v);
return;
}
protected void doClose() throws java.lang.Throwable
{
java.lang.Throwable v;
org.apache.mina.transport.socket.nio.SocketAcceptor v, v;
org.apache.dubbo.common.logger.Logger v;
java.lang.String v;
java.net.InetSocketAddress v;
org.apache.dubbo.remoting.transport.mina.MinaServer v;
v := @this: org.apache.dubbo.remoting.transport.mina.MinaServer;
label:
v = v.<org.apache.dubbo.remoting.transport.mina.MinaServer: org.apache.mina.transport.socket.nio.SocketAcceptor acceptor>;
if v == null goto label;
v = v.<org.apache.dubbo.remoting.transport.mina.MinaServer: org.apache.mina.transport.socket.nio.SocketAcceptor acceptor>;
v = virtualinvoke v.<org.apache.dubbo.remoting.transport.mina.MinaServer: java.net.InetSocketAddress getBindAddress()>();
virtualinvoke v.<org.apache.mina.transport.socket.nio.SocketAcceptor: void unbind(java.net.SocketAddress)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.dubbo.remoting.transport.mina.MinaServer: org.apache.dubbo.common.logger.Logger logger>;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
public java.util.Collection getChannels()
{
java.util.Iterator v;
java.util.Set v;
java.net.InetSocketAddress v;
java.util.HashSet v;
org.apache.mina.transport.socket.nio.SocketAcceptor v;
org.apache.dubbo.common.URL v;
java.lang.Object v;
org.apache.dubbo.remoting.transport.mina.MinaServer v;
boolean v, v;
org.apache.dubbo.remoting.transport.mina.MinaChannel v;
v := @this: org.apache.dubbo.remoting.transport.mina.MinaServer;
v = v.<org.apache.dubbo.remoting.transport.mina.MinaServer: org.apache.mina.transport.socket.nio.SocketAcceptor acceptor>;
v = virtualinvoke v.<org.apache.dubbo.remoting.transport.mina.MinaServer: java.net.InetSocketAddress getBindAddress()>();
v = virtualinvoke v.<org.apache.mina.transport.socket.nio.SocketAcceptor: java.util.Set getManagedSessions(java.net.SocketAddress)>(v);
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.apache.mina.common.IoSession: boolean isConnected()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.dubbo.remoting.transport.mina.MinaServer: org.apache.dubbo.common.URL getUrl()>();
v = staticinvoke <org.apache.dubbo.remoting.transport.mina.MinaChannel: org.apache.dubbo.remoting.transport.mina.MinaChannel getOrAddChannel(org.apache.mina.common.IoSession,org.apache.dubbo.common.URL,org.apache.dubbo.remoting.ChannelHandler)>(v, v, v);
interfaceinvoke v.<java.util.Collection: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
}
public org.apache.dubbo.remoting.Channel getChannel(java.net.InetSocketAddress)
{
java.net.SocketAddress v;
java.util.Iterator v;
java.util.Set v;
java.net.InetSocketAddress v, v;
org.apache.mina.transport.socket.nio.SocketAcceptor v;
org.apache.dubbo.common.URL v;
java.lang.Object v;
org.apache.dubbo.remoting.transport.mina.MinaServer v;
boolean v, v;
org.apache.dubbo.remoting.transport.mina.MinaChannel v;
v := @this: org.apache.dubbo.remoting.transport.mina.MinaServer;
v := @parameter: java.net.InetSocketAddress;
v = v.<org.apache.dubbo.remoting.transport.mina.MinaServer: org.apache.mina.transport.socket.nio.SocketAcceptor acceptor>;
v = virtualinvoke v.<org.apache.dubbo.remoting.transport.mina.MinaServer: java.net.InetSocketAddress getBindAddress()>();
v = virtualinvoke v.<org.apache.mina.transport.socket.nio.SocketAcceptor: java.util.Set getManagedSessions(java.net.SocketAddress)>(v);
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.apache.mina.common.IoSession: java.net.SocketAddress getRemoteAddress()>();
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.dubbo.remoting.transport.mina.MinaServer: org.apache.dubbo.common.URL getUrl()>();
v = staticinvoke <org.apache.dubbo.remoting.transport.mina.MinaChannel: org.apache.dubbo.remoting.transport.mina.MinaChannel getOrAddChannel(org.apache.mina.common.IoSession,org.apache.dubbo.common.URL,org.apache.dubbo.remoting.ChannelHandler)>(v, v, v);
return v;
label:
return null;
}
public boolean isBound()
{
org.apache.mina.transport.socket.nio.SocketAcceptor v;
java.net.InetSocketAddress v;
org.apache.dubbo.remoting.transport.mina.MinaServer v;
boolean v;
v := @this: org.apache.dubbo.remoting.transport.mina.MinaServer;
v = v.<org.apache.dubbo.remoting.transport.mina.MinaServer: org.apache.mina.transport.socket.nio.SocketAcceptor acceptor>;
v = virtualinvoke v.<org.apache.dubbo.remoting.transport.mina.MinaServer: java.net.InetSocketAddress getBindAddress()>();
v = virtualinvoke v.<org.apache.mina.transport.socket.nio.SocketAcceptor: boolean isManaged(java.net.SocketAddress)>(v);
return v;
}
static void <clinit>()
{
org.apache.dubbo.common.logger.Logger v;
v = staticinvoke <org.apache.dubbo.common.logger.LoggerFactory: org.apache.dubbo.common.logger.Logger getLogger(java.lang.Class)>(class "Lorg/apache/dubbo/remoting/transport/mina/MinaServer;");
<org.apache.dubbo.remoting.transport.mina.MinaServer: org.apache.dubbo.common.logger.Logger logger> = v;
return;
}
}