diff --git a/src/sbt-test/web/servlet-direct/changes/MyServlet.scala b/src/sbt-test/web/servlet-direct/changes/MyServlet.scala
new file mode 100644
index 000000000..15dc6f7eb
--- /dev/null
+++ b/src/sbt-test/web/servlet-direct/changes/MyServlet.scala
@@ -0,0 +1,20 @@
+package test
+
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+class MyServlet extends HttpServlet {
+
+ val html =
+
Hello, Scala 2!
+ Hello, Scala 2! This is a servlet.
+
+
+ override def doGet(req:HttpServletRequest, resp:HttpServletResponse) {
+ resp.setContentType("text/html")
+ resp.getWriter().print(html.toString)
+ }
+ def check28(f: Int = 3) = f
+}
+
diff --git a/src/sbt-test/web/servlet-direct/project/build.properties b/src/sbt-test/web/servlet-direct/project/build.properties
new file mode 100644
index 000000000..34162cdcd
--- /dev/null
+++ b/src/sbt-test/web/servlet-direct/project/build.properties
@@ -0,0 +1,3 @@
+project.organization=tester
+project.name=sbtweb
+project.version=1.0
diff --git a/src/sbt-test/web/servlet-direct/project/build/src/WebappBuild.scala b/src/sbt-test/web/servlet-direct/project/build/src/WebappBuild.scala
new file mode 100644
index 000000000..bca37e84d
--- /dev/null
+++ b/src/sbt-test/web/servlet-direct/project/build/src/WebappBuild.scala
@@ -0,0 +1,21 @@
+import sbt._
+
+class WebappBuild(info: ProjectInfo) extends DefaultWebProject(info) {
+
+ val servlet_api = "org.mortbay.jetty" % "servlet-api-2.5" % "6.1.14" % "provided->default"
+ val jetty_servlet = "org.mortbay.jetty" % "jetty" % "6.1.14" % "test->default"
+
+ def indexURL = new java.net.URL("http://localhost:8080")
+ def indexFile = new java.io.File("index.html")
+ import Process._
+ lazy val getPage = execTask { indexURL #> indexFile }
+ lazy val checkPage = task { args => task { checkHelloWorld(args.mkString(" ")) } dependsOn getPage }
+
+ override def jettyWebappPath = webappPath
+
+ private def checkHelloWorld(checkString: String) =
+ {
+ val value = xsbt.FileUtilities.read(indexFile)
+ if(value.contains(checkString)) None else Some("index.html did not contain '" + checkString + "' :\n" +value)
+ }
+}
diff --git a/src/sbt-test/web/servlet-direct/src/main/scala/test/MyServlet.scala b/src/sbt-test/web/servlet-direct/src/main/scala/test/MyServlet.scala
new file mode 100644
index 000000000..9d0365c5a
--- /dev/null
+++ b/src/sbt-test/web/servlet-direct/src/main/scala/test/MyServlet.scala
@@ -0,0 +1,20 @@
+package test
+
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+class MyServlet extends HttpServlet {
+
+ val html =
+ Hello, Scala!
+ Hello, Scala! This is a servlet.
+
+
+ override def doGet(req:HttpServletRequest, resp:HttpServletResponse) {
+ resp.setContentType("text/html")
+ resp.getWriter().print(html.toString)
+ }
+ def check28(f: Int = 3) = f
+}
+
diff --git a/src/sbt-test/web/servlet-direct/src/main/webapp/WEB-INF/web.xml b/src/sbt-test/web/servlet-direct/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 000000000..bff12b49b
--- /dev/null
+++ b/src/sbt-test/web/servlet-direct/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,18 @@
+
+
+
+ Archetype Created Web Application
+
+
+ Home
+ test.MyServlet
+
+
+ Home
+ /
+
+
+
+
diff --git a/src/sbt-test/web/servlet-direct/test b/src/sbt-test/web/servlet-direct/test
new file mode 100644
index 000000000..a04dfa4d7
--- /dev/null
+++ b/src/sbt-test/web/servlet-direct/test
@@ -0,0 +1,14 @@
+> ++2.8.0.Beta1-RC6
+> update
+> jetty-run
+$ pause
+> check-page "Hello, Scala!"
+
+$ copy-file changes/MyServlet.scala src/main/scala/test/MyServlet.scala
+
+> prepare-webapp
+> jetty-reload
+> check-page "Hello, Scala 2!"
+
+> jetty-stop
+-> check-page "Hello World 2!"
\ No newline at end of file