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]