@SuppressWarnings("unchecked") @Override public BridgeSessionInitializer<T> getParentInitializer(Protocol protocol) { return (BridgeSessionInitializer<T>) ((wrapped != null) ? wrapped.getParentInitializer(protocol) : null); }
@Override public void initializeSession(IoSession session, ConnectFuture future) { sessionInitializer.initializeSession(session, future); if (bridgeSessionInitializer != null) { bridgeSessionInitializer.initializeSession(session, future); } } });
@Override public void initializeSession(IoSession session, T future) { session.setAttribute(NEXT_PROTOCOL_RESOURCE_ADDRESS, address); if ( httpInitializer != null ) { httpInitializer.initializeSession(session, future); } } };
@Override public BridgeSessionInitializer<ConnectFuture> getParentInitializer(Protocol protocol) { return (bridgeSessionInitializer != null) ? bridgeSessionInitializer.getParentInitializer(protocol) : null; }
@Override public void initializeSession(IoSession session, T future) { SslAcceptor.SSL_RESOURCE_ADDRESS.set(session, address); if (parentInitializer != null) { parentInitializer.initializeSession(session, future); } } };
@Override public BridgeSessionInitializer<T> getParentInitializer(Protocol protocol) { return initializer != null ? initializer.getParentInitializer(protocol):super.getParentInitializer(protocol); } };
@SuppressWarnings("unchecked") @Override public void initializeSession(IoSession session, T future) { if ( wrapped != null ) { ((BridgeSessionInitializer<T>)wrapped).initializeSession(session, future); } // Call extensions for (TcpExtension extension : extensions) { extension.initializeSession(session); } }
@Override protected <T extends IoFuture> void bindInternal(final ResourceAddress address, IoHandler handler, final BridgeSessionInitializer<T> initializer) { if (logger.isTraceEnabled()) { logger.trace(format("binding: '%s' %s", address.getExternalURI(), address.getOption(NEXT_PROTOCOL))); } // // Bind the transport of the address. // final ResourceAddress transportAddress = address.getTransport(); final URI transportURI = transportAddress.getResource(); final Protocol transportProtocol = bridgeServiceFactory.getTransportFactory().getProtocol(transportURI.getScheme()); final BridgeSessionInitializer<T> sessionInitializer = (initializer != null) ? initializer.getParentInitializer(transportProtocol) : null; BridgeAcceptor acceptor = bridgeServiceFactory.newBridgeAcceptor(transportAddress); acceptor.bind(transportAddress, bridgeHandler, sessionInitializer); }
@Override public void initializeSession(IoSession session, T future) { if ( theCreateInitializer != null ) { theCreateInitializer.initializeSession(session, future); } // Store the next over-the-top of-websocket protocols the server supports for this address on session. SUPPORTED_PROTOCOLS.set(session, address.getOption(WsResourceAddress.SUPPORTED_PROTOCOLS)); } };
private <T extends IoFuture> void bindCreateAddress(final ResourceAddress address, BridgeSessionInitializer<T> initializer) { // bind the create URL accessed using HTTP transport ResourceAddress wsrCreateAddress = createWsrCreateAddress(address); BridgeAcceptor createAcceptor = bridgeServiceFactory.newBridgeAcceptor(wsrCreateAddress); final BridgeSessionInitializer<T> theCreateInitializer = (initializer != null) ? initializer.getParentInitializer(HttpProtocol.HTTP) : null; BridgeSessionInitializer<T> wrapperInitializer = new BridgeSessionInitializerAdapter<T>() { @Override public void initializeSession(IoSession session, T future) { if ( theCreateInitializer != null ) { theCreateInitializer.initializeSession(session, future); } // Store the next over-the-top of-websocket protocols the server supports for this address on session. SUPPORTED_PROTOCOLS.set(session, address.getOption(WsResourceAddress.SUPPORTED_PROTOCOLS)); } }; createAcceptor.bind(wsrCreateAddress, selectCreateHandler(wsrCreateAddress), wrapperInitializer); }
@Override public void initializeSession(IoSession session, T future) { if ( httpInitializer != null ) { httpInitializer.initializeSession(session, future); } String nextProtocol = address.getOption(ResourceAddress.NEXT_PROTOCOL); String[] supportedProtocols = address.getOption(WsResourceAddress.SUPPORTED_PROTOCOLS); String[] allSupportedProtocols = supportedProtocols; if (nextProtocol != null) { // add next-protocol (if specified) to end of supported protocols (whether empty or not) allSupportedProtocols = new String[supportedProtocols.length + 1]; System.arraycopy(supportedProtocols, 0, allSupportedProtocols, 0, supportedProtocols.length); allSupportedProtocols[supportedProtocols.length] = nextProtocol; } // Store the next over-the-top of-websocket protocols the server supports for this address on session. SUPPORTED_PROTOCOLS.set(session, allSupportedProtocols); } };
@Override protected <T extends IoFuture> void bindInternal(final ResourceAddress address, IoHandler handler, final BridgeSessionInitializer<T> initializer) { final ResourceAddress transportAddress = address.getTransport(); if (transportAddress != null) { try { URI transportURI = transportAddress.getResource(); Protocol transportProtocol = bridgeServiceFactory.getTransportFactory().getProtocol(transportURI.getScheme()); final BridgeSessionInitializer<T> httpInitializer = (initializer != null) ? initializer.getParentInitializer(transportProtocol) : null; BridgeSessionInitializer<T> wrapper = new BridgeSessionInitializerAdapter<T>() { @Override public void initializeSession(IoSession session, T future) { session.setAttribute(NEXT_PROTOCOL_RESOURCE_ADDRESS, address); if ( httpInitializer != null ) { httpInitializer.initializeSession(session, future); } } }; BridgeAcceptor transportAcceptor = bridgeServiceFactory.newBridgeAcceptor(transportAddress); final IoHandler transportHandler = selectTransportHandler(transportAddress); transportAcceptor.bind(transportAddress, transportHandler, wrapper); } catch (NioBindException e) { throw new RuntimeException("Unable to bind address " + address + ": " + e.getMessage(), e); } } }
@Override public void initializeSession(IoSession session, T future) { if ( httpInitializer != null ) { httpInitializer.initializeSession(session, future); } String nextProtocol = address.getOption(ResourceAddress.NEXT_PROTOCOL); String[] supportedProtocols = address.getOption(WsResourceAddress.SUPPORTED_PROTOCOLS); String[] allSupportedProtocols = supportedProtocols; if (nextProtocol != null) { // add next-protocol (if specified) to end of supported protocols (whether empty or not) allSupportedProtocols = new String[supportedProtocols.length + 1]; System.arraycopy(supportedProtocols, 0, allSupportedProtocols, 0, supportedProtocols.length); allSupportedProtocols[supportedProtocols.length] = nextProtocol; } // Store the next over-the-top of-websocket protocols the server supports for this address on session. SUPPORTED_PROTOCOLS.set(session, allSupportedProtocols); } };
final BridgeSessionInitializer<T> httpInitializer = (initializer != null) ? initializer.getParentInitializer(httpProtocol) : null;
@Override public void initializeSession(IoSession session, T future) { if (initializer != null) { initializer.initializeSession(session, future);
final Protocol transportProtocol = bridgeServiceFactory.getTransportFactory().getProtocol(transportURI.getScheme()); final BridgeSessionInitializer<T> parentInitializer = (initializer != null) ? initializer .getParentInitializer(transportProtocol) : null;
initializer.initializeSession(session, null);
private <T extends IoFuture> void bindRtmpAddress(ResourceAddress address, IoHandler handler, BridgeSessionInitializer<T> initializer) { // TODO: avoid the global bind for all RTMP streams // instead, dynamically bind RTMP streams, like WSE upstream & downstream // note: may require an RTMP transport ResourceAddress wsrRtmpAddress = createWsrRtmpAddress(address); // add bind mapping for the wsr rtmp address addWsrRtmpBinding(wsrRtmpAddress, handler, initializer); // bind the wsr rtmp address transport BridgeAcceptor acceptor = bridgeServiceFactory.newBridgeAcceptor(wsrRtmpAddress.getTransport()); BridgeSessionInitializer<T> theInitializer = (initializer != null) ? initializer.getParentInitializer(HttpProtocol.HTTP) : null; acceptor.bind(wsrRtmpAddress.getTransport(), ioBridgeHandler, theInitializer); }
initializer.initializeSession(session, null);
(initializer != null) ? initializer.getParentInitializer(HttpProtocol.HTTP) : null;