Renamed "layout" lib as "app_env" with APPLICATION_ENVIRONMENT interface. applied changed to callers. Added CMS_THEME.has_region (a_name): BOOLEAN to know if a region is declared in a defined theme.
164 lines
3.5 KiB
Plaintext
164 lines
3.5 KiB
Plaintext
note
|
|
description: "[
|
|
application service
|
|
]"
|
|
date: "$Date: 2015-02-09 22:29:56 +0100 (lun., 09 févr. 2015) $"
|
|
revision: "$Revision: 96596 $"
|
|
|
|
class
|
|
EWF_ROC_SERVER
|
|
|
|
inherit
|
|
WSF_LAUNCHABLE_SERVICE
|
|
rename
|
|
make_and_launch as make_and_launch_service
|
|
redefine
|
|
initialize
|
|
end
|
|
|
|
WSF_SERVICE
|
|
redefine
|
|
execute
|
|
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.
|
|
do
|
|
-- Launcher
|
|
Precursor
|
|
create {WSF_SERVICE_LAUNCHER_OPTIONS_FROM_INI} service_options.make_from_file ("demo.ini")
|
|
|
|
-- CMS
|
|
initialize_cms
|
|
end
|
|
|
|
feature -- Service
|
|
|
|
cms_service: CMS_SERVICE
|
|
-- cms service.
|
|
|
|
execute (req: WSF_REQUEST; res: WSF_RESPONSE)
|
|
do
|
|
cms_service.execute (req, res)
|
|
end
|
|
|
|
feature {NONE} -- Launch operation
|
|
|
|
launcher: APPLICATION_LAUNCHER
|
|
|
|
launch (a_service: WSF_SERVICE; opts: detachable WSF_SERVICE_LAUNCHER_OPTIONS)
|
|
local
|
|
l_retry: BOOLEAN
|
|
l_message: STRING
|
|
do
|
|
if not l_retry then
|
|
write_debug_log (generator + ".launch")
|
|
launcher.launch (a_service, 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 crash without available information")
|
|
l_message.append ("%N%N")
|
|
end
|
|
-- notify shutdown
|
|
write_debug_log (generator + ".launch shutdown")
|
|
end
|
|
rescue
|
|
l_retry := True
|
|
retry
|
|
end
|
|
|
|
feature -- CMS Initialization
|
|
|
|
initialize_cms
|
|
local
|
|
l_setup: CMS_DEFAULT_SETUP
|
|
utf: UTF_CONVERTER
|
|
cms_env: CMS_ENVIRONMENT
|
|
do
|
|
write_debug_log (generator + ".initialize_cms / Environment")
|
|
|
|
-- Application Environment initialization
|
|
if attached execution_environment.arguments.separate_character_option_value ('d') as l_dir then
|
|
create cms_env.make_with_directory_name (l_dir)
|
|
else
|
|
create cms_env.make_default
|
|
end
|
|
initialize_logger (cms_env)
|
|
|
|
-- CMS Setup
|
|
write_debug_log (generator + ".initialize_cms / SETUP based directory=%"" + utf.escaped_utf_32_string_to_utf_8_string_8 (cms_env.path.name) + "%"")
|
|
create l_setup.make (cms_env)
|
|
|
|
-- CMS
|
|
write_debug_log (generator + ".initialize_cms / CMS")
|
|
setup_storage (l_setup)
|
|
setup_modules (l_setup)
|
|
create cms_service.make (l_setup)
|
|
end
|
|
|
|
feature -- CMS setup
|
|
|
|
setup_modules (a_setup: CMS_SETUP)
|
|
-- Setup additional modules.
|
|
local
|
|
m: CMS_MODULE
|
|
do
|
|
create {BASIC_AUTH_MODULE} m.make
|
|
if not a_setup.module_with_same_type_registered (m) then
|
|
m.enable
|
|
a_setup.register_module (m)
|
|
end
|
|
|
|
create {CMS_DEBUG_MODULE} m.make
|
|
m.enable
|
|
a_setup.register_module (m)
|
|
|
|
create {CMS_DEMO_MODULE} m.make
|
|
m.enable
|
|
a_setup.register_module (m)
|
|
|
|
create {CMS_BLOG_MODULE} m.make
|
|
m.enable
|
|
a_setup.register_module (m)
|
|
end
|
|
|
|
setup_storage (a_setup: CMS_SETUP)
|
|
-- Setup storage by declaring storage builder.
|
|
do
|
|
a_setup.storage_drivers.force (create {CMS_STORAGE_MYSQL_BUILDER}.make, "mysql")
|
|
a_setup.storage_drivers.force (create {CMS_STORAGE_SQLITE_BUILDER}.make, "sqlite")
|
|
end
|
|
|
|
end
|
|
|