def startNettyServer()

in flink-connector-netty/src/main/scala/org/apache/flink/streaming/connectors/netty/example/HttpServer.scala [59:89]


  def startNettyServer(
    portNotInUse: Int,
    callbackUrl: Option[String]
  ): InetSocketAddress = synchronized {

    if (!isRunning.get()) {
      val b: ServerBootstrap = new ServerBootstrap
      b
        .option[java.lang.Integer](ChannelOption.SO_BACKLOG, 1024)
        .group(bossGroup, workerGroup)
        .channel(classOf[NioServerSocketChannel])
        .handler(new LoggingHandler(logLevel))
        .childHandler(new ChannelInitializer[SocketChannel] {
          override def initChannel(ch: SocketChannel): Unit = {
            val p = ch.pipeline()
            p.addLast(new HttpServerCodec)
            p.addLast(new HttpHandler(ctx, paramKey))
          }
        })
      val f = b.bind(portNotInUse)
      f.syncUninterruptibly()
      val ch: Channel = f.channel()
      isRunning.set(true)
      currentAddr = ch.localAddress().asInstanceOf[InetSocketAddress]
      register(currentAddr, callbackUrl)
      ch.closeFuture().sync()
      currentAddr
    } else {
      currentAddr
    }
  }