diff --git a/examples/demo/demo-safe.ecf b/examples/demo/demo-safe.ecf
index a7c63f1..c229969 100644
--- a/examples/demo/demo-safe.ecf
+++ b/examples/demo/demo-safe.ecf
@@ -9,6 +9,7 @@
+
@@ -23,16 +24,16 @@
-
+
-
+
-
+
diff --git a/examples/demo/launcher/any/application_launcher_i.e b/examples/demo/launcher/any/application_launcher_i.e
index ac0dc51..026d12f 100644
--- a/examples/demo/launcher/any/application_launcher_i.e
+++ b/examples/demo/launcher/any/application_launcher_i.e
@@ -23,9 +23,9 @@ feature -- Execution
do
nature := launcher_nature
if nature = Void then
- launch_httpd (opts)
- elseif nature = nature_httpd then
- launch_httpd (opts)
+ launch_standalone (opts)
+ elseif nature = nature_standalone then
+ launch_standalone (opts)
elseif nature = nature_nino then
launch_nino (opts)
elseif nature = nature_cgi then
@@ -54,8 +54,8 @@ feature {NONE} -- Access
ext := l_entry.extension
end
if ext /= Void then
- if ext.same_string (nature_httpd) then
- Result := nature_httpd
+ if ext.same_string (nature_standalone) then
+ Result := nature_standalone
end
if ext.same_string (nature_nino) then
Result := nature_nino
@@ -70,13 +70,13 @@ feature {NONE} -- Access
Result := default_nature
end
-feature {NONE} -- httpd
+feature {NONE} -- standalone
- nature_httpd: STRING = "httpd"
+ nature_standalone: STRING = "standalone"
- launch_httpd (opts: detachable WSF_SERVICE_LAUNCHER_OPTIONS)
+ launch_standalone (opts: detachable WSF_SERVICE_LAUNCHER_OPTIONS)
local
- launcher: WSF_HTTPD_SERVICE_LAUNCHER [G]
+ launcher: WSF_STANDALONE_SERVICE_LAUNCHER [G]
do
create launcher.make_and_launch (opts)
end
@@ -118,7 +118,7 @@ feature -- Default
default_nature: STRING
do
- Result := nature_httpd
+ Result := nature_standalone
end
diff --git a/examples/demo/src/ewf_roc_server_execution.e b/examples/demo/src/ewf_roc_server_execution.e
index 61d0e71..d2ba614 100644
--- a/examples/demo/src/ewf_roc_server_execution.e
+++ b/examples/demo/src/ewf_roc_server_execution.e
@@ -8,7 +8,7 @@ class
EWF_ROC_SERVER_EXECUTION
inherit
- WSF_EXECUTION
+ CMS_EXECUTION
redefine
initialize
end
@@ -25,52 +25,6 @@ feature {NONE} -- Initialization
initialize
do
Precursor
- initialize_cms (cms_setup)
- end
-
-feature -- Access
-
- cms_service: CMS_SERVICE
- -- cms service.
-
- layout: CMS_LAYOUT
- -- cms layout.
-
-feature -- Execution
-
- execute
- local
- do
- cms_service.execute (request, response)
- end
-
-feature -- CMS Initialization
-
- cms_setup: CMS_DEFAULT_SETUP
- local
- utf: UTF_CONVERTER
- do
- if attached execution_environment.arguments.separate_character_option_value ('d') as l_dir then
- create layout.make_with_directory_name (l_dir)
- else
- create layout.make_default
- end
- initialize_logger (layout)
- write_debug_log (generator + ".cms_setup based directory %"" + utf.escaped_utf_32_string_to_utf_8_string_8 (layout.path.name) + "%"")
- create Result.make (layout)
- setup_storage (Result)
- end
-
- initialize_cms (a_setup: CMS_SETUP)
- local
- cms: CMS_SERVICE
- api: CMS_API
- do
- write_debug_log (generator + ".initialize_cms")
- setup_modules (a_setup)
- create api.make (a_setup)
- create cms.make (api)
- cms_service := cms
end
feature -- CMS setup
diff --git a/src/persistence/cms_storage_null.e b/src/persistence/cms_storage_null.e
index e13e349..7e28103 100644
--- a/src/persistence/cms_storage_null.e
+++ b/src/persistence/cms_storage_null.e
@@ -49,7 +49,7 @@ feature -- Access: user
users: LIST [CMS_USER]
do
- create {ARRAYED_LIST[CMS_USER]} Result.make (0)
+ create {ARRAYED_LIST [CMS_USER]} Result.make (0)
end
user_by_id (a_id: like {CMS_USER}.id): detachable CMS_USER
@@ -70,16 +70,16 @@ feature -- Access: user
feature -- User Nodes
- user_collaborator_nodes (a_id: like {CMS_USER}.id): LIST[CMS_NODE]
+ user_collaborator_nodes (a_id: like {CMS_USER}.id): LIST [CMS_NODE]
-- Possible list of nodes where the user identified by `a_id', is a collaborator.
do
- create {ARRAYED_LIST[CMS_NODE]} Result.make (0)
+ create {ARRAYED_LIST [CMS_NODE]} Result.make (0)
end
- user_author_nodes (a_id: like {CMS_USER}.id): LIST[CMS_NODE]
+ user_author_nodes (a_id: like {CMS_USER}.id): LIST [CMS_NODE]
-- Possible list of nodes where the user identified by `a_id', is the author.
do
- create {ARRAYED_LIST[CMS_NODE]} Result.make (0)
+ create {ARRAYED_LIST [CMS_NODE]} Result.make (0)
end
feature -- Change: user
@@ -103,10 +103,9 @@ feature -- Access: roles and permissions
user_roles: LIST [CMS_USER_ROLE]
do
- create {ARRAYED_LIST[CMS_USER_ROLE]} Result.make (0)
+ create {ARRAYED_LIST [CMS_USER_ROLE]} Result.make (0)
end
-
feature -- Change: roles and permissions
save_user_role (a_user_role: CMS_USER_ROLE)
@@ -123,13 +122,13 @@ feature -- Access: node
nodes: LIST[CMS_NODE]
-- List of nodes.
do
- create {ARRAYED_LIST[CMS_NODE]} Result.make (0)
+ create {ARRAYED_LIST [CMS_NODE]} Result.make (0)
end
recent_nodes (a_lower: INTEGER; a_count: INTEGER): LIST [CMS_NODE]
-- List of the `a_count' most recent nodes, starting from `a_lower'.
do
- create {ARRAYED_LIST[CMS_NODE]} Result.make (0)
+ create {ARRAYED_LIST [CMS_NODE]} Result.make (0)
end
node_by_id (a_id: INTEGER_64): detachable CMS_NODE
@@ -145,7 +144,7 @@ feature -- Access: node
node_collaborators (a_id: like {CMS_NODE}.id): LIST [CMS_USER]
-- Possible list of node's collaborator.
do
- create {ARRAYED_LIST[CMS_USER]} Result.make (0)
+ create {ARRAYED_LIST [CMS_USER]} Result.make (0)
end
feature -- Node
diff --git a/src/service/cms_service.e b/src/service/cms_execution.e
similarity index 82%
rename from src/service/cms_service.e
rename to src/service/cms_execution.e
index 2b8e06a..d1d2cb1 100644
--- a/src/service/cms_service.e
+++ b/src/service/cms_execution.e
@@ -6,53 +6,49 @@ note
even for a specific handler.
]"
-class
- CMS_SERVICE
+deferred class
+ CMS_EXECUTION
inherit
- WSF_ROUTED_SKELETON_SERVICE
- rename
- execute as execute_service
+ WSF_FILTERED_ROUTED_SKELETON_EXECUTION
undefine
requires_proxy
redefine
- execute_default
- end
-
- WSF_FILTERED_SERVICE
-
- WSF_FILTER
- rename
- execute as execute_filter
+ execute_default,
+ filter_execute,
+ initialize
end
WSF_NO_PROXY_POLICY
- WSF_URI_HELPER_FOR_ROUTED_SERVICE
+ WSF_URI_HELPER_FOR_ROUTED_EXECUTION
- WSF_URI_TEMPLATE_HELPER_FOR_ROUTED_SERVICE
+ WSF_URI_TEMPLATE_HELPER_FOR_ROUTED_EXECUTION
REFACTORING_HELPER
SHARED_LOGGER
-create
- make
+--create
+-- make
feature {NONE} -- Initialization
- make (a_api: CMS_API)
+ initialize
-- Build a CMS service with `a_api'
do
- api := a_api
- initialize
- ensure
- api_set: api = a_api
+ initialize_cms (cms_setup)
+ Precursor
end
- initialize
- -- Initialize various parts of the CMS service.
+ initialize_cms (a_setup: CMS_SETUP)
do
+ setup := a_setup
+ write_debug_log (generator + ".initialize_cms")
+ setup_modules (a_setup)
+ create api.make (a_setup)
+
+ -- CMS Initialization
initialize_modules
initialize_users
initialize_auth_engine
@@ -88,6 +84,17 @@ feature {NONE} -- Initialization
to_implement ("To Implement authentication engine")
end
+feature -- CMS setup
+
+ setup_modules (a_setup: CMS_SETUP)
+ -- Setup additional modules.
+ deferred
+ end
+
+ setup_storage (a_setup: CMS_SETUP)
+ deferred
+ end
+
feature -- Settings: router
setup_router
@@ -155,12 +162,12 @@ feature -- Settings: router
feature -- Execute Filter
- execute_filter (req: WSF_REQUEST; res: WSF_RESPONSE)
+ filter_execute (req: WSF_REQUEST; res: WSF_RESPONSE)
-- Execute the filter.
do
res.put_header_line ("Date: " + (create {HTTP_DATE}.make_now_utc).string)
res.put_header_line ("X-EWF-Server: CMS_v1.0")
- execute_service (req, res)
+ Precursor (req, res)
end
feature -- Filters
@@ -225,13 +232,27 @@ feature -- Filters
feature -- Access
+ layout: CMS_LAYOUT
+
api: CMS_API
-- API service.
- setup: CMS_SETUP
+ setup: CMS_SETUP
+
+ cms_setup: CMS_DEFAULT_SETUP
-- CMS setup.
+ local
+ utf: UTF_CONVERTER
do
- Result := api.setup
+ if attached execution_environment.arguments.separate_character_option_value ('d') as l_dir then
+ create layout.make_with_directory_name (l_dir)
+ else
+ create layout.make_default
+ end
+ initialize_logger (layout)
+ write_debug_log (generator + ".cms_setup based directory %"" + utf.escaped_utf_32_string_to_utf_8_string_8 (layout.path.name) + "%"")
+ create Result.make (layout)
+ setup_storage (Result)
end
modules: CMS_MODULE_COLLECTION