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 2018/01/30 08:12:12 UTC

[01/16] james-project git commit: JAMES-2285 Get ride of InMemoryRepository

Repository: james-project
Updated Branches:
  refs/heads/master ac0f4a5a2 -> 27fd46dc4


JAMES-2285 Get ride of InMemoryRepository

MemoryRepository, that is a real implementation, not based on deprecated
super class, should be used instead.

The only controversial move is moving UserRepositoryManagement test where
memory implementation is available.


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/2d88a92d
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/2d88a92d
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/2d88a92d

Branch: refs/heads/master
Commit: 2d88a92d632151d96a51f9db33d70456606bfbcc
Parents: 27dc773
Author: benwa <bt...@linagora.com>
Authored: Sat Jan 20 09:19:25 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jan 30 15:09:29 2018 +0700

----------------------------------------------------------------------
 .../user/lib/UsersRepositoryManagementTest.java | 119 ----------------
 .../user/lib/mock/InMemoryUsersRepository.java  | 140 -------------------
 .../memory/UsersRepositoryManagementTest.java   | 120 ++++++++++++++++
 server/protocols/jmap/pom.xml                   |   5 +
 .../james/jmap/UserProvisioningFilterTest.java  |   6 +-
 .../jmap/UserProvisioningFilterThreadTest.java  |   6 +-
 server/protocols/protocols-pop3/pom.xml         |   5 +
 .../apache/james/pop3server/POP3ServerTest.java |   4 +-
 .../apache/james/smtpserver/SMTPServerTest.java |   4 +-
 .../james/smtpserver/ValidRcptHandlerTest.java  |   4 +-
 10 files changed, 142 insertions(+), 271 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/2d88a92d/server/data/data-library/src/test/java/org/apache/james/user/lib/UsersRepositoryManagementTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/test/java/org/apache/james/user/lib/UsersRepositoryManagementTest.java b/server/data/data-library/src/test/java/org/apache/james/user/lib/UsersRepositoryManagementTest.java
deleted file mode 100644
index 7ffa5fa..0000000
--- a/server/data/data-library/src/test/java/org/apache/james/user/lib/UsersRepositoryManagementTest.java
+++ /dev/null
@@ -1,119 +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.user.lib;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.james.user.lib.mock.InMemoryUsersRepository;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests the UserManagement
- */
-public class UsersRepositoryManagementTest {
-
-    private InMemoryUsersRepository mockUsersRepository;
-    private UsersRepositoryManagement userManagement;
-
-    @Before
-    public void setUp() throws Exception {
-        mockUsersRepository = new InMemoryUsersRepository();
-
-        userManagement = new UsersRepositoryManagement();
-        userManagement.setUsersRepository(mockUsersRepository);
-    }
-
-    @Test
-    public void testUserCount() throws Exception {
-        assertEquals("no user yet", 0, userManagement.countUsers());
-        mockUsersRepository.addUser("testCount1", "testCount");
-        assertEquals("1 user", 1, userManagement.countUsers());
-        mockUsersRepository.addUser("testCount2", "testCount");
-        assertEquals("2 users", 2, userManagement.countUsers());
-        mockUsersRepository.removeUser("testCount1");
-        assertEquals("1 user", 1, userManagement.countUsers());
-    }
-
-    @Test
-    public void testAddUserAndVerify() throws Exception {
-        mockUsersRepository.addUser("testCount1", "testCount");
-        assertFalse("user not there", userManagement.verifyExists("testNotAdded"));
-        assertTrue("user is there", userManagement.verifyExists("testCount1"));
-        mockUsersRepository.removeUser("testCount1");
-        assertFalse("user not there", userManagement.verifyExists("testCount1"));
-    }
-
-    @Test
-    public void testDelUser() throws Exception {
-        mockUsersRepository.addUser("testDel", "test");
-        assertFalse("user not there", userManagement.verifyExists("testNotDeletable"));
-        assertTrue("user is there", userManagement.verifyExists("testDel"));
-        mockUsersRepository.removeUser("testDel");
-        assertFalse("user no longer there", userManagement.verifyExists("testDel"));
-    }
-
-    @Test
-    public void testListUsers() throws Exception {
-
-        String[] usersArray = new String[]{"ccc", "aaa", "dddd", "bbbbb"};
-        List<String> users = Arrays.asList(usersArray);
-
-        for (String user : users) {
-            mockUsersRepository.addUser(user, "test");
-        }
-
-        String[] userNames = userManagement.listAllUsers();
-        assertEquals("user count", users.size(), userNames.length);
-
-        for (String user : userNames) {
-            if (!users.contains(user)) {
-                fail("user not listed");
-            }
-        }
-    }
-
-    @Test
-    public void testSetPassword() throws Exception {
-
-        userManagement.addUser("testPwdUser", "pwd1");
-
-        assertTrue("initial password", mockUsersRepository.test("testPwdUser", "pwd1"));
-
-        // set empty pwd
-        userManagement.setPassword("testPwdUser", "");
-        assertTrue("password changed to empty", mockUsersRepository.test("testPwdUser", ""));
-
-        // change pwd
-        userManagement.setPassword("testPwdUser", "pwd2");
-        assertTrue("password not changed to pwd2", mockUsersRepository.test("testPwdUser", "pwd2"));
-
-        // assure case sensitivity
-        userManagement.setPassword("testPwdUser", "pWD2");
-        assertFalse("password no longer pwd2", mockUsersRepository.test("testPwdUser", "pwd2"));
-        assertTrue("password changed to pWD2", mockUsersRepository.test("testPwdUser", "pWD2"));
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/2d88a92d/server/data/data-library/src/test/java/org/apache/james/user/lib/mock/InMemoryUsersRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/test/java/org/apache/james/user/lib/mock/InMemoryUsersRepository.java b/server/data/data-library/src/test/java/org/apache/james/user/lib/mock/InMemoryUsersRepository.java
deleted file mode 100644
index 6053070..0000000
--- a/server/data/data-library/src/test/java/org/apache/james/user/lib/mock/InMemoryUsersRepository.java
+++ /dev/null
@@ -1,140 +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.user.lib.mock;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Locale;
-
-import org.apache.james.user.api.UsersRepositoryException;
-import org.apache.james.user.api.model.User;
-import org.apache.james.user.lib.AbstractJamesUsersRepository;
-import org.apache.james.user.lib.model.DefaultJamesUser;
-import org.apache.james.user.lib.model.DefaultUser;
-
-@SuppressWarnings("deprecation")
-public class InMemoryUsersRepository extends AbstractJamesUsersRepository {
-
-    private final HashMap<String, User> users = new HashMap<>();
-    /**
-     * force the repository to hold implementations of JamesUser interface,
-     * instead of User JamesUser is _not_ required as of the UsersRepository
-     * interface, so the necessarity forcing it is due to code using
-     * UsersRepository while at the same time expecting it to hold JamesUsers
-     * (like in RemoteManagerHandler)
-     */
-    private boolean forceUseJamesUser = false;
-
-    public void setForceUseJamesUser() {
-        forceUseJamesUser = true;
-    }
-
-    @Override
-    public User getUserByName(String name) throws UsersRepositoryException {
-        if (ignoreCase) {
-            return getUserByNameCaseInsensitive(name);
-        } else {
-            return users.get(name);
-        }
-    }
-
-    public User getUserByNameCaseInsensitive(String name) {
-        return users.get(name.toLowerCase(Locale.US));
-    }
-
-    public String getRealName(String name) {
-        if (ignoreCase) {
-            return users.get(name.toLowerCase(Locale.US)) != null ? 
-                    users.get(name.toLowerCase(Locale.US)).getUserName() : null;
-        } else {
-            return users.get(name) != null ? name : null;
-        }
-    }
-
-    @Override
-    public void removeUser(String name) throws UsersRepositoryException {
-        if (!users.containsKey(name)) {
-            throw new UsersRepositoryException("No such user");
-        } else {
-            users.remove(name);
-        }
-    }
-
-    @Override
-    public boolean contains(String name) throws UsersRepositoryException {
-        if (ignoreCase) {
-            return containsCaseInsensitive(name);
-        } else {
-            return users.containsKey(name);
-        }
-    }
-
-    public boolean containsCaseInsensitive(String name) {
-        throw new UnsupportedOperationException("mock");
-    }
-
-    @Override
-    public boolean test(String name, String password) throws UsersRepositoryException {
-        User user = getUserByName(name);
-        return user != null && user.verifyPassword(password);
-    }
-
-    @Override
-    public int countUsers() throws UsersRepositoryException {
-        return users.size();
-    }
-
-    protected List<String> listUserNames() {
-        Iterator<User> users = this.users.values().iterator();
-        List<String> userNames = new LinkedList<>();
-        while (users.hasNext()) {
-            User user = users.next();
-            userNames.add(user.getUserName());
-        }
-
-        return userNames;
-    }
-
-    @Override
-    public Iterator<String> list() throws UsersRepositoryException {
-        return listUserNames().iterator();
-    }
-
-    @Override
-    protected void doAddUser(User user) throws UsersRepositoryException {
-        if (forceUseJamesUser && user instanceof DefaultUser) {
-            DefaultUser aUser = (DefaultUser) user;
-            user = new DefaultJamesUser(aUser.getUserName(), aUser.getHashedPassword(), aUser.getHashAlgorithm());
-        }
-
-        String key = user.getUserName();
-        users.put(key, user);
-    }
-
-    @Override
-    protected void doUpdateUser(User user) throws UsersRepositoryException {
-        if (users.containsKey(user.getUserName())) {
-            users.put(user.getUserName(), user);
-        } else {
-            throw new UsersRepositoryException("No such user");
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/2d88a92d/server/data/data-memory/src/test/java/org/apache/james/user/memory/UsersRepositoryManagementTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-memory/src/test/java/org/apache/james/user/memory/UsersRepositoryManagementTest.java b/server/data/data-memory/src/test/java/org/apache/james/user/memory/UsersRepositoryManagementTest.java
new file mode 100644
index 0000000..6e5aa55
--- /dev/null
+++ b/server/data/data-memory/src/test/java/org/apache/james/user/memory/UsersRepositoryManagementTest.java
@@ -0,0 +1,120 @@
+/****************************************************************
+ * 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.user.memory;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.james.user.api.UsersRepository;
+import org.apache.james.user.lib.UsersRepositoryManagement;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests the UserManagement
+ */
+public class UsersRepositoryManagementTest {
+
+    private UsersRepository mockUsersRepository;
+    private UsersRepositoryManagement userManagement;
+
+    @Before
+    public void setUp() throws Exception {
+        mockUsersRepository = MemoryUsersRepository.withoutVirtualHosting();
+
+        userManagement = new UsersRepositoryManagement();
+        userManagement.setUsersRepository(mockUsersRepository);
+    }
+
+    @Test
+    public void testUserCount() throws Exception {
+        assertEquals("no user yet", 0, userManagement.countUsers());
+        mockUsersRepository.addUser("testCount1", "testCount");
+        assertEquals("1 user", 1, userManagement.countUsers());
+        mockUsersRepository.addUser("testCount2", "testCount");
+        assertEquals("2 users", 2, userManagement.countUsers());
+        mockUsersRepository.removeUser("testCount1");
+        assertEquals("1 user", 1, userManagement.countUsers());
+    }
+
+    @Test
+    public void testAddUserAndVerify() throws Exception {
+        mockUsersRepository.addUser("testCount1", "testCount");
+        assertFalse("user not there", userManagement.verifyExists("testNotAdded"));
+        assertTrue("user is there", userManagement.verifyExists("testCount1"));
+        mockUsersRepository.removeUser("testCount1");
+        assertFalse("user not there", userManagement.verifyExists("testCount1"));
+    }
+
+    @Test
+    public void testDelUser() throws Exception {
+        mockUsersRepository.addUser("testDel", "test");
+        assertFalse("user not there", userManagement.verifyExists("testNotDeletable"));
+        assertTrue("user is there", userManagement.verifyExists("testDel"));
+        mockUsersRepository.removeUser("testDel");
+        assertFalse("user no longer there", userManagement.verifyExists("testDel"));
+    }
+
+    @Test
+    public void testListUsers() throws Exception {
+
+        String[] usersArray = new String[]{"ccc", "aaa", "dddd", "bbbbb"};
+        List<String> users = Arrays.asList(usersArray);
+
+        for (String user : users) {
+            mockUsersRepository.addUser(user, "test");
+        }
+
+        String[] userNames = userManagement.listAllUsers();
+        assertEquals("user count", users.size(), userNames.length);
+
+        for (String user : userNames) {
+            if (!users.contains(user)) {
+                fail("user not listed");
+            }
+        }
+    }
+
+    @Test
+    public void testSetPassword() throws Exception {
+
+        userManagement.addUser("testPwdUser", "pwd1");
+
+        assertTrue("initial password", mockUsersRepository.test("testPwdUser", "pwd1"));
+
+        // set empty pwd
+        userManagement.setPassword("testPwdUser", "");
+        assertTrue("password changed to empty", mockUsersRepository.test("testPwdUser", ""));
+
+        // change pwd
+        userManagement.setPassword("testPwdUser", "pwd2");
+        assertTrue("password not changed to pwd2", mockUsersRepository.test("testPwdUser", "pwd2"));
+
+        // assure case sensitivity
+        userManagement.setPassword("testPwdUser", "pWD2");
+        assertFalse("password no longer pwd2", mockUsersRepository.test("testPwdUser", "pwd2"));
+        assertTrue("password changed to pWD2", mockUsersRepository.test("testPwdUser", "pWD2"));
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/2d88a92d/server/protocols/jmap/pom.xml
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/pom.xml b/server/protocols/jmap/pom.xml
index 7ac74f2..fa37e8f 100644
--- a/server/protocols/jmap/pom.xml
+++ b/server/protocols/jmap/pom.xml
@@ -105,6 +105,11 @@
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
+            <artifactId>james-server-data-memory</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
             <artifactId>james-server-jetty</artifactId>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/2d88a92d/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterTest.java
index dde8aa5..29e652b 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterTest.java
@@ -38,7 +38,7 @@ import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.metrics.api.NoopMetricFactory;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
-import org.apache.james.user.lib.mock.InMemoryUsersRepository;
+import org.apache.james.user.memory.MemoryUsersRepository;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -47,14 +47,14 @@ public class UserProvisioningFilterTest {
     private static final String MAIL = USERNAME + "@james.org";
 
     private UserProvisioningFilter sut;
-    private InMemoryUsersRepository usersRepository;
+    private MemoryUsersRepository usersRepository;
     private HttpServletRequest request;
     private HttpServletResponse response;
     private FilterChain chain;
 
     @Before
     public void setup() throws Exception {
-        usersRepository = new InMemoryUsersRepository();
+        usersRepository = MemoryUsersRepository.withoutVirtualHosting();
         sut = new UserProvisioningFilter(usersRepository, new NoopMetricFactory());
         request = mock(HttpServletRequest.class);
         response = mock(HttpServletResponse.class);

http://git-wip-us.apache.org/repos/asf/james-project/blob/2d88a92d/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterThreadTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterThreadTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterThreadTest.java
index 2771384..14dd76f 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterThreadTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserProvisioningFilterThreadTest.java
@@ -21,7 +21,7 @@ package org.apache.james.jmap;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.metrics.api.NoopMetricFactory;
-import org.apache.james.user.lib.mock.InMemoryUsersRepository;
+import org.apache.james.user.memory.MemoryUsersRepository;
 import org.junit.Test;
 
 import com.google.testing.threadtester.AnnotatedTestRunner;
@@ -33,12 +33,12 @@ import com.google.testing.threadtester.ThreadedSecondary;
 public class UserProvisioningFilterThreadTest {
 
     private UserProvisioningFilter sut;
-    private InMemoryUsersRepository usersRepository;
+    private MemoryUsersRepository usersRepository;
     private MailboxSession session;
 
     @ThreadedBefore
     public void before() {
-        usersRepository = new InMemoryUsersRepository();
+        usersRepository = MemoryUsersRepository.withoutVirtualHosting();
         session = new MockMailboxSession("username");
         sut = new UserProvisioningFilter(usersRepository, new NoopMetricFactory());
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/2d88a92d/server/protocols/protocols-pop3/pom.xml
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-pop3/pom.xml b/server/protocols/protocols-pop3/pom.xml
index be675b2..e68ea91 100644
--- a/server/protocols/protocols-pop3/pom.xml
+++ b/server/protocols/protocols-pop3/pom.xml
@@ -76,6 +76,11 @@
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
+            <artifactId>james-server-data-memory</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
             <artifactId>james-server-filesystem-api</artifactId>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/2d88a92d/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java b/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
index 686919b..780286d 100644
--- a/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
+++ b/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
@@ -54,7 +54,7 @@ import org.apache.james.protocols.lib.POP3BeforeSMTPHelper;
 import org.apache.james.protocols.lib.mock.MockProtocolHandlerLoader;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
-import org.apache.james.user.lib.mock.InMemoryUsersRepository;
+import org.apache.james.user.memory.MemoryUsersRepository;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
@@ -63,7 +63,7 @@ import org.junit.Test;
 public class POP3ServerTest {
 
     private POP3TestConfiguration pop3Configuration;
-    private final InMemoryUsersRepository usersRepository = new InMemoryUsersRepository();
+    private final MemoryUsersRepository usersRepository = MemoryUsersRepository.withoutVirtualHosting();
     private POP3Client pop3Client = null;
     protected MockFileSystem fileSystem;
     protected MockProtocolHandlerLoader protocolHandlerChain;

http://git-wip-us.apache.org/repos/asf/james-project/blob/2d88a92d/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
index 107c425..fd26ff6 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
@@ -63,7 +63,7 @@ import org.apache.james.rrt.memory.MemoryRecipientRewriteTable;
 import org.apache.james.smtpserver.netty.SMTPServer;
 import org.apache.james.smtpserver.netty.SmtpMetricsImpl;
 import org.apache.james.user.api.UsersRepository;
-import org.apache.james.user.lib.mock.InMemoryUsersRepository;
+import org.apache.james.user.memory.MemoryUsersRepository;
 import org.apache.mailet.Mail;
 import org.junit.After;
 import org.junit.Before;
@@ -163,7 +163,7 @@ public class SMTPServerTest {
     private static final Logger LOGGER = LoggerFactory.getLogger(SMTPServerTest.class);
 
     protected SMTPTestConfiguration smtpConfiguration;
-    protected final InMemoryUsersRepository usersRepository = new InMemoryUsersRepository();
+    protected final MemoryUsersRepository usersRepository = MemoryUsersRepository.withoutVirtualHosting();
     protected AlterableDNSServer dnsServer;
     protected MockMailRepositoryStore store;
     protected MockFileSystem fileSystem;

http://git-wip-us.apache.org/repos/asf/james-project/blob/2d88a92d/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
index 50c04a2..123a93b 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
@@ -40,7 +40,7 @@ import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.rrt.lib.MappingsImpl;
 import org.apache.james.smtpserver.fastfail.ValidRcptHandler;
 import org.apache.james.user.api.UsersRepository;
-import org.apache.james.user.lib.mock.InMemoryUsersRepository;
+import org.apache.james.user.memory.MemoryUsersRepository;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -57,7 +57,7 @@ public class ValidRcptHandlerTest {
     @Before
     public void setUp() throws Exception {
 
-        users = new InMemoryUsersRepository();
+        users = MemoryUsersRepository.withoutVirtualHosting();
         users.addUser(VALID_USER, "xxx");
         
         handler = new ValidRcptHandler();


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


[08/16] james-project git commit: JAMES-2285 Get ride of an DNS test implementation

Posted by bt...@apache.org.
JAMES-2285 Get ride of an DNS test implementation


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b259e6fd
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b259e6fd
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b259e6fd

Branch: refs/heads/master
Commit: b259e6fd1bc8eb50fc2dcc63ba254878132479a4
Parents: 4642814
Author: benwa <bt...@linagora.com>
Authored: Sat Jan 20 17:43:06 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jan 30 15:09:47 2018 +0700

----------------------------------------------------------------------
 .../dnsservice/api/InMemoryDNSService.java      |  5 +-
 .../library/MXHostAddressIteratorTest.java      | 85 +++-----------------
 2 files changed, 13 insertions(+), 77 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b259e6fd/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
----------------------------------------------------------------------
diff --git a/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java b/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
index 11b0e4b..92fae2b 100644
--- a/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
+++ b/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
@@ -63,8 +63,9 @@ public class InMemoryDNSService implements DNSService {
         return this;
     }
 
-    public void registerRecord(String hostname, List<InetAddress> addresses, Collection<String> mxRecords, Collection<String> txtRecords) {
+    public InMemoryDNSService registerRecord(String hostname, List<InetAddress> addresses, Collection<String> mxRecords, Collection<String> txtRecords) {
         records.put(hostname, dnsRecordFor(mxRecords, txtRecords, addresses));
+        return this;
     }
 
     public void dropRecord(String hostname) {
@@ -127,7 +128,7 @@ public class InMemoryDNSService implements DNSService {
             .orElseThrow(() -> new UnknownHostException());
     }
 
-    private static class DNSRecord {
+    public static class DNSRecord {
 
         final Collection<String> mxRecords;
         final Collection<String> txtRecords;

http://git-wip-us.apache.org/repos/asf/james-project/blob/b259e6fd/server/dns-service/dnsservice-library/src/test/java/org/apache/james/dnsservice/library/MXHostAddressIteratorTest.java
----------------------------------------------------------------------
diff --git a/server/dns-service/dnsservice-library/src/test/java/org/apache/james/dnsservice/library/MXHostAddressIteratorTest.java b/server/dns-service/dnsservice-library/src/test/java/org/apache/james/dnsservice/library/MXHostAddressIteratorTest.java
index c2aa2bb..7e6bb45 100644
--- a/server/dns-service/dnsservice-library/src/test/java/org/apache/james/dnsservice/library/MXHostAddressIteratorTest.java
+++ b/server/dns-service/dnsservice-library/src/test/java/org/apache/james/dnsservice/library/MXHostAddressIteratorTest.java
@@ -23,12 +23,10 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import java.net.InetAddress;
-import java.net.UnknownHostException;
 import java.util.Arrays;
-import java.util.Collection;
 
 import org.apache.james.dnsservice.api.DNSService;
-import org.apache.james.dnsservice.api.TemporaryResolutionException;
+import org.apache.james.dnsservice.api.InMemoryDNSService;
 import org.junit.Test;
 
 import com.google.common.collect.ImmutableList;
@@ -39,43 +37,15 @@ public class MXHostAddressIteratorTest {
      * Test case for JAMES-1251
      */
     @Test
-    public void testIteratorContainMultipleMX() {
-        DNSService dns = new DNSService() {
+    public void testIteratorContainMultipleMX() throws Exception {
+        InetAddress address = InetAddress.getLocalHost();
+        ImmutableList<String> mxs = ImmutableList.of(address.getHostAddress());
+        ImmutableList<String> noTxtRecord = ImmutableList.of();
+        ImmutableList<InetAddress> addresses = ImmutableList.of(address, address);
+        DNSService dns = new InMemoryDNSService()
+            .registerRecord("localhost", addresses, mxs, noTxtRecord)
+            .registerRecord("localhost2", addresses, mxs, noTxtRecord);
 
-            @Override
-            public InetAddress getLocalHost() throws UnknownHostException {
-                throw new UnsupportedOperationException();
-            }
-
-            @Override
-            public String getHostName(InetAddress addr) {
-                throw new UnsupportedOperationException();
-            }
-
-            @Override
-            public InetAddress getByName(String host) throws UnknownHostException {
-                return InetAddress.getLocalHost();
-            }
-
-            /**
-             * Every time this method is called it will return two InetAddress instances
-             */
-            @Override
-            public Collection<InetAddress> getAllByName(String host) throws UnknownHostException {
-                InetAddress addr = InetAddress.getLocalHost();
-                return ImmutableList.of(addr, addr);
-            }
-
-            @Override
-            public Collection<String> findTXTRecords(String hostname) {
-                throw new UnsupportedOperationException();
-            }
-
-            @Override
-            public Collection<String> findMXRecords(String hostname) throws TemporaryResolutionException {
-                throw new UnsupportedOperationException();
-            }
-        };
         MXHostAddressIterator it = new MXHostAddressIterator(Arrays.asList("localhost", "localhost2").iterator(), dns, false);
         for (int i = 0; i < 4; i++) {
             assertTrue(it.hasNext());
@@ -93,44 +63,9 @@ public class MXHostAddressIteratorTest {
 
     @Test
     public void testIteratorWithInvalidMX() {
-        DNSService dns = new DNSService() {
-
-            @Override
-            public InetAddress getLocalHost() throws UnknownHostException {
-                throw new UnsupportedOperationException();
-            }
-
-            @Override
-            public String getHostName(InetAddress addr) {
-                throw new UnsupportedOperationException();
-            }
-
-            @Override
-            public InetAddress getByName(String host) throws UnknownHostException {
-                throw new UnknownHostException();
-            }
-
-            /**
-             * Every time this method is called it will return two InetAddress instances
-             */
-            @Override
-            public Collection<InetAddress> getAllByName(String host) throws UnknownHostException {
-                throw new UnknownHostException();
-            }
-
-            @Override
-            public Collection<String> findTXTRecords(String hostname) {
-                throw new UnsupportedOperationException();
-            }
-
-            @Override
-            public Collection<String> findMXRecords(String hostname) throws TemporaryResolutionException {
-                throw new UnsupportedOperationException();
-            }
-        };
 
         // See JAMES-1271
-        MXHostAddressIterator it = new MXHostAddressIterator(Arrays.asList("localhost").iterator(), dns, false);
+        MXHostAddressIterator it = new MXHostAddressIterator(Arrays.asList("localhost").iterator(), new InMemoryDNSService(), false);
         assertFalse(it.hasNext());
     }
 }


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


[09/16] james-project git commit: JAMES-2285 Get ride of an DNS test implementation

Posted by bt...@apache.org.
JAMES-2285 Get ride of an DNS test implementation


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/80d1e9df
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/80d1e9df
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/80d1e9df

Branch: refs/heads/master
Commit: 80d1e9df533d3116f13d5f13a23e9851a0809668
Parents: 526a919
Author: benwa <bt...@linagora.com>
Authored: Sat Jan 20 18:11:53 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jan 30 15:10:26 2018 +0700

----------------------------------------------------------------------
 .../matchers/RemoteAddrInNetworkTest.java         | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/80d1e9df/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/RemoteAddrInNetworkTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/RemoteAddrInNetworkTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/RemoteAddrInNetworkTest.java
index 0f87010..ad00285 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/RemoteAddrInNetworkTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/RemoteAddrInNetworkTest.java
@@ -20,14 +20,13 @@ package org.apache.james.transport.matchers;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.net.InetAddress;
-import java.net.UnknownHostException;
 import java.util.Collection;
 
 import javax.mail.MessagingException;
 
 import org.apache.james.core.MailAddress;
-import org.apache.james.dnsservice.api.mock.MockDNSService;
+import org.apache.james.dnsservice.api.DNSService;
+import org.apache.james.dnsservice.api.InMemoryDNSService;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMatcherConfig;
 import org.junit.Before;
@@ -39,13 +38,12 @@ public class RemoteAddrInNetworkTest {
     private MailAddress testRecipient;
 
     @Before
-    public void setup() throws MessagingException {
-        MockDNSService dnsServer = new MockDNSService() {
-            @Override
-            public InetAddress getByName(String host) throws UnknownHostException {
-                return InetAddress.getByName(host);
-            }
-        };
+    public void setup() throws Exception {
+        DNSService dnsServer = new InMemoryDNSService()
+            .registerMxRecord("192.168.0.1", "192.168.0.1")
+            .registerMxRecord("192.168.200.1", "192.168.200.1")
+            .registerMxRecord("192.168.200.0", "192.168.200.0")
+            .registerMxRecord("255.255.255.0", "255.255.255.0");
         FakeMatcherConfig matcherConfig = FakeMatcherConfig.builder()
                 .matcherName("AllowedNetworkIs")
                 .condition("192.168.200.0/24")


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


[13/16] james-project git commit: JAMES-2323 Deprecate JcrMailRepository

Posted by bt...@apache.org.
JAMES-2323 Deprecate JcrMailRepository


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/25bbee66
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/25bbee66
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/25bbee66

Branch: refs/heads/master
Commit: 25bbee66ae704b40407935303de14bf4fff911d7
Parents: 1d6f4b7
Author: benwa <bt...@linagora.com>
Authored: Mon Jan 29 16:37:04 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jan 30 15:11:15 2018 +0700

----------------------------------------------------------------------
 .../app/src/main/resources/mailrepositorystore.xml  | 16 +---------------
 .../james/mailrepository/jcr/JCRMailRepository.java |  7 +++++++
 src/site/xdoc/server/config-mailrepositorystore.xml |  5 ++++-
 3 files changed, 12 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/25bbee66/server/app/src/main/resources/mailrepositorystore.xml
----------------------------------------------------------------------
diff --git a/server/app/src/main/resources/mailrepositorystore.xml b/server/app/src/main/resources/mailrepositorystore.xml
index 5ddddc8..d389d1b 100644
--- a/server/app/src/main/resources/mailrepositorystore.xml
+++ b/server/app/src/main/resources/mailrepositorystore.xml
@@ -67,21 +67,7 @@
                <filestore>file://var/dbmail</filestore>
            </config>
        </mailrepository>
-        
-       <!-- If you enable this you need to make sure that embedded Jackrabbit instance is started as well. Check the container configuration --> 
-       <!--
-       <mailrepository class="org.apache.james.mailrepository.jcr.JCRMailRepository">
-           <protocols>
-               <protocol>jcr</protocol>
-           </protocols>
-           <config>
-               <repository>//localhost/jackrabbit.repository</repository>
-               <username>admin</username>
-               <password>admin</password>
-               <workspace>default</workspace>
-           </config>
-       </mailrepository>
-        -->
+
    </mailrepositories>
    
 </mailrepositorystore>

http://git-wip-us.apache.org/repos/asf/james-project/blob/25bbee66/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java b/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java
index ff8ac28..3fd5754 100644
--- a/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java
+++ b/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java
@@ -68,7 +68,14 @@ import org.slf4j.LoggerFactory;
 
 /**
  * Mail repository that is backed by a JCR content repository.
+ *
+ * @Depracted: See JAMES-2323
+ *
+ * Will be removed in James 3.2.0 upcoming release.
+ *
+ * Use a modern, maintained MailRepository instead. For instead FileMailRepository.
  */
+@Deprecated
 public class JCRMailRepository extends AbstractMailRepository implements MailRepository {
     private static final Logger LOGGER = LoggerFactory.getLogger(JCRMailRepository.class);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/25bbee66/src/site/xdoc/server/config-mailrepositorystore.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/server/config-mailrepositorystore.xml b/src/site/xdoc/server/config-mailrepositorystore.xml
index 3d0b9f8..9564849 100644
--- a/src/site/xdoc/server/config-mailrepositorystore.xml
+++ b/src/site/xdoc/server/config-mailrepositorystore.xml
@@ -97,7 +97,10 @@
     </subsection>
 
     <subsection name="JCR Repositories">
-    
+
+      <p>Warning: deprecated. This feature will be removed as part of James release 3.2.0 unless it is maintained.
+        See https://issues.apache.org/jira/browse/JAMES-2323. Use File Repositories instead.</p>
+
       <p>Store mails in a JCR (Java Content Repository) based implementation.</p>
     
       <p>If you enable this you need to make sure that embedded Jackrabbit instance is started as well. Check the container configuration</p>


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


[04/16] james-project git commit: JAMES-2285 Recipients where duplicated in FakeMail hashCode

Posted by bt...@apache.org.
JAMES-2285 Recipients where duplicated in FakeMail hashCode


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b0685f2b
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b0685f2b
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b0685f2b

Branch: refs/heads/master
Commit: b0685f2b0a6e6f79c2782a8f1f953e881f0b46b7
Parents: ac0f4a5
Author: benwa <bt...@linagora.com>
Authored: Sat Jan 20 08:44:02 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jan 30 15:09:29 2018 +0700

----------------------------------------------------------------------
 .../base/src/test/java/org/apache/mailet/base/test/FakeMail.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b0685f2b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMail.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMail.java b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMail.java
index 8de6b12..150435e 100644
--- a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMail.java
+++ b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMail.java
@@ -430,7 +430,7 @@ public class FakeMail implements Mail, Serializable {
 
     @Override
     public final int hashCode() {
-        return Objects.hashCode(name, sender, recipients, state, errorMessage, lastUpdated, attributes, size, recipients, remoteAddr);
+        return Objects.hashCode(name, sender, recipients, state, errorMessage, lastUpdated, attributes, size, remoteAddr);
     }
 
     @Override


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


[11/16] james-project git commit: JAMES-2291 Fix CassandraMailRepositoryMailDAOTest

Posted by bt...@apache.org.
JAMES-2291 Fix CassandraMailRepositoryMailDAOTest


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b9a820f2
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b9a820f2
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b9a820f2

Branch: refs/heads/master
Commit: b9a820f2a62ec1cf14ebf976169779621cccfe1a
Parents: 35f9647
Author: benwa <bt...@linagora.com>
Authored: Mon Jan 29 15:30:19 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jan 30 15:10:26 2018 +0700

----------------------------------------------------------------------
 .../cassandra/CassandraMailRepositoryMailDAOTest.java              | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b9a820f2/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryMailDAOTest.java
----------------------------------------------------------------------
diff --git a/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryMailDAOTest.java b/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryMailDAOTest.java
index 056c1dd..eb8a846 100644
--- a/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryMailDAOTest.java
+++ b/server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryMailDAOTest.java
@@ -149,7 +149,7 @@ public class CassandraMailRepositoryMailDAOTest {
             blobIdBody)
             .join();
 
-        testee.remove(URL, KEY_1);
+        testee.remove(URL, KEY_1).join();
 
         assertThat(testee.read(URL, KEY_1).join())
             .isEmpty();


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


[06/16] james-project git commit: JAMES-2285 Get ride of an DNS test implementation

Posted by bt...@apache.org.
JAMES-2285 Get ride of an DNS test implementation


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/e18bc7a8
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/e18bc7a8
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/e18bc7a8

Branch: refs/heads/master
Commit: e18bc7a8cd4c9cce3a5be7517f5dbc97b54031ea
Parents: b259e6f
Author: benwa <bt...@linagora.com>
Authored: Sat Jan 20 17:47:11 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jan 30 15:09:47 2018 +0700

----------------------------------------------------------------------
 .../cassandra/CassandraDomainListTest.java      |  2 +-
 .../domainlist/hbase/HBaseDomainListTest.java   |  4 +--
 .../james/domainlist/jpa/JPADomainListTest.java |  5 ++--
 .../domainlist/lib/AbstractDomainListTest.java  | 30 ++++----------------
 .../domainlist/memory/MemoryDomainListTest.java |  2 +-
 5 files changed, 12 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/e18bc7a8/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java b/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java
index f5abd9f..be722db 100644
--- a/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java
+++ b/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java
@@ -45,7 +45,7 @@ public class CassandraDomainListTest extends AbstractDomainListTest {
     }
 
     @Override
-    protected DomainList createDomainList() {
+    protected DomainList createDomainList() throws Exception {
         CassandraDomainList testee = new CassandraDomainList(getDNSServer("localhost"), cassandra.getConf());
         testee.setAutoDetect(false);
         testee.setAutoDetectIP(false);

http://git-wip-us.apache.org/repos/asf/james-project/blob/e18bc7a8/server/data/data-hbase/src/test/java/org/apache/james/domainlist/hbase/HBaseDomainListTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-hbase/src/test/java/org/apache/james/domainlist/hbase/HBaseDomainListTest.java b/server/data/data-hbase/src/test/java/org/apache/james/domainlist/hbase/HBaseDomainListTest.java
index 2df0de2..9b83fe2 100644
--- a/server/data/data-hbase/src/test/java/org/apache/james/domainlist/hbase/HBaseDomainListTest.java
+++ b/server/data/data-hbase/src/test/java/org/apache/james/domainlist/hbase/HBaseDomainListTest.java
@@ -52,7 +52,7 @@ public class HBaseDomainListTest extends AbstractDomainListTest {
     }
     
     @After
-    public void tearDown() throws DomainListException {
+    public void tearDown() throws Exception {
         DomainList domainList = createDomainList();
         for (String domain: domainList.getDomains()) {
             domainList.removeDomain(domain);
@@ -63,7 +63,7 @@ public class HBaseDomainListTest extends AbstractDomainListTest {
      * @see org.apache.james.domainlist.lib.AbstractDomainListTest#createDomainList()
      */
     @Override
-    protected DomainList createDomainList() {
+    protected DomainList createDomainList() throws Exception {
         HBaseDomainList domainList = new HBaseDomainList(getDNSServer("localhost"));
         domainList.setAutoDetect(false);
         domainList.setAutoDetectIP(false);

http://git-wip-us.apache.org/repos/asf/james-project/blob/e18bc7a8/server/data/data-jpa/src/test/java/org/apache/james/domainlist/jpa/JPADomainListTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jpa/src/test/java/org/apache/james/domainlist/jpa/JPADomainListTest.java b/server/data/data-jpa/src/test/java/org/apache/james/domainlist/jpa/JPADomainListTest.java
index 57694af..4a79542 100644
--- a/server/data/data-jpa/src/test/java/org/apache/james/domainlist/jpa/JPADomainListTest.java
+++ b/server/data/data-jpa/src/test/java/org/apache/james/domainlist/jpa/JPADomainListTest.java
@@ -20,7 +20,6 @@ package org.apache.james.domainlist.jpa;
 
 import org.apache.james.backends.jpa.JpaTestCluster;
 import org.apache.james.domainlist.api.DomainList;
-import org.apache.james.domainlist.api.DomainListException;
 import org.apache.james.domainlist.jpa.model.JPADomain;
 import org.apache.james.domainlist.lib.AbstractDomainListTest;
 import org.junit.After;
@@ -39,7 +38,7 @@ public class JPADomainListTest extends AbstractDomainListTest {
     }
 
     @After
-    public void tearDown() throws DomainListException {
+    public void tearDown() throws Exception {
         DomainList domainList = createDomainList();
         for (String domain: domainList.getDomains()) {
             domainList.removeDomain(domain);
@@ -47,7 +46,7 @@ public class JPADomainListTest extends AbstractDomainListTest {
     }
 
     @Override
-    protected DomainList createDomainList() {
+    protected DomainList createDomainList() throws Exception {
         JPADomainList jpaDomainList = new JPADomainList(getDNSServer("localhost"),
             JPA_TEST_CLUSTER.getEntityManagerFactory());
         jpaDomainList.setAutoDetect(false);

http://git-wip-us.apache.org/repos/asf/james-project/blob/e18bc7a8/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListTest.java b/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListTest.java
index 658c68c..a639b36 100644
--- a/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListTest.java
+++ b/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListTest.java
@@ -21,20 +21,16 @@ package org.apache.james.domainlist.lib;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.Assert.fail;
 
-import java.net.InetAddress;
 import java.net.UnknownHostException;
-import java.util.Collection;
 
 import org.apache.james.dnsservice.api.DNSService;
-import org.apache.james.dnsservice.api.mock.MockDNSService;
+import org.apache.james.dnsservice.api.InMemoryDNSService;
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.domainlist.api.DomainListException;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.collect.ImmutableList;
-
 public abstract class AbstractDomainListTest {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(AbstractDomainListTest.class);
@@ -155,24 +151,10 @@ public abstract class AbstractDomainListTest {
     /**
      * Return a fake DNSServer.
      */
-    protected DNSService getDNSServer(final String hostName) {
-        return new MockDNSService() {
-
-            @Override
-            public String getHostName(InetAddress inet) {
-                return hostName;
-            }
-
-            @Override
-            public Collection<InetAddress> getAllByName(String name) throws UnknownHostException {
-                return ImmutableList.of(InetAddress.getByName("127.0.0.1"));
-            }
-
-            @Override
-            public InetAddress getLocalHost() throws UnknownHostException {
-                return InetAddress.getLocalHost();
-            }
-        };
+    protected DNSService getDNSServer(final String hostName) throws UnknownHostException {
+        return new InMemoryDNSService()
+            .registerMxRecord(hostName, "127.0.0.1")
+            .registerMxRecord("127.0.0.1", "127.0.0.1");
     }
 
     /**
@@ -181,5 +163,5 @@ public abstract class AbstractDomainListTest {
      * 
      * @return an implementation of DomainList
      */
-    protected abstract DomainList createDomainList();
+    protected abstract DomainList createDomainList() throws Exception;
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/e18bc7a8/server/data/data-memory/src/test/java/org/apache/james/domainlist/memory/MemoryDomainListTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-memory/src/test/java/org/apache/james/domainlist/memory/MemoryDomainListTest.java b/server/data/data-memory/src/test/java/org/apache/james/domainlist/memory/MemoryDomainListTest.java
index 95c79cc..3cde69f 100644
--- a/server/data/data-memory/src/test/java/org/apache/james/domainlist/memory/MemoryDomainListTest.java
+++ b/server/data/data-memory/src/test/java/org/apache/james/domainlist/memory/MemoryDomainListTest.java
@@ -31,7 +31,7 @@ public class MemoryDomainListTest extends AbstractDomainListTest {
     }
 
     @Override
-    protected DomainList createDomainList() {
+    protected DomainList createDomainList() throws Exception {
         MemoryDomainList testee = new MemoryDomainList(getDNSServer("localhost"));
         testee.setAutoDetect(false);
         testee.setAutoDetectIP(false);


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


[03/16] james-project git commit: JAMES-2285 Rely on mocks to avoid test specific MailQueue implementation

Posted by bt...@apache.org.
JAMES-2285 Rely on mocks to avoid test specific MailQueue implementation


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/48f089fa
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/48f089fa
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/48f089fa

Branch: refs/heads/master
Commit: 48f089faa07201c6da8ff1297ae80c5f2d80ade0
Parents: b0685f2
Author: benwa <bt...@linagora.com>
Authored: Sat Jan 20 08:44:48 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jan 30 15:09:29 2018 +0700

----------------------------------------------------------------------
 .../library/AbstractMailQueueFactoryTest.java   | 55 ++------------------
 1 file changed, 3 insertions(+), 52 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/48f089fa/server/queue/queue-jms/src/test/java/org/apache/james/queue/library/AbstractMailQueueFactoryTest.java
----------------------------------------------------------------------
diff --git a/server/queue/queue-jms/src/test/java/org/apache/james/queue/library/AbstractMailQueueFactoryTest.java b/server/queue/queue-jms/src/test/java/org/apache/james/queue/library/AbstractMailQueueFactoryTest.java
index 77efab3..a0e312e 100644
--- a/server/queue/queue-jms/src/test/java/org/apache/james/queue/library/AbstractMailQueueFactoryTest.java
+++ b/server/queue/queue-jms/src/test/java/org/apache/james/queue/library/AbstractMailQueueFactoryTest.java
@@ -25,15 +25,12 @@ import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
-import java.util.concurrent.TimeUnit;
-
 import javax.management.InstanceNotFoundException;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
 import org.apache.james.queue.api.MailQueue;
 import org.apache.james.queue.api.ManageableMailQueue;
-import org.apache.mailet.Mail;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -48,56 +45,10 @@ public class AbstractMailQueueFactoryTest {
     @Before
     public void setUp() {
         mBeanServer = mock(MBeanServer.class);
-        abstractMailQueueFactory = new AbstractMailQueueFactory<MailQueue>() {
+        abstractMailQueueFactory = new AbstractMailQueueFactory<ManageableMailQueue>() {
             @Override
-            protected MailQueue createMailQueue(String name) {
-                return new ManageableMailQueue() {
-
-                    @Override
-                    public String getName() {
-                        return "name";
-                    }
-
-                    @Override
-                    public void enQueue(Mail mail, long delay, TimeUnit unit) throws MailQueueException {
-
-                    }
-
-                    @Override
-                    public void enQueue(Mail mail) throws MailQueueException {
-
-                    }
-
-                    @Override
-                    public MailQueueItem deQueue() throws MailQueueException {
-                        return null;
-                    }
-
-                    @Override
-                    public long getSize() throws MailQueueException {
-                        return 0;
-                    }
-
-                    @Override
-                    public long flush() throws MailQueueException {
-                        return 0;
-                    }
-
-                    @Override
-                    public long clear() throws MailQueueException {
-                        return 0;
-                    }
-
-                    @Override
-                    public long remove(Type type, String value) throws MailQueueException {
-                        return 0;
-                    }
-
-                    @Override
-                    public MailQueueIterator browse() throws MailQueueException {
-                        return null;
-                    }
-                };
+            protected ManageableMailQueue createMailQueue(String name) {
+                return mock(ManageableMailQueue.class);
             }
         };
         abstractMailQueueFactory.setMbeanServer(mBeanServer);


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


[15/16] james-project git commit: JAMES-2323 Remove some references

Posted by bt...@apache.org.
JAMES-2323 Remove some references


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/80e23284
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/80e23284
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/80e23284

Branch: refs/heads/master
Commit: 80e23284bf364cfddcc40659f1b417504a358849
Parents: 25bbee6
Author: benwa <bt...@linagora.com>
Authored: Mon Jan 29 16:39:54 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jan 30 15:11:15 2018 +0700

----------------------------------------------------------------------
 src/site/xdoc/server/feature-persistence.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/80e23284/src/site/xdoc/server/feature-persistence.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/server/feature-persistence.xml b/src/site/xdoc/server/feature-persistence.xml
index 9e034d9..7f70ff6 100644
--- a/src/site/xdoc/server/feature-persistence.xml
+++ b/src/site/xdoc/server/feature-persistence.xml
@@ -60,7 +60,7 @@
         found <a href="config-mailrepositorystore.html">here</a>.</p>
         
       <p>Mail Repository Stores are distinguished by how they store data. There are five types of 
-        storage: File, Database, DBFile, MBox and JCR.</p>
+        storage: File, Database, DBFile.</p>
         
     </subsection>
       


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


[10/16] james-project git commit: JAMES-2285 RemoteDelivery should not re-implement a MailQueue

Posted by bt...@apache.org.
JAMES-2285 RemoteDelivery should not re-implement a MailQueue

Instead we should be using the Memory mail queue

Solve mail checking issues with a projection. (Because Memory mail queue returns MailImpl, that can not be checked against FakeMail)


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/35f96471
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/35f96471
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/35f96471

Branch: refs/heads/master
Commit: 35f964717f7723b839830cc94d7c5d8b84543293
Parents: 80d1e9d
Author: benwa <bt...@linagora.com>
Authored: Mon Jan 29 11:55:08 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jan 30 15:10:26 2018 +0700

----------------------------------------------------------------------
 server/mailet/mailets/pom.xml                   |   5 +
 .../remote/delivery/RemoteDeliveryTest.java     | 147 +++++++++++--------
 2 files changed, 88 insertions(+), 64 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/35f96471/server/mailet/mailets/pom.xml
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/pom.xml b/server/mailet/mailets/pom.xml
index f269dfa..1abfda0 100644
--- a/server/mailet/mailets/pom.xml
+++ b/server/mailet/mailets/pom.xml
@@ -139,6 +139,11 @@
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
+            <artifactId>james-server-queue-memory</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
             <artifactId>james-server-testing</artifactId>
             <scope>test</scope>
         </dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/35f96471/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/RemoteDeliveryTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/RemoteDeliveryTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/RemoteDeliveryTest.java
index f54203c..79850b0 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/RemoteDeliveryTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/RemoteDeliveryTest.java
@@ -21,21 +21,25 @@ package org.apache.james.transport.mailets.remote.delivery;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
 
+import java.io.Serializable;
+import java.util.Collection;
 import java.util.List;
-import java.util.concurrent.TimeUnit;
+import java.util.Map;
+import java.util.Objects;
 
-import javax.mail.MessagingException;
-
-import org.apache.commons.lang.NotImplementedException;
+import org.apache.commons.lang3.tuple.Pair;
+import org.apache.james.core.MailAddress;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.domainlist.api.DomainList;
-import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.metrics.api.NoopMetricFactory;
 import org.apache.james.queue.api.MailPrioritySupport;
-import org.apache.james.queue.api.MailQueue;
 import org.apache.james.queue.api.MailQueueFactory;
+import org.apache.james.queue.api.ManageableMailQueue;
+import org.apache.james.queue.api.RawMailQueueItemDecoratorFactory;
+import org.apache.james.queue.memory.MemoryMailQueueFactory;
 import org.apache.james.transport.mailets.RemoteDelivery;
+import org.apache.james.util.streams.Iterators;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
@@ -43,62 +47,64 @@ import org.apache.mailet.base.test.FakeMailetConfig;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.google.common.base.Throwables;
+import com.github.steveash.guavate.Guavate;
 import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
+import com.google.common.collect.ImmutableMap;
 
 public class RemoteDeliveryTest {
 
-    public static final String MAIL_NAME = "mail_name";
+    public static class MailProjection {
+        public static MailProjection from(Mail mail) {
+            return new MailProjection(mail.getName(), mail.getRecipients(),
+                Iterators.toStream(mail.getAttributeNames())
+                    .map(name -> Pair.of(name, mail.getAttribute(name)))
+                    .collect(Guavate.toImmutableMap(Pair::getKey, Pair::getValue)));
+        }
+
+        public static MailProjection from(ManageableMailQueue.MailQueueItemView item) {
+            return from(item.getMail());
+        }
 
-    private static class FakeMailQueue implements MailQueue {
-        private final List<Mail> enqueuedMail;
         private final String name;
+        private final List<MailAddress> recipients;
+        private final Map<String, Serializable> attributes;
 
-        private FakeMailQueue(String name) {
+        public MailProjection(String name, Collection<MailAddress> recipients, Map<String, Serializable> attributes) {
             this.name = name;
-            this.enqueuedMail = Lists.newArrayList();
+            this.recipients = ImmutableList.copyOf(recipients);
+            this.attributes = ImmutableMap.copyOf(attributes);
         }
 
         @Override
-        public String getName() {
-            return name;
-        }
+        public final boolean equals(Object o) {
+            if (o instanceof MailProjection) {
+                MailProjection mailProjection = (MailProjection) o;
 
-        @Override
-        public void enQueue(Mail mail, long delay, TimeUnit unit) throws MailQueueException {
-            enQueue(mail);
-        }
-
-        @Override
-        public void enQueue(Mail mail) throws MailQueueException {
-            try {
-                enqueuedMail.add(FakeMail.fromMail(mail));
-            } catch (MessagingException e) {
-                throw Throwables.propagate(e);
+                return Objects.equals(this.name, mailProjection.name)
+                    && Objects.equals(this.attributes, mailProjection.attributes)
+                    && Objects.equals(this.recipients, mailProjection.recipients);
             }
+            return false;
         }
 
         @Override
-        public MailQueueItem deQueue() throws MailQueueException, InterruptedException {
-            throw new NotImplementedException();
-        }
-
-        public List<Mail> getEnqueuedMail() {
-            return ImmutableList.copyOf(enqueuedMail);
+        public final int hashCode() {
+            return Objects.hash(name, attributes, recipients);
         }
     }
 
+    public static final String MAIL_NAME = "mail_name";
+
     private RemoteDelivery remoteDelivery;
-    private FakeMailQueue mailQueue;
+    private ManageableMailQueue mailQueue;
 
     @Before
     @SuppressWarnings("unchecked")
     public void setUp() {
-        MailQueueFactory<FakeMailQueue> queueFactory = mock(MailQueueFactory.class);
-        mailQueue = new FakeMailQueue("any");
-        when(queueFactory.createQueue(RemoteDeliveryConfiguration.OUTGOING)).thenReturn(mailQueue);
-        remoteDelivery = new RemoteDelivery(mock(DNSService.class), mock(DomainList.class), queueFactory, mock(MetricFactory.class), RemoteDelivery.ThreadState.DO_NOT_START_THREADS);
+        MailQueueFactory<ManageableMailQueue> queueFactory = new MemoryMailQueueFactory(new RawMailQueueItemDecoratorFactory());
+        mailQueue = queueFactory.createQueue(RemoteDeliveryConfiguration.OUTGOING);
+        remoteDelivery = new RemoteDelivery(mock(DNSService.class), mock(DomainList.class),
+            queueFactory, new NoopMetricFactory(), RemoteDelivery.ThreadState.DO_NOT_START_THREADS);
     }
 
     @Test
@@ -110,10 +116,14 @@ public class RemoteDeliveryTest {
         Mail mail = FakeMail.builder().name(MAIL_NAME).recipients(MailAddressFixture.ANY_AT_JAMES).build();
         remoteDelivery.service(mail);
 
-        assertThat(mailQueue.getEnqueuedMail()).containsOnly(FakeMail.builder()
-            .name(MAIL_NAME + RemoteDelivery.NAME_JUNCTION + MailAddressFixture.JAMES_APACHE_ORG)
-            .recipient(MailAddressFixture.ANY_AT_JAMES)
-            .build());
+
+        assertThat(mailQueue.browse())
+            .extracting(MailProjection::from)
+            .containsOnly(MailProjection.from(
+                FakeMail.builder()
+                    .name(MAIL_NAME + RemoteDelivery.NAME_JUNCTION + MailAddressFixture.JAMES_APACHE_ORG)
+                    .recipient(MailAddressFixture.ANY_AT_JAMES)
+                    .build()));
     }
 
     @Test
@@ -128,15 +138,18 @@ public class RemoteDeliveryTest {
             .build();
         remoteDelivery.service(mail);
 
-        assertThat(mailQueue.getEnqueuedMail()).containsOnly(
-            FakeMail.builder()
-                .name(MAIL_NAME + RemoteDelivery.NAME_JUNCTION + MailAddressFixture.JAMES_APACHE_ORG)
-                .recipients(MailAddressFixture.ANY_AT_JAMES, MailAddressFixture.OTHER_AT_JAMES)
-                .build(),
-            FakeMail.builder()
-                .name(MAIL_NAME + RemoteDelivery.NAME_JUNCTION + MailAddressFixture.JAMES2_APACHE_ORG)
-                .recipients(MailAddressFixture.ANY_AT_JAMES2)
-                .build());
+
+        assertThat(mailQueue.browse())
+            .extracting(MailProjection::from)
+            .containsOnly(
+                MailProjection.from(FakeMail.builder()
+                    .name(MAIL_NAME + RemoteDelivery.NAME_JUNCTION + MailAddressFixture.JAMES_APACHE_ORG)
+                    .recipients(MailAddressFixture.ANY_AT_JAMES, MailAddressFixture.OTHER_AT_JAMES)
+                    .build()),
+                MailProjection.from(FakeMail.builder()
+                    .name(MAIL_NAME + RemoteDelivery.NAME_JUNCTION + MailAddressFixture.JAMES2_APACHE_ORG)
+                    .recipients(MailAddressFixture.ANY_AT_JAMES2)
+                    .build()));
     }
 
     @Test
@@ -152,11 +165,14 @@ public class RemoteDeliveryTest {
             .build();
         remoteDelivery.service(mail);
 
-        assertThat(mailQueue.getEnqueuedMail()).containsOnly(
-            FakeMail.builder()
-                .name(MAIL_NAME)
-                .recipients(MailAddressFixture.ANY_AT_JAMES, MailAddressFixture.ANY_AT_JAMES2, MailAddressFixture.OTHER_AT_JAMES)
-                .build());
+
+        assertThat(mailQueue.browse())
+            .extracting(MailProjection::from)
+            .containsOnly(
+                MailProjection.from(FakeMail.builder()
+                    .name(MAIL_NAME)
+                    .recipients(MailAddressFixture.ANY_AT_JAMES, MailAddressFixture.ANY_AT_JAMES2, MailAddressFixture.OTHER_AT_JAMES)
+                    .build()));
     }
 
     @Test
@@ -181,11 +197,14 @@ public class RemoteDeliveryTest {
         Mail mail = FakeMail.builder().name(MAIL_NAME).recipients(MailAddressFixture.ANY_AT_JAMES).build();
         remoteDelivery.service(mail);
 
-        assertThat(mailQueue.getEnqueuedMail()).containsOnly(FakeMail.builder()
-            .name(MAIL_NAME + RemoteDelivery.NAME_JUNCTION + MailAddressFixture.JAMES_APACHE_ORG)
-            .attribute(MailPrioritySupport.MAIL_PRIORITY, MailPrioritySupport.HIGH_PRIORITY)
-            .recipient(MailAddressFixture.ANY_AT_JAMES)
-            .build());
+
+        assertThat(mailQueue.browse())
+            .extracting(MailProjection::from)
+            .containsOnly(MailProjection.from(FakeMail.builder()
+                .name(MAIL_NAME + RemoteDelivery.NAME_JUNCTION + MailAddressFixture.JAMES_APACHE_ORG)
+                .attribute(MailPrioritySupport.MAIL_PRIORITY, MailPrioritySupport.HIGH_PRIORITY)
+                .recipient(MailAddressFixture.ANY_AT_JAMES)
+                .build()));
     }
 
     @Test
@@ -197,7 +216,7 @@ public class RemoteDeliveryTest {
         Mail mail = FakeMail.builder().name(MAIL_NAME).build();
         remoteDelivery.service(mail);
 
-        assertThat(mailQueue.getEnqueuedMail()).isEmpty();
+        assertThat(mailQueue.browse()).isEmpty();
     }
 
     @Test
@@ -210,6 +229,6 @@ public class RemoteDeliveryTest {
         Mail mail = FakeMail.builder().name(MAIL_NAME).build();
         remoteDelivery.service(mail);
 
-        assertThat(mailQueue.getEnqueuedMail()).isEmpty();
+        assertThat(mailQueue.browse()).isEmpty();
     }
 }


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


[14/16] james-project git commit: JAMES-2323 Deprecate JCR in advertised features

Posted by bt...@apache.org.
JAMES-2323 Deprecate JCR in advertised features


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/27fd46dc
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/27fd46dc
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/27fd46dc

Branch: refs/heads/master
Commit: 27fd46dc45a969a8e0f8c227aeff6410b2354471
Parents: 80e2328
Author: benwa <bt...@linagora.com>
Authored: Mon Jan 29 16:40:51 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jan 30 15:11:15 2018 +0700

----------------------------------------------------------------------
 src/site/xdoc/server/features.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/27fd46dc/src/site/xdoc/server/features.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/server/features.xml b/src/site/xdoc/server/features.xml
index aaa6b91..e9ed479 100644
--- a/src/site/xdoc/server/features.xml
+++ b/src/site/xdoc/server/features.xml
@@ -213,7 +213,7 @@
                 </tr>
                 <tr>
                     <td>JCR (Jackrabbit) Database Mail Store</td>
-                    <td>Experimental</td>
+                    <td>deprecated</td>
                     <td>yes</td>
                     <td>no</td>
                     <td></td>


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


[02/16] james-project git commit: JAMES-2285 Further rely on memory implementation in SmtpServer test

Posted by bt...@apache.org.
JAMES-2285 Further rely on memory implementation in SmtpServer test


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/27dc7739
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/27dc7739
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/27dc7739

Branch: refs/heads/master
Commit: 27dc7739e6585f939f1dc2f822a40ad6c083a82f
Parents: 48f089f
Author: benwa <bt...@linagora.com>
Authored: Sat Jan 20 09:03:55 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jan 30 15:09:29 2018 +0700

----------------------------------------------------------------------
 server/protocols/protocols-smtp/pom.xml         |   4 +
 .../apache/james/smtpserver/SMTPServerTest.java | 103 ++-----------------
 .../james/smtpserver/ValidRcptHandlerTest.java  |  14 ++-
 3 files changed, 19 insertions(+), 102 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/27dc7739/server/protocols/protocols-smtp/pom.xml
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/pom.xml b/server/protocols/protocols-smtp/pom.xml
index 13267c2..8f4eda1 100644
--- a/server/protocols/protocols-smtp/pom.xml
+++ b/server/protocols/protocols-smtp/pom.xml
@@ -75,6 +75,10 @@
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
+            <artifactId>james-server-data-memory</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
             <artifactId>james-server-dnsservice-api</artifactId>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/27dc7739/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
index 1f2382c..107c425 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
@@ -35,9 +35,7 @@ import java.net.Socket;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 
 import javax.mail.internet.MimeMessage;
 
@@ -48,7 +46,7 @@ import org.apache.commons.net.smtp.SMTPReply;
 import org.apache.james.core.MailAddress;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.domainlist.api.DomainList;
-import org.apache.james.domainlist.api.mock.SimpleDomainList;
+import org.apache.james.domainlist.memory.MemoryDomainList;
 import org.apache.james.filesystem.api.FileSystem;
 import org.apache.james.filesystem.api.mock.MockFileSystem;
 import org.apache.james.mailrepository.api.MailRepositoryStore;
@@ -61,13 +59,11 @@ import org.apache.james.queue.api.MailQueueFactory;
 import org.apache.james.queue.api.RawMailQueueItemDecoratorFactory;
 import org.apache.james.queue.memory.MemoryMailQueueFactory;
 import org.apache.james.rrt.api.RecipientRewriteTable;
-import org.apache.james.rrt.api.RecipientRewriteTableException;
-import org.apache.james.rrt.lib.Mappings;
+import org.apache.james.rrt.memory.MemoryRecipientRewriteTable;
 import org.apache.james.smtpserver.netty.SMTPServer;
 import org.apache.james.smtpserver.netty.SmtpMetricsImpl;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.lib.mock.InMemoryUsersRepository;
-import org.apache.mailet.HostAddress;
 import org.apache.mailet.Mail;
 import org.junit.After;
 import org.junit.Before;
@@ -97,10 +93,6 @@ public class SMTPServerTest {
             return res;
         }
 
-        public Iterator<HostAddress> getSMTPHostAddresses(String domainName) {
-            throw new UnsupportedOperationException("Unimplemented mock service");
-        }
-
         @Override
         public Collection<InetAddress> getAllByName(String host) throws UnknownHostException {
             return ImmutableList.of(getByName(host));
@@ -216,7 +208,7 @@ public class SMTPServerTest {
         smtpServer.init();
     }
 
-    protected void setUpFakeLoader() throws IOException {
+    protected void setUpFakeLoader() throws Exception {
 
         chain = new MockProtocolHandlerLoader();
     
@@ -230,93 +222,16 @@ public class SMTPServerTest {
         fileSystem = new MockFileSystem();
     
         chain.put("fileSystem", FileSystem.class, fileSystem);
-    
-        chain.put("recipientrewritetable", RecipientRewriteTable.class, new RecipientRewriteTable() {
-    
-            @Override
-            public void addRegexMapping(String user, String domain, String regex) throws RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-            }
-    
-            @Override
-            public void removeRegexMapping(String user, String domain, String regex) throws
-                    RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-            }
-    
-            @Override
-            public void addAddressMapping(String user, String domain, String address) throws
-                    RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-            }
-    
-            @Override
-            public void removeAddressMapping(String user, String domain, String address) throws
-                    RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-            }
-    
-            @Override
-            public void addErrorMapping(String user, String domain, String error) throws RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-            }
-    
-            @Override
-            public void removeErrorMapping(String user, String domain, String error) throws
-                    RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-            }
-    
-            @Override
-            public Mappings getUserDomainMappings(String user, String domain) throws
-                    RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-            }
-    
-            @Override
-            public void addMapping(String user, String domain, String mapping) throws RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-            }
-    
-            @Override
-            public void removeMapping(String user, String domain, String mapping) throws RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-            }
-    
-            @Override
-            public Map<String, Mappings> getAllMappings() throws RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-            }
-    
-            @Override
-            public void addAliasDomainMapping(String aliasDomain, String realDomain) throws
-                    RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-            }
-    
-            @Override
-            public void removeAliasDomainMapping(String aliasDomain, String realDomain) throws
-                    RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-            }
-    
-            @Override
-            public Mappings getMappings(String user, String domain) throws ErrorMappingException,
-                    RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-            }
-        });
+
+        MemoryRecipientRewriteTable rewriteTable = new MemoryRecipientRewriteTable();
+        chain.put("recipientrewritetable", RecipientRewriteTable.class, rewriteTable);
     
         queueFactory = new MemoryMailQueueFactory(new RawMailQueueItemDecoratorFactory());
         queue = queueFactory.createQueue(MailQueueFactory.SPOOL);
         chain.put("mailqueuefactory", MailQueueFactory.class, queueFactory);
-        chain.put("domainlist", DomainList.class, new SimpleDomainList() {
-    
-            @Override
-            public boolean containsDomain(String serverName) {
-                return "localhost".equals(serverName);
-            }
-        });
+        MemoryDomainList domainList = new MemoryDomainList(mock(DNSService.class));
+        domainList.addDomain("localhost");
+        chain.put("domainlist", DomainList.class, domainList);
         
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/27dc7739/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
index be88337..50c04a2 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
@@ -20,13 +20,15 @@ package org.apache.james.smtpserver;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
+import static org.mockito.Mockito.mock;
 
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.james.core.MailAddress;
-import org.apache.james.domainlist.api.mock.SimpleDomainList;
+import org.apache.james.dnsservice.api.DNSService;
+import org.apache.james.domainlist.memory.MemoryDomainList;
 import org.apache.james.protocols.api.ProtocolSession.State;
 import org.apache.james.protocols.smtp.SMTPConfiguration;
 import org.apache.james.protocols.smtp.SMTPSession;
@@ -62,13 +64,9 @@ public class ValidRcptHandlerTest {
         handler.setUsersRepository(users);
         handler.setRecipientRewriteTable(setUpRecipientRewriteTable());
 
-        handler.setDomainList(new SimpleDomainList() {
-
-            @Override
-            public boolean containsDomain(String domain) {
-                return domain.equals(VALID_DOMAIN);
-            }
-        });
+        MemoryDomainList memoryDomainList = new MemoryDomainList(mock(DNSService.class));
+        memoryDomainList.addDomain(VALID_DOMAIN);
+        handler.setDomainList(memoryDomainList);
     }
 
     private SMTPSession setupMockedSMTPSession(SMTPConfiguration conf, MailAddress rcpt,


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


[07/16] james-project git commit: JAMES-2285 Get ride of an DNS test implementation

Posted by bt...@apache.org.
JAMES-2285 Get ride of an DNS test implementation


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/4642814f
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/4642814f
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/4642814f

Branch: refs/heads/master
Commit: 4642814f11605085467939cda4699999a38d08a2
Parents: 583f348
Author: benwa <bt...@linagora.com>
Authored: Sat Jan 20 17:32:39 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jan 30 15:09:47 2018 +0700

----------------------------------------------------------------------
 .../dnsservice/api/InMemoryDNSService.java      |  3 +-
 .../james/smtpserver/ValidRcptMXTest.java       | 47 ++++----------------
 2 files changed, 11 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/4642814f/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
----------------------------------------------------------------------
diff --git a/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java b/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
index 5c1a0f4..11b0e4b 100644
--- a/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
+++ b/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
@@ -51,9 +51,10 @@ public class InMemoryDNSService implements DNSService {
         return new DNSRecord(addresses, mxRecords, txtRecords);
     }
 
-    public void registerRecord(String hostname, InetAddress address, String mxRecord) {
+    public InMemoryDNSService registerRecord(String hostname, InetAddress address, String mxRecord) {
         Collection<String> emptyTxtRecords = ImmutableList.of();
         registerRecord(hostname, ImmutableList.of(address), ImmutableList.of(mxRecord), emptyTxtRecords);
+        return this;
     }
 
     public InMemoryDNSService registerMxRecord(String hostname, String ip) throws UnknownHostException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/4642814f/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java
index c7b9d33..3d4eea9 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java
@@ -20,26 +20,21 @@ package org.apache.james.smtpserver;
 
 import static org.junit.Assert.assertEquals;
 
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.Collection;
 import java.util.HashMap;
 
 import org.apache.james.core.MailAddress;
 import org.apache.james.dnsservice.api.DNSService;
-import org.apache.james.dnsservice.api.mock.MockDNSService;
+import org.apache.james.dnsservice.api.InMemoryDNSService;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.utils.BaseFakeSMTPSession;
 import org.apache.james.smtpserver.fastfail.ValidRcptMX;
 import org.junit.Test;
+import org.testcontainers.shaded.com.google.common.collect.ImmutableList;
 
 public class ValidRcptMXTest {
 
     private static final String INVALID_HOST = "invalid.host.de";
-    private static final String INVALID_MX = "mx." + INVALID_HOST;
-    private static final String LOOPBACK = "127.0.0.1";
 
     private SMTPSession setupMockedSMTPSession(MailAddress rcpt) {
         return new BaseFakeSMTPSession() {
@@ -73,44 +68,20 @@ public class ValidRcptMXTest {
         };
     }
 
-    private DNSService setupMockedDNSServer() {
-
-        return new MockDNSService() {
-
-            @Override
-            public Collection<String> findMXRecords(String hostname) {
-                Collection<String> mx = new ArrayList<>();
-
-                if (hostname.equals(INVALID_HOST)) {
-                    mx.add(INVALID_MX);
-                }
-                return mx;
-            }
-
-            @Override
-            public InetAddress getByName(String host) throws UnknownHostException {
-                if (host.equals(INVALID_MX) || host.equals(LOOPBACK)) {
-                    return InetAddress.getByName(LOOPBACK);
-                } else if (host.equals("255.255.255.255")) {
-                    return InetAddress.getByName("255.255.255.255");
-                }
-                throw new UnknownHostException("Unknown host");
-            }
-        };
-    }
-
     @Test
     public void testRejectLoopbackMX() throws Exception {
-        Collection<String> bNetworks = new ArrayList<>();
-        bNetworks.add("127.0.0.1");
+        String bannedAddress = "172.53.64.2";
 
-        DNSService dns = setupMockedDNSServer();
+        DNSService dns = new InMemoryDNSService()
+            .registerMxRecord(INVALID_HOST, bannedAddress)
+            .registerMxRecord("255.255.255.255", "255.255.255.255")
+            .registerMxRecord(bannedAddress, bannedAddress);
         MailAddress mailAddress = new MailAddress("test@" + INVALID_HOST);
         SMTPSession session = setupMockedSMTPSession(mailAddress);
-        ValidRcptMX handler = new ValidRcptMX();
 
+        ValidRcptMX handler = new ValidRcptMX();
         handler.setDNSService(dns);
-        handler.setBannedNetworks(bNetworks, dns);
+        handler.setBannedNetworks(ImmutableList.of(bannedAddress ), dns);
         int rCode = handler.doRcpt(session, null, mailAddress).getResult();
 
         assertEquals("Reject", rCode, HookReturnCode.DENY);


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


[12/16] james-project git commit: JAMES-2285 Get ride of an DNS test implementation

Posted by bt...@apache.org.
JAMES-2285 Get ride of an DNS test implementation


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/526a9191
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/526a9191
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/526a9191

Branch: refs/heads/master
Commit: 526a9191f543812a03a1d3f15524625e2a1b5029
Parents: e18bc7a
Author: benwa <bt...@linagora.com>
Authored: Sat Jan 20 18:08:48 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jan 30 15:10:26 2018 +0700

----------------------------------------------------------------------
 .../matchers/RemoteAddrNotInNetworkTest.java      | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/526a9191/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/RemoteAddrNotInNetworkTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/RemoteAddrNotInNetworkTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/RemoteAddrNotInNetworkTest.java
index 3adf2c4..3f60b53 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/RemoteAddrNotInNetworkTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/RemoteAddrNotInNetworkTest.java
@@ -20,14 +20,13 @@ package org.apache.james.transport.matchers;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.net.InetAddress;
-import java.net.UnknownHostException;
 import java.util.Collection;
 
 import javax.mail.MessagingException;
 
 import org.apache.james.core.MailAddress;
-import org.apache.james.dnsservice.api.mock.MockDNSService;
+import org.apache.james.dnsservice.api.DNSService;
+import org.apache.james.dnsservice.api.InMemoryDNSService;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMatcherConfig;
 import org.junit.Before;
@@ -40,13 +39,12 @@ public class RemoteAddrNotInNetworkTest {
     private FakeMatcherConfig matcherConfig;
 
     @Before
-    public void setup() throws MessagingException {
-        MockDNSService dnsServer = new MockDNSService() {
-            @Override
-            public InetAddress getByName(String host) throws UnknownHostException {
-                return InetAddress.getByName(host);
-            }
-        };
+    public void setup() throws Exception {
+        DNSService dnsServer = new InMemoryDNSService()
+            .registerMxRecord("192.168.0.1", "192.168.0.1")
+            .registerMxRecord("192.168.200.1", "192.168.200.1")
+            .registerMxRecord("192.168.200.0", "192.168.200.0")
+            .registerMxRecord("255.255.255.0", "255.255.255.0");
         matcherConfig = FakeMatcherConfig.builder()
                 .matcherName("AllowedNetworkIs")
                 .condition("192.168.200.0/24")


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


[16/16] james-project git commit: JAMES-2323 Deprecate MboxMailRepository

Posted by bt...@apache.org.
JAMES-2323 Deprecate MboxMailRepository


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/1d6f4b7c
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/1d6f4b7c
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/1d6f4b7c

Branch: refs/heads/master
Commit: 1d6f4b7c47fba73c74c3e85e1e6893a7a47d0c58
Parents: b9a820f
Author: benwa <bt...@linagora.com>
Authored: Mon Jan 29 16:34:38 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jan 30 15:11:15 2018 +0700

----------------------------------------------------------------------
 server/app/src/main/resources/mailrepositorystore.xml       | 9 ---------
 .../data-api/src/main/resources/mailrepositorystore.xml     | 6 ------
 .../james/mailrepository/file/MBoxMailRepository.java       | 8 +++++++-
 .../apache/james/mailrepository/MBoxMailRepositoryTest.java | 7 +++++++
 src/site/xdoc/server/config-mailrepositorystore.xml         | 3 +++
 5 files changed, 17 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/1d6f4b7c/server/app/src/main/resources/mailrepositorystore.xml
----------------------------------------------------------------------
diff --git a/server/app/src/main/resources/mailrepositorystore.xml b/server/app/src/main/resources/mailrepositorystore.xml
index 291fa24..5ddddc8 100644
--- a/server/app/src/main/resources/mailrepositorystore.xml
+++ b/server/app/src/main/resources/mailrepositorystore.xml
@@ -67,15 +67,6 @@
                <filestore>file://var/dbmail</filestore>
            </config>
        </mailrepository>
- 
-       <!-- The mbox repository is designed for MAIL only; SPOOL performance would be less than ideal-->
-       <mailrepository class="org.apache.james.mailrepository.file.MBoxMailRepository">
-           <protocols>
-               <protocol>mbox</protocol>
-           </protocols>
-           <!-- Set if the messages should be listed sorted. False by default -->
-           <config FIFO="false"/>
-       </mailrepository>
         
        <!-- If you enable this you need to make sure that embedded Jackrabbit instance is started as well. Check the container configuration --> 
        <!--

http://git-wip-us.apache.org/repos/asf/james-project/blob/1d6f4b7c/server/data/data-api/src/main/resources/mailrepositorystore.xml
----------------------------------------------------------------------
diff --git a/server/data/data-api/src/main/resources/mailrepositorystore.xml b/server/data/data-api/src/main/resources/mailrepositorystore.xml
index 971b70f..e20739f 100644
--- a/server/data/data-api/src/main/resources/mailrepositorystore.xml
+++ b/server/data/data-api/src/main/resources/mailrepositorystore.xml
@@ -46,11 +46,5 @@
               <filestore>file://var/dbmail</filestore>
           </config>
       </mailrepository>
-      <mailrepository class="org.apache.james.mailrepository.file.MBoxMailRepository">
-          <protocols>
-              <protocol>mbox</protocol>
-          </protocols>
-          <config FIFO="false"/> 
-      </mailrepository>
   </mailrepositories>
 </mailrepositorystore>

http://git-wip-us.apache.org/repos/asf/james-project/blob/1d6f4b7c/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/MBoxMailRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/MBoxMailRepository.java b/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/MBoxMailRepository.java
index fa9ba5d..00f05e2 100755
--- a/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/MBoxMailRepository.java
+++ b/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/MBoxMailRepository.java
@@ -114,8 +114,14 @@ import com.google.common.hash.Hashing;
  * slower (read from disk and parse). Therefore this implementation is best
  * suited to people who wish to use the mbox format for taking data out of James
  * and into something else (IMAP server or mail list displayer)
+ *
+ * @Depracted: See JAMES-2323
+ *
+ * Will be removed in James 3.2.0 upcoming release.
+ *
+ * Use a modern, maintained MailRepository instead. For instead FileMailRepository.
  */
-
+@Deprecated
 public class MBoxMailRepository implements MailRepository, Configurable {
     private static final Logger LOGGER = LoggerFactory.getLogger(MBoxMailRepository.class);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/1d6f4b7c/server/data/data-file/src/test/java/org/apache/james/mailrepository/MBoxMailRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/test/java/org/apache/james/mailrepository/MBoxMailRepositoryTest.java b/server/data/data-file/src/test/java/org/apache/james/mailrepository/MBoxMailRepositoryTest.java
index 3cbb431..b874cd9 100644
--- a/server/data/data-file/src/test/java/org/apache/james/mailrepository/MBoxMailRepositoryTest.java
+++ b/server/data/data-file/src/test/java/org/apache/james/mailrepository/MBoxMailRepositoryTest.java
@@ -36,7 +36,14 @@ import org.junit.Test;
  * 
  * NOTE this previously extended AbstractMailRepositoryTest to run all of the
  * common mail repository tests on the MBox implementation.
+ *
+ * @Depracted: See JAMES-2323
+ *
+ * Will be removed in James 3.2.0 upcoming release.
+ *
+ * Use a modern, maintained MailRepository instead. For instead FileMailRepository.
  */
+@Deprecated
 public class MBoxMailRepositoryTest {
 
     protected MailRepository getMailRepository() throws Exception {

http://git-wip-us.apache.org/repos/asf/james-project/blob/1d6f4b7c/src/site/xdoc/server/config-mailrepositorystore.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/server/config-mailrepositorystore.xml b/src/site/xdoc/server/config-mailrepositorystore.xml
index 62e24b5..3d0b9f8 100644
--- a/src/site/xdoc/server/config-mailrepositorystore.xml
+++ b/src/site/xdoc/server/config-mailrepositorystore.xml
@@ -88,6 +88,9 @@
     </subsection>
     
     <subsection name="MBox Repositories">
+
+     <p>Warning: deprecated. This feature will be removed as part of James release 3.2.0 unless it is maintained.
+         See https://issues.apache.org/jira/browse/JAMES-2323. Use File Repositories instead.</p>
     
      <p>The MBox file format repository.</p>
 


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


[05/16] james-project git commit: JAMES-2285 Get ride of an RRT test implementation

Posted by bt...@apache.org.
JAMES-2285 Get ride of an RRT test implementation


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/583f348b
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/583f348b
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/583f348b

Branch: refs/heads/master
Commit: 583f348b8f5c257f270187eaefe1c64bacc7c4d5
Parents: 2d88a92
Author: benwa <bt...@linagora.com>
Authored: Sat Jan 20 09:35:46 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jan 30 15:09:46 2018 +0700

----------------------------------------------------------------------
 .../memory/UsersRepositoryManagementTest.java   |  50 ++++----
 .../james/smtpserver/ValidRcptHandlerTest.java  | 116 +++----------------
 2 files changed, 40 insertions(+), 126 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/583f348b/server/data/data-memory/src/test/java/org/apache/james/user/memory/UsersRepositoryManagementTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-memory/src/test/java/org/apache/james/user/memory/UsersRepositoryManagementTest.java b/server/data/data-memory/src/test/java/org/apache/james/user/memory/UsersRepositoryManagementTest.java
index 6e5aa55..adb7c26 100644
--- a/server/data/data-memory/src/test/java/org/apache/james/user/memory/UsersRepositoryManagementTest.java
+++ b/server/data/data-memory/src/test/java/org/apache/james/user/memory/UsersRepositoryManagementTest.java
@@ -31,59 +31,55 @@ import org.apache.james.user.lib.UsersRepositoryManagement;
 import org.junit.Before;
 import org.junit.Test;
 
-/**
- * Tests the UserManagement
- */
 public class UsersRepositoryManagementTest {
 
-    private UsersRepository mockUsersRepository;
+    private UsersRepository usersRepository;
     private UsersRepositoryManagement userManagement;
 
     @Before
     public void setUp() throws Exception {
-        mockUsersRepository = MemoryUsersRepository.withoutVirtualHosting();
+        usersRepository = MemoryUsersRepository.withoutVirtualHosting();
 
         userManagement = new UsersRepositoryManagement();
-        userManagement.setUsersRepository(mockUsersRepository);
+        userManagement.setUsersRepository(usersRepository);
     }
 
     @Test
     public void testUserCount() throws Exception {
         assertEquals("no user yet", 0, userManagement.countUsers());
-        mockUsersRepository.addUser("testCount1", "testCount");
+        usersRepository.addUser("testcount1", "testCount");
         assertEquals("1 user", 1, userManagement.countUsers());
-        mockUsersRepository.addUser("testCount2", "testCount");
+        usersRepository.addUser("testcount2", "testCount");
         assertEquals("2 users", 2, userManagement.countUsers());
-        mockUsersRepository.removeUser("testCount1");
+        usersRepository.removeUser("testcount1");
         assertEquals("1 user", 1, userManagement.countUsers());
     }
 
     @Test
     public void testAddUserAndVerify() throws Exception {
-        mockUsersRepository.addUser("testCount1", "testCount");
+        usersRepository.addUser("testcount1", "testCount");
         assertFalse("user not there", userManagement.verifyExists("testNotAdded"));
         assertTrue("user is there", userManagement.verifyExists("testCount1"));
-        mockUsersRepository.removeUser("testCount1");
+        usersRepository.removeUser("testcount1");
         assertFalse("user not there", userManagement.verifyExists("testCount1"));
     }
 
     @Test
     public void testDelUser() throws Exception {
-        mockUsersRepository.addUser("testDel", "test");
+        usersRepository.addUser("testdel", "test");
         assertFalse("user not there", userManagement.verifyExists("testNotDeletable"));
-        assertTrue("user is there", userManagement.verifyExists("testDel"));
-        mockUsersRepository.removeUser("testDel");
-        assertFalse("user no longer there", userManagement.verifyExists("testDel"));
+        assertTrue("user is there", userManagement.verifyExists("testdel"));
+        usersRepository.removeUser("testdel");
+        assertFalse("user no longer there", userManagement.verifyExists("testdel"));
     }
 
     @Test
     public void testListUsers() throws Exception {
-
         String[] usersArray = new String[]{"ccc", "aaa", "dddd", "bbbbb"};
         List<String> users = Arrays.asList(usersArray);
 
         for (String user : users) {
-            mockUsersRepository.addUser(user, "test");
+            usersRepository.addUser(user, "test");
         }
 
         String[] userNames = userManagement.listAllUsers();
@@ -98,23 +94,21 @@ public class UsersRepositoryManagementTest {
 
     @Test
     public void testSetPassword() throws Exception {
+        userManagement.addUser("testpwduser", "pwd1");
 
-        userManagement.addUser("testPwdUser", "pwd1");
-
-        assertTrue("initial password", mockUsersRepository.test("testPwdUser", "pwd1"));
+        assertTrue("initial password", usersRepository.test("testpwduser", "pwd1"));
 
         // set empty pwd
-        userManagement.setPassword("testPwdUser", "");
-        assertTrue("password changed to empty", mockUsersRepository.test("testPwdUser", ""));
+        userManagement.setPassword("testpwduser", "");
+        assertTrue("password changed to empty", usersRepository.test("testpwduser", ""));
 
         // change pwd
-        userManagement.setPassword("testPwdUser", "pwd2");
-        assertTrue("password not changed to pwd2", mockUsersRepository.test("testPwdUser", "pwd2"));
+        userManagement.setPassword("testpwduser", "pwd2");
+        assertTrue("password not changed to pwd2", usersRepository.test("testpwduser", "pwd2"));
 
         // assure case sensitivity
-        userManagement.setPassword("testPwdUser", "pWD2");
-        assertFalse("password no longer pwd2", mockUsersRepository.test("testPwdUser", "pwd2"));
-        assertTrue("password changed to pWD2", mockUsersRepository.test("testPwdUser", "pWD2"));
-
+        userManagement.setPassword("testpwduser", "pWD2");
+        assertFalse("password no longer pwd2", usersRepository.test("testpwduser", "pwd2"));
+        assertTrue("password changed to pWD2", usersRepository.test("testpwduser", "pWD2"));
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/583f348b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
index 123a93b..85fb7ab 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
@@ -22,12 +22,13 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.mockito.Mockito.mock;
 
-import java.util.Arrays;
+import java.io.ByteArrayInputStream;
 import java.util.HashMap;
-import java.util.Map;
 
+import org.apache.commons.configuration.DefaultConfigurationBuilder;
 import org.apache.james.core.MailAddress;
 import org.apache.james.dnsservice.api.DNSService;
+import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.domainlist.memory.MemoryDomainList;
 import org.apache.james.protocols.api.ProtocolSession.State;
 import org.apache.james.protocols.smtp.SMTPConfiguration;
@@ -36,8 +37,7 @@ import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.utils.BaseFakeSMTPSession;
 import org.apache.james.rrt.api.RecipientRewriteTable;
 import org.apache.james.rrt.api.RecipientRewriteTableException;
-import org.apache.james.rrt.lib.Mappings;
-import org.apache.james.rrt.lib.MappingsImpl;
+import org.apache.james.rrt.memory.MemoryRecipientRewriteTable;
 import org.apache.james.smtpserver.fastfail.ValidRcptHandler;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.memory.MemoryUsersRepository;
@@ -59,13 +59,17 @@ public class ValidRcptHandlerTest {
 
         users = MemoryUsersRepository.withoutVirtualHosting();
         users.addUser(VALID_USER, "xxx");
-        
-        handler = new ValidRcptHandler();
-        handler.setUsersRepository(users);
-        handler.setRecipientRewriteTable(setUpRecipientRewriteTable());
 
         MemoryDomainList memoryDomainList = new MemoryDomainList(mock(DNSService.class));
         memoryDomainList.addDomain(VALID_DOMAIN);
+        DefaultConfigurationBuilder config = new DefaultConfigurationBuilder();
+        String configString = "<domainlist><defaultDomain>localhost</defaultDomain></domainlist>";
+        config.load(new ByteArrayInputStream(configString.getBytes()));
+        memoryDomainList.configure(config);
+
+        handler = new ValidRcptHandler();
+        handler.setUsersRepository(users);
+        handler.setRecipientRewriteTable(setUpRecipientRewriteTable(memoryDomainList));
         handler.setDomainList(memoryDomainList);
     }
 
@@ -108,96 +112,12 @@ public class ValidRcptHandlerTest {
         };
     }
 
-    private RecipientRewriteTable setUpRecipientRewriteTable() {
-        return new RecipientRewriteTable() {
-
-            @Override
-            public Mappings getMappings(String user, String domain) throws ErrorMappingException,
-                    RecipientRewriteTableException {
-                if (user.equals(USER1)) {
-                    return MappingsImpl.fromCollection(Arrays.asList("address@localhost"));
-                } else if (user.equals(USER2)) {
-                    throw new ErrorMappingException("554 BOUNCE");
-                }
-                return MappingsImpl.empty();
-            }
-
-            @Override
-            public void addRegexMapping(String user, String domain, String regex) throws RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-            }
-
-            @Override
-            public void removeRegexMapping(String user, String domain, String regex) throws
-                    RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-
-            }
-
-            @Override
-            public void addAddressMapping(String user, String domain, String address) throws
-                    RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-
-            }
-
-            @Override
-            public void removeAddressMapping(String user, String domain, String address) throws
-                    RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-
-            }
-
-            @Override
-            public void addErrorMapping(String user, String domain, String error) throws RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-
-            }
-
-            @Override
-            public void removeErrorMapping(String user, String domain, String error) throws
-                    RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-
-            }
-
-            @Override
-            public Mappings getUserDomainMappings(String user, String domain) throws
-                    RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-            }
-
-            @Override
-            public void addMapping(String user, String domain, String mapping) throws RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-
-            }
-
-            @Override
-            public void removeMapping(String user, String domain, String mapping) throws RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-
-            }
-
-            @Override
-            public Map<String, Mappings> getAllMappings() throws RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-            }
-
-            @Override
-            public void addAliasDomainMapping(String aliasDomain, String realDomain) throws
-                    RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-
-            }
-
-            @Override
-            public void removeAliasDomainMapping(String aliasDomain, String realDomain) throws
-                    RecipientRewriteTableException {
-                throw new UnsupportedOperationException("Not implemented");
-
-            }
-        };
+    private RecipientRewriteTable setUpRecipientRewriteTable(DomainList domainList) throws RecipientRewriteTableException {
+        MemoryRecipientRewriteTable memoryRecipientRewriteTable = new MemoryRecipientRewriteTable();
+        memoryRecipientRewriteTable.setDomainList(domainList);
+        memoryRecipientRewriteTable.addAddressMapping(USER1, "localhost", "address");
+        memoryRecipientRewriteTable.addErrorMapping(USER2, "localhost", "554 BOUNCE");
+        return memoryRecipientRewriteTable;
     }
 
     private SMTPConfiguration setupMockedSMTPConfiguration() {


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