Skip to content

Instantly share code, notes, and snippets.

@ryangreenberg
Created September 27, 2014 17:25
Show Gist options
  • Save ryangreenberg/587ce825b22bd185a56f to your computer and use it in GitHub Desktop.
Save ryangreenberg/587ce825b22bd185a56f to your computer and use it in GitHub Desktop.
#!/bin/bash
# Versions
scalac -version
sbt --version
java -version
# Create project
mkdir -p twitter-server_repro && cd twitter-server_repro
# Configure build
cat >build.sbt <<EOS
name := "twitter-server_repro"
version := "0.1"
scalaVersion := "2.10.4"
resolvers += "twttr" at "http://maven.twttr.com/"
libraryDependencies += "com.twitter" %% "twitter-server" % "1.0.2"
EOS
# Add source
mkdir -p src/main/scala/com/example/
cat >src/main/scala/com/example/BasicServer.scala <<EOS
import com.twitter.finagle.{Http, Service}
import com.twitter.io.Charsets
import com.twitter.server.TwitterServer
import com.twitter.util.{Await, Future}
import org.jboss.netty.buffer.ChannelBuffers.copiedBuffer
import org.jboss.netty.handler.codec.http._
object BasicServer extends TwitterServer {
val service = new Service[HttpRequest, HttpResponse] {
def apply(request: HttpRequest) = {
val response =
new DefaultHttpResponse(request.getProtocolVersion, HttpResponseStatus.OK)
response.setContent(copiedBuffer("hello", Charsets.Utf8))
Future.value(response)
}
}
def main() {
val server = Http.serve(":8888", service)
onExit {
server.close()
}
Await.ready(server)
}
}
EOS
# Compile
sbt compile
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment