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