From 4dcab43b6a1dc6763af41c4b1ffe26c88017601b Mon Sep 17 00:00:00 2001 From: JesseBrault0709 <62299747+JesseBrault0709@users.noreply.github.com> Date: Thu, 16 May 2024 17:25:36 +0200 Subject: [PATCH] Helping out ssg. --- build.gradle | 4 ++++ src/main/java/groowt/util/di/BindingUtil.java | 4 ++++ .../util/di/NamedRegistryExtension.java | 8 +------- .../groowt/util/di/RegistryObjectFactory.java | 19 ++++++++++++++----- .../di/DefaultRegistryObjectFactoryTests.java | 1 - 5 files changed, 23 insertions(+), 13 deletions(-) diff --git a/build.gradle b/build.gradle index 63ae173..c8c2829 100644 --- a/build.gradle +++ b/build.gradle @@ -13,6 +13,10 @@ dependencies { implementation libs.slf4j.api, libs.groovy } +java { + withSourcesJar() +} + jar { archiveBaseName = 'groowt-util-di' } diff --git a/src/main/java/groowt/util/di/BindingUtil.java b/src/main/java/groowt/util/di/BindingUtil.java index 8c4fcf0..b6a2dd1 100644 --- a/src/main/java/groowt/util/di/BindingUtil.java +++ b/src/main/java/groowt/util/di/BindingUtil.java @@ -27,6 +27,10 @@ public final class BindingUtil { return bc -> {}; } + public static KeyHolder named(String name, Class type) { + return new SimpleKeyHolder<>(NamedRegistryExtension.class, type, name); + } + private BindingUtil() {} } diff --git a/src/main/java/groowt/util/di/NamedRegistryExtension.java b/src/main/java/groowt/util/di/NamedRegistryExtension.java index 86be96f..e4cc93d 100644 --- a/src/main/java/groowt/util/di/NamedRegistryExtension.java +++ b/src/main/java/groowt/util/di/NamedRegistryExtension.java @@ -1,9 +1,3 @@ package groowt.util.di; -public interface NamedRegistryExtension extends RegistryExtension, KeyBinder, QualifierHandlerContainer { - - static KeyHolder named(String name, Class type) { - return new SimpleKeyHolder<>(NamedRegistryExtension.class, type, name); - } - -} +public interface NamedRegistryExtension extends RegistryExtension, KeyBinder, QualifierHandlerContainer {} diff --git a/src/main/java/groowt/util/di/RegistryObjectFactory.java b/src/main/java/groowt/util/di/RegistryObjectFactory.java index d79d7a7..2ff25e8 100644 --- a/src/main/java/groowt/util/di/RegistryObjectFactory.java +++ b/src/main/java/groowt/util/di/RegistryObjectFactory.java @@ -2,8 +2,6 @@ package groowt.util.di; import groovy.lang.Closure; import groovy.lang.DelegatesTo; -import groovy.transform.stc.ClosureParams; -import groovy.transform.stc.FromString; import groowt.util.di.filters.FilterHandler; import groowt.util.di.filters.IterableFilterHandler; import jakarta.inject.Provider; @@ -20,10 +18,22 @@ import java.util.function.Consumer; public interface RegistryObjectFactory extends ObjectFactory { interface Builder { + void configureRegistry(Consumer configure); + + default void configureRegistry(@DelegatesTo(Registry.class) Closure configureClosure) { + this.configureRegistry(registry -> { + configureClosure.setDelegate(registry); + configureClosure.call(); + }); + } + void addFilterHandler(FilterHandler handler); + void addIterableFilterHandler(IterableFilterHandler handler); + T build(); + } Registry getRegistry(); @@ -33,13 +43,12 @@ public interface RegistryObjectFactory extends ObjectFactory { } default void configureRegistry( - @DelegatesTo(Registry.class) - @ClosureParams(value = FromString.class, options = "groowt.util.di.Registry") + @DelegatesTo(value = Registry.class) Closure configureClosure ) { final Registry registry = this.getRegistry(); configureClosure.setDelegate(registry); - configureClosure.call(registry); + configureClosure.call(); } @Nullable ScopeHandler findScopeHandler(Class scopeType); diff --git a/src/test/java/groowt/util/di/DefaultRegistryObjectFactoryTests.java b/src/test/java/groowt/util/di/DefaultRegistryObjectFactoryTests.java index aed45cb..1ee62bf 100644 --- a/src/test/java/groowt/util/di/DefaultRegistryObjectFactoryTests.java +++ b/src/test/java/groowt/util/di/DefaultRegistryObjectFactoryTests.java @@ -5,7 +5,6 @@ import jakarta.inject.Named; import org.junit.jupiter.api.Test; import static groowt.util.di.BindingUtil.*; -import static groowt.util.di.NamedRegistryExtension.named; import static org.junit.jupiter.api.Assertions.*; public class DefaultRegistryObjectFactoryTests {