diff --git a/build.sbt b/build.sbt index c58840d..68c67af 100644 --- a/build.sbt +++ b/build.sbt @@ -6,19 +6,20 @@ name := "cider-endpoint" version := "0.1" -scalaVersion := "2.9.1" +scalaVersion := "2.9.2" seq(webSettings :_*) +classpathTypes ~= (_ + "orbit") + libraryDependencies ++= Seq( - "org.scalatra" %% "scalatra" % "2.0.1", - "org.scalatra" %% "scalatra-scalate" % "2.0.1", - "org.eclipse.jetty" % "jetty-webapp" % "7.4.5.v20110725" % "container", - "org.eclipse.jetty" % "jetty-server" % "7.4.5.v20110725" % "container", - "org.eclipse.jetty" % "jetty-webapp" % "7.4.5.v20110725", - "org.eclipse.jetty" % "jetty-server" % "7.4.5.v20110725", - "org.slf4j" % "slf4j-simple" % "1.6.1", - "javax.servlet" % "servlet-api" % "2.5" % "provided" + "org.scalatra" % "scalatra" % "2.1.1", + "org.scalatra" % "scalatra-scalate" % "2.1.1", + "org.scalatra" % "scalatra-specs2" % "2.1.1" % "test", + "ch.qos.logback" % "logback-classic" % "1.0.6" % "runtime", + "org.eclipse.jetty" % "jetty-server" % "8.1.7.v20120910" % "container;compile", + "org.eclipse.jetty" % "jetty-webapp" % "8.1.7.v20120910" % "container;compile", + "org.eclipse.jetty.orbit" % "javax.servlet" % "3.0.0.v201112011016" % "container;provided;test" artifacts (Artifact("javax.servlet", "jar", "jar")) ) resolvers += "Sonatype OSS Snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/" diff --git a/src/main/scala/JettyLauncher.scala b/src/main/scala/JettyLauncher.scala index bb4562c..16d1fce 100644 --- a/src/main/scala/JettyLauncher.scala +++ b/src/main/scala/JettyLauncher.scala @@ -1,19 +1,20 @@ import org.eclipse.jetty.server.Server -import org.eclipse.jetty.servlet.{DefaultServlet, ServletContextHandler} +import org.eclipse.jetty.webapp.WebAppContext object JettyLauncher { def main(args: Array[String]) { - val port = if(System.getenv("PORT") != null) System.getenv("PORT").toInt else 8080 + val port = sys.env.get("PORT").map(_.toInt).getOrElse(8080) val server = new Server(port) - val context = new ServletContextHandler(server, "/", ServletContextHandler.SESSIONS) - - context.addFilter(classOf[CiderEndpointFilter], "/*", 0) - context.addServlet(classOf[DefaultServlet], "/"); + val context = new WebAppContext() + context setContextPath "/" context.setResourceBase("src/main/webapp") + context.addEventListener(new org.scalatra.servlet.ScalatraListener) + + server.setHandler(context) server.start server.join } -} \ No newline at end of file +} diff --git a/src/main/scala/Scalatra.scala b/src/main/scala/Scalatra.scala new file mode 100644 index 0000000..187a90f --- /dev/null +++ b/src/main/scala/Scalatra.scala @@ -0,0 +1,15 @@ +import org.scalatra._ +import javax.servlet.ServletContext + +/** + * This is the Scalatra bootstrap file. You can use it to mount servlets or + * filters. It's also a good place to put initialization code which needs to + * run at application start (e.g. database configurations), and init params. + */ +class Scalatra extends LifeCycle { + override def init(context: ServletContext) { + + // Mount one or more servlets + context.mount(new CiderEndpointFilter, "/*") + } +} diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index 533408e..7e3b9cf 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -1,18 +1,15 @@ - - - scalatra - - CiderEndpointFilter - - - - - scalatra - /* - + + + + + org.scalatra.servlet.ScalatraListener +