You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/11/18 02:50:35 UTC
[james-project] 01/44: JAMES-2949 add strong typing in
UsersRepository API and more generally on Username concept
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 01411c50b62a8308d26980bb23d9a31fb7241cf9
Author: Raphael Ouazana <ra...@linagora.com>
AuthorDate: Thu Oct 31 12:04:59 2019 +0100
JAMES-2949 add strong typing in UsersRepository API and more generally on Username concept
---
.../listeners/SetCustomFlagOnBigMessages.java | 2 +-
.../listeners/SetCustomFlagOnBigMessagesTest.java | 3 +-
.../org/apache/james/mailbox/MailboxManager.java | 9 +-
.../org/apache/james/mailbox/MailboxSession.java | 10 +-
.../james/mailbox/acl/GroupMembershipResolver.java | 4 +-
.../james/mailbox/acl/MailboxACLResolver.java | 3 +-
.../mailbox/acl/SimpleGroupMembershipResolver.java | 10 +-
.../james/mailbox/acl/UnionMailboxACLResolver.java | 9 +-
.../exception/UserDoesNotExistException.java | 10 +-
.../org/apache/james/mailbox/model/Mailbox.java | 7 +-
.../org/apache/james/mailbox/model/MailboxACL.java | 11 +-
.../apache/james/mailbox/model/MailboxPath.java | 13 +-
.../james/mailbox/model/search/MailboxQuery.java | 20 +-
.../mailbox/AbstractSubscriptionManagerTest.java | 3 +-
.../apache/james/mailbox/MailboxListenerTest.java | 8 +-
.../james/mailbox/MailboxManagerStressTest.java | 3 +-
.../apache/james/mailbox/MailboxManagerTest.java | 9 +-
.../apache/james/mailbox/MailboxSessionUtil.java | 5 +-
.../apache/james/mailbox/MessageMoveEventTest.java | 20 +-
.../james/mailbox/acl/PositiveUserACLDiffTest.java | 6 +-
.../acl/SimpleGroupMembershipResolverTest.java | 14 +-
.../mailbox/acl/UnionMailboxACLResolverTest.java | 373 +++++++--------
.../james/mailbox/events/EventBusTestFixture.java | 2 +-
.../mailbox/events/EventDeadLettersContract.java | 2 +-
.../apache/james/mailbox/events/GroupContract.java | 8 +-
.../apache/james/mailbox/events/KeyContract.java | 3 +-
.../james/mailbox/fixture/MailboxFixture.java | 7 +-
.../mailbox/manager/ManagerTestProvisionner.java | 5 +-
.../apache/james/mailbox/mock/DataProvisioner.java | 6 +-
.../apache/james/mailbox/model/MailboxACLTest.java | 15 +-
.../james/mailbox/model/MailboxAssertTests.java | 27 +-
.../james/mailbox/model/MailboxPathTest.java | 88 ++--
.../mailbox/model/search/MailboxQueryTest.java | 19 +-
.../james/mailbox/backup/DefaultMailboxBackup.java | 8 +-
.../mailbox/backup/ZipMailArchiveRestorer.java | 4 +-
.../mailbox/backup/MailboxMessageFixture.java | 8 +-
.../cassandra/mail/CassandraAttachmentMapper.java | 2 +-
.../mail/CassandraAttachmentOwnerDAO.java | 6 +-
.../cassandra/mail/CassandraMailboxDAO.java | 3 +-
.../cassandra/mail/CassandraMailboxMapper.java | 3 +-
.../cassandra/mail/CassandraMailboxPathDAO.java | 3 +-
.../mail/CassandraMailboxPathDAOImpl.java | 5 +-
.../cassandra/mail/CassandraMailboxPathV2DAO.java | 9 +-
.../mail/CassandraUserMailboxRightsDAO.java | 9 +-
.../mail/task/MailboxMergingTaskRunner.java | 3 +-
.../cassandra/mail/utils/MailboxBaseTupleUtil.java | 5 +-
.../mail/CassandraAttachmentOwnerDAOTest.java | 9 +-
.../mail/CassandraIndexTableHandlerTest.java | 3 +-
.../mail/CassandraMailboxCounterDAOTest.java | 3 +-
.../cassandra/mail/CassandraMailboxDAOTest.java | 8 +-
.../CassandraMailboxMapperConcurrencyTest.java | 3 +-
.../cassandra/mail/CassandraMailboxMapperTest.java | 3 +-
.../mail/CassandraMailboxPathDAOTest.java | 5 +-
.../cassandra/mail/CassandraMapperProvider.java | 3 +-
.../mail/CassandraMessageIdMapperTest.java | 3 +-
.../mail/CassandraModSeqProviderTest.java | 3 +-
.../cassandra/mail/CassandraUidProviderTest.java | 3 +-
.../mail/CassandraUserMailboxRightsDAOTest.java | 3 +-
.../mail/migration/MailboxPathV2MigrationTest.java | 3 +-
...asticSearchListeningMessageSearchIndexTest.java | 3 +-
.../scala/org/apache/james/event/json/DTOs.scala | 3 +-
.../james/event/json/AddedSerializationTest.java | 2 +-
.../event/json/ExpungedSerializationTest.java | 2 +-
.../event/json/FlagsUpdatedSerializationTest.java | 2 +-
.../MailboxACLUpdatedEventSerializationTest.java | 4 +-
.../event/json/MailboxAddedSerializationTest.java | 2 +-
.../json/MailboxDeletionSerializationTest.java | 2 +-
.../json/MailboxRenamedSerializationTest.java | 4 +-
.../james/event/json/dtos/MailboxPathTest.java | 12 +-
.../james/mailbox/jpa/mail/JPAMailboxMapper.java | 18 +-
.../james/mailbox/jpa/mail/model/JPAMailbox.java | 5 +-
.../james/mailbox/jpa/mail/JPAMapperProvider.java | 3 +-
.../jpa/mail/TransactionalMailboxMapper.java | 3 +-
.../LuceneMailboxMessageSearchIndexTest.java | 10 +-
.../apache/james/mailbox/maildir/MaildirStore.java | 17 +-
.../mailbox/maildir/mail/MaildirMailboxMapper.java | 7 +-
.../maildir/user/MaildirSubscriptionMapper.java | 9 +-
.../inmemory/mail/InMemoryAttachmentMapper.java | 2 +-
.../inmemory/mail/InMemoryMailboxMapper.java | 5 +-
.../quota/InMemoryCurrentQuotaManager.java | 3 +-
.../inmemory/mail/InMemoryMapperProvider.java | 6 +-
.../james/vault/DeletedMessageVaultHook.java | 6 +-
.../james/vault/DeletedMessageVaultHookTest.java | 20 +-
.../ElasticSearchQuotaSearcherTest.java | 2 +-
.../search/scanning/ScanningQuotaSearcher.java | 3 +-
.../james/quota/search/QuotaSearcherContract.java | 72 +--
.../mailbox/spamassassin/SpamAssassinListener.java | 6 +-
.../spamassassin/SpamAssassinListenerTest.java | 3 +-
.../mailbox/spring/AnonymousAuthenticator.java | 3 +-
.../james/mailbox/spring/NoAuthorizator.java | 3 +-
.../apache/james/mailbox/store/Authenticator.java | 3 +-
.../apache/james/mailbox/store/Authorizator.java | 3 +-
.../james/mailbox/store/FakeAuthenticator.java | 10 +-
.../james/mailbox/store/FakeAuthorizator.java | 12 +-
.../james/mailbox/store/SessionProvider.java | 11 +-
.../mailbox/store/StoreAttachmentManager.java | 6 +-
.../james/mailbox/store/StoreMailboxManager.java | 11 +-
.../james/mailbox/store/StoreRightManager.java | 16 +-
.../mailbox/store/SystemMailboxesProviderImpl.java | 6 +-
.../store/event/MailboxAnnotationListener.java | 2 +-
.../james/mailbox/store/mail/AttachmentMapper.java | 2 +-
.../james/mailbox/store/mail/MailboxMapper.java | 3 +-
.../james/mailbox/store/mail/model/Username.java | 74 ---
.../store/quota/DefaultUserQuotaRootResolver.java | 15 +-
.../store/search/ListeningMessageSearchIndex.java | 2 +-
.../AbstractMailboxManagerAttachmentTest.java | 3 +-
.../store/AbstractMessageIdManagerStorageTest.java | 3 +-
.../james/mailbox/store/StoreBlobManagerTest.java | 3 +-
.../store/StoreMailboxManagerAnnotationTest.java | 3 +-
.../mailbox/store/StoreMailboxManagerTest.java | 25 +-
.../james/mailbox/store/StoreRightManagerTest.java | 39 +-
.../store/event/MailboxAnnotationListenerTest.java | 10 +-
.../james/mailbox/store/mail/MessageUtilsTest.java | 3 +-
.../store/mail/model/AttachmentMapperTest.java | 5 +-
.../store/mail/model/ListMailboxAssert.java | 7 +-
.../store/mail/model/ListMailboxAssertTest.java | 3 +-
.../store/mail/model/ListMessageAssertTest.java | 3 +-
.../store/mail/model/MailboxMapperACLTest.java | 85 ++--
.../store/mail/model/MailboxMapperTest.java | 22 +-
.../store/mail/model/MessageIdMapperTest.java | 10 +-
.../store/mail/model/MessageMapperTest.java | 8 +-
.../mailbox/store/mail/model/MessageMoveTest.java | 6 +-
.../model/MessageWithAttachmentMapperTest.java | 3 +-
.../mailbox/store/mail/model/UsernameTest.java | 60 ---
.../quota/DefaultUserQuotaRootResolverTest.java | 12 +-
.../mailbox/store/quota/QuotaCheckerTest.java | 3 +-
.../search/AbstractMessageSearchIndexTest.java | 5 +-
.../mailbox/tools/copier/MailboxCopierImpl.java | 3 +-
.../mailbox/tools/copier/MailboxCopierTest.java | 3 +-
.../mailbox/tools/indexer/ReIndexerImpl.java | 2 +-
.../mailbox/tools/indexer/ReIndexerPerformer.java | 11 +-
.../tools/indexer/CassandraReIndexerImplTest.java | 3 +-
.../tools/indexer/MessageIdReIndexerImplTest.java | 3 +-
.../mailbox/tools/indexer/ReIndexerImplTest.java | 4 +-
.../mailbox/store/mail/ZooUidProviderTest.java | 6 +-
.../james/transport/mailets/AbstractSign.java | 7 +-
.../apache/james/mpt/ant/MailProtocolTestTask.java | 3 +-
.../java/org/apache/james/mpt/api/HostSystem.java | 3 +-
.../org/apache/james/mpt/api/ImapHostSystem.java | 3 +-
.../java/org/apache/james/mpt/api/UserAdder.java | 4 +-
.../apache/james/mpt/host/ExternalHostSystem.java | 5 +-
.../script/GenericSimpleScriptedTestProtocol.java | 21 +-
.../james/mpt/script/ImapScriptedTestProtocol.java | 13 +-
.../apache/james/mpt/user/ScriptedUserAdder.java | 11 +-
.../apache/james/mpt/TestExternalHostSystem.java | 3 +-
.../apache/james/mpt/TestScriptedUserAdder.java | 3 +-
.../apache/james/mpt/host/JamesImapHostSystem.java | 9 +-
.../james/mpt/imapmailbox/GrantRightsOnHost.java | 3 +-
.../james/mpt/imapmailbox/ImapTestConstants.java | 4 +-
.../james/mpt/imapmailbox/suite/ACLCommands.java | 3 +-
.../mpt/imapmailbox/suite/ACLIntegration.java | 7 +-
.../imapmailbox/suite/ACLScriptedTestProtocol.java | 18 +-
.../mpt/imapmailbox/suite/AuthenticatePlain.java | 5 +-
.../mpt/imapmailbox/suite/AuthenticatedState.java | 10 +-
.../imapmailbox/suite/ListingWithSharingTest.java | 3 +-
.../imapmailbox/suite/base/BasicImapCommands.java | 2 +-
.../imapmailbox/cyrus/host/CyrusHostSystem.java | 7 +-
.../mpt/imapmailbox/cyrus/host/CyrusUserAdder.java | 5 +-
.../cyrus/host/GrantRightsOnCyrusHost.java | 5 +-
.../DockerDeploymentValidationGuiceJPATest.java | 3 +-
.../DockerDeploymentValidationSpringJPATest.java | 3 +-
.../james/host/docker/CliProvisioningAPI.java | 5 +-
.../host/external/ExternalJamesImapHostSystem.java | 3 +-
.../host/external/NoopDomainsAndUserAdder.java | 3 +-
.../james/mpt/host/JamesManageSieveHostSystem.java | 4 +-
.../org/apache/james/mpt/smtp/SmtpTestRule.java | 6 +-
.../java/org/apache/james/mpt/maven/AddUser.java | 7 +-
protocols/api/pom.xml | 4 +
.../james/protocols/api/ProtocolSession.java | 7 +-
.../james/protocols/api/ProtocolSessionImpl.java | 11 +-
.../apache/james/imap/api/ImapSessionUtils.java | 5 +-
.../org/apache/james/imap/main/PathConverter.java | 5 +-
.../imap/processor/AbstractAuthProcessor.java | 7 +-
.../imap/processor/AbstractMailboxProcessor.java | 2 +-
.../james/imap/api/ImapSessionUtilsTest.java | 3 +-
.../decode/parser/CreateCommandParserTest.java | 3 +-
.../apache/james/imap/main/PathConverterTest.java | 3 +-
.../james/imap/processor/CopyProcessorTest.java | 2 +-
.../imap/processor/DeleteACLProcessorTest.java | 7 +-
.../james/imap/processor/GetACLProcessorTest.java | 3 +-
.../imap/processor/GetAnnotationProcessorTest.java | 3 +-
.../imap/processor/GetQuotaProcessorTest.java | 6 +-
.../imap/processor/GetQuotaRootProcessorTest.java | 6 +-
.../james/imap/processor/LSubProcessorTest.java | 3 +-
.../imap/processor/ListRightsProcessorTest.java | 9 +-
.../james/imap/processor/MoveProcessorTest.java | 2 +-
.../james/imap/processor/SearchProcessorTest.java | 10 +-
.../james/imap/processor/SetACLProcessorTest.java | 12 +-
.../imap/processor/SetAnnotationProcessorTest.java | 3 +-
.../imap/processor/SetQuotaProcessorTest.java | 3 +-
.../processor/base/MailboxEventAnalyserTest.java | 8 +-
.../processor/base/SelectedMailboxImplTest.java | 5 +-
.../managesieve/api/AuthenticationProcessor.java | 4 +-
.../org/apache/james/managesieve/api/Session.java | 5 +-
.../james/managesieve/core/CoreProcessor.java | 18 +-
.../core/PlainAuthenticationProcessor.java | 7 +-
.../james/managesieve/util/SettableSession.java | 7 +-
.../james/protocols/netty/ProtocolMDCContext.java | 2 +-
.../pop3/core/AbstractApopCmdHandler.java | 10 +-
.../pop3/core/AbstractPassCmdHandler.java | 16 +-
.../james/protocols/pop3/core/UserCmdHandler.java | 3 +-
.../protocols/pop3/AbstractPOP3ServerTest.java | 5 +-
.../protocols/pop3/utils/TestPassCmdHandler.java | 5 +-
...ractSenderAuthIdentifyVerificationRcptHook.java | 12 +-
.../smtp/core/ReceivedDataLineFilter.java | 2 +-
.../protocols/smtp/core/esmtp/AuthCmdHandler.java | 27 +-
.../apache/james/protocols/smtp/hook/AuthHook.java | 3 +-
.../fastfail/ResolvableEhloHeloHandlerTest.java | 9 +-
.../protocols/smtp/utils/BaseFakeSMTPSession.java | 6 +-
.../james/cli/ReindexCommandIntegrationTest.java | 3 +-
.../test/java/org/apache/james/ESReporterTest.java | 3 +-
.../org/apache/james/FixingGhostMailboxTest.java | 5 +-
.../apache/james/CassandraLdapJamesServerTest.java | 4 +-
.../CassandraRabbitMQLdapJmapJamesServerTest.java | 2 +-
.../java/org/apache/james/utils/DataProbeImpl.java | 12 +-
.../org/apache/james/modules/ACLProbeImpl.java | 5 +-
.../org/apache/james/modules/MailboxProbeImpl.java | 26 +-
.../org/apache/james/modules/QuotaProbesImpl.java | 3 +-
.../apache/james/jmap/draft/JmapGuiceProbe.java | 3 +-
.../apache/james/jmap/draft/MessageIdProbe.java | 7 +-
.../mailbox/store/UserRepositoryAuthenticator.java | 3 +-
.../mailbox/store/UserRepositoryAuthorizator.java | 3 +-
.../store/UserRepositoryAuthenticatorTest.java | 5 +-
.../store/UserRepositoryAuthorizatorTest.java | 5 +-
.../adapter/mailbox/MailboxManagerManagement.java | 20 +-
.../james/adapter/mailbox/QuotaManagement.java | 3 +-
.../james/adapter/mailbox/ReIndexerManagement.java | 3 +-
.../adapter/mailbox/MailboxManagementTest.java | 43 +-
.../adapter/mailbox/ReIndexerManagementTest.java | 3 +-
.../container/spring/tool/James23Importer.java | 184 -------
.../spring/tool/James23ImporterManagement.java | 64 ---
.../tool/James23ImporterManagementMBean.java | 53 ---
.../org/apache/james/user/api/UsersRepository.java | 20 +-
.../user/api/UsersRepositoryManagementMBean.java | 10 +-
.../java/org/apache/james/user/api/model/User.java | 8 +-
.../user/cassandra/CassandraUsersRepository.java | 32 +-
.../sieverepository/file/SieveFileRepository.java | 2 +-
.../cassandra/access/CassandraAccessTokenDAO.java | 11 +-
.../access/CassandraAccessTokenRepository.java | 9 +-
.../jmap/api/access/AccessTokenRepository.java | 5 +-
.../apache/james/jmap/api/vacation/AccountId.java | 6 +
.../memory/access/MemoryAccessTokenRepository.java | 10 +-
.../jmap/api/access/AccessTokenRepositoryTest.java | 10 +-
.../apache/james/user/jpa/JPAUsersRepository.java | 47 +-
.../org/apache/james/user/jpa/model/JPAUser.java | 5 +-
.../user/ldap/LdapRepositoryConfiguration.java | 7 +-
.../apache/james/user/ldap/ReadOnlyLDAPUser.java | 7 +-
.../user/ldap/ReadOnlyUsersLDAPRepository.java | 32 +-
.../james/user/ldap/DockerLdapSingleton.java | 4 +-
.../user/ldap/ReadOnlyUsersLDAPRepositoryTest.java | 12 +-
.../james/user/lib/AbstractUsersRepository.java | 28 +-
.../james/user/lib/UsersRepositoryManagement.java | 33 +-
.../james/user/lib/model/DefaultJamesUser.java | 5 +-
.../apache/james/user/lib/model/DefaultUser.java | 9 +-
.../user/lib/AbstractUsersRepositoryTest.java | 38 +-
.../james/user/memory/MemoryUsersRepository.java | 35 +-
.../user/memory/UsersRepositoryManagementTest.java | 33 +-
.../apache/james/smtp/SmtpRandomStoringTest.java | 3 +-
.../james/transport/mailets/AliasMappingTest.java | 7 +-
.../james/transport/mailets/DomainMappingTest.java | 5 +-
.../james/transport/mailets/GroupMappingTest.java | 5 +-
.../impl/JamesMailetContextTest.java | 9 +-
.../james/transport/mailets/RandomStoring.java | 3 +-
.../james/transport/mailets/SpamAssassin.java | 3 +-
.../james/transport/mailets/ToSenderFolder.java | 5 +-
.../james/transport/mailets/WhiteListManager.java | 3 +-
.../transport/mailets/WithStorageDirective.java | 2 +-
.../mailets/delivery/MailboxAppender.java | 7 +-
.../mailets/delivery/SimpleMailStore.java | 11 +-
.../transport/mailets/jsieve/ResourceLocator.java | 2 +-
.../mailets/jsieve/delivery/SievePoster.java | 5 +-
.../mailets/managesieve/ManageSieveMailet.java | 3 +-
.../matchers/AbstractSQLWhitelistMatcher.java | 3 +-
.../james/transport/matchers/IsOverQuota.java | 3 +-
.../transport/mailets/ResourceLocatorTest.java | 4 +-
.../mailets/delivery/LocalDeliveryTest.java | 13 +-
.../mailets/delivery/MailboxAppenderTest.java | 3 +-
.../mailets/delivery/SieveIntegrationTest.java | 20 +-
.../mailets/delivery/SimpleMailStoreTest.java | 11 +-
.../mailets/delivery/ToRecipientFolderTest.java | 18 +-
.../managesieve/ManageSieveMailetTestCase.java | 2 +-
.../james/transport/matchers/IsOverQuotaTest.java | 13 +-
.../java/org/apache/james/fetchmail/FetchMail.java | 5 +-
.../jmap/cassandra/CassandraBulkOperationTest.java | 7 +-
.../apache/james/jmap/HttpJmapAuthentication.java | 9 +-
.../org/apache/james/jmap/MessageAppender.java | 3 +-
.../org/apache/james/jmap/ProvisioningTest.java | 7 +-
.../org/apache/james/jmap/TestingConstants.java | 8 +-
.../apache/james/jmap/VacationIntegrationTest.java | 41 +-
.../integration/DeletedMessagesVaultTest.java | 7 +-
.../jmap/draft/methods/integration/FilterTest.java | 6 +-
.../integration/ForwardIntegrationTest.java | 6 +-
.../integration/GetMailboxesMethodTest.java | 136 +++---
.../integration/GetMessageListMethodTest.java | 529 ++++++++++-----------
.../integration/GetVacationResponseTest.java | 12 +-
...LinshareBlobExportMechanismIntegrationTest.java | 5 +-
.../methods/integration/QuotaMailingTest.java | 11 +-
.../methods/integration/SendMDNMethodTest.java | 15 +-
.../integration/SetMailboxesMethodTest.java | 175 +++----
.../SetMessagesMethodReRoutingTest.java | 5 +-
.../methods/integration/SetMessagesMethodTest.java | 405 ++++++++--------
.../SetMessagesOutboxFlagUpdateTest.java | 13 +-
.../integration/SetVacationResponseTest.java | 3 +-
.../methods/integration/SpamAssassinContract.java | 3 +-
.../integration/cucumber/DownloadStepdefs.java | 15 +-
.../cucumber/GetMessagesMethodStepdefs.java | 11 +-
.../cucumber/SetMailboxesMethodStepdefs.java | 3 +-
.../cucumber/SetMessagesMethodStepdefs.java | 3 +-
.../methods/integration/cucumber/UserStepdefs.java | 3 +-
.../ReindexingWithEventDeadLettersTest.java | 2 +-
.../draft/AccessTokenAuthenticationStrategy.java | 3 +-
.../james/jmap/draft/AuthenticationServlet.java | 7 +-
.../draft/DefaultMailboxesProvisioningFilter.java | 4 +-
.../jmap/draft/JWTAuthenticationStrategy.java | 10 +-
...ParameterAccessTokenAuthenticationStrategy.java | 4 +-
.../james/jmap/draft/UserProvisioningFilter.java | 13 +-
.../james/jmap/draft/api/AccessTokenManager.java | 5 +-
.../jmap/draft/crypto/AccessTokenManagerImpl.java | 7 +-
.../james/jmap/draft/json/ObjectMapperFactory.java | 29 +-
.../draft/methods/GetVacationResponseMethod.java | 2 +-
.../methods/SetMailboxesCreationProcessor.java | 4 +-
.../draft/methods/SetMailboxesUpdateProcessor.java | 5 +-
.../draft/methods/SetVacationResponseMethod.java | 2 +-
.../james/jmap/draft/model/MailboxFactory.java | 6 +-
.../jmap/draft/model/mailbox/MailboxNamespace.java | 13 +-
.../james/jmap/draft/model/mailbox/Rights.java | 44 +-
.../jmap/draft/send/PostDequeueDecorator.java | 3 +-
.../jmap/event/PropagateLookupRightListener.java | 2 +-
.../mailet/ExtractMDNOriginalJMAPMessageId.java | 10 +-
.../james/jmap/mailet/filter/ActionApplier.java | 2 +-
.../james/jmap/mailet/filter/JMAPFiltering.java | 2 +-
.../AccessTokenAuthenticationStrategyTest.java | 8 +-
.../james/jmap/draft/AuthenticationFilterTest.java | 8 +-
.../DefaultMailboxesProvisioningFilterTest.java | 3 +-
...faultMailboxesProvisioningFilterThreadTest.java | 3 +-
.../james/jmap/draft/DownloadServletTest.java | 3 +-
.../jmap/draft/JWTAuthenticationStrategyTest.java | 9 +-
...meterAccessTokenAuthenticationStrategyTest.java | 3 +-
.../jmap/draft/UserProvisioningFilterTest.java | 13 +-
.../draft/UserProvisioningFilterThreadTest.java | 3 +-
.../draft/crypto/AccessTokenManagerImplTest.java | 25 +-
.../jmap/draft/json/ObjectMapperFactoryTest.java | 9 +-
.../jmap/draft/methods/AttachmentCheckerTest.java | 3 +-
.../jmap/draft/methods/GetMailboxesMethodTest.java | 7 +-
.../jmap/draft/methods/GetMessagesMethodTest.java | 2 +-
.../methods/SetMessagesCreationProcessorTest.java | 4 +-
.../methods/SetVacationResponseMethodTest.java | 2 +-
.../apache/james/jmap/draft/model/JmapMDNTest.java | 3 +-
.../james/jmap/draft/model/MailboxFactoryTest.java | 5 +-
.../draft/model/mailbox/MailboxNamespaceTest.java | 8 +-
.../james/jmap/draft/model/mailbox/RightsTest.java | 21 +-
.../jmap/draft/send/PostDequeueDecoratorTest.java | 6 +-
.../james/jmap/draft/utils/MailboxUtilsTest.java | 5 +-
.../event/PropagateLookupRightListenerTest.java | 7 +-
.../ExtractMDNOriginalJMAPMessageIdTest.java | 10 +-
.../jmap/mailet/filter/JMAPFilteringExtension.java | 4 +-
.../jmap/mailet/filter/JMAPFilteringFixture.java | 3 +-
.../jmap/mailet/filter/JMAPFilteringTest.java | 16 +-
.../hook/MailboxDeliverToRecipientHandler.java | 3 +-
.../james/pop3server/core/PassCmdHandler.java | 7 +-
.../apache/james/pop3server/POP3ServerTest.java | 45 +-
.../AddDefaultAttributesMessageHook.java | 4 +-
.../SenderAuthIdentifyVerificationRcptHook.java | 7 +-
.../james/smtpserver/UsersRepositoryAuthHook.java | 5 +-
.../smtpserver/fastfail/ValidRcptHandler.java | 5 +-
.../apache/james/smtpserver/SMTPServerTest.java | 9 +-
.../james/smtpserver/ValidRcptHandlerTest.java | 5 +-
.../EventDeadLettersIntegrationTest.java | 5 +-
...dminServerTaskSerializationIntegrationTest.java | 10 +-
.../apache/james/webadmin/routes/AliasRoutes.java | 2 +-
.../james/webadmin/routes/ForwardRoutes.java | 2 +-
.../apache/james/webadmin/routes/GroupsRoutes.java | 2 +-
.../james/webadmin/routes/SieveQuotaRoutes.java | 5 +-
.../james/webadmin/routes/SieveScriptRoutes.java | 5 +-
.../apache/james/webadmin/service/UserService.java | 10 +-
.../james/webadmin/routes/AliasRoutesTest.java | 7 +-
.../james/webadmin/routes/ForwardRoutesTest.java | 9 +-
.../james/webadmin/routes/GroupsRoutesTest.java | 2 +-
.../webadmin/routes/SieveQuotaRoutesTest.java | 2 +-
.../webadmin/routes/SieveScriptRoutesTest.java | 2 +-
.../james/webadmin/routes/UsersRoutesTest.java | 5 +-
.../vault/routes/DeletedMessagesVaultRoutes.java | 2 +-
.../webadmin/vault/routes/RestoreService.java | 4 +-
.../routes/DeletedMessagesVaultRoutesTest.java | 12 +-
.../james/webadmin/routes/UserMailboxesRoutes.java | 16 +-
.../james/webadmin/routes/UserQuotaRoutes.java | 6 +-
.../webadmin/service/UserMailboxesService.java | 25 +-
.../routes/EventDeadLettersRoutesTest.java | 6 +-
.../webadmin/routes/MalformedUrlRoutesTest.java | 5 +-
.../webadmin/routes/ReindexingRoutesTest.java | 15 +-
.../webadmin/routes/UserMailboxesRoutesTest.java | 5 +-
.../james/webadmin/routes/UserQuotaRoutesTest.java | 8 +-
.../org/apache/james/utils/IMAPMessageReader.java | 5 +
393 files changed, 2574 insertions(+), 2646 deletions(-)
diff --git a/examples/custom-listeners/src/main/java/org/apache/james/examples/custom/listeners/SetCustomFlagOnBigMessages.java b/examples/custom-listeners/src/main/java/org/apache/james/examples/custom/listeners/SetCustomFlagOnBigMessages.java
index 274ec02..1d1b08d 100644
--- a/examples/custom-listeners/src/main/java/org/apache/james/examples/custom/listeners/SetCustomFlagOnBigMessages.java
+++ b/examples/custom-listeners/src/main/java/org/apache/james/examples/custom/listeners/SetCustomFlagOnBigMessages.java
@@ -77,7 +77,7 @@ class SetCustomFlagOnBigMessages implements MailboxListener.GroupMailboxListener
private void setBigMessageFlag(Added addedEvent, MessageUid messageUid) {
try {
- MailboxSession session = mailboxManager.createSystemSession(addedEvent.getUsername().asString());
+ MailboxSession session = mailboxManager.createSystemSession(addedEvent.getUsername());
MessageManager messageManager = mailboxManager.getMailbox(addedEvent.getMailboxId(), session);
messageManager.setFlags(
diff --git a/examples/custom-listeners/src/test/java/org/apache/james/examples/custom/listeners/SetCustomFlagOnBigMessagesTest.java b/examples/custom-listeners/src/test/java/org/apache/james/examples/custom/listeners/SetCustomFlagOnBigMessagesTest.java
index 7075759..b1ce0bd 100644
--- a/examples/custom-listeners/src/test/java/org/apache/james/examples/custom/listeners/SetCustomFlagOnBigMessagesTest.java
+++ b/examples/custom-listeners/src/test/java/org/apache/james/examples/custom/listeners/SetCustomFlagOnBigMessagesTest.java
@@ -28,6 +28,7 @@ import java.util.stream.Stream;
import javax.mail.Flags;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.DefaultMailboxes;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxSessionUtil;
@@ -53,7 +54,7 @@ import com.google.common.collect.Streams;
class SetCustomFlagOnBigMessagesTest {
- private static final String USER = "user";
+ private static final Username USER = Username.of("user");
private static final Event.EventId RANDOM_EVENT_ID = Event.EventId.random();
private static final MailboxPath INBOX_PATH = MailboxPath.forUser(USER, DefaultMailboxes.INBOX);
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
index c298a8f..a69a60c 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
@@ -23,6 +23,7 @@ import java.util.EnumSet;
import java.util.List;
import java.util.Optional;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.BadCredentialsException;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MailboxExistsException;
@@ -262,7 +263,7 @@ public interface MailboxManager extends RequestAware, RightManager, MailboxAnnot
/**
* Creates a new system session.<br>
* A system session is intended to be used for programmatic access.<br>
- * Use {@link #login(String, String)} when accessing this API from a
+ * Use {@link #login(Username, String)} when accessing this API from a
* protocol.
*
* @param userName
@@ -273,7 +274,7 @@ public interface MailboxManager extends RequestAware, RightManager, MailboxAnnot
* @throws MailboxException
* when the creation fails for other reasons
*/
- MailboxSession createSystemSession(String userName) throws BadCredentialsException, MailboxException;
+ MailboxSession createSystemSession(Username userName) throws BadCredentialsException, MailboxException;
/**
* Autenticates the given user against the given password.<br>
@@ -290,7 +291,7 @@ public interface MailboxManager extends RequestAware, RightManager, MailboxAnnot
* @throws MailboxException
* when the creation fails for other reasons
*/
- MailboxSession login(String userid, String passwd) throws BadCredentialsException, MailboxException;
+ MailboxSession login(Username userid, String passwd) throws BadCredentialsException, MailboxException;
/**
* Autenticates the given administrator against the given password,
@@ -310,7 +311,7 @@ public interface MailboxManager extends RequestAware, RightManager, MailboxAnnot
* @throws MailboxException
* when the creation fails for other reasons
*/
- MailboxSession loginAsOtherUser(String adminUserId, String passwd, String otherUserId) throws BadCredentialsException, MailboxException;
+ MailboxSession loginAsOtherUser(Username adminUserId, String passwd, Username otherUserId) throws BadCredentialsException, MailboxException;
/**
* <p>
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
index 79770c6..25df2f4 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
@@ -97,20 +97,20 @@ public class MailboxSession {
private final String otherUsersSpace;
private final String personalSpace;
private final SessionId sessionId;
- private final String userName;
+ private final Username userName;
private boolean open = true;
private final List<Locale> localePreferences;
private final Map<Object, Object> attributes;
private final char pathSeparator;
private final SessionType type;
- public MailboxSession(SessionId sessionId, String userName,
+ public MailboxSession(SessionId sessionId, Username userName,
List<Locale> localePreferences, char pathSeparator, SessionType type) {
this(sessionId, userName, localePreferences, new ArrayList<>(), null, pathSeparator, type);
}
- public MailboxSession(SessionId sessionId, String userName,
- List<Locale> localePreferences, List<String> sharedSpaces, String otherUsersSpace, char pathSeparator, SessionType type) {
+ public MailboxSession(SessionId sessionId, Username userName,
+ List<Locale> localePreferences, List<String> sharedSpaces, String otherUsersSpace, char pathSeparator, SessionType type) {
this.sessionId = sessionId;
this.userName = userName;
this.otherUsersSpace = otherUsersSpace;
@@ -163,7 +163,7 @@ public class MailboxSession {
* @return not null
*/
public Username getUser() {
- return Username.of(userName);
+ return userName;
}
/**
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/acl/GroupMembershipResolver.java b/mailbox/api/src/main/java/org/apache/james/mailbox/acl/GroupMembershipResolver.java
index 8f5a285..caab6d5 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/acl/GroupMembershipResolver.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/acl/GroupMembershipResolver.java
@@ -18,6 +18,8 @@
****************************************************************/
package org.apache.james.mailbox.acl;
+import org.apache.james.core.Username;
+
/**
* An interface for querying group memberships.
*/
@@ -26,6 +28,6 @@ public interface GroupMembershipResolver {
/**
* Tests if the given user is a member of the given group.
*/
- boolean isMember(String user, String group);
+ boolean isMember(Username user, String group);
}
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/acl/MailboxACLResolver.java b/mailbox/api/src/main/java/org/apache/james/mailbox/acl/MailboxACLResolver.java
index e913ba2..0677c99 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/acl/MailboxACLResolver.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/acl/MailboxACLResolver.java
@@ -20,6 +20,7 @@
package org.apache.james.mailbox.acl;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.UnsupportedRightException;
import org.apache.james.mailbox.model.MailboxACL;
@@ -91,6 +92,6 @@ public interface MailboxACLResolver {
* otherwise.
* @return the rights applicable for the given user and resource.
*/
- MailboxACL.Rfc4314Rights resolveRights(String requestUser, GroupMembershipResolver groupMembershipResolver, MailboxACL resourceACL, String resourceOwner, boolean resourceOwnerIsGroup) throws UnsupportedRightException;
+ MailboxACL.Rfc4314Rights resolveRights(Username requestUser, GroupMembershipResolver groupMembershipResolver, MailboxACL resourceACL, String resourceOwner, boolean resourceOwnerIsGroup) throws UnsupportedRightException;
}
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/acl/SimpleGroupMembershipResolver.java b/mailbox/api/src/main/java/org/apache/james/mailbox/acl/SimpleGroupMembershipResolver.java
index 95890bf..0fd8659 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/acl/SimpleGroupMembershipResolver.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/acl/SimpleGroupMembershipResolver.java
@@ -23,6 +23,8 @@ package org.apache.james.mailbox.acl;
import java.util.HashSet;
import java.util.Set;
+import org.apache.james.core.Username;
+
import com.google.common.base.MoreObjects;
import com.google.common.base.Objects;
@@ -34,9 +36,9 @@ public class SimpleGroupMembershipResolver implements GroupMembershipResolver {
public static class Membership {
private final String group;
- private final String user;
+ private final Username user;
- public Membership(String user, String group) {
+ public Membership(Username user, String group) {
this.group = group;
this.user = user;
}
@@ -68,12 +70,12 @@ public class SimpleGroupMembershipResolver implements GroupMembershipResolver {
private final Set<Membership> memberships = new HashSet<>(32);
- public void addMembership(String group, String user) {
+ public void addMembership(String group, Username user) {
memberships.add(new Membership(user, group));
}
@Override
- public boolean isMember(String user, String group) {
+ public boolean isMember(Username user, String group) {
return memberships.contains(new Membership(user, group));
}
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/acl/UnionMailboxACLResolver.java b/mailbox/api/src/main/java/org/apache/james/mailbox/acl/UnionMailboxACLResolver.java
index 498686e..204381f 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/acl/UnionMailboxACLResolver.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/acl/UnionMailboxACLResolver.java
@@ -25,6 +25,7 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.UnsupportedRightException;
import org.apache.james.mailbox.model.MailboxACL;
import org.apache.james.mailbox.model.MailboxACL.EntryKey;
@@ -144,7 +145,7 @@ public class UnionMailboxACLResolver implements MailboxACLResolver {
/* non null query user is viewed as authenticated */
return true;
} else if (SpecialName.owner.name().equals(aclKeyName)) {
- return (!resourceOwnerIsGroup && queryUserOrGroupName.equals(resourceOwner)) || (resourceOwnerIsGroup && groupMembershipResolver.isMember(queryUserOrGroupName, resourceOwner));
+ return (!resourceOwnerIsGroup && queryUserOrGroupName.equals(resourceOwner)) || (resourceOwnerIsGroup && groupMembershipResolver.isMember(Username.of(queryUserOrGroupName), resourceOwner));
} else {
/* should not happen unless the parent if is changed */
throw new IllegalStateException("Unexpected " + SpecialName.class.getName() + "." + aclKeyName);
@@ -152,7 +153,7 @@ public class UnionMailboxACLResolver implements MailboxACLResolver {
case user:
return aclKeyName.equals(queryUserOrGroupName);
case group:
- return groupMembershipResolver.isMember(queryUserOrGroupName, aclKeyName);
+ return groupMembershipResolver.isMember(Username.of(queryUserOrGroupName), aclKeyName);
default:
throw new IllegalStateException("Unexpected " + NameType.class.getName() + "." + aclKeyNameType);
}
@@ -290,9 +291,9 @@ public class UnionMailboxACLResolver implements MailboxACLResolver {
}
@Override
- public Rfc4314Rights resolveRights(String requestUser, GroupMembershipResolver groupMembershipResolver, MailboxACL resourceACL, String resourceOwner, boolean resourceOwnerIsGroup) throws UnsupportedRightException {
+ public Rfc4314Rights resolveRights(Username requestUser, GroupMembershipResolver groupMembershipResolver, MailboxACL resourceACL, String resourceOwner, boolean resourceOwnerIsGroup) throws UnsupportedRightException {
Rfc4314Rights[] positiveNegativePair = { MailboxACL.NO_RIGHTS, MailboxACL.NO_RIGHTS };
- final EntryKey queryKey = requestUser == null ? null : new EntryKey(requestUser, NameType.user, false);
+ final EntryKey queryKey = requestUser == null ? null : EntryKey.createUserEntryKey(requestUser);
MailboxACL userACL = resourceOwnerIsGroup ? groupGlobalACL : userGlobalACL;
resolveRights(queryKey, groupMembershipResolver, userACL.getEntries(), resourceOwner, resourceOwnerIsGroup, positiveNegativePair);
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/exception/UserDoesNotExistException.java b/mailbox/api/src/main/java/org/apache/james/mailbox/exception/UserDoesNotExistException.java
index 0c5ddf2..1d7be1f 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/exception/UserDoesNotExistException.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/exception/UserDoesNotExistException.java
@@ -19,16 +19,18 @@
package org.apache.james.mailbox.exception;
+import org.apache.james.core.Username;
+
public class UserDoesNotExistException extends MailboxException {
- private final String name;
+ private final Username name;
- public UserDoesNotExistException(String name) {
- super("User " + name + "does not exist");
+ public UserDoesNotExistException(Username name) {
+ super("User " + name.asString() + "does not exist");
this.name = name;
}
- public String getName() {
+ public Username getName() {
return name;
}
}
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/Mailbox.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/Mailbox.java
index 913a401..fef8088 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/Mailbox.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/Mailbox.java
@@ -18,6 +18,7 @@
****************************************************************/
package org.apache.james.mailbox.model;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxUtil;
@@ -30,7 +31,7 @@ import com.google.common.base.Objects;
public class Mailbox {
private MailboxId id = null;
private String namespace;
- private String user;
+ private Username user;
private String name;
private final long uidValidity;
private MailboxACL acl = MailboxACL.EMPTY;
@@ -84,7 +85,7 @@ public class Mailbox {
* Gets the current user for this mailbox.
* @return not null
*/
- public String getUser() {
+ public Username getUser() {
return user;
}
@@ -92,7 +93,7 @@ public class Mailbox {
* Sets the current user for this mailbox.
* @param user not null
*/
- public void setUser(String user) {
+ public void setUser(Username user) {
this.user = user;
}
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxACL.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxACL.java
index aceeada..e3f29fb 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxACL.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxACL.java
@@ -33,6 +33,7 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.commons.lang3.tuple.Pair;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.UnsupportedRightException;
import com.github.fge.lambdas.Throwing;
@@ -367,12 +368,12 @@ public class MailboxACL {
return new EntryKey(name, NameType.group, negative);
}
- public static EntryKey createUserEntryKey(String name) {
- return new EntryKey(name, NameType.user, false);
+ public static EntryKey createUserEntryKey(Username name) {
+ return new EntryKey(name.asString(), NameType.user, false);
}
- public static EntryKey createUserEntryKey(String name, boolean negative) {
- return new EntryKey(name, NameType.user, negative);
+ public static EntryKey createUserEntryKey(Username name, boolean negative) {
+ return new EntryKey(name.asString(), NameType.user, negative);
}
private final String name;
@@ -520,7 +521,7 @@ public class MailboxACL {
private Builder() {
}
- public Builder forUser(String user) {
+ public Builder forUser(Username user) {
key = EntryKey.createUserEntryKey(user);
return this;
}
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
index 27051e3..5edc9b1 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
@@ -24,6 +24,7 @@ import java.util.List;
import java.util.Objects;
import java.util.Optional;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.DefaultMailboxes;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.exception.HasEmptyMailboxNameInHierarchyException;
@@ -42,13 +43,13 @@ public class MailboxPath {
* session
*/
public static MailboxPath inbox(MailboxSession session) {
- return MailboxPath.forUser(session.getUser().asString(), MailboxConstants.INBOX);
+ return MailboxPath.forUser(session.getUser(), MailboxConstants.INBOX);
}
/**
* Create a {@link MailboxPath} in the prive namespace of the specified user
*/
- public static MailboxPath forUser(String username, String mailboxName) {
+ public static MailboxPath forUser(Username username, String mailboxName) {
return new MailboxPath(MailboxConstants.USER_NAMESPACE, username, mailboxName);
}
@@ -58,10 +59,10 @@ public class MailboxPath {
public static final int MAX_MAILBOX_NAME_LENGTH = 200;
private final String namespace;
- private final String user;
+ private final Username user;
private final String name;
- public MailboxPath(String namespace, String user, String name) {
+ public MailboxPath(String namespace, Username user, String name) {
this.namespace = Optional.ofNullable(namespace)
.filter(s -> !s.isEmpty())
.orElse(MailboxConstants.USER_NAMESPACE);
@@ -87,7 +88,7 @@ public class MailboxPath {
/**
* Get the name of the user who owns the mailbox.
*/
- public String getUser() {
+ public Username getUser() {
return user;
}
@@ -100,7 +101,7 @@ public class MailboxPath {
}
public boolean belongsTo(MailboxSession mailboxSession) {
- return user.equalsIgnoreCase(mailboxSession.getUser().asString());
+ return user.asString().equalsIgnoreCase(mailboxSession.getUser().asString());//FIXME-USERNAME
}
/**
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/MailboxQuery.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/MailboxQuery.java
index f4ed134..a149d2e 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/MailboxQuery.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/MailboxQuery.java
@@ -45,14 +45,14 @@ public class MailboxQuery {
public static Builder privateMailboxesBuilder(MailboxSession session) {
return builder()
.namespace(MailboxConstants.USER_NAMESPACE)
- .username(session.getUser().asString())
+ .username(session.getUser())
.matchesAllMailboxNames();
}
public static class Builder {
private static final Wildcard DEFAULT_WILDCARD = Wildcard.INSTANCE;
- Optional<String> username;
+ Optional<Username> username;
Optional<String> namespace;
Optional<MailboxNameExpression> mailboxNameExpression;
@@ -71,7 +71,7 @@ public class MailboxQuery {
return this;
}
- public Builder username(String username) {
+ public Builder username(Username username) {
Preconditions.checkState(!this.username.isPresent());
this.username = Optional.of(username);
@@ -79,7 +79,7 @@ public class MailboxQuery {
}
public Builder user(Username username) {
- this.username(username.asString());
+ this.username(username);
return this;
}
@@ -113,7 +113,7 @@ public class MailboxQuery {
}
public static class UserBound extends MailboxQuery {
- private UserBound(String namespace, String user, MailboxNameExpression mailboxNameExpression) {
+ private UserBound(String namespace, Username user, MailboxNameExpression mailboxNameExpression) {
super(Optional.of(namespace), Optional.of(user), mailboxNameExpression);
Preconditions.checkNotNull(namespace);
Preconditions.checkNotNull(user);
@@ -123,19 +123,19 @@ public class MailboxQuery {
return namespace.get();
}
- public String getFixedUser() {
+ public Username getFixedUser() {
return user.get();
}
}
protected final Optional<String> namespace;
- protected final Optional<String> user;
+ protected final Optional<Username> user;
private final MailboxNameExpression mailboxNameExpression;
/**
* Constructs an expression determining a set of mailbox names.
*/
- private MailboxQuery(Optional<String> namespace, Optional<String> user, MailboxNameExpression mailboxNameExpression) {
+ private MailboxQuery(Optional<String> namespace, Optional<Username> user, MailboxNameExpression mailboxNameExpression) {
this.namespace = namespace;
this.user = user;
this.mailboxNameExpression = mailboxNameExpression;
@@ -145,7 +145,7 @@ public class MailboxQuery {
return namespace;
}
- public Optional<String> getUser() {
+ public Optional<Username> getUser() {
return user;
}
@@ -156,7 +156,7 @@ public class MailboxQuery {
public boolean isPrivateMailboxes(MailboxSession session) {
Username sessionUsername = session.getUser();
return namespace.map(MailboxConstants.USER_NAMESPACE::equals).orElse(false)
- && user.map(Username::of).map(sessionUsername::equals).orElse(false);
+ && user.map(sessionUsername::equals).orElse(false);
}
@VisibleForTesting
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/AbstractSubscriptionManagerTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/AbstractSubscriptionManagerTest.java
index 8d76f06..f997204 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/AbstractSubscriptionManagerTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/AbstractSubscriptionManagerTest.java
@@ -20,6 +20,7 @@ package org.apache.james.mailbox;
import static org.assertj.core.api.Assertions.assertThat;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.SubscriptionException;
import org.junit.jupiter.api.Test;
@@ -30,7 +31,7 @@ import org.junit.jupiter.api.Test;
*/
public abstract class AbstractSubscriptionManagerTest {
- private static final String USER1 = "test";
+ private static final Username USER1 = Username.of("test");
private static final String MAILBOX1 = "test1";
private static final String MAILBOX2 = "test2";
private SubscriptionManager manager;
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxListenerTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxListenerTest.java
index 29f5b3e..f58f049 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxListenerTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxListenerTest.java
@@ -50,8 +50,8 @@ import com.google.common.collect.ImmutableSortedMap;
import nl.jqno.equalsverifier.EqualsVerifier;
class MailboxListenerTest {
- private static final MailboxPath PATH = MailboxPath.forUser("bob", "mailbox");
- private static final MailboxPath OTHER_PATH = MailboxPath.forUser("bob", "mailbox.other");
+ private static final MailboxPath PATH = MailboxPath.forUser(Username.of("bob"), "mailbox");
+ private static final MailboxPath OTHER_PATH = MailboxPath.forUser(Username.of("bob"), "mailbox.other");
private static final Username BOB = Username.of("bob");
private static final MailboxSession.SessionId SESSION_ID = MailboxSession.SessionId.of(42);
private static final TestId MAILBOX_ID = TestId.of(18);
@@ -59,9 +59,9 @@ class MailboxListenerTest {
private static final QuotaCount QUOTA_COUNT = QuotaCount.count(34);
private static final QuotaSize QUOTA_SIZE = QuotaSize.size(48);
private static final MailboxACL ACL_1 = new MailboxACL(
- Pair.of(MailboxACL.EntryKey.createUserEntryKey("Bob"), new MailboxACL.Rfc4314Rights(MailboxACL.Right.Administer)));
+ Pair.of(MailboxACL.EntryKey.createUserEntryKey(Username.of("Bob")), new MailboxACL.Rfc4314Rights(MailboxACL.Right.Administer)));
private static final MailboxACL ACL_2 = new MailboxACL(
- Pair.of(MailboxACL.EntryKey.createUserEntryKey("Bob"), new MailboxACL.Rfc4314Rights(MailboxACL.Right.Read)));
+ Pair.of(MailboxACL.EntryKey.createUserEntryKey(Username.of("Bob")), new MailboxACL.Rfc4314Rights(MailboxACL.Right.Read)));
private static final MessageUid UID = MessageUid.of(85);
private static final MessageMetaData META_DATA = new MessageMetaData(UID, 45, new Flags(), 45, new Date(), TestMessageId.of(75));
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressTest.java
index 92041e2..da25c06 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressTest.java
@@ -31,6 +31,7 @@ import java.util.concurrent.ThreadFactory;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.events.EventBus;
import org.apache.james.mailbox.events.MailboxIdRegistrationKey;
import org.apache.james.mailbox.events.MailboxListener;
@@ -65,7 +66,7 @@ public abstract class MailboxManagerStressTest<T extends MailboxManager> {
CountDownLatch latch = new CountDownLatch(APPEND_OPERATIONS);
ExecutorService pool = Executors.newFixedThreadPool(APPEND_OPERATIONS / 20, threadFactory);
Collection<MessageUid> uList = new ConcurrentLinkedDeque<>();
- String username = "username";
+ Username username = Username.of("username");
MailboxSession session = mailboxManager.createSystemSession(username);
mailboxManager.startProcessingRequest(session);
MailboxPath path = MailboxPath.forUser(username, "INBOX");
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
index c68a380..c3a81a1 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
@@ -39,6 +39,7 @@ import java.util.concurrent.CountDownLatch;
import javax.mail.Flags;
+import org.apache.james.core.Username;
import org.apache.james.core.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.mailbox.MailboxManager.MailboxCapabilities;
@@ -98,8 +99,8 @@ import reactor.core.publisher.Mono;
*
*/
public abstract class MailboxManagerTest<T extends MailboxManager> {
- public static final String USER_1 = "USER_1";
- public static final String USER_2 = "USER_2";
+ public static final Username USER_1 = Username.of("USER_1");
+ public static final Username USER_2 = Username.of("USER_2");
private static final int DEFAULT_MAXIMUM_LIMIT = 256;
private T mailboxManager;
@@ -1476,7 +1477,7 @@ public abstract class MailboxManagerTest<T extends MailboxManager> {
@Test
void listShouldReturnMailboxes() throws Exception {
- session = mailboxManager.createSystemSession("manager");
+ session = mailboxManager.createSystemSession(Username.of("manager"));
mailboxManager.startProcessingRequest(session);
DataProvisioner.feedMailboxManager(mailboxManager);
@@ -1551,7 +1552,7 @@ public abstract class MailboxManagerTest<T extends MailboxManager> {
void createUser1SystemSessionShouldReturnValidSession() throws Exception {
session = mailboxManager.createSystemSession(USER_1);
- assertThat(session.getUser().asString()).isEqualTo(USER_1);
+ assertThat(session.getUser()).isEqualTo(USER_1);
}
@Test
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxSessionUtil.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxSessionUtil.java
index 82e3013..7b9734f 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxSessionUtil.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxSessionUtil.java
@@ -23,17 +23,18 @@ import java.util.ArrayList;
import java.util.Locale;
import java.util.concurrent.ThreadLocalRandom;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.model.MailboxConstants;
import com.google.common.annotations.VisibleForTesting;
public class MailboxSessionUtil {
- public static MailboxSession create(String username) {
+ public static MailboxSession create(Username username) {
return create(username, MailboxSession.SessionId.of(ThreadLocalRandom.current().nextLong()));
}
@VisibleForTesting
- public static MailboxSession create(String username, MailboxSession.SessionId sessionId) {
+ public static MailboxSession create(Username username, MailboxSession.SessionId sessionId) {
ArrayList<Locale> locales = new ArrayList<>();
return new MailboxSession(
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MessageMoveEventTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MessageMoveEventTest.java
index 4a591c3..0069e62 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/MessageMoveEventTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MessageMoveEventTest.java
@@ -32,6 +32,7 @@ import org.junit.jupiter.api.Test;
import nl.jqno.equalsverifier.EqualsVerifier;
class MessageMoveEventTest {
+ private static final Username USER = Username.of("user@james.org");
@Test
void shouldRespectBeanContract() {
@@ -48,7 +49,7 @@ class MessageMoveEventTest {
@Test
void builderShouldThrowWhenMessageMovesIsNull() {
assertThatThrownBy(() -> MessageMoveEvent.builder()
- .session(MailboxSessionUtil.create("user@james.org"))
+ .session(MailboxSessionUtil.create(USER))
.build())
.isInstanceOf(NullPointerException.class);
}
@@ -56,7 +57,7 @@ class MessageMoveEventTest {
@Test
void builderShouldReturnNoopWhenMessagesIsEmpty() {
assertThat(MessageMoveEvent.builder()
- .session(MailboxSessionUtil.create("user@james.org"))
+ .session(MailboxSessionUtil.create(USER))
.messageMoves(MessageMoves.builder()
.previousMailboxIds(TestId.of(1))
.targetMailboxIds(TestId.of(2))
@@ -67,7 +68,7 @@ class MessageMoveEventTest {
@Test
void builderShouldNotBeNoopWhenFieldsAreGiven() {
- MailboxSession session = MailboxSessionUtil.create("user@james.org");
+ MailboxSession session = MailboxSessionUtil.create(USER);
MessageMoves messageMoves = MessageMoves.builder()
.targetMailboxIds(TestId.of(2))
.previousMailboxIds(TestId.of(1))
@@ -84,8 +85,7 @@ class MessageMoveEventTest {
@Test
void builderShouldBuildWhenFieldsAreGiven() {
- String username = "user@james.org";
- MailboxSession session = MailboxSessionUtil.create(username);
+ MailboxSession session = MailboxSessionUtil.create(USER);
MessageMoves messageMoves = MessageMoves.builder()
.targetMailboxIds(TestId.of(2))
.previousMailboxIds(TestId.of(1))
@@ -99,7 +99,7 @@ class MessageMoveEventTest {
.build();
SoftAssertions.assertSoftly(softly -> {
- softly.assertThat(event.getUsername()).isEqualTo(Username.of(username));
+ softly.assertThat(event.getUsername()).isEqualTo(USER);
softly.assertThat(event.getMessageMoves()).isEqualTo(messageMoves);
softly.assertThat(event.getMessageIds()).containsExactly(messageId);
});
@@ -108,7 +108,7 @@ class MessageMoveEventTest {
@Test
void isMoveToShouldReturnFalseWhenMailboxIdIsNotInAddedMailboxIds() {
MessageMoveEvent event = MessageMoveEvent.builder()
- .session(MailboxSessionUtil.create("user@james.org"))
+ .session(MailboxSessionUtil.create(USER))
.messageMoves(MessageMoves.builder()
.previousMailboxIds(TestId.of(1))
.targetMailboxIds(TestId.of(2))
@@ -122,7 +122,7 @@ class MessageMoveEventTest {
void isMoveToShouldReturnTrueWhenMailboxIdIsInAddedMailboxIds() {
TestId mailboxId = TestId.of(123);
MessageMoveEvent event = MessageMoveEvent.builder()
- .session(MailboxSessionUtil.create("user@james.org"))
+ .session(MailboxSessionUtil.create(USER))
.messageMoves(MessageMoves.builder()
.previousMailboxIds(TestId.of(1))
.targetMailboxIds(TestId.of(2), mailboxId)
@@ -135,7 +135,7 @@ class MessageMoveEventTest {
@Test
void isMoveFromShouldReturnFalseWhenMailboxIdIsNotInRemovedMailboxIds() {
MessageMoveEvent event = MessageMoveEvent.builder()
- .session(MailboxSessionUtil.create("user@james.org"))
+ .session(MailboxSessionUtil.create(USER))
.messageMoves(MessageMoves.builder()
.previousMailboxIds(TestId.of(1))
.targetMailboxIds(TestId.of(2))
@@ -149,7 +149,7 @@ class MessageMoveEventTest {
void isMoveFromShouldReturnTrueWhenMailboxIdIsInRemovedMailboxIds() {
TestId mailboxId = TestId.of(123);
MessageMoveEvent event = MessageMoveEvent.builder()
- .session(MailboxSessionUtil.create("user@james.org"))
+ .session(MailboxSessionUtil.create(USER))
.messageMoves(MessageMoves.builder()
.previousMailboxIds(TestId.of(1), mailboxId)
.targetMailboxIds(TestId.of(2))
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/acl/PositiveUserACLDiffTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/acl/PositiveUserACLDiffTest.java
index 257a1a6..eaeef00 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/acl/PositiveUserACLDiffTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/acl/PositiveUserACLDiffTest.java
@@ -20,6 +20,7 @@ package org.apache.james.mailbox.acl;
import static org.assertj.core.api.Assertions.assertThat;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.UnsupportedRightException;
import org.apache.james.mailbox.model.MailboxACL;
import org.apache.james.mailbox.model.MailboxACL.Entry;
@@ -30,8 +31,9 @@ import org.junit.jupiter.api.Test;
class PositiveUserACLDiffTest {
- private static final EntryKey USER_ENTRY_KEY = EntryKey.createUserEntryKey("user");
- private static final EntryKey NEGATIVE_USER_ENTRY_KEY = EntryKey.createUserEntryKey("user", true);
+ private static final Username USER = Username.of("user");
+ private static final EntryKey USER_ENTRY_KEY = EntryKey.createUserEntryKey(USER);
+ private static final EntryKey NEGATIVE_USER_ENTRY_KEY = EntryKey.createUserEntryKey(USER, true);
private static final EntryKey GROUP_ENTRY_KEY = EntryKey.createGroupEntryKey("group");
private static final Rfc4314Rights RIGHTS = new Rfc4314Rights(Right.Administer);
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/acl/SimpleGroupMembershipResolverTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/acl/SimpleGroupMembershipResolverTest.java
index ece7ff9..4a255b8 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/acl/SimpleGroupMembershipResolverTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/acl/SimpleGroupMembershipResolverTest.java
@@ -22,10 +22,12 @@ package org.apache.james.mailbox.acl;
import static org.assertj.core.api.Assertions.assertThat;
+import org.apache.james.core.Username;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
class SimpleGroupMembershipResolverTest {
+ private static final Username USER = Username.of("user");
private SimpleGroupMembershipResolver simpleGroupMembershipResolver;
@@ -37,7 +39,7 @@ class SimpleGroupMembershipResolverTest {
@Test
void isMemberShouldReturnFalseWhenEmptyResolver() {
//When
- boolean actual = simpleGroupMembershipResolver.isMember("user", "group");
+ boolean actual = simpleGroupMembershipResolver.isMember(USER, "group");
//Then
assertThat(actual).isFalse();
}
@@ -45,9 +47,9 @@ class SimpleGroupMembershipResolverTest {
@Test
void isMemberShouldReturnTrueWhenTheSearchedMembershipIsPresent() {
//Given
- simpleGroupMembershipResolver.addMembership("group", "user");
+ simpleGroupMembershipResolver.addMembership("group", USER);
//When
- boolean actual = simpleGroupMembershipResolver.isMember("user", "group");
+ boolean actual = simpleGroupMembershipResolver.isMember(USER, "group");
//Then
assertThat(actual).isTrue();
}
@@ -55,8 +57,8 @@ class SimpleGroupMembershipResolverTest {
@Test
void addMembershipShouldAddAMembershipWhenNonNullUser() {
//When
- simpleGroupMembershipResolver.addMembership("group", "user");
- boolean actual = simpleGroupMembershipResolver.isMember("user", "group");
+ simpleGroupMembershipResolver.addMembership("group", USER);
+ boolean actual = simpleGroupMembershipResolver.isMember(USER, "group");
//Then
assertThat(actual).isTrue();
}
@@ -64,7 +66,7 @@ class SimpleGroupMembershipResolverTest {
@Test
void addMembershipShouldAddAMembershipWithANullUser() {
//Given
- String userAdded = null;
+ Username userAdded = null;
//When
simpleGroupMembershipResolver.addMembership("group", userAdded);
boolean actual = simpleGroupMembershipResolver.isMember(userAdded, "group");
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/acl/UnionMailboxACLResolverTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/acl/UnionMailboxACLResolverTest.java
index b133994..5961f87 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/acl/UnionMailboxACLResolverTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/acl/UnionMailboxACLResolverTest.java
@@ -22,6 +22,7 @@ package org.apache.james.mailbox.acl;
import static org.assertj.core.api.Assertions.assertThat;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.UnsupportedRightException;
import org.apache.james.mailbox.model.MailboxACL;
import org.apache.james.mailbox.model.MailboxACL.Entry;
@@ -36,8 +37,8 @@ class UnionMailboxACLResolverTest {
private static final String GROUP_1 = "group1";
private static final String GROUP_2 = "group2";
- private static final String USER_1 = "user1";
- private static final String USER_2 = "user2";
+ private static final Username USER_1 = Username.of("user1");
+ private static final Username USER_2 = Username.of("user2");
private MailboxACL anybodyRead;
private MailboxACL anybodyReadNegative;
@@ -101,34 +102,34 @@ class UnionMailboxACLResolverTest {
@Test
void testAppliesNullUser() throws UnsupportedRightException {
- assertThat(UnionMailboxACLResolver.applies(user1Key, null, groupMembershipResolver, USER_1, false)).isFalse();
- assertThat(UnionMailboxACLResolver.applies(user2Key, null, groupMembershipResolver, USER_1, false)).isFalse();
- assertThat(UnionMailboxACLResolver.applies(group1Key, null, groupMembershipResolver, USER_1, false)).isFalse();
- assertThat(UnionMailboxACLResolver.applies(group2Key, null, groupMembershipResolver, USER_1, false)).isFalse();
- assertThat(UnionMailboxACLResolver.applies(MailboxACL.ANYBODY_KEY, null, groupMembershipResolver, USER_1, false)).isTrue();
- assertThat(UnionMailboxACLResolver.applies(MailboxACL.AUTHENTICATED_KEY, null, groupMembershipResolver, USER_1, false)).isFalse();
- assertThat(UnionMailboxACLResolver.applies(MailboxACL.OWNER_KEY, null, groupMembershipResolver, USER_1, false)).isFalse();
+ assertThat(UnionMailboxACLResolver.applies(user1Key, null, groupMembershipResolver, USER_1.asString(), false)).isFalse();
+ assertThat(UnionMailboxACLResolver.applies(user2Key, null, groupMembershipResolver, USER_1.asString(), false)).isFalse();
+ assertThat(UnionMailboxACLResolver.applies(group1Key, null, groupMembershipResolver, USER_1.asString(), false)).isFalse();
+ assertThat(UnionMailboxACLResolver.applies(group2Key, null, groupMembershipResolver, USER_1.asString(), false)).isFalse();
+ assertThat(UnionMailboxACLResolver.applies(MailboxACL.ANYBODY_KEY, null, groupMembershipResolver, USER_1.asString(), false)).isTrue();
+ assertThat(UnionMailboxACLResolver.applies(MailboxACL.AUTHENTICATED_KEY, null, groupMembershipResolver, USER_1.asString(), false)).isFalse();
+ assertThat(UnionMailboxACLResolver.applies(MailboxACL.OWNER_KEY, null, groupMembershipResolver, USER_1.asString(), false)).isFalse();
}
@Test
void testAppliesUser() throws UnsupportedRightException {
/* requester is the resource owner */
- assertThat(UnionMailboxACLResolver.applies(user1Key, user1Key, groupMembershipResolver, USER_1, false)).isTrue();
- assertThat(UnionMailboxACLResolver.applies(user2Key, user1Key, groupMembershipResolver, USER_1, false)).isFalse();
- assertThat(UnionMailboxACLResolver.applies(group1Key, user1Key, groupMembershipResolver, USER_1, false)).isTrue();
- assertThat(UnionMailboxACLResolver.applies(group2Key, user1Key, groupMembershipResolver, USER_1, false)).isFalse();
- assertThat(UnionMailboxACLResolver.applies(MailboxACL.ANYBODY_KEY, user1Key, groupMembershipResolver, USER_1, false)).isTrue();
- assertThat(UnionMailboxACLResolver.applies(MailboxACL.AUTHENTICATED_KEY, user1Key, groupMembershipResolver, USER_1, false)).isTrue();
- assertThat(UnionMailboxACLResolver.applies(MailboxACL.OWNER_KEY, user1Key, groupMembershipResolver, USER_1, false)).isTrue();
+ assertThat(UnionMailboxACLResolver.applies(user1Key, user1Key, groupMembershipResolver, USER_1.asString(), false)).isTrue();
+ assertThat(UnionMailboxACLResolver.applies(user2Key, user1Key, groupMembershipResolver, USER_1.asString(), false)).isFalse();
+ assertThat(UnionMailboxACLResolver.applies(group1Key, user1Key, groupMembershipResolver, USER_1.asString(), false)).isTrue();
+ assertThat(UnionMailboxACLResolver.applies(group2Key, user1Key, groupMembershipResolver, USER_1.asString(), false)).isFalse();
+ assertThat(UnionMailboxACLResolver.applies(MailboxACL.ANYBODY_KEY, user1Key, groupMembershipResolver, USER_1.asString(), false)).isTrue();
+ assertThat(UnionMailboxACLResolver.applies(MailboxACL.AUTHENTICATED_KEY, user1Key, groupMembershipResolver, USER_1.asString(), false)).isTrue();
+ assertThat(UnionMailboxACLResolver.applies(MailboxACL.OWNER_KEY, user1Key, groupMembershipResolver, USER_1.asString(), false)).isTrue();
/* requester is not the resource user */
- assertThat(UnionMailboxACLResolver.applies(user1Key, user1Key, groupMembershipResolver, USER_2, false)).isTrue();
- assertThat(UnionMailboxACLResolver.applies(user2Key, user1Key, groupMembershipResolver, USER_2, false)).isFalse();
- assertThat(UnionMailboxACLResolver.applies(group1Key, user1Key, groupMembershipResolver, USER_2, false)).isTrue();
- assertThat(UnionMailboxACLResolver.applies(group2Key, user1Key, groupMembershipResolver, USER_2, false)).isFalse();
- assertThat(UnionMailboxACLResolver.applies(MailboxACL.ANYBODY_KEY, user1Key, groupMembershipResolver, USER_2, false)).isTrue();
- assertThat(UnionMailboxACLResolver.applies(MailboxACL.AUTHENTICATED_KEY, user1Key, groupMembershipResolver, USER_2, false)).isTrue();
- assertThat(UnionMailboxACLResolver.applies(MailboxACL.OWNER_KEY, user1Key, groupMembershipResolver, USER_2, false)).isFalse();
+ assertThat(UnionMailboxACLResolver.applies(user1Key, user1Key, groupMembershipResolver, USER_2.asString(), false)).isTrue();
+ assertThat(UnionMailboxACLResolver.applies(user2Key, user1Key, groupMembershipResolver, USER_2.asString(), false)).isFalse();
+ assertThat(UnionMailboxACLResolver.applies(group1Key, user1Key, groupMembershipResolver, USER_2.asString(), false)).isTrue();
+ assertThat(UnionMailboxACLResolver.applies(group2Key, user1Key, groupMembershipResolver, USER_2.asString(), false)).isFalse();
+ assertThat(UnionMailboxACLResolver.applies(MailboxACL.ANYBODY_KEY, user1Key, groupMembershipResolver, USER_2.asString(), false)).isTrue();
+ assertThat(UnionMailboxACLResolver.applies(MailboxACL.AUTHENTICATED_KEY, user1Key, groupMembershipResolver, USER_2.asString(), false)).isTrue();
+ assertThat(UnionMailboxACLResolver.applies(MailboxACL.OWNER_KEY, user1Key, groupMembershipResolver, USER_2.asString(), false)).isFalse();
/* requester member of owner group */
assertThat(UnionMailboxACLResolver.applies(user1Key, user1Key, groupMembershipResolver, GROUP_1, true)).isTrue();
@@ -149,13 +150,13 @@ class UnionMailboxACLResolverTest {
assertThat(UnionMailboxACLResolver.applies(MailboxACL.OWNER_KEY, user1Key, groupMembershipResolver, GROUP_2, true)).isFalse();
/* owner query */
- assertThat(UnionMailboxACLResolver.applies(user1Key, MailboxACL.OWNER_KEY, groupMembershipResolver, USER_1, false)).isFalse();
- assertThat(UnionMailboxACLResolver.applies(user2Key, MailboxACL.OWNER_KEY, groupMembershipResolver, USER_1, false)).isFalse();
- assertThat(UnionMailboxACLResolver.applies(group1Key, MailboxACL.OWNER_KEY, groupMembershipResolver, USER_1, false)).isFalse();
- assertThat(UnionMailboxACLResolver.applies(group2Key, MailboxACL.OWNER_KEY, groupMembershipResolver, USER_1, false)).isFalse();
- assertThat(UnionMailboxACLResolver.applies(MailboxACL.ANYBODY_KEY, MailboxACL.OWNER_KEY, groupMembershipResolver, USER_1, false)).isTrue();
- assertThat(UnionMailboxACLResolver.applies(MailboxACL.AUTHENTICATED_KEY, MailboxACL.OWNER_KEY, groupMembershipResolver, USER_1, false)).isTrue();
- assertThat(UnionMailboxACLResolver.applies(MailboxACL.OWNER_KEY, MailboxACL.OWNER_KEY, groupMembershipResolver, USER_1, false)).isTrue();
+ assertThat(UnionMailboxACLResolver.applies(user1Key, MailboxACL.OWNER_KEY, groupMembershipResolver, USER_1.asString(), false)).isFalse();
+ assertThat(UnionMailboxACLResolver.applies(user2Key, MailboxACL.OWNER_KEY, groupMembershipResolver, USER_1.asString(), false)).isFalse();
+ assertThat(UnionMailboxACLResolver.applies(group1Key, MailboxACL.OWNER_KEY, groupMembershipResolver, USER_1.asString(), false)).isFalse();
+ assertThat(UnionMailboxACLResolver.applies(group2Key, MailboxACL.OWNER_KEY, groupMembershipResolver, USER_1.asString(), false)).isFalse();
+ assertThat(UnionMailboxACLResolver.applies(MailboxACL.ANYBODY_KEY, MailboxACL.OWNER_KEY, groupMembershipResolver, USER_1.asString(), false)).isTrue();
+ assertThat(UnionMailboxACLResolver.applies(MailboxACL.AUTHENTICATED_KEY, MailboxACL.OWNER_KEY, groupMembershipResolver, USER_1.asString(), false)).isTrue();
+ assertThat(UnionMailboxACLResolver.applies(MailboxACL.OWNER_KEY, MailboxACL.OWNER_KEY, groupMembershipResolver, USER_1.asString(), false)).isTrue();
}
@@ -163,236 +164,236 @@ class UnionMailboxACLResolverTest {
void testResolveRightsNullUser() throws UnsupportedRightException {
assertThat(
- anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, user1Read, USER_1, false)
+ anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, user1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, user1Read, USER_1, false)
+ anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, user1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, user1ReadNegative, USER_1, false)
+ anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, user1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, user1Read, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, user1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, user1ReadNegative, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, user1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(null, groupMembershipResolver, user1Read, USER_1, false)
+ ownerFullGlobal.resolveRights(null, groupMembershipResolver, user1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(null, groupMembershipResolver, user1ReadNegative, USER_1, false)
+ ownerFullGlobal.resolveRights(null, groupMembershipResolver, user1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(null, groupMembershipResolver, user1Read, USER_1, false)
+ noGlobals.resolveRights(null, groupMembershipResolver, user1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(null, groupMembershipResolver, user1ReadNegative, USER_1, false)
+ noGlobals.resolveRights(null, groupMembershipResolver, user1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, user1Read, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, user1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, user1ReadNegative, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, user1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, group1Read, USER_1, false)
+ anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, group1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, group1ReadNegative, USER_1, false)
+ anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, group1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, group1Read, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, group1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, group1ReadNegative, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, group1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(null, groupMembershipResolver, group1Read, USER_1, false)
+ ownerFullGlobal.resolveRights(null, groupMembershipResolver, group1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(null, groupMembershipResolver, group1ReadNegative, USER_1, false)
+ ownerFullGlobal.resolveRights(null, groupMembershipResolver, group1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(null, groupMembershipResolver, group1Read, USER_1, false)
+ noGlobals.resolveRights(null, groupMembershipResolver, group1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(null, groupMembershipResolver, group1ReadNegative, USER_1, false)
+ noGlobals.resolveRights(null, groupMembershipResolver, group1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, group1Read, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, group1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, group1ReadNegative, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, group1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, anybodyRead, USER_1, false)
+ anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, anybodyRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, anybodyReadNegative, USER_1, false)
+ anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, anybodyReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, anybodyRead, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, anybodyRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, anybodyReadNegative, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, anybodyReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(null, groupMembershipResolver, anybodyRead, USER_1, false)
+ ownerFullGlobal.resolveRights(null, groupMembershipResolver, anybodyRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- ownerFullGlobal.resolveRights(null, groupMembershipResolver, anybodyReadNegative, USER_1, false)
+ ownerFullGlobal.resolveRights(null, groupMembershipResolver, anybodyReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(null, groupMembershipResolver, anybodyRead, USER_1, false)
+ noGlobals.resolveRights(null, groupMembershipResolver, anybodyRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- noGlobals.resolveRights(null, groupMembershipResolver, anybodyReadNegative, USER_1, false)
+ noGlobals.resolveRights(null, groupMembershipResolver, anybodyReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, anybodyRead, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, anybodyRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, anybodyReadNegative, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, anybodyReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, authenticatedRead, USER_1, false)
+ anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, authenticatedRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, authenticatedReadNegative, USER_1, false)
+ anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, authenticatedReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, authenticatedRead, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, authenticatedRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, authenticatedReadNegative, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, authenticatedReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(null, groupMembershipResolver, authenticatedRead, USER_1, false)
+ ownerFullGlobal.resolveRights(null, groupMembershipResolver, authenticatedRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(null, groupMembershipResolver, authenticatedReadNegative, USER_1, false)
+ ownerFullGlobal.resolveRights(null, groupMembershipResolver, authenticatedReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(null, groupMembershipResolver, authenticatedRead, USER_1, false)
+ noGlobals.resolveRights(null, groupMembershipResolver, authenticatedRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(null, groupMembershipResolver, authenticatedReadNegative, USER_1, false)
+ noGlobals.resolveRights(null, groupMembershipResolver, authenticatedReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, authenticatedRead, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, authenticatedRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, authenticatedReadNegative, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, authenticatedReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, ownerRead, USER_1, false)
+ anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, ownerRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, ownerReadNegative, USER_1, false)
+ anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, ownerReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, ownerRead, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, ownerRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, ownerReadNegative, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, ownerReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(null, groupMembershipResolver, ownerRead, USER_1, false)
+ ownerFullGlobal.resolveRights(null, groupMembershipResolver, ownerRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(null, groupMembershipResolver, ownerReadNegative, USER_1, false)
+ ownerFullGlobal.resolveRights(null, groupMembershipResolver, ownerReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(null, groupMembershipResolver, ownerRead, USER_1, false)
+ noGlobals.resolveRights(null, groupMembershipResolver, ownerRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(null, groupMembershipResolver, ownerReadNegative, USER_1, false)
+ noGlobals.resolveRights(null, groupMembershipResolver, ownerReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, ownerRead, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, ownerRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, ownerReadNegative, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, ownerReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
@@ -401,23 +402,23 @@ class UnionMailboxACLResolverTest {
@Test
void testResolveRightsNullUserGlobals() throws UnsupportedRightException {
assertThat(
- anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, user1Read, USER_2, false)
+ anyoneReadListGlobal.resolveRights(null, groupMembershipResolver, user1Read, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, MailboxACL.EMPTY, USER_2, false)
+ authenticatedReadListWriteGlobal.resolveRights(null, groupMembershipResolver, MailboxACL.EMPTY, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(null, groupMembershipResolver, MailboxACL.EMPTY, USER_2, false)
+ ownerFullGlobal.resolveRights(null, groupMembershipResolver, MailboxACL.EMPTY, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(null, groupMembershipResolver, MailboxACL.EMPTY, USER_2, false)
+ noGlobals.resolveRights(null, groupMembershipResolver, MailboxACL.EMPTY, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, MailboxACL.EMPTY, USER_2, false)
+ negativeGroup2FullGlobal.resolveRights(null, groupMembershipResolver, MailboxACL.EMPTY, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
}
@@ -427,231 +428,231 @@ class UnionMailboxACLResolverTest {
void testResolveRightsUserSelfOwner() throws UnsupportedRightException {
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_1, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_1, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_1, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_1, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_1, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_1, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_1, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_1, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_1, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_1, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_1, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_1, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_1, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_1, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_1, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_1, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_1, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_1, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_1, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_1, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_1, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_1, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_1, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_1, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_1, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_1, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_1, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_1, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_1, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_1, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_1, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_1, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_1.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
@@ -662,231 +663,231 @@ class UnionMailboxACLResolverTest {
void testResolveRightsUserNotOwner() throws UnsupportedRightException {
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_2, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_2, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_2, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_2, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_2, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_2, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_2, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_2, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_2, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, user1Read, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_2, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, user1ReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_2, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_2, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_2, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_2, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_2, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_2, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_2, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_2, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_2, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, group1Read, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_2, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, group1ReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_2, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_2, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_2, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_2, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_2, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_2, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_2, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_2, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_2, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyRead, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_2, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, anybodyReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_2, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_2, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_2, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_2, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_2, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_2, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_2, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_2, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_2, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedRead, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_2, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, authenticatedReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_2, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_2, false)
+ anyoneReadListGlobal.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_2, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_2, false)
+ authenticatedReadListWriteGlobal.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isTrue();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_2, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_2, false)
+ ownerFullGlobal.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_2, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- noGlobals.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_2, false)
+ noGlobals.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_2, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, ownerRead, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
assertThat(
- negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_2, false)
+ negativeGroup2FullGlobal.resolveRights(USER_1, groupMembershipResolver, ownerReadNegative, USER_2.asString(), false)
.contains(MailboxACL.Right.Read))
.isFalse();
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusTestFixture.java b/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusTestFixture.java
index a106367..a071583 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusTestFixture.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusTestFixture.java
@@ -94,7 +94,7 @@ public interface EventBusTestFixture {
MailboxSession.SessionId SESSION_ID = MailboxSession.SessionId.of(42);
Username USERNAME = Username.of("user");
- MailboxPath MAILBOX_PATH = new MailboxPath(MailboxConstants.USER_NAMESPACE, "user", "mailboxName");
+ MailboxPath MAILBOX_PATH = new MailboxPath(MailboxConstants.USER_NAMESPACE, USERNAME, "mailboxName");
TestId TEST_ID = TestId.of(18);
Event.EventId EVENT_ID = Event.EventId.of("6e0dd59d-660e-4d9b-b22f-0354479f47b4");
Event.EventId EVENT_ID_2 = Event.EventId.of("5a7a9f3f-5f03-44be-b457-a51e93760645");
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventDeadLettersContract.java b/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventDeadLettersContract.java
index b1508f0..d218e8e 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventDeadLettersContract.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventDeadLettersContract.java
@@ -102,8 +102,8 @@ interface EventDeadLettersContract {
int THREAD_COUNT = 10;
int OPERATION_COUNT = 50;
- MailboxPath MAILBOX_PATH = new MailboxPath(MailboxConstants.USER_NAMESPACE, "user", "mailboxName");
Username USERNAME = Username.of("user");
+ MailboxPath MAILBOX_PATH = new MailboxPath(MailboxConstants.USER_NAMESPACE, USERNAME, "mailboxName");
MailboxSession.SessionId SESSION_ID = MailboxSession.SessionId.of(235);
TestId MAILBOX_ID = TestId.of(563);
Event.EventId EVENT_ID_1 = Event.EventId.of("6e0dd59d-660e-4d9b-b22f-0354479f47b4");
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/events/GroupContract.java b/mailbox/api/src/test/java/org/apache/james/mailbox/events/GroupContract.java
index 48952cf..a919e0f 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/events/GroupContract.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/events/GroupContract.java
@@ -50,10 +50,10 @@ import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.TestId;
-import org.junit.jupiter.api.Test;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSortedMap;
+import org.junit.jupiter.api.Test;
public interface GroupContract {
@@ -141,7 +141,8 @@ public interface GroupContract {
eventBus().register(listener, GROUP_A);
- MailboxListener.Added noopEvent = new MailboxListener.Added(MailboxSession.SessionId.of(18), Username.of("bob"), MailboxPath.forUser("bob", "mailbox"), TestId.of(58), ImmutableSortedMap.of(), Event.EventId.random());
+ Username bob = Username.of("bob");
+ MailboxListener.Added noopEvent = new MailboxListener.Added(MailboxSession.SessionId.of(18), bob, MailboxPath.forUser(bob, "mailbox"), TestId.of(58), ImmutableSortedMap.of(), Event.EventId.random());
eventBus().dispatch(noopEvent, NO_KEYS).block();
verify(listener, after(FIVE_HUNDRED_MS.toMillis()).never())
@@ -351,7 +352,8 @@ public interface GroupContract {
eventBus().register(listener, GROUP_A);
- MailboxListener.Added noopEvent = new MailboxListener.Added(MailboxSession.SessionId.of(18), Username.of("bob"), MailboxPath.forUser("bob", "mailbox"), TestId.of(58), ImmutableSortedMap.of(), Event.EventId.random());
+ Username bob = Username.of("bob");
+ MailboxListener.Added noopEvent = new MailboxListener.Added(MailboxSession.SessionId.of(18), bob, MailboxPath.forUser(bob, "mailbox"), TestId.of(58), ImmutableSortedMap.of(), Event.EventId.random());
eventBus().reDeliver(GROUP_A, noopEvent).block();
verify(listener, after(FIVE_HUNDRED_MS.toMillis()).never()).event(any());
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/events/KeyContract.java b/mailbox/api/src/test/java/org/apache/james/mailbox/events/KeyContract.java
index 4ce11b5..6f2ab58 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/events/KeyContract.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/events/KeyContract.java
@@ -90,7 +90,8 @@ public interface KeyContract extends EventBusContract {
eventBus().register(listener, KEY_1);
- MailboxListener.Added noopEvent = new MailboxListener.Added(MailboxSession.SessionId.of(18), Username.of("bob"), MailboxPath.forUser("bob", "mailbox"), TestId.of(58), ImmutableSortedMap.of(), Event.EventId.random());
+ Username bob = Username.of("bob");
+ MailboxListener.Added noopEvent = new MailboxListener.Added(MailboxSession.SessionId.of(18), bob, MailboxPath.forUser(bob, "mailbox"), TestId.of(58), ImmutableSortedMap.of(), Event.EventId.random());
eventBus().dispatch(noopEvent, KEY_1).block();
verify(listener, after(FIVE_HUNDRED_MS.toMillis()).never())
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/fixture/MailboxFixture.java b/mailbox/api/src/test/java/org/apache/james/mailbox/fixture/MailboxFixture.java
index ea04390..7f164ba 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/fixture/MailboxFixture.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/fixture/MailboxFixture.java
@@ -19,12 +19,13 @@
package org.apache.james.mailbox.fixture;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.model.MailboxPath;
public class MailboxFixture {
- public static final String ALICE = "alice";
- public static final String BOB = "bob";
- public static final String CEDRIC = "cedric";
+ public static final Username ALICE = Username.of("alice");
+ public static final Username BOB = Username.of("bob");
+ public static final Username CEDRIC = Username.of("cedric");
public static final MailboxPath INBOX_ALICE = MailboxPath.forUser(ALICE, "INBOX");
public static final MailboxPath OUTBOX_ALICE = MailboxPath.forUser(ALICE, "OUTBOX");
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestProvisionner.java b/mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestProvisionner.java
index 1d793bf..26d36af 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestProvisionner.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestProvisionner.java
@@ -26,6 +26,7 @@ import java.util.Calendar;
import javax.mail.Flags;
+import org.apache.james.core.Username;
import org.apache.james.core.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.mailbox.FlagsBuilder;
@@ -41,9 +42,9 @@ import org.apache.james.mailbox.quota.MaxQuotaManager;
* Provide an initialized Mailbox environment where we can run managers tests
*/
public class ManagerTestProvisionner {
- public static final String USER = "user@domain.org";
+ public static final Username USER = Username.of("user@domain.org");
public static final String USER_PASS = "pass";
- public static final String OTHER_USER = "otherUser@domain.org";
+ public static final Username OTHER_USER = Username.of("otherUser@domain.org");
public static final String OTHER_USER_PASS = "otherPass";
private IntegrationResources<?> integrationResources;
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/DataProvisioner.java b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/DataProvisioner.java
index 674c324..ec59bee 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/DataProvisioner.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/DataProvisioner.java
@@ -22,6 +22,7 @@ import java.util.stream.IntStream;
import javax.mail.Flags;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
@@ -79,10 +80,11 @@ public class DataProvisioner {
public static void provisionDomain(MailboxManager mailboxManager, String domain) {
IntStream.range(0, USER_COUNT)
.mapToObj(i -> "user" + i + "@" + domain)
+ .map(Username::of)
.forEach(Throwing.consumer(user -> provisionUser(mailboxManager, user)));
}
- private static void provisionUser(MailboxManager mailboxManager, String user) throws MailboxException {
+ private static void provisionUser(MailboxManager mailboxManager, Username user) throws MailboxException {
MailboxSession mailboxSession = mailboxManager.createSystemSession(user);
mailboxManager.startProcessingRequest(mailboxSession);
@@ -100,7 +102,7 @@ public class DataProvisioner {
private static void createSubSubMailboxes(MailboxManager mailboxManager,MailboxSession mailboxSession, String subFolderName) {
IntStream.range(0, SUB_SUB_MAILBOXES_COUNT)
.mapToObj(i -> subFolderName + ".SUBSUB_FOLDER_" + i)
- .forEach(name -> createMailbox(mailboxManager, mailboxSession, MailboxPath.forUser(mailboxSession.getUser().asString(), name)));
+ .forEach(name -> createMailbox(mailboxManager, mailboxSession, MailboxPath.forUser(mailboxSession.getUser(), name)));
}
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxACLTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxACLTest.java
index 8282c9d..f299efa 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxACLTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxACLTest.java
@@ -26,6 +26,7 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.UnsupportedRightException;
import org.apache.james.mailbox.model.MailboxACL.Entry;
import org.apache.james.mailbox.model.MailboxACL.EntryKey;
@@ -41,6 +42,8 @@ class MailboxACLTest {
private static final String USER_1 = "user1";
private static final String USER_2 = "user2";
+ private static final Username USERNAME_1 = Username.of("user1");
+ private static final Username USERNAME_2 = Username.of("user2");
private static final boolean NEGATIVE = true;
private static final String ae = "ae";
@@ -221,7 +224,7 @@ class MailboxACLTest {
@Test
void applyShouldNotThrowWhenRemovingANonExistingEntry() throws Exception {
assertThat(MailboxACL.EMPTY
- .apply(MailboxACL.command().forUser("bob").noRights().asReplacement()))
+ .apply(MailboxACL.command().forUser(Username.of("bob")).noRights().asReplacement()))
.isEqualTo(MailboxACL.EMPTY);
}
@@ -244,20 +247,20 @@ class MailboxACLTest {
void usersACLShouldReturnOnlyUsersMapWhenSomeUserEntries() throws Exception {
MailboxACL.Rfc4314Rights rights = MailboxACL.Rfc4314Rights.fromSerializedRfc4314Rights("aei");
MailboxACL mailboxACL = new MailboxACL(
- ImmutableMap.of(EntryKey.createUserEntryKey("user1"), MailboxACL.FULL_RIGHTS,
+ ImmutableMap.of(EntryKey.createUserEntryKey(USERNAME_1), MailboxACL.FULL_RIGHTS,
EntryKey.createGroupEntryKey("group"), MailboxACL.FULL_RIGHTS,
- EntryKey.createUserEntryKey("user2"), rights,
+ EntryKey.createUserEntryKey(USERNAME_2), rights,
EntryKey.createGroupEntryKey("group2"), MailboxACL.NO_RIGHTS));
assertThat(mailboxACL.ofPositiveNameType(NameType.user))
.containsOnly(
- MapEntry.entry(EntryKey.createUserEntryKey("user1"), MailboxACL.FULL_RIGHTS),
- MapEntry.entry(EntryKey.createUserEntryKey("user2"), rights));
+ MapEntry.entry(EntryKey.createUserEntryKey(USERNAME_1), MailboxACL.FULL_RIGHTS),
+ MapEntry.entry(EntryKey.createUserEntryKey(USERNAME_2), rights));
}
@Test
void ofPositiveNameTypeShouldFilterOutNegativeEntries() throws Exception {
MailboxACL mailboxACL = new MailboxACL(
- ImmutableMap.of(EntryKey.createUserEntryKey("user1", NEGATIVE), MailboxACL.FULL_RIGHTS));
+ ImmutableMap.of(EntryKey.createUserEntryKey(Username.of("user1"), NEGATIVE), MailboxACL.FULL_RIGHTS));
assertThat(mailboxACL.ofPositiveNameType(NameType.user))
.isEmpty();
}
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxAssertTests.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxAssertTests.java
index 62f8bae..b3d4ecf 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxAssertTests.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxAssertTests.java
@@ -21,17 +21,20 @@ package org.apache.james.mailbox.model;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import org.apache.james.core.Username;
import org.junit.jupiter.api.Test;
+
class MailboxAssertTests {
+ private static final Username USER = Username.of("user");
private static final long UID_VALIDITY = 42;
private static final TestId MAILBOX_ID = TestId.of(24);
@Test
void isEqualToShouldNotFailWithEqualMailbox() {
- Mailbox mailbox1 = new Mailbox(MailboxPath.forUser("user", "name"), UID_VALIDITY);
- Mailbox mailbox2 = new Mailbox(MailboxPath.forUser("user", "name"), UID_VALIDITY);
+ Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
+ Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
mailbox1.setMailboxId(MAILBOX_ID);
mailbox2.setMailboxId(MAILBOX_ID);
@@ -40,8 +43,8 @@ class MailboxAssertTests {
@Test
void isEqualToShouldFailWithNotEqualNamespace() {
- Mailbox mailbox1 = new Mailbox(MailboxPath.forUser("user", "name"), UID_VALIDITY);
- Mailbox mailbox2 = new Mailbox(new MailboxPath("other_namespace", "user", "name"), UID_VALIDITY);
+ Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
+ Mailbox mailbox2 = new Mailbox(new MailboxPath("other_namespace", USER, "name"), UID_VALIDITY);
mailbox1.setMailboxId(MAILBOX_ID);
mailbox2.setMailboxId(MAILBOX_ID);
@@ -51,8 +54,8 @@ class MailboxAssertTests {
@Test
void isEqualToShouldFailWithNotEqualUser() {
- Mailbox mailbox1 = new Mailbox(MailboxPath.forUser("user", "name"), UID_VALIDITY);
- Mailbox mailbox2 = new Mailbox(new MailboxPath("namespace", "other_user", "name"), UID_VALIDITY);
+ Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
+ Mailbox mailbox2 = new Mailbox(new MailboxPath("namespace", Username.of("other_user"), "name"), UID_VALIDITY);
mailbox1.setMailboxId(MAILBOX_ID);
mailbox2.setMailboxId(MAILBOX_ID);
@@ -62,8 +65,8 @@ class MailboxAssertTests {
@Test
void isEqualToShouldFailWithNotEqualName() {
- Mailbox mailbox1 = new Mailbox(MailboxPath.forUser("user", "name"), UID_VALIDITY);
- Mailbox mailbox2 = new Mailbox(new MailboxPath("namespace", "user", "other_name"), UID_VALIDITY);
+ Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
+ Mailbox mailbox2 = new Mailbox(new MailboxPath("namespace", USER, "other_name"), UID_VALIDITY);
mailbox1.setMailboxId(MAILBOX_ID);
mailbox2.setMailboxId(MAILBOX_ID);
@@ -73,8 +76,8 @@ class MailboxAssertTests {
@Test
void isEqualToShouldFailWithNotEqualId() {
- Mailbox mailbox1 = new Mailbox(MailboxPath.forUser("user", "name"), UID_VALIDITY);
- Mailbox mailbox2 = new Mailbox(MailboxPath.forUser("user", "name"), UID_VALIDITY);
+ Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
+ Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
mailbox1.setMailboxId(MAILBOX_ID);
mailbox2.setMailboxId(TestId.of(MAILBOX_ID.id + 1));
@@ -84,8 +87,8 @@ class MailboxAssertTests {
@Test
void isEqualToShouldFailWithNotEqualUidValidity() {
- Mailbox mailbox1 = new Mailbox(MailboxPath.forUser("user", "name"), UID_VALIDITY);
- Mailbox mailbox2 = new Mailbox(MailboxPath.forUser("user", "name"), UID_VALIDITY + 1);
+ Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
+ Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY + 1);
mailbox1.setMailboxId(MAILBOX_ID);
mailbox2.setMailboxId(MAILBOX_ID);
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxPathTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxPathTest.java
index 321f58f..0e5e887 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxPathTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxPathTest.java
@@ -24,17 +24,19 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatCode;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.DefaultMailboxes;
-import org.junit.jupiter.api.Test;
import org.apache.james.mailbox.exception.HasEmptyMailboxNameInHierarchyException;
import org.apache.james.mailbox.exception.MailboxNameException;
import org.apache.james.mailbox.exception.TooLongMailboxNameException;
+import org.junit.jupiter.api.Test;
import com.google.common.base.Strings;
import nl.jqno.equalsverifier.EqualsVerifier;
class MailboxPathTest {
+ private static final Username USER = Username.of("user");
@Test
void shouldMatchBeanContract() {
@@ -44,214 +46,214 @@ class MailboxPathTest {
@Test
void getHierarchyLevelsShouldBeOrdered() {
- assertThat(MailboxPath.forUser("user", "inbox.folder.subfolder")
+ assertThat(MailboxPath.forUser(USER, "inbox.folder.subfolder")
.getHierarchyLevels('.'))
.containsExactly(
- MailboxPath.forUser("user", "inbox"),
- MailboxPath.forUser("user", "inbox.folder"),
- MailboxPath.forUser("user", "inbox.folder.subfolder"));
+ MailboxPath.forUser(USER, "inbox"),
+ MailboxPath.forUser(USER, "inbox.folder"),
+ MailboxPath.forUser(USER, "inbox.folder.subfolder"));
}
@Test
void getHierarchyLevelsShouldReturnPathWhenOneLevel() {
- assertThat(MailboxPath.forUser("user", "inbox")
+ assertThat(MailboxPath.forUser(USER, "inbox")
.getHierarchyLevels('.'))
.containsExactly(
- MailboxPath.forUser("user", "inbox"));
+ MailboxPath.forUser(USER, "inbox"));
}
@Test
void getHierarchyLevelsShouldReturnPathWhenEmptyName() {
- assertThat(MailboxPath.forUser("user", "")
+ assertThat(MailboxPath.forUser(USER, "")
.getHierarchyLevels('.'))
.containsExactly(
- MailboxPath.forUser("user", ""));
+ MailboxPath.forUser(USER, ""));
}
@Test
void getHierarchyLevelsShouldReturnPathWhenNullName() {
- assertThat(MailboxPath.forUser("user", null)
+ assertThat(MailboxPath.forUser(USER, null)
.getHierarchyLevels('.'))
.containsExactly(
- MailboxPath.forUser("user", null));
+ MailboxPath.forUser(USER, null));
}
@Test
void sanitizeShouldNotThrowOnNullMailboxName() {
- assertThat(MailboxPath.forUser("user", null)
+ assertThat(MailboxPath.forUser(USER, null)
.sanitize('.'))
.isEqualTo(
- MailboxPath.forUser("user", null));
+ MailboxPath.forUser(USER, null));
}
@Test
void sanitizeShouldReturnEmptyWhenEmpty() {
- assertThat(MailboxPath.forUser("user", "")
+ assertThat(MailboxPath.forUser(USER, "")
.sanitize('.'))
.isEqualTo(
- MailboxPath.forUser("user", ""));
+ MailboxPath.forUser(USER, ""));
}
@Test
void sanitizeShouldRemoveMaximumOneTrailingDelimiterWhenAlone() {
- assertThat(MailboxPath.forUser("user", ".")
+ assertThat(MailboxPath.forUser(USER, ".")
.sanitize('.'))
.isEqualTo(
- MailboxPath.forUser("user", ""));
+ MailboxPath.forUser(USER, ""));
}
@Test
void sanitizeShouldPreserveHeadingDelimiter() {
- assertThat(MailboxPath.forUser("user", ".a")
+ assertThat(MailboxPath.forUser(USER, ".a")
.sanitize('.'))
.isEqualTo(
- MailboxPath.forUser("user", ".a"));
+ MailboxPath.forUser(USER, ".a"));
}
@Test
void sanitizeShouldRemoveTrailingDelimiter() {
- assertThat(MailboxPath.forUser("user", "a.")
+ assertThat(MailboxPath.forUser(USER, "a.")
.sanitize('.'))
.isEqualTo(
- MailboxPath.forUser("user", "a"));
+ MailboxPath.forUser(USER, "a"));
}
@Test
void sanitizeShouldRemoveMaximumOneTrailingDelimiter() {
- assertThat(MailboxPath.forUser("user", "a..")
+ assertThat(MailboxPath.forUser(USER, "a..")
.sanitize('.'))
.isEqualTo(
- MailboxPath.forUser("user", "a."));
+ MailboxPath.forUser(USER, "a."));
}
@Test
void sanitizeShouldPreserveRedundantDelimiters() {
- assertThat(MailboxPath.forUser("user", "a..a")
+ assertThat(MailboxPath.forUser(USER, "a..a")
.sanitize('.'))
.isEqualTo(
- MailboxPath.forUser("user", "a..a"));
+ MailboxPath.forUser(USER, "a..a"));
}
@Test
void hasEmptyNameInHierarchyShouldBeFalseIfSingleLevelPath() {
- assertThat(MailboxPath.forUser("user", "a")
+ assertThat(MailboxPath.forUser(USER, "a")
.hasEmptyNameInHierarchy('.'))
.isFalse();
}
@Test
void hasEmptyNameInHierarchyShouldBeFalseIfNestedLevelWithNonEmptyNames() {
- assertThat(MailboxPath.forUser("user", "a.b.c")
+ assertThat(MailboxPath.forUser(USER, "a.b.c")
.hasEmptyNameInHierarchy('.'))
.isFalse();
}
@Test
void hasEmptyNameInHierarchyShouldBeTrueIfEmptyPath() {
- assertThat(MailboxPath.forUser("user", "")
+ assertThat(MailboxPath.forUser(USER, "")
.hasEmptyNameInHierarchy('.'))
.isTrue();
}
@Test
void hasEmptyNameInHierarchyShouldBeTrueIfPathWithTwoEmptyNames() {
- assertThat(MailboxPath.forUser("user", ".")
+ assertThat(MailboxPath.forUser(USER, ".")
.hasEmptyNameInHierarchy('.'))
.isTrue();
}
@Test
void hasEmptyNameInHierarchyShouldBeTrueIfPathWithAnEmptyNameBetweenTwoNames() {
- assertThat(MailboxPath.forUser("user", "a..b")
+ assertThat(MailboxPath.forUser(USER, "a..b")
.hasEmptyNameInHierarchy('.'))
.isTrue();
}
@Test
void hasEmptyNameInHierarchyShouldBeTrueIfPathWithHeadingEmptyNames() {
- assertThat(MailboxPath.forUser("user", "..a")
+ assertThat(MailboxPath.forUser(USER, "..a")
.hasEmptyNameInHierarchy('.'))
.isTrue();
}
@Test
void hasEmptyNameInHierarchyShouldBeTrueIfPathWithATrailingEmptyName() {
- assertThat(MailboxPath.forUser("user", "a.")
+ assertThat(MailboxPath.forUser(USER, "a.")
.hasEmptyNameInHierarchy('.'))
.isTrue();
}
@Test
void hasEmptyNameInHierarchyShouldBeTrueIfPathWithTrailingEmptyNames() {
- assertThat(MailboxPath.forUser("user", "a..")
+ assertThat(MailboxPath.forUser(USER, "a..")
.hasEmptyNameInHierarchy('.'))
.isTrue();
}
@Test
void assertAcceptableShouldThrowOnDoubleSeparator() {
- assertThatThrownBy(() -> MailboxPath.forUser("user", "a..b")
+ assertThatThrownBy(() -> MailboxPath.forUser(USER, "a..b")
.assertAcceptable('.'))
.isInstanceOf(HasEmptyMailboxNameInHierarchyException.class);
}
@Test
void assertAcceptableShouldThrowOnAnd() {
- assertThatThrownBy(() -> MailboxPath.forUser("user", "a&b")
+ assertThatThrownBy(() -> MailboxPath.forUser(USER, "a&b")
.assertAcceptable('.'))
.isInstanceOf(MailboxNameException.class);
}
@Test
void assertAcceptableShouldThrowOnSharp() {
- assertThatThrownBy(() -> MailboxPath.forUser("user", "a#b")
+ assertThatThrownBy(() -> MailboxPath.forUser(USER, "a#b")
.assertAcceptable('.'))
.isInstanceOf(MailboxNameException.class);
}
@Test
void assertAcceptableShouldThrowOnPercent() {
- assertThatThrownBy(() -> MailboxPath.forUser("user", "a%b")
+ assertThatThrownBy(() -> MailboxPath.forUser(USER, "a%b")
.assertAcceptable('.'))
.isInstanceOf(MailboxNameException.class);
}
@Test
void assertAcceptableShouldThrowOnWildcard() {
- assertThatThrownBy(() -> MailboxPath.forUser("user", "a*b")
+ assertThatThrownBy(() -> MailboxPath.forUser(USER, "a*b")
.assertAcceptable('.'))
.isInstanceOf(MailboxNameException.class);
}
@Test
void assertAcceptableShouldThrowOnTooLongMailboxName() {
- assertThatThrownBy(() -> MailboxPath.forUser("user", Strings.repeat("a", 201))
+ assertThatThrownBy(() -> MailboxPath.forUser(USER, Strings.repeat("a", 201))
.assertAcceptable('.'))
.isInstanceOf(TooLongMailboxNameException.class);
}
@Test
void assertAcceptableShouldNotThrowOnNotTooLongMailboxName() {
- assertThatCode(() -> MailboxPath.forUser("user", Strings.repeat("a", 200))
+ assertThatCode(() -> MailboxPath.forUser(USER, Strings.repeat("a", 200))
.assertAcceptable('.'))
.doesNotThrowAnyException();
}
@Test
void isInboxShouldReturnTrueWhenINBOX() {
- MailboxPath mailboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE, "user", DefaultMailboxes.INBOX);
+ MailboxPath mailboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE, USER, DefaultMailboxes.INBOX);
assertThat(mailboxPath.isInbox()).isTrue();
}
@Test
void isInboxShouldReturnTrueWhenINBOXWithOtherCase() {
- MailboxPath mailboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE, "user", "InBoX");
+ MailboxPath mailboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE, USER, "InBoX");
assertThat(mailboxPath.isInbox()).isTrue();
}
@Test
void isInboxShouldReturnFalseWhenOtherThanInbox() {
- MailboxPath mailboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE, "user", DefaultMailboxes.ARCHIVE);
+ MailboxPath mailboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE, USER, DefaultMailboxes.ARCHIVE);
assertThat(mailboxPath.isInbox()).isFalse();
}
}
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/MailboxQueryTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/MailboxQueryTest.java
index 664fa4c..b3d6a89 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/MailboxQueryTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/MailboxQueryTest.java
@@ -24,6 +24,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatCode;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.search.MailboxQuery.Builder;
import org.junit.jupiter.api.BeforeEach;
@@ -32,13 +33,13 @@ import org.junit.jupiter.api.Test;
import nl.jqno.equalsverifier.EqualsVerifier;
class MailboxQueryTest {
- private static final String CURRENT_USER = "user";
+ private static final Username CURRENT_USER = Username.of("user");
private MailboxPath mailboxPath;
@BeforeEach
void setUp() {
- mailboxPath = new MailboxPath("namespace", "user", "name");
+ mailboxPath = new MailboxPath("namespace", CURRENT_USER, "name");
}
@Test
@@ -59,10 +60,10 @@ class MailboxQueryTest {
@Test
void buildShouldConstructMailboxPathWhenPrivateUserMailboxes() {
- MailboxPath expected = MailboxPath.forUser("user", "");
+ MailboxPath expected = MailboxPath.forUser(CURRENT_USER, "");
MailboxQuery actual = MailboxQuery.builder()
- .username("user")
+ .username(CURRENT_USER)
.privateNamespace()
.build();
@@ -74,7 +75,7 @@ class MailboxQueryTest {
@Test
void buildShouldMatchAllValuesWhenPrivateUserMailboxes() {
Builder testee = MailboxQuery.builder()
- .username("user")
+ .username(CURRENT_USER)
.privateNamespace();
MailboxQuery actual = testee.build();
@@ -95,7 +96,7 @@ class MailboxQueryTest {
void builderShouldThrowWhenBaseAndUsernameGiven() {
assertThatThrownBy(() -> MailboxQuery.builder()
.userAndNamespaceFrom(mailboxPath)
- .username("user"))
+ .username(CURRENT_USER))
.isInstanceOf(IllegalStateException.class);
}
@@ -139,7 +140,7 @@ class MailboxQueryTest {
@Test
void belongsToNamespaceAndUserShouldReturnTrueWithIdenticalMailboxesWithNullNamespace() {
- MailboxPath mailboxPath = new MailboxPath(null, "user", "name");
+ MailboxPath mailboxPath = new MailboxPath(null, CURRENT_USER, "name");
MailboxQuery mailboxQuery = MailboxQuery.builder()
.userAndNamespaceFrom(mailboxPath)
@@ -175,7 +176,7 @@ class MailboxQueryTest {
.userAndNamespaceFrom(new MailboxPath("namespace", CURRENT_USER, "name"))
.build();
- assertThat(mailboxQuery.belongsToRequestedNamespaceAndUser(new MailboxPath("namespace", CURRENT_USER + "2", "name")))
+ assertThat(mailboxQuery.belongsToRequestedNamespaceAndUser(new MailboxPath("namespace", Username.of("user2"), "name")))
.isFalse();
}
@@ -185,7 +186,7 @@ class MailboxQueryTest {
.userAndNamespaceFrom(new MailboxPath("namespace", CURRENT_USER, "name"))
.build();
- assertThat(mailboxQuery.belongsToRequestedNamespaceAndUser(new MailboxPath("namespace", "other", "name")))
+ assertThat(mailboxQuery.belongsToRequestedNamespaceAndUser(new MailboxPath("namespace", Username.of("other"), "name")))
.isFalse();
}
}
diff --git a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/DefaultMailboxBackup.java b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/DefaultMailboxBackup.java
index 8a5cf6d..61a699d 100644
--- a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/DefaultMailboxBackup.java
+++ b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/DefaultMailboxBackup.java
@@ -85,7 +85,7 @@ public class DefaultMailboxBackup implements MailboxBackup {
@Override
public void backupAccount(Username username, OutputStream destination) throws IOException, MailboxException {
- MailboxSession session = mailboxManager.createSystemSession(username.asString());
+ MailboxSession session = mailboxManager.createSystemSession(username);
List<MailAccountContent> accountContents = getAccountContentForUser(session);
List<MailboxWithAnnotations> mailboxes = accountContents.stream()
.map(MailAccountContent::getMailboxWithAnnotations)
@@ -96,7 +96,7 @@ public class DefaultMailboxBackup implements MailboxBackup {
}
private boolean isAccountNonEmpty(Username username) throws BadCredentialsException, MailboxException, IOException {
- MailboxSession session = mailboxManager.createSystemSession(username.asString());
+ MailboxSession session = mailboxManager.createSystemSession(username);
return getAccountContentForUser(session)
.stream()
.findFirst()
@@ -110,13 +110,13 @@ public class DefaultMailboxBackup implements MailboxBackup {
return Mono.just(BackupStatus.NON_EMPTY_RECEIVER_ACCOUNT);
}
} catch (Exception e) {
- LOGGER.error("Error during account restoration for user : " + username, e);
+ LOGGER.error("Error during account restoration for user : " + username.asString(), e);
return Mono.just(BackupStatus.FAILED);
}
return Mono.fromRunnable(Throwing.runnable(() -> archiveRestorer.restore(username, source)).sneakyThrow())
.subscribeOn(Schedulers.boundedElastic())
- .doOnError(e -> LOGGER.error("Error during account restoration for user : " + username, e))
+ .doOnError(e -> LOGGER.error("Error during account restoration for user : " + username.asString(), e))
.doOnTerminate(Throwing.runnable(source::close).sneakyThrow())
.thenReturn(BackupStatus.DONE)
.onErrorReturn(BackupStatus.FAILED);
diff --git a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/ZipMailArchiveRestorer.java b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/ZipMailArchiveRestorer.java
index 3197fb4..07c0e82 100644
--- a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/ZipMailArchiveRestorer.java
+++ b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/ZipMailArchiveRestorer.java
@@ -54,7 +54,7 @@ public class ZipMailArchiveRestorer implements MailArchiveRestorer {
}
public void restore(Username username, InputStream source) throws MailboxException, IOException {
- MailboxSession session = mailboxManager.createSystemSession(username.asString());
+ MailboxSession session = mailboxManager.createSystemSession(username);
restoreEntries(source, session);
}
@@ -95,7 +95,7 @@ public class ZipMailArchiveRestorer implements MailArchiveRestorer {
private Optional<ImmutablePair<SerializedMailboxId, MessageManager>> restoreMailboxEntry(MailboxSession session,
MailboxWithAnnotationsArchiveEntry mailboxWithAnnotationsArchiveEntry) throws MailboxException {
- MailboxPath mailboxPath = MailboxPath.forUser(session.getUser().asString(), mailboxWithAnnotationsArchiveEntry.getMailboxName());
+ MailboxPath mailboxPath = MailboxPath.forUser(session.getUser(), mailboxWithAnnotationsArchiveEntry.getMailboxName());
Optional<MailboxId> newMailboxId = mailboxManager.createMailbox(mailboxPath, session);
mailboxManager.updateAnnotations(mailboxPath, session, mailboxWithAnnotationsArchiveEntry.getAnnotations());
return newMailboxId.map(Throwing.<MailboxId, ImmutablePair<SerializedMailboxId, MessageManager>>function(newId ->
diff --git a/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java b/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
index fb70c2d..ec97990 100644
--- a/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
+++ b/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
@@ -47,11 +47,11 @@ import com.google.common.collect.ImmutableList;
public interface MailboxMessageFixture {
- String USER = "user";
- String OTHER_USER = "otherUser";
+ Username USER = Username.of("user");
+ Username OTHER_USER = Username.of("otherUser");
- Username USERNAME_1 = Username.of(USER);
- Username USERNAME_2 = Username.of(OTHER_USER);
+ Username USERNAME_1 = USER;
+ Username USERNAME_2 = OTHER_USER;
String DATE_STRING_1 = "2018-02-15T15:54:02Z";
String DATE_STRING_2 = "2018-03-15T15:54:02Z";
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java
index 449a639..fddf40f 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java
@@ -25,6 +25,7 @@ import java.util.List;
import javax.inject.Inject;
import org.apache.james.blob.api.BlobStore;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.cassandra.mail.CassandraAttachmentDAOV2.DAOAttachment;
import org.apache.james.mailbox.exception.AttachmentNotFoundException;
import org.apache.james.mailbox.exception.MailboxException;
@@ -32,7 +33,6 @@ import org.apache.james.mailbox.model.Attachment;
import org.apache.james.mailbox.model.AttachmentId;
import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mailbox.store.mail.AttachmentMapper;
-import org.apache.james.mailbox.store.mail.model.Username;
import org.apache.james.util.ReactorUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentOwnerDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentOwnerDAO.java
index d994881..8e94a2b 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentOwnerDAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentOwnerDAO.java
@@ -31,8 +31,8 @@ import static org.apache.james.mailbox.cassandra.table.CassandraAttachmentOwnerT
import javax.inject.Inject;
import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.model.AttachmentId;
-import org.apache.james.mailbox.store.mail.model.Username;
import com.datastax.driver.core.PreparedStatement;
import com.datastax.driver.core.Row;
@@ -72,7 +72,7 @@ public class CassandraAttachmentOwnerDAO {
return executor.executeVoid(
addStatement.bind()
.setUUID(ID, attachmentId.asUUID())
- .setString(OWNER, owner.getValue()));
+ .setString(OWNER, owner.asString()));
}
public Flux<Username> retrieveOwners(AttachmentId attachmentId) {
@@ -83,6 +83,6 @@ public class CassandraAttachmentOwnerDAO {
}
private Username toOwner(Row row) {
- return Username.fromRawValue(row.getString(OWNER));
+ return Username.of(row.getString(OWNER));
}
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java
index daa9a9e..1fd07a7 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java
@@ -37,6 +37,7 @@ import javax.inject.Inject;
import org.apache.james.backends.cassandra.init.CassandraTypesProvider;
import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
import org.apache.james.backends.cassandra.utils.CassandraUtils;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
import org.apache.james.mailbox.cassandra.mail.utils.MailboxBaseTupleUtil;
import org.apache.james.mailbox.cassandra.table.CassandraMailboxTable;
@@ -147,7 +148,7 @@ public class CassandraMailboxDAO {
return new Mailbox(
new MailboxPath(
row.getUDTValue(MAILBOX_BASE).getString(CassandraMailboxTable.MailboxBase.NAMESPACE),
- row.getUDTValue(MAILBOX_BASE).getString(CassandraMailboxTable.MailboxBase.USER),
+ Username.of(row.getUDTValue(MAILBOX_BASE).getString(CassandraMailboxTable.MailboxBase.USER)),
row.getString(NAME)),
row.getLong(UIDVALIDITY));
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java
index 06d5246..56b32d3 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java
@@ -29,6 +29,7 @@ import java.util.stream.Collectors;
import javax.inject.Inject;
import org.apache.commons.lang3.tuple.Pair;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.acl.ACLDiff;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
import org.apache.james.mailbox.exception.MailboxException;
@@ -260,7 +261,7 @@ public class CassandraMailboxMapper implements MailboxMapper {
}
@Override
- public List<Mailbox> findNonPersonalMailboxes(String userName, Right right) {
+ public List<Mailbox> findNonPersonalMailboxes(Username userName, Right right) {
return userMailboxRightsDAO.listRightsForUser(userName)
.filter(mailboxId -> authorizedMailbox(mailboxId.getRight(), right))
.map(Pair::getLeft)
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAO.java
index 1eee863..72e7d78 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAO.java
@@ -19,6 +19,7 @@
package org.apache.james.mailbox.cassandra.mail;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
import org.apache.james.mailbox.model.MailboxPath;
@@ -29,7 +30,7 @@ public interface CassandraMailboxPathDAO {
Mono<CassandraIdAndPath> retrieveId(MailboxPath mailboxPath);
- Flux<CassandraIdAndPath> listUserMailboxes(String namespace, String user);
+ Flux<CassandraIdAndPath> listUserMailboxes(String namespace, Username user);
void logGhostMailboxSuccess(CassandraIdAndPath value);
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAOImpl.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAOImpl.java
index 48a245c..a10d94c 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAOImpl.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAOImpl.java
@@ -36,6 +36,7 @@ import javax.inject.Inject;
import org.apache.james.backends.cassandra.init.CassandraTypesProvider;
import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
import org.apache.james.backends.cassandra.utils.CassandraUtils;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.cassandra.GhostMailbox;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
import org.apache.james.mailbox.cassandra.mail.utils.MailboxBaseTupleUtil;
@@ -134,7 +135,7 @@ public class CassandraMailboxPathDAOImpl implements CassandraMailboxPathDAO {
}
@Override
- public Flux<CassandraIdAndPath> listUserMailboxes(String namespace, String user) {
+ public Flux<CassandraIdAndPath> listUserMailboxes(String namespace, Username user) {
return cassandraAsyncExecutor.execute(
selectAllForUser.bind()
.setUDTValue(NAMESPACE_AND_USER, mailboxBaseTupleUtil.createMailboxBaseUDT(namespace, user)))
@@ -181,7 +182,7 @@ public class CassandraMailboxPathDAOImpl implements CassandraMailboxPathDAO {
return new CassandraIdAndPath(
CassandraId.of(row.getUUID(MAILBOX_ID)),
new MailboxPath(row.getUDTValue(NAMESPACE_AND_USER).getString(CassandraMailboxTable.MailboxBase.NAMESPACE),
- row.getUDTValue(NAMESPACE_AND_USER).getString(CassandraMailboxTable.MailboxBase.USER),
+ Username.of(row.getUDTValue(NAMESPACE_AND_USER).getString(CassandraMailboxTable.MailboxBase.USER)),
row.getString(MAILBOX_NAME)));
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathV2DAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathV2DAO.java
index eb47783..f736ef0 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathV2DAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathV2DAO.java
@@ -35,6 +35,7 @@ import javax.inject.Inject;
import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
import org.apache.james.backends.cassandra.utils.CassandraUtils;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.cassandra.GhostMailbox;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
import org.apache.james.mailbox.model.MailboxPath;
@@ -114,7 +115,7 @@ public class CassandraMailboxPathV2DAO implements CassandraMailboxPathDAO {
}
@Override
- public Flux<CassandraIdAndPath> listUserMailboxes(String namespace, String user) {
+ public Flux<CassandraIdAndPath> listUserMailboxes(String namespace, Username user) {
return cassandraAsyncExecutor.execute(
selectAll.bind()
.setString(NAMESPACE, namespace)
@@ -161,7 +162,7 @@ public class CassandraMailboxPathV2DAO implements CassandraMailboxPathDAO {
return new CassandraIdAndPath(
CassandraId.of(row.getUUID(MAILBOX_ID)),
new MailboxPath(row.getString(NAMESPACE),
- row.getString(USER),
+ Username.of(row.getString(USER)),
row.getString(MAILBOX_NAME)));
}
@@ -182,10 +183,10 @@ public class CassandraMailboxPathV2DAO implements CassandraMailboxPathDAO {
.setString(MAILBOX_NAME, mailboxPath.getName()));
}
- private String sanitizeUser(String user) {
+ private String sanitizeUser(Username user) {
if (user == null) {
return "";
}
- return user;
+ return user.asString();
}
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUserMailboxRightsDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUserMailboxRightsDAO.java
index ff54813..035fd9e 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUserMailboxRightsDAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUserMailboxRightsDAO.java
@@ -35,6 +35,7 @@ import javax.inject.Inject;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
import org.apache.james.backends.cassandra.utils.CassandraUtils;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.acl.ACLDiff;
import org.apache.james.mailbox.acl.PositiveUserACLDiff;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
@@ -124,19 +125,19 @@ public class CassandraUserMailboxRightsDAO {
.then();
}
- public Mono<Optional<Rfc4314Rights>> retrieve(String userName, CassandraId mailboxId) {
+ public Mono<Optional<Rfc4314Rights>> retrieve(Username userName, CassandraId mailboxId) {
return cassandraAsyncExecutor.executeSingleRowOptional(
select.bind()
- .setString(USER_NAME, userName)
+ .setString(USER_NAME, userName.asString())
.setUUID(MAILBOX_ID, mailboxId.asUuid()))
.map(rowOptional ->
rowOptional.map(Throwing.function(row -> Rfc4314Rights.fromSerializedRfc4314Rights(row.getString(RIGHTS)))));
}
- public Flux<Pair<CassandraId, Rfc4314Rights>> listRightsForUser(String userName) {
+ public Flux<Pair<CassandraId, Rfc4314Rights>> listRightsForUser(Username userName) {
return cassandraAsyncExecutor.execute(
selectUser.bind()
- .setString(USER_NAME, userName))
+ .setString(USER_NAME, userName.asString()))
.flatMapMany(cassandraUtils::convertToFlux)
.map(Throwing.function(this::toPair));
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskRunner.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskRunner.java
index 4ce86ea..794c2e6 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskRunner.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskRunner.java
@@ -21,6 +21,7 @@ package org.apache.james.mailbox.cassandra.mail.task;
import javax.inject.Inject;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.acl.ACLDiff;
@@ -51,7 +52,7 @@ public class MailboxMergingTaskRunner {
@Inject
public MailboxMergingTaskRunner(MailboxManager mailboxManager, StoreMessageIdManager messageIdManager, CassandraMessageIdDAO cassandraMessageIdDAO, CassandraMailboxDAO mailboxDAO, CassandraUserMailboxRightsDAO rightsDAO, CassandraACLMapper cassandraACLMapper) throws MailboxException {
- this.mailboxSession = mailboxManager.createSystemSession("task");
+ this.mailboxSession = mailboxManager.createSystemSession(Username.of("task"));
this.messageIdManager = messageIdManager;
this.cassandraMessageIdDAO = cassandraMessageIdDAO;
this.mailboxDAO = mailboxDAO;
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/utils/MailboxBaseTupleUtil.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/utils/MailboxBaseTupleUtil.java
index 3e65457..4a1bba8 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/utils/MailboxBaseTupleUtil.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/utils/MailboxBaseTupleUtil.java
@@ -20,6 +20,7 @@
package org.apache.james.mailbox.cassandra.mail.utils;
import org.apache.james.backends.cassandra.init.CassandraTypesProvider;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.cassandra.table.CassandraMailboxTable;
import com.datastax.driver.core.UDTValue;
@@ -31,10 +32,10 @@ public class MailboxBaseTupleUtil {
this.typesProvider = typesProvider;
}
- public UDTValue createMailboxBaseUDT(String namespace, String user) {
+ public UDTValue createMailboxBaseUDT(String namespace, Username user) {
return typesProvider.getDefinedUserType(CassandraMailboxTable.MAILBOX_BASE)
.newValue()
.setString(CassandraMailboxTable.MailboxBase.NAMESPACE, namespace)
- .setString(CassandraMailboxTable.MailboxBase.USER, user);
+ .setString(CassandraMailboxTable.MailboxBase.USER, user.asString());
}
}
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentOwnerDAOTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentOwnerDAOTest.java
index 1ae2c67..820fdd5 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentOwnerDAOTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentOwnerDAOTest.java
@@ -24,9 +24,10 @@ import static org.assertj.core.api.Assertions.assertThat;
import org.apache.james.backends.cassandra.CassandraCluster;
import org.apache.james.backends.cassandra.CassandraClusterExtension;
import org.apache.james.backends.cassandra.CassandraRestartExtension;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.cassandra.modules.CassandraAttachmentModule;
import org.apache.james.mailbox.model.AttachmentId;
-import org.apache.james.mailbox.store.mail.model.Username;
+
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -37,8 +38,8 @@ import reactor.core.publisher.Flux;
@ExtendWith(CassandraRestartExtension.class)
class CassandraAttachmentOwnerDAOTest {
private static final AttachmentId ATTACHMENT_ID = AttachmentId.from("id1");
- private static final Username OWNER_1 = Username.fromRawValue("owner1");
- private static final Username OWNER_2 = Username.fromRawValue("owner2");
+ private static final Username OWNER_1 = Username.of("owner1");
+ private static final Username OWNER_2 = Username.of("owner2");
@RegisterExtension
static CassandraClusterExtension cassandraCluster = new CassandraClusterExtension(CassandraAttachmentModule.MODULE);
@@ -80,7 +81,7 @@ class CassandraAttachmentOwnerDAOTest {
int referenceCountExceedingPaging = 5050;
Flux.range(0, referenceCountExceedingPaging)
- .flatMap(i -> testee.addOwner(ATTACHMENT_ID, Username.fromRawValue("owner" + i)), concurrency)
+ .flatMap(i -> testee.addOwner(ATTACHMENT_ID, Username.of("owner" + i)), concurrency)
.blockLast();
assertThat(testee.retrieveOwners(ATTACHMENT_ID).toIterable())
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraIndexTableHandlerTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraIndexTableHandlerTest.java
index 3a1ddca..d7ff535 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraIndexTableHandlerTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraIndexTableHandlerTest.java
@@ -29,6 +29,7 @@ import org.apache.james.backends.cassandra.CassandraCluster;
import org.apache.james.backends.cassandra.CassandraClusterExtension;
import org.apache.james.backends.cassandra.CassandraRestartExtension;
import org.apache.james.backends.cassandra.components.CassandraModule;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.FlagsBuilder;
import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
@@ -90,7 +91,7 @@ class CassandraIndexTableHandlerTest {
applicableFlagDAO,
deletedMessageDAO);
- mailbox = new Mailbox(MailboxPath.forUser("user", "name"),
+ mailbox = new Mailbox(MailboxPath.forUser(Username.of("user"), "name"),
UID_VALIDITY,
MAILBOX_ID);
}
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxCounterDAOTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxCounterDAOTest.java
index 7aa56b1..a9fae36 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxCounterDAOTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxCounterDAOTest.java
@@ -24,6 +24,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import org.apache.james.backends.cassandra.CassandraCluster;
import org.apache.james.backends.cassandra.CassandraClusterExtension;
import org.apache.james.backends.cassandra.CassandraRestartExtension;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
import org.apache.james.mailbox.cassandra.modules.CassandraMailboxCounterModule;
import org.apache.james.mailbox.model.Mailbox;
@@ -49,7 +50,7 @@ class CassandraMailboxCounterDAOTest {
void setUp(CassandraCluster cassandra) {
testee = new CassandraMailboxCounterDAO(cassandra.getConf());
- mailbox = new Mailbox(MailboxPath.forUser("user", "name"), UID_VALIDITY, MAILBOX_ID);
+ mailbox = new Mailbox(MailboxPath.forUser(Username.of("user"), "name"), UID_VALIDITY, MAILBOX_ID);
}
@Test
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAOTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAOTest.java
index 738b564..7d8cf78 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAOTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAOTest.java
@@ -29,6 +29,7 @@ import org.apache.james.backends.cassandra.CassandraClusterExtension;
import org.apache.james.backends.cassandra.CassandraRestartExtension;
import org.apache.james.backends.cassandra.components.CassandraModule;
import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
import org.apache.james.mailbox.cassandra.modules.CassandraMailboxModule;
@@ -43,7 +44,8 @@ import org.junit.jupiter.api.extension.RegisterExtension;
class CassandraMailboxDAOTest {
private static final int UID_VALIDITY_1 = 145;
private static final int UID_VALIDITY_2 = 147;
- private static final MailboxPath NEW_MAILBOX_PATH = MailboxPath.forUser("user", "xyz");
+ private static final Username USER = Username.of("user");
+ private static final MailboxPath NEW_MAILBOX_PATH = MailboxPath.forUser(USER, "xyz");
private static CassandraId CASSANDRA_ID_1 = CassandraId.timeBased();
private static CassandraId CASSANDRA_ID_2 = CassandraId.timeBased();
@@ -63,10 +65,10 @@ class CassandraMailboxDAOTest {
void setUp(CassandraCluster cassandra) {
testee = new CassandraMailboxDAO(cassandra.getConf(), cassandra.getTypesProvider());
- mailbox1 = new Mailbox(MailboxPath.forUser("user", "abcd"),
+ mailbox1 = new Mailbox(MailboxPath.forUser(USER, "abcd"),
UID_VALIDITY_1,
CASSANDRA_ID_1);
- mailbox2 = new Mailbox(MailboxPath.forUser("user", "defg"),
+ mailbox2 = new Mailbox(MailboxPath.forUser(USER, "defg"),
UID_VALIDITY_2,
CASSANDRA_ID_2);
}
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperConcurrencyTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperConcurrencyTest.java
index 97d71cb..ddfd33a 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperConcurrencyTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperConcurrencyTest.java
@@ -29,6 +29,7 @@ import org.apache.james.backends.cassandra.CassandraClusterExtension;
import org.apache.james.backends.cassandra.CassandraRestartExtension;
import org.apache.james.backends.cassandra.components.CassandraModule;
import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.cassandra.mail.utils.GuiceUtils;
import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
import org.apache.james.mailbox.cassandra.modules.CassandraMailboxModule;
@@ -44,7 +45,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
class CassandraMailboxMapperConcurrencyTest {
private static final int UID_VALIDITY = 52;
- private static final MailboxPath MAILBOX_PATH = MailboxPath.forUser("user", "name");
+ private static final MailboxPath MAILBOX_PATH = MailboxPath.forUser(Username.of("user"), "name");
private static final int THREAD_COUNT = 10;
private static final int OPERATION_COUNT = 10;
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperTest.java
index e408fb7..60e8036 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperTest.java
@@ -31,6 +31,7 @@ import org.apache.james.backends.cassandra.components.CassandraModule;
import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
import org.apache.james.backends.cassandra.utils.CassandraUtils;
import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
import org.apache.james.mailbox.cassandra.modules.CassandraMailboxModule;
@@ -49,7 +50,7 @@ import org.junit.Test;
public class CassandraMailboxMapperTest {
private static final int UID_VALIDITY = 52;
- private static final String USER = "user";
+ private static final Username USER = Username.of("user");
private static final CassandraId MAILBOX_ID = CassandraId.timeBased();
private static final MailboxPath MAILBOX_PATH = MailboxPath.forUser(USER, "name");
private static final Mailbox MAILBOX = new Mailbox(MAILBOX_PATH, UID_VALIDITY, MAILBOX_ID);
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAOTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAOTest.java
index 61e4bc1..68b3351 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAOTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAOTest.java
@@ -28,6 +28,7 @@ import org.apache.james.backends.cassandra.CassandraClusterExtension;
import org.apache.james.backends.cassandra.CassandraRestartExtension;
import org.apache.james.backends.cassandra.components.CassandraModule;
import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
import org.apache.james.mailbox.cassandra.modules.CassandraMailboxModule;
import org.apache.james.mailbox.model.MailboxPath;
@@ -40,8 +41,8 @@ import nl.jqno.equalsverifier.EqualsVerifier;
@ExtendWith(CassandraRestartExtension.class)
public abstract class CassandraMailboxPathDAOTest {
- private static final String USER = "user";
- private static final String OTHER_USER = "other";
+ private static final Username USER = Username.of("user");
+ private static final Username OTHER_USER = Username.of("other");
static final CassandraId INBOX_ID = CassandraId.timeBased();
static final CassandraId OUTBOX_ID = CassandraId.timeBased();
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java
index d1934fd..0e3a48c 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java
@@ -22,6 +22,7 @@ import java.util.List;
import org.apache.james.backends.cassandra.CassandraCluster;
import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxSessionUtil;
import org.apache.james.mailbox.MessageUid;
@@ -49,7 +50,7 @@ public class CassandraMapperProvider implements MapperProvider {
private final CassandraCluster cassandra;
private final MessageUidProvider messageUidProvider;
private final CassandraModSeqProvider cassandraModSeqProvider;
- private final MailboxSession mailboxSession = MailboxSessionUtil.create("benwa");
+ private final MailboxSession mailboxSession = MailboxSessionUtil.create(Username.of("benwa"));
private CassandraMailboxSessionMapperFactory mapperFactory;
public CassandraMapperProvider(CassandraCluster cassandra) {
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
index 7222793..62ce79f 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
@@ -26,6 +26,7 @@ import java.util.List;
import org.apache.james.backends.cassandra.CassandraCluster;
import org.apache.james.backends.cassandra.DockerCassandraRule;
import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxSessionUtil;
import org.apache.james.mailbox.cassandra.CassandraMailboxSessionMapperFactory;
@@ -44,7 +45,7 @@ import com.google.common.collect.ImmutableList;
public class CassandraMessageIdMapperTest extends MessageIdMapperTest {
- private static final MailboxSession MAILBOX_SESSION = MailboxSessionUtil.create("benwa");
+ private static final MailboxSession MAILBOX_SESSION = MailboxSessionUtil.create(Username.of("benwa"));
@Rule public DockerCassandraRule cassandraServer = new DockerCassandraRule().allowRestart();
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProviderTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProviderTest.java
index 33c5d5f..f956fd3 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProviderTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProviderTest.java
@@ -29,6 +29,7 @@ import org.apache.james.backends.cassandra.CassandraCluster;
import org.apache.james.backends.cassandra.CassandraClusterExtension;
import org.apache.james.backends.cassandra.CassandraRestartExtension;
import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
import org.apache.james.mailbox.cassandra.modules.CassandraModSeqModule;
import org.apache.james.mailbox.model.Mailbox;
@@ -55,7 +56,7 @@ class CassandraModSeqProviderTest {
@BeforeEach
void setUp(CassandraCluster cassandra) {
modSeqProvider = new CassandraModSeqProvider(cassandra.getConf(), CassandraConfiguration.DEFAULT_CONFIGURATION);
- MailboxPath path = new MailboxPath("gsoc", "ieugen", "Trash");
+ MailboxPath path = new MailboxPath("gsoc", Username.of("ieugen"), "Trash");
mailbox = new Mailbox(path, 1234);
mailbox.setMailboxId(CASSANDRA_ID);
}
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProviderTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProviderTest.java
index 19586a6..8a3a6a5 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProviderTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProviderTest.java
@@ -30,6 +30,7 @@ import org.apache.james.backends.cassandra.CassandraCluster;
import org.apache.james.backends.cassandra.CassandraClusterExtension;
import org.apache.james.backends.cassandra.CassandraRestartExtension;
import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
import org.apache.james.mailbox.cassandra.modules.CassandraUidModule;
@@ -56,7 +57,7 @@ class CassandraUidProviderTest {
@BeforeEach
void setUp(CassandraCluster cassandra) {
uidProvider = new CassandraUidProvider(cassandra.getConf(), CassandraConfiguration.DEFAULT_CONFIGURATION);
- MailboxPath path = new MailboxPath("gsoc", "ieugen", "Trash");
+ MailboxPath path = new MailboxPath("gsoc", Username.of("ieugen"), "Trash");
mailbox = new Mailbox(path, 1234);
mailbox.setMailboxId(CASSANDRA_ID);
}
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUserMailboxRightsDAOTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUserMailboxRightsDAOTest.java
index a7fc2bd..167d352 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUserMailboxRightsDAOTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUserMailboxRightsDAOTest.java
@@ -24,6 +24,7 @@ import org.apache.james.backends.cassandra.CassandraCluster;
import org.apache.james.backends.cassandra.CassandraClusterExtension;
import org.apache.james.backends.cassandra.CassandraRestartExtension;
import org.apache.james.backends.cassandra.utils.CassandraUtils;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.acl.ACLDiff;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
@@ -39,7 +40,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
@ExtendWith(CassandraRestartExtension.class)
class CassandraUserMailboxRightsDAOTest {
- private static final String USER_NAME = "userName";
+ private static final Username USER_NAME = Username.of("userName");
private static final EntryKey ENTRY_KEY = EntryKey.createUserEntryKey(USER_NAME);
private static final CassandraId MAILBOX_ID = CassandraId.timeBased();
private static final Rfc4314Rights RIGHTS = MailboxACL.FULL_RIGHTS;
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/migration/MailboxPathV2MigrationTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/migration/MailboxPathV2MigrationTest.java
index 6fce3c2..959fda3 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/migration/MailboxPathV2MigrationTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/migration/MailboxPathV2MigrationTest.java
@@ -28,6 +28,7 @@ import org.apache.james.backends.cassandra.components.CassandraModule;
import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
import org.apache.james.backends.cassandra.utils.CassandraUtils;
import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
import org.apache.james.mailbox.cassandra.mail.CassandraACLMapper;
import org.apache.james.mailbox.cassandra.mail.CassandraIdAndPath;
@@ -50,7 +51,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
@ExtendWith(CassandraRestartExtension.class)
class MailboxPathV2MigrationTest {
- private static final MailboxPath MAILBOX_PATH_1 = MailboxPath.forUser("bob", "Important");
+ private static final MailboxPath MAILBOX_PATH_1 = MailboxPath.forUser(Username.of("bob"), "Important");
private static final int UID_VALIDITY_1 = 452;
private static final Mailbox MAILBOX_1 = new Mailbox(MAILBOX_PATH_1, UID_VALIDITY_1);
private static final CassandraId MAILBOX_ID_1 = CassandraId.timeBased();
diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
index a126eb9..670177e 100644
--- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
+++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
@@ -33,6 +33,7 @@ import javax.mail.util.SharedByteArrayInputStream;
import org.apache.james.backends.es.DockerElasticSearchRule;
import org.apache.james.backends.es.ElasticSearchIndexer;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.DefaultMailboxes;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageUid;
@@ -83,7 +84,7 @@ public class ElasticSearchListeningMessageSearchIndexTest {
private static final int BODY_START_OCTET = 100;
private static final TestId MAILBOX_ID = TestId.of(1L);
private static final long MOD_SEQ = 42L;
- private static final String USERNAME = "user";
+ private static final Username USERNAME = Username.of("user");
private static final MessageUid MESSAGE_UID_1 = MessageUid.of(25);
private static final MessageUid MESSAGE_UID_2 = MessageUid.of(26);
private static final MessageUid MESSAGE_UID_3 = MessageUid.of(27);
diff --git a/mailbox/event/json/src/main/scala/org/apache/james/event/json/DTOs.scala b/mailbox/event/json/src/main/scala/org/apache/james/event/json/DTOs.scala
index ec8bea4..9917073 100644
--- a/mailbox/event/json/src/main/scala/org/apache/james/event/json/DTOs.scala
+++ b/mailbox/event/json/src/main/scala/org/apache/james/event/json/DTOs.scala
@@ -24,6 +24,7 @@ import java.util.Date
import javax.mail.Flags.Flag
import javax.mail.{Flags => JavaMailFlags}
+import org.apache.james.core.Username
import org.apache.james.core.quota.QuotaValue
import org.apache.james.event.json.DTOs.SystemFlag.SystemFlag
import org.apache.james.mailbox.acl.{ACLDiff => JavaACLDiff}
@@ -59,7 +60,7 @@ object DTOs {
def toJava: JavaACLDiff = new JavaACLDiff(new MailboxACL(oldACL.asJava), new MailboxACL(newACL.asJava))
}
- case class MailboxPath(namespace: Option[String], user: Option[String], name: String) {
+ case class MailboxPath(namespace: Option[String], user: Option[Username], name: String) {
def toJava: JavaMailboxPath = new JavaMailboxPath(namespace.orNull, user.orNull, name)
}
diff --git a/mailbox/event/json/src/test/java/org/apache/james/event/json/AddedSerializationTest.java b/mailbox/event/json/src/test/java/org/apache/james/event/json/AddedSerializationTest.java
index 087bf37..0bad42a 100644
--- a/mailbox/event/json/src/test/java/org/apache/james/event/json/AddedSerializationTest.java
+++ b/mailbox/event/json/src/test/java/org/apache/james/event/json/AddedSerializationTest.java
@@ -54,7 +54,7 @@ class AddedSerializationTest {
private static final MailboxSession.SessionId SESSION_ID = MailboxSession.SessionId.of(42);
private static final MailboxId MAILBOX_ID = TestId.of(18);
private static final String MAILBOX_NAME = "mailboxName";
- private static final MailboxPath MAILBOX_PATH = new MailboxPath(MailboxConstants.USER_NAMESPACE, "user", MAILBOX_NAME);
+ private static final MailboxPath MAILBOX_PATH = new MailboxPath(MailboxConstants.USER_NAMESPACE, Username.of("user"), MAILBOX_NAME);
private static final MessageUid MESSAGE_UID = MessageUid.of(123456);
private static final Instant INSTANT = Instant.parse("2018-12-14T09:41:51.541Z");
private static final TestMessageId MESSAGE_ID = TestMessageId.of(42);
diff --git a/mailbox/event/json/src/test/java/org/apache/james/event/json/ExpungedSerializationTest.java b/mailbox/event/json/src/test/java/org/apache/james/event/json/ExpungedSerializationTest.java
index 4b190a2..921fd07 100644
--- a/mailbox/event/json/src/test/java/org/apache/james/event/json/ExpungedSerializationTest.java
+++ b/mailbox/event/json/src/test/java/org/apache/james/event/json/ExpungedSerializationTest.java
@@ -54,7 +54,7 @@ class ExpungedSerializationTest {
private static final MailboxSession.SessionId SESSION_ID = MailboxSession.SessionId.of(42);
private static final MailboxId MAILBOX_ID = TestId.of(18);
private static final String MAILBOX_NAME = "mailboxName";
- private static final MailboxPath MAILBOX_PATH = new MailboxPath(MailboxConstants.USER_NAMESPACE, "user", MAILBOX_NAME);
+ private static final MailboxPath MAILBOX_PATH = new MailboxPath(MailboxConstants.USER_NAMESPACE, Username.of("user"), MAILBOX_NAME);
private static final MessageUid MESSAGE_UID = MessageUid.of(123456);
private static final Instant INSTANT = Instant.parse("2018-12-14T09:41:51.541Z");
private static final TestMessageId MESSAGE_ID = TestMessageId.of(42);
diff --git a/mailbox/event/json/src/test/java/org/apache/james/event/json/FlagsUpdatedSerializationTest.java b/mailbox/event/json/src/test/java/org/apache/james/event/json/FlagsUpdatedSerializationTest.java
index 90e5aa9..3140c62 100644
--- a/mailbox/event/json/src/test/java/org/apache/james/event/json/FlagsUpdatedSerializationTest.java
+++ b/mailbox/event/json/src/test/java/org/apache/james/event/json/FlagsUpdatedSerializationTest.java
@@ -53,7 +53,7 @@ class FlagsUpdatedSerializationTest {
private static final MailboxSession.SessionId SESSION_ID = MailboxSession.SessionId.of(42);
private static final MailboxId MAILBOX_ID = TestId.of(18);
private static final String MAILBOX_NAME = "mailboxName";
- private static final MailboxPath MAILBOX_PATH = new MailboxPath(MailboxConstants.USER_NAMESPACE, "user", MAILBOX_NAME);
+ private static final MailboxPath MAILBOX_PATH = new MailboxPath(MailboxConstants.USER_NAMESPACE, Username.of("user"), MAILBOX_NAME);
private static final MessageUid MESSAGE_UID_1 = MessageUid.of(123456);
private static final MessageUid MESSAGE_UID_2 = MessageUid.of(654321);
diff --git a/mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxACLUpdatedEventSerializationTest.java b/mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxACLUpdatedEventSerializationTest.java
index 85768d3..d80c0ec 100644
--- a/mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxACLUpdatedEventSerializationTest.java
+++ b/mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxACLUpdatedEventSerializationTest.java
@@ -45,13 +45,13 @@ class MailboxACLUpdatedEventSerializationTest {
private static final MailboxACL.Rfc4314Rights RIGHTS = new MailboxACL.Rfc4314Rights(MailboxACL.Right.Administer, MailboxACL.Right.Read);
private static final MailboxACL MAILBOX_ACL = new MailboxACL(
new MailboxACL.Entry(ENTRY_KEY, RIGHTS),
- new MailboxACL.Entry(MailboxACL.EntryKey.createUserEntryKey("alice", true),
+ new MailboxACL.Entry(MailboxACL.EntryKey.createUserEntryKey(Username.of("alice"), true),
new MailboxACL.Rfc4314Rights(MailboxACL.Right.Insert)));
private static final MailboxListener.MailboxACLUpdated MAILBOX_ACL_UPDATED = new MailboxListener.MailboxACLUpdated(
MailboxSession.SessionId.of(6),
USERNAME,
- new MailboxPath(MailboxConstants.USER_NAMESPACE, "bob", "mailboxName"),
+ new MailboxPath(MailboxConstants.USER_NAMESPACE, Username.of("bob"), "mailboxName"),
ACLDiff.computeDiff(MailboxACL.EMPTY, MAILBOX_ACL),
TestId.of(23),
EVENT_ID);
diff --git a/mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxAddedSerializationTest.java b/mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxAddedSerializationTest.java
index ae77ee5..082237d 100644
--- a/mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxAddedSerializationTest.java
+++ b/mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxAddedSerializationTest.java
@@ -41,7 +41,7 @@ class MailboxAddedSerializationTest {
private static final MailboxListener.MailboxAdded EVENT_1 = new MailboxListener.MailboxAdded(
MailboxSession.SessionId.of(42),
USERNAME,
- new MailboxPath(MailboxConstants.USER_NAMESPACE, "bob", "mailboxName"),
+ new MailboxPath(MailboxConstants.USER_NAMESPACE, Username.of("bob"), "mailboxName"),
TestId.of(18),
EVENT_ID);
private static final String JSON_1 = "{" +
diff --git a/mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxDeletionSerializationTest.java b/mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxDeletionSerializationTest.java
index 00ac67d..e5d0e95 100644
--- a/mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxDeletionSerializationTest.java
+++ b/mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxDeletionSerializationTest.java
@@ -46,7 +46,7 @@ class MailboxDeletionSerializationTest {
private static final MailboxSession.SessionId SESSION_ID = MailboxSession.SessionId.of(3652);
private static final Username USERNAME = Username.of("user");
- private static final MailboxPath MAILBOX_PATH = new MailboxPath(USER_NAMESPACE, USERNAME.asString(), "mailboxName");
+ private static final MailboxPath MAILBOX_PATH = new MailboxPath(USER_NAMESPACE, USERNAME, "mailboxName");
private static final MailboxId MAILBOX_ID = TestId.of(789);
private static final QuotaRoot QUOTA_ROOT = QuotaRoot.quotaRoot("#private&user@domain", Optional.of(Domain.of("domain")));
private static final QuotaCount DELETED_MESSAGE_COUNT = QuotaCount.count(60);
diff --git a/mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxRenamedSerializationTest.java b/mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxRenamedSerializationTest.java
index 4565fa1..4de9225 100644
--- a/mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxRenamedSerializationTest.java
+++ b/mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxRenamedSerializationTest.java
@@ -41,9 +41,9 @@ class MailboxRenamedSerializationTest {
private static final Username DEFAULT_USERNAME = Username.of("user");
private static final String OLD_MAILBOX_NAME = "oldMailboxName";
- private static final MailboxPath DEFAULT_OLD_MAILBOX_PATH = new MailboxPath(USER_NAMESPACE, DEFAULT_USERNAME.asString(), OLD_MAILBOX_NAME);
+ private static final MailboxPath DEFAULT_OLD_MAILBOX_PATH = new MailboxPath(USER_NAMESPACE, DEFAULT_USERNAME, OLD_MAILBOX_NAME);
private static final String NEW_MAILBOX_NAME = "newMailboxName";
- private static final MailboxPath DEFAULT_NEW_MAILBOX_PATH = new MailboxPath(USER_NAMESPACE, DEFAULT_USERNAME.asString(), NEW_MAILBOX_NAME);
+ private static final MailboxPath DEFAULT_NEW_MAILBOX_PATH = new MailboxPath(USER_NAMESPACE, DEFAULT_USERNAME, NEW_MAILBOX_NAME);
private static final MailboxSession.SessionId DEFAULT_SESSION_ID = MailboxSession.SessionId.of(123456789);
private static final MailboxId DEFAULT_MAILBOX_ID = TestId.of(123456);
private static final MailboxListener.MailboxRenamed DEFAULT_MAILBOX_RENAMED_EVENT = new MailboxListener.MailboxRenamed(
diff --git a/mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/MailboxPathTest.java b/mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/MailboxPathTest.java
index a35e664..33d28ed 100644
--- a/mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/MailboxPathTest.java
+++ b/mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/MailboxPathTest.java
@@ -23,6 +23,7 @@ import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson;
import static org.apache.james.event.json.SerializerFixture.DTO_JSON_SERIALIZE;
import static org.assertj.core.api.Assertions.assertThat;
+import org.apache.james.core.Username;
import org.apache.james.event.json.DTOs;
import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.mailbox.model.MailboxPath;
@@ -33,7 +34,8 @@ import play.api.libs.json.Json;
class MailboxPathTest {
private static final String MAILBOX_NAME = "mailboxName";
- private static final MailboxPath MAILBOX_PATH = new MailboxPath(MailboxConstants.USER_NAMESPACE, "user", MAILBOX_NAME);
+ public static final Username USER = Username.of("user");
+ private static final MailboxPath MAILBOX_PATH = new MailboxPath(MailboxConstants.USER_NAMESPACE, USER, MAILBOX_NAME);
@Test
void mailboxPathShouldBeWellSerialized() {
@@ -49,7 +51,7 @@ class MailboxPathTest {
@Test
void mailboxPathWithEmptyNamespaceShouldBeWellSerialized() {
assertThatJson(DTO_JSON_SERIALIZE.mailboxPathWrites().writes(DTOs.MailboxPath$.MODULE$.fromJava(
- new MailboxPath("", "user", MAILBOX_NAME))).toString())
+ new MailboxPath("", USER, MAILBOX_NAME))).toString())
.isEqualTo(
"{" +
" \"namespace\":\"#private\"," +
@@ -66,7 +68,7 @@ class MailboxPathTest {
" \"name\":\"mailboxName\"" +
"}")).get())
.isEqualTo(DTOs.MailboxPath$.MODULE$.fromJava(
- new MailboxPath(MailboxConstants.USER_NAMESPACE, "user", MAILBOX_NAME)));
+ new MailboxPath(MailboxConstants.USER_NAMESPACE, USER, MAILBOX_NAME)));
}
@Test
@@ -76,7 +78,7 @@ class MailboxPathTest {
" \"name\":\"mailboxName\"" +
"}"))
.get().toJava())
- .isEqualTo(new MailboxPath(MailboxConstants.USER_NAMESPACE, "user", MAILBOX_NAME));
+ .isEqualTo(new MailboxPath(MailboxConstants.USER_NAMESPACE, USER, MAILBOX_NAME));
}
@Test
@@ -87,7 +89,7 @@ class MailboxPathTest {
" \"name\":\"mailboxName\"" +
"}"))
.get().toJava())
- .isEqualTo(new MailboxPath(MailboxConstants.USER_NAMESPACE, "user", MAILBOX_NAME));
+ .isEqualTo(new MailboxPath(MailboxConstants.USER_NAMESPACE, USER, MAILBOX_NAME));
}
@Test
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
index 43a9295..29114b5 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
@@ -28,6 +28,7 @@ import javax.persistence.PersistenceException;
import javax.persistence.RollbackException;
import javax.persistence.TypedQuery;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.acl.ACLDiff;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MailboxExistsException;
@@ -107,7 +108,7 @@ public class JPAMailboxMapper extends JPATransactionalMapper implements MailboxM
try {
JPAMailbox result = loadJpaMailbox(mailbox.getMailboxId());
result.setNamespace(mailbox.getNamespace());
- result.setUser(mailbox.getUser());
+ result.setUser(mailbox.getUser().asString());
result.setName(mailbox.getName());
return result;
} catch (MailboxNotFoundException e) {
@@ -205,11 +206,11 @@ public class JPAMailboxMapper extends JPATransactionalMapper implements MailboxM
}
}
- private TypedQuery<JPAMailbox> findMailboxWithPathLikeTypedQuery(String namespace, String user, String pathLike) {
+ private TypedQuery<JPAMailbox> findMailboxWithPathLikeTypedQuery(String namespace, Username username, String pathLike) {
return getEntityManager().createNamedQuery("findMailboxWithNameLikeWithUser", JPAMailbox.class)
.setParameter("nameParam", pathLike)
.setParameter("namespaceParam", namespace)
- .setParameter("userParam", user);
+ .setParameter("userParam", username.asString());
}
public void deleteAllMemberships() throws MailboxException {
@@ -232,7 +233,14 @@ public class JPAMailboxMapper extends JPATransactionalMapper implements MailboxM
public boolean hasChildren(Mailbox mailbox, char delimiter) throws MailboxException, MailboxNotFoundException {
final String name = mailbox.getName() + delimiter + SQL_WILDCARD_CHAR;
final Long numberOfChildMailboxes;
- numberOfChildMailboxes = (Long) getEntityManager().createNamedQuery("countMailboxesWithNameLikeWithUser").setParameter("nameParam", name).setParameter("namespaceParam", mailbox.getNamespace()).setParameter("userParam", mailbox.getUser()).getSingleResult();
+
+ numberOfChildMailboxes = (Long) getEntityManager()
+ .createNamedQuery("countMailboxesWithNameLikeWithUser")
+ .setParameter("nameParam", name)
+ .setParameter("namespaceParam", mailbox.getNamespace())
+ .setParameter("userParam", mailbox.getUser().asString())
+ .getSingleResult();
+
return numberOfChildMailboxes != null && numberOfChildMailboxes > 0;
}
@@ -264,7 +272,7 @@ public class JPAMailboxMapper extends JPATransactionalMapper implements MailboxM
}
@Override
- public List<Mailbox> findNonPersonalMailboxes(String userName, Right right) throws MailboxException {
+ public List<Mailbox> findNonPersonalMailboxes(Username userName, Right right) throws MailboxException {
return ImmutableList.of();
}
}
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailbox.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailbox.java
index 7feb8e6..8ff4992 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailbox.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailbox.java
@@ -27,6 +27,7 @@ import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.jpa.JPAId;
import org.apache.james.mailbox.model.Mailbox;
import org.apache.james.mailbox.model.MailboxId;
@@ -107,7 +108,7 @@ public class JPAMailbox {
public JPAMailbox(MailboxPath path, long uidValidity) {
this.name = path.getName();
- this.user = path.getUser();
+ this.user = path.getUser().asString();
this.namespace = path.getNamespace();
this.uidValidity = uidValidity;
}
@@ -137,7 +138,7 @@ public class JPAMailbox {
}
public MailboxPath generateAssociatedPath() {
- return new MailboxPath(namespace, user, name);
+ return new MailboxPath(namespace, Username.of(user), name);
}
public void setMailboxId(long mailboxId) {
diff --git a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JPAMapperProvider.java b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JPAMapperProvider.java
index 775dfc1..b35a402 100644
--- a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JPAMapperProvider.java
+++ b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JPAMapperProvider.java
@@ -26,6 +26,7 @@ import javax.persistence.EntityManagerFactory;
import org.apache.commons.lang3.NotImplementedException;
import org.apache.james.backends.jpa.JpaTestCluster;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSessionUtil;
import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.exception.MailboxException;
@@ -61,7 +62,7 @@ public class JPAMapperProvider implements MapperProvider {
EntityManagerFactory entityManagerFactory = jpaTestCluster.getEntityManagerFactory();
JVMMailboxPathLocker locker = new JVMMailboxPathLocker();
- JPAMessageMapper messageMapper = new JPAMessageMapper(MailboxSessionUtil.create("benwa"),
+ JPAMessageMapper messageMapper = new JPAMessageMapper(MailboxSessionUtil.create(Username.of("benwa")),
new JPAUidProvider(locker, entityManagerFactory),
new JPAModSeqProvider(locker, entityManagerFactory),
entityManagerFactory);
diff --git a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java
index 45c8706..4285f59 100644
--- a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java
+++ b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java
@@ -22,6 +22,7 @@ package org.apache.james.mailbox.jpa.mail;
import java.util.List;
import org.apache.commons.lang3.NotImplementedException;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.acl.ACLDiff;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MailboxNotFoundException;
@@ -97,7 +98,7 @@ public class TransactionalMailboxMapper implements MailboxMapper {
}
@Override
- public List<Mailbox> findNonPersonalMailboxes(String userName, Right right) throws MailboxException {
+ public List<Mailbox> findNonPersonalMailboxes(Username userName, Right right) throws MailboxException {
return wrapped.findNonPersonalMailboxes(userName, right);
}
diff --git a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java
index d407a8e..69e28c6 100644
--- a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java
+++ b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java
@@ -32,6 +32,7 @@ import java.util.stream.Stream;
import javax.mail.Flags;
import javax.mail.Flags.Flag;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxSessionUtil;
import org.apache.james.mailbox.MessageUid;
@@ -57,11 +58,12 @@ import com.google.common.collect.ImmutableList;
public class LuceneMailboxMessageSearchIndexTest {
public static final long LIMIT = 100L;
+ private static final Username BOB = Username.of("bob");
private LuceneMessageSearchIndex index;
- private Mailbox mailbox = new Mailbox(MailboxPath.forUser("bob", "box"), 18, TestId.of(0));
- private Mailbox mailbox2 = new Mailbox(MailboxPath.forUser("bob", "box"), 19, TestId.of(1));
- private Mailbox mailbox3 = new Mailbox(MailboxPath.forUser("bob", "box"), 12, TestId.of(2));
+ private Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, "box"), 18, TestId.of(0));
+ private Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(BOB, "box"), 19, TestId.of(1));
+ private Mailbox mailbox3 = new Mailbox(MailboxPath.forUser(BOB, "box"), 12, TestId.of(2));
private MailboxSession session;
private static final String FROM_ADDRESS = "Harry <ha...@example.org>";
@@ -93,7 +95,7 @@ public class LuceneMailboxMessageSearchIndexTest {
@Before
public void setUp() throws Exception {
- session = MailboxSessionUtil.create("username");
+ session = MailboxSessionUtil.create(Username.of("username"));
TestMessageId.Factory factory = new TestMessageId.Factory();
id1 = factory.generate();
id2 = factory.generate();
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirStore.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirStore.java
index b23f917..fe07f53 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirStore.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirStore.java
@@ -24,6 +24,7 @@ import java.util.Locale;
import java.util.Optional;
import org.apache.commons.lang3.NotImplementedException;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxPathLocker;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageUid;
@@ -96,7 +97,7 @@ public class MaildirStore implements UidProvider, ModSeqProvider {
* @return The Mailbox object populated with data from the file system
* @throws MailboxException If the mailbox folder doesn't exist or can't be read
*/
- public Mailbox loadMailbox(MailboxSession session, File root, String namespace, String user, String folderName) throws MailboxException {
+ public Mailbox loadMailbox(MailboxSession session, File root, String namespace, Username user, String folderName) throws MailboxException {
String mailboxName = getMailboxNameFromFolderName(folderName);
return loadMailbox(session, new File(root, folderName), new MailboxPath(namespace, user, mailboxName));
}
@@ -143,10 +144,10 @@ public class MaildirStore implements UidProvider, ModSeqProvider {
* @param user The user to get the root for.
* @return The name of the folder which contains the specified user's mailbox
*/
- public String userRoot(String user) {
- String path = maildirLocation.replace(PATH_FULLUSER, user);
- String[] userParts = user.split("@");
- String userName = user;
+ public String userRoot(Username user) {
+ String userName = user.asString();
+ String path = maildirLocation.replace(PATH_FULLUSER, userName);
+ String[] userParts = userName.split("@");
if (userParts.length == 2) {
userName = userParts[0];
// At least the domain part should not handled in a case-sensitive manner
@@ -163,7 +164,7 @@ public class MaildirStore implements UidProvider, ModSeqProvider {
* @return A File object referencing the main maildir folder
* @throws MailboxException If the folder does not exist or is no directory
*/
- public File getMailboxRootForUser(String user) throws MailboxException {
+ public File getMailboxRootForUser(Username user) throws MailboxException {
String path = userRoot(user);
File root = new File(path);
if (!root.isDirectory()) {
@@ -214,7 +215,7 @@ public class MaildirStore implements UidProvider, ModSeqProvider {
* @param name The name of the mailbox
* @return absolute name
*/
- public String getFolderName(String namespace, String user, String name) {
+ public String getFolderName(String namespace, Username user, String name) {
String root = userRoot(user);
// if INBOX => location == maildirLocation
if (name.equals(MailboxConstants.INBOX)) {
@@ -235,7 +236,7 @@ public class MaildirStore implements UidProvider, ModSeqProvider {
* @return The absolute path to the folder containing the mailbox
*/
public String getFolderName(Mailbox mailbox) {
- return getFolderName(mailbox.getNamespace(), mailbox.getUser(), mailbox.getName());
+ return getFolderName(mailbox.generateAssociatedPath());
}
/**
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
index fe75ff1..9e0510f 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
@@ -27,6 +27,7 @@ import java.util.Optional;
import java.util.regex.Pattern;
import org.apache.commons.io.FileUtils;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.acl.ACLDiff;
import org.apache.james.mailbox.exception.MailboxException;
@@ -292,7 +293,7 @@ public class MaildirMailboxMapper extends NonTransactionalMapper implements Mail
}
// Special case for INBOX: Let's use the user's folder.
- MailboxPath inboxMailboxPath = MailboxPath.forUser(userName, MailboxConstants.INBOX);
+ MailboxPath inboxMailboxPath = MailboxPath.forUser(Username.of(userName), MailboxConstants.INBOX);
mailboxList.add(maildirStore.loadMailbox(session, inboxMailboxPath));
// List all INBOX sub folders.
@@ -303,7 +304,7 @@ public class MaildirMailboxMapper extends NonTransactionalMapper implements Mail
MailboxPath mailboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE,
- userName,
+ Username.of(userName),
mailbox.getName().substring(1));
mailboxList.add(maildirStore.loadMailbox(session, mailboxPath));
@@ -333,7 +334,7 @@ public class MaildirMailboxMapper extends NonTransactionalMapper implements Mail
}
@Override
- public List<Mailbox> findNonPersonalMailboxes(String userName, Right right) throws MailboxException {
+ public List<Mailbox> findNonPersonalMailboxes(Username userName, Right right) throws MailboxException {
return ImmutableList.of();
}
}
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/user/MaildirSubscriptionMapper.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/user/MaildirSubscriptionMapper.java
index e06901a..55fceb3 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/user/MaildirSubscriptionMapper.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/user/MaildirSubscriptionMapper.java
@@ -29,6 +29,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Set;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.SubscriptionException;
import org.apache.james.mailbox.maildir.MaildirStore;
import org.apache.james.mailbox.store.transaction.NonTransactionalMapper;
@@ -57,7 +58,7 @@ public class MaildirSubscriptionMapper extends NonTransactionalMapper implements
boolean changed = subscriptionNames.size() != newSubscriptions.size();
if (changed) {
try {
- writeSubscriptions(new File(store.userRoot(subscription.getUser())), newSubscriptions);
+ writeSubscriptions(new File(store.userRoot(Username.of(subscription.getUser()))), newSubscriptions);
} catch (IOException e) {
throw new SubscriptionException(e);
}
@@ -74,7 +75,7 @@ public class MaildirSubscriptionMapper extends NonTransactionalMapper implements
@Override
public Subscription findMailboxSubscriptionForUser(String user, String mailbox) throws SubscriptionException {
- File userRoot = new File(store.userRoot(user));
+ File userRoot = new File(store.userRoot(Username.of(user)));
Set<String> subscriptionNames;
try {
subscriptionNames = readSubscriptions(userRoot);
@@ -98,7 +99,7 @@ public class MaildirSubscriptionMapper extends NonTransactionalMapper implements
boolean changed = subscriptionNames.size() != newSubscriptions.size();
if (changed) {
try {
- writeSubscriptions(new File(store.userRoot(subscription.getUser())), newSubscriptions);
+ writeSubscriptions(new File(store.userRoot(Username.of(subscription.getUser()))), newSubscriptions);
} catch (IOException e) {
throw new SubscriptionException(e);
}
@@ -117,7 +118,7 @@ public class MaildirSubscriptionMapper extends NonTransactionalMapper implements
* @return A Set of names of subscribed mailboxes of the user
*/
private Set<String> readSubscriptionsForUser(String user) throws SubscriptionException {
- File userRoot = new File(store.userRoot(user));
+ File userRoot = new File(store.userRoot(Username.of(user)));
try {
return readSubscriptions(userRoot);
} catch (IOException e) {
diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAttachmentMapper.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAttachmentMapper.java
index e97e65f..54d040c 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAttachmentMapper.java
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAttachmentMapper.java
@@ -23,13 +23,13 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.AttachmentNotFoundException;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.Attachment;
import org.apache.james.mailbox.model.AttachmentId;
import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mailbox.store.mail.AttachmentMapper;
-import org.apache.james.mailbox.store.mail.model.Username;
import com.google.common.base.Preconditions;
import com.google.common.collect.HashMultimap;
diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
index 3c9fceb..748e0ff 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
@@ -24,6 +24,7 @@ import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicLong;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.acl.ACLDiff;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MailboxExistsException;
@@ -155,14 +156,14 @@ public class InMemoryMailboxMapper implements MailboxMapper {
}
@Override
- public List<Mailbox> findNonPersonalMailboxes(String userName, Right right) throws MailboxException {
+ public List<Mailbox> findNonPersonalMailboxes(Username userName, Right right) throws MailboxException {
return mailboxesByPath.values()
.stream()
.filter(mailbox -> hasRightOn(mailbox, userName, right))
.collect(Guavate.toImmutableList());
}
- private Boolean hasRightOn(Mailbox mailbox, String userName, Right right) {
+ private Boolean hasRightOn(Mailbox mailbox, Username userName, Right right) {
return Optional.ofNullable(
mailbox.getACL()
.ofPositiveNameType(NameType.user)
diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java
index 85d914d..02ef7b6 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java
@@ -24,6 +24,7 @@ import java.util.concurrent.atomic.AtomicLong;
import javax.inject.Inject;
+import org.apache.james.core.Username;
import org.apache.james.core.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.mailbox.exception.MailboxException;
@@ -46,7 +47,7 @@ public class InMemoryCurrentQuotaManager implements StoreCurrentQuotaManager {
this.quotaCache = CacheBuilder.newBuilder().build(new CacheLoader<QuotaRoot, Entry>() {
@Override
public Entry load(QuotaRoot quotaRoot) throws Exception {
- return new Entry(quotaCalculator.recalculateCurrentQuotas(quotaRoot, sessionProvider.createSystemSession(quotaRoot.getValue())));
+ return new Entry(quotaCalculator.recalculateCurrentQuotas(quotaRoot, sessionProvider.createSystemSession(Username.of(quotaRoot.getValue()))));
}
});
}
diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java
index 765751c..a15ecd1 100644
--- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java
+++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java
@@ -22,6 +22,7 @@ package org.apache.james.mailbox.inmemory.mail;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxSessionUtil;
import org.apache.james.mailbox.MessageUid;
@@ -42,7 +43,8 @@ import com.google.common.collect.ImmutableList;
public class InMemoryMapperProvider implements MapperProvider {
- private static final MailboxSession MAILBOX_SESSION = MailboxSessionUtil.create("user");
+ private static final Username USER = Username.of("user");
+ private static final MailboxSession MAILBOX_SESSION = MailboxSessionUtil.create(USER);
private final MessageId.Factory messageIdFactory;
private final MessageUidProvider messageUidProvider;
@@ -62,7 +64,7 @@ public class InMemoryMapperProvider implements MapperProvider {
@Override
public MessageMapper createMessageMapper() throws MailboxException {
- return inMemoryMailboxSessionMapperFactory.createMessageMapper(MailboxSessionUtil.create("user"));
+ return inMemoryMailboxSessionMapperFactory.createMessageMapper(MailboxSessionUtil.create(USER));
}
@Override
diff --git a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessageVaultHook.java b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessageVaultHook.java
index 43b5910..36b60e9 100644
--- a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessageVaultHook.java
+++ b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessageVaultHook.java
@@ -117,7 +117,7 @@ public class DeletedMessageVaultHook implements PreDeletionHook {
DeletedMessageConverter deletedMessageConverter,
MailboxSessionMapperFactory mapperFactory,
Clock clock) {
- this.session = sessionProvider.createSystemSession(getClass().getName());
+ this.session = sessionProvider.createSystemSession(Username.of(getClass().getName()));
this.deletedMessageVault = deletedMessageVault;
this.deletedMessageConverter = deletedMessageConverter;
this.mapperFactory = mapperFactory;
@@ -164,8 +164,8 @@ public class DeletedMessageVaultHook implements PreDeletionHook {
}
private Username retrieveMailboxUser(MailboxId mailboxId) throws MailboxException {
- return Username.of(mapperFactory.getMailboxMapper(session)
+ return mapperFactory.getMailboxMapper(session)
.findMailboxById(mailboxId)
- .getUser());
+ .getUser();
}
}
\ No newline at end of file
diff --git a/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageVaultHookTest.java b/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageVaultHookTest.java
index bbabc89..bfe285c 100644
--- a/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageVaultHookTest.java
+++ b/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageVaultHookTest.java
@@ -71,8 +71,8 @@ class DeletedMessageVaultHookTest {
private static final Username BOB = Username.of(BOB_ADDRESS);
private static final String MESSAGE_BODY = "testmail";
- private static final MailboxPath MAILBOX_ALICE_ONE = MailboxPath.forUser(ALICE_ADDRESS, "ALICE_ONE");
- private static final MailboxPath MAILBOX_BOB_ONE = MailboxPath.forUser(BOB_ADDRESS, "BOB_ONE");
+ private static final MailboxPath MAILBOX_ALICE_ONE = MailboxPath.forUser(ALICE, "ALICE_ONE");
+ private static final MailboxPath MAILBOX_BOB_ONE = MailboxPath.forUser(BOB, "BOB_ONE");
private MailboxManager mailboxManager;
private MessageIdManager messageIdManager;
@@ -138,8 +138,8 @@ class DeletedMessageVaultHookTest {
searchQuery = new SearchQuery();
searchQuery.andCriteria(SearchQuery.internalDateOn(INTERNAL_DATE, SearchQuery.DateResolution.Second));
- aliceSession = mailboxManager.createSystemSession(ALICE_ADDRESS);
- bobSession = mailboxManager.createSystemSession(BOB_ADDRESS);
+ aliceSession = mailboxManager.createSystemSession(ALICE);
+ bobSession = mailboxManager.createSystemSession(BOB);
}
@Test
@@ -164,7 +164,7 @@ class DeletedMessageVaultHookTest {
mailboxManager.setRights(MAILBOX_ALICE_ONE,
MailboxACL.EMPTY.apply(MailboxACL.command()
- .forUser(BOB_ADDRESS)
+ .forUser(BOB)
.rights(MailboxACL.Right.Lookup, MailboxACL.Right.Read, MailboxACL.Right.DeleteMessages, MailboxACL.Right.PerformExpunge)
.asAddition()),
aliceSession);
@@ -188,7 +188,7 @@ class DeletedMessageVaultHookTest {
mailboxManager.setRights(MAILBOX_ALICE_ONE,
MailboxACL.EMPTY.apply(MailboxACL.command()
- .forUser(BOB_ADDRESS)
+ .forUser(BOB)
.rights(MailboxACL.Right.Lookup, MailboxACL.Right.Read, MailboxACL.Right.DeleteMessages, MailboxACL.Right.PerformExpunge)
.asAddition()),
aliceSession);
@@ -213,7 +213,7 @@ class DeletedMessageVaultHookTest {
mailboxManager.setRights(MAILBOX_ALICE_ONE,
MailboxACL.EMPTY.apply(MailboxACL.command()
- .forUser(BOB_ADDRESS)
+ .forUser(BOB)
.rights(MailboxACL.Right.Lookup, MailboxACL.Right.Read, MailboxACL.Right.DeleteMessages, MailboxACL.Right.PerformExpunge)
.asAddition()),
aliceSession);
@@ -239,7 +239,7 @@ class DeletedMessageVaultHookTest {
mailboxManager.setRights(MAILBOX_ALICE_ONE,
MailboxACL.EMPTY.apply(MailboxACL.command()
- .forUser(BOB_ADDRESS)
+ .forUser(BOB)
.rights(MailboxACL.Right.Lookup, MailboxACL.Right.Read, MailboxACL.Right.DeleteMessages, MailboxACL.Right.PerformExpunge)
.asAddition()),
aliceSession);
@@ -263,7 +263,7 @@ class DeletedMessageVaultHookTest {
mailboxManager.setRights(MAILBOX_ALICE_ONE,
MailboxACL.EMPTY.apply(MailboxACL.command()
- .forUser(BOB_ADDRESS)
+ .forUser(BOB)
.rights(MailboxACL.Right.Lookup, MailboxACL.Right.Read, MailboxACL.Right.DeleteMessages, MailboxACL.Right.PerformExpunge)
.asAddition()),
aliceSession);
@@ -289,7 +289,7 @@ class DeletedMessageVaultHookTest {
mailboxManager.setRights(MAILBOX_ALICE_ONE,
MailboxACL.EMPTY.apply(MailboxACL.command()
- .forUser(BOB_ADDRESS)
+ .forUser(BOB)
.rights(MailboxACL.Right.Lookup, MailboxACL.Right.Read, MailboxACL.Right.DeleteMessages, MailboxACL.Right.PerformExpunge)
.asAddition()),
aliceSession);
diff --git a/mailbox/plugin/quota-search-elasticsearch/src/test/java/org/apache/james/quota/search/elasticsearch/ElasticSearchQuotaSearcherTest.java b/mailbox/plugin/quota-search-elasticsearch/src/test/java/org/apache/james/quota/search/elasticsearch/ElasticSearchQuotaSearcherTest.java
index 0209a3b..373a069 100644
--- a/mailbox/plugin/quota-search-elasticsearch/src/test/java/org/apache/james/quota/search/elasticsearch/ElasticSearchQuotaSearcherTest.java
+++ b/mailbox/plugin/quota-search-elasticsearch/src/test/java/org/apache/james/quota/search/elasticsearch/ElasticSearchQuotaSearcherTest.java
@@ -79,7 +79,7 @@ class ElasticSearchQuotaSearcherTest implements QuotaSearcherContract {
private void provisionUser(QuotaSearchTestSystem testSystem, Username username) {
try {
- testSystem.getUsersRepository().addUser(username.asString(), PASSWORD);
+ testSystem.getUsersRepository().addUser(username, PASSWORD);
appendMessage(testSystem, username, withSize(49));
} catch (Exception e) {
throw new RuntimeException(e);
diff --git a/mailbox/plugin/quota-search-scanning/src/main/java/org/apache/james/quota/search/scanning/ScanningQuotaSearcher.java b/mailbox/plugin/quota-search-scanning/src/main/java/org/apache/james/quota/search/scanning/ScanningQuotaSearcher.java
index 6d49985..1226302 100644
--- a/mailbox/plugin/quota-search-scanning/src/main/java/org/apache/james/quota/search/scanning/ScanningQuotaSearcher.java
+++ b/mailbox/plugin/quota-search-scanning/src/main/java/org/apache/james/quota/search/scanning/ScanningQuotaSearcher.java
@@ -49,7 +49,6 @@ public class ScanningQuotaSearcher implements QuotaSearcher {
@Override
public List<Username> search(QuotaQuery query) {
Stream<Username> results = Iterators.toStream(listUsers())
- .map(Username::of)
.filter(clauseConverter.andToPredicate(query.getClause()))
.sorted(Comparator.comparing(Username::asString))
.skip(query.getOffset().getValue());
@@ -64,7 +63,7 @@ public class ScanningQuotaSearcher implements QuotaSearcher {
.orElse(results);
}
- private Iterator<String> listUsers() {
+ private Iterator<Username> listUsers() {
try {
return usersRepository.list();
} catch (UsersRepositoryException e) {
diff --git a/mailbox/plugin/quota-search/src/test/java/org/apache/james/quota/search/QuotaSearcherContract.java b/mailbox/plugin/quota-search/src/test/java/org/apache/james/quota/search/QuotaSearcherContract.java
index a79a7f3..9fbac9a 100644
--- a/mailbox/plugin/quota-search/src/test/java/org/apache/james/quota/search/QuotaSearcherContract.java
+++ b/mailbox/plugin/quota-search/src/test/java/org/apache/james/quota/search/QuotaSearcherContract.java
@@ -51,9 +51,9 @@ public interface QuotaSearcherContract {
@Test
default void moreThanShouldFilterOutTooSmallValues(QuotaSearchTestSystem testSystem) throws Exception {
testSystem.getDomainList().addDomain(SIMPSON_COM);
- testSystem.getUsersRepository().addUser(Simpson.BART.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Simpson.HOMER.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Simpson.LISA.asString(), PASSWORD);
+ testSystem.getUsersRepository().addUser(Simpson.BART, PASSWORD);
+ testSystem.getUsersRepository().addUser(Simpson.HOMER, PASSWORD);
+ testSystem.getUsersRepository().addUser(Simpson.LISA, PASSWORD);
testSystem.getMaxQuotaManager().setGlobalMaxStorage(QuotaSize.size(100));
appendMessage(testSystem, Simpson.BART, withSize(49));
@@ -71,9 +71,9 @@ public interface QuotaSearcherContract {
@Test
default void lessThanShouldFilterOutTooBigValues(QuotaSearchTestSystem testSystem) throws Exception {
testSystem.getDomainList().addDomain(SIMPSON_COM);
- testSystem.getUsersRepository().addUser(Simpson.BART.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Simpson.HOMER.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Simpson.LISA.asString(), PASSWORD);
+ testSystem.getUsersRepository().addUser(Simpson.BART, PASSWORD);
+ testSystem.getUsersRepository().addUser(Simpson.HOMER, PASSWORD);
+ testSystem.getUsersRepository().addUser(Simpson.LISA, PASSWORD);
testSystem.getMaxQuotaManager().setGlobalMaxStorage(QuotaSize.size(100));
appendMessage(testSystem, Simpson.BART, withSize(49));
@@ -91,9 +91,9 @@ public interface QuotaSearcherContract {
@Test
default void rangeShouldFilterValuesOutOfRange(QuotaSearchTestSystem testSystem) throws Exception {
testSystem.getDomainList().addDomain(SIMPSON_COM);
- testSystem.getUsersRepository().addUser(Simpson.BART.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Simpson.HOMER.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Simpson.LISA.asString(), PASSWORD);
+ testSystem.getUsersRepository().addUser(Simpson.BART, PASSWORD);
+ testSystem.getUsersRepository().addUser(Simpson.HOMER, PASSWORD);
+ testSystem.getUsersRepository().addUser(Simpson.LISA, PASSWORD);
testSystem.getMaxQuotaManager().setGlobalMaxStorage(QuotaSize.size(100));
appendMessage(testSystem, Simpson.BART, withSize(40));
@@ -114,9 +114,9 @@ public interface QuotaSearcherContract {
default void hasDomainShouldFilterOutValuesWithDifferentDomains(QuotaSearchTestSystem testSystem) throws Exception {
testSystem.getDomainList().addDomain(SIMPSON_COM);
testSystem.getDomainList().addDomain(DOMAIN_TLD);
- testSystem.getUsersRepository().addUser(Simpson.BART.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Simpson.LISA.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(BENOIT_AT_DOMAIN_TLD.asString(), PASSWORD);
+ testSystem.getUsersRepository().addUser(Simpson.BART, PASSWORD);
+ testSystem.getUsersRepository().addUser(Simpson.LISA, PASSWORD);
+ testSystem.getUsersRepository().addUser(BENOIT_AT_DOMAIN_TLD, PASSWORD);
testSystem.getMaxQuotaManager().setGlobalMaxStorage(QuotaSize.size(100));
appendMessage(testSystem, Simpson.BART, withSize(49));
@@ -135,9 +135,9 @@ public interface QuotaSearcherContract {
default void andShouldCombineClauses(QuotaSearchTestSystem testSystem) throws Exception {
testSystem.getDomainList().addDomain(SIMPSON_COM);
testSystem.getDomainList().addDomain(DOMAIN_TLD);
- testSystem.getUsersRepository().addUser(Simpson.BART.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Simpson.LISA.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(BENOIT_AT_DOMAIN_TLD.asString(), PASSWORD);
+ testSystem.getUsersRepository().addUser(Simpson.BART, PASSWORD);
+ testSystem.getUsersRepository().addUser(Simpson.LISA, PASSWORD);
+ testSystem.getUsersRepository().addUser(BENOIT_AT_DOMAIN_TLD, PASSWORD);
testSystem.getMaxQuotaManager().setGlobalMaxStorage(QuotaSize.size(100));
appendMessage(testSystem, Simpson.BART, withSize(49));
@@ -156,10 +156,10 @@ public interface QuotaSearcherContract {
@Test
default void resultShouldBeAlphabeticallyOrdered(QuotaSearchTestSystem testSystem) throws Exception {
testSystem.getDomainList().addDomain(ALPHABET_TLD);
- testSystem.getUsersRepository().addUser(Alphabet.AAA.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Alphabet.ABA.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Alphabet.ABB.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Alphabet.ACB.asString(), PASSWORD);
+ testSystem.getUsersRepository().addUser(Alphabet.AAA, PASSWORD);
+ testSystem.getUsersRepository().addUser(Alphabet.ABA, PASSWORD);
+ testSystem.getUsersRepository().addUser(Alphabet.ABB, PASSWORD);
+ testSystem.getUsersRepository().addUser(Alphabet.ACB, PASSWORD);
testSystem.getMaxQuotaManager().setGlobalMaxStorage(QuotaSize.size(100));
appendMessage(testSystem, Alphabet.AAA, withSize(49));
@@ -177,10 +177,10 @@ public interface QuotaSearcherContract {
@Test
default void limitShouldBeTheMaximumValueOfReturnedResults(QuotaSearchTestSystem testSystem) throws Exception {
testSystem.getDomainList().addDomain(ALPHABET_TLD);
- testSystem.getUsersRepository().addUser(Alphabet.AAA.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Alphabet.ABA.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Alphabet.ABB.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Alphabet.ACB.asString(), PASSWORD);
+ testSystem.getUsersRepository().addUser(Alphabet.AAA, PASSWORD);
+ testSystem.getUsersRepository().addUser(Alphabet.ABA, PASSWORD);
+ testSystem.getUsersRepository().addUser(Alphabet.ABB, PASSWORD);
+ testSystem.getUsersRepository().addUser(Alphabet.ACB, PASSWORD);
testSystem.getMaxQuotaManager().setGlobalMaxStorage(QuotaSize.size(100));
appendMessage(testSystem, Alphabet.AAA, withSize(49));
@@ -199,10 +199,10 @@ public interface QuotaSearcherContract {
@Test
default void offsetShouldSkipSomeResults(QuotaSearchTestSystem testSystem) throws Exception {
testSystem.getDomainList().addDomain(ALPHABET_TLD);
- testSystem.getUsersRepository().addUser(Alphabet.AAA.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Alphabet.ABA.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Alphabet.ABB.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Alphabet.ACB.asString(), PASSWORD);
+ testSystem.getUsersRepository().addUser(Alphabet.AAA, PASSWORD);
+ testSystem.getUsersRepository().addUser(Alphabet.ABA, PASSWORD);
+ testSystem.getUsersRepository().addUser(Alphabet.ABB, PASSWORD);
+ testSystem.getUsersRepository().addUser(Alphabet.ACB, PASSWORD);
testSystem.getMaxQuotaManager().setGlobalMaxStorage(QuotaSize.size(100));
appendMessage(testSystem, Alphabet.AAA, withSize(49));
@@ -222,10 +222,10 @@ public interface QuotaSearcherContract {
default void searchShouldReturnEmptyOnTooBigOffset(QuotaSearchTestSystem testSystem) throws Exception {
testSystem.getDomainList().addDomain(SIMPSON_COM);
testSystem.getDomainList().addDomain(DOMAIN_TLD);
- testSystem.getUsersRepository().addUser(Simpson.BART.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Simpson.HOMER.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Simpson.LISA.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(BENOIT_AT_DOMAIN_TLD.asString(), PASSWORD);
+ testSystem.getUsersRepository().addUser(Simpson.BART, PASSWORD);
+ testSystem.getUsersRepository().addUser(Simpson.HOMER, PASSWORD);
+ testSystem.getUsersRepository().addUser(Simpson.LISA, PASSWORD);
+ testSystem.getUsersRepository().addUser(BENOIT_AT_DOMAIN_TLD, PASSWORD);
testSystem.getMaxQuotaManager().setGlobalMaxStorage(QuotaSize.size(100));
appendMessage(testSystem, Simpson.BART, withSize(49));
@@ -244,10 +244,10 @@ public interface QuotaSearcherContract {
@Test
default void pagingShouldBeSupported(QuotaSearchTestSystem testSystem) throws Exception {
testSystem.getDomainList().addDomain(ALPHABET_TLD);
- testSystem.getUsersRepository().addUser(Alphabet.AAA.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Alphabet.ABA.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Alphabet.ABB.asString(), PASSWORD);
- testSystem.getUsersRepository().addUser(Alphabet.ACB.asString(), PASSWORD);
+ testSystem.getUsersRepository().addUser(Alphabet.AAA, PASSWORD);
+ testSystem.getUsersRepository().addUser(Alphabet.ABA, PASSWORD);
+ testSystem.getUsersRepository().addUser(Alphabet.ABB, PASSWORD);
+ testSystem.getUsersRepository().addUser(Alphabet.ACB, PASSWORD);
testSystem.getMaxQuotaManager().setGlobalMaxStorage(QuotaSize.size(100));
appendMessage(testSystem, Alphabet.AAA, withSize(49));
@@ -266,7 +266,7 @@ public interface QuotaSearcherContract {
default void appendMessage(QuotaSearchTestSystem testSystem, Username username, MessageManager.AppendCommand appendCommand) throws MailboxException, UsersRepositoryException, DomainListException {
MailboxManager mailboxManager = testSystem.getMailboxManager();
- MailboxSession session = mailboxManager.createSystemSession(username.asString());
+ MailboxSession session = mailboxManager.createSystemSession(username);
MailboxPath mailboxPath = MailboxPath.inbox(session);
mailboxManager.createMailbox(mailboxPath, session);
diff --git a/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java b/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
index 45a1685..cbaf551 100644
--- a/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
+++ b/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
@@ -24,6 +24,7 @@ import java.util.stream.Stream;
import javax.inject.Inject;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.Role;
@@ -90,12 +91,13 @@ public class SpamAssassinListener implements SpamEventListener {
@Override
public void event(Event event) throws MailboxException {
+ Username username = Username.of(getClass().getCanonicalName());
if (event instanceof MessageMoveEvent) {
- MailboxSession session = mailboxManager.createSystemSession(getClass().getCanonicalName());
+ MailboxSession session = mailboxManager.createSystemSession(username);
handleMessageMove(event, session, (MessageMoveEvent) event);
}
if (event instanceof Added) {
- MailboxSession session = mailboxManager.createSystemSession(getClass().getCanonicalName());
+ MailboxSession session = mailboxManager.createSystemSession(username);
handleAdded(event, session, (Added) event);
}
}
diff --git a/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java b/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
index 72d8b39..245a8ec 100644
--- a/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
+++ b/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
@@ -32,6 +32,7 @@ import java.util.Date;
import javax.mail.Flags;
import javax.mail.util.SharedByteArrayInputStream;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.DefaultMailboxes;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxSessionUtil;
@@ -57,7 +58,7 @@ import org.junit.Before;
import org.junit.Test;
public class SpamAssassinListenerTest {
- public static final String USER = "user";
+ public static final Username USER = Username.of("user");
private static final MailboxSession MAILBOX_SESSION = MailboxSessionUtil.create(USER);
private static final int UID_VALIDITY = 43;
private static final TestMessageId MESSAGE_ID = TestMessageId.of(45);
diff --git a/mailbox/spring/src/main/java/org/apache/james/mailbox/spring/AnonymousAuthenticator.java b/mailbox/spring/src/main/java/org/apache/james/mailbox/spring/AnonymousAuthenticator.java
index 7706e72..4b99c0f 100644
--- a/mailbox/spring/src/main/java/org/apache/james/mailbox/spring/AnonymousAuthenticator.java
+++ b/mailbox/spring/src/main/java/org/apache/james/mailbox/spring/AnonymousAuthenticator.java
@@ -18,12 +18,13 @@
****************************************************************/
package org.apache.james.mailbox.spring;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.store.Authenticator;
public class AnonymousAuthenticator implements Authenticator {
@Override
- public boolean isAuthentic(String userid, CharSequence passwd) {
+ public boolean isAuthentic(Username userid, CharSequence passwd) {
return true;
}
diff --git a/mailbox/spring/src/main/java/org/apache/james/mailbox/spring/NoAuthorizator.java b/mailbox/spring/src/main/java/org/apache/james/mailbox/spring/NoAuthorizator.java
index f98e331..8418ece 100644
--- a/mailbox/spring/src/main/java/org/apache/james/mailbox/spring/NoAuthorizator.java
+++ b/mailbox/spring/src/main/java/org/apache/james/mailbox/spring/NoAuthorizator.java
@@ -18,12 +18,13 @@
****************************************************************/
package org.apache.james.mailbox.spring;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.store.Authorizator;
public class NoAuthorizator implements Authorizator {
@Override
- public AuthorizationState canLoginAsOtherUser(String userId, String otherUserId) {
+ public AuthorizationState canLoginAsOtherUser(Username userId, Username otherUserId) {
return AuthorizationState.NOT_ADMIN;
}
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/Authenticator.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/Authenticator.java
index f0587b3..1dd7857 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/Authenticator.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/Authenticator.java
@@ -19,6 +19,7 @@
package org.apache.james.mailbox.store;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.MailboxException;
/**
@@ -34,5 +35,5 @@ public interface Authenticator {
* @return true when the user is authentic,
* false otherwise
*/
- boolean isAuthentic(String userid, CharSequence passwd) throws MailboxException;
+ boolean isAuthentic(Username userid, CharSequence passwd) throws MailboxException;
}
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/Authorizator.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/Authorizator.java
index 2b01aa8..f83ab06 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/Authorizator.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/Authorizator.java
@@ -19,6 +19,7 @@
package org.apache.james.mailbox.store;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.MailboxException;
/**
@@ -32,6 +33,6 @@ public interface Authorizator {
UNKNOWN_USER
}
- AuthorizationState canLoginAsOtherUser(String userId, String otherUserId) throws MailboxException;
+ AuthorizationState canLoginAsOtherUser(Username userId, Username otherUserId) throws MailboxException;
}
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/FakeAuthenticator.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/FakeAuthenticator.java
index 79224c5..a5eefda 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/FakeAuthenticator.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/FakeAuthenticator.java
@@ -21,20 +21,22 @@ package org.apache.james.mailbox.store;
import java.util.HashMap;
import java.util.Map;
+import org.apache.james.core.Username;
+
public class FakeAuthenticator implements Authenticator {
private final Map<String, String> users = new HashMap<>();
@Override
- public boolean isAuthentic(String userid, CharSequence passwd) {
- String pass = users.get(userid);
+ public boolean isAuthentic(Username userid, CharSequence passwd) {
+ String pass = users.get(userid.asString());
if (pass != null) {
return passwd.toString().equals(pass);
}
return false;
}
- public void addUser(String user, String password) {
- users.put(user, password);
+ public void addUser(Username user, String password) {
+ users.put(user.asString(), password);
}
}
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/FakeAuthorizator.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/FakeAuthorizator.java
index 556affe..7bbc7f6 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/FakeAuthorizator.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/FakeAuthorizator.java
@@ -20,26 +20,28 @@ package org.apache.james.mailbox.store;
import java.util.Optional;
+import org.apache.james.core.Username;
+
public class FakeAuthorizator implements Authorizator {
public static FakeAuthorizator defaultReject() {
return new FakeAuthorizator(Optional.empty(), Optional.empty());
}
- public static FakeAuthorizator forUserAndAdmin(String admin, String user) {
+ public static FakeAuthorizator forUserAndAdmin(Username admin, Username user) {
return new FakeAuthorizator(Optional.of(admin), Optional.of(user));
}
- private final Optional<String> adminId;
- private final Optional<String> delegatedUserId;
+ private final Optional<Username> adminId;
+ private final Optional<Username> delegatedUserId;
- private FakeAuthorizator(Optional<String> adminId, Optional<String> userId) {
+ private FakeAuthorizator(Optional<Username> adminId, Optional<Username> userId) {
this.adminId = adminId;
this.delegatedUserId = userId;
}
@Override
- public AuthorizationState canLoginAsOtherUser(String userId, String otherUserId) {
+ public AuthorizationState canLoginAsOtherUser(Username userId, Username otherUserId) {
if (!adminId.isPresent() || !this.delegatedUserId.isPresent()) {
return AuthorizationState.NOT_ADMIN;
}
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SessionProvider.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/SessionProvider.java
index 992ad15..368f367 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SessionProvider.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/SessionProvider.java
@@ -23,6 +23,7 @@ import java.util.ArrayList;
import javax.inject.Inject;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxSessionIdGenerator;
import org.apache.james.mailbox.exception.BadCredentialsException;
@@ -47,11 +48,11 @@ public class SessionProvider {
return MailboxConstants.DEFAULT_DELIMITER;
}
- public MailboxSession createSystemSession(String userName) {
+ public MailboxSession createSystemSession(Username userName) {
return createSession(userName, MailboxSession.SessionType.System);
}
- public MailboxSession login(String userid, String passwd) throws MailboxException {
+ public MailboxSession login(Username userid, String passwd) throws MailboxException {
if (isValidLogin(userid, passwd)) {
return createSession(userid, MailboxSession.SessionType.User);
} else {
@@ -59,7 +60,7 @@ public class SessionProvider {
}
}
- public MailboxSession loginAsOtherUser(String adminUserid, String passwd, String otherUserId) throws MailboxException {
+ public MailboxSession loginAsOtherUser(Username adminUserid, String passwd, Username otherUserId) throws MailboxException {
if (! isValidLogin(adminUserid, passwd)) {
throw new BadCredentialsException();
}
@@ -82,7 +83,7 @@ public class SessionProvider {
}
}
- private MailboxSession createSession(String userName, MailboxSession.SessionType type) {
+ private MailboxSession createSession(Username userName, MailboxSession.SessionType type) {
return new MailboxSession(newSessionId(), userName, new ArrayList<>(), getDelimiter(), type);
}
@@ -101,7 +102,7 @@ public class SessionProvider {
* @param passwd the password
* @return success true if login success false otherwise
*/
- private boolean isValidLogin(String userid, String passwd) throws MailboxException {
+ private boolean isValidLogin(Username userid, String passwd) throws MailboxException {
return authenticator.isAuthentic(userid, passwd);
}
}
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreAttachmentManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreAttachmentManager.java
index db73f37..0ac9959 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreAttachmentManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreAttachmentManager.java
@@ -77,7 +77,7 @@ public class StoreAttachmentManager implements AttachmentManager {
@Override
public void storeAttachment(Attachment attachment, MailboxSession mailboxSession) throws MailboxException {
attachmentMapperFactory.getAttachmentMapper(mailboxSession)
- .storeAttachmentForOwner(attachment, org.apache.james.mailbox.store.mail.model.Username.fromMailboxSession(mailboxSession));
+ .storeAttachmentForOwner(attachment, mailboxSession.getUser());
}
@Override
@@ -103,10 +103,10 @@ public class StoreAttachmentManager implements AttachmentManager {
}
private boolean isExplicitlyAOwner(AttachmentId attachmentId, MailboxSession mailboxSession) throws MailboxException {
- Collection<org.apache.james.mailbox.store.mail.model.Username> explicitOwners = attachmentMapperFactory.getAttachmentMapper(mailboxSession)
+ Collection<Username> explicitOwners = attachmentMapperFactory.getAttachmentMapper(mailboxSession)
.getOwners(attachmentId);
return explicitOwners.stream()
- .anyMatch(username -> mailboxSession.getUser().equals(Username.of(username.getValue())));
+ .anyMatch(username -> mailboxSession.getUser().equals(username));
}
private Collection<MessageId> getRelatedMessageIds(AttachmentId attachmentId, MailboxSession mailboxSession) throws MailboxException {
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
index d334fa2..2f3ae29 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
@@ -31,6 +31,7 @@ import java.util.stream.Stream;
import javax.inject.Inject;
+import org.apache.james.core.Username;
import org.apache.james.core.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.mailbox.MailboxAnnotationManager;
@@ -215,7 +216,7 @@ public class StoreMailboxManager implements MailboxManager {
}
@Override
- public MailboxSession createSystemSession(String userName) {
+ public MailboxSession createSystemSession(Username userName) {
return sessionProvider.createSystemSession(userName);
}
@@ -225,12 +226,12 @@ public class StoreMailboxManager implements MailboxManager {
}
@Override
- public MailboxSession login(String userid, String passwd) throws MailboxException {
+ public MailboxSession login(Username userid, String passwd) throws MailboxException {
return sessionProvider.login(userid, passwd);
}
@Override
- public MailboxSession loginAsOtherUser(String adminUserid, String passwd, String otherUserId) throws MailboxException {
+ public MailboxSession loginAsOtherUser(Username adminUserid, String passwd, Username otherUserId) throws MailboxException {
return sessionProvider.loginAsOtherUser(adminUserid, passwd, otherUserId);
}
@@ -582,7 +583,7 @@ public class StoreMailboxManager implements MailboxManager {
public static MailboxQuery.UserBound toSingleUserQuery(MailboxQuery mailboxQuery, MailboxSession mailboxSession) {
return MailboxQuery.builder()
.namespace(mailboxQuery.getNamespace().orElse(MailboxConstants.USER_NAMESPACE))
- .username(mailboxQuery.getUser().orElse(mailboxSession.getUser().asString()))
+ .username(mailboxQuery.getUser().orElse(mailboxSession.getUser()))
.expression(mailboxQuery.getMailboxNameExpression()
.includeChildren())
.build()
@@ -594,7 +595,7 @@ public class StoreMailboxManager implements MailboxManager {
if (mailboxQuery.isPrivateMailboxes(session)) {
return Stream.of();
}
- return mailboxMapper.findNonPersonalMailboxes(session.getUser().asString(), right).stream();
+ return mailboxMapper.findNonPersonalMailboxes(session.getUser(), right).stream();
}
private MailboxMetaData toMailboxMetadata(MailboxSession session, List<Mailbox> mailboxes, Mailbox mailbox) {
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreRightManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreRightManager.java
index d109b3f..7db8dba 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreRightManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreRightManager.java
@@ -106,10 +106,10 @@ public class StoreRightManager implements RightManager {
return Optional.ofNullable(username)
.map(Throwing.function(value ->
aclResolver.resolveRights(
- username.asString(),
+ username,
groupMembershipResolver,
mailbox.getACL(),
- mailbox.getUser(),
+ mailbox.getUser().asString(),
!GROUP_FOLDER))
.sneakyThrow())
.orElse(MailboxACL.NO_RIGHTS);
@@ -122,7 +122,7 @@ public class StoreRightManager implements RightManager {
return aclResolver.listRights(key,
groupMembershipResolver,
- mailbox.getUser(),
+ mailbox.getUser().asString(),
!GROUP_FOLDER);
}
@@ -150,7 +150,7 @@ public class StoreRightManager implements RightManager {
.block();
}
- private void assertSharesBelongsToUserDomain(String user, ACLCommand mailboxACLCommand) throws DifferentDomainException {
+ private void assertSharesBelongsToUserDomain(Username user, ACLCommand mailboxACLCommand) throws DifferentDomainException {
assertSharesBelongsToUserDomain(user, ImmutableMap.of(mailboxACLCommand.getEntryKey(), mailboxACLCommand.getRights()));
}
@@ -206,7 +206,7 @@ public class StoreRightManager implements RightManager {
}
@VisibleForTesting
- void assertSharesBelongsToUserDomain(String user, Map<EntryKey, Rfc4314Rights> entries) throws DifferentDomainException {
+ void assertSharesBelongsToUserDomain(Username user, Map<EntryKey, Rfc4314Rights> entries) throws DifferentDomainException {
if (entries.keySet().stream()
.filter(entry -> !entry.getNameType().equals(NameType.special))
.map(EntryKey::getName)
@@ -216,9 +216,9 @@ public class StoreRightManager implements RightManager {
}
@VisibleForTesting
- boolean areDomainsDifferent(String user, String otherUser) {
+ boolean areDomainsDifferent(String user, Username otherUser) {
Optional<Domain> domain = Username.of(user).getDomainPart();
- Optional<Domain> otherDomain = Username.of(otherUser).getDomainPart();
+ Optional<Domain> otherDomain = otherUser.getDomainPart();
return !domain.equals(otherDomain);
}
@@ -260,7 +260,7 @@ public class StoreRightManager implements RightManager {
return acl;
}
- MailboxACL.EntryKey userAsKey = MailboxACL.EntryKey.createUserEntryKey(mailboxSession.getUser().asString());
+ MailboxACL.EntryKey userAsKey = MailboxACL.EntryKey.createUserEntryKey(mailboxSession.getUser());
Rfc4314Rights rights = acl.getEntries().getOrDefault(userAsKey, new Rfc4314Rights());
if (rights.contains(MailboxACL.Right.Administer)) {
return acl;
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SystemMailboxesProviderImpl.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/SystemMailboxesProviderImpl.java
index 9cbc59c..235c04c 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SystemMailboxesProviderImpl.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/SystemMailboxesProviderImpl.java
@@ -52,8 +52,8 @@ public class SystemMailboxesProviderImpl implements SystemMailboxesProvider {
@Override
public Stream<MessageManager> getMailboxByRole(Role aRole, Username username) throws MailboxException {
- MailboxSession session = mailboxManager.createSystemSession(username.asString());
- MailboxPath mailboxPath = MailboxPath.forUser(username.asString(), aRole.getDefaultMailbox());
+ MailboxSession session = mailboxManager.createSystemSession(username);
+ MailboxPath mailboxPath = MailboxPath.forUser(username, aRole.getDefaultMailbox());
try {
return Stream.of(mailboxManager.getMailbox(mailboxPath, session));
} catch (MailboxNotFoundException e) {
@@ -68,7 +68,7 @@ public class SystemMailboxesProviderImpl implements SystemMailboxesProvider {
}
private Stream<MessageManager> searchMessageManagerByMailboxRole(Role aRole, Username username) throws MailboxException {
- MailboxSession session = mailboxManager.createSystemSession(username.asString());
+ MailboxSession session = mailboxManager.createSystemSession(username);
ThrowingFunction<MailboxPath, MessageManager> loadMailbox = path -> mailboxManager.getMailbox(path, session);
MailboxQuery mailboxQuery = MailboxQuery.privateMailboxesBuilder(session)
.expression(new PrefixedWildcard(aRole.getDefaultMailbox()))
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxAnnotationListener.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxAnnotationListener.java
index 1b6cd37..a058294 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxAnnotationListener.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxAnnotationListener.java
@@ -57,7 +57,7 @@ public class MailboxAnnotationListener implements MailboxListener.GroupMailboxLi
@Override
public void event(Event event) throws MailboxException {
if (event instanceof MailboxDeletion) {
- MailboxSession mailboxSession = sessionProvider.createSystemSession(event.getUsername().asString());
+ MailboxSession mailboxSession = sessionProvider.createSystemSession(event.getUsername());
AnnotationMapper annotationMapper = mailboxSessionMapperFactory.getAnnotationMapper(mailboxSession);
MailboxId mailboxId = ((MailboxDeletion) event).getMailboxId();
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AttachmentMapper.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AttachmentMapper.java
index 09b444d..8b411b3 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AttachmentMapper.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AttachmentMapper.java
@@ -21,12 +21,12 @@ package org.apache.james.mailbox.store.mail;
import java.util.Collection;
import java.util.List;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.AttachmentNotFoundException;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.Attachment;
import org.apache.james.mailbox.model.AttachmentId;
import org.apache.james.mailbox.model.MessageId;
-import org.apache.james.mailbox.store.mail.model.Username;
import org.apache.james.mailbox.store.transaction.Mapper;
public interface AttachmentMapper extends Mapper {
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapper.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapper.java
index 6b73444..3ca9c5f 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapper.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapper.java
@@ -20,6 +20,7 @@ package org.apache.james.mailbox.store.mail;
import java.util.List;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.acl.ACLDiff;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MailboxNotFoundException;
@@ -64,7 +65,7 @@ public interface MailboxMapper extends Mapper {
/**
* Return a List of {@link Mailbox} for the given userName and matching the right
*/
- List<Mailbox> findNonPersonalMailboxes(String userName, Right right) throws MailboxException;
+ List<Mailbox> findNonPersonalMailboxes(Username userName, Right right) throws MailboxException;
/**
* Return a List of {@link Mailbox} which name is like the given name
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/Username.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/Username.java
deleted file mode 100644
index e2346d8..0000000
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/Username.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-
-package org.apache.james.mailbox.store.mail.model;
-
-import java.util.Objects;
-
-import org.apache.james.mailbox.MailboxSession;
-
-import com.google.common.base.MoreObjects;
-import com.google.common.base.Preconditions;
-
-public class Username {
- public static Username fromMailboxSession(MailboxSession mailboxSession) {
- Preconditions.checkNotNull(mailboxSession);
- Preconditions.checkNotNull(mailboxSession.getUser());
-
- return fromRawValue(mailboxSession.getUser().asString());
- }
-
- public static Username fromRawValue(String value) {
- return new Username(value);
- }
-
- private final String value;
-
- private Username(final String value) {
- Preconditions.checkNotNull(value);
-
- this.value = value;
- }
-
- public String getValue() {
- return value;
- }
-
- @Override
- public final boolean equals(final Object o) {
- if (o instanceof Username) {
- Username username = (Username) o;
-
- return Objects.equals(this.value, username.value);
- }
- return false;
- }
-
- @Override
- public final int hashCode() {
- return Objects.hash(value);
- }
-
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(this)
- .add("value", value)
- .toString();
- }
-}
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolver.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolver.java
index 7bcd0e9..6f5ed08 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolver.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolver.java
@@ -84,8 +84,8 @@ public class DefaultUserQuotaRootResolver implements UserQuotaRootResolver {
Preconditions.checkArgument(!mailboxPath.getNamespace().contains(SEPARATOR), "Namespace should not contain " + SEPARATOR);
return Optional.ofNullable(mailboxPath.getUser())
.map(user -> {
- Preconditions.checkArgument(!mailboxPath.getUser().contains(SEPARATOR), "Username should not contain " + SEPARATOR);
- return Username.of(mailboxPath.getUser());
+ Preconditions.checkArgument(!mailboxPath.getUser().asString().contains(SEPARATOR), "Username should not contain " + SEPARATOR);
+ return mailboxPath.getUser();
})
.map(user -> QuotaRoot.quotaRoot(mailboxPath.getNamespace() + SEPARATOR + user.asString(), user.getDomainPart()))
.orElseGet(() -> QuotaRoot.quotaRoot(mailboxPath.getNamespace(), Optional.empty()));
@@ -93,12 +93,11 @@ public class DefaultUserQuotaRootResolver implements UserQuotaRootResolver {
@Override
public QuotaRoot getQuotaRoot(MailboxId mailboxId) throws MailboxException {
- MailboxSession session = sessionProvider.createSystemSession("DefaultUserQuotaRootResolver");
- Username username = Username.of(
- factory.getMailboxMapper(session)
- .findMailboxById(mailboxId)
- .generateAssociatedPath()
- .getUser());
+ MailboxSession session = sessionProvider.createSystemSession(Username.of("DefaultUserQuotaRootResolver"));
+ Username username = factory.getMailboxMapper(session)
+ .findMailboxById(mailboxId)
+ .generateAssociatedPath()
+ .getUser();
return forUser(username);
}
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
index 06dfecf..a04f94a 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
@@ -70,7 +70,7 @@ public abstract class ListeningMessageSearchIndex implements MessageSearchIndex,
@Override
public void event(Event event) throws Exception {
handleMailboxEvent(event,
- sessionProvider.createSystemSession(event.getUsername().asString()),
+ sessionProvider.createSystemSession(event.getUsername()),
(MailboxEvent) event);
}
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMailboxManagerAttachmentTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMailboxManagerAttachmentTest.java
index ec2d036..8727d45 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMailboxManagerAttachmentTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMailboxManagerAttachmentTest.java
@@ -29,6 +29,7 @@ import java.util.Optional;
import java.util.stream.Stream;
import org.apache.commons.io.IOUtils;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxSessionUtil;
@@ -50,7 +51,7 @@ import com.github.fge.lambdas.Throwing;
import com.google.common.collect.ImmutableList;
public abstract class AbstractMailboxManagerAttachmentTest {
- private static final String USERNAME = "user@domain.tld";
+ private static final Username USERNAME = Username.of("user@domain.tld");
private MailboxManager mailboxManager;
private MessageMapper messageMapper;
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
index 661edb7..3ea3167 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
@@ -29,6 +29,7 @@ import java.util.function.Predicate;
import javax.mail.Flags;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxSessionUtil;
import org.apache.james.mailbox.MessageIdManager;
@@ -77,7 +78,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
public void setUp() throws Exception {
aliceSession = MailboxSessionUtil.create(MailboxFixture.ALICE);
bobSession = MailboxSessionUtil.create(MailboxFixture.BOB);
- systemSession = MailboxSessionUtil.create("systemuser");
+ systemSession = MailboxSessionUtil.create(Username.of("systemuser"));
testingData = createTestingData();
messageIdManager = testingData.getMessageIdManager();
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreBlobManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreBlobManagerTest.java
index 7837d7e..33a3a32 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreBlobManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreBlobManagerTest.java
@@ -29,6 +29,7 @@ import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.AttachmentManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxSessionUtil;
@@ -67,7 +68,7 @@ public class StoreBlobManagerTest {
public void setUp() {
attachmentManager = mock(AttachmentManager.class);
messageIdManager = mock(MessageIdManager.class);
- session = MailboxSessionUtil.create("user");
+ session = MailboxSessionUtil.create(Username.of("user"));
blobManager = new StoreBlobManager(attachmentManager, messageIdManager, new TestMessageId.Factory());
}
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java
index e22ac6e..2753748 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java
@@ -32,6 +32,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Set;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxSessionUtil;
import org.apache.james.mailbox.exception.MailboxException;
@@ -80,7 +81,7 @@ public class StoreMailboxManagerAnnotationTest {
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
- session = MailboxSessionUtil.create("userName");
+ session = MailboxSessionUtil.create(Username.of("userName"));
when(mailboxSessionMapperFactory.getMailboxMapper(eq(session))).thenReturn(mailboxMapper);
when(mailboxSessionMapperFactory.getAnnotationMapper(eq(session))).thenReturn(annotationMapper);
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
index 85834fd..45e922c 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
@@ -24,6 +24,7 @@ import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxSessionUtil;
import org.apache.james.mailbox.MessageManager;
@@ -57,12 +58,12 @@ import org.junit.Before;
import org.junit.Test;
public class StoreMailboxManagerTest {
- private static final String CURRENT_USER = "user";
+ private static final Username CURRENT_USER = Username.of("user");
private static final String CURRENT_USER_PASSWORD = "secret";
- private static final String ADMIN = "admin";
+ private static final Username ADMIN = Username.of("admin");
private static final String ADMIN_PASSWORD = "adminsecret";
private static final MailboxId MAILBOX_ID = TestId.of(123);
- private static final String UNKNOWN_USER = "otheruser";
+ private static final Username UNKNOWN_USER = Username.of("otheruser");
private static final String BAD_PASSWORD = "badpassword";
private static final String EMPTY_PREFIX = "";
@@ -122,7 +123,7 @@ public class StoreMailboxManagerTest {
public void getMailboxShouldReturnMailboxManagerWhenKnownIdAndDifferentCaseUser() throws Exception {
Mailbox mockedMailbox = mock(Mailbox.class);
when(mockedMailbox.generateAssociatedPath())
- .thenReturn(MailboxPath.forUser("uSEr", "mailboxName"));
+ .thenReturn(MailboxPath.forUser(Username.of("uSEr"), "mailboxName"));
when(mockedMailbox.getMailboxId()).thenReturn(MAILBOX_ID);
when(mockedMailboxMapper.findMailboxById(MAILBOX_ID)).thenReturn(mockedMailbox);
@@ -133,11 +134,13 @@ public class StoreMailboxManagerTest {
@Test(expected = MailboxNotFoundException.class)
public void getMailboxShouldThrowWhenMailboxDoesNotMatchUserWithoutRight() throws Exception {
+ Username otherUser = Username.of("other.user");
Mailbox mockedMailbox = mock(Mailbox.class);
when(mockedMailbox.getACL()).thenReturn(new MailboxACL());
when(mockedMailbox.generateAssociatedPath())
- .thenReturn(MailboxPath.forUser("other.user", "mailboxName"));
+ .thenReturn(MailboxPath.forUser(otherUser, "mailboxName"));
when(mockedMailbox.getMailboxId()).thenReturn(MAILBOX_ID);
+ when(mockedMailbox.getUser()).thenReturn(otherUser);
when(mockedMailboxMapper.findMailboxById(MAILBOX_ID)).thenReturn(mockedMailbox);
when(mockedMailboxMapper.findMailboxByPath(any())).thenReturn(mockedMailbox);
@@ -150,7 +153,7 @@ public class StoreMailboxManagerTest {
public void loginShouldCreateSessionWhenGoodPassword() throws Exception {
MailboxSession expected = storeMailboxManager.login(CURRENT_USER, CURRENT_USER_PASSWORD);
- assertThat(expected.getUser().asString()).isEqualTo(CURRENT_USER);
+ assertThat(expected.getUser()).isEqualTo(CURRENT_USER);
}
@Test(expected = BadCredentialsException.class)
@@ -192,13 +195,13 @@ public class StoreMailboxManagerTest {
public void loginAsOtherUserShouldCreateUserSessionWhenAdminWithGoodPassword() throws Exception {
MailboxSession expected = storeMailboxManager.loginAsOtherUser(ADMIN, ADMIN_PASSWORD, CURRENT_USER);
- assertThat(expected.getUser().asString()).isEqualTo(CURRENT_USER);
+ assertThat(expected.getUser()).isEqualTo(CURRENT_USER);
}
@Test
public void getPathLikeShouldReturnUserPathLikeWhenNoPrefixDefined() {
//Given
- MailboxSession session = MailboxSessionUtil.create("user");
+ MailboxSession session = MailboxSessionUtil.create(CURRENT_USER);
MailboxQuery.Builder testee = MailboxQuery.builder()
.expression(new PrefixedRegex(EMPTY_PREFIX, "abc", session.getPathDelimiter()));
//When
@@ -207,7 +210,7 @@ public class StoreMailboxManagerTest {
assertThat(StoreMailboxManager.toSingleUserQuery(mailboxQuery, session))
.isEqualTo(MailboxQuery.builder()
.namespace(MailboxConstants.USER_NAMESPACE)
- .username("user")
+ .username(Username.of("user"))
.expression(new PrefixedRegex(EMPTY_PREFIX, "abc*", session.getPathDelimiter()))
.build()
.asUserBound());
@@ -216,7 +219,7 @@ public class StoreMailboxManagerTest {
@Test
public void getPathLikeShouldReturnUserPathLikeWhenPrefixDefined() {
//Given
- MailboxSession session = MailboxSessionUtil.create("user");
+ MailboxSession session = MailboxSessionUtil.create(CURRENT_USER);
MailboxQuery.Builder testee = MailboxQuery.builder()
.expression(new PrefixedRegex("prefix.", "abc", session.getPathDelimiter()));
@@ -226,7 +229,7 @@ public class StoreMailboxManagerTest {
assertThat(StoreMailboxManager.toSingleUserQuery(mailboxQuery, session))
.isEqualTo(MailboxQuery.builder()
.namespace(MailboxConstants.USER_NAMESPACE)
- .username("user")
+ .username(Username.of("user"))
.expression(new PrefixedRegex("prefix.", "abc*", session.getPathDelimiter()))
.build()
.asUserBound());
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreRightManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreRightManagerTest.java
index 7479b95..5de12a3 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreRightManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreRightManagerTest.java
@@ -30,6 +30,7 @@ import static org.mockito.Mockito.when;
import javax.mail.Flags;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxSessionUtil;
import org.apache.james.mailbox.acl.GroupMembershipResolver;
@@ -97,7 +98,7 @@ public class StoreRightManagerTest {
@Test
public void hasRightShouldReturnTrueWhenTheUserDoesNotOwnTheMailboxButHaveTheCorrectRightOnIt() throws MailboxException {
Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
- mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE, Right.Write)));
+ mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.Write)));
assertThat(storeRightManager.hasRight(mailbox, Right.Write, aliceSession))
.isTrue();
@@ -106,7 +107,7 @@ public class StoreRightManagerTest {
@Test
public void hasRightShouldReturnTrueWhenTheUserDoesNotOwnTheMailboxButHasAtLeastTheCorrectRightOnIt() throws MailboxException {
Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
- mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE, Right.Write, Right.Lookup)));
+ mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.Write, Right.Lookup)));
assertThat(storeRightManager.hasRight(mailbox, Right.Write, aliceSession))
.isTrue();
@@ -124,7 +125,7 @@ public class StoreRightManagerTest {
public void isReadWriteShouldReturnTrueWhenUserHasInsertRightOnMailbox() throws Exception {
Flags flags = new Flags();
Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
- mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE, Right.Insert)));
+ mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.Insert)));
assertThat(storeRightManager.isReadWrite(aliceSession, mailbox, flags))
.isTrue();
@@ -134,7 +135,7 @@ public class StoreRightManagerTest {
public void isReadWriteShouldReturnTrueWhenUserHasPerformExpungeRightOnMailbox() throws Exception {
Flags flags = new Flags();
Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
- mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE, Right.PerformExpunge)));
+ mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.PerformExpunge)));
assertThat(storeRightManager.isReadWrite(aliceSession, mailbox, flags))
.isTrue();
@@ -144,7 +145,7 @@ public class StoreRightManagerTest {
public void isReadWriteShouldReturnTrueWhenUserHasDeleteMessagesRightOnMailboxAndFlagsContainDeletedFlag() throws Exception {
Flags flags = new Flags(Flags.Flag.DELETED);
Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
- mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE, Right.DeleteMessages)));
+ mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.DeleteMessages)));
assertThat(storeRightManager.isReadWrite(aliceSession, mailbox, flags))
.isTrue();
@@ -154,7 +155,7 @@ public class StoreRightManagerTest {
public void isReadWriteShouldReturnFalseWhenUserHasDeleteMessagesRightOnMailboxButFlagsDoesNotContainDeletedFlag() throws Exception {
Flags flags = new Flags();
Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
- mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE, Right.DeleteMessages)));
+ mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.DeleteMessages)));
assertThat(storeRightManager.isReadWrite(aliceSession, mailbox, flags))
.isFalse();
@@ -164,7 +165,7 @@ public class StoreRightManagerTest {
public void isReadWriteShouldReturnTrueWhenUserHasWriteSeenFlagRightOnMailboxAndFlagsContainSeenFlag() throws Exception {
Flags flags = new Flags(Flags.Flag.SEEN);
Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
- mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE, Right.WriteSeenFlag)));
+ mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.WriteSeenFlag)));
assertThat(storeRightManager.isReadWrite(aliceSession, mailbox, flags))
.isTrue();
@@ -174,7 +175,7 @@ public class StoreRightManagerTest {
public void isReadWriteShouldReturnFalseWhenUserHasWriteSeenFlagRightOnMailboxAndFlagsDoesNotContainSeenFlag() throws Exception {
Flags flags = new Flags();
Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
- mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE, Right.WriteSeenFlag)));
+ mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.WriteSeenFlag)));
assertThat(storeRightManager.isReadWrite(aliceSession, mailbox, flags))
.isFalse();
@@ -184,7 +185,7 @@ public class StoreRightManagerTest {
public void isReadWriteShouldReturnTrueWhenUserHasWriteRightOnMailboxAndFlagsContainAnsweredFlag() throws Exception {
Flags flags = new Flags(Flags.Flag.ANSWERED);
Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
- mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE, Right.Write)));
+ mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.Write)));
assertThat(storeRightManager.isReadWrite(aliceSession, mailbox, flags))
.isTrue();
@@ -193,7 +194,7 @@ public class StoreRightManagerTest {
@Test
public void isReadWriteShouldReturnFalseWhenUserDoesNotHaveInsertOrPerformExpungeRightOnMailboxAndNullFlag() throws Exception {
Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
- mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE, Right.Administer)));
+ mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.Administer)));
assertThat(storeRightManager.isReadWrite(aliceSession, mailbox, new Flags()))
.isFalse();
@@ -231,27 +232,27 @@ public class StoreRightManagerTest {
@Test
public void areDomainsDifferentShouldReturnTrueWhenOneHasDomainNotTheOther() {
- assertThat(storeRightManager.areDomainsDifferent("user@domain.org", "otherUser")).isTrue();
+ assertThat(storeRightManager.areDomainsDifferent("user@domain.org", Username.of("otherUser"))).isTrue();
}
@Test
public void areDomainsDifferentShouldReturnTrueWhenOtherHasDomainNotTheOne() {
- assertThat(storeRightManager.areDomainsDifferent("user", "otherUser@domain.org")).isTrue();
+ assertThat(storeRightManager.areDomainsDifferent("user", Username.of("otherUser@domain.org"))).isTrue();
}
@Test
public void areDomainsDifferentShouldReturnFalseWhenNoDomain() {
- assertThat(storeRightManager.areDomainsDifferent("user", "otherUser")).isFalse();
+ assertThat(storeRightManager.areDomainsDifferent("user", Username.of("otherUser"))).isFalse();
}
@Test
public void areDomainsDifferentShouldReturnTrueWhenDomainsAreDifferent() {
- assertThat(storeRightManager.areDomainsDifferent("user@domain.org", "otherUser@otherdomain.org")).isTrue();
+ assertThat(storeRightManager.areDomainsDifferent("user@domain.org", Username.of("otherUser@otherdomain.org"))).isTrue();
}
@Test
public void areDomainsDifferentShouldReturnFalseWhenDomainsAreIdentical() {
- assertThat(storeRightManager.areDomainsDifferent("user@domain.org", "otherUser@domain.org")).isFalse();
+ assertThat(storeRightManager.areDomainsDifferent("user@domain.org", Username.of("otherUser@domain.org"))).isFalse();
}
@Test
@@ -260,7 +261,7 @@ public class StoreRightManagerTest {
new MailboxACL.Entry("b@otherdomain.org", Right.Write),
new MailboxACL.Entry("c@domain.org", Right.Write));
- assertThatThrownBy(() -> storeRightManager.assertSharesBelongsToUserDomain("user@domain.org", mailboxACL.getEntries()))
+ assertThatThrownBy(() -> storeRightManager.assertSharesBelongsToUserDomain(Username.of("user@domain.org"), mailboxACL.getEntries()))
.isInstanceOf(DifferentDomainException.class);
}
@@ -270,14 +271,14 @@ public class StoreRightManagerTest {
new MailboxACL.Entry("b@domain.org", Right.Write),
new MailboxACL.Entry("c@domain.org", Right.Write));
- storeRightManager.assertSharesBelongsToUserDomain("user@domain.org", mailboxACL.getEntries());
+ storeRightManager.assertSharesBelongsToUserDomain(Username.of("user@domain.org"), mailboxACL.getEntries());
}
@Test
public void applyRightsCommandShouldThrowWhenDomainsAreDifferent() {
- MailboxPath mailboxPath = MailboxPath.forUser("user@domain.org", "mailbox");
+ MailboxPath mailboxPath = MailboxPath.forUser(Username.of("user@domain.org"), "mailbox");
ACLCommand aclCommand = MailboxACL.command()
- .forUser("otherUser@otherdomain.org")
+ .forUser(Username.of("otherUser@otherdomain.org"))
.rights(MailboxACL.FULL_RIGHTS)
.asAddition();
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java
index 0f97e65..b7feb4d 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java
@@ -30,6 +30,7 @@ import static org.mockito.Mockito.when;
import java.util.List;
import java.util.Optional;
+import org.apache.james.core.Username;
import org.apache.james.core.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.mailbox.MailboxSession;
@@ -54,7 +55,8 @@ import org.mockito.MockitoAnnotations;
import com.google.common.collect.ImmutableList;
public class MailboxAnnotationListenerTest {
- private static final MailboxPath MAILBOX_PATH = new MailboxPath("namespace", "user", "name");
+ private static final Username USER = Username.of("user");
+ private static final MailboxPath MAILBOX_PATH = new MailboxPath("namespace", USER, "name");
private static final MailboxAnnotationKey PRIVATE_KEY = new MailboxAnnotationKey("/private/comment");
private static final MailboxAnnotationKey SHARED_KEY = new MailboxAnnotationKey("/shared/comment");
@@ -78,20 +80,20 @@ public class MailboxAnnotationListenerTest {
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
- mailboxSession = MailboxSessionUtil.create("test");
+ mailboxSession = MailboxSessionUtil.create(Username.of("test"));
listener = new MailboxAnnotationListener(mailboxSessionMapperFactory, sessionProvider);
deleteEvent = EventFactory.mailboxDeleted()
.randomEventId()
.mailboxSession(mailboxSession)
.mailboxId(mailboxId)
- .mailboxPath(MailboxPath.forUser("user", "name"))
+ .mailboxPath(MailboxPath.forUser(USER, "name"))
.quotaRoot(QuotaRoot.quotaRoot("root", Optional.empty()))
.quotaCount(QuotaCount.count(123))
.quotaSize(QuotaSize.size(456))
.build();
- when(sessionProvider.createSystemSession(deleteEvent.getUsername().asString()))
+ when(sessionProvider.createSystemSession(deleteEvent.getUsername()))
.thenReturn(mailboxSession);
when(mailboxSessionMapperFactory.getAnnotationMapper(eq(mailboxSession))).thenReturn(annotationMapper);
}
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/MessageUtilsTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/MessageUtilsTest.java
index bf1a65f..840890b 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/MessageUtilsTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/MessageUtilsTest.java
@@ -29,6 +29,7 @@ import java.util.Date;
import javax.mail.Flags;
import javax.mail.util.SharedByteArrayInputStream;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxSessionUtil;
import org.apache.james.mailbox.MessageUid;
@@ -65,7 +66,7 @@ public class MessageUtilsTest {
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
- mailboxSession = MailboxSessionUtil.create("user");
+ mailboxSession = MailboxSessionUtil.create(Username.of("user"));
messageUtils = new MessageUtils(mailboxSession, uidProvider, modSeqProvider);
message = new SimpleMailboxMessage(MESSAGE_ID, new Date(), CONTENT.length(), BODY_START, new SharedByteArrayInputStream(CONTENT.getBytes()), new Flags(), new PropertyBuilder(), mailbox.getMailboxId());
}
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentMapperTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentMapperTest.java
index 63f50c2..7312bc7 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentMapperTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentMapperTest.java
@@ -25,6 +25,7 @@ import java.nio.charset.StandardCharsets;
import java.util.Collection;
import java.util.List;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.AttachmentNotFoundException;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.Attachment;
@@ -39,8 +40,8 @@ import com.google.common.collect.ImmutableList;
public abstract class AttachmentMapperTest {
private static final AttachmentId UNKNOWN_ATTACHMENT_ID = AttachmentId.from("unknown");
- public static final Username OWNER = Username.fromRawValue("owner");
- public static final Username ADDITIONAL_OWNER = Username.fromRawValue("additionalOwner");
+ public static final Username OWNER = Username.of("owner");
+ public static final Username ADDITIONAL_OWNER = Username.of("additionalOwner");
private AttachmentMapper attachmentMapper;
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMailboxAssert.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMailboxAssert.java
index 334ee02..39842c5 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMailboxAssert.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMailboxAssert.java
@@ -23,6 +23,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import java.util.List;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.model.Mailbox;
import org.apache.james.mailbox.model.MailboxId;
@@ -55,11 +56,11 @@ public class ListMailboxAssert {
private final class InnerMailbox {
private final MailboxId id;
- private final String user;
+ private final Username user;
private final String name;
private final String namespace;
- public InnerMailbox(MailboxId id, String user, String name, String namespace) {
+ public InnerMailbox(MailboxId id, Username user, String name, String namespace) {
this.id = id;
this.user = user;
this.name = name;
@@ -70,7 +71,7 @@ public class ListMailboxAssert {
return id;
}
- public String getUser() {
+ public Username getUser() {
return user;
}
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMailboxAssertTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMailboxAssertTest.java
index 49082aa..ad4c5c0 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMailboxAssertTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMailboxAssertTest.java
@@ -24,6 +24,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import java.util.List;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.model.Mailbox;
import org.apache.james.mailbox.model.MailboxPath;
import org.junit.Before;
@@ -34,7 +35,7 @@ import com.google.common.collect.ImmutableList;
public class ListMailboxAssertTest {
private static final String OTHER_NAMESPACE = "other_namespace";
private static final String NAME = "name";
- private static final String USER = "user";
+ private static final Username USER = Username.of("user");
private static final String NAMESPACE = "namespace";
private static final long UID_VALIDITY = 42;
private static final Mailbox mailbox1 = new Mailbox(new MailboxPath(NAMESPACE, USER, NAME), UID_VALIDITY);
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssertTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssertTest.java
index ee42ac9..516f39e 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssertTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssertTest.java
@@ -29,6 +29,7 @@ import java.util.List;
import javax.mail.Flags;
import javax.mail.util.SharedByteArrayInputStream;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.model.ComposedMessageId;
import org.apache.james.mailbox.model.ComposedMessageIdWithMetaData;
@@ -62,7 +63,7 @@ public class ListMessageAssertTest {
@Before
public void setUp() {
- benwaInboxMailbox = createMailbox(MailboxPath.forUser("user", "INBOX"));
+ benwaInboxMailbox = createMailbox(MailboxPath.forUser(Username.of("user"), "INBOX"));
message1 = createMessage(benwaInboxMailbox, MESSAGE_ID, BODY_CONTENT1, BODY_START, new PropertyBuilder());
message2 = createMessage(benwaInboxMailbox, MESSAGE_ID, BODY_CONTENT2, BODY_START, new PropertyBuilder());
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java
index 4989cf1..9e9d07a 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java
@@ -21,12 +21,12 @@ package org.apache.james.mailbox.store.mail.model;
import static org.assertj.core.api.Assertions.assertThat;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.acl.ACLDiff;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.Mailbox;
import org.apache.james.mailbox.model.MailboxACL;
import org.apache.james.mailbox.model.MailboxACL.EntryKey;
-import org.apache.james.mailbox.model.MailboxACL.NameType;
import org.apache.james.mailbox.model.MailboxACL.Rfc4314Rights;
import org.apache.james.mailbox.model.MailboxACL.Right;
import org.apache.james.mailbox.model.MailboxId;
@@ -42,6 +42,9 @@ public abstract class MailboxMapperACLTest {
private static final long UID_VALIDITY = 42;
public static final boolean POSITIVE = true;
public static final boolean NEGATIVE = !POSITIVE;
+ private static final Username USER = Username.of("user");
+ private static final Username USER_1 = Username.of("user1");
+ private static final Username USER_2 = Username.of("user2");
private Mailbox benwaInboxMailbox;
@@ -56,7 +59,7 @@ public abstract class MailboxMapperACLTest {
public void setUp() throws Exception {
mailboxMapper = createMailboxMapper();
- MailboxPath benwaInboxPath = MailboxPath.forUser("benwa", "INBOX");
+ MailboxPath benwaInboxPath = MailboxPath.forUser(Username.of("benwa"), "INBOX");
benwaInboxMailbox = createMailbox(benwaInboxPath);
mailboxMapper.save(benwaInboxMailbox);
}
@@ -72,7 +75,7 @@ public abstract class MailboxMapperACLTest {
@Test
public void updateAclShouldSaveAclWhenReplace() throws MailboxException {
- EntryKey key = new EntryKey("user", NameType.user, NEGATIVE);
+ EntryKey key = EntryKey.createUserEntryKey(USER);
Rfc4314Rights rights = new Rfc4314Rights(Right.Administer, Right.PerformExpunge, Right.Write, Right.WriteSeenFlag);
mailboxMapper.updateACL(benwaInboxMailbox, MailboxACL.command().key(key).rights(rights).asReplacement());
@@ -86,7 +89,7 @@ public abstract class MailboxMapperACLTest {
@Test
public void updateAclShouldOverwriteStoredAclWhenReplace() throws MailboxException {
- EntryKey key = new EntryKey("user", NameType.user, NEGATIVE);
+ EntryKey key = EntryKey.createUserEntryKey(USER);
Rfc4314Rights rights = new Rfc4314Rights(Right.Administer, Right.PerformExpunge, Right.Write, Right.WriteSeenFlag);
Rfc4314Rights newRights = new Rfc4314Rights(Right.WriteSeenFlag, Right.CreateMailbox, Right.Administer, Right.PerformExpunge, Right.DeleteMessages);
@@ -103,8 +106,8 @@ public abstract class MailboxMapperACLTest {
@Test
public void updateAclShouldTreatNegativeAndPositiveRightSeparately() throws MailboxException {
- EntryKey key1 = new EntryKey("user", NameType.user, NEGATIVE);
- EntryKey key2 = new EntryKey("user", NameType.user, POSITIVE);
+ EntryKey key1 = EntryKey.createUserEntryKey(USER, NEGATIVE);
+ EntryKey key2 = EntryKey.createUserEntryKey(USER, POSITIVE);
Rfc4314Rights rights = new Rfc4314Rights(Right.Administer, Right.PerformExpunge, Right.Write, Right.WriteSeenFlag);
Rfc4314Rights newRights = new Rfc4314Rights(Right.WriteSeenFlag, Right.CreateMailbox, Right.Administer, Right.PerformExpunge, Right.DeleteMessages);
mailboxMapper.updateACL(benwaInboxMailbox, MailboxACL.command().key(key1).rights(rights).asReplacement());
@@ -121,8 +124,8 @@ public abstract class MailboxMapperACLTest {
@Test
public void updateAclShouldTreatNameTypesRightSeparately() throws MailboxException {
- EntryKey key1 = new EntryKey("user", NameType.user, NEGATIVE);
- EntryKey key2 = new EntryKey("user", NameType.group, NEGATIVE);
+ EntryKey key1 = EntryKey.createUserEntryKey(USER);
+ EntryKey key2 = EntryKey.createGroupEntryKey(USER.asString());
Rfc4314Rights rights = new Rfc4314Rights(Right.Administer, Right.PerformExpunge, Right.Write, Right.WriteSeenFlag);
Rfc4314Rights newRights = new Rfc4314Rights(Right.WriteSeenFlag, Right.CreateMailbox, Right.Administer, Right.PerformExpunge, Right.DeleteMessages);
mailboxMapper.updateACL(benwaInboxMailbox, MailboxACL.command().key(key1).rights(rights).asReplacement());
@@ -139,7 +142,7 @@ public abstract class MailboxMapperACLTest {
@Test
public void updateAclShouldCleanAclEntryWhenEmptyReplace() throws MailboxException {
- EntryKey key = new EntryKey("user", NameType.user, NEGATIVE);
+ EntryKey key = EntryKey.createUserEntryKey(USER);
Rfc4314Rights rights = new Rfc4314Rights(Right.Administer, Right.PerformExpunge, Right.Write, Right.WriteSeenFlag);
Rfc4314Rights newRights = new Rfc4314Rights();
mailboxMapper.updateACL(benwaInboxMailbox, MailboxACL.command().key(key).rights(rights).asReplacement());
@@ -154,7 +157,7 @@ public abstract class MailboxMapperACLTest {
@Test
public void updateAclShouldCombineStoredAclWhenAdd() throws MailboxException {
- EntryKey key = new EntryKey("user", NameType.user, NEGATIVE);
+ EntryKey key = EntryKey.createUserEntryKey(USER);
Rfc4314Rights rights = new Rfc4314Rights(Right.Administer, Right.PerformExpunge, Right.Write, Right.WriteSeenFlag);
Rfc4314Rights newRights = new Rfc4314Rights(Right.WriteSeenFlag, Right.CreateMailbox, Right.Administer, Right.PerformExpunge, Right.DeleteMessages);
Rfc4314Rights bothRights = new Rfc4314Rights(Right.Administer, Right.WriteSeenFlag, Right.PerformExpunge, Right.Write, Right.CreateMailbox, Right.DeleteMessages);
@@ -171,7 +174,7 @@ public abstract class MailboxMapperACLTest {
@Test
public void removeAclShouldRemoveSomeStoredAclWhenAdd() throws MailboxException {
- EntryKey key = new EntryKey("user", NameType.user, NEGATIVE);
+ EntryKey key = EntryKey.createUserEntryKey(USER);
Rfc4314Rights rights = new Rfc4314Rights(Right.Administer, Right.PerformExpunge, Right.Write, Right.WriteSeenFlag);
Rfc4314Rights removedRights = new Rfc4314Rights(Right.WriteSeenFlag, Right.PerformExpunge);
Rfc4314Rights finalRights = new Rfc4314Rights(Right.Administer, Right.Write);
@@ -188,7 +191,7 @@ public abstract class MailboxMapperACLTest {
@Test
public void removeAclShouldNotFailWhenRemovingNonExistingRight() throws MailboxException {
- EntryKey key = new EntryKey("user", NameType.user, NEGATIVE);
+ EntryKey key = EntryKey.createUserEntryKey(USER);
Rfc4314Rights rights = new Rfc4314Rights(Right.Administer, Right.PerformExpunge, Right.Write, Right.WriteSeenFlag);
Rfc4314Rights removedRights = new Rfc4314Rights(Right.WriteSeenFlag, Right.PerformExpunge, Right.Lookup);
Rfc4314Rights finalRights = new Rfc4314Rights(Right.Administer, Right.Write);
@@ -205,7 +208,7 @@ public abstract class MailboxMapperACLTest {
@Test
public void resetAclShouldReplaceStoredAcl() throws MailboxException {
- EntryKey key = new EntryKey("user", NameType.user, NEGATIVE);
+ EntryKey key = EntryKey.createUserEntryKey(USER);
Rfc4314Rights rights = new Rfc4314Rights(Right.Administer, Right.PerformExpunge, Right.Write, Right.WriteSeenFlag);
Rfc4314Rights newRights = new Rfc4314Rights(Right.WriteSeenFlag, Right.CreateMailbox, Right.Administer, Right.PerformExpunge, Right.DeleteMessages);
mailboxMapper.updateACL(benwaInboxMailbox, MailboxACL.command().key(key).rights(rights).asReplacement());
@@ -221,7 +224,7 @@ public abstract class MailboxMapperACLTest {
@Test
public void resetAclShouldInitializeStoredAcl() throws MailboxException {
- EntryKey key = new EntryKey("user", NameType.user, NEGATIVE);
+ EntryKey key = EntryKey.createUserEntryKey(USER);
Rfc4314Rights rights = new Rfc4314Rights(Right.WriteSeenFlag, Right.CreateMailbox, Right.Administer, Right.PerformExpunge, Right.DeleteMessages);
mailboxMapper.setACL(benwaInboxMailbox,
new MailboxACL(ImmutableMap.of(key, rights)));
@@ -242,12 +245,12 @@ public abstract class MailboxMapperACLTest {
@Test
public void findMailboxesShouldReturnEmptyWhenNone() throws MailboxException {
- assertThat(mailboxMapper.findNonPersonalMailboxes("user", Right.Administer)).isEmpty();
+ assertThat(mailboxMapper.findNonPersonalMailboxes(USER, Right.Administer)).isEmpty();
}
@Test
public void findMailboxesShouldReturnEmptyWhenRightDoesntMatch() throws MailboxException {
- EntryKey key = EntryKey.createUserEntryKey("user");
+ EntryKey key = EntryKey.createUserEntryKey(USER);
Rfc4314Rights rights = new Rfc4314Rights(Right.Administer);
mailboxMapper.updateACL(benwaInboxMailbox,
MailboxACL.command()
@@ -255,7 +258,7 @@ public abstract class MailboxMapperACLTest {
.rights(rights)
.asReplacement());
- assertThat(mailboxMapper.findNonPersonalMailboxes("user", Right.Read)).isEmpty();
+ assertThat(mailboxMapper.findNonPersonalMailboxes(USER, Right.Read)).isEmpty();
}
@Test
@@ -263,17 +266,17 @@ public abstract class MailboxMapperACLTest {
Rfc4314Rights rights = new Rfc4314Rights(Right.Administer, Right.PerformExpunge);
mailboxMapper.updateACL(benwaInboxMailbox,
MailboxACL.command()
- .key(EntryKey.createUserEntryKey("user"))
+ .key(EntryKey.createUserEntryKey(USER))
.rights(rights)
.asAddition());
- assertThat(mailboxMapper.findNonPersonalMailboxes("user", Right.Administer))
+ assertThat(mailboxMapper.findNonPersonalMailboxes(USER, Right.Administer))
.containsOnly(benwaInboxMailbox);
}
@Test
public void updateACLShouldOverwriteUsersRights() throws MailboxException {
- EntryKey key = EntryKey.createUserEntryKey("user");
+ EntryKey key = EntryKey.createUserEntryKey(USER);
Rfc4314Rights initialRights = new Rfc4314Rights(Right.Administer);
mailboxMapper.updateACL(benwaInboxMailbox,
MailboxACL.command()
@@ -287,16 +290,16 @@ public abstract class MailboxMapperACLTest {
.rights(newRights)
.asReplacement());
- assertThat(mailboxMapper.findNonPersonalMailboxes("user", Right.Read))
+ assertThat(mailboxMapper.findNonPersonalMailboxes(USER, Right.Read))
.containsOnly(benwaInboxMailbox);
- assertThat(mailboxMapper.findNonPersonalMailboxes("user", Right.Administer))
+ assertThat(mailboxMapper.findNonPersonalMailboxes(USER, Right.Administer))
.isEmpty();
}
@Test
public void findMailboxesShouldNotReportDeletedACLViaReplace() throws MailboxException {
- EntryKey key = EntryKey.createUserEntryKey("user");
+ EntryKey key = EntryKey.createUserEntryKey(USER);
Rfc4314Rights initialRights = new Rfc4314Rights(Right.Administer);
mailboxMapper.updateACL(benwaInboxMailbox,
MailboxACL.command()
@@ -311,13 +314,13 @@ public abstract class MailboxMapperACLTest {
.rights(new Rfc4314Rights())
.build());
- assertThat(mailboxMapper.findNonPersonalMailboxes("user", Right.Administer))
+ assertThat(mailboxMapper.findNonPersonalMailboxes(USER, Right.Administer))
.isEmpty();
}
@Test
public void findMailboxesShouldNotReportDeletedACLViaRemove() throws MailboxException {
- EntryKey key = EntryKey.createUserEntryKey("user");
+ EntryKey key = EntryKey.createUserEntryKey(USER);
Rfc4314Rights initialRights = new Rfc4314Rights(Right.Administer);
mailboxMapper.updateACL(benwaInboxMailbox,
MailboxACL.command()
@@ -330,13 +333,13 @@ public abstract class MailboxMapperACLTest {
.rights(initialRights)
.asRemoval());
- assertThat(mailboxMapper.findNonPersonalMailboxes("user", Right.Administer))
+ assertThat(mailboxMapper.findNonPersonalMailboxes(USER, Right.Administer))
.isEmpty();
}
@Test
public void findMailboxesShouldNotReportDeletedMailboxes() throws MailboxException {
- EntryKey key = EntryKey.createUserEntryKey("user");
+ EntryKey key = EntryKey.createUserEntryKey(USER);
Rfc4314Rights initialRights = new Rfc4314Rights(Right.Administer);
mailboxMapper.updateACL(benwaInboxMailbox,
MailboxACL.command()
@@ -345,29 +348,29 @@ public abstract class MailboxMapperACLTest {
.asReplacement());
mailboxMapper.delete(benwaInboxMailbox);
- assertThat(mailboxMapper.findNonPersonalMailboxes("user", Right.Administer))
+ assertThat(mailboxMapper.findNonPersonalMailboxes(USER, Right.Administer))
.isEmpty();
}
@Test
public void setACLShouldStoreMultipleUsersRights() throws MailboxException {
- EntryKey user1 = EntryKey.createUserEntryKey("user1");
- EntryKey user2 = EntryKey.createUserEntryKey("user2");
+ EntryKey user1 = EntryKey.createUserEntryKey(USER_1);
+ EntryKey user2 = EntryKey.createUserEntryKey(USER_2);
mailboxMapper.setACL(benwaInboxMailbox, new MailboxACL(
new MailboxACL.Entry(user1, new Rfc4314Rights(Right.Administer)),
new MailboxACL.Entry(user2, new Rfc4314Rights(Right.Read))));
- assertThat(mailboxMapper.findNonPersonalMailboxes("user1", Right.Administer))
+ assertThat(mailboxMapper.findNonPersonalMailboxes(USER_1, Right.Administer))
.containsOnly(benwaInboxMailbox);
- assertThat(mailboxMapper.findNonPersonalMailboxes("user2", Right.Read))
+ assertThat(mailboxMapper.findNonPersonalMailboxes(USER_2, Right.Read))
.containsOnly(benwaInboxMailbox);
}
@Test
public void findMailboxesShouldNotReportRightsRemovedViaSetAcl() throws MailboxException {
- EntryKey user1 = EntryKey.createUserEntryKey("user1");
- EntryKey user2 = EntryKey.createUserEntryKey("user2");
+ EntryKey user1 = EntryKey.createUserEntryKey(USER_1);
+ EntryKey user2 = EntryKey.createUserEntryKey(USER_2);
mailboxMapper.setACL(benwaInboxMailbox, new MailboxACL(
new MailboxACL.Entry(user1, new Rfc4314Rights(Right.Administer)),
@@ -376,14 +379,14 @@ public abstract class MailboxMapperACLTest {
mailboxMapper.setACL(benwaInboxMailbox, new MailboxACL(
new MailboxACL.Entry(user2, new Rfc4314Rights(Right.Read))));
- assertThat(mailboxMapper.findNonPersonalMailboxes("user1", Right.Administer))
+ assertThat(mailboxMapper.findNonPersonalMailboxes(USER_1, Right.Administer))
.isEmpty();
}
@Test
public void findMailboxesShouldReportRightsUpdatedViaSetAcl() throws MailboxException {
- EntryKey user1 = EntryKey.createUserEntryKey("user1");
- EntryKey user2 = EntryKey.createUserEntryKey("user2");
+ EntryKey user1 = EntryKey.createUserEntryKey(USER_1);
+ EntryKey user2 = EntryKey.createUserEntryKey(USER_2);
mailboxMapper.setACL(benwaInboxMailbox, new MailboxACL(
new MailboxACL.Entry(user1, new Rfc4314Rights(Right.Administer)),
@@ -392,13 +395,13 @@ public abstract class MailboxMapperACLTest {
mailboxMapper.setACL(benwaInboxMailbox, new MailboxACL(
new MailboxACL.Entry(user2, new Rfc4314Rights(Right.Write))));
- assertThat(mailboxMapper.findNonPersonalMailboxes("user2", Right.Write))
+ assertThat(mailboxMapper.findNonPersonalMailboxes(USER_2, Right.Write))
.containsOnly(benwaInboxMailbox);
}
@Test
public void findMailboxByPathShouldReturnMailboxWithACL() throws MailboxException {
- EntryKey key = EntryKey.createUserEntryKey("user");
+ EntryKey key = EntryKey.createUserEntryKey(USER);
Rfc4314Rights rights = new Rfc4314Rights(Right.WriteSeenFlag, Right.CreateMailbox, Right.Administer, Right.PerformExpunge, Right.DeleteMessages);
mailboxMapper.setACL(benwaInboxMailbox,
new MailboxACL(ImmutableMap.of(key, rights)));
@@ -413,7 +416,7 @@ public abstract class MailboxMapperACLTest {
@Test
public void setACLShouldReturnACLDiff() throws MailboxException {
- EntryKey key = EntryKey.createUserEntryKey("user");
+ EntryKey key = EntryKey.createUserEntryKey(USER);
Rfc4314Rights rights = new Rfc4314Rights(Right.WriteSeenFlag, Right.CreateMailbox, Right.Administer, Right.PerformExpunge, Right.DeleteMessages);
ACLDiff expectAclDiff = ACLDiff.computeDiff(MailboxACL.EMPTY, MailboxACL.EMPTY.apply(
@@ -428,7 +431,7 @@ public abstract class MailboxMapperACLTest {
@Test
public void updateACLShouldReturnACLDiff() throws MailboxException {
- EntryKey key = EntryKey.createUserEntryKey("user");
+ EntryKey key = EntryKey.createUserEntryKey(USER);
Rfc4314Rights rights = new Rfc4314Rights(Right.WriteSeenFlag, Right.CreateMailbox, Right.Administer, Right.PerformExpunge, Right.DeleteMessages);
MailboxACL.ACLCommand aclCommand = MailboxACL.command()
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperTest.java
index 739d1bd..2c4efef 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperTest.java
@@ -25,6 +25,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
import java.util.List;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MailboxExistsException;
import org.apache.james.mailbox.exception.MailboxNotFoundException;
@@ -44,10 +45,11 @@ import org.junit.Test;
* You then just need to instantiate your mailbox mapper and an IdGenerator.
*/
public abstract class MailboxMapperTest {
-
+
private static final char DELIMITER = '.';
private static final char WILDCARD = '%';
private static final long UID_VALIDITY = 42;
+ private static final Username BENWA = Username.of("benwa");
private MailboxPath benwaInboxPath;
private Mailbox benwaInboxMailbox;
@@ -80,7 +82,7 @@ public abstract class MailboxMapperTest {
@Test
public void findMailboxByPathWhenAbsentShouldFail() throws MailboxException {
- assertThatThrownBy(() -> mailboxMapper.findMailboxByPath(MailboxPath.forUser("benwa", "INBOX")))
+ assertThatThrownBy(() -> mailboxMapper.findMailboxByPath(MailboxPath.forUser(BENWA, "INBOX")))
.isInstanceOf(MailboxNotFoundException.class);
}
@@ -209,14 +211,14 @@ public abstract class MailboxMapperTest {
}
private void initData() {
- benwaInboxPath = MailboxPath.forUser("benwa", "INBOX");
- benwaWorkPath = MailboxPath.forUser("benwa", "INBOX" + DELIMITER + "work");
- benwaWorkTodoPath = MailboxPath.forUser("benwa", "INBOX" + DELIMITER + "work" + DELIMITER + "todo");
- benwaPersoPath = MailboxPath.forUser("benwa", "INBOX" + DELIMITER + "perso");
- benwaWorkDonePath = MailboxPath.forUser("benwa", "INBOX" + DELIMITER + "work" + DELIMITER + "done");
- bobInboxPath = MailboxPath.forUser("bob", "INBOX");
- bobyMailboxPath = MailboxPath.forUser("boby", "INBOX.that.is.a.trick");
- bobDifferentNamespacePath = new MailboxPath("#private_bob", "bob", "INBOX.bob");
+ benwaInboxPath = MailboxPath.forUser(BENWA, "INBOX");
+ benwaWorkPath = MailboxPath.forUser(BENWA, "INBOX" + DELIMITER + "work");
+ benwaWorkTodoPath = MailboxPath.forUser(BENWA, "INBOX" + DELIMITER + "work" + DELIMITER + "todo");
+ benwaPersoPath = MailboxPath.forUser(BENWA, "INBOX" + DELIMITER + "perso");
+ benwaWorkDonePath = MailboxPath.forUser(BENWA, "INBOX" + DELIMITER + "work" + DELIMITER + "done");
+ bobInboxPath = MailboxPath.forUser(Username.of("bob"), "INBOX");
+ bobyMailboxPath = MailboxPath.forUser(Username.of("boby"), "INBOX.that.is.a.trick");
+ bobDifferentNamespacePath = new MailboxPath("#private_bob", Username.of("bob"), "INBOX.bob");
benwaInboxMailbox = createMailbox(benwaInboxPath);
benwaWorkMailbox = createMailbox(benwaWorkPath);
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
index 1144443..264f2bc 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
@@ -31,6 +31,7 @@ import javax.mail.Flags.Flag;
import javax.mail.util.SharedByteArrayInputStream;
import org.apache.commons.lang3.tuple.Pair;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.FlagsBuilder;
import org.apache.james.mailbox.MessageManager.FlagsUpdateMode;
import org.apache.james.mailbox.exception.MailboxException;
@@ -58,6 +59,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMultimap;
public abstract class MessageIdMapperTest {
+ private static final Username BENWA = Username.of("benwa");
@Rule
public ExpectedException expectedException = ExpectedException.none();
@@ -92,8 +94,8 @@ public abstract class MessageIdMapperTest {
this.messageMapper = mapperProvider.createMessageMapper();
this.mailboxMapper = mapperProvider.createMailboxMapper();
- benwaInboxMailbox = createMailbox(MailboxPath.forUser("benwa", "INBOX"));
- benwaWorkMailbox = createMailbox(MailboxPath.forUser("benwa", "INBOX" + DELIMITER + "work"));
+ benwaInboxMailbox = createMailbox(MailboxPath.forUser(BENWA, "INBOX"));
+ benwaWorkMailbox = createMailbox(MailboxPath.forUser(BENWA, "INBOX" + DELIMITER + "work"));
message1 = createMessage(benwaInboxMailbox, "Subject: Test1 \n\nBody1\n.\n", BODY_START, new PropertyBuilder());
message2 = createMessage(benwaInboxMailbox, "Subject: Test2 \n\nBody2\n.\n", BODY_START, new PropertyBuilder());
@@ -163,7 +165,7 @@ public abstract class MessageIdMapperTest {
@Test
public void saveShouldThrowWhenMailboxDoesntExist() throws Exception {
- Mailbox notPersistedMailbox = new Mailbox(MailboxPath.forUser("benwa", "mybox"), UID_VALIDITY);
+ Mailbox notPersistedMailbox = new Mailbox(MailboxPath.forUser(BENWA, "mybox"), UID_VALIDITY);
notPersistedMailbox.setMailboxId(mapperProvider.generateId());
SimpleMailboxMessage message = createMessage(notPersistedMailbox, "Subject: Test \n\nBody\n.\n", BODY_START, new PropertyBuilder());
message.setUid(mapperProvider.generateMessageUid());
@@ -208,7 +210,7 @@ public abstract class MessageIdMapperTest {
message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
sut.save(message1);
- Mailbox notPersistedMailbox = new Mailbox(MailboxPath.forUser("benwa", "mybox"), UID_VALIDITY);
+ Mailbox notPersistedMailbox = new Mailbox(MailboxPath.forUser(BENWA, "mybox"), UID_VALIDITY);
notPersistedMailbox.setMailboxId(mapperProvider.generateId());
SimpleMailboxMessage message1InOtherMailbox = SimpleMailboxMessage.copy(notPersistedMailbox.getMailboxId(), message1);
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
index 762c410..b223a79 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
@@ -36,6 +36,7 @@ import javax.mail.Flags;
import javax.mail.Flags.Flag;
import javax.mail.util.SharedByteArrayInputStream;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.FlagsBuilder;
import org.apache.james.mailbox.MessageManager.FlagsUpdateMode;
import org.apache.james.mailbox.MessageUid;
@@ -71,6 +72,7 @@ public abstract class MessageMapperTest {
private static final String USER_FLAG = "userFlag";
private static final String CUSTOMS_USER_FLAGS_VALUE = "CustomsFlags";
+ private static final Username BENWA = Username.of("benwa");
private MapperProvider mapperProvider;
private MessageMapper messageMapper;
@@ -103,8 +105,8 @@ public abstract class MessageMapperTest {
}
private void initData() throws MailboxException {
- benwaInboxMailbox = createMailbox(MailboxPath.forUser("benwa", "INBOX"));
- benwaWorkMailbox = createMailbox(MailboxPath.forUser("benwa", "INBOX" + DELIMITER + "work"));
+ benwaInboxMailbox = createMailbox(MailboxPath.forUser(BENWA, "INBOX"));
+ benwaWorkMailbox = createMailbox(MailboxPath.forUser(BENWA, "INBOX" + DELIMITER + "work"));
message1 = createMessage(benwaInboxMailbox, mapperProvider.generateMessageId(), "Subject: Test1 \n\nBody1\n.\n", BODY_START, new PropertyBuilder());
message2 = createMessage(benwaInboxMailbox, mapperProvider.generateMessageId(), "Subject: Test2 \n\nBody2\n.\n", BODY_START, new PropertyBuilder());
@@ -1103,7 +1105,7 @@ public abstract class MessageMapperTest {
@Test
public void getApplicableFlagShouldReturnDefaultApplicableFlagsWhenMailboxEmpty() throws Exception {
- Mailbox emptyMailbox = createMailbox(MailboxPath.forUser("benwa", "EMPTY"));
+ Mailbox emptyMailbox = createMailbox(MailboxPath.forUser(BENWA, "EMPTY"));
assertThat(messageMapper.getApplicableFlag(emptyMailbox))
.isEqualTo(new FlagsBuilder()
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMoveTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMoveTest.java
index 27c34fd..8658d50 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMoveTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMoveTest.java
@@ -26,6 +26,7 @@ import java.util.Date;
import javax.mail.Flags;
import javax.mail.util.SharedByteArrayInputStream;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.Mailbox;
import org.apache.james.mailbox.model.MailboxId;
@@ -72,8 +73,9 @@ public abstract class MessageMoveTest {
this.mailboxMapper = mapperProvider.createMailboxMapper();
Assume.assumeNotNull(mailboxMapper);
- benwaInboxMailbox = createMailbox(MailboxPath.forUser("benwa", "INBOX"));
- benwaWorkMailbox = createMailbox(MailboxPath.forUser("benwa", "INBOX" + DELIMITER + "work"));
+ Username benwa = Username.of("benwa");
+ benwaInboxMailbox = createMailbox(MailboxPath.forUser(benwa, "INBOX"));
+ benwaWorkMailbox = createMailbox(MailboxPath.forUser(benwa, "INBOX" + DELIMITER + "work"));
message1 = createMessage(benwaInboxMailbox, mapperProvider.generateMessageId(), "Subject: Test1 \n\nBody1\n.\n", BODY_START, new PropertyBuilder());
}
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageWithAttachmentMapperTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageWithAttachmentMapperTest.java
index 2c8d794..7ab9137 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageWithAttachmentMapperTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageWithAttachmentMapperTest.java
@@ -30,6 +30,7 @@ import java.util.List;
import javax.mail.Flags;
import javax.mail.util.SharedByteArrayInputStream;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.Attachment;
import org.apache.james.mailbox.model.AttachmentId;
@@ -81,7 +82,7 @@ public abstract class MessageWithAttachmentMapperTest {
this.messageMapper = mapperProvider.createMessageMapper();
this.attachmentMapper = mapperProvider.createAttachmentMapper();
- attachmentsMailbox = createMailbox(MailboxPath.forUser("benwa", "Attachments"));
+ attachmentsMailbox = createMailbox(MailboxPath.forUser(Username.of("benwa"), "Attachments"));
Attachment attachment = Attachment.builder()
.attachmentId(AttachmentId.from("123"))
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/UsernameTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/UsernameTest.java
deleted file mode 100644
index 1f34d74..0000000
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/UsernameTest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-
-package org.apache.james.mailbox.store.mail.model;
-
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import org.apache.james.mailbox.MailboxSession;
-import org.junit.Test;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-
-public class UsernameTest {
-
- @Test
- public void shouldRespectBeanContract() {
- EqualsVerifier.forClass(Username.class)
- .verify();
- }
-
- @Test
- public void fromRawValueShouldThrowOnNull() {
- assertThatThrownBy(() -> Username.fromRawValue(null))
- .isInstanceOf(NullPointerException.class);
- }
-
- @Test
- public void fromMailboxSessionShouldThrowOnNull() {
- assertThatThrownBy(() -> Username.fromMailboxSession(null))
- .isInstanceOf(NullPointerException.class);
- }
-
- @Test
- public void fromMailboxSessionShouldThrowOnNullUser() {
- MailboxSession mailboxSession = mock(MailboxSession.class);
- when(mailboxSession.getUser()).thenReturn(null);
-
- assertThatThrownBy(() -> Username.fromMailboxSession(mailboxSession))
- .isInstanceOf(NullPointerException.class);
- }
-
-}
\ No newline at end of file
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolverTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolverTest.java
index 97bb334..91aaeb3 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolverTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolverTest.java
@@ -26,6 +26,7 @@ import static org.mockito.Mockito.when;
import java.util.Optional;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.Mailbox;
@@ -43,10 +44,11 @@ import com.google.common.collect.Lists;
public class DefaultUserQuotaRootResolverTest {
- private static final MailboxPath MAILBOX_PATH = MailboxPath.forUser("benwa", "INBOX");
+ private static final Username BENWA = Username.of("benwa");
+ private static final MailboxPath MAILBOX_PATH = MailboxPath.forUser(BENWA, "INBOX");
public static final Mailbox MAILBOX = new Mailbox(MAILBOX_PATH, 10);
- private static final MailboxPath PATH_LIKE = MailboxPath.forUser("benwa", "%");
- private static final MailboxPath MAILBOX_PATH_2 = MailboxPath.forUser("benwa", "test");
+ private static final MailboxPath PATH_LIKE = MailboxPath.forUser(BENWA, "%");
+ private static final MailboxPath MAILBOX_PATH_2 = MailboxPath.forUser(BENWA, "test");
private static final Mailbox MAILBOX_2 = new Mailbox(MAILBOX_PATH_2, 10);
private static final QuotaRoot QUOTA_ROOT = QuotaRoot.quotaRoot("#private&benwa", Optional.empty());
private static final MailboxId MAILBOX_ID = TestId.of(42);
@@ -68,12 +70,12 @@ public class DefaultUserQuotaRootResolverTest {
@Test(expected = IllegalArgumentException.class)
public void getQuotaRootShouldThrowWhenNamespaceContainsSeparator() {
- testee.getQuotaRoot(new MailboxPath("#pr&ivate", "benwa", "INBOX"));
+ testee.getQuotaRoot(new MailboxPath("#pr&ivate", BENWA, "INBOX"));
}
@Test(expected = IllegalArgumentException.class)
public void getQuotaRootShouldThrowWhenUserContainsSeparator() {
- testee.getQuotaRoot(MailboxPath.forUser("ben&wa", "INBOX"));
+ testee.getQuotaRoot(MailboxPath.forUser(Username.of("ben&wa"), "INBOX"));
}
@Test
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/QuotaCheckerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/QuotaCheckerTest.java
index 86d5cc1..81ca0d6 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/QuotaCheckerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/QuotaCheckerTest.java
@@ -25,6 +25,7 @@ import static org.mockito.Mockito.when;
import java.util.Optional;
+import org.apache.james.core.Username;
import org.apache.james.core.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.mailbox.exception.MailboxException;
@@ -41,7 +42,7 @@ import org.junit.Test;
public class QuotaCheckerTest {
public static final QuotaRoot QUOTA_ROOT = QuotaRoot.quotaRoot("benwa", Optional.empty());
- public static final MailboxPath MAILBOX_PATH = MailboxPath.forUser("benwa", "INBOX");
+ public static final MailboxPath MAILBOX_PATH = MailboxPath.forUser(Username.of("benwa"), "INBOX");
public static final Mailbox MAILBOX = new Mailbox(MAILBOX_PATH, 10);
private QuotaRootResolver mockedQuotaRootResolver;
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
index 6447070..0133465 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
@@ -32,6 +32,7 @@ import java.util.concurrent.TimeUnit;
import javax.mail.Flags;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageIdManager;
@@ -68,8 +69,8 @@ import com.google.common.collect.ImmutableList;
public abstract class AbstractMessageSearchIndexTest {
protected static final String INBOX = "INBOX";
- protected static final String OTHERUSER = "otheruser";
- protected static final String USERNAME = "benwa";
+ protected static final Username OTHERUSER = Username.of("otheruser");
+ protected static final Username USERNAME = Username.of("benwa");
public static final long LIMIT = 100L;
public static final boolean RECENT = true;
diff --git a/mailbox/tools/copier/src/main/java/org/apache/james/mailbox/tools/copier/MailboxCopierImpl.java b/mailbox/tools/copier/src/main/java/org/apache/james/mailbox/tools/copier/MailboxCopierImpl.java
index 88adef4..4f04f4b 100644
--- a/mailbox/tools/copier/src/main/java/org/apache/james/mailbox/tools/copier/MailboxCopierImpl.java
+++ b/mailbox/tools/copier/src/main/java/org/apache/james/mailbox/tools/copier/MailboxCopierImpl.java
@@ -27,6 +27,7 @@ import java.util.Set;
import javax.mail.Flags.Flag;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
@@ -72,7 +73,7 @@ public class MailboxCopierImpl implements MailboxCopier {
List<MailboxPath> mailboxPathList = null;
- srcMailboxSession = srcMailboxManager.createSystemSession("manager");
+ srcMailboxSession = srcMailboxManager.createSystemSession(Username.of("manager"));
srcMailboxManager.startProcessingRequest(srcMailboxSession);
mailboxPathList = srcMailboxManager.list(srcMailboxSession);
srcMailboxManager.endProcessingRequest(srcMailboxSession);
diff --git a/mailbox/tools/copier/src/test/java/org/apache/james/mailbox/tools/copier/MailboxCopierTest.java b/mailbox/tools/copier/src/test/java/org/apache/james/mailbox/tools/copier/MailboxCopierTest.java
index 54a170d..e51ce03 100644
--- a/mailbox/tools/copier/src/test/java/org/apache/james/mailbox/tools/copier/MailboxCopierTest.java
+++ b/mailbox/tools/copier/src/test/java/org/apache/james/mailbox/tools/copier/MailboxCopierTest.java
@@ -23,6 +23,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import java.io.IOException;
import java.util.List;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
@@ -110,7 +111,7 @@ public class MailboxCopierTest {
* @throws BadCredentialsException
*/
private void assertMailboxManagerSize(MailboxManager mailboxManager, int multiplicationFactor) throws BadCredentialsException, MailboxException {
- MailboxSession mailboxSession = mailboxManager.createSystemSession("manager");
+ MailboxSession mailboxSession = mailboxManager.createSystemSession(Username.of("manager"));
mailboxManager.startProcessingRequest(mailboxSession);
List<MailboxPath> mailboxPathList = mailboxManager.list(mailboxSession);
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java
index f2b57cb..bb08369 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java
@@ -103,7 +103,7 @@ public class ReIndexerImpl implements ReIndexer {
}
private void validateIdExists(MailboxId mailboxId) throws MailboxException {
- MailboxSession mailboxSession = mailboxManager.createSystemSession("ReIndexingImap");
+ MailboxSession mailboxSession = mailboxManager.createSystemSession(Username.of("ReIndexingImap"));
mapperFactory.getMailboxMapper(mailboxSession).findMailboxById(mailboxId);
}
}
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java
index d1a0941..390c557 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java
@@ -55,6 +55,7 @@ public class ReIndexerPerformer {
private static final int NO_LIMIT = 0;
private static final int SINGLE_MESSAGE = 1;
private static final String RE_INDEXING = "re-indexing";
+ private static final Username RE_INDEXER_PERFORMER_USER = Username.of(RE_INDEXING);
private final MailboxManager mailboxManager;
private final ListeningMessageSearchIndex messageSearchIndex;
@@ -71,7 +72,7 @@ public class ReIndexerPerformer {
Task.Result reIndex(MailboxId mailboxId, ReprocessingContext reprocessingContext) throws Exception {
LOGGER.info("Intend to reindex mailbox with mailboxId {}", mailboxId.serialize());
- MailboxSession mailboxSession = mailboxManager.createSystemSession(RE_INDEXING);
+ MailboxSession mailboxSession = mailboxManager.createSystemSession(RE_INDEXER_PERFORMER_USER);
Mailbox mailbox = mailboxSessionMapperFactory.getMailboxMapper(mailboxSession).findMailboxById(mailboxId);
messageSearchIndex.deleteAll(mailboxSession, mailboxId);
try {
@@ -108,7 +109,7 @@ public class ReIndexerPerformer {
}
Task.Result reIndex(ReprocessingContext reprocessingContext) throws MailboxException {
- MailboxSession mailboxSession = mailboxManager.createSystemSession(RE_INDEXING);
+ MailboxSession mailboxSession = mailboxManager.createSystemSession(RE_INDEXER_PERFORMER_USER);
LOGGER.info("Starting a full reindex");
Stream<MailboxId> mailboxIds = mailboxSessionMapperFactory.getMailboxMapper(mailboxSession).list()
.stream()
@@ -122,7 +123,7 @@ public class ReIndexerPerformer {
}
Task.Result reIndex(Username username, ReprocessingContext reprocessingContext) throws MailboxException {
- MailboxSession mailboxSession = mailboxManager.createSystemSession(username.asString());
+ MailboxSession mailboxSession = mailboxManager.createSystemSession(username);
LOGGER.info("Starting a reindex for user {}", username.asString());
Stream<MailboxId> mailboxIds = mailboxManager.search(MailboxQuery.privateMailboxesBuilder(mailboxSession).build(), mailboxSession)
@@ -137,7 +138,7 @@ public class ReIndexerPerformer {
}
Task.Result handleMessageReIndexing(MailboxId mailboxId, MessageUid uid, ReprocessingContext reprocessingContext) throws MailboxException {
- MailboxSession mailboxSession = mailboxManager.createSystemSession(RE_INDEXING);
+ MailboxSession mailboxSession = mailboxManager.createSystemSession(RE_INDEXER_PERFORMER_USER);
Mailbox mailbox = mailboxSessionMapperFactory.getMailboxMapper(mailboxSession).findMailboxById(mailboxId);
return handleMessageReIndexing(mailboxSession, mailbox, uid, reprocessingContext);
@@ -145,7 +146,7 @@ public class ReIndexerPerformer {
Task.Result handleMessageIdReindexing(MessageId messageId) {
try {
- MailboxSession session = mailboxManager.createSystemSession("MessageIdReIndexerImpl");
+ MailboxSession session = mailboxManager.createSystemSession(RE_INDEXER_PERFORMER_USER);
return mailboxSessionMapperFactory.getMessageIdMapper(session)
.find(ImmutableList.of(messageId), MessageMapper.FetchType.Full)
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/CassandraReIndexerImplTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/CassandraReIndexerImplTest.java
index a862423..42a3d5d 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/CassandraReIndexerImplTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/CassandraReIndexerImplTest.java
@@ -30,6 +30,7 @@ import java.time.Duration;
import org.apache.james.backends.cassandra.CassandraCluster;
import org.apache.james.backends.cassandra.CassandraClusterExtension;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
import org.apache.james.mailbox.cassandra.CassandraMailboxManager;
@@ -51,7 +52,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
import com.google.common.base.Strings;
public class CassandraReIndexerImplTest {
- private static final String USERNAME = "benwa@apache.org";
+ private static final Username USERNAME = Username.of("benwa@apache.org");
public static final MailboxPath INBOX = MailboxPath.forUser(USERNAME, "INBOX");
private CassandraMailboxManager mailboxManager;
private ListeningMessageSearchIndex messageSearchIndex;
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/MessageIdReIndexerImplTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/MessageIdReIndexerImplTest.java
index 8263a93..3dfe4cb 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/MessageIdReIndexerImplTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/MessageIdReIndexerImplTest.java
@@ -25,6 +25,7 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
import org.apache.james.mailbox.inmemory.InMemoryMailboxManager;
@@ -41,7 +42,7 @@ import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
public class MessageIdReIndexerImplTest {
- private static final String USERNAME = "benwa@apache.org";
+ private static final Username USERNAME = Username.of("benwa@apache.org");
public static final MailboxPath INBOX = MailboxPath.forUser(USERNAME, "INBOX");
private InMemoryMailboxManager mailboxManager;
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
index 07fd1a4..d554aed 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
@@ -48,7 +48,7 @@ import org.mockito.ArgumentCaptor;
public class ReIndexerImplTest {
- private static final String USERNAME = "benwa@apache.org";
+ private static final Username USERNAME = Username.of("benwa@apache.org");
public static final MailboxPath INBOX = MailboxPath.forUser(USERNAME, "INBOX");
private InMemoryMailboxManager mailboxManager;
private ListeningMessageSearchIndex messageSearchIndex;
@@ -126,7 +126,7 @@ public class ReIndexerImplTest {
MessageManager.AppendCommand.builder().build("header: value\r\n\r\nbody"),
systemSession);
- reIndexer.reIndex(Username.of(USERNAME)).run();
+ reIndexer.reIndex(USERNAME).run();
ArgumentCaptor<MailboxMessage> messageCaptor = ArgumentCaptor.forClass(MailboxMessage.class);
ArgumentCaptor<MailboxId> mailboxCaptor1 = ArgumentCaptor.forClass(MailboxId.class);
ArgumentCaptor<Mailbox> mailboxCaptor2 = ArgumentCaptor.forClass(Mailbox.class);
diff --git a/mailbox/zoo-seq-provider/src/test/java/org/apache/james/mailbox/store/mail/ZooUidProviderTest.java b/mailbox/zoo-seq-provider/src/test/java/org/apache/james/mailbox/store/mail/ZooUidProviderTest.java
index 660a288..9ef11eb 100644
--- a/mailbox/zoo-seq-provider/src/test/java/org/apache/james/mailbox/store/mail/ZooUidProviderTest.java
+++ b/mailbox/zoo-seq-provider/src/test/java/org/apache/james/mailbox/store/mail/ZooUidProviderTest.java
@@ -29,6 +29,7 @@ import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.RetryOneTime;
import org.apache.curator.test.TestingServer;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.model.Mailbox;
import org.apache.james.mailbox.model.MailboxId;
@@ -156,8 +157,9 @@ public class ZooUidProviderTest {
client.start();
uuidProvider = new ZooUidProvider(client, retryPolicy);
longProvider = new ZooUidProvider(client, retryPolicy);
- MailboxPath path1 = new MailboxPath("namespacetest", "namespaceuser", "UUID");
- MailboxPath path2 = new MailboxPath("namespacetest", "namespaceuser", "Long");
+ Username namespaceuser = Username.of("namespaceuser");
+ MailboxPath path1 = new MailboxPath("namespacetest", namespaceuser, "UUID");
+ MailboxPath path2 = new MailboxPath("namespacetest", namespaceuser, "Long");
mailboxUUID = new Mailbox(path1, 1L);
mailboxUUID.setMailboxId(UUIDId.of(randomUUID));
mailboxLong = new Mailbox(path2, 2L);
diff --git a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
index 15ccec4..d8f0dc6 100644
--- a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
+++ b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
@@ -36,6 +36,7 @@ import javax.mail.internet.MimeMultipart;
import javax.mail.internet.ParseException;
import org.apache.james.core.MailAddress;
+import org.apache.james.core.Username;
import org.apache.james.transport.KeyHolder;
import org.apache.james.transport.SMIMEAttributeNames;
import org.apache.james.user.api.UsersRepository;
@@ -584,8 +585,8 @@ public abstract class AbstractSign extends GenericMailet {
}
} else {
// is the reverse-path user different from the SMTP authorized user?
- String username = getUsername(reversePath);
- if (!username.equals(authUser)) {
+ Username username = getUsername(reversePath);
+ if (!username.asString().equals(authUser)) { //FIXME-USERNAME
LOGGER.info("SMTP logged in as <{}> but pretend to be sender <{}>", authUser, username);
return false;
}
@@ -607,7 +608,7 @@ public abstract class AbstractSign extends GenericMailet {
}
- private String getUsername(MailAddress mailAddress) {
+ private Username getUsername(MailAddress mailAddress) {
try {
return usersRepository.getUser(mailAddress);
} catch (UsersRepositoryException e) {
diff --git a/mpt/antlib/src/main/java/org/apache/james/mpt/ant/MailProtocolTestTask.java b/mpt/antlib/src/main/java/org/apache/james/mpt/ant/MailProtocolTestTask.java
index 85904bb..24c8570 100644
--- a/mpt/antlib/src/main/java/org/apache/james/mpt/ant/MailProtocolTestTask.java
+++ b/mpt/antlib/src/main/java/org/apache/james/mpt/ant/MailProtocolTestTask.java
@@ -30,6 +30,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Optional;
+import org.apache.james.core.Username;
import org.apache.james.mpt.Runner;
import org.apache.james.mpt.api.ImapFeatures;
import org.apache.james.mpt.api.ImapFeatures.Feature;
@@ -388,7 +389,7 @@ public class MailProtocolTestTask extends Task implements Monitor {
final File scriptFile = getScript();
final ScriptedUserAdder adder = new ScriptedUserAdder(getHost(), port, MailProtocolTestTask.this);
try (Reader reader = newReader(scriptFile)) {
- adder.addUser(getUser(), getPasswd(), reader);
+ adder.addUser(Username.of(getUser()), getPasswd(), reader);
}
} catch (Exception e) {
log(e.getMessage(), Project.MSG_ERR);
diff --git a/mpt/core/src/main/java/org/apache/james/mpt/api/HostSystem.java b/mpt/core/src/main/java/org/apache/james/mpt/api/HostSystem.java
index 70176ff..c514e42 100644
--- a/mpt/core/src/main/java/org/apache/james/mpt/api/HostSystem.java
+++ b/mpt/core/src/main/java/org/apache/james/mpt/api/HostSystem.java
@@ -19,6 +19,7 @@
package org.apache.james.mpt.api;
+import org.apache.james.core.Username;
import org.apache.james.mpt.host.ExternalHostSystem;
/**
@@ -44,7 +45,7 @@ public interface HostSystem extends SessionFactory {
* user password
* @throws Exception
*/
- boolean addUser(String user, String password) throws Exception;
+ boolean addUser(Username user, String password) throws Exception;
/**
* Creates a new session for functional testing.
diff --git a/mpt/core/src/main/java/org/apache/james/mpt/api/ImapHostSystem.java b/mpt/core/src/main/java/org/apache/james/mpt/api/ImapHostSystem.java
index 0ce9b0c..2f6482f 100644
--- a/mpt/core/src/main/java/org/apache/james/mpt/api/ImapHostSystem.java
+++ b/mpt/core/src/main/java/org/apache/james/mpt/api/ImapHostSystem.java
@@ -18,6 +18,7 @@
****************************************************************/
package org.apache.james.mpt.api;
+import org.apache.james.core.Username;
import org.apache.james.core.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.mailbox.model.MailboxACL;
@@ -32,5 +33,5 @@ public interface ImapHostSystem extends HostSystem {
void setQuotaLimits(QuotaCount maxMessageQuota, QuotaSize maxStorageQuota) throws Exception;
- void grantRights(MailboxPath mailboxPath, String userName, MailboxACL.Rfc4314Rights rights) throws Exception;
+ void grantRights(MailboxPath mailboxPath, Username userName, MailboxACL.Rfc4314Rights rights) throws Exception;
}
\ No newline at end of file
diff --git a/mpt/core/src/main/java/org/apache/james/mpt/api/UserAdder.java b/mpt/core/src/main/java/org/apache/james/mpt/api/UserAdder.java
index 4311deb..f32a0c6 100644
--- a/mpt/core/src/main/java/org/apache/james/mpt/api/UserAdder.java
+++ b/mpt/core/src/main/java/org/apache/james/mpt/api/UserAdder.java
@@ -19,6 +19,8 @@
package org.apache.james.mpt.api;
+import org.apache.james.core.Username;
+
/**
* Adds users on demand.
*/
@@ -28,5 +30,5 @@ public interface UserAdder {
* @param user not null
* @param password not null
*/
- void addUser(String user, String password) throws Exception;
+ void addUser(Username user, String password) throws Exception;
}
diff --git a/mpt/core/src/main/java/org/apache/james/mpt/host/ExternalHostSystem.java b/mpt/core/src/main/java/org/apache/james/mpt/host/ExternalHostSystem.java
index 081de7a..0b4e6fe 100644
--- a/mpt/core/src/main/java/org/apache/james/mpt/host/ExternalHostSystem.java
+++ b/mpt/core/src/main/java/org/apache/james/mpt/host/ExternalHostSystem.java
@@ -20,6 +20,7 @@
package org.apache.james.mpt.host;
import org.apache.commons.lang3.NotImplementedException;
+import org.apache.james.core.Username;
import org.apache.james.core.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.mailbox.model.MailboxACL;
@@ -82,7 +83,7 @@ public class ExternalHostSystem extends ExternalSessionFactory implements ImapHo
}
@Override
- public boolean addUser(String user, String password) throws Exception {
+ public boolean addUser(Username user, String password) throws Exception {
if (userAdder == null) {
monitor.note("Please ensure user '" + user + "' with password '" + password + "' exists.");
return false;
@@ -122,7 +123,7 @@ public class ExternalHostSystem extends ExternalSessionFactory implements ImapHo
}
@Override
- public void grantRights(MailboxPath mailboxPath, String userName, MailboxACL.Rfc4314Rights rights) throws Exception {
+ public void grantRights(MailboxPath mailboxPath, Username userName, MailboxACL.Rfc4314Rights rights) throws Exception {
throw new NotImplementedException("Not implemented");
}
}
diff --git a/mpt/core/src/main/java/org/apache/james/mpt/script/GenericSimpleScriptedTestProtocol.java b/mpt/core/src/main/java/org/apache/james/mpt/script/GenericSimpleScriptedTestProtocol.java
index b4569b4..7036061 100644
--- a/mpt/core/src/main/java/org/apache/james/mpt/script/GenericSimpleScriptedTestProtocol.java
+++ b/mpt/core/src/main/java/org/apache/james/mpt/script/GenericSimpleScriptedTestProtocol.java
@@ -24,6 +24,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
+import org.apache.james.core.Username;
import org.apache.james.mpt.api.Continuation;
import org.apache.james.mpt.api.HostSystem;
import org.apache.james.mpt.api.Session;
@@ -42,20 +43,20 @@ public class GenericSimpleScriptedTestProtocol<T extends HostSystem, SelfT exten
private static class CreateUser implements PrepareCommand<HostSystem> {
- final String user;
+ final Username username;
final String password;
- CreateUser(String user, String password) {
- this.user = user;
+ CreateUser(Username username, String password) {
+ this.username = username;
this.password = password;
}
@Override
public void prepare(HostSystem system) throws Exception {
try {
- system.addUser(user, password);
+ system.addUser(username, password);
} catch (Exception e) {
- LOGGER.info("User {} already exists", user, e);
+ LOGGER.info("User {} already exists", username, e);
}
}
}
@@ -88,10 +89,14 @@ public class GenericSimpleScriptedTestProtocol<T extends HostSystem, SelfT exten
this.locale = locale;
return (SelfT) this;
}
-
- @SuppressWarnings("unchecked")
+
public SelfT withUser(String user, String password) {
- prepareCommands.add(new CreateUser(user, password));
+ return withUser(Username.of(user), password);
+ }
+
+ @SuppressWarnings("unchecked")
+ public SelfT withUser(Username username, String password) {
+ prepareCommands.add(new CreateUser(username, password));
return (SelfT) this;
}
diff --git a/mpt/core/src/main/java/org/apache/james/mpt/script/ImapScriptedTestProtocol.java b/mpt/core/src/main/java/org/apache/james/mpt/script/ImapScriptedTestProtocol.java
index f968a32..5a5f8b3 100644
--- a/mpt/core/src/main/java/org/apache/james/mpt/script/ImapScriptedTestProtocol.java
+++ b/mpt/core/src/main/java/org/apache/james/mpt/script/ImapScriptedTestProtocol.java
@@ -19,6 +19,7 @@
package org.apache.james.mpt.script;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.model.MailboxACL;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mpt.api.ImapHostSystem;
@@ -42,18 +43,18 @@ public class ImapScriptedTestProtocol extends GenericSimpleScriptedTestProtocol<
private static class CreateRights implements PrepareCommand<ImapHostSystem> {
final MailboxPath mailboxPath;
- final String userName;
+ final Username username;
final MailboxACL.Rfc4314Rights rights;
- public CreateRights(MailboxPath mailboxPath, String userName, MailboxACL.Rfc4314Rights rights) {
+ public CreateRights(MailboxPath mailboxPath, Username username, MailboxACL.Rfc4314Rights rights) {
this.mailboxPath = mailboxPath;
- this.userName = userName;
+ this.username = username;
this.rights = rights;
}
@Override
public void prepare(ImapHostSystem system) throws Exception {
- system.grantRights(mailboxPath, userName, rights);
+ system.grantRights(mailboxPath, username, rights);
}
}
@@ -66,7 +67,7 @@ public class ImapScriptedTestProtocol extends GenericSimpleScriptedTestProtocol<
return withPreparedCommand(new CreateMailbox(mailboxPath));
}
- public ImapScriptedTestProtocol withRights(MailboxPath mailboxPath, String userName, MailboxACL.Rfc4314Rights rights) {
- return withPreparedCommand(new CreateRights(mailboxPath, userName, rights));
+ public ImapScriptedTestProtocol withRights(MailboxPath mailboxPath, Username username, MailboxACL.Rfc4314Rights rights) {
+ return withPreparedCommand(new CreateRights(mailboxPath, username, rights));
}
}
\ No newline at end of file
diff --git a/mpt/core/src/main/java/org/apache/james/mpt/user/ScriptedUserAdder.java b/mpt/core/src/main/java/org/apache/james/mpt/user/ScriptedUserAdder.java
index 51c0485..606a7c8 100644
--- a/mpt/core/src/main/java/org/apache/james/mpt/user/ScriptedUserAdder.java
+++ b/mpt/core/src/main/java/org/apache/james/mpt/user/ScriptedUserAdder.java
@@ -22,6 +22,7 @@ package org.apache.james.mpt.user;
import java.io.Reader;
import java.io.StringReader;
+import org.apache.james.core.Username;
import org.apache.james.mpt.Runner;
import org.apache.james.mpt.api.Monitor;
import org.apache.james.mpt.api.UserAdder;
@@ -48,7 +49,7 @@ public class ScriptedUserAdder implements UserAdder {
/**
* Constructs an adder without a script.
- * Note that {@link #addUser(String, String)} will not be available
+ * Note that {@link #addUser(Username, String)} will not be available
* @param host connect to this host
* @param port connect to this port
*/
@@ -61,7 +62,7 @@ public class ScriptedUserAdder implements UserAdder {
}
/**
- * Note that {@link #addUser(String, String)} will not be available
+ * Note that {@link #addUser(Username, String)} will not be available
* @param host connect to this host
* @param port connect to this port
* @param monitor not null
@@ -85,7 +86,7 @@ public class ScriptedUserAdder implements UserAdder {
* @throws NullPointerException when script has not been set
*/
@Override
- public void addUser(String user, String password) throws Exception {
+ public void addUser(Username user, String password) throws Exception {
final StringReader reader = new StringReader(script);
addUser(user, password, reader);
}
@@ -97,9 +98,9 @@ public class ScriptedUserAdder implements UserAdder {
* @param reader reader for script, not null
* @throws Exception upon failure
*/
- public void addUser(String user, String password, Reader reader) throws Exception {
+ public void addUser(Username user, String password, Reader reader) throws Exception {
final ProtocolSessionBuilder builder = new ProtocolSessionBuilder();
- builder.setVariable(USER_VARIABLE_NAME, user);
+ builder.setVariable(USER_VARIABLE_NAME, user.asString());
builder.setVariable(PASSWORD_VARIABLE_NAME, password);
final Runner runner = new Runner();
diff --git a/mpt/core/src/test/java/org/apache/james/mpt/TestExternalHostSystem.java b/mpt/core/src/test/java/org/apache/james/mpt/TestExternalHostSystem.java
index 8705a6b..72360dd 100644
--- a/mpt/core/src/test/java/org/apache/james/mpt/TestExternalHostSystem.java
+++ b/mpt/core/src/test/java/org/apache/james/mpt/TestExternalHostSystem.java
@@ -25,6 +25,7 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
+import org.apache.james.core.Username;
import org.apache.james.mpt.api.Continuation;
import org.apache.james.mpt.api.ImapFeatures;
import org.apache.james.mpt.api.ImapFeatures.Feature;
@@ -39,7 +40,7 @@ import org.junit.Test;
public class TestExternalHostSystem {
- private static final String USER = "USER NAME";
+ private static final Username USER = Username.of("USERNAME");
private static final String PASSWORD = "SOME PASSWORD";
diff --git a/mpt/core/src/test/java/org/apache/james/mpt/TestScriptedUserAdder.java b/mpt/core/src/test/java/org/apache/james/mpt/TestScriptedUserAdder.java
index eb1373c..75528fc 100644
--- a/mpt/core/src/test/java/org/apache/james/mpt/TestScriptedUserAdder.java
+++ b/mpt/core/src/test/java/org/apache/james/mpt/TestScriptedUserAdder.java
@@ -21,6 +21,7 @@ package org.apache.james.mpt;
import static org.assertj.core.api.Assertions.assertThat;
+import org.apache.james.core.Username;
import org.apache.james.mpt.user.ScriptedUserAdder;
import org.junit.After;
import org.junit.Before;
@@ -47,7 +48,7 @@ public class TestScriptedUserAdder {
@Test
public void testShouldExecuteScriptAgainstPort() throws Exception {
ScriptedUserAdder adder = new ScriptedUserAdder("localhost", protocol.getPort(), "C: USER='${user}' password='${password}'");
- adder.addUser("A User", "Some Password");
+ adder.addUser(Username.of("A User"), "Some Password");
assertThat(record.complete()).isEqualTo("USER='A User' password='Some Password'\r\n");
}
}
diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java
index 3398559..1f5a3b9 100644
--- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java
+++ b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java
@@ -25,6 +25,7 @@ import org.apache.commons.configuration2.plist.PropertyListConfiguration;
import org.apache.commons.configuration2.tree.ImmutableNode;
import org.apache.james.adapter.mailbox.store.UserRepositoryAuthenticator;
import org.apache.james.adapter.mailbox.store.UserRepositoryAuthorizator;
+import org.apache.james.core.Username;
import org.apache.james.imap.api.ImapConfiguration;
import org.apache.james.imap.api.process.ImapProcessor;
import org.apache.james.imap.decode.ImapDecoder;
@@ -80,7 +81,7 @@ public abstract class JamesImapHostSystem implements ImapHostSystem, GrantRights
}
@Override
- public boolean addUser(String user, String password) throws Exception {
+ public boolean addUser(Username user, String password) throws Exception {
memoryUsersRepository.addUser(user, password);
return true;
}
@@ -106,16 +107,16 @@ public abstract class JamesImapHostSystem implements ImapHostSystem, GrantRights
}
@Override
- public void grantRights(MailboxPath mailboxPath, String userName, MailboxACL.Rfc4314Rights rights) throws Exception {
+ public void grantRights(MailboxPath mailboxPath, Username username, MailboxACL.Rfc4314Rights rights) throws Exception {
MailboxManager mailboxManager = getMailboxManager();
MailboxSession mailboxSession = mailboxManager.createSystemSession(mailboxPath.getUser());
mailboxManager.startProcessingRequest(mailboxSession);
mailboxManager.setRights(mailboxPath,
MailboxACL.EMPTY.apply(MailboxACL.command()
- .forUser(userName)
+ .forUser(username)
.rights(rights)
.asAddition()),
- mailboxManager.createSystemSession(userName));
+ mailboxManager.createSystemSession(username));
mailboxManager.logout(mailboxSession, true);
mailboxManager.endProcessingRequest(mailboxSession);
}
diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/GrantRightsOnHost.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/GrantRightsOnHost.java
index 5ae7b14..46a729f 100644
--- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/GrantRightsOnHost.java
+++ b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/GrantRightsOnHost.java
@@ -19,11 +19,12 @@
package org.apache.james.mpt.imapmailbox;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.model.MailboxACL;
import org.apache.james.mailbox.model.MailboxPath;
public interface GrantRightsOnHost {
- void grantRights(MailboxPath mailboxPath, String userName, MailboxACL.Rfc4314Rights rights) throws Exception;
+ void grantRights(MailboxPath mailboxPath, Username userName, MailboxACL.Rfc4314Rights rights) throws Exception;
}
diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/ImapTestConstants.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/ImapTestConstants.java
index da20795..ad4c600 100644
--- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/ImapTestConstants.java
+++ b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/ImapTestConstants.java
@@ -19,6 +19,8 @@
package org.apache.james.mpt.imapmailbox;
+import org.apache.james.core.Username;
+
/**
* Some constants to use when running Imap tests.
*/
@@ -27,7 +29,7 @@ public interface ImapTestConstants {
String HOST = "localhost";
- String USER = "imapuser";
+ Username USER = Username.of("imapuser");
String PASSWORD = "password";
diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ACLCommands.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ACLCommands.java
index a597742..df03477 100644
--- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ACLCommands.java
+++ b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ACLCommands.java
@@ -21,6 +21,7 @@ package org.apache.james.mpt.imapmailbox.suite;
import java.util.Locale;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.model.MailboxACL;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mpt.api.ImapHostSystem;
@@ -32,7 +33,7 @@ import org.junit.Test;
public abstract class ACLCommands implements ImapTestConstants {
- public static final String OTHER_USER_NAME = "Boby";
+ public static final Username OTHER_USER_NAME = Username.of("Boby");
public static final String OTHER_USER_PASSWORD = "password";
public static final MailboxPath OTHER_USER_MAILBOX = MailboxPath.forUser(OTHER_USER_NAME, "");
diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ACLIntegration.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ACLIntegration.java
index c108a82..114be87 100644
--- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ACLIntegration.java
+++ b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ACLIntegration.java
@@ -21,6 +21,7 @@ package org.apache.james.mpt.imapmailbox.suite;
import java.util.Locale;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.model.MailboxACL;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mpt.api.ImapHostSystem;
@@ -31,7 +32,7 @@ import org.junit.Before;
import org.junit.Test;
public abstract class ACLIntegration implements ImapTestConstants {
- public static final String OTHER_USER_NAME = "Boby";
+ public static final Username OTHER_USER_NAME = Username.of("Boby");
public static final String OTHER_USER_PASSWORD = "password";
public static final MailboxPath OTHER_USER_MAILBOX = MailboxPath.forUser(OTHER_USER_NAME, "");
public static final MailboxPath MY_INBOX = MailboxPath.forUser(USER, "");
@@ -104,7 +105,7 @@ public abstract class ACLIntegration implements ImapTestConstants {
@Test
public void rightXOnOriginShouldBeSufficientToRenameAMailboxUS() throws Exception {
scriptedTestProtocol
- .withMailbox(MailboxPath.forUser("Boby","test"))
+ .withMailbox(MailboxPath.forUser(OTHER_USER_NAME,"test"))
.withGrantRights(MailboxPath.forUser(OTHER_USER_NAME, "test"), USER, MailboxACL.Rfc4314Rights.fromSerializedRfc4314Rights("x"))
.run("aclIntegration/ACLIntegrationRightX");
}
@@ -112,7 +113,7 @@ public abstract class ACLIntegration implements ImapTestConstants {
@Test
public void rightXOnOriginShouldBeNeededToRenameAMailboxUS() throws Exception {
scriptedTestProtocol
- .withMailbox(MailboxPath.forUser("Boby","test"))
+ .withMailbox(MailboxPath.forUser(OTHER_USER_NAME,"test"))
.withGrantRights(MailboxPath.forUser(OTHER_USER_NAME, "test"), USER, MailboxACL.Rfc4314Rights.fromSerializedRfc4314Rights("rswipktela"))
.run("aclIntegration/ACLIntegrationWithoutRightX");
}
diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ACLScriptedTestProtocol.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ACLScriptedTestProtocol.java
index 137cecf..ac863dd 100644
--- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ACLScriptedTestProtocol.java
+++ b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ACLScriptedTestProtocol.java
@@ -2,6 +2,7 @@ package org.apache.james.mpt.imapmailbox.suite;
import java.util.Locale;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.model.MailboxACL;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mpt.api.HostSystem;
@@ -16,19 +17,19 @@ public class ACLScriptedTestProtocol extends ImapScriptedTestProtocol {
private static class GrantRightsCommand implements SimpleScriptedTestProtocol.PrepareCommand<HostSystem> {
GrantRightsOnHost grantRightsOnHost;
MailboxPath mailboxPath;
- String userName;
+ Username username;
MailboxACL.Rfc4314Rights rights;
- GrantRightsCommand(GrantRightsOnHost grantRightsOnHost, MailboxPath mailboxPath, String userName, MailboxACL.Rfc4314Rights rights) {
+ GrantRightsCommand(GrantRightsOnHost grantRightsOnHost, MailboxPath mailboxPath, Username username, MailboxACL.Rfc4314Rights rights) {
this.grantRightsOnHost = grantRightsOnHost;
this.mailboxPath = mailboxPath;
- this.userName = userName;
+ this.username = username;
this.rights = rights;
}
@Override
public void prepare(HostSystem system) throws Exception {
- grantRightsOnHost.grantRights(mailboxPath, userName, rights);
+ grantRightsOnHost.grantRights(mailboxPath, username, rights);
}
}
@@ -56,8 +57,8 @@ public class ACLScriptedTestProtocol extends ImapScriptedTestProtocol {
this.mailboxMessageAppender = mailboxMessageAppender;
}
- public ACLScriptedTestProtocol withGrantRights(MailboxPath mailboxPath, String userName, MailboxACL.Rfc4314Rights rights) {
- return (ACLScriptedTestProtocol) withPreparedCommand(new GrantRightsCommand(grantRightsOnHost, mailboxPath, userName, rights));
+ public ACLScriptedTestProtocol withGrantRights(MailboxPath mailboxPath, Username username, MailboxACL.Rfc4314Rights rights) {
+ return (ACLScriptedTestProtocol) withPreparedCommand(new GrantRightsCommand(grantRightsOnHost, mailboxPath, username, rights));
}
public ACLScriptedTestProtocol withFilledMailbox(MailboxPath otherUserMailbox) {
@@ -68,6 +69,11 @@ public class ACLScriptedTestProtocol extends ImapScriptedTestProtocol {
public ACLScriptedTestProtocol withUser(String user, String password) {
return (ACLScriptedTestProtocol) super.withUser(user, password);
}
+
+ @Override
+ public ACLScriptedTestProtocol withUser(Username user, String password) {
+ return (ACLScriptedTestProtocol) super.withUser(user, password);
+ }
@Override
public ACLScriptedTestProtocol withLocale(Locale locale) {
diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/AuthenticatePlain.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/AuthenticatePlain.java
index 3729ca1..0ca8d11 100644
--- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/AuthenticatePlain.java
+++ b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/AuthenticatePlain.java
@@ -21,6 +21,7 @@ package org.apache.james.mpt.imapmailbox.suite;
import java.util.Locale;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mpt.api.ImapHostSystem;
import org.apache.james.mpt.imapmailbox.ImapTestConstants;
@@ -42,8 +43,8 @@ public abstract class AuthenticatePlain implements ImapTestConstants {
simpleScriptedTestProtocol = new ImapScriptedTestProtocol("/org/apache/james/imap/scripts/", system)
.withUser(USER, PASSWORD)
.withUser("delegate", "123456")
- .withMailbox(MailboxPath.forUser("delegate", "delegate"))
- .withMailbox(MailboxPath.forUser("imapuser", "imapuser"));
+ .withMailbox(MailboxPath.forUser(Username.of("delegate"), "delegate"))
+ .withMailbox(MailboxPath.forUser(Username.of("imapuser"), "imapuser"));
BasicImapCommands.welcome(simpleScriptedTestProtocol);
}
diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/AuthenticatedState.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/AuthenticatedState.java
index d2b2f2b..b11fd73 100644
--- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/AuthenticatedState.java
+++ b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/AuthenticatedState.java
@@ -21,6 +21,7 @@ package org.apache.james.mpt.imapmailbox.suite;
import java.util.Locale;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mpt.api.ImapFeatures.Feature;
import org.apache.james.mpt.api.ImapHostSystem;
@@ -31,7 +32,8 @@ import org.junit.Before;
import org.junit.Test;
public abstract class AuthenticatedState extends BasicImapCommands {
-
+ private static final Username USER_2 = Username.of("imapuser2");
+
protected abstract ImapHostSystem createImapHostSystem();
private ImapHostSystem system;
@@ -436,13 +438,13 @@ public abstract class AuthenticatedState extends BasicImapCommands {
@Test
public void listShouldNotListMailboxWithOtherUserUS() throws Exception {
- system.createMailbox(MailboxPath.forUser(USER + "2", "Other"));
+ system.createMailbox(MailboxPath.forUser(USER_2, "Other"));
simpleScriptedTestProtocol.run("ListMailboxes");
}
@Test
public void listShouldNotListMailboxWithOtherUserITALY() throws Exception {
- system.createMailbox(MailboxPath.forUser(USER + "2", "Other"));
+ system.createMailbox(MailboxPath.forUser(USER_2, "Other"));
simpleScriptedTestProtocol
.withLocale(Locale.ITALY)
.run("ListMailboxes");
@@ -450,7 +452,7 @@ public abstract class AuthenticatedState extends BasicImapCommands {
@Test
public void listShouldNotListMailboxWithOtherUserKOREA() throws Exception {
- system.createMailbox(MailboxPath.forUser(USER + "2", "Other"));
+ system.createMailbox(MailboxPath.forUser(USER_2, "Other"));
simpleScriptedTestProtocol
.withLocale(Locale.KOREA)
.run("ListMailboxes");
diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ListingWithSharingTest.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ListingWithSharingTest.java
index 12f9f1d..08a746e 100644
--- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ListingWithSharingTest.java
+++ b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ListingWithSharingTest.java
@@ -21,6 +21,7 @@ package org.apache.james.mpt.imapmailbox.suite;
import java.util.Locale;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.model.MailboxACL;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mpt.api.ImapHostSystem;
@@ -31,7 +32,7 @@ import org.junit.Before;
import org.junit.Test;
public abstract class ListingWithSharingTest implements ImapTestConstants {
- public static final String OTHER_USER_NAME = "Boby";
+ public static final Username OTHER_USER_NAME = Username.of("Boby");
public static final String OTHER_USER_PASSWORD = "password";
public static final MailboxPath OTHER_USER_SHARED_MAILBOX = MailboxPath.forUser(OTHER_USER_NAME, "sharedMailbox");
public static final MailboxPath OTHER_USER_SHARED_MAILBOX_CHILD = MailboxPath.forUser(OTHER_USER_NAME, "sharedMailbox.child");
diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/base/BasicImapCommands.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/base/BasicImapCommands.java
index 5f48067..0590606 100644
--- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/base/BasicImapCommands.java
+++ b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/base/BasicImapCommands.java
@@ -32,7 +32,7 @@ public class BasicImapCommands implements ImapTestConstants {
}
public static void authenticate(GenericSimpleScriptedTestProtocol<?, ?> scriptedTestProtocol) {
- addLogin(scriptedTestProtocol.preElements(), USER, PASSWORD);
+ addLogin(scriptedTestProtocol.preElements(), USER.asString(), PASSWORD);
}
diff --git a/mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/CyrusHostSystem.java b/mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/CyrusHostSystem.java
index 1ff7819..c644e30 100644
--- a/mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/CyrusHostSystem.java
+++ b/mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/CyrusHostSystem.java
@@ -22,6 +22,7 @@ import java.net.InetSocketAddress;
import java.util.function.Supplier;
import org.apache.commons.lang3.NotImplementedException;
+import org.apache.james.core.Username;
import org.apache.james.core.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.mailbox.model.MailboxPath;
@@ -64,12 +65,12 @@ public class CyrusHostSystem extends ExternalHostSystem implements Provider<Cont
}
@Override
- public boolean addUser(String user, String password) throws Exception {
+ public boolean addUser(Username user, String password) throws Exception {
return super.addUser(user, password) && createUserInbox(user);
}
- private boolean createUserInbox(String user) {
- createMailbox(MailboxPath.forUser(user, ""));
+ private boolean createUserInbox(Username username) {
+ createMailbox(MailboxPath.forUser(username, ""));
return true;
}
diff --git a/mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/CyrusUserAdder.java b/mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/CyrusUserAdder.java
index fc2eb0b..da937d1 100644
--- a/mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/CyrusUserAdder.java
+++ b/mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/CyrusUserAdder.java
@@ -18,6 +18,7 @@
****************************************************************/
package org.apache.james.mpt.imapmailbox.cyrus.host;
+import org.apache.james.core.Username;
import org.apache.james.mpt.api.UserAdder;
import com.google.inject.Inject;
@@ -38,7 +39,7 @@ public class CyrusUserAdder implements UserAdder {
}
@Override
- public void addUser(String user, String password) throws Exception {
- this.docker.createUser(container.get(), user, password);
+ public void addUser(Username user, String password) throws Exception {
+ this.docker.createUser(container.get(), user.asString(), password);
}
}
\ No newline at end of file
diff --git a/mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/GrantRightsOnCyrusHost.java b/mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/GrantRightsOnCyrusHost.java
index e49a89b..a6f56c8 100644
--- a/mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/GrantRightsOnCyrusHost.java
+++ b/mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/GrantRightsOnCyrusHost.java
@@ -19,6 +19,7 @@
package org.apache.james.mpt.imapmailbox.cyrus.host;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.model.MailboxACL;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mpt.imapmailbox.GrantRightsOnHost;
@@ -37,11 +38,11 @@ public class GrantRightsOnCyrusHost implements GrantRightsOnHost {
}
@Override
- public void grantRights(MailboxPath mailboxPath, String userName, MailboxACL.Rfc4314Rights rights) throws Exception {
+ public void grantRights(MailboxPath mailboxPath, Username username, MailboxACL.Rfc4314Rights rights) throws Exception {
ProtocolSession protocolSession = system.logAndGetAdminProtocolSession(new ProtocolSession());
protocolSession.cl(String.format("A1 SETACL %s %s %s",
system.createMailboxStringFromMailboxPath(mailboxPath),
- userName,
+ username.asString(),
rights.serialize()));
protocolSession.sl("A1 OK .*", GRANT_RIGHTS_LOCATION);
system.executeProtocolSession(system.logoutAndGetProtocolSession(protocolSession));
diff --git a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DockerDeploymentValidationGuiceJPATest.java b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DockerDeploymentValidationGuiceJPATest.java
index c9e74c7..268f8db 100644
--- a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DockerDeploymentValidationGuiceJPATest.java
+++ b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DockerDeploymentValidationGuiceJPATest.java
@@ -19,6 +19,7 @@
package org.apache.james.mpt.imapmailbox.external.james;
+import org.apache.james.core.Username;
import org.apache.james.mpt.api.ImapHostSystem;
import org.apache.james.mpt.imapmailbox.external.james.host.ProvisioningAPI;
import org.apache.james.mpt.imapmailbox.external.james.host.SmtpHostSystem;
@@ -50,7 +51,7 @@ public class DockerDeploymentValidationGuiceJPATest extends DeploymentValidation
ProvisioningAPI provisioningAPI = dockerJamesRule.cliJarDomainsAndUsersAdder();
Injector injector = Guice.createInjector(new ExternalJamesModule(getConfiguration(), provisioningAPI));
provisioningAPI.addDomain(DOMAIN);
- provisioningAPI.addUser(USER_ADDRESS, PASSWORD);
+ provisioningAPI.addUser(Username.of(USER_ADDRESS), PASSWORD);
system = injector.getInstance(ImapHostSystem.class);
smtpHostSystem = injector.getInstance(SmtpHostSystem.class);
system.beforeTest();
diff --git a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DockerDeploymentValidationSpringJPATest.java b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DockerDeploymentValidationSpringJPATest.java
index d99e546..a40e763 100644
--- a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DockerDeploymentValidationSpringJPATest.java
+++ b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DockerDeploymentValidationSpringJPATest.java
@@ -19,6 +19,7 @@
package org.apache.james.mpt.imapmailbox.external.james;
+import org.apache.james.core.Username;
import org.apache.james.mpt.api.ImapHostSystem;
import org.apache.james.mpt.imapmailbox.external.james.host.ProvisioningAPI;
import org.apache.james.mpt.imapmailbox.external.james.host.SmtpHostSystem;
@@ -51,7 +52,7 @@ public class DockerDeploymentValidationSpringJPATest extends DeploymentValidatio
Injector injector = Guice.createInjector(new ExternalJamesModule(getConfiguration(), provisioningAPI));
system = injector.getInstance(ImapHostSystem.class);
provisioningAPI.addDomain(DOMAIN);
- provisioningAPI.addUser(USER_ADDRESS, PASSWORD);
+ provisioningAPI.addUser(Username.of(USER_ADDRESS), PASSWORD);
smtpHostSystem = injector.getInstance(SmtpHostSystem.class);
system.beforeTest();
diff --git a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/docker/CliProvisioningAPI.java b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/docker/CliProvisioningAPI.java
index 2817fe8..f64f0f4 100644
--- a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/docker/CliProvisioningAPI.java
+++ b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/docker/CliProvisioningAPI.java
@@ -22,6 +22,7 @@ import java.io.IOException;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.james.core.Username;
import org.apache.james.mpt.imapmailbox.external.james.ProvisioningException;
import org.apache.james.mpt.imapmailbox.external.james.host.ProvisioningAPI;
import org.apache.james.util.docker.DockerContainer;
@@ -66,8 +67,8 @@ public class CliProvisioningAPI implements ProvisioningAPI {
}
@Override
- public void addUser(String user, String password) throws Exception {
- Container.ExecResult execResult = exec("adduser", user, password);
+ public void addUser(Username user, String password) throws Exception {
+ Container.ExecResult execResult = exec("adduser", user.asString(), password);
if (execResult.getExitCode() != 0) {
throw new ProvisioningException("Failed to add user" + executionResultToString(execResult));
diff --git a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/external/ExternalJamesImapHostSystem.java b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/external/ExternalJamesImapHostSystem.java
index 6f9c4c7..10c6bf9 100644
--- a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/external/ExternalJamesImapHostSystem.java
+++ b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/external/ExternalJamesImapHostSystem.java
@@ -22,6 +22,7 @@ import java.net.InetSocketAddress;
import java.util.function.Supplier;
import org.apache.commons.lang3.NotImplementedException;
+import org.apache.james.core.Username;
import org.apache.james.core.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.mailbox.model.MailboxPath;
@@ -53,7 +54,7 @@ public class ExternalJamesImapHostSystem extends ExternalHostSystem {
}
@Override
- public boolean addUser(String user, String password) throws Exception {
+ public boolean addUser(Username user, String password) throws Exception {
return super.addUser(user, password);
}
diff --git a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/external/NoopDomainsAndUserAdder.java b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/external/NoopDomainsAndUserAdder.java
index 38fdfad..1654a7d 100644
--- a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/external/NoopDomainsAndUserAdder.java
+++ b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/external/NoopDomainsAndUserAdder.java
@@ -18,6 +18,7 @@
****************************************************************/
package org.apache.james.mpt.imapmailbox.external.james.host.external;
+import org.apache.james.core.Username;
import org.apache.james.mpt.imapmailbox.external.james.host.ProvisioningAPI;
public class NoopDomainsAndUserAdder implements ProvisioningAPI {
@@ -27,7 +28,7 @@ public class NoopDomainsAndUserAdder implements ProvisioningAPI {
}
@Override
- public void addUser(String user, String password) throws Exception {
+ public void addUser(Username user, String password) throws Exception {
// User should already be configured
// We do not throw an exception in order to use BaseImapProtocol based tests
}
diff --git a/mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/host/JamesManageSieveHostSystem.java b/mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/host/JamesManageSieveHostSystem.java
index 857bf99..202fa0c 100644
--- a/mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/host/JamesManageSieveHostSystem.java
+++ b/mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/host/JamesManageSieveHostSystem.java
@@ -53,8 +53,8 @@ public abstract class JamesManageSieveHostSystem implements ManageSieveHostSyste
protected abstract UsersRepository createUsersRepository();
@Override
- public boolean addUser(String user, String password) throws Exception {
- usersRepository.addUser(user, password);
+ public boolean addUser(Username username, String password) throws Exception {
+ usersRepository.addUser(username, password);
return true;
}
diff --git a/mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/SmtpTestRule.java b/mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/SmtpTestRule.java
index 245ee74..9162099 100644
--- a/mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/SmtpTestRule.java
+++ b/mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/SmtpTestRule.java
@@ -82,11 +82,11 @@ public class SmtpTestRule implements TestRule, SmtpHostSystem {
}
@Override
- public boolean addUser(String userAtDomain, String password) throws Exception {
- Optional<Domain> domain = Username.of(userAtDomain).getDomainPart();
+ public boolean addUser(Username userAtDomain, String password) throws Exception {
+ Optional<Domain> domain = userAtDomain.getDomainPart();
Preconditions.checkArgument(domain.isPresent(), "The 'user' should contain the 'domain'");
createDomainIfNeeded(domain.get().asString());
- jamesServer.getProbe(DataProbeImpl.class).addUser(userAtDomain, password);
+ jamesServer.getProbe(DataProbeImpl.class).addUser(userAtDomain.asString(), password);
return true;
}
diff --git a/mpt/mavenplugin/src/main/java/org/apache/james/mpt/maven/AddUser.java b/mpt/mavenplugin/src/main/java/org/apache/james/mpt/maven/AddUser.java
index e8c2e2c..05e02ac 100644
--- a/mpt/mavenplugin/src/main/java/org/apache/james/mpt/maven/AddUser.java
+++ b/mpt/mavenplugin/src/main/java/org/apache/james/mpt/maven/AddUser.java
@@ -22,6 +22,7 @@ package org.apache.james.mpt.maven;
import java.io.File;
import java.util.Optional;
+import org.apache.james.core.Username;
import org.apache.james.util.Port;
@@ -31,7 +32,7 @@ import org.apache.james.util.Port;
public class AddUser {
private Optional<Port> port = Optional.empty();
- private String user;
+ private Username user;
private String passwd;
private String scriptText;
private String host;
@@ -89,7 +90,7 @@ public class AddUser {
* Gets the name of the user to be created.
* @return user name, not null
*/
- public String getUser() {
+ public Username getUser() {
return user;
}
@@ -97,7 +98,7 @@ public class AddUser {
* Sets the name of the user to be created.
* @param user not null
*/
- public void setUser(String user) {
+ public void setUser(Username user) {
this.user = user;
}
diff --git a/protocols/api/pom.xml b/protocols/api/pom.xml
index 3349126..e1b8b49 100644
--- a/protocols/api/pom.xml
+++ b/protocols/api/pom.xml
@@ -35,6 +35,10 @@
<dependencies>
<dependency>
<groupId>${james.groupId}</groupId>
+ <artifactId>james-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${james.groupId}</groupId>
<artifactId>testing-base</artifactId>
<scope>test</scope>
</dependency>
diff --git a/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java b/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java
index fbcb830..0937b4b 100644
--- a/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java
+++ b/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java
@@ -23,6 +23,7 @@ import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import java.util.Map;
+import org.apache.james.core.Username;
import org.apache.james.protocols.api.handler.LineHandler;
/**
@@ -116,14 +117,14 @@ public interface ProtocolSession {
*
* @return the user name
*/
- String getUser();
+ Username getUsername();
/**
* Sets the user name associated with this interaction.
*
- * @param user the user name
+ * @param username the user name
*/
- void setUser(String user);
+ void setUsername(Username username);
/**
* Return true if StartTLS is supported by the configuration
diff --git a/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java b/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java
index 8f32966..266aeba 100644
--- a/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java
+++ b/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java
@@ -24,6 +24,7 @@ import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.Map;
+import org.apache.james.core.Username;
import org.apache.james.protocols.api.handler.LineHandler;
/**
@@ -35,7 +36,7 @@ public class ProtocolSessionImpl implements ProtocolSession {
private final ProtocolTransport transport;
private final Map<String, Object> connectionState;
private final Map<String, Object> sessionState;
- private String user;
+ private Username username;
protected final ProtocolConfiguration config;
private static final Charset CHARSET = Charset.forName("US-ASCII");
private static final String DELIMITER = "\r\n";
@@ -58,13 +59,13 @@ public class ProtocolSessionImpl implements ProtocolSession {
}
@Override
- public String getUser() {
- return user;
+ public Username getUsername() {
+ return username;
}
@Override
- public void setUser(String user) {
- this.user = user;
+ public void setUsername(Username username) {
+ this.username = username;
}
/**
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/ImapSessionUtils.java b/protocols/imap/src/main/java/org/apache/james/imap/api/ImapSessionUtils.java
index 6d4e25a..532eb49 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/ImapSessionUtils.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/ImapSessionUtils.java
@@ -21,6 +21,7 @@ package org.apache.james.imap.api;
import java.util.Optional;
+import org.apache.james.core.Username;
import org.apache.james.imap.api.process.ImapSession;
import org.apache.james.mailbox.MailboxSession;
@@ -36,10 +37,10 @@ public class ImapSessionUtils {
return (MailboxSession) session.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY);
}
- public static String getUserName(ImapSession imapSession) {
+ public static Username getUserName(ImapSession imapSession) {
Preconditions.checkNotNull(imapSession);
return Optional.ofNullable(getMailboxSession(imapSession))
- .map(mailboxSession -> mailboxSession.getUser().asString())
+ .map(mailboxSession -> mailboxSession.getUser())
.orElse(null);
}
}
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/main/PathConverter.java b/protocols/imap/src/main/java/org/apache/james/imap/main/PathConverter.java
index e7d5ff6..8f97bd7 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/main/PathConverter.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/main/PathConverter.java
@@ -21,6 +21,7 @@ package org.apache.james.imap.main;
import java.util.List;
+import org.apache.james.core.Username;
import org.apache.james.imap.api.ImapSessionUtils;
import org.apache.james.imap.api.process.ImapSession;
import org.apache.james.mailbox.model.MailboxConstants;
@@ -74,14 +75,14 @@ public class PathConverter {
return buildMailboxPath(namespace, retrieveUserName(namespace), mailboxName);
}
- private String retrieveUserName(String namespace) {
+ private Username retrieveUserName(String namespace) {
if (namespace.equals(MailboxConstants.USER_NAMESPACE)) {
return ImapSessionUtils.getUserName(session);
}
throw new DeniedAccessOnSharedMailboxException();
}
- private MailboxPath buildMailboxPath(String namespace, String user, String mailboxName) {
+ private MailboxPath buildMailboxPath(String namespace, Username user, String mailboxName) {
if (!namespace.equals(MailboxConstants.USER_NAMESPACE)) {
throw new DeniedAccessOnSharedMailboxException();
}
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java
index 7d8ba6a..77416a8 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java
@@ -20,6 +20,7 @@ package org.apache.james.imap.processor;
import java.util.Optional;
+import org.apache.james.core.Username;
import org.apache.james.imap.api.ImapSessionUtils;
import org.apache.james.imap.api.display.HumanReadableText;
import org.apache.james.imap.api.message.request.ImapRequest;
@@ -67,7 +68,7 @@ public abstract class AbstractAuthProcessor<R extends ImapRequest> extends Abstr
if (!authFailure) {
final MailboxManager mailboxManager = getMailboxManager();
try {
- final MailboxSession mailboxSession = mailboxManager.login(authenticationAttempt.getAuthenticationId(),
+ final MailboxSession mailboxSession = mailboxManager.login(Username.of(authenticationAttempt.getAuthenticationId()),
authenticationAttempt.getPassword());
session.authenticated();
session.setAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY, mailboxSession);
@@ -96,9 +97,9 @@ public abstract class AbstractAuthProcessor<R extends ImapRequest> extends Abstr
if (!authFailure) {
final MailboxManager mailboxManager = getMailboxManager();
try {
- final MailboxSession mailboxSession = mailboxManager.loginAsOtherUser(authenticationAttempt.getAuthenticationId(),
+ final MailboxSession mailboxSession = mailboxManager.loginAsOtherUser(Username.of(authenticationAttempt.getAuthenticationId()),
authenticationAttempt.getPassword(),
- authenticationAttempt.getDelegateUserName().get());
+ Username.of(authenticationAttempt.getDelegateUserName().get()));
session.authenticated();
session.setAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY, mailboxSession);
provisionInbox(session, mailboxManager, mailboxSession);
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
index f4d1479..712925e 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
@@ -369,7 +369,7 @@ public abstract class AbstractMailboxProcessor<R extends ImapRequest> extends Ab
if (sb.length() > 0) {
sb.append(delimiter);
}
- sb.append(mailboxPath.getUser());
+ sb.append(mailboxPath.getUser().asString());
}
if (mailboxPath.getName() != null && !mailboxPath.getName().equals("")) {
if (sb.length() > 0) {
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/api/ImapSessionUtilsTest.java b/protocols/imap/src/test/java/org/apache/james/imap/api/ImapSessionUtilsTest.java
index 59999ba..57a82eb 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/api/ImapSessionUtilsTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/api/ImapSessionUtilsTest.java
@@ -22,6 +22,7 @@ package org.apache.james.imap.api;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import org.apache.james.core.Username;
import org.apache.james.imap.encode.FakeImapSession;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxSessionUtil;
@@ -29,7 +30,7 @@ import org.junit.Before;
import org.junit.Test;
public class ImapSessionUtilsTest {
- private static final String USERNAME = "username";
+ private static final Username USERNAME = Username.of("username");
private static final MailboxSession MAILBOX_SESSION = MailboxSessionUtil.create(USERNAME);
private FakeImapSession fakeImapSession;
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/CreateCommandParserTest.java b/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/CreateCommandParserTest.java
index 526cf28..a7a8e04 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/CreateCommandParserTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/CreateCommandParserTest.java
@@ -30,6 +30,7 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.nio.charset.StandardCharsets;
+import org.apache.james.core.Username;
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapSessionUtils;
import org.apache.james.imap.api.process.ImapSession;
@@ -52,7 +53,7 @@ public class CreateCommandParserTest {
@Before
public void setUp() throws Exception {
mockImapSession = mock(ImapSession.class);
- mailboxSession = MailboxSessionUtil.create("userName");
+ mailboxSession = MailboxSessionUtil.create(Username.of("userName"));
when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession);
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/main/PathConverterTest.java b/protocols/imap/src/test/java/org/apache/james/imap/main/PathConverterTest.java
index 6395098..657722f 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/main/PathConverterTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/main/PathConverterTest.java
@@ -23,6 +23,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import org.apache.james.core.Username;
import org.apache.james.imap.api.ImapSessionUtils;
import org.apache.james.imap.api.process.ImapSession;
import org.apache.james.mailbox.MailboxSession;
@@ -36,7 +37,7 @@ import org.junit.rules.ExpectedException;
public class PathConverterTest {
- private static final String USERNAME = "username";
+ private static final Username USERNAME = Username.of("username");
private static final char PATH_DELIMITER = '.';
private ImapSession imapSession;
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/CopyProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/CopyProcessorTest.java
index d9714a8..c4ff836 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/CopyProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/CopyProcessorTest.java
@@ -76,7 +76,7 @@ public class CopyProcessorTest {
mockStatusResponseFactory = mock(StatusResponseFactory.class);
mockResponder = mock(ImapProcessor.Responder.class);
mockImapSession = mock(ImapSession.class);
- mailboxSession = MailboxSessionUtil.create(USERNAME.asString());
+ mailboxSession = MailboxSessionUtil.create(USERNAME);
testee = new CopyProcessor(mockNextProcessor, mockMailboxManager, mockStatusResponseFactory, new NoopMetricFactory());
}
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java
index 84c637e..d43a94b 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java
@@ -29,6 +29,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
+import org.apache.james.core.Username;
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapConstants;
import org.apache.james.imap.api.ImapSessionState;
@@ -61,7 +62,7 @@ import org.mockito.ArgumentCaptor;
public class DeleteACLProcessorTest {
private static final String MAILBOX_NAME = ImapConstants.INBOX_NAME;
- private static final String USER_1 = "user1";
+ private static final Username USER_1 = Username.of("user1");
private ImapSession imapSession;
private MailboxManager mailboxManager;
@@ -99,9 +100,9 @@ public class DeleteACLProcessorTest {
deleteACLRequest = new DeleteACLRequest(TAG,
ImapCommand.anyStateCommand("Name"),
MAILBOX_NAME,
- USER_1);
+ USER_1.asString());
- user1Key = EntryKey.deserialize(USER_1);
+ user1Key = EntryKey.deserialize(USER_1.asString());
argumentCaptor = ArgumentCaptor.forClass(ImapResponseMessage.class);
}
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java
index 381b18d..4f5a58e 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java
@@ -29,6 +29,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
+import org.apache.james.core.Username;
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapConstants;
import org.apache.james.imap.api.ImapSessionState;
@@ -61,7 +62,7 @@ import org.mockito.ArgumentCaptor;
public class GetACLProcessorTest {
private static final String MAILBOX_NAME = ImapConstants.INBOX_NAME;
- private static final String USER_1 = "user1";
+ private static final Username USER_1 = Username.of("user1");
private ImapSession imapSession;
private MailboxManager mailboxManager;
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetAnnotationProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetAnnotationProcessorTest.java
index 8e5e7e0..5061360 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetAnnotationProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetAnnotationProcessorTest.java
@@ -33,6 +33,7 @@ import static org.mockito.Mockito.when;
import java.util.Optional;
import java.util.Set;
+import org.apache.james.core.Username;
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapConstants;
import org.apache.james.imap.api.ImapSessionState;
@@ -104,7 +105,7 @@ public class GetAnnotationProcessorTest {
mockResponder = mock(ImapProcessor.Responder.class);
mockImapSession = mock(ImapSession.class);
- mailboxSession = MailboxSessionUtil.create("username");
+ mailboxSession = MailboxSessionUtil.create(Username.of("username"));
inbox = MailboxPath.inbox(mailboxSession);
keys = ImmutableSet.of(PRIVATE_KEY);
annotationRequestBuilder = GetAnnotationRequest.builder()
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaProcessorTest.java
index 5c76ef7..46ff00c 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaProcessorTest.java
@@ -30,6 +30,7 @@ import static org.mockito.Mockito.when;
import java.util.Optional;
+import org.apache.james.core.Username;
import org.apache.james.core.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.imap.api.ImapCommand;
@@ -62,7 +63,8 @@ import com.google.common.collect.ImmutableList;
public class GetQuotaProcessorTest {
private static final QuotaRoot QUOTA_ROOT = QuotaRoot.quotaRoot("plop", Optional.empty());
- private static final MailboxPath MAILBOX_PATH = new MailboxPath("namespace", "plop", "INBOX");
+ private static final Username PLOP = Username.of("plop");
+ private static final MailboxPath MAILBOX_PATH = new MailboxPath("namespace", PLOP, "INBOX");
private static final Quota<QuotaCount> MESSAGE_QUOTA =
Quota.<QuotaCount>builder().used(QuotaCount.count(24)).computedLimit(QuotaCount.count(1589)).build();
private static final Quota<QuotaSize> STORAGE_QUOTA =
@@ -79,7 +81,7 @@ public class GetQuotaProcessorTest {
@Before
public void setUp() throws Exception {
- mailboxSession = MailboxSessionUtil.create("plop");
+ mailboxSession = MailboxSessionUtil.create(PLOP);
UnpooledStatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory();
mockedImapSession = mock(ImapSession.class);
mockedQuotaManager = mock(QuotaManager.class);
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaRootProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaRootProcessorTest.java
index 4510fa6..4ac151d 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaRootProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaRootProcessorTest.java
@@ -31,6 +31,7 @@ import static org.mockito.Mockito.when;
import java.util.List;
import java.util.Optional;
+import org.apache.james.core.Username;
import org.apache.james.core.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.imap.api.ImapCommand;
@@ -62,7 +63,8 @@ import org.mockito.ArgumentCaptor;
public class GetQuotaRootProcessorTest {
private static final QuotaRoot QUOTA_ROOT = QuotaRoot.quotaRoot("plop", Optional.empty());
- private static final MailboxPath MAILBOX_PATH = MailboxPath.forUser("plop", "INBOX");
+ private static final Username PLOP = Username.of("plop");
+ private static final MailboxPath MAILBOX_PATH = MailboxPath.forUser(PLOP, "INBOX");
private static final Quota<QuotaCount> MESSAGE_QUOTA =
Quota.<QuotaCount>builder().used(QuotaCount.count(24)).computedLimit(QuotaCount.count(1589)).build();
private static final Quota<QuotaSize> STORAGE_QUOTA =
@@ -78,7 +80,7 @@ public class GetQuotaRootProcessorTest {
@Before
public void setUp() {
- mailboxSession = MailboxSessionUtil.create("plop");
+ mailboxSession = MailboxSessionUtil.create(PLOP);
UnpooledStatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory();
mockedImapSession = mock(ImapSession.class);
mockedQuotaManager = mock(QuotaManager.class);
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java
index f6b0243..75c6424 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java
@@ -29,6 +29,7 @@ import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.Collection;
+import org.apache.james.core.Username;
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapSessionUtils;
import org.apache.james.imap.api.display.HumanReadableText;
@@ -68,7 +69,7 @@ public class LSubProcessorTest {
private static final String MAILBOX_A = "A.MAILBOX";
- public static final String USER = "test";
+ public static final Username USER = Username.of("test");
LSubProcessor processor;
ImapProcessor next;
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java
index 375256a..43a80c2 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java
@@ -29,6 +29,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
+import org.apache.james.core.Username;
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapConstants;
import org.apache.james.imap.api.ImapSessionState;
@@ -62,7 +63,7 @@ import org.mockito.ArgumentCaptor;
public class ListRightsProcessorTest {
private static final String MAILBOX_NAME = ImapConstants.INBOX_NAME;
- private static final String USER_1 = "user1";
+ private static final Username USER_1 = Username.of("user1");
private ImapSession imapSession;
private MailboxManager mailboxManager;
@@ -99,9 +100,9 @@ public class ListRightsProcessorTest {
when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.class)))
.thenReturn(messageManager);
- listRightsRequest = new ListRightsRequest(TAG, ImapCommand.anyStateCommand("Name"), MAILBOX_NAME, USER_1);
+ listRightsRequest = new ListRightsRequest(TAG, ImapCommand.anyStateCommand("Name"), MAILBOX_NAME, USER_1.asString());
- user1Key = EntryKey.deserialize(USER_1);
+ user1Key = EntryKey.deserialize(USER_1.asString());
listRights = new Rfc4314Rights[] {Rfc4314Rights.fromSerializedRfc4314Rights("ae"), Rfc4314Rights.fromSerializedRfc4314Rights("i"), Rfc4314Rights.fromSerializedRfc4314Rights("k")};
}
@@ -171,7 +172,7 @@ public class ListRightsProcessorTest {
subject.doProcess(listRightsRequest, responder, imapSession);
- ListRightsResponse response = new ListRightsResponse(MAILBOX_NAME, USER_1, listRights);
+ ListRightsResponse response = new ListRightsResponse(MAILBOX_NAME, USER_1.asString(), listRights);
verify(responder, times(2)).respond(argumentCaptor.capture());
verifyNoMoreInteractions(responder);
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/MoveProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/MoveProcessorTest.java
index 34f96a4..22296e8 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/MoveProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/MoveProcessorTest.java
@@ -79,7 +79,7 @@ public class MoveProcessorTest {
mockStatusResponseFactory = mock(StatusResponseFactory.class);
mockResponder = mock(ImapProcessor.Responder.class);
mockImapSession = mock(ImapSession.class);
- mailboxSession = MailboxSessionUtil.create(USERNAME.asString());
+ mailboxSession = MailboxSessionUtil.create(USERNAME);
when(mockMailboxManager.hasCapability(eq(MailboxCapabilities.Move))).thenReturn(true);
testee = new MoveProcessor(mockNextProcessor, mockMailboxManager, mockStatusResponseFactory, new NoopMetricFactory());
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java
index f4689bf..1653c0d 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java
@@ -39,6 +39,7 @@ import java.util.stream.Stream;
import javax.mail.Flags;
import javax.mail.Flags.Flag;
+import org.apache.james.core.Username;
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapConstants;
import org.apache.james.imap.api.ImapSessionUtils;
@@ -100,8 +101,9 @@ public class SearchProcessorTest {
private static final SearchQuery.UidRange[] RANGES = {
new SearchQuery.UidRange(MessageUid.of(1)),
new SearchQuery.UidRange(MessageUid.of(42), MessageUid.of(1048)) };
-
- private static final MailboxPath mailboxPath = new MailboxPath("namespace", "user", "name");
+
+ private static final Username USER = Username.of("user");
+ private static final MailboxPath mailboxPath = new MailboxPath("namespace", USER, "name");
private static final MailboxId mailboxId = TestId.of(18);
SearchProcessor processor;
@@ -126,7 +128,7 @@ public class SearchProcessorTest {
statusResponse = mock(StatusResponse.class);
mailbox = mock(MessageManager.class);
mailboxManager = mock(MailboxManager.class);
- mailboxSession = MailboxSessionUtil.create("user");
+ mailboxSession = MailboxSessionUtil.create(USER);
selectedMailbox = mock(SelectedMailbox.class);
when(selectedMailbox.getMailboxId()).thenReturn(mailboxId);
@@ -140,7 +142,7 @@ public class SearchProcessorTest {
}
private void allowUnsolicitedResponses() {
- when(session.getAttribute(ImapSessionUtils.MAILBOX_USER_ATTRIBUTE_SESSION_KEY)).thenReturn("user");
+ when(session.getAttribute(ImapSessionUtils.MAILBOX_USER_ATTRIBUTE_SESSION_KEY)).thenReturn(USER);
when(session.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession);
}
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java
index 25e2b79..dcb4629 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java
@@ -29,6 +29,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
+import org.apache.james.core.Username;
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapConstants;
import org.apache.james.imap.api.ImapSessionState;
@@ -63,7 +64,7 @@ import org.mockito.ArgumentCaptor;
public class SetACLProcessorTest {
private static final String MAILBOX_NAME = ImapConstants.INBOX_NAME;
- private static final String USER_1 = "user1";
+ private static final Username USER_1 = Username.of("user1");
private static final String SET_RIGHTS = "aw";
private static final String UNSUPPORTED_RIGHT = "W";
@@ -101,15 +102,15 @@ public class SetACLProcessorTest {
when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.class)))
.thenReturn(messageManager);
- replaceAclRequest = new SetACLRequest(TAG, ImapCommand.anyStateCommand("Name"), MAILBOX_NAME, USER_1, SET_RIGHTS);
+ replaceAclRequest = new SetACLRequest(TAG, ImapCommand.anyStateCommand("Name"), MAILBOX_NAME, USER_1.asString(), SET_RIGHTS);
- user1Key = EntryKey.deserialize(USER_1);
+ user1Key = EntryKey.deserialize(USER_1.asString());
setRights = Rfc4314Rights.fromSerializedRfc4314Rights(SET_RIGHTS);
}
@Test
public void testUnsupportedRight() throws Exception {
- SetACLRequest setACLRequest = new SetACLRequest(TAG, ImapCommand.anyStateCommand("Name"), MAILBOX_NAME, USER_1, UNSUPPORTED_RIGHT);
+ SetACLRequest setACLRequest = new SetACLRequest(TAG, ImapCommand.anyStateCommand("Name"), MAILBOX_NAME, USER_1.asString(), UNSUPPORTED_RIGHT);
when(mailboxManager.hasRight(path, MailboxACL.Right.Lookup, mailboxSession))
.thenReturn(false);
@@ -180,8 +181,7 @@ public class SetACLProcessorTest {
when(mailboxManager.hasRight(path, MailboxACL.Right.Administer, mailboxSession))
.thenReturn(true);
-
- SetACLRequest r = new SetACLRequest(TAG, ImapCommand.anyStateCommand("Name"), MAILBOX_NAME, USER_1, prefix + SET_RIGHTS);
+ SetACLRequest r = new SetACLRequest(TAG, ImapCommand.anyStateCommand("Name"), MAILBOX_NAME, USER_1.asString(), prefix + SET_RIGHTS);
subject.doProcess(r, responder, imapSession);
verify(mailboxManager).applyRightsCommand(path,
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java
index 63b1bb6..daeba27 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java
@@ -31,6 +31,7 @@ import static org.mockito.Mockito.when;
import java.util.List;
+import org.apache.james.core.Username;
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapConstants;
import org.apache.james.imap.api.ImapSessionState;
@@ -91,7 +92,7 @@ public class SetAnnotationProcessorTest {
mockResponder = mock(ImapProcessor.Responder.class);
mockImapSession = mock(ImapSession.class);
- mockMailboxSession = MailboxSessionUtil.create("username");
+ mockMailboxSession = MailboxSessionUtil.create(Username.of("username"));
inbox = MailboxPath.inbox(mockMailboxSession);
mailboxAnnotations = ImmutableList.of(MailboxAnnotation.newInstance(new MailboxAnnotationKey("/private/key"), "anyValue"));
request = new SetAnnotationRequest(TAG, ImapCommand.anyStateCommand("Name"), ImapConstants.INBOX_NAME, mailboxAnnotations);
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetQuotaProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetQuotaProcessorTest.java
index 62b80c5..89c7773 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetQuotaProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetQuotaProcessorTest.java
@@ -26,6 +26,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
+import org.apache.james.core.Username;
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapSessionState;
import org.apache.james.imap.api.ImapSessionUtils;
@@ -51,7 +52,7 @@ public class SetQuotaProcessorTest {
@Before
public void setUp() {
- mailboxSession = MailboxSessionUtil.create("plop");
+ mailboxSession = MailboxSessionUtil.create(Username.of("plop"));
UnpooledStatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory();
mockedImapSession = mock(ImapSession.class);
mockedResponder = mock(ImapProcessor.Responder.class);
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
index 4f63da0..b6e2419 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
@@ -30,6 +30,7 @@ import java.util.stream.Stream;
import javax.mail.Flags;
import org.apache.commons.lang3.NotImplementedException;
+import org.apache.james.core.Username;
import org.apache.james.imap.api.ImapSessionState;
import org.apache.james.imap.api.ImapSessionUtils;
import org.apache.james.imap.api.process.ImapSession;
@@ -110,10 +111,11 @@ public class MailboxEventAnalyserTest {
}
private static final MessageUid MESSAGE_UID = MessageUid.of(1);
- private static final MailboxSession MAILBOX_SESSION = MailboxSessionUtil.create("user");
- private static final MailboxSession OTHER_MAILBOX_SESSION = MailboxSessionUtil.create("user");
+ private static final Username USER = Username.of("user");
+ private static final MailboxSession MAILBOX_SESSION = MailboxSessionUtil.create(USER);
+ private static final MailboxSession OTHER_MAILBOX_SESSION = MailboxSessionUtil.create(USER);
private static final char PATH_DELIMITER = '.';
- private static final MailboxPath MAILBOX_PATH = new MailboxPath("namespace", "user", "name");
+ private static final MailboxPath MAILBOX_PATH = new MailboxPath("namespace", USER, "name");
private static final TestId MAILBOX_ID = TestId.of(36);
private static final int UID_VALIDITY = 1024;
private static final Mailbox DEFAULT_MAILBOX = new Mailbox(MAILBOX_PATH, UID_VALIDITY, MAILBOX_ID);
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java
index 7d7df56..ba8fd4f 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java
@@ -36,6 +36,7 @@ import java.util.stream.Stream;
import javax.mail.Flags;
+import org.apache.james.core.Username;
import org.apache.james.imap.api.ImapSessionUtils;
import org.apache.james.imap.api.process.ImapSession;
import org.apache.james.mailbox.MailboxManager;
@@ -84,7 +85,7 @@ public class SelectedMailboxImplTest {
public void setUp() throws Exception {
ThreadFactory threadFactory = NamedThreadFactory.withClassName(getClass());
executorService = Executors.newFixedThreadPool(1, threadFactory);
- mailboxPath = MailboxPath.forUser("tellier@linagora.com", MailboxConstants.INBOX);
+ mailboxPath = MailboxPath.forUser(Username.of("tellier@linagora.com"), MailboxConstants.INBOX);
mailboxManager = mock(MailboxManager.class);
messageManager = mock(MessageManager.class);
imapSession = mock(ImapSession.class);
@@ -171,7 +172,7 @@ public class SelectedMailboxImplTest {
private void emitEvent(MailboxListener mailboxListener) throws Exception {
mailboxListener.event(EventFactory.added()
.randomEventId()
- .mailboxSession(MailboxSessionUtil.create("user"))
+ .mailboxSession(MailboxSessionUtil.create(Username.of("user")))
.mailbox(mailbox)
.addMetaData(new MessageMetaData(EMITTED_EVENT_UID, MOD_SEQ, new Flags(), SIZE, new Date(), new DefaultMessageId()))
.build());
diff --git a/protocols/managesieve/src/main/java/org/apache/james/managesieve/api/AuthenticationProcessor.java b/protocols/managesieve/src/main/java/org/apache/james/managesieve/api/AuthenticationProcessor.java
index 89994d8..50edcbb 100644
--- a/protocols/managesieve/src/main/java/org/apache/james/managesieve/api/AuthenticationProcessor.java
+++ b/protocols/managesieve/src/main/java/org/apache/james/managesieve/api/AuthenticationProcessor.java
@@ -20,6 +20,8 @@
package org.apache.james.managesieve.api;
+import org.apache.james.core.Username;
+
public interface AuthenticationProcessor {
String initialServerResponse(Session session);
@@ -27,6 +29,6 @@ public interface AuthenticationProcessor {
/**
* @return Null if authentication failed, the authenticated username if authentication is successful
*/
- String isAuthenticationSuccesfull(Session session, String suppliedClientData) throws SyntaxException, AuthenticationException;
+ Username isAuthenticationSuccesfull(Session session, String suppliedClientData) throws SyntaxException, AuthenticationException;
}
diff --git a/protocols/managesieve/src/main/java/org/apache/james/managesieve/api/Session.java b/protocols/managesieve/src/main/java/org/apache/james/managesieve/api/Session.java
index 5f71129..c33293d 100644
--- a/protocols/managesieve/src/main/java/org/apache/james/managesieve/api/Session.java
+++ b/protocols/managesieve/src/main/java/org/apache/james/managesieve/api/Session.java
@@ -20,6 +20,7 @@
package org.apache.james.managesieve.api;
+import org.apache.james.core.Username;
import org.apache.james.managesieve.api.commands.Authenticate;
public interface Session {
@@ -34,9 +35,9 @@ public interface Session {
boolean isAuthenticated();
- String getUser();
+ Username getUser();
- void setUser(String user);
+ void setUser(Username user);
State getState();
diff --git a/protocols/managesieve/src/main/java/org/apache/james/managesieve/core/CoreProcessor.java b/protocols/managesieve/src/main/java/org/apache/james/managesieve/core/CoreProcessor.java
index 6a75d32..ef1e78e 100644
--- a/protocols/managesieve/src/main/java/org/apache/james/managesieve/core/CoreProcessor.java
+++ b/protocols/managesieve/src/main/java/org/apache/james/managesieve/core/CoreProcessor.java
@@ -101,7 +101,7 @@ public class CoreProcessor implements CoreCommands {
private Map<Capabilities, String> computeCapabilityMap(Session session) {
Map<Capabilities, String> capabilities = Maps.newHashMap(capabilitiesBase);
if (session.isAuthenticated()) {
- capabilities.put(Capabilities.OWNER, session.getUser());
+ capabilities.put(Capabilities.OWNER, session.getUser().asString());
}
return capabilities;
}
@@ -131,7 +131,7 @@ public class CoreProcessor implements CoreCommands {
public String deleteScript(Session session, String name) {
return handleCommandExecution(() -> {
authenticationCheck(session);
- sieveRepository.deleteScript(Username.of(session.getUser()), new ScriptName(name));
+ sieveRepository.deleteScript(session.getUser(), new ScriptName(name));
return "OK";
}, session);
}
@@ -140,7 +140,7 @@ public class CoreProcessor implements CoreCommands {
public String getScript(Session session, String name) {
return handleCommandExecution(() -> {
authenticationCheck(session);
- String scriptContent = IOUtils.toString(sieveRepository.getScript(Username.of(session.getUser()), new ScriptName(name)), StandardCharsets.UTF_8);
+ String scriptContent = IOUtils.toString(sieveRepository.getScript(session.getUser(), new ScriptName(name)), StandardCharsets.UTF_8);
return "{" + scriptContent.length() + "}" + "\r\n" + scriptContent + "\r\nOK";
}, session);
}
@@ -149,7 +149,7 @@ public class CoreProcessor implements CoreCommands {
public String haveSpace(Session session, String name, long size) {
return handleCommandExecution(() -> {
authenticationCheck(session);
- sieveRepository.haveSpace(Username.of(session.getUser()), new ScriptName(name), size);
+ sieveRepository.haveSpace(session.getUser(), new ScriptName(name), size);
return "OK";
}, session);
}
@@ -162,7 +162,7 @@ public class CoreProcessor implements CoreCommands {
private String listScriptsInternals(Session session) throws AuthenticationRequiredException, StorageException {
authenticationCheck(session);
String list = Joiner.on("\r\n").join(
- Iterables.transform(sieveRepository.listScripts(Username.of(session.getUser())),
+ Iterables.transform(sieveRepository.listScripts(session.getUser()),
scriptSummary -> '"' + scriptSummary.getName().getValue() + '"' + (scriptSummary.isActive() ? " ACTIVE" : "")));
if (Strings.isNullOrEmpty(list)) {
return "OK";
@@ -175,7 +175,7 @@ public class CoreProcessor implements CoreCommands {
public String putScript(Session session, String name, String content) {
return handleCommandExecution(() -> {
authenticationCheck(session);
- sieveRepository.putScript(Username.of(session.getUser()), new ScriptName(name), new ScriptContent(content));
+ sieveRepository.putScript(session.getUser(), new ScriptName(name), new ScriptContent(content));
return manageWarnings(parser.parse(content));
}, session);
}
@@ -184,7 +184,7 @@ public class CoreProcessor implements CoreCommands {
public String renameScript(Session session, String oldName, String newName) {
return handleCommandExecution(() -> {
authenticationCheck(session);
- sieveRepository.renameScript(Username.of(session.getUser()), new ScriptName(oldName), new ScriptName(newName));
+ sieveRepository.renameScript(session.getUser(), new ScriptName(oldName), new ScriptName(newName));
return "OK";
}, session);
}
@@ -193,7 +193,7 @@ public class CoreProcessor implements CoreCommands {
public String setActive(Session session, String name) {
return handleCommandExecution(() -> {
authenticationCheck(session);
- sieveRepository.setActive(Username.of(session.getUser()), new ScriptName(name));
+ sieveRepository.setActive(session.getUser(), new ScriptName(name));
return "OK";
}, session);
}
@@ -229,7 +229,7 @@ public class CoreProcessor implements CoreCommands {
try {
SupportedMechanism currentAuthenticationMechanism = session.getChoosedAuthenticationMechanism();
AuthenticationProcessor authenticationProcessor = authenticationProcessorMap.get(currentAuthenticationMechanism);
- String authenticatedUsername = authenticationProcessor.isAuthenticationSuccesfull(session, suppliedData);
+ Username authenticatedUsername = authenticationProcessor.isAuthenticationSuccesfull(session, suppliedData);
if (authenticatedUsername != null) {
session.setUser(authenticatedUsername);
session.setState(Session.State.AUTHENTICATED);
diff --git a/protocols/managesieve/src/main/java/org/apache/james/managesieve/core/PlainAuthenticationProcessor.java b/protocols/managesieve/src/main/java/org/apache/james/managesieve/core/PlainAuthenticationProcessor.java
index c2d1798..f0d4f03 100644
--- a/protocols/managesieve/src/main/java/org/apache/james/managesieve/core/PlainAuthenticationProcessor.java
+++ b/protocols/managesieve/src/main/java/org/apache/james/managesieve/core/PlainAuthenticationProcessor.java
@@ -22,6 +22,7 @@ package org.apache.james.managesieve.core;
import java.util.Iterator;
+import org.apache.james.core.Username;
import org.apache.james.managesieve.api.AuthenticationException;
import org.apache.james.managesieve.api.AuthenticationProcessor;
import org.apache.james.managesieve.api.Session;
@@ -52,7 +53,7 @@ public class PlainAuthenticationProcessor implements AuthenticationProcessor {
@Override
- public String isAuthenticationSuccesfull(Session session, String suppliedClientData) throws SyntaxException, AuthenticationException {
+ public Username isAuthenticationSuccesfull(Session session, String suppliedClientData) throws SyntaxException, AuthenticationException {
if (suppliedClientData.contains("\u0000")) {
return authenticateWithSeparator(session, suppliedClientData, '\u0000');
} else {
@@ -60,12 +61,12 @@ public class PlainAuthenticationProcessor implements AuthenticationProcessor {
}
}
- private String authenticateWithSeparator(Session session, String suppliedClientData, char c) throws SyntaxException, AuthenticationException {
+ private Username authenticateWithSeparator(Session session, String suppliedClientData, char c) throws SyntaxException, AuthenticationException {
Iterator<String> it = Splitter.on(c).split(suppliedClientData).iterator();
if (!it.hasNext()) {
throw new SyntaxException("You must supply a username for the authentication mechanism. Formal syntax : <NULL>username<NULL>password");
}
- String userName = it.next();
+ Username userName = Username.of(it.next());
if (!it.hasNext()) {
throw new SyntaxException("You must supply a password for the authentication mechanism. Formal syntax : <NULL>username<NULL>password");
}
diff --git a/protocols/managesieve/src/main/java/org/apache/james/managesieve/util/SettableSession.java b/protocols/managesieve/src/main/java/org/apache/james/managesieve/util/SettableSession.java
index 5955b35..09b49de 100644
--- a/protocols/managesieve/src/main/java/org/apache/james/managesieve/util/SettableSession.java
+++ b/protocols/managesieve/src/main/java/org/apache/james/managesieve/util/SettableSession.java
@@ -20,12 +20,13 @@
package org.apache.james.managesieve.util;
+import org.apache.james.core.Username;
import org.apache.james.managesieve.api.Session;
import org.apache.james.managesieve.api.commands.Authenticate;
public class SettableSession implements Session {
- private String user;
+ private Username user;
private State state;
private Authenticate.SupportedMechanism choosedAuthenticationMechanism;
private boolean sslEnabled;
@@ -36,7 +37,7 @@ public class SettableSession implements Session {
}
@Override
- public String getUser() {
+ public Username getUser() {
return user;
}
@@ -46,7 +47,7 @@ public class SettableSession implements Session {
}
@Override
- public void setUser(String user) {
+ public void setUser(Username user) {
this.user = user;
}
diff --git a/protocols/netty/src/main/java/org/apache/james/protocols/netty/ProtocolMDCContext.java b/protocols/netty/src/main/java/org/apache/james/protocols/netty/ProtocolMDCContext.java
index f5d76a6..810a448 100644
--- a/protocols/netty/src/main/java/org/apache/james/protocols/netty/ProtocolMDCContext.java
+++ b/protocols/netty/src/main/java/org/apache/james/protocols/netty/ProtocolMDCContext.java
@@ -64,7 +64,7 @@ public class ProtocolMDCContext {
.map(protocolSession -> MDCBuilder.create()
.addContext(MDCBuilder.SESSION_ID, protocolSession.getSessionID())
.addContext(MDCBuilder.CHARSET, protocolSession.getCharset().displayName())
- .addContext(MDCBuilder.USER, protocolSession.getUser()))
+ .addContext(MDCBuilder.USER, protocolSession.getUsername()))
.orElse(MDCBuilder.create());
}
diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractApopCmdHandler.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractApopCmdHandler.java
index 990562c..656339a 100644
--- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractApopCmdHandler.java
+++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractApopCmdHandler.java
@@ -21,6 +21,7 @@ package org.apache.james.protocols.pop3.core;
import java.util.Collection;
+import org.apache.james.core.Username;
import org.apache.james.protocols.api.ProtocolSession.State;
import org.apache.james.protocols.api.Request;
import org.apache.james.protocols.api.Response;
@@ -57,11 +58,12 @@ public abstract class AbstractApopCmdHandler extends AbstractPassCmdHandler {
}
if (!syntaxError && session.getHandlerState() == POP3Session.AUTHENTICATION_READY) {
- Response response = doAuth(session, parts[0], parts[1]);
+ Username username = Username.of(parts[0]);
+ Response response = doAuth(session, username, parts[1]);
if (POP3Response.OK_RESPONSE.equals(response.getRetCode())) {
// the auth was successful so set the user
- session.setUser(parts[0]);
+ session.setUsername(username);
}
return response;
} else {
@@ -78,7 +80,7 @@ public abstract class AbstractApopCmdHandler extends AbstractPassCmdHandler {
@Override
- protected final Mailbox auth(POP3Session session, String username, String password) throws Exception {
+ protected final Mailbox auth(POP3Session session, Username username, String password) throws Exception {
return auth(session, (String)session.getAttachment(POP3Session.APOP_TIMESTAMP, State.Connection), username, password);
}
@@ -88,5 +90,5 @@ public abstract class AbstractApopCmdHandler extends AbstractPassCmdHandler {
*
* @return mailbox
*/
- protected abstract Mailbox auth(POP3Session session, String apopTimestamp, String user, String digest) throws Exception;
+ protected abstract Mailbox auth(POP3Session session, String apopTimestamp, Username user, String digest) throws Exception;
}
diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractPassCmdHandler.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractPassCmdHandler.java
index 915b455..9358025 100644
--- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractPassCmdHandler.java
+++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractPassCmdHandler.java
@@ -20,7 +20,9 @@
package org.apache.james.protocols.pop3.core;
import java.util.Collection;
+import java.util.Optional;
+import org.apache.james.core.Username;
import org.apache.james.protocols.api.Request;
import org.apache.james.protocols.api.Response;
import org.apache.james.protocols.pop3.POP3Response;
@@ -48,7 +50,7 @@ public abstract class AbstractPassCmdHandler extends RsetCmdHandler {
public Response onCommand(POP3Session session, Request request) {
String parameters = request.getArgument();
if (session.getHandlerState() == POP3Session.AUTHENTICATION_USERSET && parameters != null) {
- return doAuth(session, session.getUser(), parameters);
+ return doAuth(session, session.getUsername(), parameters);
} else {
session.setHandlerState(POP3Session.AUTHENTICATION_READY);
return AUTH_FAILED;
@@ -59,7 +61,7 @@ public abstract class AbstractPassCmdHandler extends RsetCmdHandler {
/**
* Authenticate a user and return the {@link Response}
*/
- protected final Response doAuth(POP3Session session, String user, String pass) {
+ protected final Response doAuth(POP3Session session, Username user, String pass) {
try {
Mailbox mailbox = auth(session, user, pass);
@@ -68,16 +70,18 @@ public abstract class AbstractPassCmdHandler extends RsetCmdHandler {
stat(session);
session.setHandlerState(POP3Session.TRANSACTION);
-
- StringBuilder responseBuffer = new StringBuilder(64).append("Welcome ").append(session.getUser());
+ StringBuilder responseBuffer = new StringBuilder(64).append("Welcome ")
+ .append(Optional.ofNullable(session.getUsername())
+ .map(Username::asString)
+ .orElse(null));
return new POP3Response(POP3Response.OK_RESPONSE, responseBuffer.toString());
} else {
session.setHandlerState(POP3Session.AUTHENTICATION_READY);
return AUTH_FAILED;
}
} catch (Exception e) {
- LOGGER.error("Unexpected error accessing mailbox for {}", session.getUser(), e);
+ LOGGER.error("Unexpected error accessing mailbox for {}", session.getUsername(), e);
session.setHandlerState(POP3Session.AUTHENTICATION_READY);
return UNEXPECTED_ERROR;
}
@@ -94,5 +98,5 @@ public abstract class AbstractPassCmdHandler extends RsetCmdHandler {
*
* @return mailbox
*/
- protected abstract Mailbox auth(POP3Session session, String username, String password) throws Exception;
+ protected abstract Mailbox auth(POP3Session session, Username username, String password) throws Exception;
}
diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UserCmdHandler.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UserCmdHandler.java
index 427ba96..c4ded58 100644
--- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UserCmdHandler.java
+++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UserCmdHandler.java
@@ -22,6 +22,7 @@ package org.apache.james.protocols.pop3.core;
import java.util.Collection;
import java.util.Set;
+import org.apache.james.core.Username;
import org.apache.james.protocols.api.Request;
import org.apache.james.protocols.api.Response;
import org.apache.james.protocols.api.handler.CommandHandler;
@@ -46,7 +47,7 @@ public class UserCmdHandler implements CommandHandler<POP3Session>, CapaCapabili
public Response onCommand(POP3Session session, Request request) {
String parameters = request.getArgument();
if (session.getHandlerState() == POP3Session.AUTHENTICATION_READY && parameters != null) {
- session.setUser(parameters);
+ session.setUsername(Username.of(parameters));
session.setHandlerState(POP3Session.AUTHENTICATION_USERSET);
return POP3Response.OK;
} else {
diff --git a/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java b/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java
index e253464..3aa9c15 100644
--- a/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java
+++ b/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java
@@ -31,6 +31,7 @@ import java.util.regex.Pattern;
import org.apache.commons.net.pop3.POP3Client;
import org.apache.commons.net.pop3.POP3MessageInfo;
import org.apache.commons.net.pop3.POP3Reply;
+import org.apache.james.core.Username;
import org.apache.james.protocols.api.Protocol;
import org.apache.james.protocols.api.ProtocolServer;
import org.apache.james.protocols.api.handler.WiringException;
@@ -520,8 +521,8 @@ public abstract class AbstractPOP3ServerTest {
}
@Override
- protected Mailbox auth(POP3Session session, String apopTimestamp, String user, String digest) throws Exception {
- return mailboxes.get(user);
+ protected Mailbox auth(POP3Session session, String apopTimestamp, Username user, String digest) throws Exception {
+ return mailboxes.get(user.asString());
}
diff --git a/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/utils/TestPassCmdHandler.java b/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/utils/TestPassCmdHandler.java
index b3cf2b7..fdaa284 100644
--- a/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/utils/TestPassCmdHandler.java
+++ b/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/utils/TestPassCmdHandler.java
@@ -21,6 +21,7 @@ package org.apache.james.protocols.pop3.utils;
import java.util.HashMap;
import java.util.Map;
+import org.apache.james.core.Username;
import org.apache.james.protocols.pop3.POP3Session;
import org.apache.james.protocols.pop3.core.AbstractPassCmdHandler;
import org.apache.james.protocols.pop3.mailbox.Mailbox;
@@ -33,8 +34,8 @@ public class TestPassCmdHandler extends AbstractPassCmdHandler {
}
@Override
- protected Mailbox auth(POP3Session session, String username, String password) throws Exception {
- return mailboxes.get(username);
+ protected Mailbox auth(POP3Session session, Username username, String password) throws Exception {
+ return mailboxes.get(username.asString());
}
}
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java
index 8351806..487ec8c 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationRcptHook.java
@@ -21,6 +21,7 @@ package org.apache.james.protocols.smtp.core;
import org.apache.james.core.Domain;
import org.apache.james.core.MailAddress;
import org.apache.james.core.MaybeSender;
+import org.apache.james.core.Username;
import org.apache.james.protocols.api.ProtocolSession;
import org.apache.james.protocols.smtp.SMTPRetCode;
import org.apache.james.protocols.smtp.SMTPSession;
@@ -44,7 +45,7 @@ public abstract class AbstractSenderAuthIdentifyVerificationRcptHook implements
@Override
public HookResult doRcpt(SMTPSession session, MaybeSender sender, MailAddress rcpt) {
- if (session.getUser() != null) {
+ if (session.getUsername() != null) {
MaybeSender senderAddress = (MaybeSender) session.getAttachment(SMTPSession.SENDER, ProtocolSession.State.Transaction);
// Check if the sender address is the same as the user which was used to authenticate.
@@ -66,8 +67,9 @@ public abstract class AbstractSenderAuthIdentifyVerificationRcptHook implements
private boolean senderMatchSessionUser(MaybeSender maybeSender, SMTPSession session) {
Preconditions.checkArgument(!maybeSender.isNullSender());
- String authUser = session.getUser();
- String sender = getUser(maybeSender.get());
+ Username authUser = session.getUsername();
+ Username sender = getUser(maybeSender.get());
+ Username username = getUser(maybeSender.get());
return isSenderAllowed(authUser, sender);
}
@@ -89,10 +91,10 @@ public abstract class AbstractSenderAuthIdentifyVerificationRcptHook implements
*
* @return username corresponding to the mail address
*/
- protected abstract String getUser(MailAddress mailAddress);
+ protected abstract Username getUser(MailAddress mailAddress);
/**
* Is a given sender allowed for a user
*/
- protected abstract boolean isSenderAllowed(String user, String sender);
+ protected abstract boolean isSenderAllowed(Username user, Username sender);
}
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java
index c0f19f9..48b0a73 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java
@@ -51,7 +51,7 @@ public class ReceivedDataLineFilter extends AbstractAddHeadersFilter {
// Check if EHLO was used
if (EHLO.equals(heloMode)) {
// Not successful auth
- if (session.getUser() == null) {
+ if (session.getUsername() == null) {
return ESMTP;
} else {
// See RFC3848
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
index 84e0b57..622eea9 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
@@ -33,6 +33,7 @@ import java.util.Locale;
import java.util.Optional;
import java.util.StringTokenizer;
+import org.apache.james.core.Username;
import org.apache.james.protocols.api.Request;
import org.apache.james.protocols.api.Response;
import org.apache.james.protocols.api.handler.CommandHandler;
@@ -156,7 +157,7 @@ public class AuthCmdHandler
* @param argument the argument passed in with the command by the SMTP client
*/
private Response doAUTH(SMTPSession session, String argument) {
- if (session.getUser() != null) {
+ if (session.getUsername() != null) {
return ALREADY_AUTH;
} else if (argument == null) {
return SYNTAX_ERROR;
@@ -267,7 +268,7 @@ public class AuthCmdHandler
// with in the if clause below
}
// Authenticate user
- Response response = doAuthTest(session, user, pass, "PLAIN");
+ Response response = doAuthTest(session, Username.of(user), pass, "PLAIN");
session.popLineHandler();
@@ -303,22 +304,22 @@ public class AuthCmdHandler
session.pushLineHandler(new AbstractSMTPLineHandler() {
- private String user;
+ private Username username;
- public LineHandler<SMTPSession> setUser(String user) {
- this.user = user;
+ public LineHandler<SMTPSession> setUsername(Username username) {
+ this.username = username;
return this;
}
@Override
protected Response onCommand(SMTPSession session, String l) {
- return doLoginAuthPassCheck(session, user, l);
+ return doLoginAuthPassCheck(session, username, l);
}
- }.setUser(user));
+ }.setUsername(Username.of(user)));
return AUTH_READY_PASSWORD_LOGIN;
}
- private Response doLoginAuthPassCheck(SMTPSession session, String user, String pass) {
+ private Response doLoginAuthPassCheck(SMTPSession session, Username username, String pass) {
if (pass != null) {
try {
pass = decodeBase64(pass);
@@ -332,11 +333,11 @@ public class AuthCmdHandler
session.popLineHandler();
// Authenticate user
- return doAuthTest(session, user, pass, "LOGIN");
+ return doAuthTest(session, username, pass, "LOGIN");
}
- protected Response doAuthTest(SMTPSession session, String user, String pass, String authType) {
- if ((user == null) || (pass == null)) {
+ protected Response doAuthTest(SMTPSession session, Username username, String pass, String authType) {
+ if ((username == null) || (pass == null)) {
return new SMTPResponse(SMTPRetCode.SYNTAX_ERROR_ARGUMENTS,"Could not decode parameters for AUTH " + authType);
}
@@ -349,7 +350,7 @@ public class AuthCmdHandler
LOGGER.debug("executing hook {}", rawHook);
long start = System.currentTimeMillis();
- HookResult hRes = rawHook.doAuth(session, user, pass);
+ HookResult hRes = rawHook.doAuth(session, username, pass);
long executionTime = System.currentTimeMillis() - start;
if (rHooks != null) {
@@ -374,7 +375,7 @@ public class AuthCmdHandler
}
res = AUTH_FAILED;
- LOGGER.error("AUTH method {} failed from {}@{}", authType, user, session.getRemoteAddress().getAddress().getHostAddress());
+ LOGGER.error("AUTH method {} failed from {}@{}", authType, username, session.getRemoteAddress().getAddress().getHostAddress());
return res;
}
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/AuthHook.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/AuthHook.java
index 952c98b..60cc5a3 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/AuthHook.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/AuthHook.java
@@ -18,6 +18,7 @@
****************************************************************/
package org.apache.james.protocols.smtp.hook;
+import org.apache.james.core.Username;
import org.apache.james.protocols.smtp.SMTPSession;
/**
@@ -33,5 +34,5 @@ public interface AuthHook extends Hook {
* @param password the password
* @return HockResult
*/
- HookResult doAuth(SMTPSession session, String username, String password);
+ HookResult doAuth(SMTPSession session, Username username, String password);
}
diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java
index df2d274..320f6a1 100644
--- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java
+++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java
@@ -30,6 +30,7 @@ import java.util.Map;
import org.apache.james.core.MailAddress;
import org.apache.james.core.MaybeSender;
+import org.apache.james.core.Username;
import org.apache.james.protocols.smtp.SMTPSession;
import org.apache.james.protocols.smtp.hook.HookReturnCode;
import org.apache.james.protocols.smtp.utils.BaseFakeSMTPSession;
@@ -43,7 +44,7 @@ public class ResolvableEhloHeloHandlerTest {
private SMTPSession setupMockSession(String argument,
- final boolean relaying, final boolean authRequired, final String user, MailAddress recipient) {
+ final boolean relaying, final boolean authRequired, final Username username, MailAddress recipient) {
return new BaseFakeSMTPSession() {
@@ -56,8 +57,8 @@ public class ResolvableEhloHeloHandlerTest {
}
@Override
- public String getUser() {
- return user;
+ public Username getUsername() {
+ return username;
}
@Override
@@ -148,7 +149,7 @@ public class ResolvableEhloHeloHandlerTest {
@Test
public void testRejectInvalidHeloAuthUser() throws Exception {
MailAddress mailAddress = new MailAddress("test@localhost");
- SMTPSession session = setupMockSession(INVALID_HOST,false,true,"valid@user",mailAddress);
+ SMTPSession session = setupMockSession(INVALID_HOST, false, true, Username.of("valid@user"), mailAddress);
ResolvableEhloHeloHandler handler = createHandler();
diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/utils/BaseFakeSMTPSession.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/utils/BaseFakeSMTPSession.java
index e16b4bc..a6c8af1 100644
--- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/utils/BaseFakeSMTPSession.java
+++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/utils/BaseFakeSMTPSession.java
@@ -24,6 +24,7 @@ import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import java.util.Map;
+import org.apache.james.core.Username;
import org.apache.james.protocols.api.ProtocolSession;
import org.apache.james.protocols.api.Response;
import org.apache.james.protocols.api.handler.LineHandler;
@@ -71,7 +72,7 @@ public class BaseFakeSMTPSession implements SMTPSession {
}
@Override
- public String getUser() {
+ public Username getUsername() {
throw new UnsupportedOperationException("Unimplemented Stub Method");
}
@@ -96,11 +97,10 @@ public class BaseFakeSMTPSession implements SMTPSession {
}
@Override
- public void setUser(String user) {
+ public void setUsername(Username username) {
throw new UnsupportedOperationException("Unimplemented Stub Method");
}
-
@Override
public void popLineHandler() {
throw new UnsupportedOperationException("Unimplemented Stub Method");
diff --git a/server/container/cli-integration/src/test/java/org/apache/james/cli/ReindexCommandIntegrationTest.java b/server/container/cli-integration/src/test/java/org/apache/james/cli/ReindexCommandIntegrationTest.java
index c1ff23f..665521b 100644
--- a/server/container/cli-integration/src/test/java/org/apache/james/cli/ReindexCommandIntegrationTest.java
+++ b/server/container/cli-integration/src/test/java/org/apache/james/cli/ReindexCommandIntegrationTest.java
@@ -26,6 +26,7 @@ import static org.mockito.Mockito.when;
import org.apache.james.GuiceJamesServer;
import org.apache.james.MemoryJmapTestRule;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.indexer.ReIndexer;
import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.mailbox.model.MailboxPath;
@@ -77,7 +78,7 @@ public class ReindexCommandIntegrationTest {
String mailbox = "mailbox";
ServerCmd.doMain(new String[] {"-h", "127.0.0.1", "-p", "9999", "reindexmailbox", MailboxConstants.USER_NAMESPACE, USER, mailbox});
- verify(reIndexer).reIndex(MailboxPath.forUser(USER, mailbox));
+ verify(reIndexer).reIndex(MailboxPath.forUser(Username.of(USER), mailbox));
}
}
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java
index ef7ff8d..a1c1189 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java
@@ -34,6 +34,7 @@ import java.util.TimerTask;
import java.util.stream.Collectors;
import org.apache.commons.net.imap.IMAPClient;
+import org.apache.james.core.Username;
import org.apache.james.jmap.api.access.AccessToken;
import org.apache.james.mailbox.extractor.TextExtractor;
import org.apache.james.mailbox.store.search.PDFTextExtractor;
@@ -98,7 +99,7 @@ class ESReporterTest {
.setConfig(newConfig().encoderConfig(encoderConfig().defaultContentCharset(StandardCharsets.UTF_8)))
.setPort(server.getProbe(JmapGuiceProbe.class).getJmapPort())
.build();
- accessToken = authenticateJamesUser(baseUri(server), USERNAME, PASSWORD);
+ accessToken = authenticateJamesUser(baseUri(server), Username.of(USERNAME), PASSWORD);
timer = new Timer();
}
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/FixingGhostMailboxTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/FixingGhostMailboxTest.java
index ffd8e4f..5c88a39 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/FixingGhostMailboxTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/FixingGhostMailboxTest.java
@@ -41,6 +41,7 @@ import static org.hamcrest.Matchers.nullValue;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
+import org.apache.james.core.Username;
import org.apache.james.jmap.api.access.AccessToken;
import org.apache.james.mailbox.MessageManager.AppendCommand;
import org.apache.james.mailbox.cassandra.mail.task.MailboxMergingTask;
@@ -137,7 +138,7 @@ public class FixingGhostMailboxTest {
.addDomain(DOMAIN)
.addUser(ALICE, ALICE_SECRET)
.addUser(BOB, BOB_SECRET);
- accessToken = authenticateJamesUser(baseUri(server), ALICE, ALICE_SECRET);
+ accessToken = authenticateJamesUser(baseUri(server), Username.of(ALICE), ALICE_SECRET);
Host cassandraHost = dockerCassandra.getCassandra().getHost();
session = Cluster.builder()
@@ -153,7 +154,7 @@ public class FixingGhostMailboxTest {
private void simulateGhostMailboxBug() throws MailboxException, IOException {
// State before ghost mailbox bug
// Alice INBOX is delegated to Bob and contains one message
- aliceInboxPath = MailboxPath.forUser(ALICE, MailboxConstants.INBOX);
+ aliceInboxPath = MailboxPath.forUser(Username.of(ALICE), MailboxConstants.INBOX);
aliceGhostInboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE, MailboxConstants.INBOX);
aclProbe.addRights(aliceInboxPath, BOB, MailboxACL.FULL_RIGHTS);
message1 = mailboxProbe.appendMessage(ALICE, aliceInboxPath, AppendCommand.from(generateMessageContent()));
diff --git a/server/container/guice/cassandra-ldap-guice/src/test/java/org/apache/james/CassandraLdapJamesServerTest.java b/server/container/guice/cassandra-ldap-guice/src/test/java/org/apache/james/CassandraLdapJamesServerTest.java
index 5c91b17..971c47e 100644
--- a/server/container/guice/cassandra-ldap-guice/src/test/java/org/apache/james/CassandraLdapJamesServerTest.java
+++ b/server/container/guice/cassandra-ldap-guice/src/test/java/org/apache/james/CassandraLdapJamesServerTest.java
@@ -68,13 +68,13 @@ class CassandraLdapJamesServerTest implements JamesServerContract {
void userFromLdapShouldLoginViaImapProtocol(GuiceJamesServer server) throws Exception {
imapClient.connect(JAMES_SERVER_HOST, server.getProbe(ImapGuiceProbe.class).getImapPort());
- assertThat(imapClient.login(JAMES_USER, PASSWORD)).isTrue();
+ assertThat(imapClient.login(JAMES_USER.asString(), PASSWORD)).isTrue();
}
@Test
void mailsShouldBeWellReceivedBeforeFirstUserConnectionWithLdap(GuiceJamesServer server) throws Exception {
messageSender.connect(JAMES_SERVER_HOST, server.getProbe(SmtpGuiceProbe.class).getSmtpPort())
- .sendMessage("bob@any.com", JAMES_USER + "@localhost");
+ .sendMessage("bob@any.com", JAMES_USER.asString() + "@localhost");
calmlyAwait.until(() -> server.getProbe(SpoolerProbe.class).processingFinished());
diff --git a/server/container/guice/cassandra-rabbitmq-ldap-guice/src/test/java/org/apache/james/CassandraRabbitMQLdapJmapJamesServerTest.java b/server/container/guice/cassandra-rabbitmq-ldap-guice/src/test/java/org/apache/james/CassandraRabbitMQLdapJmapJamesServerTest.java
index c4ed73c..bdff8d8 100644
--- a/server/container/guice/cassandra-rabbitmq-ldap-guice/src/test/java/org/apache/james/CassandraRabbitMQLdapJmapJamesServerTest.java
+++ b/server/container/guice/cassandra-rabbitmq-ldap-guice/src/test/java/org/apache/james/CassandraRabbitMQLdapJmapJamesServerTest.java
@@ -49,7 +49,7 @@ class CassandraRabbitMQLdapJmapJamesServerTest {
IMAPClient imapClient = new IMAPClient();
imapClient.connect(JAMES_SERVER_HOST, server.getProbe(ImapGuiceProbe.class).getImapPort());
- assertThat(imapClient.login(JAMES_USER, PASSWORD)).isTrue();
+ assertThat(imapClient.login(JAMES_USER.asString(), PASSWORD)).isTrue();
}
}
diff --git a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/DataProbeImpl.java b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/DataProbeImpl.java
index 3f07581..7e7b4c1 100644
--- a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/DataProbeImpl.java
+++ b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/DataProbeImpl.java
@@ -26,16 +26,16 @@ import javax.inject.Inject;
import org.apache.commons.lang3.NotImplementedException;
import org.apache.james.core.Domain;
+import org.apache.james.core.Username;
import org.apache.james.domainlist.api.DomainList;
import org.apache.james.probe.DataProbe;
import org.apache.james.rrt.api.RecipientRewriteTable;
import org.apache.james.rrt.lib.MappingSource;
import org.apache.james.rrt.lib.Mappings;
import org.apache.james.user.api.UsersRepository;
+import org.apache.james.util.streams.Iterators;
import com.github.steveash.guavate.Guavate;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
public class DataProbeImpl implements GuiceProbe, DataProbe {
@@ -55,12 +55,12 @@ public class DataProbeImpl implements GuiceProbe, DataProbe {
@Override
public void addUser(String userName, String password) throws Exception {
- usersRepository.addUser(userName, password);
+ usersRepository.addUser(Username.of(userName), password);
}
@Override
public void removeUser(String username) throws Exception {
- usersRepository.removeUser(username);
+ usersRepository.removeUser(Username.of(username));
}
@Override
@@ -70,7 +70,9 @@ public class DataProbeImpl implements GuiceProbe, DataProbe {
@Override
public String[] listUsers() throws Exception {
- return Iterables.toArray(ImmutableList.copyOf(usersRepository.list()), String.class);
+ return Iterators.toStream(usersRepository.list())
+ .map(Username::asString)
+ .toArray(String[]::new);
}
@Override
diff --git a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/ACLProbeImpl.java b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/ACLProbeImpl.java
index 3182b8e..02362dd 100644
--- a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/ACLProbeImpl.java
+++ b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/ACLProbeImpl.java
@@ -21,6 +21,7 @@ package org.apache.james.modules;
import javax.inject.Inject;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
@@ -45,14 +46,14 @@ public class ACLProbeImpl implements GuiceProbe, ACLProbe {
public void replaceRights(MailboxPath mailboxPath, String targetUser, Rfc4314Rights rights) throws MailboxException {
MailboxSession mailboxSession = mailboxManager.createSystemSession(mailboxPath.getUser());
- ACLCommand command = MailboxACL.command().forUser(targetUser).rights(rights).asReplacement();
+ ACLCommand command = MailboxACL.command().forUser(Username.of(targetUser)).rights(rights).asReplacement();
mailboxManager.applyRightsCommand(mailboxPath, command, mailboxSession);
}
@Override
public void addRights(MailboxPath mailboxPath, String targetUser, Rfc4314Rights rights) throws MailboxException {
MailboxSession mailboxSession = mailboxManager.createSystemSession(mailboxPath.getUser());
- ACLCommand command = MailboxACL.command().forUser(targetUser).rights(rights).asAddition();
+ ACLCommand command = MailboxACL.command().forUser(Username.of(targetUser)).rights(rights).asAddition();
mailboxManager.applyRightsCommand(mailboxPath, command, mailboxSession);
}
diff --git a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java
index df0e819..3f49929 100644
--- a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java
+++ b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java
@@ -30,6 +30,7 @@ import javax.inject.Inject;
import javax.mail.Flags;
import org.apache.commons.lang3.NotImplementedException;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
@@ -61,7 +62,7 @@ public class MailboxProbeImpl implements GuiceProbe, MailboxProbe {
@Override
public MailboxId createMailbox(String namespace, String user, String name) {
- return createMailbox(new MailboxPath(namespace, user, name));
+ return createMailbox(new MailboxPath(namespace, Username.of(user), name));
}
public MailboxId createMailbox(MailboxPath mailboxPath) {
@@ -80,11 +81,12 @@ public class MailboxProbeImpl implements GuiceProbe, MailboxProbe {
@Override
public MailboxId getMailboxId(String namespace, String user, String name) {
+ Username username = Username.of(user);
MailboxSession mailboxSession = null;
try {
- mailboxSession = mailboxManager.createSystemSession(user);
+ mailboxSession = mailboxManager.createSystemSession(username);
MailboxMapper mailboxMapper = mailboxMapperFactory.getMailboxMapper(mailboxSession);
- return mailboxMapper.findMailboxByPath(new MailboxPath(namespace, user, name)).getMailboxId();
+ return mailboxMapper.findMailboxByPath(new MailboxPath(namespace, username, name)).getMailboxId();
} catch (MailboxException e) {
throw new RuntimeException(e);
} finally {
@@ -107,7 +109,7 @@ public class MailboxProbeImpl implements GuiceProbe, MailboxProbe {
public Collection<String> listUserMailboxes(String user) {
MailboxSession mailboxSession = null;
try {
- mailboxSession = mailboxManager.createSystemSession(user);
+ mailboxSession = mailboxManager.createSystemSession(Username.of(user));
mailboxManager.startProcessingRequest(mailboxSession);
return searchUserMailboxes(mailboxSession)
.stream()
@@ -133,10 +135,11 @@ public class MailboxProbeImpl implements GuiceProbe, MailboxProbe {
@Override
public void deleteMailbox(String namespace, String user, String name) {
MailboxSession mailboxSession = null;
+ Username username = Username.of(user);
try {
- mailboxSession = mailboxManager.createSystemSession(user);
+ mailboxSession = mailboxManager.createSystemSession(username);
mailboxManager.startProcessingRequest(mailboxSession);
- mailboxManager.deleteMailbox(new MailboxPath(namespace, user, name), mailboxSession);
+ mailboxManager.deleteMailbox(new MailboxPath(namespace, username, name), mailboxSession);
} catch (MailboxException e) {
throw new RuntimeException(e);
} finally {
@@ -146,10 +149,11 @@ public class MailboxProbeImpl implements GuiceProbe, MailboxProbe {
@Override
public void importEmlFileToMailbox(String namespace, String user, String name, String emlPath) throws Exception {
- MailboxSession mailboxSession = mailboxManager.createSystemSession(user);
+ Username username = Username.of(user);
+ MailboxSession mailboxSession = mailboxManager.createSystemSession(username);
mailboxManager.startProcessingRequest(mailboxSession);
- MessageManager messageManager = mailboxManager.getMailbox(new MailboxPath(namespace, user, name), mailboxSession);
+ MessageManager messageManager = mailboxManager.getMailbox(new MailboxPath(namespace, username, name), mailboxSession);
InputStream emlFileAsStream = new FileInputStream(emlPath);
messageManager.appendMessage(MessageManager.AppendCommand.builder()
.recent()
@@ -163,7 +167,7 @@ public class MailboxProbeImpl implements GuiceProbe, MailboxProbe {
public ComposedMessageId appendMessage(String username, MailboxPath mailboxPath, InputStream message, Date internalDate, boolean isRecent, Flags flags)
throws MailboxException {
- MailboxSession mailboxSession = mailboxManager.createSystemSession(username);
+ MailboxSession mailboxSession = mailboxManager.createSystemSession(Username.of(username));
MessageManager messageManager = mailboxManager.getMailbox(mailboxPath, mailboxSession);
return messageManager.appendMessage(message, internalDate, mailboxSession, isRecent, flags);
}
@@ -171,7 +175,7 @@ public class MailboxProbeImpl implements GuiceProbe, MailboxProbe {
public ComposedMessageId appendMessage(String username, MailboxPath mailboxPath, MessageManager.AppendCommand appendCommand)
throws MailboxException {
- MailboxSession mailboxSession = mailboxManager.createSystemSession(username);
+ MailboxSession mailboxSession = mailboxManager.createSystemSession(Username.of(username));
MessageManager messageManager = mailboxManager.getMailbox(mailboxPath, mailboxSession);
return messageManager.appendMessage(appendCommand, mailboxSession);
}
@@ -198,7 +202,7 @@ public class MailboxProbeImpl implements GuiceProbe, MailboxProbe {
@Override
public Collection<String> listSubscriptions(String user) throws Exception {
- MailboxSession mailboxSession = mailboxManager.createSystemSession(user);
+ MailboxSession mailboxSession = mailboxManager.createSystemSession(Username.of(user));
return subscriptionManager.subscriptions(mailboxSession);
}
diff --git a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/QuotaProbesImpl.java b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/QuotaProbesImpl.java
index 1a88992..5b66e67 100644
--- a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/QuotaProbesImpl.java
+++ b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/QuotaProbesImpl.java
@@ -21,6 +21,7 @@ package org.apache.james.modules;
import javax.inject.Inject;
+import org.apache.james.core.Username;
import org.apache.james.core.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.mailbox.exception.MailboxException;
@@ -50,7 +51,7 @@ public class QuotaProbesImpl implements QuotaProbe, GuiceProbe {
@Override
public String getQuotaRoot(String namespace, String user, String name) throws MailboxException {
- return quotaRootResolver.getQuotaRoot(new MailboxPath(namespace, user, name)).getValue();
+ return quotaRootResolver.getQuotaRoot(new MailboxPath(namespace, Username.of(user), name)).getValue();
}
@Override
diff --git a/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JmapGuiceProbe.java b/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JmapGuiceProbe.java
index c02de9d..434b41b 100644
--- a/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JmapGuiceProbe.java
+++ b/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JmapGuiceProbe.java
@@ -23,6 +23,7 @@ import java.util.Arrays;
import javax.inject.Inject;
+import org.apache.james.core.Username;
import org.apache.james.jmap.api.vacation.AccountId;
import org.apache.james.jmap.api.vacation.Vacation;
import org.apache.james.jmap.api.vacation.VacationPatch;
@@ -70,7 +71,7 @@ public class JmapGuiceProbe implements GuiceProbe {
return vacationRepository.retrieveVacation(accountId).block();
}
- public void setInMailboxes(MessageId messageId, String username, MailboxId... mailboxIds) throws MailboxException {
+ public void setInMailboxes(MessageId messageId, Username username, MailboxId... mailboxIds) throws MailboxException {
MailboxSession mailboxSession = mailboxManager.createSystemSession(username);
messageIdManager.setInMailboxes(messageId, Arrays.asList(mailboxIds), mailboxSession);
}
diff --git a/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/MessageIdProbe.java b/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/MessageIdProbe.java
index 69268d0..6240733 100644
--- a/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/MessageIdProbe.java
+++ b/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/MessageIdProbe.java
@@ -24,6 +24,7 @@ import java.util.List;
import javax.inject.Inject;
import javax.mail.Flags;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageIdManager;
@@ -51,19 +52,19 @@ public class MessageIdProbe implements GuiceProbe {
this.messageIdManager = messageIdManager;
}
- public List<MessageResult> getMessages(MessageId messageId, String user) throws MailboxException {
+ public List<MessageResult> getMessages(MessageId messageId, Username user) throws MailboxException {
MailboxSession mailboxSession = mailboxManager.createSystemSession(user);
return messageIdManager.getMessages(ImmutableList.of(messageId), FetchGroupImpl.FULL_CONTENT, mailboxSession);
}
- public void updateNewFlags(String user, Flags newFlags, MessageId messageId, List<MailboxId> mailboxIds) throws MailboxException {
+ public void updateNewFlags(Username user, Flags newFlags, MessageId messageId, List<MailboxId> mailboxIds) throws MailboxException {
MailboxSession mailboxSession = mailboxManager.createSystemSession(user);
messageIdManager.setFlags(newFlags, FlagsUpdateMode.REPLACE, messageId, mailboxIds, mailboxSession);
}
- public List<AttachmentId> retrieveAttachmentIds(MessageId messageId, String username) throws MailboxException {
+ public List<AttachmentId> retrieveAttachmentIds(MessageId messageId, Username username) throws MailboxException {
MailboxSession mailboxSession = mailboxManager.createSystemSession(username);
List<MessageResult> messages = messageIdManager.getMessages(
ImmutableList.of(messageId),
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/store/UserRepositoryAuthenticator.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/store/UserRepositoryAuthenticator.java
index 64d975a..f8b35bd 100644
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/store/UserRepositoryAuthenticator.java
+++ b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/store/UserRepositoryAuthenticator.java
@@ -21,6 +21,7 @@ package org.apache.james.adapter.mailbox.store;
import javax.inject.Inject;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.store.Authenticator;
import org.apache.james.user.api.UsersRepository;
@@ -40,7 +41,7 @@ public class UserRepositoryAuthenticator implements Authenticator {
}
@Override
- public boolean isAuthentic(String userid, CharSequence passwd) throws MailboxException {
+ public boolean isAuthentic(Username userid, CharSequence passwd) throws MailboxException {
try {
return repos.test(userid, passwd.toString());
} catch (UsersRepositoryException e) {
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/store/UserRepositoryAuthorizator.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/store/UserRepositoryAuthorizator.java
index cda4fa9..85110ae 100644
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/store/UserRepositoryAuthorizator.java
+++ b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/store/UserRepositoryAuthorizator.java
@@ -21,6 +21,7 @@ package org.apache.james.adapter.mailbox.store;
import javax.inject.Inject;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.store.Authorizator;
import org.apache.james.user.api.UsersRepository;
@@ -39,7 +40,7 @@ public class UserRepositoryAuthorizator implements Authorizator {
}
@Override
- public AuthorizationState canLoginAsOtherUser(String userId, String otherUserId) throws MailboxException {
+ public AuthorizationState canLoginAsOtherUser(Username userId, Username otherUserId) throws MailboxException {
try {
if (!repos.isAdministrator(userId)) {
return AuthorizationState.NOT_ADMIN;
diff --git a/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/store/UserRepositoryAuthenticatorTest.java b/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/store/UserRepositoryAuthenticatorTest.java
index 48c8333..7ec82b1 100644
--- a/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/store/UserRepositoryAuthenticatorTest.java
+++ b/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/store/UserRepositoryAuthenticatorTest.java
@@ -23,6 +23,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.user.api.UsersRepository;
import org.apache.james.user.api.UsersRepositoryException;
@@ -34,9 +35,9 @@ import org.junit.rules.ExpectedException;
public class UserRepositoryAuthenticatorTest {
public static final String PASSWORD = "password";
- public static final String USER = "user";
+ public static final Username USER = Username.of("user");
public static final String BAD_PASSWORD = "badPassword";
- public static final String BAD_USER = "badUser";
+ public static final Username BAD_USER = Username.of("badUser");
private UsersRepository usersRepository;
private UserRepositoryAuthenticator testee;
diff --git a/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/store/UserRepositoryAuthorizatorTest.java b/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/store/UserRepositoryAuthorizatorTest.java
index 84e499e..cfb2750 100644
--- a/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/store/UserRepositoryAuthorizatorTest.java
+++ b/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/store/UserRepositoryAuthorizatorTest.java
@@ -23,6 +23,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.store.Authorizator;
import org.apache.james.user.api.UsersRepository;
@@ -33,8 +34,8 @@ import org.junit.Test;
import org.junit.rules.ExpectedException;
public class UserRepositoryAuthorizatorTest {
- private static final String ADMIN = "admin";
- private static final String USER = "user";
+ private static final Username ADMIN = Username.of("admin");
+ private static final Username USER = Username.of("user");
private UsersRepository usersRepository;
private UserRepositoryAuthorizator testee;
diff --git a/server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java b/server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
index 79d68db..dddfa29 100644
--- a/server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
+++ b/server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
@@ -30,6 +30,7 @@ import javax.inject.Named;
import javax.management.NotCompliantMBeanException;
import javax.management.StandardMBean;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
@@ -72,7 +73,7 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
.addContext(MDCBuilder.ACTION, "deleteMailboxes")
.addContext("concernedUser", username)
.build()) {
- session = mailboxManager.createSystemSession(username);
+ session = mailboxManager.createSystemSession(Username.of(username));
mailboxManager.startProcessingRequest(session);
List<MailboxMetaData> mList = retrieveAllUserMailboxes(session);
for (MailboxMetaData aMList : mList) {
@@ -100,7 +101,7 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
.addContext(MDCBuilder.ACTION, "listMailboxes")
.addContext("concernedUser", username)
.build()) {
- session = mailboxManager.createSystemSession(username);
+ session = mailboxManager.createSystemSession(Username.of(username));
mailboxManager.startProcessingRequest(session);
List<MailboxMetaData> mList = retrieveAllUserMailboxes(session);
boxes = mList.stream()
@@ -120,15 +121,16 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
@Override
public MailboxId createMailbox(String namespace, String user, String name) {
checkMailboxArguments(namespace, user, name);
+ Username username = Username.of(user);
MailboxSession session = null;
- MailboxPath mailboxPath = new MailboxPath(namespace, user, name);
+ MailboxPath mailboxPath = new MailboxPath(namespace, username, name);
try (Closeable closeable =
MDCBuilder.create()
.addContext(MDCBuilder.PROTOCOL, "CLI")
.addContext(MDCBuilder.ACTION, "createMailbox")
.addContext("mailboxPath", mailboxPath.asString())
.build()) {
- session = mailboxManager.createSystemSession(user);
+ session = mailboxManager.createSystemSession(username);
mailboxManager.startProcessingRequest(session);
return mailboxManager.createMailbox(mailboxPath, session)
.orElseThrow(() -> new MailboxException("mailbox name is probably empty"));
@@ -143,15 +145,16 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
@Override
public void deleteMailbox(String namespace, String user, String name) {
checkMailboxArguments(namespace, user, name);
+ Username username = Username.of(user);
MailboxSession session = null;
- MailboxPath mailboxPath = new MailboxPath(namespace, user, name);
+ MailboxPath mailboxPath = new MailboxPath(namespace, username, name);
try (Closeable closeable =
MDCBuilder.create()
.addContext(MDCBuilder.PROTOCOL, "CLI")
.addContext(MDCBuilder.ACTION, "deleteMailbox")
.addContext("mailboxPath", mailboxPath.asString())
.build()) {
- session = mailboxManager.createSystemSession(user);
+ session = mailboxManager.createSystemSession(username);
mailboxManager.startProcessingRequest(session);
mailboxManager.deleteMailbox(mailboxPath, session);
} catch (Exception e) {
@@ -165,9 +168,10 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
public void importEmlFileToMailbox(String namespace, String user, String name, String emlPath) {
checkMailboxArguments(namespace, user, name);
checkString(emlPath, "email file path name");
+ Username username = Username.of(user);
MailboxSession session = null;
- MailboxPath mailboxPath = new MailboxPath(namespace, user, name);
+ MailboxPath mailboxPath = new MailboxPath(namespace, username, name);
try (Closeable closeable =
MDCBuilder.create()
.addContext(MDCBuilder.PROTOCOL, "CLI")
@@ -175,7 +179,7 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
.addContext("mailboxPath", mailboxPath.asString())
.addContext("emlPath", emlPath)
.build()) {
- session = mailboxManager.createSystemSession(user);
+ session = mailboxManager.createSystemSession(username);
mailboxManager.startProcessingRequest(session);
MessageManager messageManager = mailboxManager.getMailbox(mailboxPath, session);
InputStream emlFileAsStream = new FileInputStream(emlPath);
diff --git a/server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/QuotaManagement.java b/server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/QuotaManagement.java
index a2bed78..c0ff902 100644
--- a/server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/QuotaManagement.java
+++ b/server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/QuotaManagement.java
@@ -24,6 +24,7 @@ import java.io.IOException;
import javax.inject.Inject;
+import org.apache.james.core.Username;
import org.apache.james.core.quota.QuotaCount;
import org.apache.james.core.quota.QuotaSize;
import org.apache.james.mailbox.exception.MailboxException;
@@ -57,7 +58,7 @@ public class QuotaManagement implements QuotaManagementMBean {
.addContext(MDCBuilder.PROTOCOL, "CLI")
.addContext(MDCBuilder.ACTION, "getQuotaRoot")
.build()) {
- return quotaRootResolver.getQuotaRoot(new MailboxPath(namespace, user, name)).getValue();
+ return quotaRootResolver.getQuotaRoot(new MailboxPath(namespace, Username.of(user), name)).getValue();
} catch (IOException e) {
throw new RuntimeException(e);
}
diff --git a/server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java b/server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
index 6696d54..2b621b5 100644
--- a/server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
+++ b/server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
@@ -26,6 +26,7 @@ import java.time.Duration;
import javax.inject.Inject;
import javax.inject.Named;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.indexer.ReIndexer;
import org.apache.james.mailbox.model.MailboxPath;
@@ -51,7 +52,7 @@ public class ReIndexerManagement implements ReIndexerManagementMBean {
.addContext(MDCBuilder.PROTOCOL, "CLI")
.addContext(MDCBuilder.ACTION, "reIndex")
.build()) {
- TaskId taskId = taskManager.submit(reIndexer.reIndex(new MailboxPath(namespace, user, name)));
+ TaskId taskId = taskManager.submit(reIndexer.reIndex(new MailboxPath(namespace, Username.of(user), name)));
taskManager.await(taskId, Duration.ofMillis(Long.MAX_VALUE));
} catch (IOException | TaskManager.ReachedTimeoutException e) {
throw new RuntimeException(e);
diff --git a/server/container/mailbox-jmx/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java b/server/container/mailbox-jmx/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java
index 84eaaae..c3f1348 100644
--- a/server/container/mailbox-jmx/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java
+++ b/server/container/mailbox-jmx/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java
@@ -28,6 +28,7 @@ import java.nio.charset.StandardCharsets;
import java.util.Iterator;
import org.apache.commons.io.IOUtils;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.exception.MailboxExistsException;
import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
@@ -44,7 +45,7 @@ import org.junit.jupiter.api.Test;
public class MailboxManagementTest {
- public static final String USER = "user";
+ public static final Username USER = Username.of("user");
public static final int UID_VALIDITY = 10;
public static final int LIMIT = 1;
@@ -59,27 +60,27 @@ public class MailboxManagementTest {
mailboxManagerManagement = new MailboxManagerManagement();
mailboxManagerManagement.setMailboxManager(mailboxManager);
- session = mailboxManager.createSystemSession("TEST");
+ session = mailboxManager.createSystemSession(Username.of("TEST"));
}
@Test
void deleteMailboxesShouldDeleteMailboxes() throws Exception {
mapperFactory.createMailboxMapper(session).save(new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY));
- mailboxManagerManagement.deleteMailboxes(USER);
+ mailboxManagerManagement.deleteMailboxes(USER.asString());
assertThat(mapperFactory.createMailboxMapper(session).list()).isEmpty();
}
@Test
void deleteMailboxesShouldDeleteInbox() throws Exception {
mapperFactory.createMailboxMapper(session).save(new Mailbox(MailboxPath.forUser(USER, "INBOX"), UID_VALIDITY));
- mailboxManagerManagement.deleteMailboxes(USER);
+ mailboxManagerManagement.deleteMailboxes(USER.asString());
assertThat(mapperFactory.createMailboxMapper(session).list()).isEmpty();
}
@Test
void deleteMailboxesShouldDeleteMailboxesChildren() throws Exception {
mapperFactory.createMailboxMapper(session).save(new Mailbox(MailboxPath.forUser(USER, "INBOX.test"), UID_VALIDITY));
- mailboxManagerManagement.deleteMailboxes(USER);
+ mailboxManagerManagement.deleteMailboxes(USER.asString());
assertThat(mapperFactory.createMailboxMapper(session).list()).isEmpty();
}
@@ -87,22 +88,22 @@ public class MailboxManagementTest {
void deleteMailboxesShouldNotDeleteMailboxesBelongingToNotPrivateNamespace() throws Exception {
Mailbox mailbox = new Mailbox(new MailboxPath("#top", USER, "name"), UID_VALIDITY);
mapperFactory.createMailboxMapper(session).save(mailbox);
- mailboxManagerManagement.deleteMailboxes(USER);
+ mailboxManagerManagement.deleteMailboxes(USER.asString());
assertThat(mapperFactory.createMailboxMapper(session).list()).containsExactly(mailbox);
}
@Test
void deleteMailboxesShouldNotDeleteMailboxesBelongingToOtherUsers() throws Exception {
- Mailbox mailbox = new Mailbox(MailboxPath.forUser("userbis", "name"), UID_VALIDITY);
+ Mailbox mailbox = new Mailbox(MailboxPath.forUser(Username.of("userbis"), "name"), UID_VALIDITY);
mapperFactory.createMailboxMapper(session).save(mailbox);
- mailboxManagerManagement.deleteMailboxes(USER);
+ mailboxManagerManagement.deleteMailboxes(USER.asString());
assertThat(mapperFactory.createMailboxMapper(session).list()).containsExactly(mailbox);
}
@Test
void deleteMailboxesShouldDeleteMailboxesWithEmptyNames() throws Exception {
mapperFactory.createMailboxMapper(session).save(new Mailbox(MailboxPath.forUser(USER, ""), UID_VALIDITY));
- mailboxManagerManagement.deleteMailboxes(USER);
+ mailboxManagerManagement.deleteMailboxes(USER.asString());
assertThat(mapperFactory.createMailboxMapper(session).list()).isEmpty();
}
@@ -123,13 +124,13 @@ public class MailboxManagementTest {
mapperFactory.createMailboxMapper(session).save(new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY));
mapperFactory.createMailboxMapper(session).save(new Mailbox(MailboxPath.forUser(USER, "INBOX"), UID_VALIDITY));
mapperFactory.createMailboxMapper(session).save(new Mailbox(MailboxPath.forUser(USER, "INBOX.test"), UID_VALIDITY));
- mailboxManagerManagement.deleteMailboxes(USER);
+ mailboxManagerManagement.deleteMailboxes(USER.asString());
assertThat(mapperFactory.createMailboxMapper(session).list()).isEmpty();
}
@Test
void createMailboxShouldCreateAMailbox() throws Exception {
- mailboxManagerManagement.createMailbox(MailboxConstants.USER_NAMESPACE, USER, "name");
+ mailboxManagerManagement.createMailbox(MailboxConstants.USER_NAMESPACE, USER.asString(), "name");
assertThat(mapperFactory.createMailboxMapper(session).list()).hasSize(1);
assertThat(mapperFactory.createMailboxMapper(session).findMailboxByPath(MailboxPath.forUser(USER, "name"))).isNotNull();
}
@@ -140,7 +141,7 @@ public class MailboxManagementTest {
Mailbox mailbox = new Mailbox(path, UID_VALIDITY);
mapperFactory.createMailboxMapper(session).save(mailbox);
- assertThatThrownBy(() -> mailboxManagerManagement.createMailbox(MailboxConstants.USER_NAMESPACE, USER, "name"))
+ assertThatThrownBy(() -> mailboxManagerManagement.createMailbox(MailboxConstants.USER_NAMESPACE, USER.asString(), "name"))
.isInstanceOf(RuntimeException.class)
.hasCauseInstanceOf(MailboxExistsException.class);
}
@@ -194,7 +195,7 @@ public class MailboxManagementTest {
void listMailboxesShouldReturnUserMailboxes() throws Exception {
Mailbox mailbox1 = new Mailbox(new MailboxPath("#top", USER, "name1"), UID_VALIDITY);
Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name2"), UID_VALIDITY);
- Mailbox mailbox3 = new Mailbox(MailboxPath.forUser("other_user", "name3"), UID_VALIDITY);
+ Mailbox mailbox3 = new Mailbox(MailboxPath.forUser(Username.of("other_user"), "name3"), UID_VALIDITY);
Mailbox mailbox4 = new Mailbox(MailboxPath.forUser(USER, "name4"), UID_VALIDITY);
Mailbox mailbox5 = new Mailbox(MailboxPath.forUser(USER, "INBOX"), UID_VALIDITY);
Mailbox mailbox6 = new Mailbox(MailboxPath.forUser(USER, "INBOX.toto"), UID_VALIDITY);
@@ -204,7 +205,7 @@ public class MailboxManagementTest {
mapperFactory.createMailboxMapper(session).save(mailbox4);
mapperFactory.createMailboxMapper(session).save(mailbox5);
mapperFactory.createMailboxMapper(session).save(mailbox6);
- assertThat(mailboxManagerManagement.listMailboxes(USER)).containsOnly("name2", "name4", "INBOX", "INBOX.toto");
+ assertThat(mailboxManagerManagement.listMailboxes(USER.asString())).containsOnly("name2", "name4", "INBOX", "INBOX.toto");
}
@Test
@@ -222,7 +223,7 @@ public class MailboxManagementTest {
@Test
void deleteMailboxShouldDeleteGivenMailbox() throws Exception {
mapperFactory.createMailboxMapper(session).save(new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY));
- mailboxManagerManagement.deleteMailbox(MailboxConstants.USER_NAMESPACE, USER, "name");
+ mailboxManagerManagement.deleteMailbox(MailboxConstants.USER_NAMESPACE, USER.asString(), "name");
assertThat(mapperFactory.createMailboxMapper(session).list()).isEmpty();
}
@@ -230,15 +231,15 @@ public class MailboxManagementTest {
void deleteMailboxShouldNotDeleteGivenMailboxIfWrongNamespace() throws Exception {
Mailbox mailbox = new Mailbox(new MailboxPath("#top", USER, "name"), UID_VALIDITY);
mapperFactory.createMailboxMapper(session).save(mailbox);
- mailboxManagerManagement.deleteMailbox(MailboxConstants.USER_NAMESPACE, USER, "name");
+ mailboxManagerManagement.deleteMailbox(MailboxConstants.USER_NAMESPACE, USER.asString(), "name");
assertThat(mapperFactory.createMailboxMapper(session).list()).containsOnly(mailbox);
}
@Test
void deleteMailboxShouldNotDeleteGivenMailboxIfWrongUser() throws Exception {
- Mailbox mailbox = new Mailbox(MailboxPath.forUser("userbis", "name"), UID_VALIDITY);
+ Mailbox mailbox = new Mailbox(MailboxPath.forUser(Username.of("userbis"), "name"), UID_VALIDITY);
mapperFactory.createMailboxMapper(session).save(mailbox);
- mailboxManagerManagement.deleteMailbox(MailboxConstants.USER_NAMESPACE, USER, "name");
+ mailboxManagerManagement.deleteMailbox(MailboxConstants.USER_NAMESPACE, USER.asString(), "name");
assertThat(mapperFactory.createMailboxMapper(session).list()).containsOnly(mailbox);
}
@@ -246,7 +247,7 @@ public class MailboxManagementTest {
void deleteMailboxShouldNotDeleteGivenMailboxIfWrongName() throws Exception {
Mailbox mailbox = new Mailbox(MailboxPath.forUser(USER, "wrong_name"), UID_VALIDITY);
mapperFactory.createMailboxMapper(session).save(mailbox);
- mailboxManagerManagement.deleteMailbox(MailboxConstants.USER_NAMESPACE, USER, "name");
+ mailboxManagerManagement.deleteMailbox(MailboxConstants.USER_NAMESPACE, USER.asString(), "name");
assertThat(mapperFactory.createMailboxMapper(session).list()).containsOnly(mailbox);
}
@@ -256,7 +257,7 @@ public class MailboxManagementTest {
UID_VALIDITY);
mapperFactory.createMailboxMapper(session).save(mailbox);
String emlpath = ClassLoader.getSystemResource("eml/frnog.eml").getFile();
- mailboxManagerManagement.importEmlFileToMailbox(MailboxConstants.USER_NAMESPACE, USER, "name", emlpath);
+ mailboxManagerManagement.importEmlFileToMailbox(MailboxConstants.USER_NAMESPACE, USER.asString(), "name", emlpath);
assertThat(mapperFactory.getMessageMapper(session).countMessagesInMailbox(mailbox)).isEqualTo(1);
Iterator<MailboxMessage> iterator = mapperFactory.getMessageMapper(session).findInMailbox(mailbox,
@@ -273,7 +274,7 @@ public class MailboxManagementTest {
UID_VALIDITY);
mapperFactory.createMailboxMapper(session).save(mailbox);
String emlpath = ClassLoader.getSystemResource("eml/frnog.eml").getFile();
- mailboxManagerManagement.importEmlFileToMailbox(MailboxConstants.USER_NAMESPACE, USER, "name", "wrong_path" + emlpath);
+ mailboxManagerManagement.importEmlFileToMailbox(MailboxConstants.USER_NAMESPACE, USER.asString(), "name", "wrong_path" + emlpath);
assertThat(mapperFactory.getMessageMapper(session).countMessagesInMailbox(mailbox)).isEqualTo(0);
Iterator<MailboxMessage> iterator = mapperFactory.getMessageMapper(session).findInMailbox(mailbox,
diff --git a/server/container/mailbox-jmx/src/test/java/org/apache/james/adapter/mailbox/ReIndexerManagementTest.java b/server/container/mailbox-jmx/src/test/java/org/apache/james/adapter/mailbox/ReIndexerManagementTest.java
index 6d567e6..946d6a3 100644
--- a/server/container/mailbox-jmx/src/test/java/org/apache/james/adapter/mailbox/ReIndexerManagementTest.java
+++ b/server/container/mailbox-jmx/src/test/java/org/apache/james/adapter/mailbox/ReIndexerManagementTest.java
@@ -25,6 +25,7 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import org.apache.james.core.Username;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.indexer.ReIndexer;
import org.apache.james.mailbox.model.MailboxPath;
@@ -57,7 +58,7 @@ public class ReIndexerManagementTest {
assertThat(taskManager.list()).isEmpty();
testee.reIndex(namespace, user, name);
- verify(reIndexer).reIndex(new MailboxPath(namespace, user, name));
+ verify(reIndexer).reIndex(new MailboxPath(namespace, Username.of(user), name));
assertThat(taskManager.list()).hasSize(1);
}
diff --git a/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java b/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java
deleted file mode 100644
index c3bccbe..0000000
--- a/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-package org.apache.james.container.spring.tool;
-
-import java.io.IOException;
-import java.util.Iterator;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.mail.MessagingException;
-
-import org.apache.james.domainlist.api.DomainList;
-import org.apache.james.domainlist.api.DomainListException;
-import org.apache.james.mailbox.MailboxManager;
-import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MessageManager;
-import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.exception.MailboxExistsException;
-import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.mailrepository.api.MailKey;
-import org.apache.james.mailrepository.api.MailRepository;
-import org.apache.james.mailrepository.api.MailRepositoryStore;
-import org.apache.james.mailrepository.api.MailRepositoryStore.MailRepositoryStoreException;
-import org.apache.james.mailrepository.api.MailRepositoryUrl;
-import org.apache.james.server.core.MimeMessageInputStream;
-import org.apache.james.user.api.UsersRepository;
-import org.apache.james.user.api.UsersRepositoryException;
-import org.apache.mailet.Mail;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Tool to import James 2.3 users and mails into James 3.0.
- */
-public class James23Importer {
- private static final Logger LOGGER = LoggerFactory.getLogger(James23Importer.class);
-
- /**
- * James 3.0 users repository.
- */
- @Inject
- private UsersRepository james30UsersRepository;
-
- /**
- * James 3.0 users repository.
- */
- @Inject
- private MailRepositoryStore mailRepositoryStore;
-
- /**
- * James 3.0 domain list.
- */
- @Inject
- private DomainList domainList;
-
- /**
- * The mailbox manager needed to copy the mails to.
- */
- @Inject
- @Named("mailboxmanager")
- private MailboxManager mailboxManager;
-
- /**
- * James 2.3 user repository defined by configuration.
- */
- @Inject
- @Named("usersrepository23")
- private UsersRepository james23UsersRepository;
-
- /**
- * Import 2.3 users to 3.0 users (taking virtualDomains into account)<br>
- * Import 2.3 mails to 3.0 mails.
- *
- * @throws MailRepositoryStoreException
- * @throws MessagingException
- * @throws UsersRepositoryException
- * @throws DomainListException
- * @throws IOException
- * @throws MailboxException
- */
- public void importUsersAndMailsFromJames23(String james23MailRepositoryPath, String defaultPassword) throws MailRepositoryStoreException, MessagingException, UsersRepositoryException, DomainListException, MailboxException, IOException {
- importUsersFromJames23(defaultPassword);
- importMailsFromJames23(james23MailRepositoryPath);
- }
-
- /**
- * Import 2.3 users to 3.0 users (taking virtualDomains into account)
- *
- * @param defaultPassword
- * @throws MessagingException
- * @throws UsersRepositoryException
- * @throws DomainListException
- */
- public void importUsersFromJames23(String defaultPassword) throws MessagingException, UsersRepositoryException, DomainListException {
- Iterator<String> j23uIt = james23UsersRepository.list();
- while (j23uIt.hasNext()) {
- String userName23 = j23uIt.next();
- String userName30 = convert23UserTo30(userName23);
- james30UsersRepository.addUser(userName30, defaultPassword);
- LOGGER.info("New user is copied from 2.3 to 3.0 with username={}", userName30);
- }
- }
-
- /**
- * Import 2.3 mails to 3.0 mails.
- *
- * @param james23MailRepositoryPath
- * the 2.3 mail repository path to import from e.g.
- * file://var/mail/inboxes
- * @throws MessagingException
- * @throws MailRepositoryStoreException
- * @throws UsersRepositoryException
- * @throws IOException
- * @throws MailboxException
- * @throws DomainListException
- */
- public void importMailsFromJames23(String james23MailRepositoryPath) throws MessagingException, MailRepositoryStoreException, UsersRepositoryException, MailboxException, DomainListException {
-
- Iterator<String> james23userRepositoryIterator = james23UsersRepository.list();
-
- while (james23userRepositoryIterator.hasNext()) {
-
- String userName23 = james23userRepositoryIterator.next();
- MailRepository mailRepository = mailRepositoryStore.select(MailRepositoryUrl.from(james23MailRepositoryPath + "/" + userName23));
- Iterator<MailKey> mailRepositoryIterator = mailRepository.list();
-
- String userName30 = convert23UserTo30(userName23);
-
-
- MailboxSession mailboxSession = mailboxManager.createSystemSession(userName30);
- MailboxPath mailboxPath = MailboxPath.inbox(mailboxSession);
-
- mailboxManager.startProcessingRequest(mailboxSession);
- try {
- mailboxManager.createMailbox(mailboxPath, mailboxSession);
- } catch (MailboxExistsException e) {
- // Do nothing, the mailbox already exists.
- }
- mailboxManager.endProcessingRequest(mailboxSession);
-
- MessageManager messageManager = mailboxManager.getMailbox(mailboxPath, mailboxSession);
-
- while (mailRepositoryIterator.hasNext()) {
- Mail mail = mailRepository.retrieve(mailRepositoryIterator.next());
- mailboxManager.startProcessingRequest(mailboxSession);
- messageManager.appendMessage(MessageManager.AppendCommand.builder()
- .build(new MimeMessageInputStream(mail.getMessage())), mailboxSession);
- mailboxManager.endProcessingRequest(mailboxSession);
- }
-
- }
-
- }
-
- /**
- * Utility method to convert a James 2.3 username to a James 3.0 username.
- * To achieve this, we need to add the default James 3.0 domain because 2.3
- * users have no domains.
- *
- * @param userName23
- * @return
- * @throws DomainListException
- */
- private String convert23UserTo30(String userName23) throws DomainListException {
- return userName23 + "@" + domainList.getDefaultDomain();
- }
-
-}
diff --git a/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23ImporterManagement.java b/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23ImporterManagement.java
deleted file mode 100644
index 2f0f203..0000000
--- a/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23ImporterManagement.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-package org.apache.james.container.spring.tool;
-
-import javax.inject.Inject;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * {@link James23Importer} support via JMX.
- */
-public class James23ImporterManagement implements James23ImporterManagementMBean {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(James23ImporterManagement.class);
-
- @Inject
- private James23Importer james23Importer;
-
- @Override
- public void importUsersAndMailsFromJames23(String james23MailRepositoryPath, String defaultPassword) throws Exception {
- try {
- james23Importer.importUsersAndMailsFromJames23(james23MailRepositoryPath, defaultPassword);
- } catch (Exception e) {
- throw new Exception("Error while importing users and mails", e);
- }
- }
-
- @Override
- public void importUsersFromJames23(String defaultPassword) throws Exception {
- try {
- james23Importer.importUsersFromJames23(defaultPassword);
- } catch (Exception e) {
- throw new Exception("Error while importing users", e);
- }
- }
-
- @Override
- public void importMailsFromJames23(String james23MailRepositoryPath) throws Exception {
- try {
- james23Importer.importMailsFromJames23(james23MailRepositoryPath);
- } catch (Exception e) {
- LOGGER.error("Error while importing mail", e);
- throw new Exception(e.getMessage());
- }
- }
-
-}
diff --git a/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23ImporterManagementMBean.java b/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23ImporterManagementMBean.java
deleted file mode 100644
index 212569d..0000000
--- a/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23ImporterManagementMBean.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-package org.apache.james.container.spring.tool;
-
-import org.apache.james.mailbox.MailboxManager;
-
-/**
- * Allow to copy {@link MailboxManager} contents from one to the other via JMX
- */
-public interface James23ImporterManagementMBean {
-
- /**
- * First import users (each user is created with the given default password), the
- * import the mails for each users from the given mail repository path.
- *
- * @param james23MailRepositoryPath
- * @param defaultPassword
- */
- void importUsersAndMailsFromJames23(String james23MailRepositoryPath, String defaultPassword) throws Exception;
-
- /**
- * Import users (each user is created with the given default password).
- *
- * @param defaultPassword
- * @throws Exception
- */
- void importUsersFromJames23(String defaultPassword) throws Exception;
-
- /**
- * Import the mails for each users from the given mail repository path.
- *
- * @param james23MailRepositoryPath
- * @throws Exception
- */
- void importMailsFromJames23(String james23MailRepositoryPath) throws Exception;
-
-}
diff --git a/server/data/data-api/src/main/java/org/apache/james/user/api/UsersRepository.java b/server/data/data-api/src/main/java/org/apache/james/user/api/UsersRepository.java
index 8956cf8..263d9af 100644
--- a/server/data/data-api/src/main/java/org/apache/james/user/api/UsersRepository.java
+++ b/server/data/data-api/src/main/java/org/apache/james/user/api/UsersRepository.java
@@ -43,7 +43,7 @@ public interface UsersRepository {
* if error
*
*/
- void addUser(String username, String password) throws UsersRepositoryException;
+ void addUser(Username username, String password) throws UsersRepositoryException;
/**
* Get the user object with the specified user name. Return null if no such
@@ -55,7 +55,7 @@ public interface UsersRepository {
* @throws UsersRepositoryException
* if error
*/
- User getUserByName(String name) throws UsersRepositoryException;
+ User getUserByName(Username name) throws UsersRepositoryException;
/**
* Update the repository with the specified user object. A user object with
@@ -74,7 +74,7 @@ public interface UsersRepository {
* @throws UsersRepositoryException
* if error
*/
- void removeUser(String name) throws UsersRepositoryException;
+ void removeUser(Username name) throws UsersRepositoryException;
/**
* Returns whether or not this user is in the repository
@@ -85,7 +85,7 @@ public interface UsersRepository {
* @throws UsersRepositoryException
* if error
*/
- boolean contains(String name) throws UsersRepositoryException;
+ boolean contains(Username name) throws UsersRepositoryException;
/**
* Test if user with name 'name' has password 'password'.
@@ -101,7 +101,7 @@ public interface UsersRepository {
* if error
*
*/
- boolean test(String name, String password) throws UsersRepositoryException;
+ boolean test(Username name, String password) throws UsersRepositoryException;
/**
* Returns a count of the users in the repository.
@@ -120,7 +120,7 @@ public interface UsersRepository {
* @throws UsersRepositoryException
* if error
*/
- Iterator<String> list() throws UsersRepositoryException;
+ Iterator<Username> list() throws UsersRepositoryException;
/**
* Return true if virtualHosting support is enabled, otherwise false
@@ -136,7 +136,7 @@ public interface UsersRepository {
* @return Username used by James for this mailAddress
* @throws UsersRepositoryException
*/
- String getUser(MailAddress mailAddress) throws UsersRepositoryException;
+ Username getUser(MailAddress mailAddress) throws UsersRepositoryException;
/**
* Returns one of the possible mail addresses to be used to send a mail to that user
@@ -148,11 +148,11 @@ public interface UsersRepository {
/**
* Return true if the user is an admin for this repository
*/
- boolean isAdministrator(String username) throws UsersRepositoryException;
+ boolean isAdministrator(Username username) throws UsersRepositoryException;
/**
- * @return true if one can use {@link UsersRepository#updateUser(User)} {@link UsersRepository#addUser(String, String)}
- * {@link UsersRepository#removeUser(String)} and false overwhise
+ * @return true if one can use {@link UsersRepository#updateUser(User)} {@link UsersRepository#addUser(Username, String)}
+ * {@link UsersRepository#removeUser(Username)} and false overwhise
*/
boolean isReadOnly();
diff --git a/server/data/data-api/src/main/java/org/apache/james/user/api/UsersRepositoryManagementMBean.java b/server/data/data-api/src/main/java/org/apache/james/user/api/UsersRepositoryManagementMBean.java
index ee74984..8e262b1 100644
--- a/server/data/data-api/src/main/java/org/apache/james/user/api/UsersRepositoryManagementMBean.java
+++ b/server/data/data-api/src/main/java/org/apache/james/user/api/UsersRepositoryManagementMBean.java
@@ -19,6 +19,8 @@
package org.apache.james.user.api;
+import org.apache.james.core.Username;
+
/**
* Expose user account management functionality through JMX.
*/
@@ -99,7 +101,7 @@ public interface UsersRepositoryManagementMBean {
* if error
*/
@Deprecated
- void unsetAlias(String userName) throws Exception;
+ void unsetAlias(Username userName) throws Exception;
/**
* Retrieves the user's alias, if set
@@ -110,7 +112,7 @@ public interface UsersRepositoryManagementMBean {
* if error
*/
@Deprecated
- String getAlias(String userName) throws Exception;
+ String getAlias(Username userName) throws Exception;
/**
* Removes a user's forward email address which terminates remote mail
@@ -123,7 +125,7 @@ public interface UsersRepositoryManagementMBean {
* if error
*/
@Deprecated
- void unsetForwardAddress(String userName) throws Exception;
+ void unsetForwardAddress(Username userName) throws Exception;
/**
* Retrieves the user's forward, if set
@@ -136,7 +138,7 @@ public interface UsersRepositoryManagementMBean {
* if error
*/
@Deprecated
- String getForwardAddress(String userName) throws Exception;
+ String getForwardAddress(Username userName) throws Exception;
/**
* Return true if the UserRepository has VirtualHosting enabled
diff --git a/server/data/data-api/src/main/java/org/apache/james/user/api/model/User.java b/server/data/data-api/src/main/java/org/apache/james/user/api/model/User.java
index 7aa04a8..c614ba0 100644
--- a/server/data/data-api/src/main/java/org/apache/james/user/api/model/User.java
+++ b/server/data/data-api/src/main/java/org/apache/james/user/api/model/User.java
@@ -31,7 +31,7 @@ public interface User {
*
* @return the user name for this user
*/
- String getUserName();
+ Username getUserName();
/**
* Return true if pass matches password of this user.
@@ -52,9 +52,9 @@ public interface User {
*/
boolean setPassword(String newPass);
- default boolean hasUsername(String username) {
- Username thisUsername = Username.of(getUserName());
- Username thatUsername = Username.of(username);
+ default boolean hasUsername(Username username) {
+ Username thisUsername = getUserName();
+ Username thatUsername = username;
return thisUsername.equals(thatUsername);
}
diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java b/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java
index 29b4f9d..0f07fcb 100644
--- a/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java
+++ b/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepository.java
@@ -39,6 +39,7 @@ import java.util.Optional;
import javax.inject.Inject;
import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
+import org.apache.james.core.Username;
import org.apache.james.user.api.AlreadyExistInUsersRepositoryException;
import org.apache.james.user.api.UsersRepositoryException;
import org.apache.james.user.api.model.User;
@@ -113,11 +114,11 @@ public class CassandraUsersRepository extends AbstractUsersRepository {
}
@Override
- public User getUserByName(String name) {
+ public User getUserByName(Username name) {
return executor.executeSingleRow(
getUserStatement.bind()
- .setString(NAME, name.toLowerCase(Locale.US)))
- .map(row -> new DefaultUser(row.getString(REALNAME), row.getString(PASSWORD), row.getString(ALGORITHM)))
+ .setString(NAME, name.asString().toLowerCase(Locale.US)))
+ .map(row -> new DefaultUser(Username.of(row.getString(REALNAME)), row.getString(PASSWORD), row.getString(ALGORITHM)))
.filter(user -> user.hasUsername(name))
.blockOptional()
.orElse(null);
@@ -129,10 +130,10 @@ public class CassandraUsersRepository extends AbstractUsersRepository {
DefaultUser defaultUser = (DefaultUser) user;
boolean executed = executor.executeReturnApplied(
updateUserStatement.bind()
- .setString(REALNAME, defaultUser.getUserName())
+ .setString(REALNAME, defaultUser.getUserName().asString())
.setString(PASSWORD, defaultUser.getHashedPassword())
.setString(ALGORITHM, defaultUser.getHashAlgorithm())
- .setString(NAME, defaultUser.getUserName().toLowerCase(Locale.US)))
+ .setString(NAME, defaultUser.getUserName().asString().toLowerCase(Locale.US)))
.block();
if (!executed) {
@@ -141,24 +142,24 @@ public class CassandraUsersRepository extends AbstractUsersRepository {
}
@Override
- public void removeUser(String name) throws UsersRepositoryException {
+ public void removeUser(Username name) throws UsersRepositoryException {
boolean executed = executor.executeReturnApplied(
removeUserStatement.bind()
- .setString(NAME, name))
+ .setString(NAME, name.asString()))
.block();
if (!executed) {
- throw new UsersRepositoryException("unable to remove unknown user " + name);
+ throw new UsersRepositoryException("unable to remove unknown user " + name.asString());
}
}
@Override
- public boolean contains(String name) {
+ public boolean contains(Username name) {
return getUserByName(name) != null;
}
@Override
- public boolean test(String name, String password) throws UsersRepositoryException {
+ public boolean test(Username name, String password) throws UsersRepositoryException {
return Optional.ofNullable(getUserByName(name))
.map(x -> x.verifyPassword(password))
.orElseGet(() -> {
@@ -175,27 +176,28 @@ public class CassandraUsersRepository extends AbstractUsersRepository {
}
@Override
- public Iterator<String> list() throws UsersRepositoryException {
+ public Iterator<Username> list() throws UsersRepositoryException {
return executor.executeRows(listStatement.bind())
.map(row -> row.getString(REALNAME))
+ .map(Username::of)
.toIterable()
.iterator();
}
@Override
- public void addUser(String username, String password) throws UsersRepositoryException {
+ public void addUser(Username username, String password) throws UsersRepositoryException {
isValidUsername(username);
doAddUser(username, password);
}
@Override
- protected void doAddUser(String username, String password) throws UsersRepositoryException {
+ protected void doAddUser(Username username, String password) throws UsersRepositoryException {
DefaultUser user = new DefaultUser(username, DEFAULT_ALGO_VALUE);
user.setPassword(password);
boolean executed = executor.executeReturnApplied(
insertStatement.bind()
- .setString(NAME, user.getUserName().toLowerCase(Locale.US))
- .setString(REALNAME, user.getUserName())
+ .setString(NAME, user.getUserName().asString().toLowerCase(Locale.US))
+ .setString(REALNAME, user.getUserName().asString())
.setString(PASSWORD, user.getHashedPassword())
.setString(ALGORITHM, user.getHashAlgorithm()))
.block();
diff --git a/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java b/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
index 2d549e8..9089cd3 100644
--- a/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
+++ b/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
@@ -366,7 +366,7 @@ public class SieveFileRepository implements SieveRepository {
try {
FileUtils.forceMkdir(getUserDirectoryFile(username));
} catch (IOException e) {
- throw new StorageException("Error while creating directory for " + username, e);
+ throw new StorageException("Error while creating directory for " + username.asString(), e);
}
}
}
diff --git a/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/access/CassandraAccessTokenDAO.java b/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/access/CassandraAccessTokenDAO.java
index 23e761a..79851fe 100644
--- a/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/access/CassandraAccessTokenDAO.java
+++ b/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/access/CassandraAccessTokenDAO.java
@@ -33,12 +33,14 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
+import org.apache.james.core.Username;
import org.apache.james.jmap.api.access.AccessToken;
import org.apache.james.jmap.cassandra.access.table.CassandraAccessTokenTable;
import com.datastax.driver.core.PreparedStatement;
import com.datastax.driver.core.Session;
import com.google.common.primitives.Ints;
+
import reactor.core.publisher.Mono;
public class CassandraAccessTokenDAO {
@@ -70,10 +72,10 @@ public class CassandraAccessTokenDAO {
.where(eq(CassandraAccessTokenTable.TOKEN, bindMarker(CassandraAccessTokenTable.TOKEN))));
}
- public Mono<Void> addToken(String username, AccessToken accessToken) {
+ public Mono<Void> addToken(Username username, AccessToken accessToken) {
return cassandraAsyncExecutor.executeVoid(insertStatement.bind()
.setUUID(CassandraAccessTokenTable.TOKEN, accessToken.asUUID())
- .setString(CassandraAccessTokenTable.USERNAME, username)
+ .setString(CassandraAccessTokenTable.USERNAME, username.asString())
.setInt(TTL, durationInSeconds));
}
@@ -82,9 +84,10 @@ public class CassandraAccessTokenDAO {
.setUUID(CassandraAccessTokenTable.TOKEN, accessToken.asUUID()));
}
- public Mono<String> getUsernameFromToken(AccessToken accessToken) {
+ public Mono<Username> getUsernameFromToken(AccessToken accessToken) {
return cassandraAsyncExecutor.executeSingleRow(selectStatement.bind()
.setUUID(CassandraAccessTokenTable.TOKEN, accessToken.asUUID()))
- .map(row -> row.getString(CassandraAccessTokenTable.USERNAME));
+ .map(row -> row.getString(CassandraAccessTokenTable.USERNAME))
+ .map(Username::of);
}
... 9395 lines suppressed ...
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org