Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

$ mkdir finagle-app
$ cd finagle-app
built.sbt
libraryDependencies += "com.twitter" %% "finagle-core" % "6.10.0"
libraryDependencies += "com.twitter" %% "finagle-http" % "6.10.0"
import java.net.SocketAddress
import java.net.InetSocketAddress

import org.jboss.netty.handler.codec.http.HttpRequest
import org.jboss.netty.handler.codec.http.HttpResponse
import org.jboss.netty.handler.codec.http.DefaultHttpResponse

import com.twitter.finagle.Service
import com.twitter.finagle.builder.Server
import com.twitter.finagle.builder.ServerBuilder
import com.twitter.finagle.http.Http
import org.jboss.netty.buffer.ChannelBuffers.copiedBuffer
import org.jboss.netty.handler.codec.http._
import org.jboss.netty.handler.codec.http.HttpResponseStatus._
import org.jboss.netty.handler.codec.http.HttpVersion.HTTP_1_1
import org.jboss.netty.util.CharsetUtil.UTF_8
import com.twitter.util.Future

val service: Service[HttpRequest, HttpResponse] = new Service[HttpRequest, HttpResponse] {
  def apply(request: HttpRequest) = Future {
    val response = new DefaultHttpResponse(HTTP_1_1, OK)
    val finagle = "Finagle"
    response.setContent(copiedBuffer(s"Hello ${finagle}!", UTF_8))
    response
  }
}

val address: SocketAddress = new InetSocketAddress(10000)

val server: Server = ServerBuilder()
  .codec(Http())
  .bindTo(address)
  .name("HttpServer")
  .build(service)
}
  • No labels