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