You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2023/02/22 02:47:56 UTC

[james-project] 02/03: JAMES-3885 Delegation should be supported when using LDAP

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 99cdc911fde7587b603bfb561c25bc72bcc2f8bc
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Feb 20 16:37:01 2023 +0700

    JAMES-3885 Delegation should be supported when using LDAP
---
 .../james/examples/CustomJamesServerMain.java      |  2 ++
 .../org/apache/james/CassandraJamesServerMain.java |  2 ++
 .../james/CassandraRabbitMQJamesServerMain.java    |  2 ++
 .../james/DistributedPOP3JamesServerMain.java      |  2 ++
 .../java/org/apache/james/JPAJamesServerMain.java  |  1 +
 .../java/org/apache/james/JPAJamesServerMain.java  |  1 +
 .../org/apache/james/MemoryJamesServerMain.java    |  2 ++
 .../src/main/java/org/apache/james/Main.java       |  2 ++
 .../apache/james/NaiveDelegationStoreModule.java}  | 23 +++--------------
 ...le.java => CassandraDelegationStoreModule.java} | 26 +++----------------
 .../data/CassandraUsersRepositoryModule.java       | 24 ------------------
 .../james/data/LdapUsersRepositoryModule.java      |  3 ---
 .../modules/data/JPAUsersRepositoryModule.java     |  3 ---
 ...odule.java => MemoryDelegationStoreModule.java} | 29 +---------------------
 .../modules/data/MemoryUsersRepositoryModule.java  | 12 ---------
 15 files changed, 22 insertions(+), 112 deletions(-)

diff --git a/examples/custom-james-assembly/src/main/java/org/apache/james/examples/CustomJamesServerMain.java b/examples/custom-james-assembly/src/main/java/org/apache/james/examples/CustomJamesServerMain.java
index 7d875539e8..6716884cfe 100644
--- a/examples/custom-james-assembly/src/main/java/org/apache/james/examples/CustomJamesServerMain.java
+++ b/examples/custom-james-assembly/src/main/java/org/apache/james/examples/CustomJamesServerMain.java
@@ -27,6 +27,7 @@ import org.apache.james.data.UsersRepositoryModuleChooser;
 import org.apache.james.modules.MailboxModule;
 import org.apache.james.modules.MailetProcessingModule;
 import org.apache.james.modules.data.MemoryDataModule;
+import org.apache.james.modules.data.MemoryDelegationStoreModule;
 import org.apache.james.modules.data.MemoryUsersRepositoryModule;
 import org.apache.james.modules.eventstore.MemoryEventStoreModule;
 import org.apache.james.modules.mailbox.MemoryMailboxModule;
@@ -51,6 +52,7 @@ public class CustomJamesServerMain implements JamesServerMain {
 
     public static final Module CUSTOM_SERVER_MODULE = Modules.combine(
         new MailetProcessingModule(),
+        new MemoryDelegationStoreModule(),
         new MailboxModule(),
         new MemoryDataModule(),
         new MemoryEventStoreModule(),
diff --git a/server/apps/cassandra-app/src/main/java/org/apache/james/CassandraJamesServerMain.java b/server/apps/cassandra-app/src/main/java/org/apache/james/CassandraJamesServerMain.java
index ff4f5f90e7..acadc0b14d 100644
--- a/server/apps/cassandra-app/src/main/java/org/apache/james/CassandraJamesServerMain.java
+++ b/server/apps/cassandra-app/src/main/java/org/apache/james/CassandraJamesServerMain.java
@@ -29,6 +29,7 @@ import org.apache.james.modules.CassandraConsistencyTaskSerializationModule;
 import org.apache.james.modules.MailboxModule;
 import org.apache.james.modules.MailetProcessingModule;
 import org.apache.james.modules.data.CassandraDLPConfigurationStoreModule;
+import org.apache.james.modules.data.CassandraDelegationStoreModule;
 import org.apache.james.modules.data.CassandraDomainListModule;
 import org.apache.james.modules.data.CassandraJmapModule;
 import org.apache.james.modules.data.CassandraRecipientRewriteTableModule;
@@ -135,6 +136,7 @@ public class CassandraJamesServerMain implements JamesServerMain {
 
     public static final Module CASSANDRA_SERVER_CORE_MODULE = Modules.combine(
         new ActiveMQQueueModule(),
+        new CassandraDelegationStoreModule(),
         new CassandraBlobStoreDependenciesModule(),
         new CassandraDomainListModule(),
         new CassandraDLPConfigurationStoreModule(),
diff --git a/server/apps/distributed-app/src/main/java/org/apache/james/CassandraRabbitMQJamesServerMain.java b/server/apps/distributed-app/src/main/java/org/apache/james/CassandraRabbitMQJamesServerMain.java
index a52f821d83..9d28b1f27a 100644
--- a/server/apps/distributed-app/src/main/java/org/apache/james/CassandraRabbitMQJamesServerMain.java
+++ b/server/apps/distributed-app/src/main/java/org/apache/james/CassandraRabbitMQJamesServerMain.java
@@ -36,6 +36,7 @@ import org.apache.james.modules.blobstore.BlobStoreCacheModulesChooser;
 import org.apache.james.modules.blobstore.BlobStoreConfiguration;
 import org.apache.james.modules.blobstore.BlobStoreModulesChooser;
 import org.apache.james.modules.data.CassandraDLPConfigurationStoreModule;
+import org.apache.james.modules.data.CassandraDelegationStoreModule;
 import org.apache.james.modules.data.CassandraDomainListModule;
 import org.apache.james.modules.data.CassandraJmapModule;
 import org.apache.james.modules.data.CassandraRecipientRewriteTableModule;
@@ -135,6 +136,7 @@ public class CassandraRabbitMQJamesServerMain implements JamesServerMain {
             .toInstance(ImmutableSet.of());
 
     public static final Module CASSANDRA_SERVER_CORE_MODULE = Modules.combine(
+        new CassandraDelegationStoreModule(),
         new CassandraDomainListModule(),
         new CassandraDLPConfigurationStoreModule(),
         new CassandraEventStoreModule(),
diff --git a/server/apps/distributed-pop3-app/src/main/java/org/apache/james/DistributedPOP3JamesServerMain.java b/server/apps/distributed-pop3-app/src/main/java/org/apache/james/DistributedPOP3JamesServerMain.java
index ae0dc04798..a3e389ed35 100644
--- a/server/apps/distributed-pop3-app/src/main/java/org/apache/james/DistributedPOP3JamesServerMain.java
+++ b/server/apps/distributed-pop3-app/src/main/java/org/apache/james/DistributedPOP3JamesServerMain.java
@@ -45,6 +45,7 @@ import org.apache.james.modules.TasksCleanupTaskSerializationModule;
 import org.apache.james.modules.blobstore.BlobStoreCacheModulesChooser;
 import org.apache.james.modules.blobstore.BlobStoreConfiguration;
 import org.apache.james.modules.blobstore.BlobStoreModulesChooser;
+import org.apache.james.modules.data.CassandraDelegationStoreModule;
 import org.apache.james.modules.data.CassandraDomainListModule;
 import org.apache.james.modules.data.CassandraJmapModule;
 import org.apache.james.modules.data.CassandraRecipientRewriteTableModule;
@@ -133,6 +134,7 @@ public class DistributedPOP3JamesServerMain implements JamesServerMain {
 
     public static final Module CASSANDRA_SERVER_CORE_MODULE = Modules.combine(
         new CassandraBlobStoreDependenciesModule(),
+        new CassandraDelegationStoreModule(),
         new CassandraDomainListModule(),
         new CassandraEventStoreModule(),
         new CassandraJmapModule(),
diff --git a/server/apps/jpa-app/src/main/java/org/apache/james/JPAJamesServerMain.java b/server/apps/jpa-app/src/main/java/org/apache/james/JPAJamesServerMain.java
index aa62cbe259..1420cce5a2 100644
--- a/server/apps/jpa-app/src/main/java/org/apache/james/JPAJamesServerMain.java
+++ b/server/apps/jpa-app/src/main/java/org/apache/james/JPAJamesServerMain.java
@@ -78,6 +78,7 @@ public class JPAJamesServerMain implements JamesServerMain {
 
     private static final Module JPA_SERVER_MODULE = Modules.combine(
         new ActiveMQQueueModule(),
+        new NaiveDelegationStoreModule(),
         new DefaultProcessorsConfigurationProviderModule(),
         new JPADataModule(),
         new JPAMailboxModule(),
diff --git a/server/apps/jpa-smtp-app/src/main/java/org/apache/james/JPAJamesServerMain.java b/server/apps/jpa-smtp-app/src/main/java/org/apache/james/JPAJamesServerMain.java
index be0b84bfb7..7dac746dc1 100644
--- a/server/apps/jpa-smtp-app/src/main/java/org/apache/james/JPAJamesServerMain.java
+++ b/server/apps/jpa-smtp-app/src/main/java/org/apache/james/JPAJamesServerMain.java
@@ -55,6 +55,7 @@ public class JPAJamesServerMain implements JamesServerMain {
         new TaskManagerModule());
 
     private static final Module JPA_SERVER_MODULE = Modules.combine(
+        new NaiveDelegationStoreModule(),
         new MailetProcessingModule(),
         new JPAEntityManagerModule(),
         new JPADataModule(),
diff --git a/server/apps/memory-app/src/main/java/org/apache/james/MemoryJamesServerMain.java b/server/apps/memory-app/src/main/java/org/apache/james/MemoryJamesServerMain.java
index b9de867c7c..124b9f03a7 100644
--- a/server/apps/memory-app/src/main/java/org/apache/james/MemoryJamesServerMain.java
+++ b/server/apps/memory-app/src/main/java/org/apache/james/MemoryJamesServerMain.java
@@ -29,6 +29,7 @@ import org.apache.james.modules.MailboxModule;
 import org.apache.james.modules.MailetProcessingModule;
 import org.apache.james.modules.data.MemoryDataJmapModule;
 import org.apache.james.modules.data.MemoryDataModule;
+import org.apache.james.modules.data.MemoryDelegationStoreModule;
 import org.apache.james.modules.data.MemoryUsersRepositoryModule;
 import org.apache.james.modules.eventstore.MemoryEventStoreModule;
 import org.apache.james.modules.mailbox.MemoryMailboxModule;
@@ -107,6 +108,7 @@ public class MemoryJamesServerMain implements JamesServerMain {
 
     public static final Module IN_MEMORY_SERVER_MODULE = Modules.combine(
         new MailetProcessingModule(),
+        new MemoryDelegationStoreModule(),
         new BlobMemoryModule(),
         new DeletedMessageVaultModule(),
         new BlobExportMechanismModule(),
diff --git a/server/apps/scaling-pulsar-smtp/src/main/java/org/apache/james/Main.java b/server/apps/scaling-pulsar-smtp/src/main/java/org/apache/james/Main.java
index 7df9838d75..a1c827ca36 100644
--- a/server/apps/scaling-pulsar-smtp/src/main/java/org/apache/james/Main.java
+++ b/server/apps/scaling-pulsar-smtp/src/main/java/org/apache/james/Main.java
@@ -28,6 +28,7 @@ import org.apache.james.blob.cassandra.CassandraBlobStoreDAO;
 import org.apache.james.mailrepository.api.MailRepositoryUrlStore;
 import org.apache.james.mailrepository.cassandra.CassandraMailRepositoryUrlModule;
 import org.apache.james.mailrepository.cassandra.CassandraMailRepositoryUrlStore;
+import org.apache.james.modules.data.CassandraDelegationStoreModule;
 import org.apache.james.modules.data.CassandraDomainListModule;
 import org.apache.james.modules.data.CassandraRecipientRewriteTableModule;
 import org.apache.james.modules.data.CassandraUsersRepositoryModule;
@@ -105,6 +106,7 @@ public class Main implements JamesServerMain {
             },
             new CassandraDomainListModule(),
             new CassandraRecipientRewriteTableModule(),
+            new CassandraDelegationStoreModule(),
             new CassandraUsersRepositoryModule(),
             new CassandraMetricsModule(),
             new TaskManagerModule()
diff --git a/server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java b/server/container/guice/common/src/main/java/org/apache/james/NaiveDelegationStoreModule.java
similarity index 58%
copy from server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java
copy to server/container/guice/common/src/main/java/org/apache/james/NaiveDelegationStoreModule.java
index 930aef3e5b..4b5561e677 100644
--- a/server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java
+++ b/server/container/guice/common/src/main/java/org/apache/james/NaiveDelegationStoreModule.java
@@ -16,32 +16,17 @@
  * specific language governing permissions and limitations      *
  * under the License.                                           *
  ****************************************************************/
-package org.apache.james.modules.data;
 
-import org.apache.james.server.core.configuration.ConfigurationProvider;
+package org.apache.james;
+
 import org.apache.james.user.api.DelegationStore;
-import org.apache.james.user.api.UsersRepository;
-import org.apache.james.user.jpa.JPAUsersRepository;
 import org.apache.james.user.memory.NaiveDelegationStore;
-import org.apache.james.utils.InitializationOperation;
-import org.apache.james.utils.InitilizationOperationBuilder;
 
 import com.google.inject.AbstractModule;
-import com.google.inject.Scopes;
-import com.google.inject.multibindings.ProvidesIntoSet;
 
-public class JPAUsersRepositoryModule extends AbstractModule {
+public class NaiveDelegationStoreModule extends AbstractModule {
     @Override
-    public void configure() {
-        bind(JPAUsersRepository.class).in(Scopes.SINGLETON);
-        bind(UsersRepository.class).to(JPAUsersRepository.class);
+    protected void configure() {
         bind(DelegationStore.class).to(NaiveDelegationStore.class);
     }
-
-    @ProvidesIntoSet
-    InitializationOperation configureJpaUsers(ConfigurationProvider configurationProvider, JPAUsersRepository usersRepository) {
-        return InitilizationOperationBuilder
-            .forClass(JPAUsersRepository.class)
-            .init(() -> usersRepository.configure(configurationProvider.getConfiguration("usersrepository")));
-    }
 }
diff --git a/server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java b/server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraDelegationStoreModule.java
similarity index 69%
copy from server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java
copy to server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraDelegationStoreModule.java
index 5f4424f652..ebb811c0cf 100644
--- a/server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java
+++ b/server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraDelegationStoreModule.java
@@ -20,44 +20,31 @@
 package org.apache.james.modules.data;
 
 import org.apache.commons.configuration2.ex.ConfigurationException;
-import org.apache.james.adapter.mailbox.DelegationStoreAuthorizator;
 import org.apache.james.backends.cassandra.components.CassandraModule;
-import org.apache.james.mailbox.Authorizator;
 import org.apache.james.server.core.configuration.ConfigurationProvider;
 import org.apache.james.user.api.DelegationStore;
 import org.apache.james.user.api.DelegationUsernameChangeTaskStep;
 import org.apache.james.user.api.UsernameChangeTaskStep;
-import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.cassandra.CassandraDelegationStore;
 import org.apache.james.user.cassandra.CassandraRepositoryConfiguration;
 import org.apache.james.user.cassandra.CassandraUsersDAO;
-import org.apache.james.user.lib.UsersDAO;
-import org.apache.james.user.lib.UsersRepositoryImpl;
-import org.apache.james.utils.InitializationOperation;
-import org.apache.james.utils.InitilizationOperationBuilder;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
 import com.google.inject.Scopes;
 import com.google.inject.Singleton;
-import com.google.inject.TypeLiteral;
 import com.google.inject.multibindings.Multibinder;
-import com.google.inject.multibindings.ProvidesIntoSet;
 
-public class CassandraUsersRepositoryModule extends AbstractModule {
+public class CassandraDelegationStoreModule extends AbstractModule {
     @Override
     public void configure() {
-        bind(CassandraUsersDAO.class).in(Scopes.SINGLETON);
-        bind(UsersDAO.class).to(CassandraUsersDAO.class);
-        bind(new TypeLiteral<UsersRepositoryImpl<CassandraUsersDAO>>() {}).in(Scopes.SINGLETON);
-        bind(UsersRepository.class).to(new TypeLiteral<UsersRepositoryImpl<CassandraUsersDAO>>() {});
+        bind(DelegationStore.class).to(CassandraDelegationStore.class);
         Multibinder<CassandraModule> cassandraDataDefinitions = Multibinder.newSetBinder(binder(), CassandraModule.class);
         cassandraDataDefinitions.addBinding().toInstance(org.apache.james.user.cassandra.CassandraUsersRepositoryModule.MODULE);
-        bind(DelegationStore.class).to(CassandraDelegationStore.class);
-        bind(Authorizator.class).to(DelegationStoreAuthorizator.class);
 
         Multibinder.newSetBinder(binder(), UsernameChangeTaskStep.class)
             .addBinding().to(DelegationUsernameChangeTaskStep.class);
+        bind(CassandraUsersDAO.class).in(Scopes.SINGLETON);
     }
 
     @Provides
@@ -66,11 +53,4 @@ public class CassandraUsersRepositoryModule extends AbstractModule {
         return CassandraRepositoryConfiguration.from(
             configurationProvider.getConfiguration("usersrepository"));
     }
-
-    @ProvidesIntoSet
-    InitializationOperation configureUsersRepository(ConfigurationProvider configurationProvider, UsersRepositoryImpl<CassandraUsersDAO> usersRepository) {
-        return InitilizationOperationBuilder
-            .forClass(UsersRepositoryImpl.class)
-            .init(() -> usersRepository.configure(configurationProvider.getConfiguration("usersrepository")));
-    }
 }
diff --git a/server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java b/server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java
index 5f4424f652..009d6c6aa6 100644
--- a/server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java
+++ b/server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java
@@ -19,17 +19,10 @@
 
 package org.apache.james.modules.data;
 
-import org.apache.commons.configuration2.ex.ConfigurationException;
 import org.apache.james.adapter.mailbox.DelegationStoreAuthorizator;
-import org.apache.james.backends.cassandra.components.CassandraModule;
 import org.apache.james.mailbox.Authorizator;
 import org.apache.james.server.core.configuration.ConfigurationProvider;
-import org.apache.james.user.api.DelegationStore;
-import org.apache.james.user.api.DelegationUsernameChangeTaskStep;
-import org.apache.james.user.api.UsernameChangeTaskStep;
 import org.apache.james.user.api.UsersRepository;
-import org.apache.james.user.cassandra.CassandraDelegationStore;
-import org.apache.james.user.cassandra.CassandraRepositoryConfiguration;
 import org.apache.james.user.cassandra.CassandraUsersDAO;
 import org.apache.james.user.lib.UsersDAO;
 import org.apache.james.user.lib.UsersRepositoryImpl;
@@ -37,34 +30,17 @@ import org.apache.james.utils.InitializationOperation;
 import org.apache.james.utils.InitilizationOperationBuilder;
 
 import com.google.inject.AbstractModule;
-import com.google.inject.Provides;
 import com.google.inject.Scopes;
-import com.google.inject.Singleton;
 import com.google.inject.TypeLiteral;
-import com.google.inject.multibindings.Multibinder;
 import com.google.inject.multibindings.ProvidesIntoSet;
 
 public class CassandraUsersRepositoryModule extends AbstractModule {
     @Override
     public void configure() {
-        bind(CassandraUsersDAO.class).in(Scopes.SINGLETON);
         bind(UsersDAO.class).to(CassandraUsersDAO.class);
         bind(new TypeLiteral<UsersRepositoryImpl<CassandraUsersDAO>>() {}).in(Scopes.SINGLETON);
         bind(UsersRepository.class).to(new TypeLiteral<UsersRepositoryImpl<CassandraUsersDAO>>() {});
-        Multibinder<CassandraModule> cassandraDataDefinitions = Multibinder.newSetBinder(binder(), CassandraModule.class);
-        cassandraDataDefinitions.addBinding().toInstance(org.apache.james.user.cassandra.CassandraUsersRepositoryModule.MODULE);
-        bind(DelegationStore.class).to(CassandraDelegationStore.class);
         bind(Authorizator.class).to(DelegationStoreAuthorizator.class);
-
-        Multibinder.newSetBinder(binder(), UsernameChangeTaskStep.class)
-            .addBinding().to(DelegationUsernameChangeTaskStep.class);
-    }
-
-    @Provides
-    @Singleton
-    public CassandraRepositoryConfiguration provideConfiguration(ConfigurationProvider configurationProvider) throws ConfigurationException {
-        return CassandraRepositoryConfiguration.from(
-            configurationProvider.getConfiguration("usersrepository"));
     }
 
     @ProvidesIntoSet
diff --git a/server/container/guice/data-ldap/src/main/java/org/apache/james/data/LdapUsersRepositoryModule.java b/server/container/guice/data-ldap/src/main/java/org/apache/james/data/LdapUsersRepositoryModule.java
index 76937d0f14..c7e35b74f3 100644
--- a/server/container/guice/data-ldap/src/main/java/org/apache/james/data/LdapUsersRepositoryModule.java
+++ b/server/container/guice/data-ldap/src/main/java/org/apache/james/data/LdapUsersRepositoryModule.java
@@ -22,11 +22,9 @@ import org.apache.commons.configuration2.ex.ConfigurationException;
 import org.apache.james.adapter.mailbox.UserRepositoryAuthorizator;
 import org.apache.james.mailbox.Authorizator;
 import org.apache.james.server.core.configuration.ConfigurationProvider;
-import org.apache.james.user.api.DelegationStore;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.ldap.LdapRepositoryConfiguration;
 import org.apache.james.user.ldap.ReadOnlyUsersLDAPRepository;
-import org.apache.james.user.memory.NaiveDelegationStore;
 import org.apache.james.utils.InitializationOperation;
 import org.apache.james.utils.InitilizationOperationBuilder;
 
@@ -41,7 +39,6 @@ public class LdapUsersRepositoryModule extends AbstractModule {
     public void configure() {
         bind(ReadOnlyUsersLDAPRepository.class).in(Scopes.SINGLETON);
         bind(UsersRepository.class).to(ReadOnlyUsersLDAPRepository.class);
-        bind(DelegationStore.class).to(NaiveDelegationStore.class);
         bind(Authorizator.class).to(UserRepositoryAuthorizator.class);
     }
 
diff --git a/server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java b/server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java
index 930aef3e5b..5a719244a4 100644
--- a/server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java
+++ b/server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java
@@ -19,10 +19,8 @@
 package org.apache.james.modules.data;
 
 import org.apache.james.server.core.configuration.ConfigurationProvider;
-import org.apache.james.user.api.DelegationStore;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.jpa.JPAUsersRepository;
-import org.apache.james.user.memory.NaiveDelegationStore;
 import org.apache.james.utils.InitializationOperation;
 import org.apache.james.utils.InitilizationOperationBuilder;
 
@@ -35,7 +33,6 @@ public class JPAUsersRepositoryModule extends AbstractModule {
     public void configure() {
         bind(JPAUsersRepository.class).in(Scopes.SINGLETON);
         bind(UsersRepository.class).to(JPAUsersRepository.class);
-        bind(DelegationStore.class).to(NaiveDelegationStore.class);
     }
 
     @ProvidesIntoSet
diff --git a/server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryUsersRepositoryModule.java b/server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryDelegationStoreModule.java
similarity index 58%
copy from server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryUsersRepositoryModule.java
copy to server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryDelegationStoreModule.java
index 9bf747823d..ec272b6675 100644
--- a/server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryUsersRepositoryModule.java
+++ b/server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryDelegationStoreModule.java
@@ -19,49 +19,22 @@
 
 package org.apache.james.modules.data;
 
-import org.apache.james.UserEntityValidator;
-import org.apache.james.domainlist.api.DomainList;
-import org.apache.james.server.core.configuration.ConfigurationProvider;
 import org.apache.james.user.api.DelegationStore;
 import org.apache.james.user.api.DelegationUsernameChangeTaskStep;
 import org.apache.james.user.api.UsernameChangeTaskStep;
-import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.memory.MemoryDelegationStore;
-import org.apache.james.user.memory.MemoryUsersRepository;
-import org.apache.james.utils.InitializationOperation;
-import org.apache.james.utils.InitilizationOperationBuilder;
 
 import com.google.inject.AbstractModule;
-import com.google.inject.Provides;
 import com.google.inject.Scopes;
-import com.google.inject.Singleton;
 import com.google.inject.multibindings.Multibinder;
-import com.google.inject.multibindings.ProvidesIntoSet;
 
-public class MemoryUsersRepositoryModule extends AbstractModule {
+public class MemoryDelegationStoreModule extends AbstractModule {
     @Override
     public void configure() {
         bind(MemoryDelegationStore.class).in(Scopes.SINGLETON);
-        bind(UsersRepository.class).to(MemoryUsersRepository.class);
         bind(DelegationStore.class).to(MemoryDelegationStore.class);
 
-
         Multibinder.newSetBinder(binder(), UsernameChangeTaskStep.class)
             .addBinding().to(DelegationUsernameChangeTaskStep.class);
     }
-
-    @Provides
-    @Singleton
-    public MemoryUsersRepository providesUsersRepository(DomainList domainList, UserEntityValidator validator) {
-        MemoryUsersRepository usersRepository = MemoryUsersRepository.withVirtualHosting(domainList);
-        usersRepository.setValidator(validator);
-        return usersRepository;
-    }
-
-    @ProvidesIntoSet
-    InitializationOperation configureUsersRepository(ConfigurationProvider configurationProvider, MemoryUsersRepository usersRepository) {
-        return InitilizationOperationBuilder
-            .forClass(MemoryUsersRepository.class)
-            .init(() -> usersRepository.configure(configurationProvider.getConfiguration("usersrepository")));
-    }
 }
diff --git a/server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryUsersRepositoryModule.java b/server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryUsersRepositoryModule.java
index 9bf747823d..0138a78e5f 100644
--- a/server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryUsersRepositoryModule.java
+++ b/server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryUsersRepositoryModule.java
@@ -22,32 +22,20 @@ package org.apache.james.modules.data;
 import org.apache.james.UserEntityValidator;
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.server.core.configuration.ConfigurationProvider;
-import org.apache.james.user.api.DelegationStore;
-import org.apache.james.user.api.DelegationUsernameChangeTaskStep;
-import org.apache.james.user.api.UsernameChangeTaskStep;
 import org.apache.james.user.api.UsersRepository;
-import org.apache.james.user.memory.MemoryDelegationStore;
 import org.apache.james.user.memory.MemoryUsersRepository;
 import org.apache.james.utils.InitializationOperation;
 import org.apache.james.utils.InitilizationOperationBuilder;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
-import com.google.inject.Scopes;
 import com.google.inject.Singleton;
-import com.google.inject.multibindings.Multibinder;
 import com.google.inject.multibindings.ProvidesIntoSet;
 
 public class MemoryUsersRepositoryModule extends AbstractModule {
     @Override
     public void configure() {
-        bind(MemoryDelegationStore.class).in(Scopes.SINGLETON);
         bind(UsersRepository.class).to(MemoryUsersRepository.class);
-        bind(DelegationStore.class).to(MemoryDelegationStore.class);
-
-
-        Multibinder.newSetBinder(binder(), UsernameChangeTaskStep.class)
-            .addBinding().to(DelegationUsernameChangeTaskStep.class);
     }
 
     @Provides


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