Added support for dynamic loaded modules

This commit is contained in:
2021-11-15 21:23:06 +01:00
parent a3bf5535f6
commit 562caeb10b
12 changed files with 110 additions and 34 deletions

View File

@@ -4,7 +4,8 @@ from cpl_core.dependency_injection import ServiceProviderABC
from cpl_core.logging import LoggerABC
from gismo_core.abc.bot_service_abc import BotServiceABC
from gismo_core.services.bot_service import BotService
from gismo_core.service.bot_service import BotService
from modules_core.abc.module_service_abc import ModuleServiceABC
class Application(ApplicationABC):

View File

@@ -1,10 +1,16 @@
from cpl_core.application import StartupABC
from cpl_core.configuration import ConfigurationABC
from cpl_core.dependency_injection import ServiceProviderABC, ServiceCollectionABC
from cpl_core.configuration import ConfigurationABC, ConsoleArgument
from cpl_core.console.console import Console
from cpl_core.dependency_injection import (ServiceCollectionABC,
ServiceProviderABC)
from cpl_core.environment import ApplicationEnvironment
from gismo_core.abc.bot_service_abc import BotServiceABC
from gismo_core.services.bot_service import BotService
from gismo_core.service.bot_service import BotService
from modules.boot_log.main import BootLog
from modules_core.abc.module_abc import ModuleABC
from modules_core.abc.module_service_abc import ModuleServiceABC
from modules_core.service.module_service import ModuleService
class Startup(StartupABC):
@@ -14,7 +20,7 @@ class Startup(StartupABC):
async def configure_configuration(self, configuration: ConfigurationABC, environment: ApplicationEnvironment) -> ConfigurationABC:
configuration.add_environment_variables('GISMO_')
configuration.add_console_arguments()
configuration.add_json_file(f'appsettings.json', optional=False)
configuration.add_json_file(f'appsettings.{environment.environment_name}.json', optional=True)
configuration.add_json_file(f'appsettings.{environment.host_name}.json', optional=True)
@@ -24,6 +30,9 @@ class Startup(StartupABC):
async def configure_services(self, services: ServiceCollectionABC, environment: ApplicationEnvironment) -> ServiceProviderABC:
services.add_logging()
services.add_singleton(ModuleServiceABC, ModuleService)
services.add_singleton(BotServiceABC, BotService)
services.add_singleton(ModuleABC, BootLog)
return services.build_service_provider()