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: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org