01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: *
17: */
18:
19: package org.apache.jmeter.protocol.http.util.accesslog;
20:
21: import org.apache.jmeter.testelement.TestElement;
22:
23: /**
24: * Description:<br>
25: * <br>
26: * LogParser is the base interface for classes implementing concrete parse
27: * logic. For an example of how to use the interface, look at the Tomcat access
28: * log parser.
29: * <p>
30: * The original log parser was written in 2 hours to parse access logs. Since
31: * then, the design and implementation has been rewritten from scratch several
32: * times to make it more generic and extensible. The first version was hard
33: * coded and written over the weekend.
34: * <p>
35: *
36: * @author Peter Lin<br>
37: * @version $Revision: 493789 $ last updated $Date: 2007-01-07 18:10:21 +0000 (Sun, 07 Jan 2007) $ Created
38: * on: Jun 23, 2003<br>
39: */
40:
41: public interface LogParser {
42:
43: /**
44: * close the any streams or readers.
45: */
46: public void close();
47:
48: /**
49: * the method will parse the given number of lines. Pass "-1" to parse the
50: * entire file. If the end of the file is reached without parsing a line, a
51: * 0 is returned. If the method is subsequently called again, it will
52: * restart parsing at the beginning.
53: *
54: * @param count
55: * @return int
56: */
57: public int parseAndConfigure(int count, TestElement el);
58:
59: /**
60: * We allow for filters, so that users can simply point to an Access log
61: * without having to clean it up. This makes it significantly easier and
62: * reduces the amount of work. Plus I'm lazy, so going through a log file to
63: * clean it up is a bit tedious. One example of this is using the filter to
64: * exclude any log entry that has a 505 response code.
65: *
66: * @param filter
67: */
68: public void setFilter(Filter filter);
69:
70: /**
71: * The method is provided to make it easy to dynamically create new classes
72: * using Class.newInstance(). Then the access log file is set using this
73: * method.
74: *
75: * @param source
76: */
77: public void setSourceFile(String source);
78: }
|