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.
This commit is contained in:
Jocelyn Fiat
2011-11-04 12:15:40 +01:00
parent 07f9a8cec7
commit 3a6e3592ae
5 changed files with 63 additions and 2 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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)