Hello,
I haven't seen any discussion about the "right" way to get the
JavaSampler working the way I expect it should (from my message a couple
days ago), so I'm just going to put something together and you all can
complain if you don't like it. :)
This change will touch a lot of the base code in addition to the
JavaSampler-specific code, so rather than doing one big patch I'm going
to do it in a couple of smaller steps. This email contains the first of
those steps.
Specifically, I'm changing the AbstractSampler to not implement
PerSampleClonable, and instead all of the subclasses will implement
PerSampleClonable. This will allow us to choose the right interface
(PerSampleClonable or PerThreadClonable) for each sampler. I'm changing
the JavaSampler to PerThreadClonable. Perhaps some of the others could
also be changed (this came up on the list a little while back), but I
haven't looked at the code to determine which samplers this would work for.
I've got some prototype code working for fixing up the behavior of
JavaSampler, but it will take me a bit longer to clean it up and submit
it. Should be sometime this week.
Jeremy
Index:
jakarta-jmeter/src/protocol/ftp/org/apache/jmeter/protocol/ftp/sampler/FTPSampler.java
===================================================================
RCS file:
/home/cvspublic/jakarta-jmeter/src/protocol/ftp/org/apache/jmeter/protocol/ftp/sampler/FTPSampler.java,v
retrieving revision 1.2
diff -u -r1.2 FTPSampler.java
---
jakarta-jmeter/src/protocol/ftp/org/apache/jmeter/protocol/ftp/sampler/FTPSampler.java
23 Aug 2002 22:51:46 -0000 1.2
+++
jakarta-jmeter/src/protocol/ftp/org/apache/jmeter/protocol/ftp/sampler/FTPSampler.java
11 Mar 2003 22:34:24 -0000
@@ -62,6 +62,7 @@
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Entry;
import org.apache.jmeter.samplers.AbstractSampler;
+import org.apache.jmeter.testelement.PerSampleClonable;
import org.apache.jmeter.testelement.TestElement;
/************************************************************
@@ -72,8 +73,7 @@
[EMAIL PROTECTED] $Revision: 1.2 $
***********************************************************/
-public class FTPSampler extends AbstractSampler
-{
+public class FTPSampler extends AbstractSampler implements PerSampleClonable {
public final static String SERVER = "FTPSampler.server";
public final static String FILENAME = "FTPSampler.filename";
Index:
jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java
===================================================================
RCS file:
/home/cvspublic/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java,v
retrieving revision 1.25
diff -u -r1.25 HTTPSampler.java
---
jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java
11 Mar 2003 19:04:19 -0000 1.25
+++
jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java
11 Mar 2003 22:34:56 -0000
@@ -76,6 +76,7 @@
import org.apache.jmeter.samplers.AbstractSampler;
import org.apache.jmeter.samplers.Entry;
import org.apache.jmeter.samplers.SampleResult;
+import org.apache.jmeter.testelement.PerSampleClonable;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.util.SSLManager;
import org.apache.jorphan.util.JOrphanUtils;
@@ -95,8 +96,7 @@
[EMAIL PROTECTED] $Date: 2003/03/11 19:04:19 $
[EMAIL PROTECTED] $Revision: 1.25 $
***************************************/
-public class HTTPSampler extends AbstractSampler
-{
+public class HTTPSampler extends AbstractSampler implements PerSampleClonable {
public final static String HEADERS = "headers";
public final static String HEADER = "header";
public final static String ARGUMENTS = "HTTPsampler.Arguments";
Index:
jakarta-jmeter/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JavaSampler.java
===================================================================
RCS file:
/home/cvspublic/jakarta-jmeter/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JavaSampler.java,v
retrieving revision 1.4
diff -u -r1.4 JavaSampler.java
---
jakarta-jmeter/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JavaSampler.java
30 Aug 2002 14:43:20 -0000 1.4
+++
jakarta-jmeter/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JavaSampler.java
11 Mar 2003 22:35:19 -0000
@@ -64,6 +64,7 @@
import org.apache.jmeter.samplers.AbstractSampler;
import org.apache.jmeter.samplers.Entry;
import org.apache.jmeter.samplers.SampleResult;
+import org.apache.jmeter.testelement.PerThreadClonable;
import org.apache.jmeter.testelement.TestElement;
import org.apache.log.Hierarchy;
import org.apache.log.Logger;
@@ -73,7 +74,8 @@
*/
-public class JavaSampler extends AbstractSampler implements JavaSamplerClient {
+public class JavaSampler extends AbstractSampler
+ implements JavaSamplerClient, PerThreadClonable {
/** Handle to Java client. **/
@@ -264,4 +266,4 @@
return sb.toString();
}
-}
\ No newline at end of file
+}
Index:
jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java
===================================================================
RCS file:
/home/cvspublic/jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java,v
retrieving revision 1.10
diff -u -r1.10 JDBCSampler.java
---
jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java
12 Jan 2003 01:28:40 -0000 1.10
+++
jakarta-jmeter/src/protocol/jdbc/org/apache/jmeter/protocol/jdbc/sampler/JDBCSampler.java
11 Mar 2003 22:36:18 -0000
@@ -70,6 +70,7 @@
import org.apache.jmeter.samplers.AbstractSampler;
import org.apache.jmeter.samplers.Entry;
import org.apache.jmeter.samplers.SampleResult;
+import org.apache.jmeter.testelement.PerSampleClonable;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.testelement.TestListener;
import org.apache.log.Hierarchy;
@@ -82,8 +83,8 @@
[EMAIL PROTECTED] $Date: 2003/01/12 01:28:40 $
[EMAIL PROTECTED] $Revision: 1.10 $
***********************************************************/
-public class JDBCSampler extends AbstractSampler implements TestListener
-{
+public class JDBCSampler extends AbstractSampler
+ implements TestListener, PerSampleClonable {
transient private static Logger log =
Hierarchy.getDefaultHierarchy().getLoggerFor("jmeter.protocol.jdbc");
public final static String URL = "JDBCSampler.url";
Index: jakarta-jmeter/src/core/org/apache/jmeter/control/GenericController.java
===================================================================
RCS file:
/home/cvspublic/jakarta-jmeter/src/core/org/apache/jmeter/control/GenericController.java,v
retrieving revision 1.3
diff -u -r1.3 GenericController.java
--- jakarta-jmeter/src/core/org/apache/jmeter/control/GenericController.java 5 Feb
2003 05:12:05 -0000 1.3
+++ jakarta-jmeter/src/core/org/apache/jmeter/control/GenericController.java 11 Mar
2003 22:36:48 -0000
@@ -62,6 +62,7 @@
import org.apache.jmeter.samplers.AbstractSampler;
import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.testelement.AbstractTestElement;
+import org.apache.jmeter.testelement.PerSampleClonable;
import org.apache.jmeter.testelement.PerThreadClonable;
import org.apache.jmeter.testelement.TestElement;
@@ -364,7 +365,7 @@
s.setName(name);
return s;
}
- class TestSampler extends AbstractSampler {
+ class TestSampler extends AbstractSampler implements PerSampleClonable
{
public void addCustomTestElement(TestElement t) { }
public org.apache.jmeter.samplers.SampleResult
sample(org.apache.jmeter.samplers.Entry e) { return null; }
}
Index: jakarta-jmeter/src/core/org/apache/jmeter/control/LoopController.java
===================================================================
RCS file:
/home/cvspublic/jakarta-jmeter/src/core/org/apache/jmeter/control/LoopController.java,v
retrieving revision 1.2
diff -u -r1.2 LoopController.java
--- jakarta-jmeter/src/core/org/apache/jmeter/control/LoopController.java 5 Feb
2003 05:12:05 -0000 1.2
+++ jakarta-jmeter/src/core/org/apache/jmeter/control/LoopController.java 11 Mar
2003 22:37:01 -0000
@@ -56,6 +56,7 @@
import java.io.Serializable;
import org.apache.jmeter.samplers.AbstractSampler;
+import org.apache.jmeter.testelement.PerSampleClonable;
import org.apache.jmeter.testelement.TestElement;
/****************************************
* Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
@@ -219,7 +220,7 @@
s.setName(name);
return s;
}
- class TestSampler extends AbstractSampler {
+ class TestSampler extends AbstractSampler implements PerSampleClonable
{
public void addCustomTestElement(TestElement t) { }
public org.apache.jmeter.samplers.SampleResult
sample(org.apache.jmeter.samplers.Entry e) { return null; }
}
Index: jakarta-jmeter/src/core/org/apache/jmeter/threads/TestCompiler.java
===================================================================
RCS file:
/home/cvspublic/jakarta-jmeter/src/core/org/apache/jmeter/threads/TestCompiler.java,v
retrieving revision 1.14
diff -u -r1.14 TestCompiler.java
--- jakarta-jmeter/src/core/org/apache/jmeter/threads/TestCompiler.java 21 Feb 2003
18:19:44 -0000 1.14
+++ jakarta-jmeter/src/core/org/apache/jmeter/threads/TestCompiler.java 11 Mar 2003
22:37:21 -0000
@@ -340,8 +340,7 @@
assertEquals("A test value", sampler.getProperty("test.property"));
}
- class TestSampler extends AbstractSampler
- {
+ class TestSampler extends AbstractSampler implements PerSampleClonable {
public void addCustomTestElement(TestElement t)
{}
public org.apache.jmeter.samplers.SampleResult
sample(org.apache.jmeter.samplers.Entry e)
Index: jakarta-jmeter/src/components/org/apache/jmeter/control/InterleaveControl.java
===================================================================
RCS file:
/home/cvspublic/jakarta-jmeter/src/components/org/apache/jmeter/control/InterleaveControl.java,v
retrieving revision 1.6
diff -u -r1.6 InterleaveControl.java
--- jakarta-jmeter/src/components/org/apache/jmeter/control/InterleaveControl.java
5 Feb 2003 05:12:02 -0000 1.6
+++ jakarta-jmeter/src/components/org/apache/jmeter/control/InterleaveControl.java
11 Mar 2003 22:37:49 -0000
@@ -57,6 +57,7 @@
import org.apache.jmeter.samplers.AbstractSampler;
import org.apache.jmeter.samplers.Sampler;
+import org.apache.jmeter.testelement.PerSampleClonable;
import org.apache.jmeter.testelement.TestElement;
/****************************************
@@ -377,7 +378,8 @@
s.setName(name);
return s;
}
- public class TestSampler extends AbstractSampler {
+ public class TestSampler extends AbstractSampler
+ implements PerSampleClonable {
public void addCustomTestElement(TestElement t) { }
public org.apache.jmeter.samplers.SampleResult
sample(org.apache.jmeter.samplers.Entry e) { return null; }
}
Index: jakarta-jmeter/src/components/org/apache/jmeter/control/OnceOnlyController.java
===================================================================
RCS file:
/home/cvspublic/jakarta-jmeter/src/components/org/apache/jmeter/control/OnceOnlyController.java,v
retrieving revision 1.3
diff -u -r1.3 OnceOnlyController.java
--- jakarta-jmeter/src/components/org/apache/jmeter/control/OnceOnlyController.java
5 Feb 2003 05:12:02 -0000 1.3
+++ jakarta-jmeter/src/components/org/apache/jmeter/control/OnceOnlyController.java
11 Mar 2003 22:38:01 -0000
@@ -57,6 +57,7 @@
import java.io.Serializable;
import org.apache.jmeter.samplers.AbstractSampler;
+import org.apache.jmeter.testelement.PerSampleClonable;
import org.apache.jmeter.testelement.TestElement;
/************************************************************
@@ -147,7 +148,8 @@
s.setName(name);
return s;
}
- public class TestSampler extends AbstractSampler {
+ public class TestSampler extends AbstractSampler
+ implements PerSampleClonable {
public void addCustomTestElement(TestElement t) { }
public org.apache.jmeter.samplers.SampleResult
sample(org.apache.jmeter.samplers.Entry e) { return null; }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]