summaryrefslogtreecommitdiff
path: root/examples/scala-js/sbt-plugin-test/project
diff options
context:
space:
mode:
authorHaoyi Li <haoyi@haoyi-mbp.corp.dropbox.com>2014-11-26 00:45:31 -0800
committerHaoyi Li <haoyi@haoyi-mbp.corp.dropbox.com>2014-11-26 00:45:31 -0800
commit24f31e120f9537faede7a174bb09ee35f64e1ce4 (patch)
tree06ffc3ecc7847789008352b7e2b7c040dad48907 /examples/scala-js/sbt-plugin-test/project
parentb89ce9cbf79363f8cab09186a5d7ba94bc0af02a (diff)
parent2c4b142503bd2d871e6818b5cab8c38627d9e4a0 (diff)
downloadhands-on-scala-js-24f31e120f9537faede7a174bb09ee35f64e1ce4.tar.gz
hands-on-scala-js-24f31e120f9537faede7a174bb09ee35f64e1ce4.tar.bz2
hands-on-scala-js-24f31e120f9537faede7a174bb09ee35f64e1ce4.zip
Merge commit '2c4b142503bd2d871e6818b5cab8c38627d9e4a0' as 'examples/scala-js'
Diffstat (limited to 'examples/scala-js/sbt-plugin-test/project')
-rw-r--r--examples/scala-js/sbt-plugin-test/project/Jetty9Test.scala83
-rw-r--r--examples/scala-js/sbt-plugin-test/project/build.properties1
-rw-r--r--examples/scala-js/sbt-plugin-test/project/build.sbt4
-rw-r--r--examples/scala-js/sbt-plugin-test/project/project/build.sbt1
4 files changed, 89 insertions, 0 deletions
diff --git a/examples/scala-js/sbt-plugin-test/project/Jetty9Test.scala b/examples/scala-js/sbt-plugin-test/project/Jetty9Test.scala
new file mode 100644
index 0000000..6a84114
--- /dev/null
+++ b/examples/scala-js/sbt-plugin-test/project/Jetty9Test.scala
@@ -0,0 +1,83 @@
+import sbt._
+import Keys._
+
+import scala.scalajs.sbtplugin._
+import ScalaJSPlugin.autoImport._
+import Implicits._
+
+import scala.scalajs.tools.env._
+import scala.scalajs.tools.io._
+
+import org.eclipse.jetty.server._
+import org.eclipse.jetty.server.handler._
+import org.eclipse.jetty.util.component._
+
+import java.io.File
+
+object Jetty9Test {
+
+ private val jettyPort = 23548
+
+ val runSetting = run <<= Def.inputTask {
+ val env = (jsEnv in Compile).value.asInstanceOf[ComJSEnv]
+ val cp = (scalaJSExecClasspath in Compile).value
+ val jsConsole = scalaJSConsole.value
+
+ val code = new MemVirtualJSFile("runner.js").withContent(
+ """
+ scalajsCom.init(function(msg) {
+ jQuery.ajax({
+ url: msg,
+ success: function(dat) {
+ scalajsCom.send(dat.trim());
+ scalajsCom.close();
+ },
+ error: function() {
+ scalajsCom.send("failed!");
+ scalajsCom.close();
+ }
+ });
+ });
+ """
+ )
+
+ val runner = env.comRunner(cp, code, streams.value.log, jsConsole)
+
+ runner.start()
+
+ val jetty = setupJetty((resourceDirectory in Compile).value)
+
+ jetty.addLifeCycleListener(new AbstractLifeCycle.AbstractLifeCycleListener {
+ override def lifeCycleStarted(event: LifeCycle): Unit = {
+ try {
+ runner.send(s"http://localhost:$jettyPort/test.txt")
+ val msg = runner.receive()
+ val expected = "It works!"
+ if (msg != expected)
+ sys.error(s"""received "$msg" instead of "$expected"""")
+ } finally {
+ runner.close()
+ jetty.stop()
+ }
+ }
+ })
+
+ jetty.start()
+ runner.await()
+ jetty.join()
+ }
+
+ private def setupJetty(dir: File): Server = {
+ val server = new Server(jettyPort)
+
+ val resource_handler = new ResourceHandler()
+ resource_handler.setResourceBase(dir.getAbsolutePath)
+
+ val handlers = new HandlerList()
+ handlers.setHandlers(Array(resource_handler, new DefaultHandler()))
+ server.setHandler(handlers)
+
+ server
+ }
+
+}
diff --git a/examples/scala-js/sbt-plugin-test/project/build.properties b/examples/scala-js/sbt-plugin-test/project/build.properties
new file mode 100644
index 0000000..64abd37
--- /dev/null
+++ b/examples/scala-js/sbt-plugin-test/project/build.properties
@@ -0,0 +1 @@
+sbt.version=0.13.6
diff --git a/examples/scala-js/sbt-plugin-test/project/build.sbt b/examples/scala-js/sbt-plugin-test/project/build.sbt
new file mode 100644
index 0000000..8419289
--- /dev/null
+++ b/examples/scala-js/sbt-plugin-test/project/build.sbt
@@ -0,0 +1,4 @@
+addSbtPlugin("org.scala-lang.modules.scalajs" % "scalajs-sbt-plugin" %
+ scala.scalajs.ir.ScalaJSVersions.current)
+
+libraryDependencies += "org.eclipse.jetty" % "jetty-server" % "9.2.3.v20140905"
diff --git a/examples/scala-js/sbt-plugin-test/project/project/build.sbt b/examples/scala-js/sbt-plugin-test/project/project/build.sbt
new file mode 100644
index 0000000..fb20cb7
--- /dev/null
+++ b/examples/scala-js/sbt-plugin-test/project/project/build.sbt
@@ -0,0 +1 @@
+sources in Compile += baseDirectory.value / "../../../ir/src/main/scala/scala/scalajs/ir/ScalaJSVersions.scala"