This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 471c91f3793401cd3648d6eb30e1df1ab84a807b
Author: amghirbi <amghi...@linagora.com>
AuthorDate: Sun May 11 13:18:50 2025 +0200

    JAMES-4130 Refacoting all classes using GuiceGenericLoader to use 
GuiceLoader
---
 .../modules/PeriodicalHealthChecksModule.java      |  4 +--
 .../modules/server/TaskSerializationModule.java    |  6 ++--
 .../james/utils/GuiceProtocolHandlerLoader.java    |  8 +++---
 .../modules/mailbox/MailboxListenerFactory.java    | 19 +++++++------
 .../modules/mailbox/PreDeletionHookLoaderImpl.java | 10 +++----
 .../org/apache/james/utils/GuiceMailetLoader.java  |  4 +--
 .../org/apache/james/utils/GuiceMatcherLoader.java |  8 +++---
 .../guice/GuiceMailRepositoryLoader.java           | 10 +++----
 .../OpenSearchMailboxConfigurationModule.java      |  4 +--
 .../protocols/ConnectionCheckFactoryImpl.java      | 10 +++----
 .../james/modules/protocols/IMAPServerModule.java  | 32 +++++++++++-----------
 .../james/jmap/rfc8621/RFC8621MethodsModule.java   |  6 ++--
 .../james/modules/server/WebAdminServerModule.java | 10 +++----
 .../java/org/apache/james/utils/GuiceLoader.java   |  2 ++
 .../org/apache/james/utils/UserStartables.java     |  8 +++---
 15 files changed, 72 insertions(+), 69 deletions(-)

diff --git 
a/server/container/guice/common/src/main/java/org/apache/james/modules/PeriodicalHealthChecksModule.java
 
b/server/container/guice/common/src/main/java/org/apache/james/modules/PeriodicalHealthChecksModule.java
index ebdeae4b48..0f4d81e595 100644
--- 
a/server/container/guice/common/src/main/java/org/apache/james/modules/PeriodicalHealthChecksModule.java
+++ 
b/server/container/guice/common/src/main/java/org/apache/james/modules/PeriodicalHealthChecksModule.java
@@ -29,7 +29,7 @@ import org.apache.james.PeriodicalHealthChecks;
 import org.apache.james.PeriodicalHealthChecksConfiguration;
 import org.apache.james.core.healthcheck.HealthCheck;
 import org.apache.james.utils.ClassName;
-import org.apache.james.utils.GuiceGenericLoader;
+import org.apache.james.utils.GuiceLoader;
 import org.apache.james.utils.InitializationOperation;
 import org.apache.james.utils.InitilizationOperationBuilder;
 import org.apache.james.utils.NamingScheme;
@@ -59,7 +59,7 @@ public class PeriodicalHealthChecksModule extends 
AbstractModule {
     @Singleton
     @Provides
     @Named("resolved-checks")
-    Set<HealthCheck> provideHealthChecks(Set<HealthCheck> builtInHealthChecks, 
GuiceGenericLoader loader,
+    Set<HealthCheck> provideHealthChecks(Set<HealthCheck> builtInHealthChecks, 
GuiceLoader loader,
                                          PeriodicalHealthChecksConfiguration 
configuration) {
         Set<HealthCheck> additionalHealthChecks = 
configuration.getAdditionalHealthChecks()
             .stream()
diff --git 
a/server/container/guice/common/src/main/java/org/apache/james/modules/server/TaskSerializationModule.java
 
b/server/container/guice/common/src/main/java/org/apache/james/modules/server/TaskSerializationModule.java
index 80bc7da7ea..d23f7a74a2 100644
--- 
a/server/container/guice/common/src/main/java/org/apache/james/modules/server/TaskSerializationModule.java
+++ 
b/server/container/guice/common/src/main/java/org/apache/james/modules/server/TaskSerializationModule.java
@@ -33,7 +33,7 @@ import org.apache.james.server.task.json.dto.TaskDTOModule;
 import org.apache.james.task.Task;
 import org.apache.james.task.TaskExecutionDetails;
 import org.apache.james.utils.ExtensionConfiguration;
-import org.apache.james.utils.GuiceGenericLoader;
+import org.apache.james.utils.GuiceLoader;
 import org.apache.james.utils.NamingScheme;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -55,7 +55,7 @@ public class TaskSerializationModule extends AbstractModule {
     public Set<AdditionalInformationDTOModule<? extends 
TaskExecutionDetails.AdditionalInformation, ? extends 
AdditionalInformationDTO>> provideAdditionalInformationDTOModules(
         Set<AdditionalInformationDTOModule<? extends 
TaskExecutionDetails.AdditionalInformation, ? extends 
AdditionalInformationDTO>> additionalInformationDTOModules,
         ExtensionConfiguration extensionConfiguration,
-        GuiceGenericLoader loader) {
+        GuiceLoader loader) {
 
         Set<AdditionalInformationDTOModule<? extends 
TaskExecutionDetails.AdditionalInformation, ? extends 
AdditionalInformationDTO>> extensionAdditionalInformationDTOModules = 
extensionConfiguration.getTaskExtensions()
             .stream()
@@ -78,7 +78,7 @@ public class TaskSerializationModule extends AbstractModule {
     public Set<TaskDTOModule<? extends Task, ? extends TaskDTO>> 
provideTaskDTOModules(
         Set<TaskDTOModule<? extends Task, ? extends TaskDTO>> taskDTOModules,
         ExtensionConfiguration extensionConfiguration,
-        GuiceGenericLoader loader) {
+        GuiceLoader loader) {
 
         Set<TaskDTOModule<? extends Task, ? extends TaskDTO>> 
extensionTaskDTOModules = extensionConfiguration.getTaskExtensions()
             .stream()
diff --git 
a/server/container/guice/common/src/main/java/org/apache/james/utils/GuiceProtocolHandlerLoader.java
 
b/server/container/guice/common/src/main/java/org/apache/james/utils/GuiceProtocolHandlerLoader.java
index fd51a90cf1..66a6b72211 100644
--- 
a/server/container/guice/common/src/main/java/org/apache/james/utils/GuiceProtocolHandlerLoader.java
+++ 
b/server/container/guice/common/src/main/java/org/apache/james/utils/GuiceProtocolHandlerLoader.java
@@ -27,11 +27,11 @@ import 
org.apache.james.protocols.lib.handler.ProtocolHandlerLoader;
 import com.google.inject.Inject;
 
 public class GuiceProtocolHandlerLoader implements ProtocolHandlerLoader {
-    private final GuiceGenericLoader genericLoader;
+    private final GuiceLoader guiceLoader;
 
     @Inject
-    public GuiceProtocolHandlerLoader(GuiceGenericLoader genericLoader) {
-        this.genericLoader = genericLoader;
+    public GuiceProtocolHandlerLoader(GuiceLoader genericLoader) {
+        this.guiceLoader = genericLoader;
     }
 
     @Override
@@ -48,7 +48,7 @@ public class GuiceProtocolHandlerLoader implements 
ProtocolHandlerLoader {
     private ProtocolHandler createProtocolHandler(String name) throws 
LoadingException {
         try {
             ClassName className = new ClassName(name);
-            return genericLoader.instantiate(className);
+            return guiceLoader.instantiate(className);
         } catch (Exception e) {
             throw new LoadingException("Can not load " + name, e);
         }
diff --git 
a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/MailboxListenerFactory.java
 
b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/MailboxListenerFactory.java
index 08a9b0f3b9..f17c9c20ef 100644
--- 
a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/MailboxListenerFactory.java
+++ 
b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/MailboxListenerFactory.java
@@ -27,7 +27,7 @@ import 
org.apache.commons.configuration2.HierarchicalConfiguration;
 import org.apache.commons.configuration2.tree.ImmutableNode;
 import org.apache.james.events.EventListener;
 import org.apache.james.utils.ClassName;
-import org.apache.james.utils.GuiceGenericLoader;
+import org.apache.james.utils.GuiceLoader;
 
 import com.google.common.base.Preconditions;
 import com.google.inject.Module;
@@ -37,13 +37,14 @@ import com.google.inject.util.Modules;
 public class MailboxListenerFactory {
 
     public static class MailboxListenerBuilder {
-        private final GuiceGenericLoader genericLoader;
+        private final GuiceLoader guiceLoader;
         private Optional<ClassName> clazz;
         private Optional<EventListener.ExecutionMode> executionMode;
         private Optional<HierarchicalConfiguration<ImmutableNode>> 
configuration;
 
-        public MailboxListenerBuilder(GuiceGenericLoader genericLoader) {
-            this.genericLoader = genericLoader;
+        @Inject
+        public MailboxListenerBuilder(GuiceLoader genericLoader) {
+            this.guiceLoader = genericLoader;
             this.clazz = Optional.empty();
             this.executionMode = Optional.empty();
             this.configuration = Optional.empty();
@@ -82,19 +83,19 @@ public class MailboxListenerFactory {
                 binder -> binder.bind(new 
TypeLiteral<HierarchicalConfiguration<ImmutableNode>>() {})
                     .toInstance(configuration.orElse(new 
BaseHierarchicalConfiguration())));
 
-            return genericLoader.<EventListener>withChildModule(childModule)
+            return guiceLoader.<EventListener>withChildModule(childModule)
                 .instantiate(clazz.get());
         }
     }
 
-    private final GuiceGenericLoader genericLoader;
+    private final GuiceLoader guiceLoader;
 
     @Inject
-    public MailboxListenerFactory(GuiceGenericLoader genericLoader) {
-        this.genericLoader = genericLoader;
+    public MailboxListenerFactory(GuiceLoader guiceLoader) {
+        this.guiceLoader = guiceLoader;
     }
 
     public MailboxListenerBuilder newInstance() {
-        return new MailboxListenerBuilder(genericLoader);
+        return new MailboxListenerBuilder(guiceLoader);
     }
 }
diff --git 
a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/PreDeletionHookLoaderImpl.java
 
b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/PreDeletionHookLoaderImpl.java
index d45e2f7ed9..28019f6253 100644
--- 
a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/PreDeletionHookLoaderImpl.java
+++ 
b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/PreDeletionHookLoaderImpl.java
@@ -20,7 +20,7 @@ package org.apache.james.modules.mailbox;
 
 import org.apache.james.mailbox.extension.PreDeletionHook;
 import org.apache.james.utils.ClassName;
-import org.apache.james.utils.GuiceGenericLoader;
+import org.apache.james.utils.GuiceLoader;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -29,17 +29,17 @@ import com.google.inject.Inject;
 public class PreDeletionHookLoaderImpl implements PreDeletionHookLoader {
     private static final Logger LOGGER = 
LoggerFactory.getLogger(PreDeletionHookLoaderImpl.class);
 
-    private final GuiceGenericLoader genericLoader;
+    private final GuiceLoader guiceLoader;
 
     @Inject
-    PreDeletionHookLoaderImpl(GuiceGenericLoader guiceGenericLoader) {
-        this.genericLoader = guiceGenericLoader;
+    PreDeletionHookLoaderImpl(GuiceLoader guiceLoader) {
+        this.guiceLoader = guiceLoader;
     }
 
     @Override
     public PreDeletionHook createHook(PreDeletionHookConfiguration 
configuration) throws ClassNotFoundException {
         ClassName hookClass = new ClassName(configuration.getClazz());
         LOGGER.info("Loading user registered mailbox message deletionHook {}", 
hookClass);
-        return genericLoader.instantiate(hookClass);
+        return guiceLoader.instantiate(hookClass);
     }
 }
diff --git 
a/server/container/guice/mailet/src/main/java/org/apache/james/utils/GuiceMailetLoader.java
 
b/server/container/guice/mailet/src/main/java/org/apache/james/utils/GuiceMailetLoader.java
index 6ffaae6f02..2c96dc7b7f 100644
--- 
a/server/container/guice/mailet/src/main/java/org/apache/james/utils/GuiceMailetLoader.java
+++ 
b/server/container/guice/mailet/src/main/java/org/apache/james/utils/GuiceMailetLoader.java
@@ -36,11 +36,11 @@ public class GuiceMailetLoader implements MailetLoader {
     private static final PackageName STANDARD_PACKAGE = 
PackageName.of("org.apache.james.transport.mailets.");
     private static final NamingScheme MAILET_NAMING_SCHEME = new 
NamingScheme.OptionalPackagePrefix(STANDARD_PACKAGE);
 
-    private final GuiceGenericLoader genericLoader;
+    private final GuiceLoader genericLoader;
     private final Map<Class<? extends Mailet>, MailetConfig> 
configurationOverrides;
 
     @Inject
-    public GuiceMailetLoader(GuiceGenericLoader genericLoader, 
Set<MailetConfigurationOverride> mailetConfigurationOverrides) {
+    public GuiceMailetLoader(GuiceLoader genericLoader, 
Set<MailetConfigurationOverride> mailetConfigurationOverrides) {
         this.genericLoader = genericLoader;
         this.configurationOverrides = mailetConfigurationOverrides.stream()
                 .collect(ImmutableMap.toImmutableMap(
diff --git 
a/server/container/guice/mailet/src/main/java/org/apache/james/utils/GuiceMatcherLoader.java
 
b/server/container/guice/mailet/src/main/java/org/apache/james/utils/GuiceMatcherLoader.java
index 85f2a6f08f..79884f2f00 100644
--- 
a/server/container/guice/mailet/src/main/java/org/apache/james/utils/GuiceMatcherLoader.java
+++ 
b/server/container/guice/mailet/src/main/java/org/apache/james/utils/GuiceMatcherLoader.java
@@ -31,18 +31,18 @@ public class GuiceMatcherLoader implements MatcherLoader {
     private static final PackageName STANDARD_PACKAGE = 
PackageName.of("org.apache.james.transport.matchers.");
     private static final NamingScheme MATCHER_NAMING_SCHEME = new 
NamingScheme.OptionalPackagePrefix(STANDARD_PACKAGE);
 
-    private final GuiceGenericLoader genericLoader;
+    private final GuiceLoader guiceLoader;
 
     @Inject
-    public GuiceMatcherLoader(GuiceGenericLoader genericLoader) {
-        this.genericLoader = genericLoader;
+    public GuiceMatcherLoader(GuiceLoader guiceLoader) {
+        this.guiceLoader = guiceLoader;
     }
 
     @Override
     public Matcher getMatcher(MatcherConfig config) throws MessagingException {
         try {
             ClassName className = new ClassName(config.getMatcherName());
-            Matcher result = 
genericLoader.<Matcher>withNamingSheme(MATCHER_NAMING_SCHEME)
+            Matcher result = 
guiceLoader.<Matcher>withNamingSheme(MATCHER_NAMING_SCHEME)
                 .instantiate(className);
             result.init(config);
             return result;
diff --git 
a/server/container/guice/mailrepository-loaders/src/main/java/org/apache/james/modules/mailrepository/guice/GuiceMailRepositoryLoader.java
 
b/server/container/guice/mailrepository-loaders/src/main/java/org/apache/james/modules/mailrepository/guice/GuiceMailRepositoryLoader.java
index cb97452191..7a4a09cb0e 100644
--- 
a/server/container/guice/mailrepository-loaders/src/main/java/org/apache/james/modules/mailrepository/guice/GuiceMailRepositoryLoader.java
+++ 
b/server/container/guice/mailrepository-loaders/src/main/java/org/apache/james/modules/mailrepository/guice/GuiceMailRepositoryLoader.java
@@ -24,17 +24,17 @@ import 
org.apache.james.mailrepository.api.MailRepositoryLoader;
 import org.apache.james.mailrepository.api.MailRepositoryStore;
 import org.apache.james.mailrepository.api.MailRepositoryUrl;
 import org.apache.james.utils.ClassName;
-import org.apache.james.utils.GuiceGenericLoader;
+import org.apache.james.utils.GuiceLoader;
 
 import com.google.inject.Inject;
 import com.google.inject.Module;
 
 public class GuiceMailRepositoryLoader implements MailRepositoryLoader {
-    private final GuiceGenericLoader genericLoader;
+    private final GuiceLoader guiceLoader;
 
     @Inject
-    public GuiceMailRepositoryLoader(GuiceGenericLoader genericLoader) {
-        this.genericLoader = genericLoader;
+    public GuiceMailRepositoryLoader(GuiceLoader guiceLoader) {
+        this.guiceLoader = guiceLoader;
     }
 
     @Override
@@ -42,7 +42,7 @@ public class GuiceMailRepositoryLoader implements 
MailRepositoryLoader {
         try {
             Module urlModule = binder -> 
binder.bind(MailRepositoryUrl.class).toInstance(url);
 
-            return genericLoader.<MailRepository>withChildModule(urlModule)
+            return guiceLoader.<MailRepository>withChildModule(urlModule)
                 .instantiate(new ClassName(fullyQualifiedClassName));
         } catch (ClassNotFoundException e) {
             throw new 
MailRepositoryStore.UnsupportedRepositoryStoreException("No Mail Repository 
found with class name " + fullyQualifiedClassName);
diff --git 
a/server/container/guice/opensearch/src/main/java/org/apache/james/modules/mailbox/OpenSearchMailboxConfigurationModule.java
 
b/server/container/guice/opensearch/src/main/java/org/apache/james/modules/mailbox/OpenSearchMailboxConfigurationModule.java
index c50a934387..ec970a76a3 100644
--- 
a/server/container/guice/opensearch/src/main/java/org/apache/james/modules/mailbox/OpenSearchMailboxConfigurationModule.java
+++ 
b/server/container/guice/opensearch/src/main/java/org/apache/james/modules/mailbox/OpenSearchMailboxConfigurationModule.java
@@ -28,7 +28,7 @@ import 
org.apache.james.backends.opensearch.OpenSearchConfiguration;
 import org.apache.james.mailbox.opensearch.OpenSearchMailboxConfiguration;
 import 
org.apache.james.mailbox.store.search.ListeningMessageSearchIndex.SearchOverride;
 import org.apache.james.utils.ClassName;
-import org.apache.james.utils.GuiceGenericLoader;
+import org.apache.james.utils.GuiceLoader;
 import org.apache.james.utils.NamingScheme;
 import org.apache.james.utils.PropertiesProvider;
 import org.slf4j.Logger;
@@ -46,7 +46,7 @@ public class OpenSearchMailboxConfigurationModule extends 
AbstractModule {
 
 
     @Provides
-    Set<SearchOverride> provideSearchOverrides(GuiceGenericLoader loader, 
OpenSearchConfiguration configuration) {
+    Set<SearchOverride> provideSearchOverrides(GuiceLoader loader, 
OpenSearchConfiguration configuration) {
         return configuration.getSearchOverrides()
             .stream()
             .map(ClassName::new)
diff --git 
a/server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/ConnectionCheckFactoryImpl.java
 
b/server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/ConnectionCheckFactoryImpl.java
index b84f98dd8b..ee5d04abcb 100644
--- 
a/server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/ConnectionCheckFactoryImpl.java
+++ 
b/server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/ConnectionCheckFactoryImpl.java
@@ -29,17 +29,17 @@ import org.apache.commons.configuration2.tree.ImmutableNode;
 import org.apache.james.imap.api.ConnectionCheck;
 import org.apache.james.imap.api.ConnectionCheckFactory;
 import org.apache.james.utils.ClassName;
-import org.apache.james.utils.GuiceGenericLoader;
+import org.apache.james.utils.GuiceLoader;
 
 import com.github.fge.lambdas.Throwing;
 import com.google.common.collect.ImmutableSet;
 
 public class ConnectionCheckFactoryImpl implements ConnectionCheckFactory {
-    private final GuiceGenericLoader loader;
+    private final GuiceLoader guiceLoader;
 
     @Inject
-    public ConnectionCheckFactoryImpl(GuiceGenericLoader loader) {
-        this.loader = loader;
+    public ConnectionCheckFactoryImpl(GuiceLoader guiceLoader) {
+        this.guiceLoader = guiceLoader;
     }
 
     @Override
@@ -48,7 +48,7 @@ public class ConnectionCheckFactoryImpl implements 
ConnectionCheckFactory {
             .collect(ImmutableSet.toImmutableSet())
             .stream()
             .map(ClassName::new)
-            .map(Throwing.function(loader::instantiate))
+            .map(Throwing.function(guiceLoader::instantiate))
             .map(ConnectionCheck.class::cast)
             .collect(ImmutableSet.toImmutableSet());
     }
diff --git 
a/server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java
 
b/server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java
index fcea6b9f6c..ece9cdc95c 100644
--- 
a/server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java
+++ 
b/server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java
@@ -73,7 +73,7 @@ import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.protocols.lib.netty.CertificateReloadable;
 import org.apache.james.server.core.configuration.ConfigurationProvider;
 import org.apache.james.utils.ClassName;
-import org.apache.james.utils.GuiceGenericLoader;
+import org.apache.james.utils.GuiceLoader;
 import org.apache.james.utils.GuiceProbe;
 import org.apache.james.utils.InitializationOperation;
 import org.apache.james.utils.InitilizationOperationBuilder;
@@ -126,18 +126,18 @@ public class IMAPServerModule extends AbstractModule {
     @Provides
     @Singleton
     IMAPServerFactory provideServerFactory(FileSystem fileSystem,
-                                           GuiceGenericLoader loader,
+                                           GuiceLoader guiceLoader,
                                            StatusResponseFactory 
statusResponseFactory,
                                            MetricFactory metricFactory,
                                            GaugeRegistry gaugeRegistry,
                                            ConnectionCheckFactory 
connectionCheckFactory) {
-        return new IMAPServerFactory(fileSystem, imapSuiteLoader(loader, 
statusResponseFactory), metricFactory, gaugeRegistry, connectionCheckFactory);
+        return new IMAPServerFactory(fileSystem, imapSuiteLoader(guiceLoader, 
statusResponseFactory), metricFactory, gaugeRegistry, connectionCheckFactory);
     }
 
-    DefaultProcessor provideClassImapProcessors(ImapPackage imapPackage, 
GuiceGenericLoader loader, StatusResponseFactory statusResponseFactory) {
+    DefaultProcessor provideClassImapProcessors(ImapPackage imapPackage, 
GuiceLoader guiceLoader, StatusResponseFactory statusResponseFactory) {
         ImmutableMap<Class, ImapProcessor> processors = 
imapPackage.processors()
             .stream()
-            .map(Throwing.function(loader::instantiate))
+            .map(Throwing.function(guiceLoader::instantiate))
             .map(AbstractProcessor.class::cast)
             .flatMap(IMAPServerModule::asPairStream)
             .collect(ImmutableMap.toImmutableMap(
@@ -162,14 +162,14 @@ public class IMAPServerModule extends AbstractModule {
         return new DefaultProcessor(processors, new 
UnknownRequestProcessor(statusResponseFactory));
     }
 
-    private ImapPackage retrievePackages(GuiceGenericLoader loader, 
HierarchicalConfiguration<ImmutableNode> configuration) {
+    private ImapPackage retrievePackages(GuiceLoader guiceLoader, 
HierarchicalConfiguration<ImmutableNode> configuration) {
         String[] imapPackages = configuration.getStringArray("imapPackages");
 
         ImmutableList<ImapPackage> packages = Optional.ofNullable(imapPackages)
             .stream()
             .flatMap(Arrays::stream)
             .map(ClassName::new)
-            .map(Throwing.function(loader::instantiate))
+            .map(Throwing.function(guiceLoader::instantiate))
             .map(ImapPackage.class::cast)
             .collect(ImmutableList.toImmutableList());
 
@@ -179,14 +179,14 @@ public class IMAPServerModule extends AbstractModule {
         return ImapPackage.and(packages);
     }
 
-    private ThrowingFunction<HierarchicalConfiguration<ImmutableNode>, 
ImapSuite> imapSuiteLoader(GuiceGenericLoader loader,
+    private ThrowingFunction<HierarchicalConfiguration<ImmutableNode>, 
ImapSuite> imapSuiteLoader(GuiceLoader guiceLoader,
                                                                                
                   StatusResponseFactory statusResponseFactory) {
         return configuration -> {
-            ImapPackage imapPackage = retrievePackages(loader, configuration);
-            DefaultProcessor processor = 
provideClassImapProcessors(imapPackage, loader, statusResponseFactory);
-            ImapEncoder encoder = provideImapEncoder(imapPackage, loader);
+            ImapPackage imapPackage = retrievePackages(guiceLoader, 
configuration);
+            DefaultProcessor processor = 
provideClassImapProcessors(imapPackage, guiceLoader, statusResponseFactory);
+            ImapEncoder encoder = provideImapEncoder(imapPackage, guiceLoader);
 
-            ImapParserFactory imapParserFactory = 
provideImapCommandParserFactory(imapPackage, loader);
+            ImapParserFactory imapParserFactory = 
provideImapCommandParserFactory(imapPackage, guiceLoader);
 
             UidCommandParser uidParser = new 
UidCommandParser(imapParserFactory, statusResponseFactory);
             DefaultImapDecoder decoder = new 
DefaultImapDecoder(statusResponseFactory,
@@ -200,10 +200,10 @@ public class IMAPServerModule extends AbstractModule {
         return new DefaultImapDecoderFactory(imapCommandParserFactory, 
statusResponseFactory).buildImapDecoder();
     }
 
-    ImapEncoder provideImapEncoder(ImapPackage imapPackage, GuiceGenericLoader 
loader) {
+    ImapEncoder provideImapEncoder(ImapPackage imapPackage, GuiceLoader 
guiceLoader) {
         Stream<ImapResponseEncoder> encoders = imapPackage.encoders()
             .stream()
-            .map(Throwing.function(loader::instantiate))
+            .map(Throwing.function(guiceLoader::instantiate))
             .map(ImapResponseEncoder.class::cast);
 
         return new DefaultImapEncoderFactory.DefaultImapEncoder(encoders, new 
EndImapEncoder());
@@ -234,11 +234,11 @@ public class IMAPServerModule extends AbstractModule {
             .forEach(capabilityProcessor::addProcessor);
     }
 
-    ImapParserFactory provideImapCommandParserFactory(ImapPackage imapPackage, 
GuiceGenericLoader loader) {
+    ImapParserFactory provideImapCommandParserFactory(ImapPackage imapPackage, 
GuiceLoader guiceLoader) {
         ImmutableMap<String, ImapCommandParser> decoders = 
imapPackage.decoders()
             .stream()
             .filter(className -> !className.equals(new 
ClassName(UidCommandParser.class.getName())))
-            .map(Throwing.function(loader::instantiate))
+            .map(Throwing.function(guiceLoader::instantiate))
             .map(AbstractImapCommandParser.class::cast)
             .collect(ImmutableMap.toImmutableMap(
                 parser -> parser.getCommand().getName(),
diff --git 
a/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/rfc8621/RFC8621MethodsModule.java
 
b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/rfc8621/RFC8621MethodsModule.java
index 160684dd20..8141b9093b 100644
--- 
a/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/rfc8621/RFC8621MethodsModule.java
+++ 
b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/rfc8621/RFC8621MethodsModule.java
@@ -98,7 +98,7 @@ import org.apache.james.jmap.routes.UploadRoutes;
 import org.apache.james.jmap.routes.WebSocketRoutes;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.utils.ClassName;
-import org.apache.james.utils.GuiceGenericLoader;
+import org.apache.james.utils.GuiceLoader;
 import org.apache.james.utils.InitializationOperation;
 import org.apache.james.utils.InitilizationOperationBuilder;
 import org.apache.james.utils.NamingScheme;
@@ -223,13 +223,13 @@ public class RFC8621MethodsModule extends AbstractModule {
     @Provides
     @Singleton
     @Named("jmapRFC8621AuthenticationStrategies")
-    public Set<AuthenticationStrategy> 
provideAuthenticationStrategies(GuiceGenericLoader loader,
+    public Set<AuthenticationStrategy> 
provideAuthenticationStrategies(GuiceLoader guiceLoader,
                                                                        
JmapRfc8621Configuration configuration) {
         return configuration.getAuthenticationStrategiesAsJava()
             .orElse(DEFAULT_AUTHENTICATION_STRATEGIES)
             .stream()
             .map(ClassName::new)
-            
.map(Throwing.function(loader.<AuthenticationStrategy>withNamingSheme(
+            
.map(Throwing.function(guiceLoader.<AuthenticationStrategy>withNamingSheme(
                 new 
NamingScheme.OptionalPackagePrefix(IMPLICIT_AUTHENTICATION_STRATEGY_FQDN_PREFIX))::instantiate))
             .collect(ImmutableSet.toImmutableSet());
     }
diff --git 
a/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/WebAdminServerModule.java
 
b/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/WebAdminServerModule.java
index c6a6d872f8..7cce21a3d5 100644
--- 
a/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/WebAdminServerModule.java
+++ 
b/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/WebAdminServerModule.java
@@ -42,7 +42,7 @@ import 
org.apache.james.server.task.json.dto.AdditionalInformationDTOModule;
 import org.apache.james.task.TaskExecutionDetails;
 import org.apache.james.utils.ClassName;
 import org.apache.james.utils.ExtensionConfiguration;
-import org.apache.james.utils.GuiceGenericLoader;
+import org.apache.james.utils.GuiceLoader;
 import org.apache.james.utils.GuiceProbe;
 import org.apache.james.utils.InitializationOperation;
 import org.apache.james.utils.InitilizationOperationBuilder;
@@ -108,11 +108,11 @@ public class WebAdminServerModule extends AbstractModule {
     @Provides
     @Singleton
     @Named("webAdminRoutes")
-    public List<Routes> provideRoutes(GuiceGenericLoader loader, 
WebAdminConfiguration configuration, Set<Routes> routesList) {
+    public List<Routes> provideRoutes(GuiceLoader guiceLoader, 
WebAdminConfiguration configuration, Set<Routes> routesList) {
         List<Routes> customRoutes = configuration.getAdditionalRoutes()
             .stream()
             .map(ClassName::new)
-            
.map(Throwing.function(loader.<Routes>withNamingSheme(NamingScheme.IDENTITY)::instantiate))
+            
.map(Throwing.function(guiceLoader.<Routes>withNamingSheme(NamingScheme.IDENTITY)::instantiate))
             .peek(routes -> LOGGER.info("Loading WebAdmin route extension {}", 
routes.getClass().getCanonicalName()))
             .collect(ImmutableList.toImmutableList());
 
@@ -125,10 +125,10 @@ public class WebAdminServerModule extends AbstractModule {
     @Provides
     @Singleton
     @Named(DTOModuleInjections.CUSTOM_WEBADMIN_DTO)
-    public Set<AdditionalInformationDTOModule<? extends 
TaskExecutionDetails.AdditionalInformation, ? extends 
AdditionalInformationDTO>> provideAdditionalDTOs(GuiceGenericLoader loader, 
ExtensionConfiguration extensionConfiguration) {
+    public Set<AdditionalInformationDTOModule<? extends 
TaskExecutionDetails.AdditionalInformation, ? extends 
AdditionalInformationDTO>> provideAdditionalDTOs(GuiceLoader guiceLoader, 
ExtensionConfiguration extensionConfiguration) {
         return extensionConfiguration.getTaskExtensions()
             .stream()
-            
.map(Throwing.function(loader.<TaskExtensionModule>withNamingSheme(NamingScheme.IDENTITY)::instantiate))
+            
.map(Throwing.function(guiceLoader.<TaskExtensionModule>withNamingSheme(NamingScheme.IDENTITY)::instantiate))
             .map(TaskExtensionModule::taskAdditionalInformationDTOModules)
             .flatMap(Collection::stream)
             .collect(Collectors.toSet());
diff --git 
a/server/container/guice/utils/src/main/java/org/apache/james/utils/GuiceLoader.java
 
b/server/container/guice/utils/src/main/java/org/apache/james/utils/GuiceLoader.java
index 04014ab0f7..3da6906b19 100644
--- 
a/server/container/guice/utils/src/main/java/org/apache/james/utils/GuiceLoader.java
+++ 
b/server/container/guice/utils/src/main/java/org/apache/james/utils/GuiceLoader.java
@@ -27,6 +27,8 @@ public interface GuiceLoader {
 
         T instantiate(ClassName className) throws ClassNotFoundException;
 
+        Class<T> locateClass(ClassName className)throws ClassNotFoundException;
+
         InvocationPerformer<T> withChildModule(Module childModule);
 
         InvocationPerformer<T> withNamingSheme(NamingScheme namingSheme);
diff --git 
a/server/container/guice/utils/src/main/java/org/apache/james/utils/UserStartables.java
 
b/server/container/guice/utils/src/main/java/org/apache/james/utils/UserStartables.java
index 8ae6ebb28b..41e05890ff 100644
--- 
a/server/container/guice/utils/src/main/java/org/apache/james/utils/UserStartables.java
+++ 
b/server/container/guice/utils/src/main/java/org/apache/james/utils/UserStartables.java
@@ -43,19 +43,19 @@ public class UserStartables implements Startable {
 
     private static final Logger LOGGER = 
LoggerFactory.getLogger(UserStartables.class);
 
-    private final GuiceGenericLoader loader;
+    private final GuiceLoader guiceLoader;
     private final ExtensionConfiguration extensionConfiguration;
 
     @Inject
-    public UserStartables(GuiceGenericLoader loader, ExtensionConfiguration 
extensionConfiguration) {
-        this.loader = loader;
+    public UserStartables(GuiceGenericLoader guiceLoader, 
ExtensionConfiguration extensionConfiguration) {
+        this.guiceLoader = guiceLoader;
         this.extensionConfiguration = extensionConfiguration;
     }
 
     public void start() {
         extensionConfiguration.getStartables()
             .stream()
-            .map(Throwing.<ClassName, 
UserDefinedStartable>function(loader::instantiate))
+            .map(Throwing.<ClassName, 
UserDefinedStartable>function(guiceLoader::instantiate))
             .peek(module -> LOGGER.info("Starting {}", 
module.getClass().getCanonicalName()))
             .forEach(UserDefinedStartable::start);
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@james.apache.org
For additional commands, e-mail: notifications-h...@james.apache.org

Reply via email to