jsalvata 2003/11/25 11:39:43
Modified: src/protocol/http/org/apache/jmeter/protocol/http/parser
HTMLParser.java RegexpHTMLParser.java
Log:
Decently implement a singleton pattern.
Revision Changes Path
1.2 +11 -3
jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/parser/HTMLParser.java
Index: HTMLParser.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/parser/HTMLParser.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- HTMLParser.java 25 Nov 2003 15:32:38 -0000 1.1
+++ HTMLParser.java 25 Nov 2003 19:39:43 -0000 1.2
@@ -76,6 +76,13 @@
static HTMLParser parser;
/**
+ * Protected constructor to prevent instantiation except
+ * from within subclasses.
+ */
+ protected HTMLParser() {
+ }
+
+ /**
* Create the single instance.
*/
private static void initialize()
@@ -109,10 +116,11 @@
*
* @return The single HtmlParser instance.
*/
- public static HTMLParser getParser()
+ public static final synchronized HTMLParser getParser()
{
- if (parser == null)
+ if (parser == null) {
initialize();
+ }
return parser;
}
1.2 +5 -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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- RegexpHTMLParser.java 25 Nov 2003 15:32:38 -0000 1.1
+++ RegexpHTMLParser.java 25 Nov 2003 19:39:43 -0000 1.2
@@ -160,9 +160,11 @@
transient private static Logger log= LoggingManager.getLoggerForClass();
/**
- * This is a singleton class:
+ * Make sure to compile the regular expression upon instantiation:
*/
- static {
+ protected RegexpHTMLParser() {
+ super();
+
// Compile the regular expression:
try
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]