Improved application structure
All checks were successful
Build on push / prepare (push) Successful in 11s
Build on push / core (push) Successful in 22s
Build on push / query (push) Successful in 22s
Build on push / dependency (push) Successful in 20s
Build on push / database (push) Successful in 20s
Build on push / translation (push) Successful in 20s
Build on push / application (push) Successful in 22s
Build on push / mail (push) Successful in 23s
Build on push / auth (push) Successful in 16s

This commit is contained in:
2025-09-17 19:23:14 +02:00
parent 504dc5e188
commit 8aaba22940
33 changed files with 200 additions and 381 deletions

View File

@@ -1,7 +1,7 @@
import time
from typing import Optional
from cpl.application.application_abc import ApplicationABC
from cpl.application.abc import ApplicationABC
from cpl.core.configuration import Configuration
from cpl.core.console import Console
from cpl.dependency import ServiceProviderABC
@@ -18,8 +18,8 @@ class Application(ApplicationABC):
def __init__(self, services: ServiceProviderABC):
ApplicationABC.__init__(self, services)
self._logger: Optional[LoggerABC] = None
self._mailer: Optional[EMailClientABC] = None
self._logger = self._services.get_service(LoggerABC)
self._mailer = self._services.get_service(EMailClientABC)
def test_send_mail(self):
mail = EMail()
@@ -35,10 +35,6 @@ class Application(ApplicationABC):
def _wait(time_ms: int):
time.sleep(time_ms)
def configure(self):
self._logger = self._services.get_service(LoggerABC)
self._mailer = self._services.get_service(EMailClientABC)
def main(self):
self._logger.debug(f"Host: {Environment.get_host_name()}")
self._logger.debug(f"Environment: {Environment.get_environment()}")

View File

@@ -1,5 +1,5 @@
from cpl import mail
from cpl.application import StartupABC
from cpl.application.abc import StartupABC
from cpl.core.configuration import Configuration
from cpl.dependency import ServiceCollection, ServiceProviderABC
from cpl.core.environment import Environment
@@ -11,12 +11,12 @@ class Startup(StartupABC):
def __init__(self):
StartupABC.__init__(self)
def configure_configuration(self, config: Configuration, env: Environment):
config.add_json_file(f"appsettings.json")
config.add_json_file(f"appsettings.{env.get_environment()}.json")
config.add_json_file(f"appsettings.{env.get_host_name()}.json", optional=True)
def configure_configuration(selft):
Configuration.add_json_file(f"appsettings.json")
Configuration.add_json_file(f"appsettings.{Environment.get_environment()}.json")
Configuration.add_json_file(f"appsettings.{Environment.get_host_name()}.json", optional=True)
def configure_services(self, services: ServiceCollection, env: Environment):
def configure_services(self, services: ServiceCollection):
services.add_logging()
services.add_module(mail)
services.add_transient(IPAddressPipe)

View File

@@ -1,5 +1,4 @@
from cpl.application import ApplicationExtensionABC
from cpl.core.configuration import Configuration
from cpl.application.abc import ApplicationExtensionABC
from cpl.core.console import Console
from cpl.dependency import ServiceProviderABC
@@ -8,5 +7,5 @@ class TestExtension(ApplicationExtensionABC):
def __init__(self):
ApplicationExtensionABC.__init__(self)
def run(self, config: Configuration, services: ServiceProviderABC):
def run(self, services: ServiceProviderABC):
Console.write_line("Hello World from App Extension")

View File

@@ -1,4 +1,4 @@
from cpl.application import StartupExtensionABC
from cpl.application.abc import StartupExtensionABC
from cpl.core.configuration import Configuration
from cpl.core.console import Console
from cpl.dependency import ServiceCollection
@@ -9,8 +9,8 @@ class TestStartupExtension(StartupExtensionABC):
def __init__(self):
StartupExtensionABC.__init__(self)
def configure_configuration(self, config: Configuration, env: Environment):
def configure_configuration(self):
Console.write_line("config")
def configure_services(self, services: ServiceCollection, env: Environment):
def configure_services(self, services: ServiceCollection):
Console.write_line("services")