From 3a6e3592ae55fa6039be43895d21fb01cfb9fdc3 Mon Sep 17 00:00:00 2001 From: Jocelyn Fiat Date: Fri, 4 Nov 2011 12:15:40 +0100 Subject: [PATCH] Use recent changes from Nino, to get access to the launched and port information. Quite useful when launching using port=0 to use a random free port. This is great for testing, this way we can run many tests in the same time without any port blocking. --- ext/server/nino | 2 +- .../connectors/nino/src/nino_application.e | 14 ++++++++++ .../connectors/nino/src/wgi_nino_connector.e | 27 +++++++++++++++++++ .../connectors/nino/src/wgi_nino_handler.e | 18 +++++++++++++ .../server/wsf/tests/src/test_wsf_request.e | 4 ++- 5 files changed, 63 insertions(+), 2 deletions(-) diff --git a/ext/server/nino b/ext/server/nino index cac126f2..cef6f302 160000 --- a/ext/server/nino +++ b/ext/server/nino @@ -1 +1 @@ -Subproject commit cac126f2f1e81dbd3289bf8b9906a885f1fa50b1 +Subproject commit cef6f30251d283e7ecd16349498534b09bac8577 diff --git a/library/server/ewsgi/connectors/nino/src/nino_application.e b/library/server/ewsgi/connectors/nino/src/nino_application.e index 00ae8a80..3d137bfb 100644 --- a/library/server/ewsgi/connectors/nino/src/nino_application.e +++ b/library/server/ewsgi/connectors/nino/src/nino_application.e @@ -32,6 +32,20 @@ feature {NONE} -- Implementation connector: WGI_NINO_CONNECTOR -- Web server connector +feature -- Status report + + launched: BOOLEAN + -- Server launched? + do + Result := connector.launched + end + + port: INTEGER + -- Port listened + do + Result := connector.port + end + feature -- Status settings configuration: HTTP_SERVER_CONFIGURATION diff --git a/library/server/ewsgi/connectors/nino/src/wgi_nino_connector.e b/library/server/ewsgi/connectors/nino/src/wgi_nino_connector.e index 4f8f4350..56432087 100644 --- a/library/server/ewsgi/connectors/nino/src/wgi_nino_connector.e +++ b/library/server/ewsgi/connectors/nino/src/wgi_nino_connector.e @@ -51,6 +51,31 @@ feature -- Access base: detachable STRING -- Root url base +feature -- Status report + + launched: BOOLEAN + -- Server launched and listening on `port' + + port: INTEGER + -- Listening port. + --| 0: not launched + +feature -- Element change + + on_launched (a_port: INTEGER) + -- Server launched + do + launched := True + port := a_port + end + + on_stopped + -- Server stopped + do + launched := False + port := 0 + end + feature -- Element change set_base (b: like base) @@ -68,6 +93,8 @@ feature -- Server local l_http_handler : HTTP_HANDLER do + launched := False + port := 0 create {WGI_NINO_HANDLER} l_http_handler.make_with_callback (server, "NINO_HANDLER", Current) if configuration.is_verbose then if attached base as l_base then diff --git a/library/server/ewsgi/connectors/nino/src/wgi_nino_handler.e b/library/server/ewsgi/connectors/nino/src/wgi_nino_handler.e index 2f0de156..9c90aab6 100644 --- a/library/server/ewsgi/connectors/nino/src/wgi_nino_handler.e +++ b/library/server/ewsgi/connectors/nino/src/wgi_nino_handler.e @@ -9,6 +9,10 @@ class inherit HTTP_CONNECTION_HANDLER + redefine + on_launched, + on_stopped + end create make_with_callback @@ -30,6 +34,20 @@ feature -- Access base: detachable STRING -- Root url base +feature -- Element change + + on_launched (a_port: INTEGER) + do + Precursor (a_port) + callback.on_launched (a_port) + end + + on_stopped + do + Precursor + callback.on_stopped + end + feature -- Element change set_base (a_uri: like base) diff --git a/library/server/wsf/tests/src/test_wsf_request.e b/library/server/wsf/tests/src/test_wsf_request.e index d7d4f85a..539756be 100644 --- a/library/server/wsf/tests/src/test_wsf_request.e +++ b/library/server/wsf/tests/src/test_wsf_request.e @@ -36,7 +36,7 @@ feature {NONE} -- Events wt: WORKER_THREAD e: EXECUTION_ENVIRONMENT do - port_number := 8087 + port_number := 0 base_url := "test/" create app.make_custom (agent wgi_execute, base_url) web_app := app @@ -46,6 +46,8 @@ feature {NONE} -- Events create e e.sleep (1_000_000_000 * 5) + + port_number := app.port end execute (req: WSF_REQUEST; res: WSF_RESPONSE)