WIP: dev into master #184
@@ -4,8 +4,7 @@ from cpl.dependency import ServiceProviderABC
|
|||||||
|
|
||||||
|
|
||||||
class ApplicationExtensionABC(ABC):
|
class ApplicationExtensionABC(ABC):
|
||||||
@abstractmethod
|
|
||||||
def __init__(self): ...
|
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def run(self, services: ServiceProviderABC): ...
|
def run(services: ServiceProviderABC): ...
|
||||||
|
|||||||
@@ -6,15 +6,14 @@ from cpl.dependency.service_collection import ServiceCollection
|
|||||||
class StartupABC(ABC):
|
class StartupABC(ABC):
|
||||||
r"""ABC for the startup class"""
|
r"""ABC for the startup class"""
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def __init__(self): ...
|
def configure_configuration():
|
||||||
|
|
||||||
@abstractmethod
|
|
||||||
def configure_configuration(self):
|
|
||||||
r"""Creates configuration of application"""
|
r"""Creates configuration of application"""
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def configure_services(self, service: ServiceCollection):
|
def configure_services(service: ServiceCollection):
|
||||||
r"""Creates service provider
|
r"""Creates service provider
|
||||||
|
|
||||||
Parameter:
|
Parameter:
|
||||||
|
|||||||
@@ -6,15 +6,14 @@ from cpl.dependency import ServiceCollection
|
|||||||
class StartupExtensionABC(ABC):
|
class StartupExtensionABC(ABC):
|
||||||
r"""ABC for startup extension classes"""
|
r"""ABC for startup extension classes"""
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def __init__(self): ...
|
def configure_configuration():
|
||||||
|
|
||||||
@abstractmethod
|
|
||||||
def configure_configuration(self):
|
|
||||||
r"""Creates configuration of application"""
|
r"""Creates configuration of application"""
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def configure_services(self, services: ServiceCollection):
|
def configure_services(services: ServiceCollection):
|
||||||
r"""Creates service provider
|
r"""Creates service provider
|
||||||
Parameter:
|
Parameter:
|
||||||
services: :class:`cpl.dependency.service_collection`
|
services: :class:`cpl.dependency.service_collection`
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ class ApplicationBuilder:
|
|||||||
return self._services.build()
|
return self._services.build()
|
||||||
|
|
||||||
def use_startup(self, startup: Type[StartupABC]) -> "ApplicationBuilder":
|
def use_startup(self, startup: Type[StartupABC]) -> "ApplicationBuilder":
|
||||||
self._startup = startup()
|
self._startup = startup
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def use_extension(
|
def use_extension(
|
||||||
@@ -50,8 +50,7 @@ class ApplicationBuilder:
|
|||||||
return self
|
return self
|
||||||
|
|
||||||
def build(self) -> ApplicationABC:
|
def build(self) -> ApplicationABC:
|
||||||
for ex in self._startup_extensions:
|
for extension in self._startup_extensions:
|
||||||
extension = ex()
|
|
||||||
Host.run(extension.configure_configuration)
|
Host.run(extension.configure_configuration)
|
||||||
Host.run(extension.configure_services, self._services)
|
Host.run(extension.configure_services, self._services)
|
||||||
|
|
||||||
@@ -59,8 +58,7 @@ class ApplicationBuilder:
|
|||||||
Host.run(self._startup.configure_configuration)
|
Host.run(self._startup.configure_configuration)
|
||||||
Host.run(self._startup.configure_services, self._services)
|
Host.run(self._startup.configure_services, self._services)
|
||||||
|
|
||||||
for ex in self._app_extensions:
|
for extension in self._app_extensions:
|
||||||
extension = ex()
|
|
||||||
Host.run(extension.run, self.service_provider)
|
Host.run(extension.run, self.service_provider)
|
||||||
|
|
||||||
return self._app(self.service_provider)
|
return self._app(self.service_provider)
|
||||||
|
|||||||
@@ -16,15 +16,15 @@ from model.user_dao import UserDao
|
|||||||
|
|
||||||
|
|
||||||
class Startup(StartupABC):
|
class Startup(StartupABC):
|
||||||
def __init__(self):
|
|
||||||
StartupABC.__init__(self)
|
|
||||||
|
|
||||||
async def configure_configuration(self):
|
@staticmethod
|
||||||
|
async def configure_configuration():
|
||||||
Configuration.add_json_file(f"appsettings.json")
|
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_environment()}.json")
|
||||||
Configuration.add_json_file(f"appsettings.{Environment.get_host_name()}.json", optional=True)
|
Configuration.add_json_file(f"appsettings.{Environment.get_host_name()}.json", optional=True)
|
||||||
|
|
||||||
async def configure_services(self, services: ServiceCollection):
|
@staticmethod
|
||||||
|
async def configure_services(services: ServiceCollection):
|
||||||
services.add_module(mysql)
|
services.add_module(mysql)
|
||||||
services.add_module(auth)
|
services.add_module(auth)
|
||||||
services.add_module(permission)
|
services.add_module(permission)
|
||||||
|
|||||||
@@ -1,22 +1,22 @@
|
|||||||
from cpl import mail
|
from cpl import mail
|
||||||
from cpl.application.abc import StartupABC
|
from cpl.application.abc import StartupABC
|
||||||
from cpl.core.configuration import Configuration
|
from cpl.core.configuration import Configuration
|
||||||
from cpl.dependency import ServiceCollection, ServiceProviderABC
|
|
||||||
from cpl.core.environment import Environment
|
from cpl.core.environment import Environment
|
||||||
from cpl.core.pipes import IPAddressPipe
|
from cpl.core.pipes import IPAddressPipe
|
||||||
|
from cpl.dependency import ServiceCollection
|
||||||
from test_service import TestService
|
from test_service import TestService
|
||||||
|
|
||||||
|
|
||||||
class Startup(StartupABC):
|
class Startup(StartupABC):
|
||||||
def __init__(self):
|
|
||||||
StartupABC.__init__(self)
|
|
||||||
|
|
||||||
def configure_configuration(selft):
|
@staticmethod
|
||||||
|
def configure_configuration():
|
||||||
Configuration.add_json_file(f"appsettings.json")
|
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_environment()}.json")
|
||||||
Configuration.add_json_file(f"appsettings.{Environment.get_host_name()}.json", optional=True)
|
Configuration.add_json_file(f"appsettings.{Environment.get_host_name()}.json", optional=True)
|
||||||
|
|
||||||
def configure_services(self, services: ServiceCollection):
|
@staticmethod
|
||||||
|
def configure_services(services: ServiceCollection):
|
||||||
services.add_logging()
|
services.add_logging()
|
||||||
services.add_module(mail)
|
services.add_module(mail)
|
||||||
services.add_transient(IPAddressPipe)
|
services.add_transient(IPAddressPipe)
|
||||||
|
|||||||
@@ -4,8 +4,7 @@ from cpl.dependency import ServiceProviderABC
|
|||||||
|
|
||||||
|
|
||||||
class TestExtension(ApplicationExtensionABC):
|
class TestExtension(ApplicationExtensionABC):
|
||||||
def __init__(self):
|
|
||||||
ApplicationExtensionABC.__init__(self)
|
|
||||||
|
|
||||||
def run(self, services: ServiceProviderABC):
|
@staticmethod
|
||||||
|
def run(services: ServiceProviderABC):
|
||||||
Console.write_line("Hello World from App Extension")
|
Console.write_line("Hello World from App Extension")
|
||||||
|
|||||||
@@ -1,16 +1,14 @@
|
|||||||
from cpl.application.abc import StartupExtensionABC
|
from cpl.application.abc import StartupExtensionABC
|
||||||
from cpl.core.configuration import Configuration
|
|
||||||
from cpl.core.console import Console
|
from cpl.core.console import Console
|
||||||
from cpl.dependency import ServiceCollection
|
from cpl.dependency import ServiceCollection
|
||||||
from cpl.core.environment import Environment
|
|
||||||
|
|
||||||
|
|
||||||
class TestStartupExtension(StartupExtensionABC):
|
class TestStartupExtension(StartupExtensionABC):
|
||||||
def __init__(self):
|
|
||||||
StartupExtensionABC.__init__(self)
|
|
||||||
|
|
||||||
def configure_configuration(self):
|
@staticmethod
|
||||||
|
def configure_configuration():
|
||||||
Console.write_line("config")
|
Console.write_line("config")
|
||||||
|
|
||||||
def configure_services(self, services: ServiceCollection):
|
@staticmethod
|
||||||
|
def configure_services(services: ServiceCollection):
|
||||||
Console.write_line("services")
|
Console.write_line("services")
|
||||||
|
|||||||
Reference in New Issue
Block a user