Author: sebb Date: Sat Mar 3 02:43:11 2007 New Revision: 514122 URL: http://svn.apache.org/viewvc?view=rev&rev=514122 Log: Use Matcher and PatternCache from JMeterUtils instead of private versions
Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/ResponseAssertion.java jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/extractor/RegexExtractor.java jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/engine/util/ReplaceFunctionsWithStrings.java jakarta/jmeter/branches/rel-2-2/src/functions/org/apache/jmeter/functions/RegexFunction.java jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/ResponseAssertion.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/ResponseAssertion.java?view=diff&rev=514122&r1=514121&r2=514122 ============================================================================== --- jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/ResponseAssertion.java (original) +++ jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/assertions/ResponseAssertion.java Sat Mar 3 02:43:11 2007 @@ -34,7 +34,6 @@ import org.apache.jorphan.util.JOrphanUtils; import org.apache.log.Logger; import org.apache.oro.text.MalformedCachePatternException; -import org.apache.oro.text.PatternCacheLRU; import org.apache.oro.text.regex.Pattern; import org.apache.oro.text.regex.Perl5Compiler; import org.apache.oro.text.regex.Perl5Matcher; @@ -79,14 +78,6 @@ private final static int EQUALS = 1 << 3; - private static ThreadLocal matcher = new ThreadLocal() { - protected Object initialValue() { - return new Perl5Matcher(); - } - }; - - private static final PatternCacheLRU patternCache = new PatternCacheLRU(1000, new Perl5Compiler()); - private static final int EQUALS_SECTION_DIFF_LEN = JMeterUtils.getPropDefault("assertion.equals_section_diff_len", 100); @@ -302,11 +293,11 @@ try { // Get the Matcher for this thread - Perl5Matcher localMatcher = (Perl5Matcher) matcher.get(); + Perl5Matcher localMatcher = JMeterUtils.getMatcher(); PropertyIterator iter = getTestStrings().iterator(); while (iter.hasNext()) { String stringPattern = iter.next().getStringValue(); - Pattern pattern = patternCache.getPattern(stringPattern, Perl5Compiler.READ_ONLY_MASK); + Pattern pattern = JMeterUtils.getPatternCache().getPattern(stringPattern, Perl5Compiler.READ_ONLY_MASK); boolean found; if (contains) { found = localMatcher.contains(toCheck, pattern); Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/extractor/RegexExtractor.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/extractor/RegexExtractor.java?view=diff&rev=514122&r1=514121&r2=514122 ============================================================================== --- jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/extractor/RegexExtractor.java (original) +++ jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/extractor/RegexExtractor.java Sat Mar 3 02:43:11 2007 @@ -34,7 +34,6 @@ import org.apache.jorphan.logging.LoggingManager; import org.apache.log.Logger; import org.apache.oro.text.MalformedCachePatternException; -import org.apache.oro.text.PatternCacheLRU; import org.apache.oro.text.regex.MatchResult; import org.apache.oro.text.regex.Pattern; import org.apache.oro.text.regex.PatternMatcher; @@ -86,14 +85,6 @@ private Object[] template = null; - private static PatternCacheLRU patternCache = new PatternCacheLRU(1000, new Perl5Compiler()); - - private static ThreadLocal localMatcher = new ThreadLocal() { - protected Object initialValue() { - return new Perl5Matcher(); - } - }; - /** * Parses the response data using regular expressions and saving the results * into variables for use later in the test. @@ -119,7 +110,7 @@ vars.put(refName, defaultValue); } - Perl5Matcher matcher = (Perl5Matcher) localMatcher.get(); + Perl5Matcher matcher = JMeterUtils.getMatcher(); String inputString = useUrl() ? previousResult.getUrlAsString() // Bug 39707 : @@ -135,7 +126,7 @@ log.debug("Regex = " + regex); } try { - Pattern pattern = patternCache.getPattern(regex, Perl5Compiler.READ_ONLY_MASK); + Pattern pattern = JMeterUtils.getPatternCache().getPattern(regex, Perl5Compiler.READ_ONLY_MASK); List matches = new ArrayList(); int x = 0; boolean done = false; @@ -238,8 +229,8 @@ List pieces = new ArrayList(); List combined = new LinkedList(); String rawTemplate = getTemplate(); - PatternMatcher matcher = (Perl5Matcher) localMatcher.get(); - Pattern templatePattern = patternCache.getPattern("\\$(\\d+)\\$" // $NON-NLS-1$ + PatternMatcher matcher = JMeterUtils.getMatcher(); + Pattern templatePattern = JMeterUtils.getPatternCache().getPattern("\\$(\\d+)\\$" // $NON-NLS-1$ , Perl5Compiler.READ_ONLY_MASK & Perl5Compiler.SINGLELINE_MASK); log.debug("Pattern = " + templatePattern); @@ -275,10 +266,10 @@ private boolean isFirstElementGroup(String rawData) { try { - Pattern pattern = patternCache.getPattern("^\\$\\d+\\$" // $NON-NLS-1$ + Pattern pattern = JMeterUtils.getPatternCache().getPattern("^\\$\\d+\\$" // $NON-NLS-1$ , Perl5Compiler.READ_ONLY_MASK & Perl5Compiler.SINGLELINE_MASK); - return ((Perl5Matcher) localMatcher.get()).contains(rawData, pattern); + return (JMeterUtils.getMatcher()).contains(rawData, pattern); } catch (RuntimeException e) { log.error("", e); return false; @@ -383,7 +374,5 @@ } public void setUseField(String actionCommand) { setProperty(MATCH_AGAINST,actionCommand); - // TODO Auto-generated method stub - } } Modified: jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/engine/util/ReplaceFunctionsWithStrings.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/engine/util/ReplaceFunctionsWithStrings.java?view=diff&rev=514122&r1=514121&r2=514122 ============================================================================== --- jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/engine/util/ReplaceFunctionsWithStrings.java (original) +++ jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/engine/util/ReplaceFunctionsWithStrings.java Sat Mar 3 02:43:11 2007 @@ -27,6 +27,7 @@ import org.apache.jmeter.functions.InvalidVariableException; import org.apache.jmeter.testelement.property.JMeterProperty; import org.apache.jmeter.testelement.property.StringProperty; +import org.apache.jmeter.util.JMeterUtils; import org.apache.jmeter.util.StringUtilities; import org.apache.jorphan.logging.LoggingManager; import org.apache.log.Logger; @@ -35,7 +36,6 @@ import org.apache.oro.text.regex.PatternCompiler; import org.apache.oro.text.regex.PatternMatcher; import org.apache.oro.text.regex.Perl5Compiler; -import org.apache.oro.text.regex.Perl5Matcher; import org.apache.oro.text.regex.StringSubstitution; import org.apache.oro.text.regex.Util; @@ -67,7 +67,7 @@ * @see ValueTransformer#transformValue(JMeterProperty) */ public JMeterProperty transformValue(JMeterProperty prop) throws InvalidVariableException { - PatternMatcher pm = new Perl5Matcher(); + PatternMatcher pm = JMeterUtils.getMatcher(); Pattern pattern = null; PatternCompiler compiler = new Perl5Compiler(); Iterator iter = getVariables().keySet().iterator(); Modified: jakarta/jmeter/branches/rel-2-2/src/functions/org/apache/jmeter/functions/RegexFunction.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/functions/org/apache/jmeter/functions/RegexFunction.java?view=diff&rev=514122&r1=514121&r2=514122 ============================================================================== --- jakarta/jmeter/branches/rel-2-2/src/functions/org/apache/jmeter/functions/RegexFunction.java (original) +++ jakarta/jmeter/branches/rel-2-2/src/functions/org/apache/jmeter/functions/RegexFunction.java Sat Mar 3 02:43:11 2007 @@ -35,13 +35,11 @@ import org.apache.jmeter.util.JMeterUtils; import org.apache.jorphan.logging.LoggingManager; import org.apache.log.Logger; -import org.apache.oro.text.PatternCacheLRU; import org.apache.oro.text.regex.MatchResult; import org.apache.oro.text.regex.Pattern; import org.apache.oro.text.regex.PatternMatcher; import org.apache.oro.text.regex.PatternMatcherInput; import org.apache.oro.text.regex.Perl5Compiler; -import org.apache.oro.text.regex.Perl5Matcher; import org.apache.oro.text.regex.Util; public class RegexFunction extends AbstractFunction implements Serializable { @@ -59,16 +57,8 @@ private static final List desc = new LinkedList(); - private static PatternCacheLRU patternCache = new PatternCacheLRU(1000, new Perl5Compiler()); - private transient Pattern templatePattern;// initialised to the regex \$(\d+)\$ - private static ThreadLocal localMatcher = new ThreadLocal() { - protected Object initialValue() { - return new Perl5Matcher(); - } - }; - // Number of parameters expected - used to reject invalid calls private static final int MIN_PARAMETER_COUNT = 2; @@ -83,13 +73,17 @@ } public RegexFunction() { - templatePattern = patternCache.getPattern("\\$(\\d+)\\$", //$NON-NLS-1$ + initPattern(); + } + + private void initPattern() { + templatePattern = JMeterUtils.getPatternCache().getPattern("\\$(\\d+)\\$", //$NON-NLS-1$ Perl5Compiler.READ_ONLY_MASK); } // For serialised objects, do the same work as the constructor: private Object readResolve() throws ObjectStreamException { - templatePattern = patternCache.getPattern("\\$(\\d+)\\$", Perl5Compiler.READ_ONLY_MASK); + initPattern(); return this; } @@ -101,7 +95,7 @@ Pattern searchPattern; Object[] tmplt; try { - searchPattern = patternCache.getPattern(((CompoundVariable) values[0]).execute(), + searchPattern = JMeterUtils.getPatternCache().getPattern(((CompoundVariable) values[0]).execute(), Perl5Compiler.READ_ONLY_MASK); tmplt = generateTemplate(((CompoundVariable) values[1]).execute()); @@ -139,7 +133,7 @@ List collectAllMatches = new ArrayList(); try { - PatternMatcher matcher = (PatternMatcher) localMatcher.get(); + PatternMatcher matcher = JMeterUtils.getMatcher(); String responseText = new String(previousResult.getResponseData(), previousResult.getDataEncoding()); // Bug 37140 PatternMatcherInput input = new PatternMatcherInput(responseText); @@ -238,8 +232,8 @@ private Object[] generateTemplate(String rawTemplate) { List pieces = new ArrayList(); List combined = new LinkedList(); - PatternMatcher matcher = new Perl5Matcher(); - Util.split(pieces, new Perl5Matcher(), templatePattern, rawTemplate); + PatternMatcher matcher = JMeterUtils.getMatcher(); + Util.split(pieces, matcher, templatePattern, rawTemplate); PatternMatcherInput input = new PatternMatcherInput(rawTemplate); Iterator iter = pieces.iterator(); boolean startsWith = isFirstElementGroup(rawTemplate); @@ -264,9 +258,9 @@ } private boolean isFirstElementGroup(String rawData) { - Pattern pattern = patternCache.getPattern("^\\$\\d+\\$", //$NON-NLS-1$ + Pattern pattern = JMeterUtils.getPatternCache().getPattern("^\\$\\d+\\$", //$NON-NLS-1$ Perl5Compiler.READ_ONLY_MASK); - return new Perl5Matcher().contains(rawData, pattern); + return JMeterUtils.getMatcher().contains(rawData, pattern); } } Modified: jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java?view=diff&rev=514122&r1=514121&r2=514122 ============================================================================== --- jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java (original) +++ jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java Sat Mar 3 02:43:11 2007 @@ -62,10 +62,8 @@ import org.apache.jorphan.logging.LoggingManager; import org.apache.log.Logger; import org.apache.oro.text.MalformedCachePatternException; -import org.apache.oro.text.PatternCacheLRU; import org.apache.oro.text.regex.Pattern; import org.apache.oro.text.regex.Perl5Compiler; -import org.apache.oro.text.regex.Perl5Matcher; //For unit tests, @see TestProxyControl @@ -96,10 +94,6 @@ public static final String DEFAULT_PORT_S = Integer.toString(DEFAULT_PORT);// Used by GUI - private static PatternCacheLRU patternCache = new PatternCacheLRU(1000, new Perl5Compiler()); - - transient Perl5Matcher matcher; - public static final String PORT = "ProxyControlGui.port"; // $NON-NLS-1$ public static final String EXCLUDE_LIST = "ProxyControlGui.exclude_list"; // $NON-NLS-1$ @@ -148,7 +142,6 @@ private JMeterTreeNode target; public ProxyControl() { - matcher = new Perl5Matcher(); setPort(DEFAULT_PORT); setExcludeList(new HashSet()); setIncludeList(new HashSet()); @@ -688,8 +681,8 @@ String item = iter.next().getStringValue(); Pattern pattern = null; try { - pattern = patternCache.getPattern(item, Perl5Compiler.READ_ONLY_MASK | Perl5Compiler.SINGLELINE_MASK); - if (matcher.matches(url, pattern)) { + pattern = JMeterUtils.getPatternCache().getPattern(item, Perl5Compiler.READ_ONLY_MASK | Perl5Compiler.SINGLELINE_MASK); + if (JMeterUtils.getMatcher().matches(url, pattern)) { return true; } } catch (MalformedCachePatternException e) { --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]