private[server] def combine()

in server/src/main/scala/com/twitter/server/AdminHttpServer.scala [147:167]


  private[server] def combine(
    muxers: Seq[HttpMuxer],
    indexEntries: () => Seq[IndexView.Entry]
  ): Service[Request, Response] =
    new Service[Request, Response] {
      def apply(req: Request): Future[Response] = {
        val routes = muxers.flatMap(_.route(req))
        if (routes.isEmpty) {
          Future.value(Response(req.version, Status.NotFound))
        } else {
          val route = routes.maxBy(_.pattern.length)
          val alias = route.index.map(_.alias).getOrElse(route.pattern)
          val indexFilter = new IndexView(alias, route.pattern, indexEntries)
          val svc = indexFilter.andThen(route.handler)
          svc(req)
        }
      }

      override def close(deadline: Time): Future[Unit] =
        Closable.all(muxers: _*).close(deadline)
    }