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 rd...@apache.org on 2008/08/31 20:27:44 UTC

svn commit: r690748 - in /james/jsieve/trunk/src: main/java/org/apache/jsieve/ main/java/org/apache/jsieve/comparators/ main/java/org/apache/jsieve/tests/ main/java/org/apache/jsieve/tests/optional/ test/java/org/apache/jsieve/ test/java/org/apache/jsi...

Author: rdonkin
Date: Sun Aug 31 11:27:43 2008
New Revision: 690748

URL: http://svn.apache.org/viewvc?rev=690748&view=rev
Log:
Moved ComparatorManager usage into SieveFactory

Modified:
    james/jsieve/trunk/src/main/java/org/apache/jsieve/BaseSieveContext.java
    james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveContext.java
    james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveFactory.java
    james/jsieve/trunk/src/main/java/org/apache/jsieve/comparators/ComparatorUtils.java
    james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/AbstractCompatatorTest.java
    james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/Address.java
    james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/Header.java
    james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/optional/Envelope.java
    james/jsieve/trunk/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java
    james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/AddressParseTest.java
    james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/OpenedAddress.java

Modified: james/jsieve/trunk/src/main/java/org/apache/jsieve/BaseSieveContext.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/src/main/java/org/apache/jsieve/BaseSieveContext.java?rev=690748&r1=690747&r2=690748&view=diff
==============================================================================
--- james/jsieve/trunk/src/main/java/org/apache/jsieve/BaseSieveContext.java (original)
+++ james/jsieve/trunk/src/main/java/org/apache/jsieve/BaseSieveContext.java Sun Aug 31 11:27:43 2008
@@ -19,6 +19,7 @@
 
 package org.apache.jsieve;
 
+import org.apache.jsieve.comparators.Comparator;
 import org.apache.jsieve.exception.LookupException;
 
 /**
@@ -32,12 +33,14 @@
     
     private final CommandStateManager commandStateManager;
     private final CommandManager commandManager;
+    private final ComparatorManager comparatorManager;
     
-    public BaseSieveContext(final CommandManager commandManager) 
+    public BaseSieveContext(final CommandManager commandManager, final ComparatorManager comparatorManager) 
     {
         this.commandStateManager = new CommandStateManager();
         this.conditionManager = new ConditionManager();
         this.commandManager = commandManager;
+        this.comparatorManager = comparatorManager;
     }
     
     /**
@@ -75,4 +78,8 @@
     public ExecutableCommand getExecutable(String name) throws LookupException {
         return commandManager.newInstance(name);
     }
+
+    public Comparator getComparator(String name) throws LookupException {
+        return comparatorManager.newInstance(name);
+    }
 }

Modified: james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveContext.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveContext.java?rev=690748&r1=690747&r2=690748&view=diff
==============================================================================
--- james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveContext.java (original)
+++ james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveContext.java Sun Aug 31 11:27:43 2008
@@ -19,6 +19,7 @@
 
 package org.apache.jsieve;
 
+import org.apache.jsieve.comparators.Comparator;
 import org.apache.jsieve.exception.LookupException;
 
 /**
@@ -51,4 +52,6 @@
     public abstract void setConditionManager(final ConditionManager manager);
     //TODO: consider whether API can be consolidated
     public abstract ExecutableCommand getExecutable(String name) throws LookupException;
+    //TODO: consider whether API can be consolidated
+    public abstract Comparator getComparator(String name) throws LookupException;
 }

Modified: james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveFactory.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveFactory.java?rev=690748&r1=690747&r2=690748&view=diff
==============================================================================
--- james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveFactory.java (original)
+++ james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveFactory.java Sun Aug 31 11:27:43 2008
@@ -129,7 +129,8 @@
     public void evaluate(MailAdapter mail, Node startNode)
             throws SieveException {
         final CommandManager commandManager = CommandManager.getInstance();
-        SieveContext context = new BaseSieveContext(commandManager);
+        final ComparatorManager comparatorManager = ComparatorManager.getInstance();
+        SieveContext context = new BaseSieveContext(commandManager, comparatorManager);
         SieveParserVisitor visitor = new SieveParserVisitorImpl(context);
         try {
             // Evaluate the Nodes

Modified: james/jsieve/trunk/src/main/java/org/apache/jsieve/comparators/ComparatorUtils.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/src/main/java/org/apache/jsieve/comparators/ComparatorUtils.java?rev=690748&r1=690747&r2=690748&view=diff
==============================================================================
--- james/jsieve/trunk/src/main/java/org/apache/jsieve/comparators/ComparatorUtils.java (original)
+++ james/jsieve/trunk/src/main/java/org/apache/jsieve/comparators/ComparatorUtils.java Sun Aug 31 11:27:43 2008
@@ -22,7 +22,7 @@
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;
 
-import org.apache.jsieve.ComparatorManager;
+import org.apache.jsieve.SieveContext;
 import org.apache.jsieve.exception.LookupException;
 import org.apache.jsieve.exception.SieveException;
 import org.apache.jsieve.exception.SievePatternException;
@@ -47,19 +47,20 @@
      * 
      * @param comparatorName
      * @param matchType
-     * @param matchArgument
      * @param matchTarget
+     * @param matchArgument
+     * @param context TODO
      * @return boolean
      */
     public static boolean match(String comparatorName, String matchType,
-            String matchTarget, String matchArgument) throws SieveException {
+            String matchTarget, String matchArgument, SieveContext context) throws SieveException {
         boolean isMatched = false;
         if (matchType.equals(IS_TAG))
-            isMatched = is(comparatorName, matchTarget, matchArgument);
+            isMatched = is(comparatorName, matchTarget, matchArgument, context);
         else if (matchType.equals(CONTAINS_TAG))
-            isMatched = contains(comparatorName, matchTarget, matchArgument);
+            isMatched = contains(comparatorName, matchTarget, matchArgument, context);
         else if (matchType.equals(MATCHES_TAG))
-            isMatched = matches(comparatorName, matchTarget, matchArgument);
+            isMatched = matches(comparatorName, matchTarget, matchArgument, context);
         return isMatched;
     }
 
@@ -172,11 +173,12 @@
      * @param comparatorName
      * @param container
      * @param contents
+     * @param context TODO
      * @return boolean
      */
     public static boolean contains(String comparatorName, String container,
-            String contents) throws LookupException {
-        Contains comparatorObj = ComparatorManager.getInstance().newInstance(
+            String contents, SieveContext context) throws LookupException {
+        Contains comparatorObj =  context.getComparator(
                 comparatorName);
         return comparatorObj.contains(container, contents);
     }
@@ -188,11 +190,12 @@
      * @param comparatorName
      * @param string1
      * @param string2
+     * @param context TODO
      * @return boolean
      */
     public static boolean is(String comparatorName, String string1,
-            String string2) throws LookupException {
-        Equals comparatorObj = ComparatorManager.getInstance().newInstance(
+            String string2, SieveContext context) throws LookupException {
+        Equals comparatorObj = context.getComparator(
                 comparatorName);
         return comparatorObj.equals(string1, string2);
     }
@@ -205,12 +208,12 @@
      * @param comparatorName
      * @param string
      * @param glob
+     * @param context TODO
      * @return boolean
      */
     public static boolean matches(String comparatorName, String string,
-            String glob) throws SieveException {
-        Matches comparatorObj = ComparatorManager.getInstance().newInstance(
-                comparatorName);
+            String glob, SieveContext context) throws SieveException {
+        Matches comparatorObj = context.getComparator(comparatorName);
         return comparatorObj.matches(string, glob);
     }
 

Modified: james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/AbstractCompatatorTest.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/AbstractCompatatorTest.java?rev=690748&r1=690747&r2=690748&view=diff
==============================================================================
--- james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/AbstractCompatatorTest.java (original)
+++ james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/AbstractCompatatorTest.java Sun Aug 31 11:27:43 2008
@@ -136,7 +136,7 @@
 
         return match(mail, (addressPart == null ? ALL_TAG : addressPart),
                 (comparator == null ? ASCII_CASEMAP_COMPARATOR : comparator),
-                (matchType == null ? IS_TAG : matchType), headerNames, keys);
+                (matchType == null ? IS_TAG : matchType), headerNames, keys, context);
     }
 
     /**
@@ -148,18 +148,19 @@
      * @param matchType
      * @param headerNames
      * @param keys
+     * @param context TODO
      * @return boolean
      * @throws SieveMailException
      */
     protected boolean match(MailAdapter mail, String addressPart,
-            String comparator, String matchType, List headerNames, List keys)
+            String comparator, String matchType, List headerNames, List keys, SieveContext context)
             throws SieveException {
         // Iterate over the header names looking for a match
         boolean isMatched = false;
         Iterator headerNamesIter = headerNames.iterator();
         while (!isMatched && headerNamesIter.hasNext()) {
             isMatched = match(mail, addressPart, comparator, matchType,
-                    (String) headerNamesIter.next(), keys);
+                    (String) headerNamesIter.next(), keys, context);
         }
         return isMatched;
     }
@@ -173,18 +174,19 @@
      * @param matchType
      * @param headerName
      * @param keys
+     * @param context TODO
      * @return boolean
      * @throws SieveMailException
      */
     protected boolean match(MailAdapter mail, String addressPart,
-            String comparator, String matchType, String headerName, List keys)
+            String comparator, String matchType, String headerName, List keys, SieveContext context)
             throws SieveException {
         // Iterate over the keys looking for a match
         boolean isMatched = false;
         Iterator keysIter = keys.iterator();
         while (!isMatched && keysIter.hasNext()) {
             isMatched = match(mail, addressPart, comparator, matchType,
-                    headerName, (String) keysIter.next());
+                    headerName, (String) keysIter.next(), context);
         }
         return isMatched;
     }
@@ -198,11 +200,12 @@
      * @param matchType
      * @param headerName
      * @param key
+     * @param context TODO
      * @return boolean
      * @throws SieveMailException
      */
     protected abstract boolean match(MailAdapter mail, String addressPart,
-            String comparator, String matchType, String headerName, String key)
+            String comparator, String matchType, String headerName, String key, SieveContext context)
             throws SieveException;
 
     /**

Modified: james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/Address.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/Address.java?rev=690748&r1=690747&r2=690748&view=diff
==============================================================================
--- james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/Address.java (original)
+++ james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/Address.java Sun Aug 31 11:27:43 2008
@@ -19,6 +19,7 @@
 
 package org.apache.jsieve.tests;
 
+import org.apache.jsieve.SieveContext;
 import org.apache.jsieve.comparators.ComparatorUtils;
 import org.apache.jsieve.exception.InternetAddressException;
 import org.apache.jsieve.exception.SieveException;
@@ -38,7 +39,7 @@
     }
 
     protected boolean match(MailAdapter mail, String addressPart,
-            String comparator, String matchType, String headerName, String key)
+            String comparator, String matchType, String headerName, String key, SieveContext context)
             throws SieveException {
         final MailAdapter.Address[] addresses = getMatchingValues(mail,
                 headerName);
@@ -47,7 +48,7 @@
         boolean isMatched = false;
         while (!isMatched && i < length) {
             isMatched = match(addressPart, comparator, matchType,
-                    addresses[i++], key);
+                    addresses[i++], key, context);
         }
         return isMatched;
     }
@@ -59,7 +60,7 @@
     }
 
     protected boolean match(String addressPart, String comparator,
-            String matchType, MailAdapter.Address address, String key)
+            String matchType, MailAdapter.Address address, String key, SieveContext context)
             throws SieveException {
         final String localPart = address.getLocalPart();
         final String domain = address.getDomain();
@@ -83,6 +84,6 @@
 
         // Match using the specified comparator
         return ComparatorUtils.match(comparator, matchType, matchAddress,
-                matchKey);
+                matchKey, context);
     }
 }

Modified: james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/Header.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/Header.java?rev=690748&r1=690747&r2=690748&view=diff
==============================================================================
--- james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/Header.java (original)
+++ james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/Header.java Sun Aug 31 11:27:43 2008
@@ -137,7 +137,7 @@
 
         return match(mail, (comparator == null ? ASCII_CASEMAP_COMPARATOR
                 : comparator), (matchType == null ? IS_TAG : matchType),
-                headerNames, keys);
+                headerNames, keys, context);
     }
 
     /**
@@ -148,18 +148,19 @@
      * @param matchType
      * @param headerNames
      * @param keys
+     * @param context TODO
      * @return boolean
      * @throws SieveException
      */
     protected boolean match(MailAdapter mail, String comparator,
-            String matchType, List headerNames, List keys)
+            String matchType, List headerNames, List keys, SieveContext context)
             throws SieveException {
         // Iterate over the header names looking for a match
         boolean isMatched = false;
         Iterator headerNamesIter = headerNames.iterator();
         while (!isMatched && headerNamesIter.hasNext()) {
             isMatched = match(comparator, matchType, mail
-                    .getMatchingHeader((String) headerNamesIter.next()), keys);
+                    .getMatchingHeader((String) headerNamesIter.next()), keys, context);
         }
         return isMatched;
     }
@@ -171,11 +172,12 @@
      * @param matchType
      * @param headerValues
      * @param keys
+     * @param context TODO
      * @return boolean
      * @throws SieveException
      */
     protected boolean match(String comparator, String matchType,
-            List headerValues, List keys) throws SieveException {
+            List headerValues, List keys, SieveContext context) throws SieveException {
         // Special case for empty values
         // If the matchType is :contains
         // add the headerValue of a null string
@@ -194,7 +196,7 @@
         Iterator headerValuesIter = headerValues.iterator();
         while (!isMatched && headerValuesIter.hasNext()) {
             isMatched = match(comparator, matchType, (String) headerValuesIter
-                    .next(), keys);
+                    .next(), keys, context);
         }
         return isMatched;
     }
@@ -206,17 +208,18 @@
      * @param matchType
      * @param headerValue
      * @param keys
+     * @param context TODO
      * @return boolean
      * @throws SieveException
      */
     protected boolean match(String comparator, String matchType,
-            String headerValue, List keys) throws SieveException {
+            String headerValue, List keys, SieveContext context) throws SieveException {
         // Iterate over the keys looking for a match
         boolean isMatched = false;
         Iterator keysIter = keys.iterator();
         while (!isMatched && keysIter.hasNext()) {
             isMatched = ComparatorUtils.match(comparator, matchType,
-                    headerValue, (String) keysIter.next());
+                    headerValue, (String) keysIter.next(), context);
         }
         return isMatched;
     }

Modified: james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/optional/Envelope.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/optional/Envelope.java?rev=690748&r1=690747&r2=690748&view=diff
==============================================================================
--- james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/optional/Envelope.java (original)
+++ james/jsieve/trunk/src/main/java/org/apache/jsieve/tests/optional/Envelope.java Sun Aug 31 11:27:43 2008
@@ -22,6 +22,7 @@
 import java.util.Iterator;
 import java.util.List;
 
+import org.apache.jsieve.SieveContext;
 import org.apache.jsieve.comparators.ComparatorUtils;
 import org.apache.jsieve.exception.SieveException;
 import org.apache.jsieve.mail.MailAdapter;
@@ -59,11 +60,12 @@
      * @param matchType
      * @param headerValue
      * @param key
+     * @param context TODO
      * @return boolean
      * @throws SieveMailException
      */
     protected boolean match(String addressPart, String comparator,
-            String matchType, String headerValue, String key)
+            String matchType, String headerValue, String key, SieveContext context)
             throws SieveException {
 
         // Extract the part of the address we are matching on
@@ -99,18 +101,18 @@
 
         // Match using the specified comparator
         return ComparatorUtils.match(comparator, matchType, matchAddress,
-                matchKey);
+                matchKey, context);
     }
 
     protected boolean match(MailAdapter mail, String addressPart,
-            String comparator, String matchType, String headerName, String key)
+            String comparator, String matchType, String headerName, String key, SieveContext context)
             throws SieveException {
         Iterator headerValuesIter = getMatchingValues(mail, headerName)
                 .iterator();
         boolean isMatched = false;
         while (!isMatched && headerValuesIter.hasNext()) {
             isMatched = match(addressPart, comparator, matchType,
-                    ((String) headerValuesIter.next()), key);
+                    ((String) headerValuesIter.next()), key, context);
         }
         return isMatched;
     }

Modified: james/jsieve/trunk/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java?rev=690748&r1=690747&r2=690748&view=diff
==============================================================================
--- james/jsieve/trunk/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java (original)
+++ james/jsieve/trunk/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java Sun Aug 31 11:27:43 2008
@@ -34,7 +34,7 @@
     
     protected void setUp() throws Exception {
         super.setUp();
-        visitor = new SieveParserVisitorImpl(new BaseSieveContext(CommandManager.getInstance()));
+        visitor = new SieveParserVisitorImpl(new BaseSieveContext(CommandManager.getInstance(), ComparatorManager.getInstance()));
         data = new ArrayList();
         node = new ASTstring(100);
     }

Modified: james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/AddressParseTest.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/AddressParseTest.java?rev=690748&r1=690747&r2=690748&view=diff
==============================================================================
--- james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/AddressParseTest.java (original)
+++ james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/AddressParseTest.java Sun Aug 31 11:27:43 2008
@@ -21,6 +21,9 @@
 
 import junit.framework.TestCase;
 
+import org.apache.jsieve.BaseSieveContext;
+import org.apache.jsieve.CommandManager;
+import org.apache.jsieve.ComparatorManager;
 import org.apache.jsieve.junit.utils.JUnitUtils;
 import org.apache.jsieve.junit.utils.SieveMailAdapter;
 
@@ -30,12 +33,14 @@
 
     private static final String SOLO_ADDRESS_VALUES = "coyote@desert.example.org";
 
+    BaseSieveContext context;
     SieveMailAdapter mail;
 
     OpenedAddress address;
 
     protected void setUp() throws Exception {
         super.setUp();
+        context = new BaseSieveContext(CommandManager.getInstance(), ComparatorManager.getInstance());
         mail = (SieveMailAdapter) JUnitUtils.createMail();
         address = new OpenedAddress();
     }
@@ -43,24 +48,24 @@
     public void testSingleAddress() throws Exception {
         mail.getMessage().addHeader("From", SOLO_ADDRESS_VALUES);
         assertTrue(address.match(mail, ":all", "i;ascii-casemap", ":is",
-                "from", "coyote@desert.example.org"));
+                "from", "coyote@desert.example.org", context));
         assertFalse(address.match(mail, ":all", "i;ascii-casemap", ":is",
-                "from", "elmer@hunters.example.org"));
+                "from", "elmer@hunters.example.org", context));
         assertFalse(address.match(mail, ":all", "i;ascii-casemap", ":is",
-                "from", "bugs@example.org"));
+                "from", "bugs@example.org", context));
         assertFalse(address.match(mail, ":all", "i;ascii-casemap", ":is",
-                "from", "roadrunner@example.org"));
+                "from", "roadrunner@example.org", context));
     }
 
     public void testMultipleAddresses() throws Exception {
         mail.getMessage().addHeader("From", MULTIPLE_ADDRESS_VALUES);
         assertTrue(address.match(mail, ":all", "i;ascii-casemap", ":is",
-                "from", "coyote@desert.example.org"));
+                "from", "coyote@desert.example.org", context));
         assertTrue(address.match(mail, ":all", "i;ascii-casemap", ":is",
-                "from", "elmer@hunters.example.org"));
+                "from", "elmer@hunters.example.org", context));
         assertTrue(address.match(mail, ":all", "i;ascii-casemap", ":is",
-                "from", "bugs@example.org"));
+                "from", "bugs@example.org", context));
         assertFalse(address.match(mail, ":all", "i;ascii-casemap", ":is",
-                "from", "roadrunner@example.org"));
+                "from", "roadrunner@example.org", context));
     }
 }

Modified: james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/OpenedAddress.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/OpenedAddress.java?rev=690748&r1=690747&r2=690748&view=diff
==============================================================================
--- james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/OpenedAddress.java (original)
+++ james/jsieve/trunk/src/test/java/org/apache/jsieve/junit/OpenedAddress.java Sun Aug 31 11:27:43 2008
@@ -19,6 +19,7 @@
 
 package org.apache.jsieve.junit;
 
+import org.apache.jsieve.SieveContext;
 import org.apache.jsieve.exception.SieveException;
 import org.apache.jsieve.mail.MailAdapter;
 import org.apache.jsieve.tests.Address;
@@ -26,10 +27,10 @@
 final class OpenedAddress extends Address {
 
     protected boolean match(MailAdapter mail, String addressPart,
-            String comparator, String matchType, String headerName, String key)
+            String comparator, String matchType, String headerName, String key, SieveContext context)
             throws SieveException {
         return super.match(mail, addressPart, comparator, matchType,
-                headerName, key);
+                headerName, key, context);
     }
 
 }



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