|
Play Framework/Scala example source code file (HttpExecutionContextSpec.scala)
The HttpExecutionContextSpec.scala Play Framework example source code
/*
* Copyright (C) 2009-2013 Typesafe Inc. <http://www.typesafe.com>
*/
package play.core.j
import java.util.concurrent.LinkedBlockingQueue
import java.util.concurrent.TimeUnit.SECONDS
import org.specs2.mutable.Specification
import play.api.libs.iteratee.ExecutionSpecification
import play.mvc.Http
import scala.collection.JavaConverters._
import scala.concurrent.ExecutionContext
object HttpExecutionContextSpec extends Specification
with ExecutionSpecification {
"HttpExecutionContext" should {
"propagate the context ClassLoader and Http.Context" in {
mustExecute(2) { ec =>
val pec = ec.prepare()
val classLoader = new ClassLoader() {}
val httpContext = new Http.Context(1, null, null, Map.empty.asJava, Map.empty.asJava, Map.empty.asJava)
val hec = new HttpExecutionContext(classLoader, httpContext, pec)
val hecFromThread = new LinkedBlockingQueue[ExecutionContext]()
hec.execute(new Runnable {
def run() = {
hecFromThread.offer(HttpExecutionContext.fromThread(pec))
}
})
val actualClassLoader = new LinkedBlockingQueue[ClassLoader]()
val actualHttpContext = new LinkedBlockingQueue[Http.Context]()
hecFromThread.poll(5, SECONDS).execute(new Runnable {
def run() = {
actualClassLoader.offer(Thread.currentThread().getContextClassLoader())
actualHttpContext.offer(Http.Context.current.get())
}
})
actualClassLoader.poll(5, SECONDS) must equalTo(classLoader)
actualHttpContext.poll(5, SECONDS) must equalTo(httpContext)
}
}
}
}
Other Play Framework source code examplesHere is a short list of links related to this Play Framework HttpExecutionContextSpec.scala source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.