From 9a927eec9a9123e3a9b23f8c613d0aa74cca26a9 Mon Sep 17 00:00:00 2001 From: JW Date: Wed, 5 Jun 2024 20:20:50 +0200 Subject: [PATCH] - register itself to container --- .../implementation/DependanceContainerBuilder.java | 6 ++++-- .../implementation/containers/DefaultContainer.java | 7 ++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/DepenDance-Full/src/main/java/io/github/jwdeveloper/dependance/implementation/DependanceContainerBuilder.java b/DepenDance-Full/src/main/java/io/github/jwdeveloper/dependance/implementation/DependanceContainerBuilder.java index 13a4de5..882bc0c 100644 --- a/DepenDance-Full/src/main/java/io/github/jwdeveloper/dependance/implementation/DependanceContainerBuilder.java +++ b/DepenDance-Full/src/main/java/io/github/jwdeveloper/dependance/implementation/DependanceContainerBuilder.java @@ -45,7 +45,7 @@ public class DependanceContainerBuilder extends ContainerBuilderImpl additionalScanners = new ArrayList<>(); + private final List additionalScanners = new ArrayList<>(); private boolean scanEnabled; @Getter @@ -109,10 +109,12 @@ public DependanceContainer build() { } var scanner = new InjectionsScanner(this, options, jarScanner); var toInitialize = scanner.scanAndRegister(); + + registerSingleton(DependanceContainer.class, DepenDanceContainerImpl::new); var container = super.build(); for (var clazz : toInitialize) { container.find(clazz); } - return new DepenDanceContainerImpl(container); + return (DependanceContainer) container.find(DependanceContainer.class); } } diff --git a/Injector/src/main/java/io/github/jwdeveloper/dependance/injector/implementation/containers/DefaultContainer.java b/Injector/src/main/java/io/github/jwdeveloper/dependance/injector/implementation/containers/DefaultContainer.java index 89a9563..1a31061 100644 --- a/Injector/src/main/java/io/github/jwdeveloper/dependance/injector/implementation/containers/DefaultContainer.java +++ b/Injector/src/main/java/io/github/jwdeveloper/dependance/injector/implementation/containers/DefaultContainer.java @@ -2,6 +2,8 @@ import io.github.jwdeveloper.dependance.injector.api.containers.Container; import io.github.jwdeveloper.dependance.injector.api.containers.Registrable; +import io.github.jwdeveloper.dependance.injector.api.enums.LifeTime; +import io.github.jwdeveloper.dependance.injector.api.enums.RegistrationType; import io.github.jwdeveloper.dependance.injector.api.events.EventHandler; import io.github.jwdeveloper.dependance.injector.api.events.events.OnInjectionEvent; import io.github.jwdeveloper.dependance.injector.api.events.events.OnRegistrationEvent; @@ -37,7 +39,10 @@ public DefaultContainer( this.logger = logger; this.injectionInfoFactory = injectionInfoFactory; this.injections = new HashMap<>(); - + register(new RegistrationInfo(Container.class, this.getClass(), container -> + { + return this; + }, LifeTime.SINGLETON, RegistrationType.InterfaceAndProvider)); for (var registration : registrationInfos) { register(registration); }