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 6fc0a85c214fc767b85725b0f339386f1bbb2dec Author: Benoit Tellier <btell...@linagora.com> AuthorDate: Tue Jun 16 11:46:06 2020 +0700 JAMES-3214 Move MailRepositoryStore related classes to mailRepository-api Without this interface it is impossible to generate MailRepository that the calling code will rely on. mailRepository-api furthermore have many dependencies that are orthogonal to data-api and should not be included in it. --- mailbox/plugin/quota-search-scanning/pom.xml | 4 + .../apache/james/managesieve/jsieve/Parser.java | 22 +-- server/container/spring/pom.xml | 4 + .../resources/META-INF/spring/loaders-context.xml | 6 +- server/data/data-api/pom.xml | 15 +- server/data/data-file/pom.xml | 4 + .../mailrepository/file/FileMailRepository.java | 2 +- server/data/data-jdbc/pom.xml | 4 + .../mailrepository/jdbc/JDBCMailRepository.java | 2 +- server/data/data-jpa/pom.xml | 10 + .../jpa/JPAMailRepositoryUrlStoreTest.java | 2 +- server/data/data-memory/pom.xml | 4 - server/mailet/mailetcontainer-camel/pom.xml | 4 + server/mailet/mailets/pom.xml | 4 + server/mailrepository/mailrepository-api/pom.xml | 1 + .../james/mailrepository}/api/Initializable.java | 2 +- .../mailrepository/api/MailRepositoryStore.java | 214 ++++++++++----------- .../mailrepository/api/MailRepositoryUrlStore.java | 0 .../MailRepositoryUrlStoreContract.java | 4 +- .../CassandraMailRepositoryUrlModule.java | 0 .../cassandra/CassandraMailRepositoryUrlStore.java | 0 .../james/mailrepository/cassandra/UrlsDao.java | 0 .../james/mailrepository/cassandra/UrlsTable.java | 0 .../CassandraMailRepositoryUrlStoreExtension.java | 0 .../CassandraMailRepositoryUrlStoreTest.java | 2 +- .../mailrepository/mailrepository-memory/pom.xml | 23 +++ .../memory/MailRepositoryLoader.java | 0 .../memory/MailRepositoryStoreConfiguration.java | 0 .../memory/MemoryMailRepositoryStore.java | 2 +- .../memory/MemoryMailRepositoryUrlStore.java | 0 .../memory/SimpleMailRepositoryLoader.java | 0 .../MailRepositoryStoreConfigurationTest.java | 0 .../memory/MemoryMailRepositoryStoreTest.java | 0 .../MemoryMailRepositoryUrlStoreExtension.java | 0 .../memory/MemoryMailRepositoryUrlStoreTest.java | 2 +- .../src/test/resources/mailrepositorystore.xml | 0 36 files changed, 187 insertions(+), 150 deletions(-) diff --git a/mailbox/plugin/quota-search-scanning/pom.xml b/mailbox/plugin/quota-search-scanning/pom.xml index 470337d..289580e 100644 --- a/mailbox/plugin/quota-search-scanning/pom.xml +++ b/mailbox/plugin/quota-search-scanning/pom.xml @@ -76,6 +76,10 @@ </dependency> <dependency> <groupId>${james.groupId}</groupId> + <artifactId>james-server-util</artifactId> + </dependency> + <dependency> + <groupId>${james.groupId}</groupId> <artifactId>metrics-tests</artifactId> <scope>test</scope> </dependency> diff --git a/protocols/managesieve/src/main/java/org/apache/james/managesieve/jsieve/Parser.java b/protocols/managesieve/src/main/java/org/apache/james/managesieve/jsieve/Parser.java index f6972d1..a935dc5 100644 --- a/protocols/managesieve/src/main/java/org/apache/james/managesieve/jsieve/Parser.java +++ b/protocols/managesieve/src/main/java/org/apache/james/managesieve/jsieve/Parser.java @@ -24,8 +24,6 @@ import java.io.ByteArrayInputStream; import java.util.ArrayList; import java.util.List; -import javax.annotation.Resource; - import org.apache.james.managesieve.api.SieveParser; import org.apache.james.managesieve.api.SyntaxException; import org.apache.jsieve.ConfigurationManager; @@ -36,24 +34,18 @@ public class Parser implements SieveParser { private static final List<String> EMPTY_WARNINGS = new ArrayList<>(0); - private SieveFactory sieveFactory; + private final SieveFactory sieveFactory; + + public Parser(SieveFactory sieveFactory) { + this.sieveFactory = sieveFactory; + } public Parser() throws Exception { - setConfigurationManager(new ConfigurationManager()); + this(new ConfigurationManager()); } public Parser(ConfigurationManager manager) { - setConfigurationManager(manager); - } - - /** - * setConfigurationManager. - * - * @param manager The <code>ConfigurationManager</code> to set - */ - @Resource(name = "jsieveconfigurationmanager") - public void setConfigurationManager(ConfigurationManager manager) { - sieveFactory = manager.build(); + this(manager.build()); } @Override diff --git a/server/container/spring/pom.xml b/server/container/spring/pom.xml index dcb87f5..ce13b70 100644 --- a/server/container/spring/pom.xml +++ b/server/container/spring/pom.xml @@ -87,6 +87,10 @@ </dependency> <dependency> <groupId>${james.groupId}</groupId> + <artifactId>james-server-mailrepository-api</artifactId> + </dependency> + <dependency> + <groupId>${james.groupId}</groupId> <artifactId>james-server-protocols-library</artifactId> <exclusions> <exclusion> diff --git a/server/container/spring/src/main/resources/META-INF/spring/loaders-context.xml b/server/container/spring/src/main/resources/META-INF/spring/loaders-context.xml index ccfc959..5fa8873 100644 --- a/server/container/spring/src/main/resources/META-INF/spring/loaders-context.xml +++ b/server/container/spring/src/main/resources/META-INF/spring/loaders-context.xml @@ -121,10 +121,6 @@ <!--<bean id="filesystem" class="org.apache.james.container.spring.filesystem.FileSystemImpl" autowire="byName"/>--> <bean id="filesystem" class="org.apache.james.container.spring.filesystem.ResourceLoaderFileSystem"/> - <bean id="sieveparser" class="org.apache.james.managesieve.jsieve.Parser"> - <property name="configurationManager" ref="configurationmanager"/> - </bean> - - <bean id="configurationmanager" class="org.apache.jsieve.ConfigurationManager"/> + <bean id="sieveparser" class="org.apache.james.managesieve.jsieve.Parser"/> </beans> diff --git a/server/data/data-api/pom.xml b/server/data/data-api/pom.xml index 0968964..ffe0382 100644 --- a/server/data/data-api/pom.xml +++ b/server/data/data-api/pom.xml @@ -39,11 +39,12 @@ </dependency> <dependency> <groupId>${james.groupId}</groupId> - <artifactId>james-server-mailrepository-api</artifactId> + <artifactId>testing-base</artifactId> + <scope>test</scope> </dependency> <dependency> - <groupId>${james.groupId}</groupId> - <artifactId>testing-base</artifactId> + <groupId>io.projectreactor</groupId> + <artifactId>reactor-core</artifactId> <scope>test</scope> </dependency> <dependency> @@ -51,14 +52,6 @@ <artifactId>commons-configuration2</artifactId> </dependency> <dependency> - <groupId>com.google.guava</groupId> - <artifactId>guava</artifactId> - </dependency> - <dependency> - <groupId>com.sun.mail</groupId> - <artifactId>javax.mail</artifactId> - </dependency> - <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <scope>test</scope> diff --git a/server/data/data-file/pom.xml b/server/data/data-file/pom.xml index 65b4b11..5c1cf2e 100644 --- a/server/data/data-file/pom.xml +++ b/server/data/data-file/pom.xml @@ -81,6 +81,10 @@ <dependency> <groupId>${james.groupId}</groupId> <artifactId>james-server-mailrepository-api</artifactId> + </dependency> + <dependency> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-mailrepository-api</artifactId> <type>test-jar</type> <scope>test</scope> </dependency> diff --git a/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/FileMailRepository.java b/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/FileMailRepository.java index 7ebcd31..c5cba49 100644 --- a/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/FileMailRepository.java +++ b/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/FileMailRepository.java @@ -40,9 +40,9 @@ import org.apache.commons.configuration2.HierarchicalConfiguration; import org.apache.commons.configuration2.tree.ImmutableNode; import org.apache.james.filesystem.api.FileSystem; import org.apache.james.lifecycle.api.Configurable; +import org.apache.james.mailrepository.api.Initializable; import org.apache.james.mailrepository.api.MailKey; import org.apache.james.mailrepository.api.MailRepository; -import org.apache.james.repository.api.Initializable; import org.apache.james.repository.file.FilePersistentObjectRepository; import org.apache.james.repository.file.FilePersistentStreamRepository; import org.apache.james.server.core.MimeMessageCopyOnWriteProxy; diff --git a/server/data/data-jdbc/pom.xml b/server/data/data-jdbc/pom.xml index 03b7786..270e53b 100644 --- a/server/data/data-jdbc/pom.xml +++ b/server/data/data-jdbc/pom.xml @@ -72,6 +72,10 @@ <dependency> <groupId>${james.groupId}</groupId> <artifactId>james-server-mailrepository-api</artifactId> + </dependency> + <dependency> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-mailrepository-api</artifactId> <type>test-jar</type> <scope>test</scope> </dependency> diff --git a/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java b/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java index 344c4c3..4b25b4f 100644 --- a/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java +++ b/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java @@ -56,9 +56,9 @@ import org.apache.commons.lang3.SerializationUtils; import org.apache.james.core.MailAddress; import org.apache.james.filesystem.api.FileSystem; import org.apache.james.lifecycle.api.Configurable; +import org.apache.james.mailrepository.api.Initializable; import org.apache.james.mailrepository.api.MailKey; import org.apache.james.mailrepository.api.MailRepository; -import org.apache.james.repository.api.Initializable; import org.apache.james.repository.file.FilePersistentStreamRepository; import org.apache.james.server.core.MailImpl; import org.apache.james.server.core.MimeMessageCopyOnWriteProxy; diff --git a/server/data/data-jpa/pom.xml b/server/data/data-jpa/pom.xml index f2cba25..bcce435 100644 --- a/server/data/data-jpa/pom.xml +++ b/server/data/data-jpa/pom.xml @@ -78,6 +78,16 @@ </dependency> <dependency> <groupId>${james.groupId}</groupId> + <artifactId>james-server-mailrepository-api</artifactId> + </dependency> + <dependency> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-mailrepository-api</artifactId> + <type>test-jar</type> + <scope>test</scope> + </dependency> + <dependency> + <groupId>${james.groupId}</groupId> <artifactId>testing-base</artifactId> <scope>test</scope> </dependency> diff --git a/server/data/data-jpa/src/test/java/org/apache/james/mailrepository/jpa/JPAMailRepositoryUrlStoreTest.java b/server/data/data-jpa/src/test/java/org/apache/james/mailrepository/jpa/JPAMailRepositoryUrlStoreTest.java index 5a58174..ed8b693 100644 --- a/server/data/data-jpa/src/test/java/org/apache/james/mailrepository/jpa/JPAMailRepositoryUrlStoreTest.java +++ b/server/data/data-jpa/src/test/java/org/apache/james/mailrepository/jpa/JPAMailRepositoryUrlStoreTest.java @@ -19,7 +19,7 @@ package org.apache.james.mailrepository.jpa; -import org.apache.james.mailrepository.api.MailRepositoryUrlStoreContract; +import org.apache.james.mailrepository.MailRepositoryUrlStoreContract; import org.junit.jupiter.api.extension.ExtendWith; @ExtendWith(JPAMailRepositoryUrlStoreExtension.class) diff --git a/server/data/data-memory/pom.xml b/server/data/data-memory/pom.xml index 9515716..8546b26 100644 --- a/server/data/data-memory/pom.xml +++ b/server/data/data-memory/pom.xml @@ -75,10 +75,6 @@ </dependency> <dependency> <groupId>${james.groupId}</groupId> - <artifactId>james-server-mailrepository-memory</artifactId> - </dependency> - <dependency> - <groupId>${james.groupId}</groupId> <artifactId>testing-base</artifactId> <scope>test</scope> </dependency> diff --git a/server/mailet/mailetcontainer-camel/pom.xml b/server/mailet/mailetcontainer-camel/pom.xml index e06eb72..0129e39 100644 --- a/server/mailet/mailetcontainer-camel/pom.xml +++ b/server/mailet/mailetcontainer-camel/pom.xml @@ -79,6 +79,10 @@ </dependency> <dependency> <groupId>${james.groupId}</groupId> + <artifactId>james-server-mailrepository-api</artifactId> + </dependency> + <dependency> + <groupId>${james.groupId}</groupId> <artifactId>james-server-queue-api</artifactId> </dependency> <dependency> diff --git a/server/mailet/mailets/pom.xml b/server/mailet/mailets/pom.xml index d0b3791..c54386f 100644 --- a/server/mailet/mailets/pom.xml +++ b/server/mailet/mailets/pom.xml @@ -148,6 +148,10 @@ </dependency> <dependency> <groupId>${james.groupId}</groupId> + <artifactId>james-server-mailrepository-api</artifactId> + </dependency> + <dependency> + <groupId>${james.groupId}</groupId> <artifactId>james-server-mailrepository-memory</artifactId> <scope>test</scope> </dependency> diff --git a/server/mailrepository/mailrepository-api/pom.xml b/server/mailrepository/mailrepository-api/pom.xml index 2de1aa4..b7faf1a 100644 --- a/server/mailrepository/mailrepository-api/pom.xml +++ b/server/mailrepository/mailrepository-api/pom.xml @@ -31,6 +31,7 @@ <packaging>jar</packaging> <name>Apache James :: Server :: MailRepository :: API</name> + <description>MailRepository allows storing Emails with their delivery context</description> <dependencies> <dependency> diff --git a/server/data/data-library/src/main/java/org/apache/james/repository/api/Initializable.java b/server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/Initializable.java similarity index 96% rename from server/data/data-library/src/main/java/org/apache/james/repository/api/Initializable.java rename to server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/Initializable.java index aea96b2..26c61df 100644 --- a/server/data/data-library/src/main/java/org/apache/james/repository/api/Initializable.java +++ b/server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/Initializable.java @@ -17,7 +17,7 @@ * under the License. * ****************************************************************/ -package org.apache.james.repository.api; +package org.apache.james.mailrepository.api; public interface Initializable { diff --git a/server/data/data-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryStore.java b/server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryStore.java similarity index 97% rename from server/data/data-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryStore.java rename to server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryStore.java index fa79c3c..272a479 100644 --- a/server/data/data-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryStore.java +++ b/server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryStore.java @@ -1,107 +1,107 @@ -/**************************************************************** - * 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.mailrepository.api; - -import java.util.Optional; -import java.util.stream.Stream; - -public interface MailRepositoryStore { - - /** - * Select the {@link MailRepository} for the given url. - * - * If the repository is not referenced by {@link MailRepositoryStore::getUrls}, it will be created, and its URL referenced - * by {@link MailRepositoryStore::getUrls}. - */ - MailRepository select(MailRepositoryUrl url) throws MailRepositoryStoreException; - - Optional<Protocol> defaultProtocol(); - - /** - * Create the {@link MailRepository} for the given url and return it. If the repository already exists, - * then no new repository is created, the old one will be returned. - * - * The URL of the created repository will be referenced by {@link MailRepositoryStore::getUrls} - */ - default MailRepository create(MailRepositoryUrl url) throws MailRepositoryStoreException { - return select(url); - } - - /** - * Returns the {@link MailRepository} for the given url. - * - * This mail repository will not be created if the URL is not referenced by {@link MailRepositoryStore::getUrls}. - * - * If the repository is referenced by {@link MailRepositoryStore::getUrls}, and the repository do not exist locally, then - * this repository will be created locally. - */ - Optional<MailRepository> get(MailRepositoryUrl url) throws MailRepositoryStoreException; - - /** - * Returns all the {@link MailRepository} referenced by {@link MailRepositoryStore::getUrls} got a given path. - * - * The corresponding mail repositories will not be created if they do not exist. - * - * If the path matches URLs referenced by {@link MailRepositoryStore::getUrls}, and the repositories do not exist locally, then - * these repositories will be created locally. - */ - Stream<MailRepository> getByPath(MailRepositoryPath path) throws MailRepositoryStoreException; - - /** - * Return a {@link Stream} which contains all urls of the selected {@link MailRepository}'s. - * - * Note that this may include MailRepositories that do not exist locally. - * - * This can be the case if: - * - The MailRepository had been created by another James server in a clustered environment - * - The MailRepository had been dynamically created, and James was restarted - */ - Stream<MailRepositoryUrl> getUrls(); - - /** - * Return a {@link Stream} which contains all paths of the selected {@link MailRepository}'s - */ - default Stream<MailRepositoryPath> getPaths() { - return getUrls() - .map(MailRepositoryUrl::getPath) - .sorted() - .distinct(); - } - - class MailRepositoryStoreException extends Exception { - public MailRepositoryStoreException(String msg, Throwable t) { - super(msg, t); - } - - public MailRepositoryStoreException(String msg) { - super(msg); - } - } - - class UnsupportedRepositoryStoreException extends MailRepositoryStoreException { - public UnsupportedRepositoryStoreException(String msg, Throwable t) { - super(msg, t); - } - - public UnsupportedRepositoryStoreException(String msg) { - super(msg); - } - } -} +/**************************************************************** + * 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.mailrepository.api; + +import java.util.Optional; +import java.util.stream.Stream; + +public interface MailRepositoryStore { + + /** + * Select the {@link MailRepository} for the given url. + * + * If the repository is not referenced by {@link MailRepositoryStore::getUrls}, it will be created, and its URL referenced + * by {@link MailRepositoryStore::getUrls}. + */ + MailRepository select(MailRepositoryUrl url) throws MailRepositoryStoreException; + + Optional<Protocol> defaultProtocol(); + + /** + * Create the {@link MailRepository} for the given url and return it. If the repository already exists, + * then no new repository is created, the old one will be returned. + * + * The URL of the created repository will be referenced by {@link MailRepositoryStore::getUrls} + */ + default MailRepository create(MailRepositoryUrl url) throws MailRepositoryStoreException { + return select(url); + } + + /** + * Returns the {@link MailRepository} for the given url. + * + * This mail repository will not be created if the URL is not referenced by {@link MailRepositoryStore::getUrls}. + * + * If the repository is referenced by {@link MailRepositoryStore::getUrls}, and the repository do not exist locally, then + * this repository will be created locally. + */ + Optional<MailRepository> get(MailRepositoryUrl url) throws MailRepositoryStoreException; + + /** + * Returns all the {@link MailRepository} referenced by {@link MailRepositoryStore::getUrls} got a given path. + * + * The corresponding mail repositories will not be created if they do not exist. + * + * If the path matches URLs referenced by {@link MailRepositoryStore::getUrls}, and the repositories do not exist locally, then + * these repositories will be created locally. + */ + Stream<MailRepository> getByPath(MailRepositoryPath path) throws MailRepositoryStoreException; + + /** + * Return a {@link Stream} which contains all urls of the selected {@link MailRepository}'s. + * + * Note that this may include MailRepositories that do not exist locally. + * + * This can be the case if: + * - The MailRepository had been created by another James server in a clustered environment + * - The MailRepository had been dynamically created, and James was restarted + */ + Stream<MailRepositoryUrl> getUrls(); + + /** + * Return a {@link Stream} which contains all paths of the selected {@link MailRepository}'s + */ + default Stream<MailRepositoryPath> getPaths() { + return getUrls() + .map(MailRepositoryUrl::getPath) + .sorted() + .distinct(); + } + + class MailRepositoryStoreException extends Exception { + public MailRepositoryStoreException(String msg, Throwable t) { + super(msg, t); + } + + public MailRepositoryStoreException(String msg) { + super(msg); + } + } + + class UnsupportedRepositoryStoreException extends MailRepositoryStoreException { + public UnsupportedRepositoryStoreException(String msg, Throwable t) { + super(msg, t); + } + + public UnsupportedRepositoryStoreException(String msg) { + super(msg); + } + } +} diff --git a/server/data/data-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryUrlStore.java b/server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryUrlStore.java similarity index 100% rename from server/data/data-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryUrlStore.java rename to server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryUrlStore.java diff --git a/server/data/data-api/src/test/java/org/apache/james/mailrepository/api/MailRepositoryUrlStoreContract.java b/server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/MailRepositoryUrlStoreContract.java similarity index 95% rename from server/data/data-api/src/test/java/org/apache/james/mailrepository/api/MailRepositoryUrlStoreContract.java rename to server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/MailRepositoryUrlStoreContract.java index 89fce77..5273ca3 100644 --- a/server/data/data-api/src/test/java/org/apache/james/mailrepository/api/MailRepositoryUrlStoreContract.java +++ b/server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/MailRepositoryUrlStoreContract.java @@ -17,12 +17,14 @@ * under the License. * ****************************************************************/ -package org.apache.james.mailrepository.api; +package org.apache.james.mailrepository; import static org.assertj.core.api.Assertions.assertThat; import java.time.Duration; +import org.apache.james.mailrepository.api.MailRepositoryUrl; +import org.apache.james.mailrepository.api.MailRepositoryUrlStore; import org.apache.james.util.concurrency.ConcurrentTestRunner; import org.junit.jupiter.api.Test; diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlModule.java b/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlModule.java similarity index 100% rename from server/data/data-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlModule.java rename to server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlModule.java diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStore.java b/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStore.java similarity index 100% rename from server/data/data-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStore.java rename to server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStore.java diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/UrlsDao.java b/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/UrlsDao.java similarity index 100% rename from server/data/data-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/UrlsDao.java rename to server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/UrlsDao.java diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/UrlsTable.java b/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/UrlsTable.java similarity index 100% rename from server/data/data-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/UrlsTable.java rename to server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/UrlsTable.java diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStoreExtension.java b/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStoreExtension.java similarity index 100% rename from server/data/data-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStoreExtension.java rename to server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStoreExtension.java diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStoreTest.java b/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStoreTest.java similarity index 95% rename from server/data/data-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStoreTest.java rename to server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStoreTest.java index 92a8a37..f41810c 100644 --- a/server/data/data-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStoreTest.java +++ b/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStoreTest.java @@ -19,7 +19,7 @@ package org.apache.james.mailrepository.cassandra; -import org.apache.james.mailrepository.api.MailRepositoryUrlStoreContract; +import org.apache.james.mailrepository.MailRepositoryUrlStoreContract; import org.junit.jupiter.api.extension.ExtendWith; @ExtendWith(CassandraMailRepositoryUrlStoreExtension.class) diff --git a/server/mailrepository/mailrepository-memory/pom.xml b/server/mailrepository/mailrepository-memory/pom.xml index 73678b3..f4ed89c 100644 --- a/server/mailrepository/mailrepository-memory/pom.xml +++ b/server/mailrepository/mailrepository-memory/pom.xml @@ -35,6 +35,20 @@ <dependencies> <dependency> <groupId>${james.groupId}</groupId> + <artifactId>apache-mailet-test</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-core</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-lifecycle-api</artifactId> + </dependency> + <dependency> + <groupId>${james.groupId}</groupId> <artifactId>james-server-mailrepository-api</artifactId> </dependency> <dependency> @@ -45,8 +59,17 @@ </dependency> <dependency> <groupId>${james.groupId}</groupId> + <artifactId>james-server-testing</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>${james.groupId}</groupId> <artifactId>testing-base</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-configuration2</artifactId> + </dependency> </dependencies> </project> diff --git a/server/data/data-memory/src/main/java/org/apache/james/mailrepository/memory/MailRepositoryLoader.java b/server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/MailRepositoryLoader.java similarity index 100% rename from server/data/data-memory/src/main/java/org/apache/james/mailrepository/memory/MailRepositoryLoader.java rename to server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/MailRepositoryLoader.java diff --git a/server/data/data-memory/src/main/java/org/apache/james/mailrepository/memory/MailRepositoryStoreConfiguration.java b/server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/MailRepositoryStoreConfiguration.java similarity index 100% rename from server/data/data-memory/src/main/java/org/apache/james/mailrepository/memory/MailRepositoryStoreConfiguration.java rename to server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/MailRepositoryStoreConfiguration.java diff --git a/server/data/data-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryStore.java b/server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryStore.java similarity index 99% rename from server/data/data-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryStore.java rename to server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryStore.java index 1ef76a2..47f5bd2 100644 --- a/server/data/data-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryStore.java +++ b/server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryStore.java @@ -33,13 +33,13 @@ import org.apache.commons.configuration2.HierarchicalConfiguration; import org.apache.commons.configuration2.tree.ImmutableNode; import org.apache.james.lifecycle.api.Configurable; import org.apache.james.lifecycle.api.Startable; +import org.apache.james.mailrepository.api.Initializable; import org.apache.james.mailrepository.api.MailRepository; import org.apache.james.mailrepository.api.MailRepositoryPath; import org.apache.james.mailrepository.api.MailRepositoryStore; import org.apache.james.mailrepository.api.MailRepositoryUrl; import org.apache.james.mailrepository.api.MailRepositoryUrlStore; import org.apache.james.mailrepository.api.Protocol; -import org.apache.james.repository.api.Initializable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/server/data/data-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStore.java b/server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStore.java similarity index 100% rename from server/data/data-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStore.java rename to server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStore.java diff --git a/server/data/data-memory/src/main/java/org/apache/james/mailrepository/memory/SimpleMailRepositoryLoader.java b/server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/SimpleMailRepositoryLoader.java similarity index 100% rename from server/data/data-memory/src/main/java/org/apache/james/mailrepository/memory/SimpleMailRepositoryLoader.java rename to server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/SimpleMailRepositoryLoader.java diff --git a/server/data/data-memory/src/test/java/org/apache/james/mailrepository/memory/MailRepositoryStoreConfigurationTest.java b/server/mailrepository/mailrepository-memory/src/test/java/org/apache/james/mailrepository/memory/MailRepositoryStoreConfigurationTest.java similarity index 100% rename from server/data/data-memory/src/test/java/org/apache/james/mailrepository/memory/MailRepositoryStoreConfigurationTest.java rename to server/mailrepository/mailrepository-memory/src/test/java/org/apache/james/mailrepository/memory/MailRepositoryStoreConfigurationTest.java diff --git a/server/data/data-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryStoreTest.java b/server/mailrepository/mailrepository-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryStoreTest.java similarity index 100% rename from server/data/data-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryStoreTest.java rename to server/mailrepository/mailrepository-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryStoreTest.java diff --git a/server/data/data-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStoreExtension.java b/server/mailrepository/mailrepository-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStoreExtension.java similarity index 100% rename from server/data/data-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStoreExtension.java rename to server/mailrepository/mailrepository-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStoreExtension.java diff --git a/server/data/data-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStoreTest.java b/server/mailrepository/mailrepository-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStoreTest.java similarity index 95% rename from server/data/data-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStoreTest.java rename to server/mailrepository/mailrepository-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStoreTest.java index 047957f..7c6d10f 100644 --- a/server/data/data-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStoreTest.java +++ b/server/mailrepository/mailrepository-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStoreTest.java @@ -19,7 +19,7 @@ package org.apache.james.mailrepository.memory; -import org.apache.james.mailrepository.api.MailRepositoryUrlStoreContract; +import org.apache.james.mailrepository.MailRepositoryUrlStoreContract; import org.junit.jupiter.api.extension.ExtendWith; @ExtendWith(MemoryMailRepositoryUrlStoreExtension.class) diff --git a/server/data/data-memory/src/test/resources/mailrepositorystore.xml b/server/mailrepository/mailrepository-memory/src/test/resources/mailrepositorystore.xml similarity index 100% rename from server/data/data-memory/src/test/resources/mailrepositorystore.xml rename to server/mailrepository/mailrepository-memory/src/test/resources/mailrepositorystore.xml --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org