in http-server/src/main/scala/com/twitter/finatra/http/routing/HttpWarmup.scala [53:84]
def send(
request: => Request,
admin: Boolean = false,
times: Int = 1
)(
responseCallback: Response => Unit = unitFunction
): Unit = {
for (_ <- 1 to times) {
// Because this method is call-by-name for "request", if "request" is called more than once, a
// new object could be created each time. Resolve it up-front to prevent this.
val createdRequest = request
/* Mutation */
createdRequest.headerMap.set("Host", "127.0.0.1")
createdRequest.headerMap.set("User-Agent", userAgent)
val service: Service[Request, Response] =
if (createdRequest.uri.startsWith(HttpRouter.FinatraAdminPrefix) || admin) {
router.services.adminService
} else {
router.services.externalService
}
logger.infoResult("%s") {
val response = Await.result(service(createdRequest))
responseCallback(response)
s"Warmup $createdRequest completed with ${response.status}"
}
}
}