Commit d05ddbd4 authored by Yoshiharu Hirose's avatar Yoshiharu Hirose

ベースディレクトリを引数で指定

parent c1a8aa7e
iaas-sdk ユニットテスト用ダミーHTTPサーバ
実行
> activator "run (ベースディレクトリ)"
※HTTPサーバから返却するxmlが格納されたディレクトリを指定する。
例
> activator "run D:\project\nifty\clisdk\dev\iaas-sdk\src\test\resources"
...@@ -6,27 +6,30 @@ import com.sun.net.httpserver.{HttpExchange, HttpHandler, HttpServer} ...@@ -6,27 +6,30 @@ import com.sun.net.httpserver.{HttpExchange, HttpHandler, HttpServer}
import scala.collection.JavaConversions._ import scala.collection.JavaConversions._
object DummyHttpServer { object DummyHttpServer {
val BASEDIR = """D:\project\nifty\clisdk\dev\iaas-sdk\src\test\resources"""
val PORTS = Array(80, 8080, 38080) val PORTS = Array(80, 8080, 38080)
def main(args: Array[String]) { def main(args: Array[String]) {
PORTS.foreach(startServer) if (args.length > 0) {
printf("Starting server.\nbasedir = %s\n", args(0))
PORTS.foreach { port => startServer(args(0), port) }
}
} }
/** /**
* サーバ起動 * サーバ起動
*
* @param port 待ち受けポート番号 * @param port 待ち受けポート番号
*/ */
def startServer(port: Int) { def startServer(basedir: String, port: Int) {
val server = HttpServer.create(new InetSocketAddress(port), 10) val server = HttpServer.create(new InetSocketAddress(port), 10)
server.createContext("/", new DummyHttpServer.MyHandler) server.createContext("/", new DummyHttpServer.MyHandler(basedir))
server.start() server.start()
} }
/** /**
* ハンドラ * ハンドラ
*/ */
class MyHandler extends HttpHandler { class MyHandler(basedir: String) extends HttpHandler {
def handle(t: HttpExchange): Unit = { def handle(t: HttpExchange): Unit = {
println("------------------------------------------------------------") println("------------------------------------------------------------")
printf("%s %s\n", t.getRequestMethod, t.getRequestURI) printf("%s %s\n", t.getRequestMethod, t.getRequestURI)
...@@ -35,7 +38,7 @@ object DummyHttpServer { ...@@ -35,7 +38,7 @@ object DummyHttpServer {
printf("%s: %s\n", ent.getKey, v) printf("%s: %s\n", ent.getKey, v)
} }
} }
findFile(new File(t.getRequestURI.getPath).getName, new File(BASEDIR)) match { findFile(new File(t.getRequestURI.getPath).getName, new File(basedir)) match {
case Some(file) => case Some(file) =>
t.sendResponseHeaders(200, file.length) t.sendResponseHeaders(200, file.length)
val is = new BufferedInputStream(new FileInputStream(file)) val is = new BufferedInputStream(new FileInputStream(file))
...@@ -55,6 +58,7 @@ object DummyHttpServer { ...@@ -55,6 +58,7 @@ object DummyHttpServer {
/** /**
* ファイル検索 * ファイル検索
*
* @param filename ファイル名 * @param filename ファイル名
* @param dir 検索対象ディレクトリ * @param dir 検索対象ディレクトリ
* @return ファイル * @return ファイル
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment