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 ro...@apache.org on 2018/01/12 15:58:53 UTC

[01/18] james-project git commit: JAMES-2275 Added Exception Error Handling Functionality

Repository: james-project
Updated Branches:
  refs/heads/master 2e0dc2986 -> 9191d3bcb


JAMES-2275 Added Exception Error Handling Functionality


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

Branch: refs/heads/master
Commit: 4c4e8472a8936673648141c2f21e14b8a59d89cf
Parents: 2e0dc29
Author: apptaro <ap...@gmail.com>
Authored: Tue Jan 9 11:37:45 2018 +0900
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Fri Jan 12 16:46:16 2018 +0100

----------------------------------------------------------------------
 .../src/main/java/org/apache/mailet/Mail.java   |   1 +
 .../james/transport/matchers/HasException.java  | 102 ++++++++++++
 .../transport/matchers/HasExceptionTest.java    | 159 +++++++++++++++++++
 .../mailetcontainer/impl/ProcessorUtil.java     |   1 +
 .../lib/AbstractStateMailetProcessorTest.java   |  37 +++++
 5 files changed, 300 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/4c4e8472/mailet/api/src/main/java/org/apache/mailet/Mail.java
----------------------------------------------------------------------
diff --git a/mailet/api/src/main/java/org/apache/mailet/Mail.java b/mailet/api/src/main/java/org/apache/mailet/Mail.java
index 793ae6d..3ffcaa4 100644
--- a/mailet/api/src/main/java/org/apache/mailet/Mail.java
+++ b/mailet/api/src/main/java/org/apache/mailet/Mail.java
@@ -76,6 +76,7 @@ public interface Mail extends Serializable, Cloneable {
     String TRANSPORT = "transport";
     String SMTP_AUTH_USER_ATTRIBUTE_NAME = "org.apache.james.SMTPAuthUser";
     String SENT_BY_MAILET = "org.apache.james.SentByMailet";
+    String MAILET_ERROR_ATTRIBUTE_NAME = "org.apache.james.MailetError";
     /**
      * Returns the name of this message.
      * 

http://git-wip-us.apache.org/repos/asf/james-project/blob/4c4e8472/mailet/standard/src/main/java/org/apache/james/transport/matchers/HasException.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/matchers/HasException.java b/mailet/standard/src/main/java/org/apache/james/transport/matchers/HasException.java
new file mode 100644
index 0000000..4fc5183
--- /dev/null
+++ b/mailet/standard/src/main/java/org/apache/james/transport/matchers/HasException.java
@@ -0,0 +1,102 @@
+/****************************************************************
+ * 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.transport.matchers;
+
+import java.util.Collection;
+
+import javax.mail.MessagingException;
+
+import org.apache.james.core.MailAddress;
+import org.apache.mailet.Mail;
+import org.apache.mailet.base.GenericMatcher;
+
+import com.google.common.collect.ImmutableList;
+
+/**
+ * <p>
+ * This Matcher determines if the exception specified in the condition or
+ * the subclasses of it has occured during the processing of the mail.
+ * If true, all recipients are returned, else null. This matcher presupposes
+ * that the exception has been captured as a Mail attribute
+ * {@value org.apache.mailet.Mail#MAILET_ERROR_ATTRIBUTE_NAME} in the process.
+ * </p>
+ * 
+ * <p>
+ * Sample configuration:
+ * </p>
+ * 
+ * <pre>
+ * <code>
+ * &lt;mailet match="HasException=org.apache.james.managesieve.api.ManageSieveException" class=&quot;&lt;any-class&gt;&quot;&gt;
+ * </code>
+ * </pre>
+ *
+ * @since 3.0.2
+ **/
+public class HasException extends GenericMatcher {
+
+    /**
+     * The class of the specified exception class to match
+     */
+    private Class<? extends Throwable> exceptionClass;
+
+    /**
+     * <p>
+     * Returns the recipients of the mail if the specified exception or the
+     * subclasses of it has occured.
+     * </p>
+     * 
+     * @param mail
+     */
+    @Override
+    public Collection<MailAddress> match(Mail mail) throws MessagingException {
+        Object exceptionValue = mail.getAttribute(Mail.MAILET_ERROR_ATTRIBUTE_NAME);
+
+        if (exceptionValue != null && exceptionClass.isAssignableFrom(exceptionValue.getClass())) {
+            return mail.getRecipients();
+        } else {
+            return ImmutableList.of();
+        }
+    }
+
+    @Override
+    public void init() throws MessagingException {
+        try {
+            String exceptionClassName = getCondition().trim();
+            this.exceptionClass = castToThrowable(Class.forName(exceptionClassName));
+        } catch (ClassNotFoundException e) {
+            throw new MessagingException("Specified exception class not found.", e);
+        }
+    }
+    
+    @Override
+    public String getMatcherInfo() {
+        return "Specified Exception Has Occured Matcher";
+    }
+    
+    @SuppressWarnings("unchecked")
+    private static Class<? extends Throwable> castToThrowable(Class<?> cls) throws MessagingException {
+        if (Throwable.class.isAssignableFrom(cls)) {
+            return (Class<? extends Throwable>)cls;
+        } else {
+            throw new MessagingException("Specified class name is not a Throwable.");
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/4c4e8472/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasExceptionTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasExceptionTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasExceptionTest.java
new file mode 100644
index 0000000..e6e34de
--- /dev/null
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasExceptionTest.java
@@ -0,0 +1,159 @@
+/****************************************************************
+ * 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.transport.matchers;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+
+import org.apache.mailet.Mail;
+import org.apache.mailet.Matcher;
+import org.apache.mailet.base.test.FakeMail;
+import org.apache.mailet.base.test.FakeMatcherConfig;
+import org.apache.mailet.base.test.MailUtil;
+import org.junit.Before;
+import org.junit.Test;
+
+public class HasExceptionTest {
+
+    private FakeMail mockedMail;
+    private Matcher testee;
+
+    @Before
+    public void setUp() throws Exception {
+        MimeMessage mimeMessage = MailUtil.createMimeMessage();
+        mockedMail = MailUtil.createMockMail2Recipients(mimeMessage);
+        testee = new HasException();
+    }
+
+    @Test
+    public void matchShouldReturnAddressesWhenSpecifiedExceptionHasOccurred() throws MessagingException {
+        mockedMail.setAttribute(Mail.MAILET_ERROR_ATTRIBUTE_NAME, new javax.mail.internet.AddressException());
+
+        FakeMatcherConfig matcherConfig = FakeMatcherConfig.builder()
+                .matcherName("HasException")
+                .condition("javax.mail.internet.AddressException")
+                .build();
+
+        testee.init(matcherConfig);
+
+        assertThat(testee.match(mockedMail)).containsExactlyElementsOf(mockedMail.getRecipients());
+    }
+
+    @Test
+    public void matchShouldReturnAddressesWhenSubclassOfSpecifiedExceptionHasOccurred() throws MessagingException {
+        mockedMail.setAttribute(Mail.MAILET_ERROR_ATTRIBUTE_NAME, new javax.mail.internet.AddressException());
+
+        FakeMatcherConfig matcherConfig = FakeMatcherConfig.builder()
+                .matcherName("HasException")
+                .condition("javax.mail.MessagingException")
+                .build();
+
+        testee.init(matcherConfig);
+
+        assertThat(testee.match(mockedMail)).containsExactlyElementsOf(mockedMail.getRecipients());
+    }
+
+    @Test
+    public void matchShouldReturnEmptyWhenOtherExceptionHasOccurred() throws MessagingException {
+        mockedMail.setAttribute(Mail.MAILET_ERROR_ATTRIBUTE_NAME, new java.lang.RuntimeException());
+
+        testee.init(FakeMatcherConfig.builder()
+                .matcherName("HasException")
+                .condition("javax.mail.MessagingException")
+                .build());
+
+        assertThat(testee.match(mockedMail)).isEmpty();
+    }
+
+    @Test
+    public void matchShouldReturnEmptyWhenSuperclassOfSpecifiedExceptionHasOccurred() throws MessagingException {
+        mockedMail.setAttribute(Mail.MAILET_ERROR_ATTRIBUTE_NAME, new javax.mail.MessagingException());
+
+        FakeMatcherConfig matcherConfig = FakeMatcherConfig.builder()
+                .matcherName("HasException")
+                .condition("javax.mail.internet.AddressException")
+                .build();
+
+        testee.init(matcherConfig);
+
+        assertThat(testee.match(mockedMail)).isEmpty();
+    }
+
+    @Test
+    public void matchShouldReturnEmptyWhenNoExceptionHasOccurred() throws MessagingException {
+        FakeMatcherConfig matcherConfig = FakeMatcherConfig.builder()
+                .matcherName("HasException")
+                .condition("java.lang.Exception")
+                .build();
+
+        testee.init(matcherConfig);
+
+        assertThat(testee.match(mockedMail)).isEmpty();
+    }
+
+    @Test
+    public void matchShouldReturnEmptyWhenNonExceptionIsAttached() throws MessagingException {
+        mockedMail.setAttribute(Mail.MAILET_ERROR_ATTRIBUTE_NAME, new java.lang.String());
+
+        FakeMatcherConfig matcherConfig = FakeMatcherConfig.builder()
+                .matcherName("HasException")
+                .condition("java.lang.Exception")
+                .build();
+
+        testee.init(matcherConfig);
+
+        assertThat(testee.match(mockedMail)).isEmpty();
+    }
+
+    @Test
+    public void initShouldRaiseMessagingExceptionWhenInvalidClassName() throws MessagingException {
+        FakeMatcherConfig matcherConfig = FakeMatcherConfig.builder()
+                .matcherName("HasException")
+                .condition("java.lang.InvalidClassName")
+                .build();
+
+        assertThatThrownBy(() -> testee.init(matcherConfig)).isInstanceOf(MessagingException.class);
+    }
+
+    @Test
+    public void initShouldRaiseMessagingExceptionWhenClassNameIsNotException() throws MessagingException {
+        FakeMatcherConfig matcherConfig = FakeMatcherConfig.builder()
+                .matcherName("HasException")
+                .condition("java.lang.String")
+                .build();
+
+        assertThatThrownBy(() -> testee.init(matcherConfig)).isInstanceOf(MessagingException.class);
+    }
+    
+    @Test
+    public void initShouldRaiseMessagingExceptionWhenClassNameIsNotFullyQualified() throws MessagingException {
+        mockedMail.setAttribute(Mail.MAILET_ERROR_ATTRIBUTE_NAME, new javax.mail.MessagingException());
+
+        FakeMatcherConfig matcherConfig = FakeMatcherConfig.builder()
+                .matcherName("HasException")
+                .condition("MessagingException")
+                .build();
+
+        assertThatThrownBy(() -> testee.init(matcherConfig)).isInstanceOf(MessagingException.class);
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/4c4e8472/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/ProcessorUtil.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/ProcessorUtil.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/ProcessorUtil.java
index b31497f..3a88963 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/ProcessorUtil.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/ProcessorUtil.java
@@ -63,6 +63,7 @@ public class ProcessorUtil {
         String errorString = sout.toString();
         mail.setErrorMessage(errorString);
         logger.error(errorString);
+        mail.setAttribute(Mail.MAILET_ERROR_ATTRIBUTE_NAME, me);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/4c4e8472/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessorTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessorTest.java b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessorTest.java
index 0f47864..9da66b3 100644
--- a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessorTest.java
+++ b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessorTest.java
@@ -28,6 +28,8 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.concurrent.CountDownLatch;
 
+import javax.mail.MessagingException;
+
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.DefaultConfigurationBuilder;
 import org.apache.commons.configuration.HierarchicalConfiguration;
@@ -205,6 +207,41 @@ public abstract class AbstractStateMailetProcessorTest {
     }
 
     @Test
+    public void matcherProcessingShouldCaptureExceptionAsMailAttributeWhenMatcherThrows() throws Exception {
+        final CountDownLatch latch = new CountDownLatch(1);
+        final MailImpl mail = new MailImpl();
+        mail.setName(MailImpl.getId());
+        mail.setSender(new MailAddress("test@localhost"));
+        mail.setRecipients(Arrays.asList(new MailAddress("test@localhost"), new MailAddress("test2@localhost")));
+
+        AbstractStateMailetProcessor processor = createProcessor(createConfig(ExceptionThrowingMatcher.class,
+                MockMailet.class, 0));
+        processor.addListener(new MailetProcessorListener() {
+
+            @Override
+            public void afterMatcher(Matcher m, String mailName, Collection<MailAddress> recipients,
+                                     Collection<MailAddress> matches, long processTime, Exception e) {
+                if (ExceptionThrowingMatcher.class.equals(m.getClass())) {
+                    latch.countDown();
+                }
+
+            }
+
+            @Override
+            public void afterMailet(Mailet m, String mailName, String state, long processTime, Exception e) {
+                throw new RuntimeException("Should not call any mailet!");
+            }
+        });
+
+        processor.service(mail);
+
+        // the source mail should have captured the exception which was thrown
+        assertEquals(MessagingException.class, mail.getAttribute(Mail.MAILET_ERROR_ATTRIBUTE_NAME).getClass());
+        latch.await();
+        processor.destroy();
+    }
+
+    @Test
     public void mailetProcessingShouldNotResultInAnExceptionWhenMailetThrows() throws Exception {
         final CountDownLatch latch = new CountDownLatch(2);
         final MailImpl mail = new MailImpl();


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


[07/18] james-project git commit: JAMES-2281 Jdkim downloads should be fully handled via maven

Posted by ro...@apache.org.
JAMES-2281 Jdkim downloads should be fully handled via maven


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

Branch: refs/heads/master
Commit: 964df5e987349c022869aaf7384f75842d1ae4df
Parents: 2e7658c
Author: benwa <bt...@linagora.com>
Authored: Mon Jan 8 09:38:12 2018 +0700
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Fri Jan 12 16:49:38 2018 +0100

----------------------------------------------------------------------
 src/site/xdoc/download.xml | 29 +++++++++++++----------------
 1 file changed, 13 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/964df5e9/src/site/xdoc/download.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/download.xml b/src/site/xdoc/download.xml
index fb67ef5..cc9efce 100644
--- a/src/site/xdoc/download.xml
+++ b/src/site/xdoc/download.xml
@@ -286,22 +286,19 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
   
   <section name="Apache jDKIM">
   
-    <p>Apache James jDKIM 0.2 is the latest jDKIM stable version:</p>
-    <ul>
-    
-    <li>Binary (ZIP Format): <a
-    href="[preferred]/james/jdkim/apache-jdkim-0.2-bin.zip">apache-jdkim-0.2-bin.zip</a> [<a
-    href="http://www.apache.org/dist/james/jdkim/apache-jdkim-0.2-bin.zip.asc">PGP</a>]</li>
-    
-    <li>Binary (Unix TAR.GZ): <a
-    href="[preferred]/james/jdkim/apache-jdkim-0.2-bin.tar.gz">apache-jdkim-0.2-bin.tar.gz</a> [<a
-    href="http://www.apache.org/dist/james/jdkim/apache-jdkim-0.2-bin.tar.gz.asc">PGP</a>]</li>
-    
-    <li>Source (ZIP Format): <a
-    href="[preferred]/james/jdkim/apache-jdkim-project-0.2-source-release.zip">apache-jdkim-project-0.2-source-release.zip</a> [<a
-    href="http://www.apache.org/dist/james/jdkim/apache-jdkim-project-0.2-source-release.zip.asc">PGP</a>]</li>
-    
-    </ul>
+    <p>Apache James jDKIM 0.2 is the latest jDKIM stable version.</p>
+
+    <p>You can directly use it with maven:</p>
+
+    <pre>
+      <code>
+        &lt;dependency&gt;
+        &lt;groupId&gt;org.apache.james.jdkim&lt;/groupId&gt;
+        &lt;artifactId&gt;apache-jdkim&lt;/artifactId&gt;
+        &lt;version&gt;0.2&lt;/version&gt;
+        &lt;/dependency&gt;
+      </code>
+    </pre>
   
   </section>
   


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


[14/18] james-project git commit: JAMES-2281 Correct download top-links

Posted by ro...@apache.org.
JAMES-2281 Correct download top-links

 - We should point to HUPA section
 - Remove mailbox as it is internal to James
 - IMAP is part of protocol session


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

Branch: refs/heads/master
Commit: a4f1eb35d377708afe1e656ac32438aa14f4620c
Parents: 591cf2a
Author: benwa <bt...@linagora.com>
Authored: Mon Jan 8 10:13:04 2018 +0700
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Fri Jan 12 16:49:39 2018 +0100

----------------------------------------------------------------------
 src/site/xdoc/download.xml | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/a4f1eb35/src/site/xdoc/download.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/download.xml b/src/site/xdoc/download.xml
index 5be1f89..9360b1c 100644
--- a/src/site/xdoc/download.xml
+++ b/src/site/xdoc/download.xml
@@ -70,10 +70,8 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
       <li><a href='#Apache_Crypto_Mailets'>Apache James Crypto Mailets</a></li>
       <li><a href='#Apache_James_Protocols'>Apache James Protocols</a></li>
       <li><a href='#Apache_MPT'>Apache James MPT</a></li>
-      <li>Apache James IMAP 0.3 is available from the James Maven repositories (*)</li>
-      <li>Apache James Mailbox 0.4 is available from the James Maven repositories (*)</li>
+      <li><a href='#Apache_HUPA'>Apache James Hupa</a></li>
       <li>Apache MailetDoc Plugin for Maven is available from the standard Maven repositories (*)</li>
-      <li>Apache James Hupa is available from the James Maven repositories (*)</li>
     </ul>
  
     <p>(*) James maven repositories can be found on 


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


[04/18] james-project git commit: JAMES-2283 Fix typo

Posted by ro...@apache.org.
JAMES-2283 Fix typo

Provisioning is the right way to write it.


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

Branch: refs/heads/master
Commit: 6535d4e51699d9b32c5dead231145120d80e90f6
Parents: 95d5922
Author: benwa <bt...@linagora.com>
Authored: Wed Jan 10 10:27:40 2018 +0700
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Fri Jan 12 16:48:28 2018 +0100

----------------------------------------------------------------------
 .../jmap/UserProvisioningConcurrencyTest.java   | 110 +++++++++++++++++++
 .../jmap/UserProvisionningConcurrencyTest.java  | 110 -------------------
 2 files changed, 110 insertions(+), 110 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/6535d4e5/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/UserProvisioningConcurrencyTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/UserProvisioningConcurrencyTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/UserProvisioningConcurrencyTest.java
new file mode 100644
index 0000000..5b977ee
--- /dev/null
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/UserProvisioningConcurrencyTest.java
@@ -0,0 +1,110 @@
+/****************************************************************
+ * 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.jmap;
+
+import static com.jayway.restassured.RestAssured.given;
+import static com.jayway.restassured.RestAssured.with;
+import static com.jayway.restassured.config.EncoderConfig.encoderConfig;
+import static com.jayway.restassured.config.RestAssuredConfig.newConfig;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.hasItems;
+import static org.hamcrest.Matchers.hasSize;
+
+import java.nio.charset.StandardCharsets;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.http.client.utils.URIBuilder;
+import org.apache.james.GuiceJamesServer;
+import org.apache.james.util.concurrency.ConcurrentTestRunner;
+import org.apache.james.utils.DataProbeImpl;
+import org.apache.james.utils.JmapGuiceProbe;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.jayway.restassured.RestAssured;
+import com.jayway.restassured.builder.RequestSpecBuilder;
+
+public abstract class UserProvisioningConcurrencyTest {
+    private static final String NAME = "[0][0]";
+    private static final String ARGUMENTS = "[0][1]";
+    private static final String DOMAIN = "mydomain.tld";
+    private static final String USER = "myuser@" + DOMAIN;
+    private static final String PASSWORD = "secret";
+    
+    protected abstract GuiceJamesServer createJmapServer();
+
+    private GuiceJamesServer jmapServer;
+
+    @Before
+    public void setup() throws Throwable {
+        jmapServer = createJmapServer();
+        jmapServer.start();
+        RestAssured.requestSpecification = new RequestSpecBuilder()
+            .setConfig(newConfig().encoderConfig(encoderConfig().defaultContentCharset(StandardCharsets.UTF_8)))
+            .setPort(jmapServer.getProbe(JmapGuiceProbe.class).getJmapPort())
+            .build();
+
+        DataProbeImpl serverProbe = jmapServer.getProbe(DataProbeImpl.class);
+        serverProbe.addDomain(DOMAIN);
+        serverProbe.addUser(USER, PASSWORD);
+    }
+
+    @After
+    public void teardown() {
+        jmapServer.stop();
+    }
+
+    @Test
+    public void provisionMailboxesShouldNotDuplicateMailboxByName() throws Exception {
+        String token = HttpJmapAuthentication.authenticateJamesUser(baseUri(), USER, PASSWORD).serialize();
+
+        boolean termination = new ConcurrentTestRunner(10, 1,
+            (a, b) -> with()
+                .header("Authorization", token)
+                .body("[[\"getMailboxes\", {}, \"#0\"]]")
+                .post("/jmap"))
+            .run()
+            .awaitTermination(1, TimeUnit.MINUTES);
+
+        assertThat(termination).isTrue();
+
+        given()
+            .header("Authorization", token)
+            .body("[[\"getMailboxes\", {}, \"#0\"]]")
+        .when()
+            .post("/jmap")
+        .then()
+            .statusCode(200)
+            .body(NAME, equalTo("mailboxes"))
+            .body(ARGUMENTS + ".list", hasSize(5))
+            .body(ARGUMENTS + ".list.name", hasItems(DefaultMailboxes.DEFAULT_MAILBOXES.toArray()));
+
+    }
+
+    private URIBuilder baseUri() {
+        return new URIBuilder()
+            .setScheme("http")
+            .setHost("localhost")
+            .setPort(jmapServer.getProbe(JmapGuiceProbe.class).getJmapPort())
+            .setCharset(StandardCharsets.UTF_8);
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/6535d4e5/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/UserProvisionningConcurrencyTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/UserProvisionningConcurrencyTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/UserProvisionningConcurrencyTest.java
deleted file mode 100644
index 701dc9d..0000000
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/UserProvisionningConcurrencyTest.java
+++ /dev/null
@@ -1,110 +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.jmap;
-
-import static com.jayway.restassured.RestAssured.given;
-import static com.jayway.restassured.RestAssured.with;
-import static com.jayway.restassured.config.EncoderConfig.encoderConfig;
-import static com.jayway.restassured.config.RestAssuredConfig.newConfig;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.hamcrest.Matchers.equalTo;
-import static org.hamcrest.Matchers.hasItems;
-import static org.hamcrest.Matchers.hasSize;
-
-import java.nio.charset.StandardCharsets;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.http.client.utils.URIBuilder;
-import org.apache.james.GuiceJamesServer;
-import org.apache.james.util.concurrency.ConcurrentTestRunner;
-import org.apache.james.utils.DataProbeImpl;
-import org.apache.james.utils.JmapGuiceProbe;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.jayway.restassured.RestAssured;
-import com.jayway.restassured.builder.RequestSpecBuilder;
-
-public abstract class UserProvisionningConcurrencyTest {
-    private static final String NAME = "[0][0]";
-    private static final String ARGUMENTS = "[0][1]";
-    private static final String DOMAIN = "mydomain.tld";
-    private static final String USER = "myuser@" + DOMAIN;
-    private static final String PASSWORD = "secret";
-    
-    protected abstract GuiceJamesServer createJmapServer();
-
-    private GuiceJamesServer jmapServer;
-
-    @Before
-    public void setup() throws Throwable {
-        jmapServer = createJmapServer();
-        jmapServer.start();
-        RestAssured.requestSpecification = new RequestSpecBuilder()
-            .setConfig(newConfig().encoderConfig(encoderConfig().defaultContentCharset(StandardCharsets.UTF_8)))
-            .setPort(jmapServer.getProbe(JmapGuiceProbe.class).getJmapPort())
-            .build();
-
-        DataProbeImpl serverProbe = jmapServer.getProbe(DataProbeImpl.class);
-        serverProbe.addDomain(DOMAIN);
-        serverProbe.addUser(USER, PASSWORD);
-    }
-
-    @After
-    public void teardown() {
-        jmapServer.stop();
-    }
-
-    @Test
-    public void provisionMailboxesShouldNotDuplicateMailboxByName() throws Exception {
-        String token = HttpJmapAuthentication.authenticateJamesUser(baseUri(), USER, PASSWORD).serialize();
-
-        boolean termination = new ConcurrentTestRunner(10, 1,
-            (a, b) -> with()
-                .header("Authorization", token)
-                .body("[[\"getMailboxes\", {}, \"#0\"]]")
-                .post("/jmap"))
-            .run()
-            .awaitTermination(1, TimeUnit.MINUTES);
-
-        assertThat(termination).isTrue();
-
-        given()
-            .header("Authorization", token)
-            .body("[[\"getMailboxes\", {}, \"#0\"]]")
-        .when()
-            .post("/jmap")
-        .then()
-            .statusCode(200)
-            .body(NAME, equalTo("mailboxes"))
-            .body(ARGUMENTS + ".list", hasSize(5))
-            .body(ARGUMENTS + ".list.name", hasItems(DefaultMailboxes.DEFAULT_MAILBOXES.toArray()));
-
-    }
-
-    private URIBuilder baseUri() {
-        return new URIBuilder()
-            .setScheme("http")
-            .setHost("localhost")
-            .setPort(jmapServer.getProbe(JmapGuiceProbe.class).getJmapPort())
-            .setCharset(StandardCharsets.UTF_8);
-    }
-}


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


[06/18] james-project git commit: JAMES-2283 JMAP provisioning filter should subscribe created mailboxes

Posted by ro...@apache.org.
JAMES-2283 JMAP provisioning filter should subscribe created mailboxes


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

Branch: refs/heads/master
Commit: 95d592298c3e640842b8d20125e4d96a86419d4a
Parents: d4baedb
Author: benwa <bt...@linagora.com>
Authored: Wed Jan 10 10:23:10 2018 +0700
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Fri Jan 12 16:48:28 2018 +0100

----------------------------------------------------------------------
 .../manager/InMemoryIntegrationResources.java   |  8 ++---
 .../integration/SetMailboxesMethodTest.java     | 32 ++++++++++++-----
 .../DefaultMailboxesProvisioningFilter.java     | 11 +++++-
 .../DefaultMailboxesProvisioningFilterTest.java | 17 +++++++--
 ...ltMailboxesProvisioningFilterThreadTest.java | 36 ++++++++++++++++++--
 5 files changed, 86 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/95d59229/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
index 4827f82..b96947d 100644
--- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
+++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
@@ -60,7 +60,7 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
     private DefaultQuotaRootResolver quotaRootResolver;
 
     @Override
-    public StoreMailboxManager createMailboxManager(GroupMembershipResolver groupMembershipResolver) throws MailboxException {
+    public InMemoryMailboxManager createMailboxManager(GroupMembershipResolver groupMembershipResolver) throws MailboxException {
         return createMailboxManager(groupMembershipResolver,
             ((storeRightManager, inMemoryMailboxSessionMapperFactory) ->
                 new StoreMailboxAnnotationManager(
@@ -68,7 +68,7 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
                     storeRightManager)));
     }
 
-    public StoreMailboxManager createMailboxManager(GroupMembershipResolver groupMembershipResolver,
+    public InMemoryMailboxManager createMailboxManager(GroupMembershipResolver groupMembershipResolver,
                                                     int limitAnnotationCount, int limitAnnotationSize) throws MailboxException {
         return createMailboxManager(groupMembershipResolver,
             ((storeRightManager, inMemoryMailboxSessionMapperFactory) ->
@@ -79,7 +79,7 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
                  limitAnnotationSize)));
     }
 
-    private StoreMailboxManager createMailboxManager(GroupMembershipResolver groupMembershipResolver,
+    private InMemoryMailboxManager createMailboxManager(GroupMembershipResolver groupMembershipResolver,
                                                     BiFunction<StoreRightManager, InMemoryMailboxSessionMapperFactory, StoreMailboxAnnotationManager> annotationManagerBiFunction) throws MailboxException {
         FakeAuthenticator fakeAuthenticator = new FakeAuthenticator();
         fakeAuthenticator.addUser(ManagerTestResources.USER, ManagerTestResources.USER_PASS);
@@ -92,7 +92,7 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
         StoreMailboxAnnotationManager annotationManager = annotationManagerBiFunction
             .apply(storeRightManager, mailboxSessionMapperFactory);
 
-        StoreMailboxManager manager = new InMemoryMailboxManager(
+        InMemoryMailboxManager manager = new InMemoryMailboxManager(
             mailboxSessionMapperFactory,
             fakeAuthenticator,
             FakeAuthorizator.defaultReject(),

http://git-wip-us.apache.org/repos/asf/james-project/blob/95d59229/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java
index 85a4c9d..b0bb567 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java
@@ -249,7 +249,7 @@ public abstract class SetMailboxesMethodTest {
             .body(NAME, equalTo("mailboxesSet"))
             .body(ARGUMENTS + ".updated", contains(mailboxId.serialize()));
 
-        assertThat(mailboxProbe.listSubscriptions(username)).containsOnly(overLimitName);
+        assertThat(mailboxProbe.listSubscriptions(username)).contains(overLimitName);
     }
 
     @Test
@@ -278,7 +278,7 @@ public abstract class SetMailboxesMethodTest {
             .body(NAME, equalTo("mailboxesSet"))
             .body(ARGUMENTS + ".created", hasKey("create-id01"));
 
-        assertThat(mailboxProbe.listSubscriptions(username)).containsOnly("foo");
+        assertThat(mailboxProbe.listSubscriptions(username)).contains("foo");
     }
 
     @Test
@@ -306,14 +306,15 @@ public abstract class SetMailboxesMethodTest {
         .when()
             .post("/jmap");
 
-        assertThat(mailboxProbe.listSubscriptions(username)).containsOnly(DefaultMailboxes.INBOX + ".foo");
+        assertThat(mailboxProbe.listSubscriptions(username)).contains(DefaultMailboxes.INBOX + ".foo");
     }
 
     @Test
     public void subscriptionUserShouldBeChangedWhenUpdateMailbox() throws Exception {
         mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, username, "root");
 
-        MailboxId mailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, username, "root.myBox");
+        String initialMailboxName = "root.myBox";
+        MailboxId mailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, username, initialMailboxName);
 
         String requestBody =
             "[" +
@@ -333,7 +334,9 @@ public abstract class SetMailboxesMethodTest {
             .body(requestBody)
             .post("/jmap");
 
-        assertThat(mailboxProbe.listSubscriptions(username)).containsOnly("mySecondBox");
+        assertThat(mailboxProbe.listSubscriptions(username))
+            .contains("mySecondBox")
+            .doesNotContain(initialMailboxName);
     }
 
     @Test
@@ -384,7 +387,12 @@ public abstract class SetMailboxesMethodTest {
             .body(requestBody)
             .post("/jmap");
 
-        assertThat(mailboxProbe.listSubscriptions(username)).containsOnly("mySecondBox");
+        assertThat(mailboxProbe.listSubscriptions(username))
+            .containsOnly(DefaultMailboxes.OUTBOX,
+                DefaultMailboxes.SENT,
+                DefaultMailboxes.TRASH,
+                DefaultMailboxes.DRAFTS,
+                "mySecondBox");
     }
 
     @Test
@@ -408,7 +416,11 @@ public abstract class SetMailboxesMethodTest {
         .then()
             .statusCode(200);
 
-        assertThat(mailboxProbe.listSubscriptions(username)).isEmpty();
+        assertThat(mailboxProbe.listSubscriptions(username))
+            .containsOnly(DefaultMailboxes.OUTBOX,
+            DefaultMailboxes.SENT,
+            DefaultMailboxes.TRASH,
+            DefaultMailboxes.DRAFTS);
     }
 
     @Test
@@ -457,7 +469,11 @@ public abstract class SetMailboxesMethodTest {
         .then()
             .statusCode(200);
 
-        assertThat(mailboxProbe.listSubscriptions(username)).isEmpty();
+        assertThat(mailboxProbe.listSubscriptions(username))
+            .containsOnly(DefaultMailboxes.OUTBOX,
+                DefaultMailboxes.SENT,
+                DefaultMailboxes.TRASH,
+                DefaultMailboxes.DRAFTS);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/95d59229/server/protocols/jmap/src/main/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilter.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilter.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilter.java
index 9fa4875..2c62b47 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilter.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilter.java
@@ -33,6 +33,7 @@ import javax.servlet.ServletResponse;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MailboxSession.User;
+import org.apache.james.mailbox.SubscriptionManager;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxExistsException;
 import org.apache.james.mailbox.model.MailboxId;
@@ -49,11 +50,16 @@ public class DefaultMailboxesProvisioningFilter implements Filter {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(DefaultMailboxesProvisioningFilter.class);
     private final MailboxManager mailboxManager;
+    private final SubscriptionManager subscriptionManager;
     private final MetricFactory metricFactory;
 
     @Inject
-    @VisibleForTesting DefaultMailboxesProvisioningFilter(MailboxManager mailboxManager, MetricFactory metricFactory) {
+    @VisibleForTesting
+    DefaultMailboxesProvisioningFilter(MailboxManager mailboxManager,
+                                       SubscriptionManager subscriptionManager,
+                                       MetricFactory metricFactory) {
         this.mailboxManager = mailboxManager;
+        this.subscriptionManager = subscriptionManager;
         this.metricFactory = metricFactory;
     }
     
@@ -104,6 +110,9 @@ public class DefaultMailboxesProvisioningFilter implements Filter {
     private void createMailbox(MailboxPath mailboxPath, MailboxSession session) {
         try {
             Optional<MailboxId> mailboxId = mailboxManager.createMailbox(mailboxPath, session);
+            if (mailboxId.isPresent()) {
+                subscriptionManager.subscribe(session, mailboxPath.getName());
+            }
             LOGGER.info("Provisioning {}. {} created.", mailboxPath, mailboxId);
         } catch (MailboxExistsException e) {
             LOGGER.info("Mailbox {} have been created concurrently", mailboxPath);

http://git-wip-us.apache.org/repos/asf/james-project/blob/95d59229/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java
index 6700202..5ed1da4 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java
@@ -22,12 +22,13 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import java.util.concurrent.TimeUnit;
 
-import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
+import org.apache.james.mailbox.inmemory.InMemoryMailboxManager;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
 import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.mailbox.store.StoreSubscriptionManager;
 import org.apache.james.metrics.api.NoopMetricFactory;
 import org.apache.james.util.concurrency.ConcurrentTestRunner;
 import org.junit.Before;
@@ -40,7 +41,8 @@ public class DefaultMailboxesProvisioningFilterTest {
     public static final String USERNAME = "username";
     private DefaultMailboxesProvisioningFilter testee;
     private MailboxSession session;
-    private MailboxManager mailboxManager;
+    private InMemoryMailboxManager mailboxManager;
+    private StoreSubscriptionManager subscriptionManager;
 
     @Before
     public void before() throws Exception {
@@ -48,7 +50,8 @@ public class DefaultMailboxesProvisioningFilterTest {
 
         InMemoryIntegrationResources inMemoryIntegrationResources = new InMemoryIntegrationResources();
         mailboxManager = inMemoryIntegrationResources.createMailboxManager(new SimpleGroupMembershipResolver());
-        testee = new DefaultMailboxesProvisioningFilter(mailboxManager, new NoopMetricFactory());
+        subscriptionManager = new StoreSubscriptionManager(mailboxManager.getMapperFactory());
+        testee = new DefaultMailboxesProvisioningFilter(mailboxManager, subscriptionManager, new NoopMetricFactory());
     }
 
     @Test
@@ -63,6 +66,14 @@ public class DefaultMailboxesProvisioningFilterTest {
     }
 
     @Test
+    public void createMailboxesIfNeededShouldSubscribeMailboxes() throws Exception {
+        testee.createMailboxesIfNeeded(session);
+
+        assertThat(subscriptionManager.subscriptions(session))
+            .containsOnlyElementsOf(DefaultMailboxes.DEFAULT_MAILBOXES);
+    }
+
+    @Test
     public void createMailboxesIfNeededShouldNotGenerateExceptionsInConcurrentEnvironment() throws Exception {
         int threadCount = 10;
         int operationCount = 1;

http://git-wip-us.apache.org/repos/asf/james-project/blob/95d59229/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
index e8b32ee..da76e80 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
@@ -18,6 +18,7 @@
  ****************************************************************/
 package org.apache.james.jmap;
 
+import java.util.Collection;
 import java.util.EnumSet;
 import java.util.List;
 import java.util.Optional;
@@ -28,8 +29,10 @@ import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageManager;
+import org.apache.james.mailbox.SubscriptionManager;
 import org.apache.james.mailbox.exception.BadCredentialsException;
 import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.exception.SubscriptionException;
 import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxAnnotation;
@@ -56,12 +59,14 @@ public class DefaultMailboxesProvisioningFilterThreadTest {
     private DefaultMailboxesProvisioningFilter sut;
     private MailboxSession session;
     private MailboxManager mailboxManager;
+    private FakeSubscriptionManager subscriptionManager;
 
     @ThreadedBefore
     public void before() {
         session = new MockMailboxSession("username");
         mailboxManager = new FakeMailboxManager(session);
-        sut = new DefaultMailboxesProvisioningFilter(mailboxManager, new NoopMetricFactory());
+        subscriptionManager = new FakeSubscriptionManager();
+        sut = new DefaultMailboxesProvisioningFilter(mailboxManager, subscriptionManager, new NoopMetricFactory());
     }
     
     @ThreadedMain
@@ -84,7 +89,34 @@ public class DefaultMailboxesProvisioningFilterThreadTest {
         AnnotatedTestRunner runner = new AnnotatedTestRunner();
         runner.runTests(this.getClass(), DefaultMailboxesProvisioningFilter.class);
     }
-    
+
+    private static class FakeSubscriptionManager implements SubscriptionManager {
+        @Override
+        public void subscribe(MailboxSession session, String mailbox) throws SubscriptionException {
+
+        }
+
+        @Override
+        public Collection<String> subscriptions(MailboxSession session) throws SubscriptionException {
+            return null;
+        }
+
+        @Override
+        public void unsubscribe(MailboxSession session, String mailbox) throws SubscriptionException {
+
+        }
+
+        @Override
+        public void startProcessingRequest(MailboxSession session) {
+
+        }
+
+        @Override
+        public void endProcessingRequest(MailboxSession session) {
+
+        }
+    }
+
     private static class FakeMailboxManager implements MailboxManager {
         private MailboxSession mailboxSession;
 


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


[02/18] james-project git commit: JAMES-2275 Added Integration Test for HasException Matcher

Posted by ro...@apache.org.
JAMES-2275 Added Integration Test for HasException Matcher


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

Branch: refs/heads/master
Commit: d4baedb48b332047ef451ab54095437956a704c8
Parents: 4c4e847
Author: apptaro <ap...@gmail.com>
Authored: Wed Jan 10 20:33:35 2018 +0900
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Fri Jan 12 16:46:30 2018 +0100

----------------------------------------------------------------------
 .../apache/james/mailets/MailetErrorsTest.java  | 117 +++++++++++++++++++
 1 file changed, 117 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/d4baedb4/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/MailetErrorsTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/MailetErrorsTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/MailetErrorsTest.java
index 9836af3..763f908 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/MailetErrorsTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/MailetErrorsTest.java
@@ -39,6 +39,7 @@ import org.apache.james.transport.mailets.RuntimeErrorMailet;
 import org.apache.james.transport.mailets.RuntimeErrorMatcher;
 import org.apache.james.transport.mailets.ToRepository;
 import org.apache.james.transport.matchers.All;
+import org.apache.james.transport.matchers.HasException;
 import org.apache.james.utils.MailRepositoryProbeImpl;
 import org.apache.james.utils.SMTPMessageSender;
 import org.junit.After;
@@ -375,6 +376,122 @@ public class MailetErrorsTest {
         awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
     }
 
+    @Test
+    public void hasExceptionMatcherShouldMatchWhenMatcherThrowsExceptionSpecified() throws Exception {
+        jamesServer = TemporaryJamesServer.builder()
+            .withBase(SMTP_ONLY_MODULE)
+            .withMailetContainer(MailetContainer.builder()
+                .putProcessor(CommonProcessors.deliverOnlyTransport())
+                .putProcessor(ProcessorConfiguration.error()
+                    .addMailet(MailetConfiguration.builder()
+                            .matcher(HasException.class)
+                            .matcherCondition("javax.mail.MessagingException")
+                            .mailet(ToRepository.class)
+                            .addProperty("repositoryPath", CUSTOM_REPOSITORY))
+                    .addMailet(MailetConfiguration.builder()
+                            .matcher(All.class)
+                            .mailet(ToRepository.class)
+                            .addProperty("repositoryPath", ERROR_REPOSITORY)))
+                .putProcessor(customProcessor())
+                .putProcessor(ProcessorConfiguration.root()
+                    .addMailet(MailetConfiguration.builder()
+                        .matcher(ErrorMatcher.class)
+                        .mailet(Null.class))))
+            .build(temporaryFolder);
+        MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class);
+
+        smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
+
+        awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
+    }
+    
+    @Test
+    public void hasExceptionMatcherShouldNotMatchWhenMatcherThrowsExceptionNotSpecified() throws Exception {
+        jamesServer = TemporaryJamesServer.builder()
+            .withBase(SMTP_ONLY_MODULE)
+            .withMailetContainer(MailetContainer.builder()
+                .putProcessor(CommonProcessors.deliverOnlyTransport())
+                .putProcessor(ProcessorConfiguration.error()
+                    .addMailet(MailetConfiguration.builder()
+                            .matcher(HasException.class)
+                            .matcherCondition("javax.mail.MessagingException")
+                            .mailet(ToRepository.class)
+                            .addProperty("repositoryPath", CUSTOM_REPOSITORY))
+                    .addMailet(MailetConfiguration.builder()
+                            .matcher(All.class)
+                            .mailet(ToRepository.class)
+                            .addProperty("repositoryPath", ERROR_REPOSITORY)))
+                .putProcessor(customProcessor())
+                .putProcessor(ProcessorConfiguration.root()
+                    .addMailet(MailetConfiguration.builder()
+                        .matcher(RuntimeErrorMatcher.class)
+                        .mailet(Null.class))))
+            .build(temporaryFolder);
+        MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class);
+
+        smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
+
+        awaitOneMinute.until(() -> probe.getRepositoryMailCount(ERROR_REPOSITORY) == 1);
+    }
+    
+    @Test
+    public void hasExceptionMatcherShouldMatchWhenMailetThrowsExceptionSpecified() throws Exception {
+        jamesServer = TemporaryJamesServer.builder()
+            .withBase(SMTP_ONLY_MODULE)
+            .withMailetContainer(MailetContainer.builder()
+                .putProcessor(CommonProcessors.deliverOnlyTransport())
+                .putProcessor(ProcessorConfiguration.error()
+                    .addMailet(MailetConfiguration.builder()
+                            .matcher(HasException.class)
+                            .matcherCondition("javax.mail.MessagingException")
+                            .mailet(ToRepository.class)
+                            .addProperty("repositoryPath", CUSTOM_REPOSITORY))
+                    .addMailet(MailetConfiguration.builder()
+                            .matcher(All.class)
+                            .mailet(ToRepository.class)
+                            .addProperty("repositoryPath", ERROR_REPOSITORY)))
+                .putProcessor(customProcessor())
+                .putProcessor(ProcessorConfiguration.root()
+                    .addMailet(MailetConfiguration.builder()
+                        .matcher(All.class)
+                        .mailet(ErrorMailet.class))))
+            .build(temporaryFolder);
+        MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class);
+
+        smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
+
+        awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
+    }
+    
+    @Test
+    public void hasExceptionMatcherShouldNotMatchWhenMailetThrowsExceptionNotSpecified() throws Exception {
+        jamesServer = TemporaryJamesServer.builder()
+            .withBase(SMTP_ONLY_MODULE)
+            .withMailetContainer(MailetContainer.builder()
+                .putProcessor(CommonProcessors.deliverOnlyTransport())
+                .putProcessor(ProcessorConfiguration.error()
+                    .addMailet(MailetConfiguration.builder()
+                            .matcher(HasException.class)
+                            .matcherCondition("javax.mail.MessagingException")
+                            .mailet(ToRepository.class)
+                            .addProperty("repositoryPath", CUSTOM_REPOSITORY))
+                    .addMailet(MailetConfiguration.builder()
+                            .matcher(All.class)
+                            .mailet(ToRepository.class)
+                            .addProperty("repositoryPath", ERROR_REPOSITORY)))
+                .putProcessor(customProcessor())
+                .putProcessor(ProcessorConfiguration.root()
+                    .addMailet(MailetConfiguration.builder()
+                        .matcher(All.class)
+                        .mailet(RuntimeErrorMailet.class))))
+            .build(temporaryFolder);
+        MailRepositoryProbeImpl probe = jamesServer.getProbe(MailRepositoryProbeImpl.class);
+
+        smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
+
+        awaitOneMinute.until(() -> probe.getRepositoryMailCount(ERROR_REPOSITORY) == 1);
+    }
+    
     private ProcessorConfiguration.Builder errorProcessor() {
         return ProcessorConfiguration.error()
             .addMailet(MailetConfiguration.builder()


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


[17/18] james-project git commit: JAMES-2281 James 3.0.1 had been released

Posted by ro...@apache.org.
JAMES-2281 James 3.0.1 had been released


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

Branch: refs/heads/master
Commit: 13f41d1e194de1a9567720f5e389bcf3dd0802c0
Parents: a4f1eb3
Author: benwa <bt...@linagora.com>
Authored: Mon Jan 8 14:03:18 2018 +0700
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Fri Jan 12 16:49:39 2018 +0100

----------------------------------------------------------------------
 src/site/xdoc/server/index.xml | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/13f41d1e/src/site/xdoc/server/index.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/server/index.xml b/src/site/xdoc/server/index.xml
index 9cc0a15..f8a2309 100644
--- a/src/site/xdoc/server/index.xml
+++ b/src/site/xdoc/server/index.xml
@@ -40,22 +40,22 @@
           <a href="manage.html">manage</a>, <a href="monitor.html">monitor</a>
           and <a href="dev.html">develop</a> Apache James Server.</p>
 
-        <p>Download Apache James Mail Server 3.0.0 and <a href="quick-start.html">quick-start</a> it!</p>
+        <p>Download Apache James Mail Server 3.0.1 and <a href="quick-start.html">quick-start</a> it!</p>
         <p>
           <span class="minibutton btn-download">
             <a href="http://james.apache.org/download.cgi#Apache_James_Server">
-              <span><span class="icon"></span>Apache James Server 3.0.0</span>
+              <span><span class="icon"></span>Apache James Server 3.0.1</span>
             </a>
           </span>
         </p>
          <p>You can also have a look to the last stable version</p>
 
-        <p>Apache James Server 3.0 represents the leading edge of development. This code stream has many more
+        <p>Apache James Server 3.0.1 represents the leading edge of development. This code stream has many more
           features than the 2.3 code, but is not be as well tested in production. Reasonable
           configuration compatibility has been retained with 2.3.2.</p>
           
-        <p>Apache James Server 3.0 requires Java 1.6. A migration guide for
-           users willing to upgrade from 2.3 to 3.0 is <a href="upgrade-2.3.html">available</a>. If relying on Guice
+        <p>Apache James Server 3.0.1 requires Java 1.6. A migration guide for
+           users willing to upgrade from 2.3 to 3.0.1 is <a href="upgrade-2.3.html">available</a>. If relying on Guice
            wiring, you can use some additional components (Cassandra, ElasticSearch, ...). Guice wiring requires java-8.</p>
     
 


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


[18/18] james-project git commit: JAMES-2281 Sources should not point to a source jar but to a tar of actual sources

Posted by ro...@apache.org.
JAMES-2281 Sources should not point to a source jar but to a tar of actual sources


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

Branch: refs/heads/master
Commit: 9191d3bcb814015545d0a15909130e3955ec8d6b
Parents: b683f0a
Author: benwa <bt...@linagora.com>
Authored: Fri Jan 12 14:02:14 2018 +0700
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Fri Jan 12 16:49:40 2018 +0100

----------------------------------------------------------------------
 src/site/xdoc/download.xml | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/9191d3bc/src/site/xdoc/download.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/download.xml b/src/site/xdoc/download.xml
index 68d6fda..68ebba3 100644
--- a/src/site/xdoc/download.xml
+++ b/src/site/xdoc/download.xml
@@ -240,8 +240,7 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
 
     <p>Direct download link:
       <a href="http://central.maven.org/maven2/org/apache/james/apache-mime4j-core/0.8.1/apache-mime4j-core-0.8.1.jar">(Jar)</a>
-      <a href="http://central.maven.org/maven2/org/apache/james/apache-mime4j-core/0.8.1/apache-mime4j-core-0.8.1-sources.jar">(Sources)</a>
-    </p>
+      </p>
 
     <p>In order to use Mime-4j DOM:</p>
 
@@ -257,7 +256,6 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
 
     <p>Direct download link:
       <a href="http://central.maven.org/maven2/org/apache/james/apache-mime4j-dom/0.8.1/apache-mime4j-dom-0.8.1.jar">(Jar)</a>
-      <a href="http://central.maven.org/maven2/org/apache/james/apache-mime4j-dom/0.8.1/apache-mime4j-dom-0.8.1-sources.jar">(Sources)</a>
     </p>
 
     <p>An aggregator project is also available:</p>
@@ -275,6 +273,8 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
     <p>Direct download link:
       <a href="http://central.maven.org/maven2/org/apache/james/apache-mime4j/0.8.1/apache-mime4j-0.8.1-bin.tar.gz">(Tar)</a>
       <a href="http://central.maven.org/maven2/org/apache/james/apache-mime4j/0.8.1/apache-mime4j-0.8.1-bin.zip">(Zip)</a>
+      <a href="https://github.com/apache/james-mime4j/archive/apache-mime4j-project-0.8.1.zip">(Sources Zip)</a>
+      <a href="https://github.com/apache/james-mime4j/archive/apache-mime4j-project-0.8.1.tar.gz">(Sources tar.gz)</a>
     </p>
   
   </section>
@@ -297,7 +297,8 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
 
     <p>Direct download link:
       <a href="http://central.maven.org/maven2/org/apache/james/apache-jspf/0.9.5/apache-jspf-0.9.5.jar">(Jar)</a>
-      <a href="http://central.maven.org/maven2/org/apache/james/apache-jspf/0.9.5/apache-jspf-0.9.5-sources.jar">(Sources)</a>
+      <a href="https://github.com/apache/james-jspf/archive/apache-jspf-project-1.0.1.zip">(Sources Zip)</a>
+      <a href="https://github.com/apache/james-jspf/archive/apache-jspf-project-1.0.1.tar.gz">(Sources tar.gz)</a>
     </p>
   
   </section>
@@ -321,6 +322,8 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
     <p>Direct download link:
       <a href="http://central.maven.org/maven2/org/apache/james/jdkim/apache-jdkim/0.2/apache-jdkim-0.2-bin.tar.gz">(Tar)</a>
       <a href="http://central.maven.org/maven2/org/apache/james/jdkim/apache-jdkim/0.2/apache-jdkim-0.2-bin.zip">(Zip)</a>
+      <a href="https://github.com/apache/james-jdkim/archive/apache-jdkim-project-0.2.zip">(Sources Zip)</a>
+      <a href="https://github.com/apache/james-jdkim/archive/apache-jdkim-project-0.2.tar.gz">(Sources tar.gz)</a>
     </p>
   
   </section>
@@ -343,7 +346,8 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
 
     <p>Direct download link:
       <a href="http://central.maven.org/maven2/org/apache/james/apache-jsieve-core/0.7/apache-jsieve-core-0.7.jar">(Jar)</a>
-      <a href="http://central.maven.org/maven2/org/apache/james/apache-jsieve-core/0.7/apache-jsieve-core-0.7-sources.jar">(Sources)</a>
+      <a href="https://github.com/apache/james-jsieve/archive/apache-jsieve-0.7.zip">(Sources Zip)</a>
+      <a href="https://github.com/apache/james-jsieve/archive/apache-jsieve-0.7.tar.gz">(Sources tar.gz)</a>
     </p>
 
     <p>An aggregator project is also available:</p>
@@ -381,7 +385,8 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
 
     <p>Direct download link:
       <a href="http://central.maven.org/maven2/org/apache/james/apache-mailet-api/3.0.1/apache-mailet-api-3.0.1.jar">(Jar)</a>
-      <a href="http://central.maven.org/maven2/org/apache/james/apache-mailet-api/3.0.1/apache-mailet-api-3.0.1-sources.jar">(Sources)</a>
+      <a href="https://github.com/apache/james-project/archive/james-project-3.0.1.zip">(Sources are in the <code>mailet/api</code> folder Zip)</a>
+      <a href="https://github.com/apache/james-project/archive/james-project-3.0.1.tar.gz">(Sources are in the <code>mailet/api</code> folder tar.gz)</a>
     </p>
     
   </section>
@@ -402,8 +407,8 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
 
     <p>Direct download link:
       <a href="http://central.maven.org/maven2/org/apache/james/apache-mailet-base/3.0.1/apache-mailet-base-3.0.1.jar">(Jar)</a>
-      <a href="http://central.maven.org/maven2/org/apache/james/apache-mailet-base/3.0.1/apache-mailet-base-3.0.1-sources.jar">(Sources)</a>
-    </p>
+      <a href="https://github.com/apache/james-project/archive/james-project-3.0.1.zip">(Sources are in the <code>mailet/base</code> folder Zip)</a>
+      <a href="https://github.com/apache/james-project/archive/james-project-3.0.1.tar.gz">(Sources are in the <code>mailet/base</code> folder tar.gz)</a>    </p>
 
   </section>
 
@@ -423,8 +428,8 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
 
     <p>Direct download link:
       <a href="http://central.maven.org/maven2/org/apache/james/apache-mailet-standard/3.0.1/apache-mailet-standard-3.0.1.jar">(Jar)</a>
-      <a href="http://central.maven.org/maven2/org/apache/james/apache-mailet-standard/3.0.1/apache-mailet-standard-3.0.1-tests.jar">(Sources)</a>
-    </p>
+      <a href="https://github.com/apache/james-project/archive/james-project-3.0.1.zip">(Sources are in the <code>mailet/standard</code> folder Zip)</a>
+      <a href="https://github.com/apache/james-project/archive/james-project-3.0.1.tar.gz">(Sources are in the <code>mailet/standard</code> folder tar.gz)</a>    </p>
 
   </section>
 
@@ -460,8 +465,8 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
 
     <p>Direct download links:
       <a href="http://central.maven.org/maven2/org/apache/james/apache-mailet-ai/3.0.1/apache-mailet-ai-3.0.1.jar">(Jar)</a>
-      <a href="http://central.maven.org/maven2/org/apache/james/apache-mailet-ai/3.0.1/apache-mailet-ai-3.0.1-sources.jar">(Sources)</a>
-    </p>
+      <a href="https://github.com/apache/james-project/archive/james-project-3.0.1.zip">(Sources are in the <code>mailet/ai</code> folder Zip)</a>
+      <a href="https://github.com/apache/james-project/archive/james-project-3.0.1.tar.gz">(Sources are in the <code>mailet/ai</code> folder tar.gz)</a>    </p>
     
   </section>
 


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


[16/18] james-project git commit: JAMES-2281 Mailets downloads should be fully handled via maven

Posted by ro...@apache.org.
JAMES-2281 Mailets downloads should be fully handled via maven


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

Branch: refs/heads/master
Commit: d133f19e34dc2e4436666e24c14a0b0d040fc743
Parents: 964df5e
Author: benwa <bt...@linagora.com>
Authored: Mon Jan 8 09:56:56 2018 +0700
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Fri Jan 12 16:49:39 2018 +0100

----------------------------------------------------------------------
 src/site/xdoc/download.xml | 185 +++++++++++-----------------------------
 1 file changed, 50 insertions(+), 135 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/d133f19e/src/site/xdoc/download.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/download.xml b/src/site/xdoc/download.xml
index cc9efce..ebad7f3 100644
--- a/src/site/xdoc/download.xml
+++ b/src/site/xdoc/download.xml
@@ -334,119 +334,55 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
 
   <section name="Apache Mailet">
   
-    <p>Apache Mailet 2.4 is the latest stable version:</p>
-    <ul>
-    
-    <li>Binary (Unix TAR): <a
-    href="[preferred]/james/apache-mailet/2.4/apache-mailet-2.4.tar.gz">apache-mailet-2.4.tar.gz</a> [<a
-    href="http://www.apache.org/dist/james/apache-mailet/2.4/apache-mailet-2.4.tar.gz.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-mailet/2.4/apache-mailet-2.4.tar.gz.md5">MD5</a>]</li>
-    
-    <li>Binary (ZIP Format): <a
-    href="[preferred]/james/apache-mailet/2.4/apache-mailet-2.4.zip">apache-mailet-2.4.zip</a> [<a
-    href="http://www.apache.org/dist/james/apache-mailet/2.4/apache-mailet-2.4.zip.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-mailet/2.4/apache-mailet-2.4.zip.md5">MD5</a>]</li>
-    
-    <li>Source (Unix TAR): <a
-    href="[preferred]/james/apache-mailet/2.4/apache-mailet-2.4-src.tar.gz">apache-mailet-2.4-src.tar.gz</a> [<a
-    href="http://www.apache.org/dist/james/apache-mailet/2.4/apache-mailet-2.4-src.tar.gz.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-mailet/2.4/apache-mailet-2.4-src.tar.gz.md5">MD5</a>]</li>
-    
-    <li>Source (ZIP Format): <a
-    href="[preferred]/james/apache-mailet/2.4/apache-mailet-2.4-src.zip">apache-mailet-2.4-src.zip</a> [<a
-    href="http://www.apache.org/dist/james/apache-mailet/2.4/apache-mailet-2.4-src.zip.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-mailet/2.4/apache-mailet-2.4-src.zip.md5">MD5</a>]</li>
-    
-    <li><abbr title='Java ARchive'>JAR</abbr> library only: <a
-    href="[preferred]/james/apache-mailet/2.4/apache-mailet-2.4.jar">apache-mailet-2.4.jar</a> [<a
-    href="http://www.apache.org/dist/james/apache-mailet/2.4/apache-mailet-2.4.jar.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-mailet/2.4/apache-mailet-2.4.jar.md5">MD5</a>]</li>
-    
-    </ul>
+    <p>Apache Mailet 3.0.1 is the latest stable version. You can use the mailet API using this maven dependency:</p>
+
+    <pre>
+      <code>
+  &lt;dependency&gt;
+    &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
+    &lt;artifactId&gt;apache-mailet-api&lt;/artifactId&gt;
+    &lt;version&gt;3.0.1&lt;/version&gt;
+  &lt;/dependency&gt;
+      </code>
+    </pre>
     
   </section>
 
   <section name="Apache Mailet Base">
-  
-    <p>Apache Mailet Base 1.1 is the latest stable version:</p>
-    <ul>
-    
-    <li>Binary (Unix TAR): <a
-    href="[preferred]/james/apache-mailet-base/1.1/apache-mailet-base-1.1-bin.tar.gz">apache-mailet-base-1.1.tar.gz</a> [<a
-    href="http://www.apache.org/dist/james/apache-mailet-base/1.1/apache-mailet-base-1.1-bin.tar.gz.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-mailet-base/1.1/apache-mailet-base-1.1-bin.tar.gz.md5">MD5</a>]</li>
-    
-    <li>Binary (ZIP Format): <a
-    href="[preferred]/james/apache-mailet-base/1.1/apache-mailet-base-1.1-bin.zip">apache-mailet-base-1.1.zip</a> [<a
-    href="http://www.apache.org/dist/james/apache-mailet-base/1.1/apache-mailet-base-1.1-bin.zip.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-mailet-base/1.1/apache-mailet-base-1.1-bin.zip.md5">MD5</a>]</li>
-    
-    <li>Source (Unix TAR): <a
-    href="[preferred]/james/apache-mailet-base/1.1/apache-mailet-base-1.1-src.tar.gz">apache-mailet-base-1.1-src.tar.gz</a> [<a
-    href="http://www.apache.org/dist/james/apache-mailet-base/1.1/apache-mailet-base-1.1-src.tar.gz.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-mailet-base/1.1/apache-mailet-base-1.1-src.tar.gz.md5">MD5</a>]</li>
-    
-    <li>Source (ZIP Format): <a
-    href="[preferred]/james/apache-mailet-base/1.1/apache-mailet-base-1.1-src.zip">apache-mailet-base-1.1-src.zip</a> [<a
-    href="http://www.apache.org/dist/james/apache-mailet-base/1.1/apache-mailet-base-1.1-src.zip.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-mailet-base/1.1/apache-mailet-base-1.1-src.zip.md5">MD5</a>]</li>
-    
-    <li>Source (Jar Format): <a
-    href="[preferred]/james/apache-mailet-base/1.1/apache-mailet-base-1.1-sources.jar">apache-mailet-base-1.1-sources.jar</a> [<a
-    href="http://www.apache.org/dist/james/apache-mailet-base/1.1/apache-mailet-base-1.1-sources.jar.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-mailet-base/1.1/apache-mailet-base-1.1-sources.jar.md5">MD5</a>]</li>
-    
-    <li><abbr title='Java ARchive'>JAR</abbr> library only: <a
-    href="[preferred]/james/apache-mailet-base/1.1/apache-mailet-base-1.1.jar">apache-mailet-base-1.1.jar</a> [<a
-    href="http://www.apache.org/dist/james/apache-mailet-base/1.1/apache-mailet-base-1.1.jar.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-mailet-base/1.1/apache-mailet-base-1.1.jar.md5">MD5</a>]</li>
-    
-    </ul>
-  
+
+    <p>Apache Mailet Base 3.0.1 is the latest stable version. You can use Mailet Base content using this maven dependency:</p>
+
+    <pre>
+      <code>
+  &lt;dependency&gt;
+    &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
+    &lt;artifactId&gt;apache-mailet-base&lt;/artifactId&gt;
+    &lt;version&gt;3.0.1&lt;/version&gt;
+  &lt;/dependency&gt;
+      </code>
+    </pre>
+
   </section>
 
   <section name="Apache Mailet Standard">
-  
-    <p>Apache Mailet Standard 1.0 is the latest stable version:</p>
-    <ul>
-    
-    <li>Binary (Unix TAR): <a
-    href="[preferred]/james/apache-standard-mailets/1.0/apache-standard-mailets-1.0-bin.tar.gz">apache-standard-mailets-1.0.tar.gz</a> [<a
-    href="http://www.apache.org/dist/james/apache-standard-mailets/1.0/apache-standard-mailets-1.0-bin.tar.gz.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-standard-mailets/1.0/apache-standard-mailets-1.0-bin.tar.gz.md5">MD5</a>]</li>
-    
-    <li>Binary (ZIP Format): <a
-    href="[preferred]/james/apache-standard-mailets/1.0/apache-standard-mailets-1.0-bin.zip">apache-standard-mailets-1.0.zip</a> [<a
-    href="http://www.apache.org/dist/james/apache-standard-mailets/1.0/apache-standard-mailets-1.0-bin.zip.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-standard-mailets/1.0/apache-standard-mailets-1.0-bin.zip.md5">MD5</a>]</li>
-    
-    <li>Source (Unix TAR): <a
-    href="[preferred]/james/apache-standard-mailets/1.0/apache-standard-mailets-1.0-src.tar.gz">apache-standard-mailets-1.0-src.tar.gz</a> [<a
-    href="http://www.apache.org/dist/james/apache-standard-mailets/1.0/apache-standard-mailets-1.0-src.tar.gz.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-standard-mailets/1.0/apache-standard-mailets-1.0-src.tar.gz.md5">MD5</a>]</li>
-    
-    <li>Source (ZIP Format): <a
-    href="[preferred]/james/apache-standard-mailets/1.0/apache-standard-mailets-1.0-src.zip">apache-standard-mailets-1.0-src.zip</a> [<a
-    href="http://www.apache.org/dist/james/apache-standard-mailets/1.0/apache-standard-mailets-1.0-src.zip.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-standard-mailets/1.0/apache-standard-mailets-1.0-src.zip.md5">MD5</a>]</li>
-    
-    <li>Source (Jar Format): <a
-    href="[preferred]/james/apache-standard-mailets/1.0/apache-standard-mailets-1.0-sources.jar">apache-standard-mailets-1.0-sources.jar</a> [<a
-    href="http://www.apache.org/dist/james/apache-standard-mailets/1.0/apache-standard-mailets-1.0-sources.jar.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-standard-mailets/1.0/apache-standard-mailets-1.0-sources.jar.md5">MD5</a>]</li>
-    
-    <li><abbr title='Java ARchive'>JAR</abbr> library only: <a
-    href="[preferred]/james/apache-standard-mailets/1.0/apache-standard-mailets-1.0.jar">apache-standard-mailets-1.0.jar</a> [<a
-    href="http://www.apache.org/dist/james/apache-standard-mailets/1.0/apache-standard-mailets-1.0.jar.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-standard-mailets/1.0/apache-standard-mailets-1.0.jar.md5">MD5</a>]</li>
-    
-    </ul>
-  
+
+    <p>Apache Mailet Standard 3.0.1 is the latest stable version. You can use mailet Standard content using this maven dependency:</p>
+
+    <pre>
+      <code>
+  &lt;dependency&gt;
+    &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
+    &lt;artifactId&gt;apache-mailet-standard&lt;/artifactId&gt;
+    &lt;version&gt;3.0.1&lt;/version&gt;
+  &lt;/dependency&gt;
+      </code>
+    </pre>
+
   </section>
 
   <section name="Apache Crypto Mailets">
   
-    <p>Apache Crypto Mailets 1.0 is the latest stable version:</p>
+    <p>Apache Crypto Mailets 3.0.1 is the latest stable version.</p>
     
   <div class="ui-widget">
     <div class="ui-priority-secondary ui-corner-all apache-james-crypto-notice">
@@ -461,39 +397,18 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
       </ul>
     </div>
   </div>
-    <ul>
-    
-    <li>Binary (Unix TAR): <a
-    href="[preferred]/james/apache-crypto-mailets/1.0/apache-crypto-mailets-1.0-bin.tar.gz">apache-crypto-mailets-1.0.tar.gz</a> [<a
-    href="http://www.apache.org/dist/james/apache-crypto-mailets/1.0/apache-crypto-mailets-1.0-bin.tar.gz.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-crypto-mailets/1.0/apache-crypto-mailets-1.0-bin.tar.gz.md5">MD5</a>]</li>
-    
-    <li>Binary (ZIP Format): <a
-    href="[preferred]/james/apache-crypto-mailets/1.0/apache-crypto-mailets-1.0-bin.zip">apache-crypto-mailets-1.0.zip</a> [<a
-    href="http://www.apache.org/dist/james/apache-crypto-mailets/1.0/apache-crypto-mailets-1.0-bin.zip.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-crypto-mailets/1.0/apache-crypto-mailets-1.0-bin.zip.md5">MD5</a>]</li>
-    
-    <li>Source (Unix TAR): <a
-    href="[preferred]/james/apache-crypto-mailets/1.0/apache-crypto-mailets-1.0-src.tar.gz">apache-crypto-mailets-1.0-src.tar.gz</a> [<a
-    href="http://www.apache.org/dist/james/apache-crypto-mailets/1.0/apache-crypto-mailets-1.0-src.tar.gz.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-crypto-mailets/1.0/apache-crypto-mailets-1.0-src.tar.gz.md5">MD5</a>]</li>
-    
-    <li>Source (ZIP Format): <a
-    href="[preferred]/james/apache-crypto-mailets/1.0/apache-crypto-mailets-1.0-src.zip">apache-crypto-mailets-1.0-src.zip</a> [<a
-    href="http://www.apache.org/dist/james/apache-crypto-mailets/1.0/apache-crypto-mailets-1.0-src.zip.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-crypto-mailets/1.0/apache-crypto-mailets-1.0-src.zip.md5">MD5</a>]</li>
-    
-    <li>Source (Jar Format): <a
-    href="[preferred]/james/apache-crypto-mailets/1.0/apache-crypto-mailets-1.0-sources.jar">apache-crypto-mailets-1.0-sources.jar</a> [<a
-    href="http://www.apache.org/dist/james/apache-crypto-mailets/1.0/apache-crypto-mailets-1.0-sources.jar.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-crypto-mailets/1.0/apache-crypto-mailets-1.0-sources.jar.md5">MD5</a>]</li>
-    
-    <li><abbr title='Java ARchive'>JAR</abbr> library only: <a
-    href="[preferred]/james/apache-crypto-mailets/1.0/apache-crypto-mailets-1.0.jar">apache-crypto-mailets-1.0.jar</a> [<a
-    href="http://www.apache.org/dist/james/apache-crypto-mailets/1.0/apache-crypto-mailets-1.0.jar.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/apache-crypto-mailets/1.0/apache-crypto-mailets-1.0.jar.md5">MD5</a>]</li>
-    
-    </ul>
+
+    <p>You can use Mailet AI content using this maven dependency:</p>
+
+    <pre>
+      <code>
+  &lt;dependency&gt;
+    &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
+    &lt;artifactId&gt;apache-mailet-ai&lt;/artifactId&gt;
+    &lt;version&gt;3.0.1&lt;/version&gt;
+  &lt;/dependency&gt;
+      </code>
+    </pre>
     
   </section>
 


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


[09/18] james-project git commit: JAMES-2281 Jspf downloads should be fully handled via maven

Posted by ro...@apache.org.
JAMES-2281 Jspf downloads should be fully handled via maven


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

Branch: refs/heads/master
Commit: 06050da87ae3fd214beb271046de7bfd1fabdbd3
Parents: 32d6b91
Author: benwa <bt...@linagora.com>
Authored: Mon Jan 8 09:13:47 2018 +0700
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Fri Jan 12 16:49:38 2018 +0100

----------------------------------------------------------------------
 src/site/xdoc/download.xml | 35 +++++++++++++----------------------
 1 file changed, 13 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/06050da8/src/site/xdoc/download.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/download.xml b/src/site/xdoc/download.xml
index 0a70b96..f562458 100644
--- a/src/site/xdoc/download.xml
+++ b/src/site/xdoc/download.xml
@@ -268,28 +268,19 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
 
   <section name="Apache jSPF">
   
-    <p>Apache James jSPF 1.0.0 is the latest jSPF stable version:</p>
-    <ul>
-    
-    <li>Binary (ZIP Format): <a
-    href="[preferred]/james/jspf/1.0.0/apache-jspf-1.0.0-bin.zip">apache-jspf-1.0.0-bin.zip</a> [<a
-    href="http://www.apache.org/dist/james/jspf/1.0.0/apache-jspf-1.0.0-bin.zip.asc">PGP</a>]</li>
-    
-    <li>Binary (Unix TAR.GZ): <a
-    href="[preferred]/james/jspf/1.0.0/apache-jspf-1.0.0-bin.tar.gz">apache-jspf-1.0.0-bin.tar.gz</a> [<a
-    href="http://www.apache.org/dist/james/jspf/1.0.0/apache-jspf-1.0.0-bin.tar.gz.asc">PGP</a>]</li>
-    
-    <li>Source (Unix TAR.GZ): <a
-    href="[preferred]/james/jspf/1.0.0/apache-jspf-1.0.0-src.tar.gz">apache-jspf-1.0.0-src.tar.gz</a> [<a
-    href="http://www.apache.org/dist/james/jspf/1.0.0/apache-jspf-1.0.0-src.tar.gz.asc">PGP</a>]</li>
-    
-    <li>Source (ZIP Format): <a
-    href="[preferred]/james/jspf/1.0.0/apache-jspf-1.0.0-src.zip">apache-jspf-1.0.0-src.zip</a> [<a
-    href="http://www.apache.org/dist/james/jspf/1.0.0/apache-jspf-1.0.0-src.zip.asc">PGP</a>]</li>
-    
-    <li><a href="[preferred]/james/jspf/1.0.0/">Other Binaries</a></li>
-    
-    </ul>
+    <p>Apache James jSPF 1.0.1 is the latest jSPF stable version.</p>
+
+    <p>You can directly use it with maven:</p>
+
+    <pre>
+      <code>
+  &lt;dependency&gt;
+    &lt;groupId&gt;org.apache.james.jspf&lt;/groupId&gt;
+    &lt;artifactId&gt;apache-jspf&lt;/artifactId&gt;
+    &lt;version&gt;1.0.1&lt;/version&gt;
+  &lt;/dependency&gt;
+      </code>
+    </pre>
   
   </section>
   


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


[03/18] james-project git commit: JAMES-2283 Integration tests for mailbox provisioning subscription

Posted by ro...@apache.org.
JAMES-2283 Integration tests for mailbox provisioning subscription

I decided to further modify the test namings as:

 - I introduced in that class some non-concurrency tests
 - It does not concern the user provisioning filter


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

Branch: refs/heads/master
Commit: 11a9af36a84ae75c1798cd7290f00587e9d4f38d
Parents: 6535d4e
Author: benwa <bt...@linagora.com>
Authored: Wed Jan 10 10:34:55 2018 +0700
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Fri Jan 12 16:48:28 2018 +0100

----------------------------------------------------------------------
 .../cassandra/CassandraProvisioningTest.java    |  49 ++++++++
 ...ssandraUserProvisionningConcurrencyTest.java |  49 --------
 .../org/apache/james/jmap/ProvisioningTest.java | 124 +++++++++++++++++++
 .../jmap/UserProvisioningConcurrencyTest.java   | 110 ----------------
 .../jmap/memory/MemoryProvisioningTest.java     |  35 ++++++
 .../MemoryUserProvisionningConcurrencyTest.java |  35 ------
 6 files changed, 208 insertions(+), 194 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/11a9af36/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraProvisioningTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraProvisioningTest.java b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraProvisioningTest.java
new file mode 100644
index 0000000..c7c3187
--- /dev/null
+++ b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraProvisioningTest.java
@@ -0,0 +1,49 @@
+/****************************************************************
+ * 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.jmap.cassandra;
+
+import org.apache.james.CassandraJmapTestRule;
+import org.apache.james.DockerCassandraRule;
+import org.apache.james.GuiceJamesServer;
+import org.apache.james.backends.cassandra.ContainerLifecycleConfiguration;
+import org.apache.james.jmap.ProvisioningTest;
+import org.junit.ClassRule;
+import org.junit.Rule;
+import org.junit.rules.TestRule;
+
+public class CassandraProvisioningTest extends ProvisioningTest {
+
+    @ClassRule
+    public static DockerCassandraRule cassandra = new DockerCassandraRule();
+
+    public static ContainerLifecycleConfiguration cassandraLifecycleConfiguration = ContainerLifecycleConfiguration.withDefaultIterationsBetweenRestart().container(cassandra.getRawContainer()).build();
+
+    @Rule
+    public CassandraJmapTestRule rule = CassandraJmapTestRule.defaultTestRule();
+
+    @Rule
+    public TestRule cassandraLifecycleTestRule = cassandraLifecycleConfiguration.asTestRule();
+
+    @Override
+    protected GuiceJamesServer createJmapServer() {
+        return rule.jmapServer(cassandra.getModule());
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/11a9af36/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraUserProvisionningConcurrencyTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraUserProvisionningConcurrencyTest.java b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraUserProvisionningConcurrencyTest.java
deleted file mode 100644
index 4762f7b..0000000
--- a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraUserProvisionningConcurrencyTest.java
+++ /dev/null
@@ -1,49 +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.jmap.cassandra;
-
-import org.apache.james.CassandraJmapTestRule;
-import org.apache.james.DockerCassandraRule;
-import org.apache.james.GuiceJamesServer;
-import org.apache.james.backends.cassandra.ContainerLifecycleConfiguration;
-import org.apache.james.jmap.UserProvisionningConcurrencyTest;
-import org.junit.ClassRule;
-import org.junit.Rule;
-import org.junit.rules.TestRule;
-
-public class CassandraUserProvisionningConcurrencyTest extends UserProvisionningConcurrencyTest {
-
-    @ClassRule
-    public static DockerCassandraRule cassandra = new DockerCassandraRule();
-
-    public static ContainerLifecycleConfiguration cassandraLifecycleConfiguration = ContainerLifecycleConfiguration.withDefaultIterationsBetweenRestart().container(cassandra.getRawContainer()).build();
-
-    @Rule
-    public CassandraJmapTestRule rule = CassandraJmapTestRule.defaultTestRule();
-
-    @Rule
-    public TestRule cassandraLifecycleTestRule = cassandraLifecycleConfiguration.asTestRule();
-
-    @Override
-    protected GuiceJamesServer createJmapServer() {
-        return rule.jmapServer(cassandra.getModule());
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/11a9af36/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/ProvisioningTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/ProvisioningTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/ProvisioningTest.java
new file mode 100644
index 0000000..974a10c
--- /dev/null
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/ProvisioningTest.java
@@ -0,0 +1,124 @@
+/****************************************************************
+ * 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.jmap;
+
+import static com.jayway.restassured.RestAssured.given;
+import static com.jayway.restassured.RestAssured.with;
+import static com.jayway.restassured.config.EncoderConfig.encoderConfig;
+import static com.jayway.restassured.config.RestAssuredConfig.newConfig;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.hasItems;
+import static org.hamcrest.Matchers.hasSize;
+
+import java.nio.charset.StandardCharsets;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.http.client.utils.URIBuilder;
+import org.apache.james.GuiceJamesServer;
+import org.apache.james.modules.MailboxProbeImpl;
+import org.apache.james.util.concurrency.ConcurrentTestRunner;
+import org.apache.james.utils.DataProbeImpl;
+import org.apache.james.utils.JmapGuiceProbe;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.jayway.restassured.RestAssured;
+import com.jayway.restassured.builder.RequestSpecBuilder;
+
+public abstract class ProvisioningTest {
+    private static final String NAME = "[0][0]";
+    private static final String ARGUMENTS = "[0][1]";
+    private static final String DOMAIN = "mydomain.tld";
+    private static final String USER = "myuser@" + DOMAIN;
+    private static final String PASSWORD = "secret";
+    
+    protected abstract GuiceJamesServer createJmapServer();
+
+    private GuiceJamesServer jmapServer;
+
+    @Before
+    public void setup() throws Throwable {
+        jmapServer = createJmapServer();
+        jmapServer.start();
+        RestAssured.requestSpecification = new RequestSpecBuilder()
+            .setConfig(newConfig().encoderConfig(encoderConfig().defaultContentCharset(StandardCharsets.UTF_8)))
+            .setPort(jmapServer.getProbe(JmapGuiceProbe.class).getJmapPort())
+            .build();
+
+        DataProbeImpl serverProbe = jmapServer.getProbe(DataProbeImpl.class);
+        serverProbe.addDomain(DOMAIN);
+        serverProbe.addUser(USER, PASSWORD);
+    }
+
+    @After
+    public void teardown() {
+        jmapServer.stop();
+    }
+
+    @Test
+    public void provisionMailboxesShouldNotDuplicateMailboxByName() throws Exception {
+        String token = HttpJmapAuthentication.authenticateJamesUser(baseUri(), USER, PASSWORD).serialize();
+
+        boolean termination = new ConcurrentTestRunner(10, 1,
+            (a, b) -> with()
+                .header("Authorization", token)
+                .body("[[\"getMailboxes\", {}, \"#0\"]]")
+                .post("/jmap"))
+            .run()
+            .awaitTermination(1, TimeUnit.MINUTES);
+
+        assertThat(termination).isTrue();
+
+        given()
+            .header("Authorization", token)
+            .body("[[\"getMailboxes\", {}, \"#0\"]]")
+        .when()
+            .post("/jmap")
+        .then()
+            .statusCode(200)
+            .body(NAME, equalTo("mailboxes"))
+            .body(ARGUMENTS + ".list", hasSize(5))
+            .body(ARGUMENTS + ".list.name", hasItems(DefaultMailboxes.DEFAULT_MAILBOXES.toArray()));
+    }
+
+    @Test
+    public void provisionMailboxesShouldSubscribeToThem() throws Exception {
+        String token = HttpJmapAuthentication.authenticateJamesUser(baseUri(), USER, PASSWORD).serialize();
+
+        with()
+            .header("Authorization", token)
+            .body("[[\"getMailboxes\", {}, \"#0\"]]")
+            .post("/jmap");
+
+        assertThat(jmapServer.getProbe(MailboxProbeImpl.class)
+            .listSubscriptions(USER))
+            .containsOnlyElementsOf(DefaultMailboxes.DEFAULT_MAILBOXES);
+    }
+
+    private URIBuilder baseUri() {
+        return new URIBuilder()
+            .setScheme("http")
+            .setHost("localhost")
+            .setPort(jmapServer.getProbe(JmapGuiceProbe.class).getJmapPort())
+            .setCharset(StandardCharsets.UTF_8);
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/11a9af36/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/UserProvisioningConcurrencyTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/UserProvisioningConcurrencyTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/UserProvisioningConcurrencyTest.java
deleted file mode 100644
index 5b977ee..0000000
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/UserProvisioningConcurrencyTest.java
+++ /dev/null
@@ -1,110 +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.jmap;
-
-import static com.jayway.restassured.RestAssured.given;
-import static com.jayway.restassured.RestAssured.with;
-import static com.jayway.restassured.config.EncoderConfig.encoderConfig;
-import static com.jayway.restassured.config.RestAssuredConfig.newConfig;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.hamcrest.Matchers.equalTo;
-import static org.hamcrest.Matchers.hasItems;
-import static org.hamcrest.Matchers.hasSize;
-
-import java.nio.charset.StandardCharsets;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.http.client.utils.URIBuilder;
-import org.apache.james.GuiceJamesServer;
-import org.apache.james.util.concurrency.ConcurrentTestRunner;
-import org.apache.james.utils.DataProbeImpl;
-import org.apache.james.utils.JmapGuiceProbe;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.jayway.restassured.RestAssured;
-import com.jayway.restassured.builder.RequestSpecBuilder;
-
-public abstract class UserProvisioningConcurrencyTest {
-    private static final String NAME = "[0][0]";
-    private static final String ARGUMENTS = "[0][1]";
-    private static final String DOMAIN = "mydomain.tld";
-    private static final String USER = "myuser@" + DOMAIN;
-    private static final String PASSWORD = "secret";
-    
-    protected abstract GuiceJamesServer createJmapServer();
-
-    private GuiceJamesServer jmapServer;
-
-    @Before
-    public void setup() throws Throwable {
-        jmapServer = createJmapServer();
-        jmapServer.start();
-        RestAssured.requestSpecification = new RequestSpecBuilder()
-            .setConfig(newConfig().encoderConfig(encoderConfig().defaultContentCharset(StandardCharsets.UTF_8)))
-            .setPort(jmapServer.getProbe(JmapGuiceProbe.class).getJmapPort())
-            .build();
-
-        DataProbeImpl serverProbe = jmapServer.getProbe(DataProbeImpl.class);
-        serverProbe.addDomain(DOMAIN);
-        serverProbe.addUser(USER, PASSWORD);
-    }
-
-    @After
-    public void teardown() {
-        jmapServer.stop();
-    }
-
-    @Test
-    public void provisionMailboxesShouldNotDuplicateMailboxByName() throws Exception {
-        String token = HttpJmapAuthentication.authenticateJamesUser(baseUri(), USER, PASSWORD).serialize();
-
-        boolean termination = new ConcurrentTestRunner(10, 1,
-            (a, b) -> with()
-                .header("Authorization", token)
-                .body("[[\"getMailboxes\", {}, \"#0\"]]")
-                .post("/jmap"))
-            .run()
-            .awaitTermination(1, TimeUnit.MINUTES);
-
-        assertThat(termination).isTrue();
-
-        given()
-            .header("Authorization", token)
-            .body("[[\"getMailboxes\", {}, \"#0\"]]")
-        .when()
-            .post("/jmap")
-        .then()
-            .statusCode(200)
-            .body(NAME, equalTo("mailboxes"))
-            .body(ARGUMENTS + ".list", hasSize(5))
-            .body(ARGUMENTS + ".list.name", hasItems(DefaultMailboxes.DEFAULT_MAILBOXES.toArray()));
-
-    }
-
-    private URIBuilder baseUri() {
-        return new URIBuilder()
-            .setScheme("http")
-            .setHost("localhost")
-            .setPort(jmapServer.getProbe(JmapGuiceProbe.class).getJmapPort())
-            .setCharset(StandardCharsets.UTF_8);
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/11a9af36/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryProvisioningTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryProvisioningTest.java b/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryProvisioningTest.java
new file mode 100644
index 0000000..c29a43c
--- /dev/null
+++ b/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryProvisioningTest.java
@@ -0,0 +1,35 @@
+/****************************************************************
+ * 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.jmap.memory;
+
+import org.apache.james.GuiceJamesServer;
+import org.apache.james.MemoryJmapTestRule;
+import org.apache.james.jmap.ProvisioningTest;
+import org.junit.Rule;
+
+public class MemoryProvisioningTest extends ProvisioningTest {
+    @Rule
+    public MemoryJmapTestRule memoryJmap = new MemoryJmapTestRule();
+
+    @Override
+    protected GuiceJamesServer createJmapServer() {
+        return memoryJmap.jmapServer();
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/11a9af36/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryUserProvisionningConcurrencyTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryUserProvisionningConcurrencyTest.java b/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryUserProvisionningConcurrencyTest.java
deleted file mode 100644
index 01bf796..0000000
--- a/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryUserProvisionningConcurrencyTest.java
+++ /dev/null
@@ -1,35 +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.jmap.memory;
-
-import org.apache.james.GuiceJamesServer;
-import org.apache.james.MemoryJmapTestRule;
-import org.apache.james.jmap.UserProvisionningConcurrencyTest;
-import org.junit.Rule;
-
-public class MemoryUserProvisionningConcurrencyTest extends UserProvisionningConcurrencyTest {
-    @Rule
-    public MemoryJmapTestRule memoryJmap = new MemoryJmapTestRule();
-
-    @Override
-    protected GuiceJamesServer createJmapServer() {
-        return memoryJmap.jmapServer();
-    }
-}


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


[10/18] james-project git commit: JAMES-2281 Jsieve downloads should be fully handled via maven

Posted by ro...@apache.org.
JAMES-2281 Jsieve downloads should be fully handled via maven


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

Branch: refs/heads/master
Commit: 2e7658c24877d2fb3139913daaf82f06f2bcee54
Parents: 06050da
Author: benwa <bt...@linagora.com>
Authored: Mon Jan 8 09:24:27 2018 +0700
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Fri Jan 12 16:49:38 2018 +0100

----------------------------------------------------------------------
 src/site/xdoc/download.xml | 49 +++++++++++++++++++++--------------------
 1 file changed, 25 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/2e7658c2/src/site/xdoc/download.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/download.xml b/src/site/xdoc/download.xml
index f562458..fb67ef5 100644
--- a/src/site/xdoc/download.xml
+++ b/src/site/xdoc/download.xml
@@ -307,30 +307,31 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
   
   <section name="Apache JSieve">
   
-    <p>Apache JSieve 0.5 is the latest stable version:</p>
-    <ul>
-    
-    <li>Binary (Unix TAR): <a
-    href="[preferred]/james/jsieve/0.5/apache-jsieve-all-0.5-bin.tar.gz">apache-jsieve-all-0.5-bin.tar.gz</a> [<a
-    href="http://www.apache.org/dist/james/jsieve/0.5/apache-jsieve-all-0.5-bin.tar.gz.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/jsieve/0.5/apache-jsieve-all-0.5-bin.tar.gz.asc.md5">MD5</a>]</li>
-    
-    <li>Binary (ZIP Format): <a
-    href="[preferred]/james/jsieve/0.5/apache-jsieve-all-0.5-bin.zip">apache-jsieve-all-0.5-bin.zip</a> [<a
-    href="http://www.apache.org/dist/james/jsieve/0.5/apache-jsieve-all-0.5-bin.zip.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/jsieve/0.5/apache-jsieve-all-0.5-bin.zip.asc.md5">MD5</a>]</li>
-    
-    <li>Source (Unix TAR): <a
-    href="[preferred]/james/jsieve/0.5/apache-jsieve-all-0.5-src.tar.gz">apache-jsieve-all-0.5-src.tar.gz</a> [<a
-    href="http://www.apache.org/dist/james/jsieve/0.5/apache-jsieve-all-0.5-src.tar.gz.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/jsieve/0.5/apache-jsieve-all-0.5-src.tar.gz.asc.md5">MD5</a>]</li>
-    
-    <li>Source (ZIP Format): <a
-    href="[preferred]/james/jsieve/0.5/apache-jsieve-all-0.5-src.zip">apache-jsieve-all-0.5-src.zip</a> [<a
-    href="http://www.apache.org/dist/james/jsieve/0.5/apache-jsieve-all-0.5-src.zip.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/jsieve/0.5/apache-jsieve-all-0.5-src.zip.asc.md5">MD5</a>]</li>
-    
-    </ul>
+    <p>Apache JSieve 0.7 is the latest stable version.</p>
+
+    <p>You can directly use it with maven:</p>
+
+    <pre>
+      <code>
+  &lt;dependency&gt;
+    &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
+    &lt;artifactId&gt;apache-jsieve-core&lt;/artifactId&gt;
+    &lt;version&gt;0.7&lt;/version&gt;
+  &lt;/dependency&gt;
+      </code>
+    </pre>
+
+    <p>An aggregator project is also available:</p>
+
+    <pre>
+      <code>
+  &lt;dependency&gt;
+    &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
+    &lt;artifactId&gt;apache-jsieve-all&lt;/artifactId&gt;
+    &lt;version&gt;0.7&lt;/version&gt;
+  &lt;/dependency&gt;
+      </code>
+    </pre>
   
   </section>
 


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


[12/18] james-project git commit: JAMES-2281 Re-order navigation panel of the mail project

Posted by ro...@apache.org.
JAMES-2281 Re-order navigation panel of the mail project

Link references should be listed by interest and to allow a smooth discovery of available mailets.


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

Branch: refs/heads/master
Commit: f9d0f44320eafa1c57c16ee0470ee1dfe673d3b3
Parents: 01fe84b
Author: benwa <bt...@linagora.com>
Authored: Mon Jan 8 14:16:05 2018 +0700
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Fri Jan 12 16:49:39 2018 +0100

----------------------------------------------------------------------
 src/site/site.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/f9d0f443/src/site/site.xml
----------------------------------------------------------------------
diff --git a/src/site/site.xml b/src/site/site.xml
index 2f216b9..c0915bc 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -175,11 +175,11 @@
             <item name="Mailets" href="/mailet/index.html" collapse="true">
                 <item name="Quick Start" href="/mailet/quickstart.html"/>
                 <item name="Mailet API" href="/mailet/api/index.html"/>
-                <item name="Mailet AI" href="/mailet/ai/index.html"/>
                 <item name="Basic Mailet Toolkit" href="/mailet/base/index.html"/>
+                <item name="Standard Mailets" href="/mailet/standard/index.html"/>
                 <item name="Crypto Mailets" href="/mailet/crypto/index.html"/>
+                <item name="Mailet AI" href="/mailet/ai/index.html"/>
                 <item name="MailetDocs" href="/mailet/mailetdocs-maven-plugin/index.html"/>
-                <item name="Standard Mailets" href="/mailet/standard/index.html"/>
                 <item name="Mailing Lists" href="/mail.html#Mailet_API_List" />
                 <item name="Release Notes" href="/mailet/release-notes.html"/>
                 <item name="Java Docs" href="/mailet/apidocs"/>


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


[08/18] james-project git commit: JAMES-2281 Mime4J downloads should be fully handled via maven

Posted by ro...@apache.org.
JAMES-2281 Mime4J downloads should be fully handled via maven


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

Branch: refs/heads/master
Commit: 32d6b912dd0abe4919ced2e8e46a1e34a2d099fa
Parents: 82f96d0
Author: benwa <bt...@linagora.com>
Authored: Mon Jan 8 09:11:36 2018 +0700
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Fri Jan 12 16:49:38 2018 +0100

----------------------------------------------------------------------
 src/site/xdoc/download.xml | 59 ++++++++++++++++++++++++++---------------
 1 file changed, 37 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/32d6b912/src/site/xdoc/download.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/download.xml b/src/site/xdoc/download.xml
index ef59f52..0a70b96 100644
--- a/src/site/xdoc/download.xml
+++ b/src/site/xdoc/download.xml
@@ -226,28 +226,43 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
 
   <section name="Apache Mime4J">
   
-    <p>Apache Mime4J 0.7.2 is the latest stable version:</p>
-    <ul>
-    
-    <li>Binary (Unix TAR): <a
-    href="[preferred]/james/mime4j/0.7.2/apache-mime4j-0.7.2-bin.tar.gz">apache-mime4j-0.7.2-bin.tar.gz</a> [<a
-    href="http://www.apache.org/dist/james/mime4j/0.7.2/apache-mime4j-0.7.2-bin.tar.gz.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/mime4j/0.7.2/apache-mime4j-0.7.2-bin.tar.gz.md5">MD5</a>]</li>
-    
-    <li>Binary (ZIP Format): <a
-    href="[preferred]/james/mime4j/0.7.2/apache-mime4j-0.7.2-bin.zip">apache-mime4j-0.7.2-bin.zip</a> [<a
-    href="http://www.apache.org/dist/james/mime4j/0.7.2/apache-mime4j-0.7.2-bin.zip.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/mime4j/0.7.2/apache-mime4j-0.7.2-bin.zip.md5">MD5</a>]</li>
-    
-    <li>Source (ZIP Format): <a
-    href="[preferred]/james/mime4j/0.7.2/apache-mime4j-project-0.7.2-source-release.zip">apache-mime4j-0.7.2-src.zip</a> [<a
-    href="http://www.apache.org/dist/james/mime4j/0.7.2/apache-mime4j-project-0.7.2-source-release.zip.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/mime4j/0.7.2/apache-mime4j-project-0.7.2-source-release.zip.md5">MD5</a>]</li>
-    
-    <li><a
-    href="[preferred]/james/mime4j/">Other Files</a> (javadoc.jar, sha1 checksums...)</li>
-    
-    </ul>
+    <p>Apache Mime4J 0.8.1 is the latest stable version.</p>
+
+    <p>You can directly use the core library with maven:</p>
+
+    <pre>
+      <code>
+  &lt;dependency&gt;
+    &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
+    &lt;artifactId&gt;apache-mime4j-core&lt;/artifactId&gt;
+    &lt;version&gt;0.8.1&lt;/version&gt;
+  &lt;/dependency&gt;
+     </code>
+    </pre>
+
+    <p>In order to use Mime-4j DOM:</p>
+
+    <pre>
+      <code>
+  &lt;dependency&gt;
+    &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
+    &lt;artifactId&gt;apache-mime4j-dom&lt;/artifactId&gt;
+    &lt;version&gt;0.8.1&lt;/version&gt;
+  &lt;/dependency&gt;
+     </code>
+    </pre>
+
+    <p>An aggregator project is also available:</p>
+
+    <pre>
+      <code>
+  &lt;dependency&gt;
+    &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
+    &lt;artifactId&gt;apache-mime4j&lt;/artifactId&gt;
+    &lt;version&gt;0.8.1&lt;/version&gt;
+  &lt;/dependency&gt;
+     </code>
+    </pre>
   
   </section>
 


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


[05/18] james-project git commit: JAMES−2283 Decrease assertions level on subscribed mailboxes

Posted by ro...@apache.org.
JAMES−2283 Decrease assertions level on subscribed mailboxes


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

Branch: refs/heads/master
Commit: 82f96d06896537859bace69e96896ba5178eec65
Parents: 11a9af3
Author: benwa <bt...@linagora.com>
Authored: Fri Jan 12 16:11:30 2018 +0700
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Fri Jan 12 16:48:28 2018 +0100

----------------------------------------------------------------------
 .../src/test/java/org/apache/james/jmap/ProvisioningTest.java  | 2 +-
 .../james/jmap/methods/integration/SetMailboxesMethodTest.java | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/82f96d06/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/ProvisioningTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/ProvisioningTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/ProvisioningTest.java
index 974a10c..c0faa3c 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/ProvisioningTest.java
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/ProvisioningTest.java
@@ -111,7 +111,7 @@ public abstract class ProvisioningTest {
 
         assertThat(jmapServer.getProbe(MailboxProbeImpl.class)
             .listSubscriptions(USER))
-            .containsOnlyElementsOf(DefaultMailboxes.DEFAULT_MAILBOXES);
+            .containsAll(DefaultMailboxes.DEFAULT_MAILBOXES);
     }
 
     private URIBuilder baseUri() {

http://git-wip-us.apache.org/repos/asf/james-project/blob/82f96d06/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java
index b0bb567..8127764 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java
@@ -388,7 +388,7 @@ public abstract class SetMailboxesMethodTest {
             .post("/jmap");
 
         assertThat(mailboxProbe.listSubscriptions(username))
-            .containsOnly(DefaultMailboxes.OUTBOX,
+            .contains(DefaultMailboxes.OUTBOX,
                 DefaultMailboxes.SENT,
                 DefaultMailboxes.TRASH,
                 DefaultMailboxes.DRAFTS,
@@ -417,7 +417,7 @@ public abstract class SetMailboxesMethodTest {
             .statusCode(200);
 
         assertThat(mailboxProbe.listSubscriptions(username))
-            .containsOnly(DefaultMailboxes.OUTBOX,
+            .contains(DefaultMailboxes.OUTBOX,
             DefaultMailboxes.SENT,
             DefaultMailboxes.TRASH,
             DefaultMailboxes.DRAFTS);
@@ -470,7 +470,7 @@ public abstract class SetMailboxesMethodTest {
             .statusCode(200);
 
         assertThat(mailboxProbe.listSubscriptions(username))
-            .containsOnly(DefaultMailboxes.OUTBOX,
+            .contains(DefaultMailboxes.OUTBOX,
                 DefaultMailboxes.SENT,
                 DefaultMailboxes.TRASH,
                 DefaultMailboxes.DRAFTS);


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


[13/18] james-project git commit: JAMES-2281 Protocols downloads should be fully handled via maven

Posted by ro...@apache.org.
JAMES-2281 Protocols downloads should be fully handled via maven


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

Branch: refs/heads/master
Commit: 591cf2ae2b6887b14ece48f80a0ad22345350c18
Parents: d133f19
Author: benwa <bt...@linagora.com>
Authored: Mon Jan 8 10:03:42 2018 +0700
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Fri Jan 12 16:49:39 2018 +0100

----------------------------------------------------------------------
 src/site/xdoc/download.xml | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/591cf2ae/src/site/xdoc/download.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/download.xml b/src/site/xdoc/download.xml
index ebad7f3..5be1f89 100644
--- a/src/site/xdoc/download.xml
+++ b/src/site/xdoc/download.xml
@@ -414,19 +414,17 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
 
   <section name="Apache James Protocols">
   
-    <p>Apache James Protocols 1.6.2 is the latest stable version:</p>
+    <p>Apache James Protocols 3.0.1 is the latest stable version.</p>
+
     <ul>
-    <li>Source (Unix TAR): <a
-    href="[preferred]/james/protocols/1.6.3/protocols-1.6.2-source-release.tar.gz">protocols-1.6.2-source-release.tar.gz</a> [<a
-    href="http://www.apache.org/dist/james/protocols/1.6.3/protocols-1.6.2-source-release.tar.gz.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/protocols/1.6.3/protocols-1.6.2-source-release.tar.gz.md5">MD5</a>]</li>
-    
-    <li>Source (ZIP Format): <a
-    href="[preferred]/james/protocols/1.6.3/protocols-1.6.2-source-release.zip">protocols-1.6.2-source-release.zip</a> [<a
-    href="http://www.apache.org/dist/james/protocols/1.6.3/protocols-1.6.2-source-release.zip.asc">PGP</a>][<a
-    href="http://www.apache.org/dist/james/protocols/1.6.3/protocols-1.6.2-source-release.zip.md5">MD5</a>]</li>
-    <li>Jars (including source and javadocs) for the modules are distributed through the standard 
-    <a href='http://maven.apache.org'>Maven</a> repositories on <a href="http://repo1.maven.org/maven2/org/apache/james/protocols">http://repo1.maven.org/maven2/org/apache/james/protocols</a>.</li>
+      You can get the James implementation of various protocols using maven:
+      <li><a href="https://mvnrepository.com/artifact/org.apache.james.protocols/protocols-api/3.0.1">API</a></li>
+      <li><a href="https://mvnrepository.com/artifact/org.apache.james.protocols/protocols-netty/3.0.1">NETTY</a></li>
+      <li><a href="https://mvnrepository.com/artifact/org.apache.james.protocols/protocols-smtp/3.0.1">SMTP</a></li>
+      <li><a href="https://mvnrepository.com/artifact/org.apache.james.protocols/protocols-lmtp/3.0.1">LMTP</a></li>
+      <li><a href="https://mvnrepository.com/artifact/org.apache.james.protocols/protocols-imap/3.0.1">IMAP</a></li>
+      <li><a href="https://mvnrepository.com/artifact/org.apache.james.protocols/protocols-pop3/3.0.1">POP3</a></li>
+      <li><a href="https://mvnrepository.com/artifact/org.apache.james.protocols/protocols-managesieve/3.0.1">MANAGESIEVE</a></li>
     </ul>
   
   </section>


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


[15/18] james-project git commit: JAMES-2281 Add direct maven based download links

Posted by ro...@apache.org.
JAMES-2281 Add direct maven based download links


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

Branch: refs/heads/master
Commit: b683f0a196f04d56cde342080d33af6476fdc133
Parents: f9d0f44
Author: benwa <bt...@linagora.com>
Authored: Thu Jan 11 09:42:20 2018 +0700
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Fri Jan 12 16:49:39 2018 +0100

----------------------------------------------------------------------
 src/site/xdoc/download.xml | 65 +++++++++++++++++++++++++++++++++++++----
 1 file changed, 60 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b683f0a1/src/site/xdoc/download.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/download.xml b/src/site/xdoc/download.xml
index 9360b1c..68d6fda 100644
--- a/src/site/xdoc/download.xml
+++ b/src/site/xdoc/download.xml
@@ -238,6 +238,11 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
      </code>
     </pre>
 
+    <p>Direct download link:
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-mime4j-core/0.8.1/apache-mime4j-core-0.8.1.jar">(Jar)</a>
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-mime4j-core/0.8.1/apache-mime4j-core-0.8.1-sources.jar">(Sources)</a>
+    </p>
+
     <p>In order to use Mime-4j DOM:</p>
 
     <pre>
@@ -250,6 +255,11 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
      </code>
     </pre>
 
+    <p>Direct download link:
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-mime4j-dom/0.8.1/apache-mime4j-dom-0.8.1.jar">(Jar)</a>
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-mime4j-dom/0.8.1/apache-mime4j-dom-0.8.1-sources.jar">(Sources)</a>
+    </p>
+
     <p>An aggregator project is also available:</p>
 
     <pre>
@@ -261,6 +271,11 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
   &lt;/dependency&gt;
      </code>
     </pre>
+
+    <p>Direct download link:
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-mime4j/0.8.1/apache-mime4j-0.8.1-bin.tar.gz">(Tar)</a>
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-mime4j/0.8.1/apache-mime4j-0.8.1-bin.zip">(Zip)</a>
+    </p>
   
   </section>
 
@@ -279,6 +294,11 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
   &lt;/dependency&gt;
       </code>
     </pre>
+
+    <p>Direct download link:
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-jspf/0.9.5/apache-jspf-0.9.5.jar">(Jar)</a>
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-jspf/0.9.5/apache-jspf-0.9.5-sources.jar">(Sources)</a>
+    </p>
   
   </section>
   
@@ -290,13 +310,18 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
 
     <pre>
       <code>
-        &lt;dependency&gt;
-        &lt;groupId&gt;org.apache.james.jdkim&lt;/groupId&gt;
-        &lt;artifactId&gt;apache-jdkim&lt;/artifactId&gt;
-        &lt;version&gt;0.2&lt;/version&gt;
-        &lt;/dependency&gt;
+  &lt;dependency&gt;
+    &lt;groupId&gt;org.apache.james.jdkim&lt;/groupId&gt;
+    &lt;artifactId&gt;apache-jdkim&lt;/artifactId&gt;
+    &lt;version&gt;0.2&lt;/version&gt;
+  &lt;/dependency&gt;
       </code>
     </pre>
+
+    <p>Direct download link:
+      <a href="http://central.maven.org/maven2/org/apache/james/jdkim/apache-jdkim/0.2/apache-jdkim-0.2-bin.tar.gz">(Tar)</a>
+      <a href="http://central.maven.org/maven2/org/apache/james/jdkim/apache-jdkim/0.2/apache-jdkim-0.2-bin.zip">(Zip)</a>
+    </p>
   
   </section>
   
@@ -316,6 +341,11 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
       </code>
     </pre>
 
+    <p>Direct download link:
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-jsieve-core/0.7/apache-jsieve-core-0.7.jar">(Jar)</a>
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-jsieve-core/0.7/apache-jsieve-core-0.7-sources.jar">(Sources)</a>
+    </p>
+
     <p>An aggregator project is also available:</p>
 
     <pre>
@@ -327,6 +357,11 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
   &lt;/dependency&gt;
       </code>
     </pre>
+
+    <p>Direct download link:
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-jsieve/0.7/apache-jsieve-0.7-project.tar.gz">(Tar)</a>
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-jsieve/0.7/apache-jsieve-0.7-project.zip">(Zip)</a>
+    </p>
   
   </section>
 
@@ -343,6 +378,11 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
   &lt;/dependency&gt;
       </code>
     </pre>
+
+    <p>Direct download link:
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-mailet-api/3.0.1/apache-mailet-api-3.0.1.jar">(Jar)</a>
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-mailet-api/3.0.1/apache-mailet-api-3.0.1-sources.jar">(Sources)</a>
+    </p>
     
   </section>
 
@@ -360,6 +400,11 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
       </code>
     </pre>
 
+    <p>Direct download link:
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-mailet-base/3.0.1/apache-mailet-base-3.0.1.jar">(Jar)</a>
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-mailet-base/3.0.1/apache-mailet-base-3.0.1-sources.jar">(Sources)</a>
+    </p>
+
   </section>
 
   <section name="Apache Mailet Standard">
@@ -376,6 +421,11 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
       </code>
     </pre>
 
+    <p>Direct download link:
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-mailet-standard/3.0.1/apache-mailet-standard-3.0.1.jar">(Jar)</a>
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-mailet-standard/3.0.1/apache-mailet-standard-3.0.1-tests.jar">(Sources)</a>
+    </p>
+
   </section>
 
   <section name="Apache Crypto Mailets">
@@ -407,6 +457,11 @@ is found <a href='http://www.apache.org/licenses/exports/'>here</a>.
   &lt;/dependency&gt;
       </code>
     </pre>
+
+    <p>Direct download links:
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-mailet-ai/3.0.1/apache-mailet-ai-3.0.1.jar">(Jar)</a>
+      <a href="http://central.maven.org/maven2/org/apache/james/apache-mailet-ai/3.0.1/apache-mailet-ai-3.0.1-sources.jar">(Sources)</a>
+    </p>
     
   </section>
 


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


[11/18] james-project git commit: JAMES-2281 Mailet API dependency in mailet quickstart was outdated

Posted by ro...@apache.org.
JAMES-2281 Mailet API dependency in mailet quickstart was outdated


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

Branch: refs/heads/master
Commit: 01fe84bca9f1dcd10a508b6b2253cbd6953b6657
Parents: 13f41d1
Author: benwa <bt...@linagora.com>
Authored: Mon Jan 8 14:11:17 2018 +0700
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Fri Jan 12 16:49:39 2018 +0100

----------------------------------------------------------------------
 src/site/markdown/mailet/quickstart.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/01fe84bc/src/site/markdown/mailet/quickstart.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/mailet/quickstart.md b/src/site/markdown/mailet/quickstart.md
index 6af09d5..7e8e699 100644
--- a/src/site/markdown/mailet/quickstart.md
+++ b/src/site/markdown/mailet/quickstart.md
@@ -20,7 +20,7 @@ Just include something like this in your *pom.xml*
     <dependency>
         <groupId>org.apache.james</groupId>
         <artifactId>apache-mailet-api</artifactId>
-        <version>2.5.0</version>
+        <version>3.0.1</version>
     </dependency>
     <!-- other dependencies -->
 </dependencies>


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