Added CMS_MODULE_CONFIGURATOR.
Added a default implementation of CMS_MODULE_CONGIRATOR. Updated CMS_SERVICE, to use the new CMS_MODULE_CONFIGURATOR. Updated Example.
This commit is contained in:
@@ -12,13 +12,18 @@ inherit
|
||||
REFACTORING_HELPER
|
||||
create
|
||||
make
|
||||
|
||||
feature {NONE} -- Initialization
|
||||
|
||||
make (a_layout: CMS_LAYOUT)
|
||||
do
|
||||
layout := a_layout
|
||||
create configuration.make (layout)
|
||||
configure
|
||||
end
|
||||
|
||||
configure
|
||||
do
|
||||
site_id := configuration.site_id
|
||||
site_url := configuration.site_url ("")
|
||||
site_name := configuration.site_name ("EWF::CMS")
|
||||
@@ -35,20 +40,14 @@ feature {NONE} -- Initialization
|
||||
initialize
|
||||
end
|
||||
|
||||
|
||||
initialize
|
||||
do
|
||||
build_api_service
|
||||
build_auth_engine
|
||||
build_mailer
|
||||
build_modules
|
||||
end
|
||||
|
||||
feature -- Access
|
||||
|
||||
modules: ARRAYED_LIST [CMS_MODULE]
|
||||
-- List of possible modules
|
||||
|
||||
is_html: BOOLEAN
|
||||
-- <Precursor>
|
||||
do
|
||||
@@ -63,34 +62,6 @@ feature -- Access
|
||||
|
||||
end
|
||||
|
||||
feature {NONE} -- Initialization
|
||||
|
||||
build_modules
|
||||
-- Core modules. (User, Admin, Node)
|
||||
-- At the moment only node is supported.
|
||||
local
|
||||
m: CMS_MODULE
|
||||
do
|
||||
create modules.make (3)
|
||||
|
||||
-- -- Core
|
||||
-- create {USER_MODULE} m.make
|
||||
-- m.enable
|
||||
-- modules.extend (m)
|
||||
|
||||
-- create {ADMIN_MODULE} m.make
|
||||
-- m.enable
|
||||
-- modules.extend (m)
|
||||
|
||||
create {NODE_MODULE} m.make (Current)
|
||||
m.enable
|
||||
modules.extend (m)
|
||||
|
||||
create {BASIC_AUTH_MODULE} m.make (Current)
|
||||
m.enable
|
||||
modules.extend (m)
|
||||
end
|
||||
|
||||
build_api_service
|
||||
local
|
||||
l_database: DATABASE_CONNECTION
|
||||
@@ -115,12 +86,4 @@ feature {NONE} -- Initialization
|
||||
to_implement ("Not implemented mailer")
|
||||
end
|
||||
|
||||
feature -- Change
|
||||
|
||||
add_module (m: CMS_MODULE)
|
||||
-- Add a module `m' to the list of modules `modules'.
|
||||
do
|
||||
modules.force (m)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -17,13 +17,6 @@ feature -- Access
|
||||
api_service: CMS_API_SERVICE
|
||||
-- cms api service.
|
||||
|
||||
modules: LIST[CMS_MODULE]
|
||||
-- Possible list of modules.
|
||||
-- |If we remove Modules from setup.
|
||||
-- |we can let the CMS_SERVICE define the basic modules.
|
||||
deferred
|
||||
end
|
||||
|
||||
is_html: BOOLEAN
|
||||
-- api with progresive enhacements css and js, server side rendering.
|
||||
deferred
|
||||
|
||||
30
cms/src/modules/cms_module_configurator.e
Normal file
30
cms/src/modules/cms_module_configurator.e
Normal file
@@ -0,0 +1,30 @@
|
||||
note
|
||||
description: "Summary description for {CMS_MODULE_CONFIGURATOR}."
|
||||
author: ""
|
||||
date: "$Date$"
|
||||
revision: "$Revision$"
|
||||
|
||||
deferred class
|
||||
CMS_MODULE_CONFIGURATOR
|
||||
|
||||
feature -- Access
|
||||
|
||||
modules: LIST[CMS_MODULE]
|
||||
-- Possible list of modules.
|
||||
deferred
|
||||
end
|
||||
|
||||
feature -- Add Module
|
||||
|
||||
add_module (a_module: CMS_MODULE)
|
||||
-- Add module
|
||||
do
|
||||
modules.force (a_module)
|
||||
end
|
||||
|
||||
remove_module (a_module: CMS_MODULE)
|
||||
-- Remove module
|
||||
do
|
||||
modules.prune (a_module)
|
||||
end
|
||||
end
|
||||
53
cms/src/modules/default/cms_default_module_configurator.e
Normal file
53
cms/src/modules/default/cms_default_module_configurator.e
Normal file
@@ -0,0 +1,53 @@
|
||||
note
|
||||
description: "Summary description for {CMS_DEFAULT_MODULE_CONFIGURATOR}."
|
||||
author: ""
|
||||
date: "$Date$"
|
||||
revision: "$Revision$"
|
||||
|
||||
class
|
||||
CMS_DEFAULT_MODULE_CONFIGURATOR
|
||||
|
||||
inherit
|
||||
|
||||
CMS_MODULE_CONFIGURATOR
|
||||
|
||||
create
|
||||
make
|
||||
|
||||
feature {NONE} -- Initialization
|
||||
|
||||
make (a_setup: CMS_SETUP)
|
||||
do
|
||||
build_modules (a_setup)
|
||||
end
|
||||
|
||||
feature -- Access
|
||||
|
||||
modules: ARRAYED_LIST [CMS_MODULE]
|
||||
-- List of possible modules
|
||||
|
||||
|
||||
feature -- Configuration
|
||||
|
||||
build_modules (a_setup: CMS_SETUP)
|
||||
-- Core modules. (User, Admin, Node)
|
||||
-- At the moment only node is supported.
|
||||
local
|
||||
m: CMS_MODULE
|
||||
do
|
||||
create modules.make (3)
|
||||
-- -- Core
|
||||
-- create {USER_MODULE} m.make (a_setup)
|
||||
-- m.enable
|
||||
-- modules.extend (m)
|
||||
|
||||
-- create {ADMIN_MODULE} m.make (a_setup)
|
||||
-- m.enable
|
||||
-- modules.extend (m)
|
||||
|
||||
create {NODE_MODULE} m.make (a_setup)
|
||||
m.enable
|
||||
modules.extend (m)
|
||||
end
|
||||
|
||||
end
|
||||
@@ -37,16 +37,34 @@ inherit
|
||||
SHARED_LOGGER
|
||||
|
||||
create
|
||||
make
|
||||
make,
|
||||
make_with_module_configurator
|
||||
|
||||
feature {NONE} -- Initialization
|
||||
|
||||
make (a_setup: CMS_SETUP)
|
||||
-- Build a a default service with a CMS_DEFAULT_MODULE_CONFIGURATOR
|
||||
do
|
||||
setup := a_setup
|
||||
configuration := a_setup.configuration
|
||||
modules := a_setup.modules
|
||||
create {CMS_DEFAULT_MODULE_CONFIGURATOR} modules.make (a_setup)
|
||||
create {ARRAYED_LIST[WSF_FILTER]} filters.make (0)
|
||||
initialize
|
||||
end
|
||||
|
||||
make_with_module_configurator (a_setup: CMS_SETUP; a_module_configurator: CMS_MODULE_CONFIGURATOR)
|
||||
-- Build a a default service with a custom CMS_MODULE_CONFIGURATOR
|
||||
do
|
||||
setup := a_setup
|
||||
configuration := a_setup.configuration
|
||||
modules := a_module_configurator
|
||||
create {ARRAYED_LIST[WSF_FILTER]} filters.make (0)
|
||||
initialize
|
||||
end
|
||||
|
||||
|
||||
initialize
|
||||
do
|
||||
initialize_users
|
||||
initialize_auth_engine
|
||||
initialize_mailer
|
||||
@@ -75,7 +93,7 @@ feature {NONE} -- Initialization
|
||||
do
|
||||
log.write_debug (generator + ".initialize_modules")
|
||||
across
|
||||
modules as m
|
||||
modules.modules as m
|
||||
loop
|
||||
if m.item.is_enabled then
|
||||
router.import (m.item.router)
|
||||
@@ -178,13 +196,20 @@ feature -- Access
|
||||
-- CMS configuration.
|
||||
-- | Maybe we can compute it (using `setup') instead of using memory.
|
||||
|
||||
modules: LIST [CMS_MODULE]
|
||||
-- List of possible modules.
|
||||
-- | Maybe we can compute it (using `setup') instead of using memory.
|
||||
modules: CMS_MODULE_CONFIGURATOR
|
||||
-- Configurator of possible modules.
|
||||
|
||||
filters: LIST[WSF_FILTER]
|
||||
-- List of possible filters.
|
||||
|
||||
feature -- Element Change: Modules
|
||||
|
||||
add_module (a_module: CMS_MODULE)
|
||||
-- Add a module `a_module' to the module configurator `a_module'.
|
||||
do
|
||||
modules.add_module (a_module)
|
||||
end
|
||||
|
||||
feature -- Execution
|
||||
|
||||
execute_default (req: WSF_REQUEST; res: WSF_RESPONSE)
|
||||
|
||||
@@ -111,7 +111,6 @@ feature -- CMS Initialization
|
||||
create layout.make_default
|
||||
end
|
||||
create Result.make (layout)
|
||||
setup_modules (Result)
|
||||
setup_storage (Result)
|
||||
end
|
||||
|
||||
@@ -121,20 +120,26 @@ feature -- CMS Initialization
|
||||
do
|
||||
log.write_debug (generator + ".initialize_cms")
|
||||
create cms.make (a_setup)
|
||||
setup_modules (cms)
|
||||
cms_service := cms
|
||||
end
|
||||
|
||||
feature -- CMS setup
|
||||
|
||||
setup_modules (a_setup: CMS_SETUP)
|
||||
setup_modules (a_service: CMS_SERVICE)
|
||||
-- Setup modules to be added to the CMS ecosystem.
|
||||
local
|
||||
m: CMS_MODULE
|
||||
do
|
||||
to_implement ("To implement custom modules")
|
||||
|
||||
create {NODE_MODULE} m.make (a_service.setup)
|
||||
m.enable
|
||||
a_service.add_module (m)
|
||||
end
|
||||
|
||||
setup_storage (a_setup: CMS_SETUP)
|
||||
do
|
||||
|
||||
to_implement ("To implement custom storage")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user