All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.twitter.finagle.builder.ServerBuilderToTwitterService.scala Maven / Gradle / Ivy

There is a newer version: 6.39.0
Show newest version
package com.twitter.finagle.builder

/**
 * Make a com.twitter.ostrich.admin.Service from a finagle ServerBuilder.
 */

import com.twitter.ostrich.admin
import com.twitter.util.Duration
import com.twitter.conversions.time._

import com.twitter.finagle.Service

class ServerBuildertoTwitterService[Req, Rep](
    builder: ServerBuilder[Req, Rep, ServerConfig.Yes, ServerConfig.Yes, ServerConfig.Yes],
    service: Service[Req, Rep],
    gracePeriod: Duration = 10.seconds)
  extends admin.Service
{
  private[this] var server: Option[Server] = None

  def start() {
    if (!server.isDefined)
      server = Some(builder.build(service))
  }

  def shutdown() {
    server foreach { _.close(gracePeriod) }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy