You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2007/03/03 11:43:12 UTC

svn commit: r514122 - in /jakarta/jmeter/branches/rel-2-2/src: components/org/apache/jmeter/assertions/ components/org/apache/jmeter/extractor/ core/org/apache/jmeter/engine/util/ functions/org/apache/jmeter/functions/ protocol/http/org/apache/jmeter/p...

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: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org