[jira] [Closed] (JAMES-2056) Host & port should not be mandatory

2017-06-13 Thread Tellier Benoit (JIRA)

 [ 
https://issues.apache.org/jira/browse/JAMES-2056?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tellier Benoit closed JAMES-2056.
-

Merged

> Host & port should not be mandatory
> ---
>
> Key: JAMES-2056
> URL: https://issues.apache.org/jira/browse/JAMES-2056
> Project: James Server
>  Issue Type: Improvement
>  Components: CLI
>Reporter: Antoine Duprat
>
> The host and the port should not be mandatory.
> We should add default for those entries:
> - host: 127.0.0.1
> - port: 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Closed] (JAMES-2055) Add an option to desactivate CONDSTORE and make it false by default

2017-06-13 Thread Tellier Benoit (JIRA)

 [ 
https://issues.apache.org/jira/browse/JAMES-2055?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tellier Benoit closed JAMES-2055.
-

> Add an option to desactivate CONDSTORE and make it false by default
> ---
>
> Key: JAMES-2055
> URL: https://issues.apache.org/jira/browse/JAMES-2055
> Project: James Server
>  Issue Type: Improvement
>Reporter: Antoine Duprat
>Assignee: Antoine Duprat
>
> CONDSTORE is known to be broken.
> As it should not be necessary for common IMAP clients, we should just 
> deactivate it by default (remove the capability and the command).
> An option will be available for administrators to activate it (as an 
> experimental feature).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Resolved] (JAMES-2055) Add an option to desactivate CONDSTORE and make it false by default

2017-06-13 Thread Tellier Benoit (JIRA)

 [ 
https://issues.apache.org/jira/browse/JAMES-2055?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tellier Benoit resolved JAMES-2055.
---
Resolution: Fixed

https://github.com/linagora/james-project/pull/841 solved the issue.

> Add an option to desactivate CONDSTORE and make it false by default
> ---
>
> Key: JAMES-2055
> URL: https://issues.apache.org/jira/browse/JAMES-2055
> Project: James Server
>  Issue Type: Improvement
>Reporter: Antoine Duprat
>Assignee: Antoine Duprat
>
> CONDSTORE is known to be broken.
> As it should not be necessary for common IMAP clients, we should just 
> deactivate it by default (remove the capability and the command).
> An option will be available for administrators to activate it (as an 
> experimental feature).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Resolved] (JAMES-2056) Host & port should not be mandatory

2017-06-13 Thread Tellier Benoit (JIRA)

 [ 
https://issues.apache.org/jira/browse/JAMES-2056?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tellier Benoit resolved JAMES-2056.
---
Resolution: Fixed

https://github.com/linagora/james-project/pull/842

> Host & port should not be mandatory
> ---
>
> Key: JAMES-2056
> URL: https://issues.apache.org/jira/browse/JAMES-2056
> Project: James Server
>  Issue Type: Improvement
>  Components: CLI
>Reporter: Antoine Duprat
>
> The host and the port should not be mandatory.
> We should add default for those entries:
> - host: 127.0.0.1
> - port: 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[4/5] james-project git commit: JAMES-2055 Activate or not CONDSTORE in capabilities

2017-06-13 Thread btellier
JAMES-2055 Activate or not CONDSTORE in capabilities


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

Branch: refs/heads/master
Commit: 1fa2d62f2ec2017d50e6acac34ee38277cc5d9d0
Parents: 281805d
Author: Antoine Duprat 
Authored: Mon Jun 12 14:03:40 2017 +0200
Committer: benwa 
Committed: Wed Jun 14 12:43:37 2017 +0700

--
 .../imap/processor/CapabilityProcessor.java |  8 +++
 .../imap/processor/CapabilityProcessorTest.java | 63 
 2 files changed, 71 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/james-project/blob/1fa2d62f/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java
--
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java
index 00e056d..828c442 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java
@@ -83,6 +83,14 @@ public class CapabilityProcessor extends 
AbstractMailboxProcessorhttp://git-wip-us.apache.org/repos/asf/james-project/blob/1fa2d62f/protocols/imap/src/test/java/org/apache/james/imap/processor/CapabilityProcessorTest.java
--
diff --git 
a/protocols/imap/src/test/java/org/apache/james/imap/processor/CapabilityProcessorTest.java
 
b/protocols/imap/src/test/java/org/apache/james/imap/processor/CapabilityProcessorTest.java
new file mode 100644
index 000..cfebddf
--- /dev/null
+++ 
b/protocols/imap/src/test/java/org/apache/james/imap/processor/CapabilityProcessorTest.java
@@ -0,0 +1,63 @@
+/
+ * 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.imap.processor;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.util.Set;
+
+import org.apache.james.imap.api.ImapConfiguration;
+import org.apache.james.imap.api.ImapConstants;
+import org.apache.james.imap.api.message.response.StatusResponseFactory;
+import org.apache.james.imap.api.process.ImapProcessor;
+import org.apache.james.imap.processor.base.UnknownRequestProcessor;
+import org.apache.james.mailbox.MailboxManager;
+import org.apache.james.metrics.api.MetricFactory;
+import org.junit.Before;
+import org.junit.Test;
+
+public class CapabilityProcessorTest {
+
+private CapabilityProcessor testee;
+
+@Before
+public void setup() {
+StatusResponseFactory statusResponseFactory = null;
+ImapProcessor imapProcessor = new 
UnknownRequestProcessor(statusResponseFactory);
+MailboxManager mailboxManager = null;
+MetricFactory metricFactory = null;
+testee = new CapabilityProcessor(imapProcessor, mailboxManager, 
statusResponseFactory, metricFactory);
+}
+
+@Test
+public void condstoreShouldBeSupportedWhenSelectedFor() {
+
testee.configure(ImapConfiguration.builder().isCondstoreEnable(true).build());
+
+Set supportedCapabilities = 
testee.getSupportedCapabilities(null);
+
assertThat(supportedCapabilities).contains(ImapConstants.SUPPORTS_CONDSTORE);
+}
+
+@Test
+public void condstoreShouldBeNotSupportedByDefault() {
+testee.configure(ImapConfiguration.builder().build());
+
+   

[2/5] james-project git commit: JAMES-2055 Remove static methods

2017-06-13 Thread btellier
JAMES-2055 Remove static methods


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

Branch: refs/heads/master
Commit: 02737f5b5c23924ffb7566a4ce13533654e86e5b
Parents: 1003748
Author: Antoine Duprat 
Authored: Mon Jun 12 11:55:35 2017 +0200
Committer: benwa 
Committed: Wed Jun 14 12:43:21 2017 +0700

--
 .../james/imap/processor/CapabilityProcessor.java   |  9 +
 .../james/imap/processor/DefaultProcessorChain.java |  2 +-
 .../apache/james/imap/processor/EnableProcessor.java| 12 +++-
 3 files changed, 13 insertions(+), 10 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/james-project/blob/02737f5b/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java
--
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java
index ac1c7c8..00e056d 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java
@@ -25,6 +25,7 @@ import static 
org.apache.james.imap.api.ImapConstants.SUPPORTS_LITERAL_PLUS;
 import static org.apache.james.imap.api.ImapConstants.SUPPORTS_RFC3348;
 import static org.apache.james.imap.api.ImapConstants.UTF8;
 import static org.apache.james.imap.api.ImapConstants.VERSION;
+
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashSet;
@@ -60,13 +61,13 @@ public class CapabilityProcessor extends 
AbstractMailboxProcessor capabilities = 
new ArrayList();
-private static final Set disabledCaps = new HashSet();
+private final List capabilities = new 
ArrayList();
+private final Set disabledCaps = new HashSet();
 
 public CapabilityProcessor(ImapProcessor next, MailboxManager 
mailboxManager, StatusResponseFactory factory, 
List capabilities,
 MetricFactory metricFactory) {
 this(next, mailboxManager, factory, metricFactory);
-CapabilityProcessor.capabilities.addAll(capabilities);
+capabilities.addAll(capabilities);
 
 }
 
@@ -122,7 +123,7 @@ public class CapabilityProcessor extends 
AbstractMailboxProcessor getSupportedCapabilities(ImapSession session) {
+public Set getSupportedCapabilities(ImapSession session) {
 Set caps = new HashSet();
 for (CapabilityImplementingProcessor capability : capabilities) {
 caps.addAll(capability.getImplementedCapabilities(session));

http://git-wip-us.apache.org/repos/asf/james-project/blob/02737f5b/protocols/imap/src/main/java/org/apache/james/imap/processor/DefaultProcessorChain.java
--
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/DefaultProcessorChain.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/DefaultProcessorChain.java
index 322de09..93946ae 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/DefaultProcessorChain.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/DefaultProcessorChain.java
@@ -104,7 +104,7 @@ public class DefaultProcessorChain {
 final ListRightsProcessor listRightsProcessor = new 
ListRightsProcessor(deleteACLProcessor, mailboxManager, statusResponseFactory, 
metricFactory);
 final MyRightsProcessor myRightsProcessor = new 
MyRightsProcessor(listRightsProcessor, mailboxManager, statusResponseFactory, 
metricFactory);
 
-final EnableProcessor enableProcessor = new 
EnableProcessor(myRightsProcessor, mailboxManager, statusResponseFactory, 
metricFactory);
+final EnableProcessor enableProcessor = new 
EnableProcessor(myRightsProcessor, mailboxManager, statusResponseFactory, 
metricFactory, capabilityProcessor);
 
 final GetQuotaProcessor getQuotaProcessor = new 
GetQuotaProcessor(enableProcessor, mailboxManager, statusResponseFactory, 
quotaManager, quotaRootResolver, metricFactory);
 final SetQuotaProcessor setQuotaProcessor = new 
SetQuotaProcessor(getQuotaProcessor, mailboxManager, statusResponseFactory, 
metricFactory);

http://git-wip-us.apache.org/repos/asf/james-project/blob/02737f5b/protocols/imap/src/main/java/org/apache/james/imap/processor/EnableProcessor.java
--
diff --git 

[5/5] james-project git commit: JAMES-2055 Add MPT test on configurable capabilities

2017-06-13 Thread btellier
JAMES-2055 Add MPT test on configurable capabilities


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

Branch: refs/heads/master
Commit: 28cfa6d6f3cafb64f85a77bbd15d17438a929382
Parents: 1fa2d62
Author: Antoine Duprat 
Authored: Mon Jun 12 14:41:41 2017 +0200
Committer: benwa 
Committed: Wed Jun 14 12:43:41 2017 +0700

--
 .../apache/james/mpt/api/ImapHostSystem.java|  1 -
 .../james/mpt/host/ExternalHostSystem.java  |  1 -
 .../james/mpt/host/JamesImapHostSystem.java |  6 ++-
 .../james/mpt/imapmailbox/suite/Condstore.java  | 57 
 .../james/imap/scripts/CondstoreDisable.test| 25 +
 .../james/imap/scripts/CondstoreEnable.test | 25 +
 .../inmemory/InMemoryMailboxTest.java   |  2 +
 .../inmemory/InMemoryMailboxTestModule.java |  6 ++-
 8 files changed, 118 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/james-project/blob/28cfa6d6/mpt/core/src/main/java/org/apache/james/mpt/api/ImapHostSystem.java
--
diff --git 
a/mpt/core/src/main/java/org/apache/james/mpt/api/ImapHostSystem.java 
b/mpt/core/src/main/java/org/apache/james/mpt/api/ImapHostSystem.java
index dbff398..472b227 100644
--- a/mpt/core/src/main/java/org/apache/james/mpt/api/ImapHostSystem.java
+++ b/mpt/core/src/main/java/org/apache/james/mpt/api/ImapHostSystem.java
@@ -28,5 +28,4 @@ public interface ImapHostSystem extends HostSystem {
 void createMailbox(MailboxPath mailboxPath) throws Exception;
 
 void setQuotaLimits(long maxMessageQuota, long maxStorageQuota) throws 
Exception;
-
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/28cfa6d6/mpt/core/src/main/java/org/apache/james/mpt/host/ExternalHostSystem.java
--
diff --git 
a/mpt/core/src/main/java/org/apache/james/mpt/host/ExternalHostSystem.java 
b/mpt/core/src/main/java/org/apache/james/mpt/host/ExternalHostSystem.java
index 1b3d6a1..be59cb3 100644
--- a/mpt/core/src/main/java/org/apache/james/mpt/host/ExternalHostSystem.java
+++ b/mpt/core/src/main/java/org/apache/james/mpt/host/ExternalHostSystem.java
@@ -112,5 +112,4 @@ public class ExternalHostSystem extends 
ExternalSessionFactory implements ImapHo
 public void setQuotaLimits(long maxMessageQuota, long maxStorageQuota) 
throws Exception {
 throw new NotImplementedException();
 }
-
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/28cfa6d6/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java
--
diff --git 
a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java
 
b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java
index 149209a..e5eb9c4 100644
--- 
a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java
+++ 
b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java
@@ -27,6 +27,7 @@ import 
org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.commons.configuration.plist.PropertyListConfiguration;
 import org.apache.james.adapter.mailbox.store.UserRepositoryAuthenticator;
 import org.apache.james.adapter.mailbox.store.UserRepositoryAuthorizator;
+import org.apache.james.imap.api.ImapConfiguration;
 import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.decode.ImapDecoder;
 import org.apache.james.imap.decode.main.ImapRequestStreamHandler;
@@ -159,5 +160,8 @@ public abstract class JamesImapHostSystem implements 
ImapHostSystem {
 configuration.addProperty("administratorId", "imapuser");
 return configuration;
 }
-
+
+public void configure(ImapConfiguration imapConfiguration) {
+processor.configure(imapConfiguration);
+}
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/28cfa6d6/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/Condstore.java
--
diff --git 
a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/Condstore.java
 
b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/Condstore.java
new file mode 100644
index 000..73caef5
--- /dev/null
+++ 

[1/5] james-project git commit: JAMES-2056 Add default values for host & port in the CLI

2017-06-13 Thread btellier
Repository: james-project
Updated Branches:
  refs/heads/master 96d1c4ede -> 28cfa6d6f


JAMES-2056 Add default values for host & port in the CLI


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

Branch: refs/heads/master
Commit: 1003748307955a723b38dec7efdfa69556c9b10f
Parents: 96d1c4e
Author: Antoine Duprat 
Authored: Tue Jun 13 13:51:02 2017 +0200
Committer: Antoine Duprat 
Committed: Tue Jun 13 13:51:02 2017 +0200

--
 .../java/org/apache/james/cli/ServerCmd.java| 25 +-
 .../org/apache/james/cli/ServerCmdTest.java | 35 
 2 files changed, 51 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/james-project/blob/10037483/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
--
diff --git 
a/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java 
b/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
index a9f6e69..efbf4b6 100644
--- a/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
+++ b/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
@@ -28,7 +28,6 @@ import java.util.Map.Entry;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.CommandLineParser;
 import org.apache.commons.cli.HelpFormatter;
-import org.apache.commons.cli.Option;
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
 import org.apache.commons.cli.PosixParser;
@@ -58,6 +57,7 @@ import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Joiner;
+import com.google.common.base.Strings;
 
 /**
  * Command line utility for managing various aspect of the James server.
@@ -68,16 +68,14 @@ public class ServerCmd {
 public static final String PORT_OPT_LONG = "port";
 public static final String PORT_OPT_SHORT = "p";
 
+private static final String DEFAULT_HOST = "127.0.0.1";
 private static final int DEFAULT_PORT = ;
 private static final Logger LOG = LoggerFactory.getLogger(ServerCmd.class);
 
 private static Options createOptions() {
-Options options = new Options();
-Option optHost = new Option(HOST_OPT_SHORT, HOST_OPT_LONG, true, "node 
hostname or ip address");
-optHost.setRequired(true);
-options.addOption(optHost);
-options.addOption(PORT_OPT_SHORT, PORT_OPT_LONG, true, "remote jmx 
agent port number");
-return options;
+return new Options()
+.addOption(HOST_OPT_SHORT, HOST_OPT_LONG, true, "node hostname 
or ip address")
+.addOption(PORT_OPT_SHORT, PORT_OPT_LONG, true, "remote jmx 
agent port number");
 }
 
 /**
@@ -110,7 +108,7 @@ public class ServerCmd {
 StopWatch stopWatch = new StopWatch();
 stopWatch.start();
 CommandLine cmd = parseCommandLine(args);
-JmxConnection jmxConnection = new 
JmxConnection(cmd.getOptionValue(HOST_OPT_LONG), getPort(cmd));
+JmxConnection jmxConnection = new JmxConnection(getHost(cmd), 
getPort(cmd));
 CmdType cmdType = new ServerCmd(
 new JmxDataProbe().connect(jmxConnection),
 new JmxMailboxProbe().connect(jmxConnection),
@@ -148,9 +146,18 @@ public class ServerCmd {
 }
 
 @VisibleForTesting
+static String getHost(CommandLine cmd) {
+String host = cmd.getOptionValue(HOST_OPT_LONG);
+if (Strings.isNullOrEmpty(host)) {
+return DEFAULT_HOST;
+}
+return host;
+}
+
+@VisibleForTesting
 static int getPort(CommandLine cmd) throws ParseException {
 String portNum = cmd.getOptionValue(PORT_OPT_LONG);
-if (portNum != null) {
+if (!Strings.isNullOrEmpty(portNum)) {
 try {
 return validatePortNumber(Integer.parseInt(portNum));
 } catch (NumberFormatException e) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/10037483/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java
--
diff --git 
a/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java 
b/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java
index 2e2ae1e..570167b 100644
--- a/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java
+++ b/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java
@@ 

[3/5] james-project git commit: JAMES-2055 Add ability to manage CONDSTORE in IMAP configuration

2017-06-13 Thread btellier
JAMES-2055 Add ability to manage CONDSTORE in IMAP configuration


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

Branch: refs/heads/master
Commit: 281805d67de9bb9753a5153a114faa5a22913987
Parents: 02737f5
Author: Antoine Duprat 
Authored: Mon Jun 12 14:02:57 2017 +0200
Committer: benwa 
Committed: Wed Jun 14 12:43:32 2017 +0700

--
 .../james/imap/api/ImapConfiguration.java   | 27 +---
 .../james/imap/api/ImapConfigurationTest.java   | 33 ++--
 2 files changed, 53 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/james-project/blob/281805d6/protocols/imap/src/main/java/org/apache/james/imap/api/ImapConfiguration.java
--
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/api/ImapConfiguration.java 
b/protocols/imap/src/main/java/org/apache/james/imap/api/ImapConfiguration.java
index e0b26ca..d06ac60 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/api/ImapConfiguration.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/api/ImapConfiguration.java
@@ -59,16 +59,20 @@ public class ImapConfiguration {
 return !StringUtils.isBlank(disableCap);
 }
 
+private static final boolean DEFAULT_CONDSTORE_DISABLE = false;
+
 private Optional idleTimeInterval;
 private Optional idleTimeIntervalUnit;
 private Optional enableIdle;
 private ImmutableSet disabledCaps;
+private Optional isCondstoreEnable;
 
 private Builder() {
 this.idleTimeInterval = Optional.absent();
 this.idleTimeIntervalUnit = Optional.absent();
 this.enableIdle = Optional.absent();
 this.disabledCaps = ImmutableSet.of();
+this.isCondstoreEnable = Optional.absent();
 }
 
 public Builder idleTimeInterval(long idleTimeInterval) {
@@ -101,6 +105,12 @@ public class ImapConfiguration {
 this.disabledCaps = ImmutableSet.of(disableCap);
 return this;
 }
+
+public Builder isCondstoreEnable(boolean isCondstoreEnable) {
+this.isCondstoreEnable = Optional.of(isCondstoreEnable);
+return this;
+}
+
 public ImapConfiguration build() {
 ImmutableSet normalizeDisableCaps = 
FluentIterable.from(disabledCaps)
 .filter(NO_BLANK)
@@ -110,7 +120,8 @@ public class ImapConfiguration {
 enableIdle.or(DEFAULT_ENABLE_IDLE),
 idleTimeInterval.or(DEFAULT_HEARTBEAT_INTERVAL_IN_SECONDS),
 idleTimeIntervalUnit.or(DEFAULT_HEARTBEAT_INTERVAL_UNIT),
-normalizeDisableCaps);
+normalizeDisableCaps,
+isCondstoreEnable.or(DEFAULT_CONDSTORE_DISABLE));
 }
 }
 
@@ -118,12 +129,14 @@ public class ImapConfiguration {
 private final TimeUnit idleTimeIntervalUnit;
 private final ImmutableSet disabledCaps;
 private final boolean enableIdle;
+private final boolean isCondstoreEnable;
 
-private ImapConfiguration(boolean enableIdle, long idleTimeInterval, 
TimeUnit idleTimeIntervalUnit, ImmutableSet disabledCaps) {
+private ImapConfiguration(boolean enableIdle, long idleTimeInterval, 
TimeUnit idleTimeIntervalUnit, ImmutableSet disabledCaps, boolean 
isCondstoreEnable) {
 this.enableIdle = enableIdle;
 this.idleTimeInterval = idleTimeInterval;
 this.idleTimeIntervalUnit = idleTimeIntervalUnit;
 this.disabledCaps = disabledCaps;
+this.isCondstoreEnable = isCondstoreEnable;
 }
 
 public long getIdleTimeInterval() {
@@ -141,6 +154,10 @@ public class ImapConfiguration {
 public boolean isEnableIdle() {
 return enableIdle;
 }
+
+public boolean isCondstoreEnable() {
+return isCondstoreEnable;
+}
 
 @Override
 public final boolean equals(Object obj) {
@@ -149,14 +166,15 @@ public class ImapConfiguration {
 return Objects.equal(that.isEnableIdle(), enableIdle)
 && Objects.equal(that.getIdleTimeInterval(), idleTimeInterval)
 && Objects.equal(that.getIdleTimeIntervalUnit(), 
idleTimeIntervalUnit)
-&& Objects.equal(that.getDisabledCaps(), disabledCaps);
+&& Objects.equal(that.getDisabledCaps(), disabledCaps)
+&& Objects.equal(that.isCondstoreEnable(), isCondstoreEnable);
 }
 return false;
 }
 
 @Override
 public 

Re: Call for vote: mime4J version 0.8.1

2017-06-13 Thread Eric Charles

+1

Thank you Benoit,

Eric

On 09/06/17 05:09, Benoit Tellier wrote:

Hello,

I would like to call a vote for a mime4J release.

This release includes:

 - Work on the MIME4J DOM date:
   - provide a way to know the header Date is absent
   - correction of header parsing when century is absent

This release is a requirement for James 3.0 upcoming release (we should
not depend on SNAPSHOT dependencies).

This is a majority approval, as described in
http://www.apache.org/foundation/glossary.html#MajorityApproval. As a
reminder:
 - 3 binding +1 required (PMCs)
 - Majority of +1
 - This can not be vetoed

You can check the maven release artifact:
 - https://repository.apache.org/#stagingRepositories #1013

Answer this email with:
 +1 to promote the release
 -1 to reject the release

The starts from 10 am 9th June 2017 UTC+7 and will be closed on 10 am
16th June 2017 UTC+7 (one week)

Best regards,

Tellier Benoit

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



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



[jira] [Created] (JAMES-2056) Host & port should not be mandatory

2017-06-13 Thread Antoine Duprat (JIRA)
Antoine Duprat created JAMES-2056:
-

 Summary: Host & port should not be mandatory
 Key: JAMES-2056
 URL: https://issues.apache.org/jira/browse/JAMES-2056
 Project: James Server
  Issue Type: Improvement
  Components: CLI
Reporter: Antoine Duprat


The host and the port should not be mandatory.
We should add default for those entries:
- host: 127.0.0.1
- port: 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Resolved] (JAMES-2051) Update cassandra quick-start documentation

2017-06-13 Thread Tellier Benoit (JIRA)

 [ 
https://issues.apache.org/jira/browse/JAMES-2051?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tellier Benoit resolved JAMES-2051.
---
Resolution: Fixed

https://github.com/linagora/james-project/pull/836 proposes improvements for 
the getting started

> Update cassandra quick-start documentation
> --
>
> Key: JAMES-2051
> URL: https://issues.apache.org/jira/browse/JAMES-2051
> Project: James Server
>  Issue Type: Bug
>Reporter: Antoine Duprat
>
> In order to prepare the James 3.0 release, we should:
> * check each commands
> * replace SNAPSHOT version



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Closed] (JAMES-2051) Update cassandra quick-start documentation

2017-06-13 Thread Tellier Benoit (JIRA)

 [ 
https://issues.apache.org/jira/browse/JAMES-2051?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tellier Benoit closed JAMES-2051.
-

> Update cassandra quick-start documentation
> --
>
> Key: JAMES-2051
> URL: https://issues.apache.org/jira/browse/JAMES-2051
> Project: James Server
>  Issue Type: Bug
>Reporter: Antoine Duprat
>
> In order to prepare the James 3.0 release, we should:
> * check each commands
> * replace SNAPSHOT version



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[2/2] james-project git commit: JAMES-2051 Rework James with Cassandra quick start documentation

2017-06-13 Thread btellier
JAMES-2051 Rework James with Cassandra quick start documentation


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

Branch: refs/heads/master
Commit: 96d1c4edec12196e68baf9360a354d71561c4bd0
Parents: 97a4b36
Author: Antoine Duprat 
Authored: Fri Jun 9 10:37:31 2017 +0200
Committer: benwa 
Committed: Tue Jun 13 14:13:09 2017 +0700

--
 src/site/xdoc/server/quick-start-cassandra.xml | 162 +---
 1 file changed, 143 insertions(+), 19 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/james-project/blob/96d1c4ed/src/site/xdoc/server/quick-start-cassandra.xml
--
diff --git a/src/site/xdoc/server/quick-start-cassandra.xml 
b/src/site/xdoc/server/quick-start-cassandra.xml
index 01faae5..d044b88 100644
--- a/src/site/xdoc/server/quick-start-cassandra.xml
+++ b/src/site/xdoc/server/quick-start-cassandra.xml
@@ -27,18 +27,16 @@
 
 
 
-  The goal of the document is to allow anyone to start with James on Docker 
as an operational mail server.
-  The method described bellow should not be used in production.
-
-  Alternatively a https://github.com/apache/james-project/blob/9502cfebfd9a4eaebbba7dda802d1fe0ad3589b7/dockerfiles/run/docker-compose.yml;>
-docker-compose is available for Guice + Cassandra + ElasticSearch
+  The goal of the document is to allow anyone to start a James instance as 
an operational mail server.
+  The two methods described bellow should not be used in production.
 
+  First method, from James source code:
 
 Step 0: Requirements
 
 
   * Java 8 SDK
-  * 512MB RAM (launches with -Xmx512M - can use less, can need more, depending 
on load)
+  * 2GB RAM
   * Docker 1.7.1+
   * Maven 3.3
 
@@ -54,7 +52,11 @@ Step 3: Compile
 
   * Compile the Guice Cassandra project
   
-$ mvn package -DskipTests -am -pl server/container/guice/cassandra-guice
+$ mvn package -DskipTests --also-make --projects 
server/container/guice/cassandra-guice
+
+  * Compile the James CLI project
+  
+$ mvn package -DskipTests -am -pl server/container/cli
 
 Step 3: Deploy
 ##
@@ -62,12 +64,12 @@ Step 3: Deploy
 3.1. Deploy Cassandra (optional)
 You may skip this part if you already have a running Cassandra on your network.
 
-$ docker run --name=cassandra cassandra:2.2.3
+$ docker run --detach=true --name=cassandra cassandra:2.2.3
 
 3.2. Deploy ElasticSearch (optional)
 You may skip this part if you already have a running ElasticSearch on your 
network.
 
-$ docker run --name=elasticsearch elasticsearch:2.2.1
+$ docker run --detach=true --name=elasticsearch elasticsearch:2.2.1
 
 Step 4: Configure
 #
@@ -75,37 +77,42 @@ Step 4: Configure
   * Follow the Cassandra guice configuration 
documentation.
   * We need to provide the key we will use for TLS. For obvious reasons, this 
is not provided in this git.
 
-Copy your TSL keys to ./conf/keystore or generate it using :
+Copy your TLS keys to ./conf/keystore or generate it using :
 
 $ keytool -genkey -alias james -keyalg RSA -keystore ./conf/keystore
 
 You will have to put the keystore password in the right xml files 
(imapserver.xml, pop3server.xml, smtpserver.xml)
 
+You are welcome to use the default configuration which can be found in the 
$PWD/dockerfiles/run/guice/cassandra/destination/conf folder.
+
 Step 5: Start
 #
 
   * Run James
 
-$ java -Dworking.directory=WORKING_PATH -jar 
server/container/cassandra-guice/target/james-server-cassandra-guice-beta5-SNAPSHOT.jar
+$ sudo java -Dworking.directory=WORKING_PATH -jar 
server/container/guice/cassandra-guice/target/james-server-cassandra-guice.jar
 
 Where :
-- WORKING_PATH is the path where are located your configuration file 
folder.
+- WORKING_PATH is the path of the folder which contains your 
configuration files.
+
+You have to run this command with the superuser, has some default ports are 
lower than 1000 (default imap, smtp...).
+You may get rid of that by overriding the default configuration
 
 Step 6: Create Domains and Users
 
 
 Time to add domains and users.
 
-$ java -jar 
server/container/cli/target/james-server-cli-3.0.0-beta5-SNAPSHOT.jar -h 
127.0.0.1 -p   adddomain DOMAIN
+$ java -jar server/container/cli/target/james-server-cli.jar -h 127.0.0.1 
-p   adddomain DOMAIN
 
-$ java -jar 
server/container/cli/target/james-server-cli-3.0.0-beta5-SNAPSHOT.jar -h 
127.0.0.1 -p   adduser USER_MAIL_ADDRESS PASSWORD
+$ java -jar server/container/cli/target/james-server-cli.jar -h 127.0.0.1 
-p   

[1/2] james-project git commit: JAMES-2051 Fix docker-compose usage

2017-06-13 Thread btellier
Repository: james-project
Updated Branches:
  refs/heads/master 4adf702e3 -> 96d1c4ede


JAMES-2051 Fix docker-compose usage


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

Branch: refs/heads/master
Commit: 97a4b36bfef05af5e7b60612a19cd07868a99fb0
Parents: 4adf702
Author: Antoine Duprat 
Authored: Fri Jun 9 13:25:35 2017 +0200
Committer: benwa 
Committed: Tue Jun 13 14:12:59 2017 +0700

--
 README.adoc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/james-project/blob/97a4b36b/README.adoc
--
diff --git a/README.adoc b/README.adoc
index 6eb4ce6..133c26f 100644
--- a/README.adoc
+++ b/README.adoc
@@ -30,7 +30,7 @@ james   | Started : true
 
 Then, a default domain has been created: james.local
 
-$ docker exec james java -jar /root/james-cli.jar -h 127.0.0.1 -p  
listdomains james.local
+$ docker exec james java -jar /root/james-cli.jar -h 127.0.0.1 -p  
listdomains
 
 James will respond to IMAP port 143 and SMTP port 25.
 You have to create users before playing, you may also create other domains...


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



[jira] [Commented] (JAMES-1789) Consolidate Documentation

2017-06-13 Thread Tellier Benoit (JIRA)

[ 
https://issues.apache.org/jira/browse/JAMES-1789?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16047509#comment-16047509
 ] 

Tellier Benoit commented on JAMES-1789:
---

See https://issues.apache.org/jira/browse/JAMES-1829

> Consolidate Documentation
> -
>
> Key: JAMES-1789
> URL: https://issues.apache.org/jira/browse/JAMES-1789
> Project: James Server
>  Issue Type: Sub-task
>  Components: Documentation
>Reporter: Eric Charles
>Assignee: Eric Charles
> Fix For: 3.0.0
>
>
> We have a few places with mixed valid, depreacated and invalid content
> http://james.apache.org/server/3/dev-build.html which is well updated.
> However http://james.apache.org/mime4j/start/build.html still refers to
> the svn tree.
> What about http://james.apache.org/contribute.html where we could also
> introduce the different repositories and explain the overall
> architecture of the James project and how we accept pull requests from
> github.
> This task tracks initiative to migrate content to the website.
> I have also create INFRA-12204 to migrate the site from svn to git.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



Re: [jira] [Updated] (JAMES-1829) Refreshing James Website

2017-06-13 Thread jackie issa


Sent from my iPhone

> On Jun 10, 2017, at 7:41 AM, Tellier Benoit (JIRA) 
>  wrote:
> 
> 
> [ 
> https://issues.apache.org/jira/browse/JAMES-1829?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
>  ]
> 
> Tellier Benoit updated JAMES-1829:
> --
>Description: 
> We should:
> 
> - Reorganize Manage section, to organize it by means of management, and not 
> based on object to manage
> - Review config sections with updates
> - Make packing support explicit
> - Explain what to configure and what not to configure depanding on packaging
> - Point Guice configuration to docker
> - Remove mailet news
> 
> As a User experience bonus: make Cli commands more readable using case.
> 
>> Refreshing James Website
>> 
>> 
>>Key: JAMES-1829
>>URL: https://issues.apache.org/jira/browse/JAMES-1829
>>Project: James Server
>> Issue Type: Improvement
>>   Reporter: Laura Royet
>> 
>> We should:
>> - Reorganize Manage section, to organize it by means of management, and not 
>> based on object to manage
>> - Review config sections with updates
>> - Make packing support explicit
>> - Explain what to configure and what not to configure depanding on packaging
>> - Point Guice configuration to docker
>> - Remove mailet news
>> As a User experience bonus: make Cli commands more readable using case.
> 
> 
> 
> --
> This message was sent by Atlassian JIRA
> (v6.3.15#6346)
> 
> -
> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
> For additional commands, e-mail: server-dev-h...@james.apache.org
> 

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