Author: btellier
Date: Thu Dec 17 14:59:02 2015
New Revision: 1720582
URL: http://svn.apache.org/viewvc?rev=1720582&view=rev
Log:
JAMES-1618 SETACTIVE should be RFC-5804 compliant
Added:
james/project/trunk/mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/testsuite/SetActiveTest.java
james/project/trunk/mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/setactive.test
Modified:
james/project/trunk/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/ManageSieveFileTest.java
james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/SetActive.java
james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/core/CoreProcessor.java
james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/transcode/LineToCore.java
james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/transcode/LineToCoreToLine.java
Added:
james/project/trunk/mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/testsuite/SetActiveTest.java
URL:
http://svn.apache.org/viewvc/james/project/trunk/mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/testsuite/SetActiveTest.java?rev=1720582&view=auto
==============================================================================
---
james/project/trunk/mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/testsuite/SetActiveTest.java
(added)
+++
james/project/trunk/mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/testsuite/SetActiveTest.java
Thu Dec 17 14:59:02 2015
@@ -0,0 +1,47 @@
+/****************************************************************
+ * 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.mpt.testsuite;
+
+import com.google.inject.Inject;
+import org.apache.james.mpt.host.ManageSieveHostSystem;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.Locale;
+
+public class SetActiveTest extends ManageSieveMPTTest {
+
+ @Inject
+ private static ManageSieveHostSystem hostSystem;
+
+ public SetActiveTest() throws Exception {
+ super(hostSystem);
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ }
+
+ @Test
+ public void setActiveShouldWork() throws Exception {
+ scriptTest("setactive", Locale.US);
+ }
+}
Added:
james/project/trunk/mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/setactive.test
URL:
http://svn.apache.org/viewvc/james/project/trunk/mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/setactive.test?rev=1720582&view=auto
==============================================================================
---
james/project/trunk/mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/setactive.test
(added)
+++
james/project/trunk/mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/setactive.test
Thu Dec 17 14:59:02 2015
@@ -0,0 +1,45 @@
+################################################################
+# 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. #
+################################################################
+
+C: SETACTIVE
+S: NO "Missing argument: script name"
+
+C: SETACTIVE "foo"
+S: NO
+
+C: AUTHENTICATE "PLAIN"
+S: \+ ""
+C: user password
+S: OK authentication successfull
+
+C: SETACTIVE "foo"
+S: NO \(NONEXISTENT\) "There is no script by that name"
+
+C: PUTSCRIPT "mysievescript" {110+}
+C: require ["fileinto"];
+C:
+C: if envelope :contains "to" "tmartin+sent" {
+C: fileinto "INBOX.sent";
+C: }
+S: OK
+
+C: SETACTIVE "mysievescript"
+S: OK
+
+
Modified:
james/project/trunk/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/ManageSieveFileTest.java
URL:
http://svn.apache.org/viewvc/james/project/trunk/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/ManageSieveFileTest.java?rev=1720582&r1=1720581&r2=1720582&view=diff
==============================================================================
---
james/project/trunk/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/ManageSieveFileTest.java
(original)
+++
james/project/trunk/mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/ManageSieveFileTest.java
Thu Dec 17 14:59:02 2015
@@ -25,6 +25,7 @@ import org.apache.james.mpt.testsuite.Ha
import org.apache.james.mpt.testsuite.LogoutTest;
import org.apache.james.mpt.testsuite.NoopTest;
import org.apache.james.mpt.testsuite.PutScriptTest;
+import org.apache.james.mpt.testsuite.SetActiveTest;
import org.apache.james.mpt.testsuite.StartTlsTest;
import org.apache.james.mpt.testsuite.UnauthenticatedTest;
import org.apache.onami.test.OnamiSuite;
@@ -42,7 +43,8 @@ import org.junit.runners.Suite;
StartTlsTest.class,
CapabilityTest.class,
HaveSpaceTest.class,
- PutScriptTest.class
+ PutScriptTest.class,
+ SetActiveTest.class
})
public class ManageSieveFileTest {
}
Modified:
james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/SetActive.java
URL:
http://svn.apache.org/viewvc/james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/SetActive.java?rev=1720582&r1=1720581&r2=1720582&view=diff
==============================================================================
---
james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/SetActive.java
(original)
+++
james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/SetActive.java
Thu Dec 17 14:59:02 2015
@@ -23,12 +23,14 @@ package org.apache.james.managesieve.api
import org.apache.james.managesieve.api.AuthenticationRequiredException;
import org.apache.james.managesieve.api.Session;
import org.apache.james.sieverepository.api.exception.ScriptNotFoundException;
+import org.apache.james.sieverepository.api.exception.StorageException;
+import org.apache.james.sieverepository.api.exception.UserNotFoundException;
/**
* @see <a href=http://tools.ietf.org/html/rfc5804#section-2.8>RFC 5804
SETACTIVE Command</a>
*/
public interface SetActive {
- void setActive(Session session, String name) throws
AuthenticationRequiredException, ScriptNotFoundException;
+ void setActive(Session session, String name) throws
AuthenticationRequiredException, ScriptNotFoundException,
UserNotFoundException, StorageException;
}
Modified:
james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/core/CoreProcessor.java
URL:
http://svn.apache.org/viewvc/james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/core/CoreProcessor.java?rev=1720582&r1=1720581&r2=1720582&view=diff
==============================================================================
---
james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/core/CoreProcessor.java
(original)
+++
james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/core/CoreProcessor.java
Thu Dec 17 14:59:02 2015
@@ -158,15 +158,9 @@ public class CoreProcessor implements Co
}
@Override
- public void setActive(Session session, String name) throws
AuthenticationRequiredException, ScriptNotFoundException {
+ public void setActive(Session session, String name) throws
AuthenticationRequiredException, ScriptNotFoundException,
UserNotFoundException, StorageException {
authenticationCheck(session);
- try {
- sieveRepository.setActive(session.getUser(), name);
- } catch (UserNotFoundException ex) {
- throw new ManageSieveRuntimeException(ex);
- } catch (StorageException ex) {
- throw new ManageSieveRuntimeException(ex);
- }
+ sieveRepository.setActive(session.getUser(), name);
}
@Override
Modified:
james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/transcode/LineToCore.java
URL:
http://svn.apache.org/viewvc/james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/transcode/LineToCore.java?rev=1720582&r1=1720581&r2=1720582&view=diff
==============================================================================
---
james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/transcode/LineToCore.java
(original)
+++
james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/transcode/LineToCore.java
Thu Dec 17 14:59:02 2015
@@ -197,7 +197,7 @@ public class LineToCore{
core.renameScript(session, oldName, newName);
}
- public void setActive(Session session, String args) throws
AuthenticationRequiredException, ScriptNotFoundException, ArgumentException {
+ public void setActive(Session session, String args) throws
AuthenticationRequiredException, ScriptNotFoundException, ArgumentException,
UserNotFoundException, StorageException {
String scriptName = ParserUtils.getScriptName(args);
if (null == scriptName || scriptName.isEmpty()) {
throw new ArgumentException("Missing argument: script name");
Modified:
james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/transcode/LineToCoreToLine.java
URL:
http://svn.apache.org/viewvc/james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/transcode/LineToCoreToLine.java?rev=1720582&r1=1720581&r2=1720582&view=diff
==============================================================================
---
james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/transcode/LineToCoreToLine.java
(original)
+++
james/project/trunk/protocols/managesieve/src/main/java/org/apache/james/managesieve/transcode/LineToCoreToLine.java
Thu Dec 17 14:59:02 2015
@@ -261,6 +261,10 @@ public class LineToCoreToLine {
return "NO (NONEXISTENT) \"There is no script by that name\"";
} catch (ArgumentException ex) {
return "NO \"" + ex.getMessage() + "\"";
+ } catch (UserNotFoundException e) {
+ return "NO : User not found";
+ } catch (StorageException e) {
+ return "NO : Storage exception : " + e.getMessage();
}
return "OK";
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]