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 2020/06/29 04:38:39 UTC
[james-project] 09/09: JAMES-3214 Move MailRepositoryStore related
classes to mailRepository-api
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 <bt...@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-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org