The version of Apache log4j used by SoundHelix.
Clone
HTTPS:
git clone https://vervis.peers.community/repos/aEp6o
SSH:
git clone USERNAME@vervis.peers.community:aEp6o
Branches
Tags
- 1.3alpha-7
- CHAINSAW_2_SANDBOX_MERGE
- CORE_VERSION
- LEVEL_REPLACES_PRIORITY
- PREALPHA_1_3_AS_OF_2004_05_12
- PRE_CHAINSAW_MODEL_CONVERSION
- PRE_UGLI_MOVE
- TAG_CHAINSAW2_MOVE
- log4j-1.2.17
- log4j-1.2.17-rc1
- v1.3alpha8
- v1.3alpha8-temp
- v1_2_1
- v1_2_10-recalled
- v1_2_11
- v1_2_11_rc1
- v1_2_11rc3
- v1_2_12
- v1_2_12_rc1
- v1_2_12_rc2
- v1_2_12_rc3
- v1_2_12_rc4
- v1_2_12_rc5
- v1_2_12_rc6
- v1_2_13
- v1_2_13_rc1
- v1_2_13_rc2
- v1_2_13_site_update
- v1_2_14
- v1_2_14_maven
- v1_2_14_rc1
- v1_2_14_site_update
- v1_2_15
- v1_2_15_rc1
- v1_2_15_rc2
- v1_2_15_rc3
- v1_2_15_rc4
- v1_2_15_rc5
- v1_2_15_rc6
- v1_2_16
- v1_2_16_rc1
- v1_2_16_rc2
- v1_2_17
- v1_2_17-rc1
- v1_2_17_rc1
- v1_2_17_rc2
- v1_2_17_rc3
- v1_2_2
- v1_2_3
- v1_2_4
- v1_2_6
- v1_2_7
- v1_2_9
- v1_2_alpha0
- v1_2_alpha7
- v1_2beta1
- v1_2final
- v1_3alpha_1
- v1_3alpha_6
- v_1_0
- v_1_0_1
- v_1_0_4
- v_1_1
- v_1_1_1
- v_1_1_2
- v_1_1_3
- v_1_1_b1
- v_1_1b2
- v_1_1b3
- v_1_1b5
- v_1_1b6
- v_1_1b7
- v_1_2beta3
RuleFactory.java
/*
* Copyright 1999,2004 The Apache Software Foundation.
*
* Licensed 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.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;
/**
* A Factory class which, given a string representation of the rule, and a context stack, will
* return a Rule ready for evaluation against events. If an operator is requested that isn't supported,
* or if a LIKE rule is requested and the ORO package is not available, an IllegalArgumentException is thrown.
*
* @author Scott Deboy <sdeboy@apache.org>
*/
public class RuleFactory {
private static final RuleFactory factory_ = new RuleFactory();
private static final Collection rules = new LinkedList();
private static final String AND_RULE = "&&";
private static final String OR_RULE = "||";
private static final String NOT_RULE = "!";
private static final String NOT_EQUALS_RULE = "!=";
private static final String EQUALS_RULE = "==";
private static final String PARTIAL_TEXT_MATCH_RULE = "~=";
private static final String LIKE_RULE = "like";
private static final String EXISTS_RULE = "exists";
private static final String LESS_THAN_RULE = "<";
private static final String GREATER_THAN_RULE = ">";
private static final String LESS_THAN_EQUALS_RULE = "<=";
private static final String GREATER_THAN_EQUALS_RULE = ">=";
static {
rules.add(AND_RULE);
rules.add(OR_RULE);
rules.add(NOT_RULE);
rules.add(NOT_EQUALS_RULE);
rules.add(EQUALS_RULE);
rules.add(PARTIAL_TEXT_MATCH_RULE);
try {
Class.forName("org.apache.log4j.rule.LikeRule");
rules.add(LIKE_RULE);
} catch (Exception e) {
LogManager.getLogger(RuleFactory.class).info("Like (regular expression) rule not supported");
}
rules.add(EXISTS_RULE);
rules.add(LESS_THAN_RULE);
rules.add(GREATER_THAN_RULE);
rules.add(LESS_THAN_EQUALS_RULE);
rules.add(GREATER_THAN_EQUALS_RULE);
}
private RuleFactory() {}
public static RuleFactory getInstance() {
return factory_;
}
public boolean isRule(String symbol) {
return ((symbol != null) && (rules.contains(symbol.toLowerCase())));
}
public Rule getRule(String symbol, Stack stack) {
if (AND_RULE.equals(symbol)) {
return AndRule.getRule(stack);
}
if (OR_RULE.equals(symbol)) {
return OrRule.getRule(stack);
}
if (NOT_RULE.equals(symbol)) {
return NotRule.getRule(stack);
}
if (NOT_EQUALS_RULE.equals(symbol)) {
return NotEqualsRule.getRule(stack);
}
if (EQUALS_RULE.equals(symbol)) {
return EqualsRule.getRule(stack);
}
if (PARTIAL_TEXT_MATCH_RULE.equals(symbol)) {
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)) {
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)) {
return ExistsRule.getRule(stack);
}
if (LESS_THAN_RULE.equals(symbol)) {
return InequalityRule.getRule(LESS_THAN_RULE, stack);
}
if (GREATER_THAN_RULE.equals(symbol)) {
return InequalityRule.getRule(GREATER_THAN_RULE, stack);
}
if (LESS_THAN_EQUALS_RULE.equals(symbol)) {
return InequalityRule.getRule(LESS_THAN_EQUALS_RULE, stack);
}
if (GREATER_THAN_EQUALS_RULE.equals(symbol)) {
return InequalityRule.getRule(GREATER_THAN_EQUALS_RULE, stack);
}
throw new IllegalArgumentException("Invalid rule: " + symbol);
}
}