sebb 2003/11/26 18:53:15
Modified: src/protocol/http/org/apache/jmeter/protocol/http/parser
JTidyHTMLParser.java HtmlParserHTMLParser.java
RegexpHTMLParser.java
Log:
Added getParserInstance() and isParserReusable(); added more tests
Revision Changes Path
1.5 +19 -41
jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/parser/JTidyHTMLParser.java
Index: JTidyHTMLParser.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/parser/JTidyHTMLParser.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- JTidyHTMLParser.java 26 Nov 2003 22:50:14 -0000 1.4
+++ JTidyHTMLParser.java 27 Nov 2003 02:53:15 -0000 1.5
@@ -61,7 +61,6 @@
import java.io.ByteArrayInputStream;
import java.net.MalformedURLException;
import java.net.URL;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
@@ -84,10 +83,14 @@
/** Used to store the Logger (used for debug and error messages). */
transient private static Logger log = LoggingManager.getLoggerForClass();
+ /** Stores the singleton parser to be used */
+ private static HTMLParser myParser = new JTidyHTMLParser();
+
/**
* This is a singleton class
*/
- protected JTidyHTMLParser()
+ //TODO make private
+ JTidyHTMLParser()
{
super();
}
@@ -291,48 +294,23 @@
public void testParser() throws Exception {
log.info("testParser");
- HTMLParserTest.testParser(new JTidyHTMLParser());
+ HTMLParserTest.testParser(getParserInstance());
}
-
- public void testfiles() throws Exception{
- log.info("testfiles");
- final String[] EXPECTED_RESULT= new String[] {
- "http://myhost/mydir/images/image-a.gif",
- "http://myhost/mydir/images/image-b.gif",
- "http://myhost/mydir/images/image-c.gif",
- "http://myhost/mydir/images/image-d.gif",
- "http://myhost/mydir/images/image-e.gif",
- "http://myhost/mydir/images/image-f.gif",
- "http://myhost/mydir/images/image-a2.gif",
- "http://myhost/mydir/images/image-b2.gif",
- "http://myhost/mydir/images/image-c2.gif",
- "http://myhost/mydir/images/image-d2.gif",
- "http://myhost/mydir/images/image-e2.gif",
- "http://myhost/mydir/images/image-f2.gif",
- };
-
- Iterator expected= Arrays.asList(EXPECTED_RESULT).iterator();
-
- JTidyHTMLParser p = new JTidyHTMLParser();
- byte [] ba;
- URL u;
- Iterator result;
- ba=getFile("testfiles/HTMLParserTestCase.html");
- u= new URL("http://myhost/mydir/myfile.html");
- result=p.getEmbeddedResourceURLs(ba,u);
- while (expected.hasNext()) {
- assertTrue(result.hasNext());
- assertEquals(expected.next(),
result.next().toString());
- }
- assertFalse(result.hasNext());
+ public void testParserClass() throws Exception {
+ log.info("testParserClass");
+
HTMLParserTest.testParser("org.apache.jmeter.protocol.http.parser.JTidyHTMLParser");
}
}
- private static byte []getFile(String s) throws Exception
+ /* (non-Javadoc)
+ * @see org.apache.jmeter.protocol.http.parser.HTMLParser#getParserInstance()
+ */
+ public static HTMLParser getParserInstance()
{
- java.io.File f= new java.io.File(s);
- byte[] buffer= new byte[(int)f.length()];
- new java.io.FileInputStream(f).read(buffer);
- return buffer;
+ return myParser;
}
+
+ public static boolean isParserReusable(){
+ return true;
+ }
}
1.4 +30 -5
jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/parser/HtmlParserHTMLParser.java
Index: HtmlParserHTMLParser.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/parser/HtmlParserHTMLParser.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- HtmlParserHTMLParser.java 26 Nov 2003 22:50:14 -0000 1.3
+++ HtmlParserHTMLParser.java 27 Nov 2003 02:53:15 -0000 1.4
@@ -82,6 +82,14 @@
/** Used to store the Logger (used for debug and error messages). */
transient private static Logger log= LoggingManager.getLoggerForClass();
+ /** Stores the singleton parser to be used */
+ private static HTMLParser myParser = new HtmlParserHTMLParser();
+
+ // Not intended to be instantiated externally
+ //TODO make private?
+ HtmlParserHTMLParser(){
+ super();
+ }
/* (non-Javadoc)
* @see
org.apache.jmeter.protocol.http.parser.HtmlParser#getEmbeddedResourceURLs(byte[],
java.net.URL)
*/
@@ -174,7 +182,7 @@
urls.add(binUrlStr);
}
}
- log.debug("End : NewHTTPSamplerFull parseNodes");
+ log.debug("End : parseNodes");
}
catch (ParserException e)
{
@@ -214,8 +222,25 @@
super();
}
public void testParser() throws Exception
- {
- HTMLParserTest.testParser(new HtmlParserHTMLParser());
- }
+ {
+ log.info("testParser");
+ HTMLParserTest.testParser(getParserInstance());
+ }
+ public void testParserClass() throws Exception {
+ log.info("testParserClass");
+
HTMLParserTest.testParser("org.apache.jmeter.protocol.http.parser.HtmlParserHTMLParser");
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jmeter.protocol.http.parser.HTMLParser#getParserInstance()
+ */
+ public static HTMLParser getParserInstance()
+ {
+ return myParser;
}
+
+ public static boolean isParserReusable(){
+ return true;
+ }
}
1.5 +25 -3
jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/parser/RegexpHTMLParser.java
Index: RegexpHTMLParser.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/parser/RegexpHTMLParser.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- RegexpHTMLParser.java 26 Nov 2003 22:50:14 -0000 1.4
+++ RegexpHTMLParser.java 27 Nov 2003 02:53:15 -0000 1.5
@@ -115,6 +115,9 @@
*/
class RegexpHTMLParser extends HTMLParser
{
+ /** Stores the singleton parser to be used */
+ private static HTMLParser myParser = new RegexpHTMLParser();
+
/**
* Regular expression used against the HTML code to find the URIs of
* images, etc.:
@@ -163,7 +166,8 @@
/**
* Make sure to compile the regular expression upon instantiation:
*/
- protected RegexpHTMLParser() {
+ //TODO make private?
+ RegexpHTMLParser() {
super();
// Compile the regular expression:
@@ -270,7 +274,25 @@
super();
}
public void testParser() throws Exception {
- HTMLParserTest.testParser(new RegexpHTMLParser());
+ log.info("testParser");
+ HTMLParserTest.testParser(getParserInstance());
}
+ public void testParserClass() throws Exception {
+ log.info("testParserClass");
+
HTMLParserTest.testParser("org.apache.jmeter.protocol.http.parser.RegexpHTMLParser");
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jmeter.protocol.http.parser.HTMLParser#getParserInstance()
+ */
+ public static HTMLParser getParserInstance()
+ {
+ return myParser;
}
+
+ public static boolean isParserReusable(){
+ return true;
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]