@Override public ConnectFuture connect(ResourceAddress address, IoHandler handler, IoSessionInitializer<? extends ConnectFuture> initializer) { if (!started.get()) { synchronized (started) { if (!started.get()) { init(); started.set(true); } } } return connectInternal(address, handler, initializer); }
protected final void init() { connector = initConnector(); connector.setHandler(new BridgeConnectHandler() { @Override public void sessionCreated(IoSession session) throws Exception { LoggingFilter.addIfNeeded(logger, session, getTransportName()); super.sessionCreated(session); } }); socketAddressFactory = initSocketAddressFactory(); bridgeServiceFactory = initBridgeServiceFactory(); resourceAddressFactory = initResourceAddressFactory(); }
@Override public void sessionCreated(IoSession session) throws Exception { LoggingFilter.addIfNeeded(logger, session, getTransportName()); super.sessionCreated(session); } });
private void setLocalAddressFromSocketAddress(final IoSession session, final String transportName, String nextProtocol) { SocketAddress socketAddress = session.getLocalAddress(); if (socketAddress instanceof InetSocketAddress) { InetSocketAddress inetSocketAddress = (InetSocketAddress) socketAddress; ResourceAddress resourceAddress = newResourceAddress(inetSocketAddress, transportName, nextProtocol); LOCAL_ADDRESS.set(session, resourceAddress); } else if (socketAddress instanceof NamedPipeAddress) { NamedPipeAddress namedPipeAddress = (NamedPipeAddress) socketAddress; ResourceAddress resourceAddress = newResourceAddress(namedPipeAddress, transportName, nextProtocol); LOCAL_ADDRESS.set(session, resourceAddress); } }
@Override public void initializeSession(IoSession session, F future) { REMOTE_ADDRESS.set(session, remoteAddress); setLocalAddressFromSocketAddress(session, getTransportName(), nextProtocol); if (initializer != null) { initializer.initializeSession(session, future); } } });
@Override public void initializeSession(IoSession session, F future) { // connectors don't need lookup so set this directly on the session session.setAttribute(BridgeConnectHandler.DELEGATE_KEY, handler); REMOTE_ADDRESS.set(session, remoteAddress); setLocalAddressFromSocketAddress(session, getTransportName(), nextProtocol); if (initializer != null) { initializer.initializeSession(session, future); } } });