Files
ROC/launcher/roc_cms_launcher.e
Jocelyn Fiat f51ddc9796 Extracted launcher code into cms/launcher/... libraries.
(mostly to help new project based on ROC CMS).
Renamed and simplified the roc cms server launcher, and the related cms execution.
Updated cms.ini and extract blocks related management into blocks.ini.
Added debug clauses for cms sqlite3 storage.
2015-10-19 22:50:48 +02:00

96 lines
2.0 KiB
Plaintext

note
description: "[
Reusable ROC CMS launcher.
]"
date: "$Date: 2015-02-09 22:29:56 +0100 (lun., 09 févr. 2015) $"
revision: "$Revision: 96596 $"
class
ROC_CMS_LAUNCHER [G -> CMS_EXECUTION create make end]
inherit
WSF_LAUNCHABLE_SERVICE
rename
make_and_launch as make_and_launch_service
redefine
initialize
end
REFACTORING_HELPER
SHARED_EXECUTION_ENVIRONMENT
SHARED_LOGGER
create
make_and_launch
feature {NONE} -- Initialization
make_and_launch
do
create launcher
make_and_launch_service
end
initialize
-- Initialize current service.
local
env: CMS_ENVIRONMENT
l_app_name: detachable READABLE_STRING_32
do
Precursor
create env.make_default
l_app_name := optional_application_name
if l_app_name = Void then
l_app_name := env.name
end
create {WSF_SERVICE_LAUNCHER_OPTIONS_FROM_INI} service_options.make_from_file (l_app_name + ".ini")
initialize_logger (env)
end
optional_application_name: detachable READABLE_STRING_32
-- Optional application name.
--| Redefine if needed.
do
end
feature {NONE} -- Launch operation
launcher: APPLICATION_LAUNCHER [G]
launch (opts: detachable WSF_SERVICE_LAUNCHER_OPTIONS)
local
l_retry: BOOLEAN
l_message: STRING
do
if not l_retry then
launcher.launch (opts)
else
-- error hanling.
create l_message.make (1024)
if attached ((create {EXCEPTION_MANAGER}).last_exception) as l_exception then
if attached l_exception.description as l_description then
l_message.append (l_description.as_string_32)
l_message.append ("%N%N")
elseif attached l_exception.trace as l_trace then
l_message.append (l_trace)
l_message.append ("%N%N")
else
l_message.append (l_exception.out)
l_message.append ("%N%N")
end
else
l_message.append ("The application crashed without information.")
l_message.append ("%N%N")
end
-- send email shutdown
end
rescue
l_retry := True
retry
end
end