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]

Reply via email to