sdeboy 2004/12/15 21:52:44
Modified: src/java/org/apache/log4j/rule RuleFactory.java
Log:
Remove compile-time dependency of LikeRule from RuleFactory - invoking
LikeRule.getRule(stack) via reflection
Revision Changes Path
1.6 +15 -2
logging-log4j/src/java/org/apache/log4j/rule/RuleFactory.java
Index: RuleFactory.java
===================================================================
RCS file:
/home/cvs/logging-log4j/src/java/org/apache/log4j/rule/RuleFactory.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- RuleFactory.java 21 Nov 2004 07:01:27 -0000 1.5
+++ RuleFactory.java 16 Dec 2004 05:52:43 -0000 1.6
@@ -16,10 +16,11 @@
package org.apache.log4j.rule;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.util.Collection;
import java.util.LinkedList;
import java.util.Stack;
-
import org.apache.log4j.LogManager;
/**
@@ -101,8 +102,20 @@
return PartialTextMatchRule.getRule(stack);
}
+ //in order to avoid compile-time dependency on LikeRule, call
getRule(stack) using reflection
if (rules.contains(LIKE_RULE) && LIKE_RULE.equalsIgnoreCase(symbol)) {
- return LikeRule.getRule(stack);
+ String methodName = "getRule";
+ try {
+ Class likeClass = Class.forName("org.apache.log4j.rule.LikeRule");
+ Method method =
+ likeClass.getDeclaredMethod(methodName, new Class[]{Stack.class});
+
+ return (Rule)method.invoke(null, new Object[]{stack});
+ }
+ catch (ClassNotFoundException cnfe) {}
+ catch (NoSuchMethodException nsme) {}
+ catch (IllegalAccessException iae) {}
+ catch (InvocationTargetException iae) {}
}
if (EXISTS_RULE.equalsIgnoreCase(symbol)) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]