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.java.sampler;
20:
21: import org.apache.jmeter.config.Arguments;
22: import org.apache.jorphan.logging.LoggingManager;
23: import org.apache.log.Logger;
24:
25: /**
26: * An abstract implementation of the JavaSamplerClient interface. This
27: * implementation provides default implementations of most of the methods in the
28: * interface, as well as some convenience methods, in order to simplify
29: * development of JavaSamplerClient implementations.
30: * <p>
31: * See {@link org.apache.jmeter.protocol.java.test.SleepTest} for an example of
32: * how to extend this class.
33: * <p>
34: * While it may be necessary to make changes to the JavaSamplerClient interface
35: * from time to time (therefore requiring changes to any implementations of this
36: * interface), we intend to make this abstract class provide reasonable
37: * implementations of any new methods so that subclasses do not necessarily need
38: * to be updated for new versions. Therefore, when creating a new
39: * JavaSamplerClient implementation, developers are encouraged to subclass this
40: * abstract class rather than implementing the JavaSamplerClient interface
41: * directly. Implementing JavaSamplerClient directly will continue to be
42: * supported for cases where extending this class is not possible (for example,
43: * when the client class is already a subclass of some other class).
44: * <p>
45: * The runTest() method of JavaSamplerClient does not have a default
46: * implementation here, so subclasses must define at least this method. It may
47: * be useful to override other methods as well.
48: *
49: * @see JavaSamplerClient#runTest(JavaSamplerContext)
50: *
51: * @author <a href="mailto:jeremy_a@bigfoot.com">Jeremy Arnold</a>
52: * @version $Revision: 493789 $
53: */
54: public abstract class AbstractJavaSamplerClient implements
55: JavaSamplerClient {
56: /**
57: * The Logger to be used by the Java protocol. This can be used by
58: * subclasses through the getLogger() method.
59: *
60: * @see #getLogger()
61: */
62: private static transient Logger log = LoggingManager
63: .getLoggerForClass();
64:
65: /* Implements JavaSamplerClient.setupTest(JavaSamplerContext) */
66: public void setupTest(JavaSamplerContext context) {
67: log.debug(getClass().getName() + ": setupTest");
68: }
69:
70: /* Implements JavaSamplerClient.teardownTest(JavaSamplerContext) */
71: public void teardownTest(JavaSamplerContext context) {
72: log.debug(getClass().getName() + ": teardownTest");
73: }
74:
75: /* Implements JavaSamplerClient.getDefaultParameters() */
76: public Arguments getDefaultParameters() {
77: return null;
78: }
79:
80: /**
81: * Get a Logger instance which can be used by subclasses to log information.
82: * This is the same Logger which is used by the base JavaSampler classes
83: * (jmeter.protocol.java).
84: *
85: * @return a Logger instance which can be used for logging
86: */
87: protected Logger getLogger() {
88: return log;
89: }
90: }
|