diff --git a/project/build.properties b/project/build.properties index 37b489c..be6c454 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=0.13.1 +sbt.version=0.13.5 diff --git a/project/build.scala b/project/build.scala index 6418f50..bbef2e5 100644 --- a/project/build.scala +++ b/project/build.scala @@ -1,8 +1,9 @@ import sbt._ import Keys._ import org.scalatra.sbt._ -import twirl.sbt.TwirlPlugin._ import com.typesafe.sbteclipse.plugin.EclipsePlugin.EclipseKeys +import play.twirl.sbt.SbtTwirl +import play.twirl.sbt.Import.TwirlKeys._ object MyBuild extends Build { val Organization = "jp.sf.amateras" @@ -13,45 +14,47 @@ lazy val project = Project ( "gitbucket", - file("."), - settings = Defaults.defaultSettings ++ ScalatraPlugin.scalatraWithJRebel ++ Seq( - sourcesInBase := false, - organization := Organization, - name := Name, - version := Version, - scalaVersion := ScalaVersion, - resolvers ++= Seq( - Classpaths.typesafeReleases, - "amateras-repo" at "http://amateras.sourceforge.jp/mvn/" - ), - scalacOptions := Seq("-deprecation", "-language:postfixOps"), - libraryDependencies ++= Seq( - "org.eclipse.jgit" % "org.eclipse.jgit.http.server" % "3.4.1.201406201815-r", - "org.eclipse.jgit" % "org.eclipse.jgit.archive" % "3.4.1.201406201815-r", - "org.scalatra" %% "scalatra" % ScalatraVersion, - "org.scalatra" %% "scalatra-specs2" % ScalatraVersion % "test", - "org.scalatra" %% "scalatra-json" % ScalatraVersion, - "org.json4s" %% "json4s-jackson" % "3.2.10", - "jp.sf.amateras" %% "scalatra-forms" % "0.1.0", - "commons-io" % "commons-io" % "2.4", - "org.pegdown" % "pegdown" % "1.4.1", - "org.apache.commons" % "commons-compress" % "1.5", - "org.apache.commons" % "commons-email" % "1.3.1", - "org.apache.httpcomponents" % "httpclient" % "4.3", - "org.apache.sshd" % "apache-sshd" % "0.11.0", - "com.typesafe.slick" %% "slick" % "2.1.0-RC3", - "com.novell.ldap" % "jldap" % "2009-10-07", - "org.quartz-scheduler" % "quartz" % "2.2.1", - "com.h2database" % "h2" % "1.4.180", - "ch.qos.logback" % "logback-classic" % "1.0.13" % "runtime", - "org.eclipse.jetty" % "jetty-webapp" % "8.1.8.v20121106" % "container;provided", - "org.eclipse.jetty.orbit" % "javax.servlet" % "3.0.0.v201112011016" % "container;provided;test" artifacts Artifact("javax.servlet", "jar", "jar"), - "junit" % "junit" % "4.11" % "test" - ), - EclipseKeys.withSource := true, - javacOptions in compile ++= Seq("-target", "6", "-source", "6"), - testOptions in Test += Tests.Argument(TestFrameworks.Specs2, "junitxml", "console"), - packageOptions += Package.MainClass("JettyLauncher") - ) ++ seq(Twirl.settings: _*) + file(".") ) + .settings(ScalatraPlugin.scalatraWithJRebel: _*) + .settings( + sourcesInBase := false, + organization := Organization, + name := Name, + version := Version, + scalaVersion := ScalaVersion, + resolvers ++= Seq( + Classpaths.typesafeReleases, + "amateras-repo" at "http://amateras.sourceforge.jp/mvn/" + ), + scalacOptions := Seq("-deprecation", "-language:postfixOps"), + libraryDependencies ++= Seq( + "org.eclipse.jgit" % "org.eclipse.jgit.http.server" % "3.4.1.201406201815-r", + "org.eclipse.jgit" % "org.eclipse.jgit.archive" % "3.4.1.201406201815-r", + "org.scalatra" %% "scalatra" % ScalatraVersion, + "org.scalatra" %% "scalatra-specs2" % ScalatraVersion % "test", + "org.scalatra" %% "scalatra-json" % ScalatraVersion, + "org.json4s" %% "json4s-jackson" % "3.2.10", + "jp.sf.amateras" %% "scalatra-forms" % "0.1.0", + "commons-io" % "commons-io" % "2.4", + "org.pegdown" % "pegdown" % "1.4.1", + "org.apache.commons" % "commons-compress" % "1.5", + "org.apache.commons" % "commons-email" % "1.3.1", + "org.apache.httpcomponents" % "httpclient" % "4.3", + "org.apache.sshd" % "apache-sshd" % "0.11.0", + "com.typesafe.slick" %% "slick" % "2.1.0-RC3", + "com.novell.ldap" % "jldap" % "2009-10-07", + "org.quartz-scheduler" % "quartz" % "2.2.1", + "com.h2database" % "h2" % "1.4.180", + "ch.qos.logback" % "logback-classic" % "1.0.13" % "runtime", + "org.eclipse.jetty" % "jetty-webapp" % "8.1.8.v20121106" % "container;provided", + "org.eclipse.jetty.orbit" % "javax.servlet" % "3.0.0.v201112011016" % "container;provided;test" artifacts Artifact("javax.servlet", "jar", "jar"), + "junit" % "junit" % "4.11" % "test", + "com.typesafe.play" %% "twirl-compiler" % "1.0.2" + ), + EclipseKeys.withSource := true, + javacOptions in compile ++= Seq("-target", "6", "-source", "6"), + testOptions in Test += Tests.Argument(TestFrameworks.Specs2, "junitxml", "console"), + packageOptions += Package.MainClass("JettyLauncher") + ).enablePlugins(SbtTwirl) } diff --git a/project/plugins.sbt b/project/plugins.sbt index 7d7ab3e..de95ab6 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -4,8 +4,6 @@ addSbtPlugin("org.scalatra.sbt" % "scalatra-sbt" % "0.3.5") -resolvers += "spray repo" at "http://repo.spray.io" - -addSbtPlugin("io.spray" % "sbt-twirl" % "0.7.0") +addSbtPlugin("com.typesafe.sbt" % "sbt-twirl" % "1.0.2") addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.1.4") diff --git a/sbt-launch-0.13.1.jar b/sbt-launch-0.13.1.jar deleted file mode 100644 index 5c7d052..0000000 --- a/sbt-launch-0.13.1.jar +++ /dev/null Binary files differ diff --git a/sbt-launch-0.13.5.jar b/sbt-launch-0.13.5.jar new file mode 100644 index 0000000..174a7e1 --- /dev/null +++ b/sbt-launch-0.13.5.jar Binary files differ diff --git a/sbt.bat b/sbt.bat index cd356dd..6c83e1a 100644 --- a/sbt.bat +++ b/sbt.bat @@ -1,2 +1,2 @@ set SCRIPT_DIR=%~dp0 -java -Dsbt.log.noformat=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Xmx512M -Xss2M -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -jar "%SCRIPT_DIR%\sbt-launch-0.13.1.jar" %* +java -Dsbt.log.noformat=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Xmx512M -Xss2M -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -jar "%SCRIPT_DIR%\sbt-launch-0.13.5.jar" %* diff --git a/sbt.sh b/sbt.sh index 86cf93e..8df7890 100755 --- a/sbt.sh +++ b/sbt.sh @@ -1 +1 @@ -java -Dsbt.log.noformat=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Xmx512M -Xss2M -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -jar `dirname $0`/sbt-launch-0.13.1.jar "$@" +java -Dsbt.log.noformat=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Xmx512M -Xss2M -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -jar `dirname $0`/sbt-launch-0.13.5.jar "$@" diff --git a/src/main/scala/plugin/ScalaPlugin.scala b/src/main/scala/plugin/ScalaPlugin.scala index 81a99ee..add237a 100644 --- a/src/main/scala/plugin/ScalaPlugin.scala +++ b/src/main/scala/plugin/ScalaPlugin.scala @@ -10,6 +10,7 @@ import service.RepositoryService.RepositoryInfo import scala.reflect.runtime.currentMirror import scala.tools.reflect.ToolBox +import play.twirl.compiler.TwirlCompiler // TODO This is a sample implementation for Scala based plug-ins. class ScalaPlugin(val id: String, val version: String, @@ -49,7 +50,7 @@ } -object ScalaPlugin { +object ScalaPlugin extends App { def define(id: String, version: String, author: String, url: String, description: String) = new ScalaPlugin(id, version, author, url, description) @@ -60,4 +61,23 @@ toolbox.eval(tree) } + def compileTemplate(source: String) = { + val result = TwirlCompiler.compileVirtual(source, + new java.io.File("./sample.scala.html"), + new java.io.File("."), + "twirl.api.HtmlFormat.Appendable", + "twirl.api.HtmlFormat") + + println(result.content) + } + + compileTemplate( + """@(value: String) + | @value + | """.stripMargin) + + compileTemplate( + """@(value: String) + | @value + | """.stripMargin) } diff --git a/src/main/scala/servlet/PluginActionInvokeFilter.scala b/src/main/scala/servlet/PluginActionInvokeFilter.scala index cd8ec5c..d9026d0 100644 --- a/src/main/scala/servlet/PluginActionInvokeFilter.scala +++ b/src/main/scala/servlet/PluginActionInvokeFilter.scala @@ -3,7 +3,7 @@ import javax.servlet._ import javax.servlet.http.{HttpServletResponse, HttpServletRequest} import org.apache.commons.io.IOUtils -import twirl.api.Html +import play.twirl.api.Html import service.{AccountService, RepositoryService, SystemSettingsService} import model.{Account, Session} import util.{JGitUtil, Keys} diff --git a/src/main/scala/view/AvatarImageProvider.scala b/src/main/scala/view/AvatarImageProvider.scala index b41023f..8e610af 100644 --- a/src/main/scala/view/AvatarImageProvider.scala +++ b/src/main/scala/view/AvatarImageProvider.scala @@ -1,7 +1,7 @@ package view import service.RequestCache -import twirl.api.Html +import play.twirl.api.Html import util.StringUtil trait AvatarImageProvider { self: RequestCache => diff --git a/src/main/scala/view/helpers.scala b/src/main/scala/view/helpers.scala index e83606a..6ac6f87 100644 --- a/src/main/scala/view/helpers.scala +++ b/src/main/scala/view/helpers.scala @@ -1,7 +1,7 @@ package view import java.util.Date import java.text.SimpleDateFormat -import twirl.api.Html +import play.twirl.api.Html import util.StringUtil import service.RequestCache diff --git a/src/main/twirl/dashboard/issues.scala.html b/src/main/twirl/dashboard/issues.scala.html index 0329e46..f6f9bbb 100644 --- a/src/main/twirl/dashboard/issues.scala.html +++ b/src/main/twirl/dashboard/issues.scala.html @@ -1,4 +1,4 @@ -@(listparts: twirl.api.Html, +@(listparts: play.twirl.api.Html, allCount: Int, assignedCount: Int, createdByCount: Int, diff --git a/src/main/twirl/dashboard/pulls.scala.html b/src/main/twirl/dashboard/pulls.scala.html index b6c75f9..25caafe 100644 --- a/src/main/twirl/dashboard/pulls.scala.html +++ b/src/main/twirl/dashboard/pulls.scala.html @@ -1,4 +1,4 @@ -@(listparts: twirl.api.Html, +@(listparts: play.twirl.api.Html, counts: List[service.PullRequestService.PullRequestCount], repositories: List[(String, String, Int)], condition: service.IssuesService.IssueSearchCondition,