@SuppressWarnings("unchecked") @Override public BridgeSessionInitializer<T> getParentInitializer(Protocol protocol) { return (BridgeSessionInitializer<T>) ((wrapped != null) ? wrapped.getParentInitializer(protocol) : null); }
@Override public BridgeSessionInitializer<ConnectFuture> getParentInitializer(Protocol protocol) { return (bridgeSessionInitializer != null) ? bridgeSessionInitializer.getParentInitializer(protocol) : null; }
@Override public BridgeSessionInitializer<T> getParentInitializer(Protocol protocol) { return initializer != null ? initializer.getParentInitializer(protocol):super.getParentInitializer(protocol); } };
@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); }
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 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); } } }
final BridgeSessionInitializer<T> httpInitializer = (initializer != null) ? initializer.getParentInitializer(httpProtocol) : 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); }
final Protocol transportProtocol = bridgeServiceFactory.getTransportFactory().getProtocol(transportURI.getScheme()); final BridgeSessionInitializer<T> parentInitializer = (initializer != null) ? initializer .getParentInitializer(transportProtocol) : null;
(initializer != null) ? initializer.getParentInitializer(HttpProtocol.HTTP) : null;