@Override public ConnectFuture connect(ResourceAddress address, IoHandler handler, IoSessionInitializer<? extends ConnectFuture> initializer) { if (connector != null) { return connector.connect(address, handler, initializer); } return null; }
@Override public ConnectFuture connect(ResourceAddress connectAddress, IoHandler handler, IoSessionInitializer<? extends ConnectFuture> initializer) { BridgeConnector connector = selectWsConnector((WsResourceAddress) connectAddress); return connector.connect(connectAddress, handler, initializer); }
@Override protected <T extends ConnectFuture> ConnectFuture connectInternal( ResourceAddress address, IoHandler handler, IoSessionInitializer<T> initializer) { if (proxyConnector != null) { ConnectFuture future = proxyConnector.connect(address, handler, initializer); if (future != null) { return future; } } return super.connectInternal(address, handler, initializer); }
@Override public void run() { ResourceAddress connectAddress = sseSession.getRemoteAddress(); ReconnectListener connectListener = new ReconnectListener(sseSession); BridgeConnector connector = bridgeServiceFactory.newBridgeConnector(connectAddress); connector.connect(connectAddress, httpHandler, null).addListener(connectListener); } }
@Override public ConnectFuture connect(ResourceAddress address, final IoHandler connectHandler, final IoSessionInitializer<ConnectFuture> connectSessionInitializer) { String uriScheme = getScheme(address.getExternalURI()); Transport transport = transportFactory.getTransportForScheme(uriScheme); BridgeConnector connector = transport.getConnector(address); return connector.connect(address, connectHandler, new IoSessionInitializer<ConnectFuture>() { @Override public void initializeSession(IoSession session, ConnectFuture future) { sessionInitializer.initializeSession(session, future); if (connectSessionInitializer != null) { connectSessionInitializer.initializeSession(session, future); } } }); }
private <T extends ConnectFuture> ConnectFuture getTransportConnectFuture(ResourceAddress address, IoHandler handler, IoSessionInitializer initializer, ResourceAddress transport) { final DefaultConnectFuture bridgeConnectFuture = new DefaultConnectFuture(); IoSessionInitializer<ConnectFuture> parentInitializer = new NioConnectorParentSessionInitializer(handler, initializer, address, bridgeConnectFuture, addressFactory, processor, connectorReference); // propagate connection failure, if necessary bridgeConnector = bridgeServiceFactory.newBridgeConnector(transport); bridgeConnector.connect(transport, tcpBridgeHandler, parentInitializer) .addListener( new IoFutureListener<ConnectFuture>() { @Override public void operationComplete(ConnectFuture future) { // fail bridge connect future if parent connect fails if (!future.isConnected()) { bridgeConnectFuture.setException(future.getException()); } } } ); return bridgeConnectFuture; }
fallbackConnector.connect(fallbackAddress, handler, initializer). addListener(fallbackConnectListener); } else {
@Override protected <T extends ConnectFuture> ConnectFuture connectInternal(ResourceAddress connectAddress, IoHandler handler, final IoSessionInitializer<T> initializer) { final DefaultConnectFuture sseConnectFuture = new DefaultConnectFuture(); // propagate connection failure, if necessary IoFutureListener<ConnectFuture> parentConnectListener = new IoFutureListener<ConnectFuture>() { @Override public void operationComplete(ConnectFuture future) { // fail bridge connect future if parent connect fails if (!future.isConnected()) { sseConnectFuture.setException(future.getException()); } } }; IoSessionInitializer<ConnectFuture> parentInitializer = createParentInitializer(connectAddress, handler, initializer, sseConnectFuture); final ResourceAddress transportAddress = connectAddress.getTransport(); if (transportAddress == null) { throw new RuntimeException("Cannot find transport for resource address "+connectAddress); } BridgeConnector connector = bridgeServiceFactory.newBridgeConnector(transportAddress); connector.connect(transportAddress, selectConnectHandler(transportAddress), parentInitializer).addListener(parentConnectListener); return sseConnectFuture; }
ResourceAddress newConnectAddress = resourceAddressFactory.newResourceAddress(location); BridgeConnector connector = bridgeServiceFactory.newBridgeConnector(newConnectAddress); connector.connect(newConnectAddress, httpHandler, new IoSessionInitializer<ConnectFuture>() { @Override public void initializeSession(IoSession session, ConnectFuture future) {
if (transport != null) { BridgeConnector connector = bridgeServiceFactory.newBridgeConnector(transport); future = connector.connect(transport, handler, new IoSessionInitializer<F>() { @Override public void initializeSession(IoSession session, F future) {
private void reconnectOrClose(final SseSession sseSession) { SseSessionConfig config = sseSession.getConfig(); int retry = config.getRetry(); if (retry > 0 || config.isReconnecting()) { logger.debug("Reconnecting: {}", sseSession.getRemoteAddress()); config.setReconnecting(false); if (retry <= 0) { // reconnect immediately ResourceAddress connectAddress = sseSession.getRemoteAddress(); ReconnectListener connectListener = new ReconnectListener(sseSession); final ResourceAddress transportAddress = connectAddress.getTransport(); BridgeConnector connector = bridgeServiceFactory.newBridgeConnector(transportAddress); connector.connect(connectAddress, httpHandler, null).addListener(connectListener); } else { // reconnect after "retry" milliseconds scheduler.schedule(new ReconnectCommand(sseSession), retry, TimeUnit.MILLISECONDS); } } else { sseSession.reset(new IOException(LoggingUtils.EARLY_TERMINATION_OF_IOSESSION_MESSAGE).fillInStackTrace()); } }
private <T extends ConnectFuture> void connectUsingNewTransport(final ConnectFuture connectFuture, ResourceAddress address, HttpConnectSessionFactory httpSessionFactory) { // propagate connection failure, if necessary IoFutureListener<ConnectFuture> parentConnectListener = future -> { // fail bridge connect future if parent connect fails if (!future.isConnected()) { connectFuture.setException(future.getException()); } }; ResourceAddress transportAddress = address.getTransport(); BridgeConnector connector = bridgeServiceFactory.newBridgeConnector(transportAddress); IoSessionInitializer<ConnectFuture> parentInitializer = createParentInitializer(address, connectFuture, httpSessionFactory); connector.connect(transportAddress, bridgeHandler, parentInitializer).addListener(parentConnectListener); }
private void initWriter(final WsebSession session) { final ResourceAddress writeAddress = session.getWriteAddress(); if (writeAddress == null) { // create sessionClosed not yet completed return; } if (session.compareAndSetAttachingWrite(false, true)) { BridgeConnector connector = bridgeServiceFactory.newBridgeConnector(writeAddress); ConnectFuture connectFuture = connector.connect(writeAddress, new WriteHandler(session), selectTransportSessionInitializer(session, writeAddress) ); final IoFutureListener<ConnectFuture> connectFutureIoFutureListener = selectConnectFutureListener(session, writeAddress); connectFuture.addListener(connectFutureIoFutureListener); } }
@Override protected <T extends ConnectFuture> ConnectFuture connectInternal( ResourceAddress connectAddress, IoHandler handler, final IoSessionInitializer<T> initializer) { final DefaultConnectFuture bridgeConnectFuture = new DefaultConnectFuture(); // propagate connection failure, if necessary IoFutureListener<ConnectFuture> parentConnectListener = new IoFutureListener<ConnectFuture>() { @Override public void operationComplete(ConnectFuture future) { // fail bridge connect future if parent connect fails if (!future.isConnected()) { bridgeConnectFuture.setException(future.getException()); } } }; IoSessionInitializer<ConnectFuture> parentInitializer = createParentInitializer( connectAddress, handler, initializer, bridgeConnectFuture); URI connectURI = connectAddress.getResource(); ResourceAddress createAddress = connectAddress.resolve(connectURI.getPath()+CREATE_SUFFIX); final ResourceAddress transportAddress = createAddress.getTransport(); BridgeConnector connector = bridgeServiceFactory.newBridgeConnector(transportAddress); connector.connect(transportAddress, selectConnectHandler(transportAddress), parentInitializer) .addListener(parentConnectListener); return bridgeConnectFuture; }
bridgeConnector.connect(readAddress, selectReadHandler(readAddress, wsebSession), new IoSessionInitializer<ConnectFuture>() { @Override public void initializeSession(IoSession ioSession, ConnectFuture connectFuture) {
protected <T extends ConnectFuture> ConnectFuture wsnConnectInternal(ResourceAddress connectAddress, IoHandler handler, final IoSessionInitializer<T> initializer // TODO: connect options context?? ) { final DefaultConnectFuture wsnConnectFuture = new DefaultConnectFuture(); // propagate connection failure, if necessary IoFutureListener<ConnectFuture> parentConnectListener = new IoFutureListener<ConnectFuture>() { @Override public void operationComplete(ConnectFuture future) { // fail bridge connect future if parent connect fails if ( !future.isConnected() ) { wsnConnectFuture.setException(future.getException()); } } }; IoSessionInitializer<ConnectFuture> parentInitializer = createParentInitializer(connectAddress, handler, initializer, wsnConnectFuture); final ResourceAddress createAddress = connectAddress.getTransport(); BridgeConnector connector = bridgeServiceFactory.newBridgeConnector(createAddress); connector.connect(createAddress, selectConnectHandler(createAddress), parentInitializer).addListener(parentConnectListener); return wsnConnectFuture; }
ResourceAddress connectAddress = remoteAddress.getTransport(); BridgeConnector connector = bridgeServiceFactory.newBridgeConnector(connectAddress); ConnectFuture connectFuture = connector.connect(connectAddress, ioBridgeHandler, null); connectFuture.addListener(parentConnectListener);
connector.connect(connectAddress.getTransport(), bridgeHandler, wrapperInitializer).addListener(parentConnectListener);
bridgeConnector.connect(readAddress, selectReadHandler(readAddress, wsebSession), null); break;
connector.connect(createAddress, selectConnectHandler(createAddress), parentInitializer).addListener(parentConnectListener);