<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>jmeter-dev@jakarta.apache.org Archives</title>
<link rel="self" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/?format=atom"/>
<link href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/"/>
<id>http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/</id>
<updated>2009-12-06T03:27:07Z</updated>
<entry>
<title>[GUMP@vmgump]: Project jakarta-jmeter-svn (in module jakarta-jmeter) failed</title>
<author><name>Gump-build &lt;sebb@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091205151550.8D77C72007B@vmgump.apache.org%3e"/>
<id>urn:uuid:%3c20091205151550-8D77C72007B@vmgump-apache-org%3e</id>
<updated>2009-12-05T07:15:50Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
To whom it may engage...
        
This is an automated request, but not an unsolicited one. For 
more information please visit http://gump.apache.org/nagged.html, 
and/or contact the folk at general@gump.apache.org.

Project jakarta-jmeter-svn has an issue affecting its community integration.
This issue affects 2 projects,
 and has been outstanding for 5 runs.
The current state of this project is 'Failed', with reason 'Build Failed'.
For reference only, the following projects are affected by this:
    - jakarta-jmeter-svn :  Pure Java load testing and performance measurement tool.
   ...
    - jakarta-jmeter-test :  Pure Java load testing and performance measurement tool.
   ...


Full details are available at:
    http://vmgump.apache.org/gump/public/jakarta-jmeter/jakarta-jmeter-svn/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were provided:
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/core]
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/jorphan]
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/components]
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/protocol/http]
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/monitor/model]
 -INFO- Failed with reason build failed



The following work was performed:
http://vmgump.apache.org/gump/public/jakarta-jmeter/jakarta-jmeter-svn/gump_work/build_jakarta-jmeter_jakarta-jmeter-svn.html
Work Name: build_jakarta-jmeter_jakarta-jmeter-svn (Type: Build)
Work ended in a state of : Failed
Elapsed: 5 secs
Command Line: /usr/lib/jvm/java-6-sun/bin/java -Djava.awt.headless=true -Xbootclasspath/p:/srv/gump/public/workspace/xml-xalan/build/serializer.jar:/srv/gump/public/workspace/xml-xalan/build/xalan-unbundled.jar:/srv/gump/public/workspace/xml-commons/java/external/build/xml-apis.jar:/srv/gump/public/workspace/xml-xerces2/build/xercesImpl.jar
org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml -Dbuild.sysclasspath=only
'-Dversion.projectfile=$Revision: 886220 $' -Djmeter.version=05122009 -Dgump.run=true '-Ddate.projectfile=$Date:
2009-12-02 09:47:27 -0800 (Wed, 02 Dec 2009) $' gump-build 
[Working Directory: /srv/gump/public/workspace/jakarta-jmeter]
CLASSPATH: /usr/lib/jvm/java-6-sun/lib/tools.jar:/srv/gump/public/workspace/jakarta-jmeter/build/core:/srv/gump/public/workspace/jakarta-jmeter/build/jorphan:/srv/gump/public/workspace/jakarta-jmeter/build/components:/srv/gump/public/workspace/jakarta-jmeter/build/protocol/http:/srv/gump/public/workspace/jakarta-jmeter/build/monitor/model:/srv/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/srv/gump/public/workspace/ant/dist/lib/ant-swing.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-xalan2.jar:/srv/gump/public/workspace/ant/dist/lib/ant-trax.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit.jar:/srv/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/srv/gump/public/workspace/ant/dist/lib/ant-nodeps.jar:/srv/gump/public/workspace/ant/dist/lib/ant.jar:/srv/gump/packages/jaf-1.1ea/activation.jar:/srv/gump/packages/javamail-1.4/mail.jar:/srv/gump/packages/javamail-1.4/lib/mailapi.jar:/srv/gump/package
 s/jsse1.0.3/lib/jcert.jar:/srv/gump/packages/jsse1.0.3/lib/jnet.jar:/srv/gump/packages/jsse1.0.3/lib/jsse.jar:/srv/gump/packages/jms1.1/lib/jms.jar:/srv/gump/public/workspace/rhino/build/rhino_05122009/js.jar:/srv/gump/public/workspace/jakarta-bsf/build/lib/bsf.jar:/srv/gump/public/workspace/apache-commons/codec/dist/commons-codec-05122009.jar:/srv/gump/public/workspace/apache-commons/io/target/commons-io-05122009.jar:/srv/gump/public/workspace/apache-commons/lang/target/commons-lang-3.0-SNAPSHOT.jar:/srv/gump/public/workspace/commons-jexl-1.x/target/commons-jexl-1.1.1-SNAPSHOT.jar:/srv/gump/public/workspace/httpcomponents/oac.hc3x/dist/commons-httpclient.jar:/srv/gump/public/workspace/apache-commons/net/dist/commons-net-05122009.jar:/srv/gump/public/workspace/commons-collections-3.x/target/commons-collections-3.3-SNAPSHOT.jar:/srv/gump/public/workspace/apache-commons/logging/target/commons-logging-05122009.jar:/srv/gump/public/workspace/apache-commons/logging/target/commons
 -logging-api-05122009.jar:/srv/gump/public/workspace/jakarta-oro/jakarta-oro-05122009.jar:/srv/gump/packages/avalon/avalon-framework-api-4.3.jar:/srv/gump/packages/avalon/avalon-logkit-2.1.jar:/srv/gump/public/workspace/velocity-engine/bin/velocity-05122009.jar:/srv/gump/public/workspace/velocity-engine/bin/velocity-05122009-dep.jar:/srv/gump/public/workspace/xml-commons/java/external/build/xml-apis-ext.jar:/srv/gump/public/workspace/xstream/xstream/target/xstream-1.4-SNAPSHOT.jar:/srv/gump/public/workspace/xpp/build/xpp3-05122009.jar:/srv/gump/public/workspace/xmlgraphics-commons/build/xmlgraphics-commons-05122009.jar:/srv/gump/public/workspace/jdom/build/jdom.jar:/srv/gump/packages/jtidy-04aug2000r7-dev/build/Tidy.jar:/srv/gump/public/workspace/htmlparser/lib/htmlparser.jar:/srv/gump/public/workspace/htmlparser/lib/htmllexer.jar:/srv/gump/public/workspace/ws-soap/java/build/lib/soap.jar:/srv/gump/public/workspace/excalibur/components/pool/api/target/excalibur-pool-api-2.2.
 3-SNAPSHOT.jar:/srv/gump/public/workspace/excalibur/components/pool/instrumented/target/excalibur-pool-instrumented-2.2.3-SNAPSHOT.jar:/srv/gump/public/workspace/excalibur/containerkit/logger/target/excalibur-logger-2.2.2-SNAPSHOT.jar:/srv/gump/public/workspace/excalibur/components/datasource/target/excalibur-datasource-2.2.3-SNAPSHOT.jar:/srv/gump/packages/jcharts/jCharts-0.7.5.jar:/srv/gump/packages/bsh-2.0b4/bsh-2.0b4.jar:/srv/gump/public/workspace/junit/dist/junit-05122009.jar
---------------------------------------------
[echoproperties] gump.merge=/srv/gump/public/gump/work/merge.xml
[echoproperties] gump.run=true
[echoproperties] #Ant properties
[echoproperties] #Sat Dec 05 07:15:42 PST 2009
[echoproperties] os.arch=i386
[echoproperties] os.name=Linux
[echoproperties] os.version=2.6.24-25-server

clean:

_message_3rdParty:

init-version:
     [echo] jmeter.version = 05122009
     [echo] display.version = 05122009
     [echo] implementation.version = 05122009

compile-jorphan:
    [javac] Compiling 51 source files to /srv/gump/public/workspace/jakarta-jmeter/build/jorphan
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java:33:
cannot find symbol
    [javac] symbol  : class DefaultConfigurationBuilder
    [javac] location: package org.apache.avalon.framework.configuration
    [javac] import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
    [javac]                                                 ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java:36:
cannot find symbol
    [javac] symbol  : class DefaultContext
    [javac] location: package org.apache.avalon.framework.context
    [javac] import org.apache.avalon.framework.context.DefaultContext;
    [javac]                                           ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java:145:
cannot find symbol
    [javac] symbol  : class DefaultConfigurationBuilder
    [javac] location: class org.apache.jorphan.logging.LoggingManager
    [javac]         DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder();
    [javac]         ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java:145:
cannot find symbol
    [javac] symbol  : class DefaultConfigurationBuilder
    [javac] location: class org.apache.jorphan.logging.LoggingManager
    [javac]         DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder();
    [javac]                                                   ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java:148:
cannot find symbol
    [javac] symbol  : class DefaultContext
    [javac] location: class org.apache.jorphan.logging.LoggingManager
    [javac]             Context ctx = new DefaultContext();
    [javac]                               ^
    [javac] 5 errors

BUILD FAILED
/srv/gump/public/workspace/jakarta-jmeter/build.xml:696: Compile failed; see the compiler
error output for details.

Total time: 4 seconds
---------------------------------------------

To subscribe to this information via syndicated feeds:
- RSS: http://vmgump.apache.org/gump/public/jakarta-jmeter/jakarta-jmeter-svn/rss.xml
- Atom: http://vmgump.apache.org/gump/public/jakarta-jmeter/jakarta-jmeter-svn/atom.xml

============================== Gump Tracking Only ===
Produced by Gump version 2.3.
Gump Run 07000005122009, vmgump:vmgump-public:07000005122009
Gump E-mail Identifier (unique within run) #49.

--
Apache Gump
http://gump.apache.org/ [Instance: vmgump]

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>DO NOT REPLY [Bug 48331] XpathExtractor does not return XML string representations for a Nodeset</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091203140754.6043F234C04C@brutus.apache.org%3e"/>
<id>urn:uuid:%3c20091203140754-6043F234C04C@brutus-apache-org%3e</id>
<updated>2009-12-03T14:07:53Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
https://issues.apache.org/bugzilla/show_bug.cgi?id=48331

--- Comment #5 from Joe Roberts &lt;carl.roberts@oracle.com&gt; 2009-12-03 06:07:52 UTC ---
Well, now I am getting this.  I suspect it has to do with ant not being
configured for a proxy server:

c:\devtools\tools\java-tools\jmeter\trunk&gt;ant download_jars
Buildfile: build.xml

download_jars:
    [mkdir] Created dir: c:\devtools\tools\java-tools\jmeter\trunk\build

_process_all_jars:

_check_exists:

_check_jarfile:

_get_jarfile:
     [echo] Fetching: lib/bsf-2.4.0.jar
      [get] Getting: http://repo2.maven.org/maven2/bsf/bsf/2.4.0/bsf-2.4.0.jar
      [get] To: c:\devtools\tools\java-tools\jmeter\trunk\build\bsf-2.4.0.jar
      [get] Error getting
http://repo2.maven.org/maven2/bsf/bsf/2.4.0/bsf-2.4.0.jar to
c:\devtools\tools\java-tools\jmeter\trunk\build\bsf-2.4.0.jar

BUILD FAILED
c:\devtools\tools\java-tools\jmeter\trunk\build.xml:2011: The following error
occurred while executing this line:
c:\devtools\tools\java-tools\jmeter\trunk\build.xml:1956: The following error
occurred while executing this line:
c:\devtools\tools\java-tools\jmeter\trunk\build.xml:1867: The following error
occurred while executing this line:
c:\devtools\tools\java-tools\jmeter\trunk\build.xml:1894: The following error
occurred while executing this line:
c:\devtools\tools\java-tools\jmeter\trunk\build.xml:1923:
java.net.ConnectException: Connection timed out: connect

Total time: 31 seconds

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>DO NOT REPLY [Bug 48331] XpathExtractor does not return XML string representations for a Nodeset</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091203131745.60031234C04C@brutus.apache.org%3e"/>
<id>urn:uuid:%3c20091203131745-60031234C04C@brutus-apache-org%3e</id>
<updated>2009-12-03T13:17:44Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
https://issues.apache.org/bugzilla/show_bug.cgi?id=48331

--- Comment #4 from Joe Roberts &lt;carl.roberts@oracle.com&gt; 2009-12-03 05:17:44 UTC ---
I was able to get SVN working.  I needed to configure the servers file for the
proxy.  I should have the change in place soon.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>DO NOT REPLY [Bug 48331] XpathExtractor does not return XML string representations for a Nodeset</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091203130231.5EA66234C045@brutus.apache.org%3e"/>
<id>urn:uuid:%3c20091203130231-5EA66234C045@brutus-apache-org%3e</id>
<updated>2009-12-03T13:02:30Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
https://issues.apache.org/bugzilla/show_bug.cgi?id=48331

--- Comment #3 from Joe Roberts &lt;carl.roberts@oracle.com&gt; 2009-12-03 05:02:28 UTC ---
I'll be glad to submit a patch for this but I have limited time and don't have
time to go through a bunch of docs. to figure out how the process of submitting
the patch for Jmeter works.  I am familiar with SVN and I have tried using your
SVN URLs as follows but I am getting errors.  Please let me know how to
proceed?

c:\devtools\tools\java-tools&gt;svn checkout
http://svn.apache.org/viewvc/jakarta/jmeter jmeter
svn: PROPFIND request failed on '/viewvc/jakarta/jmeter'
svn: PROPFIND of '/viewvc/jakarta/jmeter': could not connect to server
(http://svn.apache.org)

c:\devtools\tools\java-tools&gt;svn checkout
https://svn.apache.org/repos/asf/jakarta/jmeter/trunk/ jmeter
svn: PROPFIND request failed on '/repos/asf/jakarta/jmeter/trunk'
svn: PROPFIND of '/repos/asf/jakarta/jmeter/trunk': could not connect to server
(https://svn.apache.org)

c:\devtools\tools\java-tools&gt;svn checkout
https://svn.apache.org/repos/asf/jakarta/jmeter jmeter
svn: PROPFIND request failed on '/repos/asf/jakarta/jmeter'
svn: PROPFIND of '/repos/asf/jakarta/jmeter': could not connect to server
(https://svn.apache.org)

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[GUMP@vmgump]: Project jakarta-jmeter-svn (in module jakarta-jmeter) failed</title>
<author><name>Gump-build &lt;sebb@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091203151117.4B14CAB401D@vmgump.apache.org%3e"/>
<id>urn:uuid:%3c20091203151117-4B14CAB401D@vmgump-apache-org%3e</id>
<updated>2009-12-03T07:11:17Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
To whom it may engage...
        
This is an automated request, but not an unsolicited one. For 
more information please visit http://gump.apache.org/nagged.html, 
and/or contact the folk at general@gump.apache.org.

Project jakarta-jmeter-svn has an issue affecting its community integration.
This issue affects 2 projects,
 and has been outstanding for 2 runs.
The current state of this project is 'Failed', with reason 'Build Failed'.
For reference only, the following projects are affected by this:
    - jakarta-jmeter-svn :  Pure Java load testing and performance measurement tool.
   ...
    - jakarta-jmeter-test :  Pure Java load testing and performance measurement tool.
   ...


Full details are available at:
    http://vmgump.apache.org/gump/public/jakarta-jmeter/jakarta-jmeter-svn/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were provided:
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/core]
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/jorphan]
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/components]
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/protocol/http]
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/monitor/model]
 -INFO- Failed with reason build failed



The following work was performed:
http://vmgump.apache.org/gump/public/jakarta-jmeter/jakarta-jmeter-svn/gump_work/build_jakarta-jmeter_jakarta-jmeter-svn.html
Work Name: build_jakarta-jmeter_jakarta-jmeter-svn (Type: Build)
Work ended in a state of : Failed
Elapsed: 4 secs
Command Line: /usr/lib/jvm/java-6-sun/bin/java -Djava.awt.headless=true -Xbootclasspath/p:/srv/gump/public/workspace/xml-xalan/build/serializer.jar:/srv/gump/public/workspace/xml-xalan/build/xalan-unbundled.jar:/srv/gump/public/workspace/xml-commons/java/external/build/xml-apis.jar:/srv/gump/public/workspace/xml-xerces2/build/xercesImpl.jar
org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml -Dbuild.sysclasspath=only
'-Dversion.projectfile=$Revision: 886220 $' -Djmeter.version=03122009 -Dgump.run=true '-Ddate.projectfile=$Date:
2009-12-02 09:47:27 -0800 (Wed, 02 Dec 2009) $' gump-build 
[Working Directory: /srv/gump/public/workspace/jakarta-jmeter]
CLASSPATH: /usr/lib/jvm/java-6-sun/lib/tools.jar:/srv/gump/public/workspace/jakarta-jmeter/build/core:/srv/gump/public/workspace/jakarta-jmeter/build/jorphan:/srv/gump/public/workspace/jakarta-jmeter/build/components:/srv/gump/public/workspace/jakarta-jmeter/build/protocol/http:/srv/gump/public/workspace/jakarta-jmeter/build/monitor/model:/srv/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/srv/gump/public/workspace/ant/dist/lib/ant-swing.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-xalan2.jar:/srv/gump/public/workspace/ant/dist/lib/ant-trax.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit.jar:/srv/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/srv/gump/public/workspace/ant/dist/lib/ant-nodeps.jar:/srv/gump/public/workspace/ant/dist/lib/ant.jar:/srv/gump/packages/jaf-1.1ea/activation.jar:/srv/gump/packages/javamail-1.4/mail.jar:/srv/gump/packages/javamail-1.4/lib/mailapi.jar:/srv/gump/package
 s/jsse1.0.3/lib/jcert.jar:/srv/gump/packages/jsse1.0.3/lib/jnet.jar:/srv/gump/packages/jsse1.0.3/lib/jsse.jar:/srv/gump/packages/jms1.1/lib/jms.jar:/srv/gump/public/workspace/rhino/build/rhino_03122009/js.jar:/srv/gump/public/workspace/jakarta-bsf/build/lib/bsf.jar:/srv/gump/public/workspace/apache-commons/codec/dist/commons-codec-03122009.jar:/srv/gump/public/workspace/apache-commons/io/target/commons-io-03122009.jar:/srv/gump/public/workspace/apache-commons/lang/target/commons-lang-3.0-SNAPSHOT.jar:/srv/gump/public/workspace/commons-jexl-1.x/target/commons-jexl-1.1.1-SNAPSHOT.jar:/srv/gump/public/workspace/httpcomponents/oac.hc3x/dist/commons-httpclient.jar:/srv/gump/public/workspace/apache-commons/net/dist/commons-net-03122009.jar:/srv/gump/public/workspace/commons-collections-3.x/target/commons-collections-3.3-SNAPSHOT.jar:/srv/gump/public/workspace/apache-commons/logging/target/commons-logging-03122009.jar:/srv/gump/public/workspace/apache-commons/logging/target/commons
 -logging-api-03122009.jar:/srv/gump/public/workspace/jakarta-oro/jakarta-oro-03122009.jar:/srv/gump/packages/avalon/avalon-framework-api-4.3.jar:/srv/gump/packages/avalon/avalon-logkit-2.1.jar:/srv/gump/public/workspace/velocity-engine/bin/velocity-03122009.jar:/srv/gump/public/workspace/velocity-engine/bin/velocity-03122009-dep.jar:/srv/gump/public/workspace/xml-commons/java/external/build/xml-apis-ext.jar:/srv/gump/public/workspace/xstream/xstream/target/xstream-1.4-SNAPSHOT.jar:/srv/gump/public/workspace/xpp/build/xpp3-03122009.jar:/srv/gump/public/workspace/xmlgraphics-commons/build/xmlgraphics-commons-03122009.jar:/srv/gump/public/workspace/jdom/build/jdom.jar:/srv/gump/packages/jtidy-04aug2000r7-dev/build/Tidy.jar:/srv/gump/public/workspace/htmlparser/lib/htmlparser.jar:/srv/gump/public/workspace/htmlparser/lib/htmllexer.jar:/srv/gump/public/workspace/ws-soap/java/build/lib/soap.jar:/srv/gump/public/workspace/excalibur/components/pool/api/target/excalibur-pool-api-2.2.
 3-SNAPSHOT.jar:/srv/gump/public/workspace/excalibur/components/pool/instrumented/target/excalibur-pool-instrumented-2.2.3-SNAPSHOT.jar:/srv/gump/public/workspace/excalibur/containerkit/logger/target/excalibur-logger-2.2.2-SNAPSHOT.jar:/srv/gump/public/workspace/excalibur/components/datasource/target/excalibur-datasource-2.2.3-SNAPSHOT.jar:/srv/gump/packages/jcharts/jCharts-0.7.5.jar:/srv/gump/packages/bsh-2.0b4/bsh-2.0b4.jar:/srv/gump/public/workspace/junit/dist/junit-03122009.jar
---------------------------------------------
[echoproperties] gump.merge=/srv/gump/public/gump/work/merge.xml
[echoproperties] gump.run=true
[echoproperties] #Ant properties
[echoproperties] #Thu Dec 03 07:11:09 PST 2009
[echoproperties] os.arch=i386
[echoproperties] os.name=Linux
[echoproperties] os.version=2.6.24-25-server

clean:

_message_3rdParty:

init-version:
     [echo] jmeter.version = 03122009
     [echo] display.version = 03122009
     [echo] implementation.version = 03122009

compile-jorphan:
    [javac] Compiling 51 source files to /srv/gump/public/workspace/jakarta-jmeter/build/jorphan
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java:33:
cannot find symbol
    [javac] symbol  : class DefaultConfigurationBuilder
    [javac] location: package org.apache.avalon.framework.configuration
    [javac] import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
    [javac]                                                 ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java:36:
cannot find symbol
    [javac] symbol  : class DefaultContext
    [javac] location: package org.apache.avalon.framework.context
    [javac] import org.apache.avalon.framework.context.DefaultContext;
    [javac]                                           ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java:145:
cannot find symbol
    [javac] symbol  : class DefaultConfigurationBuilder
    [javac] location: class org.apache.jorphan.logging.LoggingManager
    [javac]         DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder();
    [javac]         ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java:145:
cannot find symbol
    [javac] symbol  : class DefaultConfigurationBuilder
    [javac] location: class org.apache.jorphan.logging.LoggingManager
    [javac]         DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder();
    [javac]                                                   ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java:148:
cannot find symbol
    [javac] symbol  : class DefaultContext
    [javac] location: class org.apache.jorphan.logging.LoggingManager
    [javac]             Context ctx = new DefaultContext();
    [javac]                               ^
    [javac] 5 errors

BUILD FAILED
/srv/gump/public/workspace/jakarta-jmeter/build.xml:696: Compile failed; see the compiler
error output for details.

Total time: 3 seconds
---------------------------------------------

To subscribe to this information via syndicated feeds:
- RSS: http://vmgump.apache.org/gump/public/jakarta-jmeter/jakarta-jmeter-svn/rss.xml
- Atom: http://vmgump.apache.org/gump/public/jakarta-jmeter/jakarta-jmeter-svn/atom.xml

============================== Gump Tracking Only ===
Produced by Gump version 2.3.
Gump Run 09000003122009, vmgump:vmgump-public:09000003122009
Gump E-mail Identifier (unique within run) #49.

--
Apache Gump
http://gump.apache.org/ [Instance: vmgump]

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>DO NOT REPLY [Bug 48331] XpathExtractor does not return XML string representations for a Nodeset</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091202211050.9AC60234C045@brutus.apache.org%3e"/>
<id>urn:uuid:%3c20091202211050-9AC60234C045@brutus-apache-org%3e</id>
<updated>2009-12-02T21:10:50Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
https://issues.apache.org/bugzilla/show_bug.cgi?id=48331

Sebb &lt;sebb@apache.org&gt; changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |NEEDINFO

--- Comment #2 from Sebb &lt;sebb@apache.org&gt; 2009-12-02 13:10:48 UTC ---
Thanks for the info and the new java source.

We much prefer patches as unified diffs; since JMeter is an Apache project and
therefore open source, the source is freely available, either as part of the
source archive download, or directly from SVN, which is better as it will be
the latest code:

http://svn.apache.org/repos/asf/jakarta/jmeter/trunk/src/components/org/apache/jmeter/extractor/XPathExtractor.java

Please can you resubmit your suggested code change as a patch?

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>DO NOT REPLY [Bug 48331] XpathExtractor does not return XML string representations for a Nodeset</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091202194914.095F2234C052@brutus.apache.org%3e"/>
<id>urn:uuid:%3c20091202194914-095F2234C052@brutus-apache-org%3e</id>
<updated>2009-12-02T19:49:14Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
https://issues.apache.org/bugzilla/show_bug.cgi?id=48331

--- Comment #1 from Joe Roberts &lt;carl.roberts@oracle.com&gt; 2009-12-02 11:49:13 UTC ---
Created an attachment (id=24660)
 --&gt; (https://issues.apache.org/bugzilla/attachment.cgi?id=24660)
Here is the new class to use

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>DO NOT REPLY [Bug 48331] New: XpathExtractor does not return XML string representations for a Nodeset</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3cbug-48331-1333@https.issues.apache.org/bugzilla/%3e"/>
<id>urn:uuid:%3cbug-48331-1333@https-issues-apache-org/bugzilla/%3e</id>
<updated>2009-12-02T19:48:12Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
https://issues.apache.org/bugzilla/show_bug.cgi?id=48331

           Summary: XpathExtractor does not return XML string
                    representations for a Nodeset
           Product: JMeter
           Version: 2.3.4
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: critical
          Priority: P2
         Component: Main
        AssignedTo: jmeter-dev@jakarta.apache.org
        ReportedBy: carl.roberts@oracle.com


1 - When I have a response that contains an XML Node named TemplateList, as in
this case:

&lt;?xml version='1.0' encoding='utf-8'?&gt;&lt;soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&gt;&lt;soapenv:Body&gt;&lt;doGetTemplateListResponse
xmlns="http://webservices.docucorp.com/ewps/schema/2005-12-01"
xmlns:xmime="http://www.w3.org/2005/05/xmlmime"&gt;
    &lt;Result&gt;Success&lt;/Result&gt;
    &lt;TemplateList&gt;
        &lt;Story id="100100" StoryName="UL APPLICATION REJECTION NOTICE"&gt;
            &lt;Key1 id="DOCUDEMO"&gt;
                &lt;Key2 id="LIFE" /&gt;
            &lt;/Key1&gt;
            &lt;Description&gt;UL Application Rejection&lt;/Description&gt;
            &lt;Props&gt;
                &lt;Prop name="OPTIONS"&gt;N&lt;/Prop&gt;
                &lt;Prop name="CATEGORY"&gt;DOCUDEMO_LIFE&lt;/Prop&gt;
                &lt;Prop name="VERSION"&gt;Change ME&lt;/Prop&gt;
            &lt;/Props&gt;
        &lt;/Story&gt;
    &lt;/TemplateList&gt;
    &lt;Result&gt;Success&lt;/Result&gt;
....

2 - And I use an XPathExtractor as a post processor with these values:

Reference Name=templateList
XPath query=//TemplateList
Default Value=ERROR

3 - And I do not use Tidy or Namespaces, the XPathExtractor returns a blank
string.

4 - I decompiled your code and modified it and now it returns the correct
value.  

I would like to know if you can update your source code so my new change can be
included in Jmeter in order to support returning string representations of XML
fragments through XPath.  Attached is my version of XPathExtractor.java class.

5 - I have also tested with these XPath expressions with the new class and it
returns the correct results:

Xpath query=//Result

returns &lt;Result&gt;Success&lt;/Result&gt;

Xpath query=//Result/text()

returns Success

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[GUMP@vmgump]: Project jakarta-jmeter-svn (in module jakarta-jmeter) failed</title>
<author><name>Gump-build &lt;sebb@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091202213651.6FF6DAB4016@vmgump.apache.org%3e"/>
<id>urn:uuid:%3c20091202213651-6FF6DAB4016@vmgump-apache-org%3e</id>
<updated>2009-12-02T13:36:50Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
To whom it may engage...
        
This is an automated request, but not an unsolicited one. For 
more information please visit http://gump.apache.org/nagged.html, 
and/or contact the folk at general@gump.apache.org.

Project jakarta-jmeter-svn has an issue affecting its community integration.
This issue affects 2 projects.
The current state of this project is 'Failed', with reason 'Build Failed'.
For reference only, the following projects are affected by this:
    - jakarta-jmeter-svn :  Pure Java load testing and performance measurement tool.
   ...
    - jakarta-jmeter-test :  Pure Java load testing and performance measurement tool.
   ...


Full details are available at:
    http://vmgump.apache.org/gump/public/jakarta-jmeter/jakarta-jmeter-svn/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were provided:
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/core]
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/jorphan]
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/components]
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/protocol/http]
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/monitor/model]
 -INFO- Failed with reason build failed



The following work was performed:
http://vmgump.apache.org/gump/public/jakarta-jmeter/jakarta-jmeter-svn/gump_work/build_jakarta-jmeter_jakarta-jmeter-svn.html
Work Name: build_jakarta-jmeter_jakarta-jmeter-svn (Type: Build)
Work ended in a state of : Failed
Elapsed: 9 secs
Command Line: /usr/lib/jvm/java-6-sun/bin/java -Djava.awt.headless=true -Xbootclasspath/p:/srv/gump/public/workspace/xml-xalan/build/serializer.jar:/srv/gump/public/workspace/xml-xalan/build/xalan-unbundled.jar:/srv/gump/public/workspace/xml-commons/java/external/build/xml-apis.jar:/srv/gump/public/workspace/xml-xerces2/build/xercesImpl.jar
org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml -Dbuild.sysclasspath=only
'-Dversion.projectfile=$Revision: 886220 $' -Djmeter.version=02122009 -Dgump.run=true '-Ddate.projectfile=$Date:
2009-12-02 09:47:27 -0800 (Wed, 02 Dec 2009) $' gump-build 
[Working Directory: /srv/gump/public/workspace/jakarta-jmeter]
CLASSPATH: /usr/lib/jvm/java-6-sun/lib/tools.jar:/srv/gump/public/workspace/jakarta-jmeter/build/core:/srv/gump/public/workspace/jakarta-jmeter/build/jorphan:/srv/gump/public/workspace/jakarta-jmeter/build/components:/srv/gump/public/workspace/jakarta-jmeter/build/protocol/http:/srv/gump/public/workspace/jakarta-jmeter/build/monitor/model:/srv/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/srv/gump/public/workspace/ant/dist/lib/ant-swing.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-xalan2.jar:/srv/gump/public/workspace/ant/dist/lib/ant-trax.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit.jar:/srv/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/srv/gump/public/workspace/ant/dist/lib/ant-nodeps.jar:/srv/gump/public/workspace/ant/dist/lib/ant.jar:/srv/gump/packages/jaf-1.1ea/activation.jar:/srv/gump/packages/javamail-1.4/mail.jar:/srv/gump/packages/javamail-1.4/lib/mailapi.jar:/srv/gump/package
 s/jsse1.0.3/lib/jcert.jar:/srv/gump/packages/jsse1.0.3/lib/jnet.jar:/srv/gump/packages/jsse1.0.3/lib/jsse.jar:/srv/gump/packages/jms1.1/lib/jms.jar:/srv/gump/public/workspace/rhino/build/rhino_02122009/js.jar:/srv/gump/public/workspace/jakarta-bsf/build/lib/bsf.jar:/srv/gump/public/workspace/apache-commons/codec/dist/commons-codec-02122009.jar:/srv/gump/public/workspace/apache-commons/io/target/commons-io-02122009.jar:/srv/gump/public/workspace/apache-commons/lang/target/commons-lang-3.0-SNAPSHOT.jar:/srv/gump/public/workspace/commons-jexl-1.x/target/commons-jexl-1.1.1-SNAPSHOT.jar:/srv/gump/public/workspace/httpcomponents/oac.hc3x/dist/commons-httpclient.jar:/srv/gump/public/workspace/apache-commons/net/dist/commons-net-02122009.jar:/srv/gump/public/workspace/commons-collections-3.x/target/commons-collections-3.3-SNAPSHOT.jar:/srv/gump/public/workspace/apache-commons/logging/target/commons-logging-02122009.jar:/srv/gump/public/workspace/apache-commons/logging/target/commons
 -logging-api-02122009.jar:/srv/gump/public/workspace/jakarta-oro/jakarta-oro-02122009.jar:/srv/gump/packages/avalon/avalon-framework-api-4.3.jar:/srv/gump/packages/avalon/avalon-logkit-2.1.jar:/srv/gump/public/workspace/velocity-engine/bin/velocity-02122009.jar:/srv/gump/public/workspace/velocity-engine/bin/velocity-02122009-dep.jar:/srv/gump/public/workspace/xml-commons/java/external/build/xml-apis-ext.jar:/srv/gump/public/workspace/xstream/xstream/target/xstream-1.4-SNAPSHOT.jar:/srv/gump/public/workspace/xpp/build/xpp3-02122009.jar:/srv/gump/public/workspace/xmlgraphics-commons/build/xmlgraphics-commons-02122009.jar:/srv/gump/public/workspace/jdom/build/jdom.jar:/srv/gump/packages/jtidy-04aug2000r7-dev/build/Tidy.jar:/srv/gump/public/workspace/htmlparser/lib/htmlparser.jar:/srv/gump/public/workspace/htmlparser/lib/htmllexer.jar:/srv/gump/public/workspace/ws-soap/java/build/lib/soap.jar:/srv/gump/public/workspace/excalibur/components/pool/api/target/excalibur-pool-api-2.2.
 3-SNAPSHOT.jar:/srv/gump/public/workspace/excalibur/components/pool/instrumented/target/excalibur-pool-instrumented-2.2.3-SNAPSHOT.jar:/srv/gump/public/workspace/excalibur/containerkit/logger/target/excalibur-logger-2.2.2-SNAPSHOT.jar:/srv/gump/public/workspace/excalibur/components/datasource/target/excalibur-datasource-2.2.3-SNAPSHOT.jar:/srv/gump/packages/jcharts/jCharts-0.7.5.jar:/srv/gump/packages/bsh-2.0b4/bsh-2.0b4.jar:/srv/gump/public/workspace/junit/dist/junit-02122009.jar
---------------------------------------------
[echoproperties] gump.merge=/srv/gump/public/gump/work/merge.xml
[echoproperties] gump.run=true
[echoproperties] #Ant properties
[echoproperties] #Wed Dec 02 13:36:41 PST 2009
[echoproperties] os.arch=i386
[echoproperties] os.name=Linux
[echoproperties] os.version=2.6.24-25-server

clean:

_message_3rdParty:

init-version:
     [echo] jmeter.version = 02122009
     [echo] display.version = 02122009
     [echo] implementation.version = 02122009

compile-jorphan:
    [javac] Compiling 51 source files to /srv/gump/public/workspace/jakarta-jmeter/build/jorphan
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java:33:
cannot find symbol
    [javac] symbol  : class DefaultConfigurationBuilder
    [javac] location: package org.apache.avalon.framework.configuration
    [javac] import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
    [javac]                                                 ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java:36:
cannot find symbol
    [javac] symbol  : class DefaultContext
    [javac] location: package org.apache.avalon.framework.context
    [javac] import org.apache.avalon.framework.context.DefaultContext;
    [javac]                                           ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java:145:
cannot find symbol
    [javac] symbol  : class DefaultConfigurationBuilder
    [javac] location: class org.apache.jorphan.logging.LoggingManager
    [javac]         DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder();
    [javac]         ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java:145:
cannot find symbol
    [javac] symbol  : class DefaultConfigurationBuilder
    [javac] location: class org.apache.jorphan.logging.LoggingManager
    [javac]         DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder();
    [javac]                                                   ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java:148:
cannot find symbol
    [javac] symbol  : class DefaultContext
    [javac] location: class org.apache.jorphan.logging.LoggingManager
    [javac]             Context ctx = new DefaultContext();
    [javac]                               ^
    [javac] 5 errors

BUILD FAILED
/srv/gump/public/workspace/jakarta-jmeter/build.xml:696: Compile failed; see the compiler
error output for details.

Total time: 5 seconds
---------------------------------------------

To subscribe to this information via syndicated feeds:
- RSS: http://vmgump.apache.org/gump/public/jakarta-jmeter/jakarta-jmeter-svn/rss.xml
- Atom: http://vmgump.apache.org/gump/public/jakarta-jmeter/jakarta-jmeter-svn/atom.xml

============================== Gump Tracking Only ===
Produced by Gump version 2.3.
Gump Run 10000802122009, vmgump:vmgump-public:10000802122009
Gump E-mail Identifier (unique within run) #3.

--
Apache Gump
http://gump.apache.org/ [Instance: vmgump]

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[GUMP@vmgump]: Project jakarta-jmeter-svn (in module jakarta-jmeter) failed</title>
<author><name>Gump-build &lt;sebb@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091202074523.000A3AB4016@vmgump.apache.org%3e"/>
<id>urn:uuid:%3c20091202074523-000A3AB4016@vmgump-apache-org%3e</id>
<updated>2009-12-01T23:45:22Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
To whom it may engage...
        
This is an automated request, but not an unsolicited one. For 
more information please visit http://gump.apache.org/nagged.html, 
and/or contact the folk at general@gump.apache.org.

Project jakarta-jmeter-svn has an issue affecting its community integration.
This issue affects 2 projects.
The current state of this project is 'Failed', with reason 'Build Failed'.
For reference only, the following projects are affected by this:
    - jakarta-jmeter-svn :  Pure Java load testing and performance measurement tool.
   ...
    - jakarta-jmeter-test :  Pure Java load testing and performance measurement tool.
   ...


Full details are available at:
    http://vmgump.apache.org/gump/public/jakarta-jmeter/jakarta-jmeter-svn/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were provided:
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/core]
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/jorphan]
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/components]
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/protocol/http]
 -INFO- Made directory [/srv/gump/public/workspace/jakarta-jmeter/build/monitor/model]
 -INFO- Failed with reason build failed



The following work was performed:
http://vmgump.apache.org/gump/public/jakarta-jmeter/jakarta-jmeter-svn/gump_work/build_jakarta-jmeter_jakarta-jmeter-svn.html
Work Name: build_jakarta-jmeter_jakarta-jmeter-svn (Type: Build)
Work ended in a state of : Failed
Elapsed: 5 secs
Command Line: /usr/lib/jvm/java-6-sun/bin/java -Djava.awt.headless=true -Xbootclasspath/p:/srv/gump/public/workspace/xml-xalan/build/serializer.jar:/srv/gump/public/workspace/xml-xalan/build/xalan-unbundled.jar:/srv/gump/public/workspace/xml-commons/java/external/build/xml-apis.jar:/srv/gump/public/workspace/xml-xerces2/build/xercesImpl.jar
org.apache.tools.ant.Main -Dgump.merge=/srv/gump/public/gump/work/merge.xml -Dbuild.sysclasspath=only
'-Dversion.projectfile=$Revision: 833597 $' -Djmeter.version=01122009 -Dgump.run=true '-Ddate.projectfile=$Date:
2009-11-06 15:18:36 -0800 (Fri, 06 Nov 2009) $' gump-build 
[Working Directory: /srv/gump/public/workspace/jakarta-jmeter]
CLASSPATH: /usr/lib/jvm/java-6-sun/lib/tools.jar:/srv/gump/public/workspace/jakarta-jmeter/build/core:/srv/gump/public/workspace/jakarta-jmeter/build/jorphan:/srv/gump/public/workspace/jakarta-jmeter/build/components:/srv/gump/public/workspace/jakarta-jmeter/build/protocol/http:/srv/gump/public/workspace/jakarta-jmeter/build/monitor/model:/srv/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/srv/gump/public/workspace/ant/dist/lib/ant-swing.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-xalan2.jar:/srv/gump/public/workspace/ant/dist/lib/ant-trax.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit.jar:/srv/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/srv/gump/public/workspace/ant/dist/lib/ant-nodeps.jar:/srv/gump/public/workspace/ant/dist/lib/ant.jar:/srv/gump/packages/jaf-1.1ea/activation.jar:/srv/gump/packages/javamail-1.4/mail.jar:/srv/gump/packages/javamail-1.4/lib/mailapi.jar:/srv/gump/package
 s/jsse1.0.3/lib/jcert.jar:/srv/gump/packages/jsse1.0.3/lib/jnet.jar:/srv/gump/packages/jsse1.0.3/lib/jsse.jar:/srv/gump/packages/jms1.1/lib/jms.jar:/srv/gump/public/workspace/rhino/build/rhino_01122009/js.jar:/srv/gump/public/workspace/jakarta-bsf/build/lib/bsf.jar:/srv/gump/public/workspace/apache-commons/codec/dist/commons-codec-01122009.jar:/srv/gump/public/workspace/apache-commons/io/target/commons-io-01122009.jar:/srv/gump/public/workspace/apache-commons/lang/target/commons-lang-3.0-SNAPSHOT.jar:/srv/gump/public/workspace/apache-commons/jexl/target/commons-jexl-2.0-SNAPSHOT.jar:/srv/gump/public/workspace/httpcomponents/oac.hc3x/dist/commons-httpclient.jar:/srv/gump/public/workspace/apache-commons/net/dist/commons-net-01122009.jar:/srv/gump/public/workspace/commons-collections-3.x/target/commons-collections-3.3-SNAPSHOT.jar:/srv/gump/public/workspace/apache-commons/logging/target/commons-logging-01122009.jar:/srv/gump/public/workspace/apache-commons/logging/target/common
 s-logging-api-01122009.jar:/srv/gump/public/workspace/jakarta-oro/jakarta-oro-01122009.jar:/srv/gump/packages/avalon/avalon-framework-api-4.3.jar:/srv/gump/packages/avalon/avalon-logkit-2.1.jar:/srv/gump/public/workspace/velocity-engine/bin/velocity-01122009.jar:/srv/gump/public/workspace/velocity-engine/bin/velocity-01122009-dep.jar:/srv/gump/public/workspace/xml-commons/java/external/build/xml-apis-ext.jar:/srv/gump/public/workspace/xstream/xstream/target/xstream-1.4-SNAPSHOT.jar:/srv/gump/public/workspace/xpp/build/xpp3-01122009.jar:/srv/gump/public/workspace/xmlgraphics-commons/build/xmlgraphics-commons-01122009.jar:/srv/gump/public/workspace/jdom/build/jdom.jar:/srv/gump/packages/jtidy-04aug2000r7-dev/build/Tidy.jar:/srv/gump/public/workspace/htmlparser/lib/htmlparser.jar:/srv/gump/public/workspace/htmlparser/lib/htmllexer.jar:/srv/gump/public/workspace/ws-soap/java/build/lib/soap.jar:/srv/gump/public/workspace/excalibur/components/pool/api/target/excalibur-pool-api-2.2
 .3-SNAPSHOT.jar:/srv/gump/public/workspace/excalibur/components/pool/instrumented/target/excalibur-pool-instrumented-2.2.3-SNAPSHOT.jar:/srv/gump/public/workspace/excalibur/containerkit/logger/target/excalibur-logger-2.2.2-SNAPSHOT.jar:/srv/gump/public/workspace/excalibur/components/datasource/target/excalibur-datasource-2.2.3-SNAPSHOT.jar:/srv/gump/packages/jcharts/jCharts-0.7.5.jar:/srv/gump/packages/bsh-2.0b4/bsh-2.0b4.jar:/srv/gump/public/workspace/junit/dist/junit-01122009.jar
---------------------------------------------
    [javac] symbol  : variable ScriptFactory
    [javac] location: class org.apache.commons.jexl.bsf.JexlEngine
    [javac]                 jExpr = ScriptFactory.createScript((URL) expr);
    [javac]                         ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/commons/jexl/bsf/JexlEngine.java:96:
cannot find symbol
    [javac] symbol  : variable ScriptFactory
    [javac] location: class org.apache.commons.jexl.bsf.JexlEngine
    [javac]                 jExpr = ScriptFactory.createScript((String) expr);
    [javac]                         ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/commons/jexl/bsf/JexlEngine.java:113:
cannot find symbol
    [javac] symbol  : class Script
    [javac] location: class org.apache.commons.jexl.bsf.JexlEngine
    [javac]             Script jExpr = null;
    [javac]             ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/commons/jexl/bsf/JexlEngine.java:115:
cannot find symbol
    [javac] symbol  : variable ScriptFactory
    [javac] location: class org.apache.commons.jexl.bsf.JexlEngine
    [javac]                 jExpr = ScriptFactory.createScript((File) script);
    [javac]                         ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/commons/jexl/bsf/JexlEngine.java:117:
cannot find symbol
    [javac] symbol  : variable ScriptFactory
    [javac] location: class org.apache.commons.jexl.bsf.JexlEngine
    [javac]                 jExpr = ScriptFactory.createScript((URL) script);
    [javac]                         ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/commons/jexl/bsf/JexlEngine.java:119:
cannot find symbol
    [javac] symbol  : variable ScriptFactory
    [javac] location: class org.apache.commons.jexl.bsf.JexlEngine
    [javac]                 jExpr = ScriptFactory.createScript((String) script);
    [javac]                         ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java:145:
cannot find symbol
    [javac] symbol  : class DefaultConfigurationBuilder
    [javac] location: class org.apache.jorphan.logging.LoggingManager
    [javac]         DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder();
    [javac]         ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java:145:
cannot find symbol
    [javac] symbol  : class DefaultConfigurationBuilder
    [javac] location: class org.apache.jorphan.logging.LoggingManager
    [javac]         DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder();
    [javac]                                                   ^
    [javac] /srv/gump/public/workspace/jakarta-jmeter/src/jorphan/org/apache/jorphan/logging/LoggingManager.java:148:
cannot find symbol
    [javac] symbol  : class DefaultContext
    [javac] location: class org.apache.jorphan.logging.LoggingManager
    [javac]             Context ctx = new DefaultContext();
    [javac]                               ^
    [javac] 19 errors

BUILD FAILED
/srv/gump/public/workspace/jakarta-jmeter/build.xml:696: Compile failed; see the compiler
error output for details.

Total time: 3 seconds
---------------------------------------------

To subscribe to this information via syndicated feeds:
- RSS: http://vmgump.apache.org/gump/public/jakarta-jmeter/jakarta-jmeter-svn/rss.xml
- Atom: http://vmgump.apache.org/gump/public/jakarta-jmeter/jakarta-jmeter-svn/atom.xml

============================== Gump Tracking Only ===
Produced by Gump version 2.3.
Gump Run 11001601122009, vmgump:vmgump-public:11001601122009
Gump E-mail Identifier (unique within run) #10.

--
Apache Gump
http://gump.apache.org/ [Instance: vmgump]

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886009 - /jakarta/jmeter/trunk/src/core/org/apache/jmeter/testelement/property/AbstractProperty.java</title>
<author><name>sebb@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091201234015.E63D923888C2@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091201234015-E63D923888C2@eris-apache-org%3e</id>
<updated>2009-12-01T23:40:15Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: sebb
Date: Tue Dec  1 23:40:15 2009
New Revision: 886009

URL: http://svn.apache.org/viewvc?rev=886009&amp;view=rev
Log:
One more warning fixed ...

Modified:
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/testelement/property/AbstractProperty.java

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/testelement/property/AbstractProperty.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/testelement/property/AbstractProperty.java?rev=886009&amp;r1=886008&amp;r2=886009&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/testelement/property/AbstractProperty.java
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/testelement/property/AbstractProperty.java
Tue Dec  1 23:40:15 2009
@@ -288,7 +288,9 @@
             Object item = iter.next();
             if (newColl == null) {
                 try {
-                    newColl = coll.getClass().newInstance();
+                    @SuppressWarnings("unchecked") // coll is of the correct type
+                    final Class&lt;Collection&lt;JMeterProperty&gt;&gt; class1 = (Class&lt;Collection&lt;JMeterProperty&gt;&gt;)
coll.getClass();
+                    newColl = class1.newInstance();
                 } catch (Exception e) {
                     log.error("Bad collection", e);
                     return coll;



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: DO NOT REPLY [Bug 47474] View Results Tree support for plugin	renderers</title>
<author><name>sebb &lt;sebbaz@gmail.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c25aac9fc0912011433p5e935331l10c0669e57c67230@mail.gmail.com%3e"/>
<id>urn:uuid:%3c25aac9fc0912011433p5e935331l10c0669e57c67230@mail-gmail-com%3e</id>
<updated>2009-12-01T22:33:51Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
OK, done.

On 01/12/2009, Milamber &lt;milamberspace@gmail.com&gt; wrote:
&gt; Hello Seb,
&gt;
&gt;  Many thanks for your works and your svn commit. It's a great news for me.
&gt;
&gt;  In attach, a small patch for better display of french version for bug 48300
&gt; (source ip address) and regexp tester (button Test is hidden in french
&gt; localisation)
&gt;  (it's just remove length attribut in JLabeledTextField())
&gt;
&gt;  Thanks again.
&gt;
&gt;  Milamber
&gt;
&gt;
&gt;  Le 01/12/2009 20:34, bugzilla@apache.org a ecrit :
&gt;
&gt; &gt; https://issues.apache.org/bugzilla/show_bug.cgi?id=47474
&gt; &gt;
&gt; &gt; Sebb&lt;sebb@apache.org&gt;  changed:
&gt; &gt;
&gt; &gt;            What    |Removed                     |Added
&gt; &gt;
&gt; ----------------------------------------------------------------------------
&gt; &gt;              Status|NEW                         |RESOLVED
&gt; &gt;          Resolution|                            |FIXED
&gt; &gt;
&gt; &gt; --- Comment #13 from Sebb&lt;sebb@apache.org&gt;  2009-12-01 12:34:16 UTC ---
&gt; &gt; Added some docn
&gt; &gt;
&gt; &gt;
&gt; &gt;
&gt;
&gt;
&gt;
&gt; ---------------------------------------------------------------------
&gt;  To unsubscribe, e-mail:
&gt; jmeter-dev-unsubscribe@jakarta.apache.org
&gt;  For additional commands, e-mail:
&gt; jmeter-dev-help@jakarta.apache.org
&gt;
&gt;

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885977 - in /jakarta/jmeter/trunk/src: components/org/apache/jmeter/visualizers/RenderAsRegexp.java protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui2.java</title>
<author><name>sebb@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091201223336.E382A238898B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091201223336-E382A238898B@eris-apache-org%3e</id>
<updated>2009-12-01T22:33:36Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: sebb
Date: Tue Dec  1 22:33:35 2009
New Revision: 885977

URL: http://svn.apache.org/viewvc?rev=885977&amp;view=rev
Log:
Tweak text box sizes

Modified:
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsRegexp.java
    jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui2.java

Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsRegexp.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsRegexp.java?rev=885977&amp;r1=885976&amp;r2=885977&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsRegexp.java
(original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsRegexp.java
Tue Dec  1 22:33:35 2009
@@ -176,7 +176,7 @@
      */
     private JPanel createRegexpTasksPanel() {
         JPanel regexpActionPanel = new JPanel();
-        regexpField = new JLabeledTextField(JMeterUtils.getResString("regexp_tester_field"),
30); // $NON-NLS-1$
+        regexpField = new JLabeledTextField(JMeterUtils.getResString("regexp_tester_field"));
// $NON-NLS-1$
         regexpActionPanel.add(regexpField, BorderLayout.WEST);
 
         JButton regexpTester = new JButton(JMeterUtils.getResString("regexp_tester_button_test"));
// $NON-NLS-1$

Modified: jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui2.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui2.java?rev=885977&amp;r1=885976&amp;r2=885977&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui2.java
(original)
+++ jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui2.java
Tue Dec  1 22:33:35 2009
@@ -65,7 +65,7 @@
         JPanel optionalTasksPanel = super.createOptionalTasksPanel();
         // Add a new field source ip address
         sourceIpAddr = new JLabeledTextField(JMeterUtils
-                .getResString("web_testing2_source_ip"), 15); // $NON-NLS-1$
+                .getResString("web_testing2_source_ip")); // $NON-NLS-1$
         optionalTasksPanel.add(sourceIpAddr, BorderLayout.EAST);
         
         return optionalTasksPanel;



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: DO NOT REPLY [Bug 47474] View Results Tree support for plugin renderers</title>
<author><name>Milamber &lt;milamberspace@gmail.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c4B15972B.6070703@gmail.com%3e"/>
<id>urn:uuid:%3c4B15972B-6070703@gmail-com%3e</id>
<updated>2009-12-01T22:22:35Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Hello Seb,

Many thanks for your works and your svn commit. It's a great news for me.

In attach, a small patch for better display of french version for bug 
48300 (source ip address) and regexp tester (button Test is hidden in 
french localisation)
(it's just remove length attribut in JLabeledTextField())

Thanks again.

Milamber


Le 01/12/2009 20:34, bugzilla@apache.org a ecrit :
&gt; https://issues.apache.org/bugzilla/show_bug.cgi?id=47474
&gt;
&gt; Sebb&lt;sebb@apache.org&gt;  changed:
&gt;
&gt;             What    |Removed                     |Added
&gt; ----------------------------------------------------------------------------
&gt;               Status|NEW                         |RESOLVED
&gt;           Resolution|                            |FIXED
&gt;
&gt; --- Comment #13 from Sebb&lt;sebb@apache.org&gt;  2009-12-01 12:34:16 UTC ---
&gt; Added some docn
&gt;
&gt;    



</pre>
</div>
</content>
</entry>
<entry>
<title>DO NOT REPLY [Bug 47474] View Results Tree support for plugin renderers</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091201203418.C6453234C1F0@brutus.apache.org%3e"/>
<id>urn:uuid:%3c20091201203418-C6453234C1F0@brutus-apache-org%3e</id>
<updated>2009-12-01T20:34:18Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
https://issues.apache.org/bugzilla/show_bug.cgi?id=47474

Sebb &lt;sebb@apache.org&gt; changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

--- Comment #13 from Sebb &lt;sebb@apache.org&gt; 2009-12-01 12:34:16 UTC ---
Added some docn

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885910 - in /jakarta/jmeter/trunk: docs/images/screenshots/ xdocs/ xdocs/images/screenshots/ xdocs/usermanual/</title>
<author><name>sebb@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091201202638.63FFB23889E1@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091201202638-63FFB23889E1@eris-apache-org%3e</id>
<updated>2009-12-01T20:26:37Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: sebb
Date: Tue Dec  1 20:26:37 2009
New Revision: 885910

URL: http://svn.apache.org/viewvc?rev=885910&amp;view=rev
Log:
Document Bug 47474 - View Results Tree support for plugin renderers

Added:
    jakarta/jmeter/trunk/docs/images/screenshots/view_results_tree_regex.png   (with props)
    jakarta/jmeter/trunk/xdocs/images/screenshots/view_results_tree_regex.png   (with props)
Modified:
    jakarta/jmeter/trunk/docs/images/screenshots/view_results_tree.png
    jakarta/jmeter/trunk/xdocs/changes.xml
    jakarta/jmeter/trunk/xdocs/images/screenshots/view_results_tree.png
    jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml

Modified: jakarta/jmeter/trunk/docs/images/screenshots/view_results_tree.png
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/images/screenshots/view_results_tree.png?rev=885910&amp;r1=885909&amp;r2=885910&amp;view=diff
==============================================================================
Binary files - no diff available.

Added: jakarta/jmeter/trunk/docs/images/screenshots/view_results_tree_regex.png
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/images/screenshots/view_results_tree_regex.png?rev=885910&amp;view=auto
==============================================================================
Binary file - no diff available.

Propchange: jakarta/jmeter/trunk/docs/images/screenshots/view_results_tree_regex.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=885910&amp;r1=885909&amp;r2=885910&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Tue Dec  1 20:26:37 2009
@@ -146,6 +146,7 @@
 &lt;li&gt;Bug 36726 - add search function to Tree View Listener&lt;/li&gt;
 &lt;li&gt;Bug 47869 - Ability to cleanup fields of SampleResult&lt;/li&gt;
 &lt;li&gt;Bug 47952 - Added JSR223 Listener&lt;/li&gt;
+&lt;li&gt;Bug 47474 - View Results Tree support for plugin renderers&lt;/li&gt;
 &lt;/ul&gt;
 
 &lt;h3&gt;Timers, Assertions, Config, Pre- &amp;amp; Post-Processors&lt;/h3&gt;

Modified: jakarta/jmeter/trunk/xdocs/images/screenshots/view_results_tree.png
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/images/screenshots/view_results_tree.png?rev=885910&amp;r1=885909&amp;r2=885910&amp;view=diff
==============================================================================
Binary files - no diff available.

Added: jakarta/jmeter/trunk/xdocs/images/screenshots/view_results_tree_regex.png
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/images/screenshots/view_results_tree_regex.png?rev=885910&amp;view=auto
==============================================================================
Binary file - no diff available.

Propchange: jakarta/jmeter/trunk/xdocs/images/screenshots/view_results_tree_regex.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Modified: jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml?rev=885910&amp;r1=885909&amp;r2=885910&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml (original)
+++ jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml Tue Dec  1 20:26:37 2009
@@ -2060,23 +2060,30 @@
 &lt;/links&gt;
 &lt;/component&gt;
 
-&lt;component name="View Results Tree" index="&amp;sect-num;.3.6"  width="791" height="506"
screenshot="view_results_tree.png"&gt;
+&lt;component name="View Results Tree" index="&amp;sect-num;.3.6"  width="778" height="642"
screenshot="view_results_tree.png"&gt;
 &lt;description&gt;The View Results Tree shows a tree of all sample responses, allowing you
to view the
 response for any sample.  In addition to showing the response, you can see the time it took
to get
 this response, and some response codes.
 Note that the Request panel only shows the headers added by JMeter.
 It does not show any headers (such as Host) that may be added by the HTTP protocol implementation.
 &lt;p&gt;
-There are several ways to view the response, selectable by a radio button.&lt;/p&gt;
+There are several ways to view the response, selectable by a drop-down box at the bottom
of the left hand panel.&lt;/p&gt;
 &lt;ul&gt;
-&lt;li&gt;Show text&lt;/li&gt;
-&lt;li&gt;Render HTML&lt;/li&gt;
-&lt;li&gt;Render XML&lt;/li&gt;
-&lt;li&gt;Render JSON&lt;/li&gt;
+&lt;li&gt;HTML&lt;/li&gt;
+&lt;li&gt;HTML (download embedded resources)&lt;/li&gt;
+&lt;li&gt;JSON&lt;/li&gt;
+&lt;li&gt;Regexp Tester&lt;/li&gt;
+&lt;li&gt;Text&lt;/li&gt;
+&lt;li&gt;XML&lt;/li&gt;
 &lt;/ul&gt;
 &lt;p&gt;
-The default "Show text" view shows all of the text contained in the
-response. 
+Additional renderers can be created.
+The class must implement the interface &lt;code&gt;org.apache.jmeter.visualizers.ResultRenderer&lt;/code&gt;
+and/or extend the abstract class &lt;code&gt;org.apache.jmeter.visualizers.SamplerResultTab&lt;/code&gt;,
and the
+compiled code must be available to JMeter (e.g. by adding it to the lib/ext directory).
+&lt;/p&gt;
+&lt;p&gt;
+The default "Text" view shows all of the text contained in the response. 
 Note that this will only work if the response content-type is considered to be text.
 If the content-type begins with any of the following, it is considered as binary,
 otherwise it is considered to be text.
@@ -2099,20 +2106,48 @@
 &lt;p&gt;The HTML view attempts to render the response as
 HTML.  The rendered HTML is likely to compare poorly to the view one
 would get in any web browser; however, it does provide a quick
-approximation that is helpful for initial result evaluation. 
-If the "Download embedded resources" check-box is selected, the renderer
+approximation that is helpful for initial result evaluation.
+No images etc are downloaded. 
+If the HTML (download embedded resources) option is selected, the renderer
 may download images and style-sheets etc referenced by the HTML. 
-If the checkbox is not selected, the renderer will not download images etc.
 &lt;/p&gt;
-&lt;p&gt;The Render XML view will show response in tree style. 
+&lt;p&gt;The XML view will show response in tree style. 
 Any DTD nodes or Prolog nodes will not show up in tree; however, response may contain those
nodes.
 &lt;/p&gt;
-&lt;p&gt;The Render JSON view will show the response in tree style (also handles JSON embedded
in JavaScript).&lt;/p&gt;
+&lt;p&gt;The JSON view will show the response in tree style (also handles JSON embedded in
JavaScript).&lt;/p&gt;
+&lt;p&gt;
+Most of the views also allow the displayed data to be searched; the result of the search
will be high-lighted
+in the display above. For example the Control panel screenshot below shows one result of
searching for "Java".
+Note that the search operates on the visible text, so you may get different results when
searching
+the Text and HTML views.
+&lt;/p&gt;
+&lt;p&gt;The "Regexp Tester" view only works for text responses. It shows the plain text
in the upper panel.
+The "Test" button allows the user to apply the Regular Expression to the upper panel and
the results
+will be displayed in the lower panel.
+For example, the RE &lt;b&gt;(JMeter\w*).*&lt;/b&gt; applied to the current JMeter home page
gives the following output:
+&lt;/p&gt;
+&lt;pre&gt;
+Match count: 26
+Match[1][0]=JMeter - Apache JMeter&amp;amp;lt;/title&gt;
+Match[1][1]=JMeter
+Match[2][0]=JMeter" title="JMeter" border="0"/&gt;&amp;amp;lt;/a&gt;
+Match[2][1]=JMeter
+Match[3][0]=JMeterCommitters"&gt;Contributors&amp;amp;lt;/a&gt;
+Match[3][1]=JMeterCommitters
+... and so on ...
+&lt;/pre&gt;
+&lt;p&gt;
+The first number in [] is the match number; the second number is the group. 
+Group [0] is whatever matched the whole RE.
+Group [1] is whatever matched the 1st group, i.e. (JMeter\w*) in this case.
+See Figure 9b (below).
+&lt;/p&gt;
 &lt;/description&gt;
 &lt;p&gt;
 	The Control Panel (above) shows an example of an HTML display.
 	Figure 9 (below) shows an example of an XML display.
 &lt;figure width="751" height="461" image="view_results_tree_xml.png"&gt;Figure 9 Sample
XML display&lt;/figure&gt;
+&lt;figure width="824" height="637" image="view_results_tree_regex.png"&gt;Figure 9a Sample
Regexp Test display&lt;/figure&gt;
 &lt;/p&gt;
 &lt;/component&gt;
 



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885866 - in /jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers: RenderAsHTML.java RenderAsText.java RenderAsXML.java SamplerResultTab.java</title>
<author><name>sebb@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091201185442.DEBBE23889D2@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091201185442-DEBBE23889D2@eris-apache-org%3e</id>
<updated>2009-12-01T18:54:42Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: sebb
Date: Tue Dec  1 18:54:42 2009
New Revision: 885866

URL: http://svn.apache.org/viewvc?rev=885866&amp;view=rev
Log:
Tidyup

Modified:
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsHTML.java
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsText.java
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsXML.java
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java

Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsHTML.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsHTML.java?rev=885866&amp;r1=885865&amp;r2=885866&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsHTML.java (original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsHTML.java Tue
Dec  1 18:54:42 2009
@@ -32,13 +32,9 @@
 
 import org.apache.jmeter.samplers.SampleResult;
 import org.apache.jmeter.util.JMeterUtils;
-import org.apache.jorphan.logging.LoggingManager;
-import org.apache.log.Logger;
 
 public class RenderAsHTML extends SamplerResultTab implements ResultRenderer {
 
-    private static final Logger log = LoggingManager.getLoggerForClass();
-
     private static final String TEXT_HTML = "text/html"; // $NON-NLS-1$
 
     // Keep copies of the two editors needed
@@ -82,7 +78,6 @@
          * To disable downloading and rendering of images and frames, enable the
          * editor-kit. The Stream property can then be
          */
-        log.debug("html embedded=" + embedded);
         // Must be done before setContentType
         results.setEditorKitForContentType(TEXT_HTML, embedded ? defaultHtmlEditor : customisedEditor);
 

Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsText.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsText.java?rev=885866&amp;r1=885865&amp;r2=885866&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsText.java (original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsText.java Tue
Dec  1 18:54:42 2009
@@ -40,7 +40,7 @@
     /** {@inheritDoc} */
     @Override
     public String toString() {
-        return JMeterUtils.getResString("view_results_render_text");
+        return JMeterUtils.getResString("view_results_render_text"); // $NON-NLS-1$
     }
 
 }

Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsXML.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsXML.java?rev=885866&amp;r1=885865&amp;r2=885866&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsXML.java (original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsXML.java Tue
Dec  1 18:54:42 2009
@@ -89,11 +89,11 @@
         resultsScrollPane.setViewportView(domTreePanel);
     }
 
-    /**
+    /*
      *
      * A Dom tree panel for to display response as tree view author &lt;a
-     * href="mailto:d.maung@mdl.com"&gt;Dave Maung&lt;/a&gt; TODO implement to find any
-     * nodes in the tree using TreePath.
+     * href="mailto:d.maung@mdl.com"&gt;Dave Maung&lt;/a&gt; 
+     * TODO implement to find any nodes in the tree using TreePath.
      *
      */
     private static class DOMTreePanel extends JPanel {
@@ -117,7 +117,7 @@
                 ToolTipManager.sharedInstance().registerComponent(domJTree);
                 domJTree.setCellRenderer(new DomTreeRenderer());
             } catch (SAXException e) {
-                log.warn("", e);
+                log.warn("Error trying to parse document", e);
             }
 
         }
@@ -216,7 +216,7 @@
     /** {@inheritDoc} */
     @Override
     public String toString() {
-        return JMeterUtils.getResString("view_results_render_xml");
+        return JMeterUtils.getResString("view_results_render_xml"); // $NON-NLS-1$
     }
 
 }

Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java?rev=885866&amp;r1=885865&amp;r2=885866&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java
(original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java
Tue Dec  1 18:54:42 2009
@@ -45,13 +45,9 @@
 import org.apache.jmeter.samplers.SampleResult;
 import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jorphan.gui.GuiUtils;
-import org.apache.jorphan.logging.LoggingManager;
-import org.apache.log.Logger;
 
 public abstract class SamplerResultTab implements ResultRenderer {
 
-    private static final Logger log = LoggingManager.getLoggerForClass();
-
     // N.B. these are not multi-threaded, so don't make it static
     private final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
// ISO format $NON-NLS-1$
 
@@ -127,7 +123,6 @@
                 setupTabPaneForSampleResult();
 
                 // load time label
-                log.debug("valueChanged1 : load time - " + sampleResult.getTime());
                 String sd = sampleResult.getSamplerData();
                 if (sd != null) {
                     String rh = sampleResult.getRequestHeaders();
@@ -156,7 +151,6 @@
                 statsBuff = new StringBuffer(); // reset for reuse
 
                 String responseCode = sampleResult.getResponseCode();
-                log.debug("valueChanged1 : response code - " + responseCode);
 
                 int responseLevel = 0;
                 if (responseCode != null) {
@@ -187,7 +181,6 @@
                 // response message label
                 String responseMsgStr = sampleResult.getResponseMessage();
 
-                log.debug("valueChanged1 : response message - " + responseMsgStr);
                 statsBuff.append(JMeterUtils.getResString("view_results_response_message")).append(responseMsgStr).append(NL);
//$NON-NLS-1$
 
                 statsBuff.append(NL);
@@ -212,10 +205,6 @@
                 // We are displaying an AssertionResult
                 setupTabPaneForAssertionResult();
 
-                if (log.isDebugEnabled()) {
-                    log.debug("valueChanged1 : sample result - " + assertionResult);
-                }
-
                 StringBuffer statsBuff = new StringBuffer(100);
                 statsBuff.append(JMeterUtils.getResString("view_results_assertion_error")).append(assertionResult.isError()).append(NL);
//$NON-NLS-1$
                 statsBuff.append(JMeterUtils.getResString("view_results_assertion_failure")).append(assertionResult.isFailure()).append(NL);
//$NON-NLS-1$
@@ -224,8 +213,7 @@
                 statsBuff = null;
             }
         } catch (BadLocationException exc) {
-            log.error("Error setting statistics text", exc);
-            stats.setText("");
+            stats.setText(exc.getLocalizedMessage());
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885865 - /jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java</title>
<author><name>sebb@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091201185429.1951523889CF@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091201185429-1951523889CF@eris-apache-org%3e</id>
<updated>2009-12-01T18:54:29Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: sebb
Date: Tue Dec  1 18:54:28 2009
New Revision: 885865

URL: http://svn.apache.org/viewvc?rev=885865&amp;view=rev
Log:
Default to Text renderer; general tidyup

Modified:
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java

Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java?rev=885865&amp;r1=885864&amp;r2=885865&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
(original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
Tue Dec  1 18:54:28 2009
@@ -223,7 +223,7 @@
             }
             Object userObject = node.getUserObject();
             resultsRender.setSamplerResult(userObject);
-            resultsRender.setupTabPane();
+            resultsRender.setupTabPane(); // Processes Assertions
             // display a SampleResult
             if (userObject instanceof SampleResult) {
                 SampleResult sampleResult = (SampleResult) userObject;
@@ -267,7 +267,7 @@
      * Create the drop-down list to changer render
      * @return List of all render (implement ResultsRender)
      */
-    private Component createComboRender() {// TODO move to bottom of renderer
+    private Component createComboRender() {
         ComboBoxModel nodesModel = new DefaultComboBoxModel();
         // drop-down list for renderer
         selectRenderPanel = new JComboBox(nodesModel);
@@ -281,16 +281,22 @@
         } catch (IOException e1) {
             // ignored
         }
+        String textRenderer = JMeterUtils.getResString("view_results_render_text"); // $NON-NLS-1$
+        Object textObject = null;
         for (String clazz : classesToAdd) {
             try {
                 // Instantiate render classes
                 final ResultRenderer renderer = (ResultRenderer) Class.forName(clazz).newInstance();
+                if (textRenderer.equals(renderer.toString())){
+                    textObject=renderer;
+                }
                 renderer.setBackgroundColor(getBackground());
                 selectRenderPanel.addItem(renderer);
             } catch (Exception e) {
                 log.warn("Error in load result render:" + clazz, e);
             }
         }
+        nodesModel.setSelectedItem(textObject); // preset to "Text" option
         return selectRenderPanel;
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885864 - /jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsRegexp.java</title>
<author><name>sebb@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091201185324.BB19F23889CF@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091201185324-BB19F23889CF@eris-apache-org%3e</id>
<updated>2009-12-01T18:53:24Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: sebb
Date: Tue Dec  1 18:53:24 2009
New Revision: 885864

URL: http://svn.apache.org/viewvc?rev=885864&amp;view=rev
Log:
Display message for non-text responses
General tidy

Modified:
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsRegexp.java

Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsRegexp.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsRegexp.java?rev=885864&amp;r1=885863&amp;r2=885864&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsRegexp.java
(original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsRegexp.java
Tue Dec  1 18:53:24 2009
@@ -41,8 +41,6 @@
 import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jorphan.gui.GuiUtils;
 import org.apache.jorphan.gui.JLabeledTextField;
-import org.apache.jorphan.logging.LoggingManager;
-import org.apache.log.Logger;
 import org.apache.oro.text.PatternCacheLRU;
 import org.apache.oro.text.regex.MatchResult;
 import org.apache.oro.text.regex.Pattern;
@@ -55,8 +53,6 @@
  */
 public class RenderAsRegexp implements ResultRenderer, ActionListener {
 
-    private static final Logger log = LoggingManager.getLoggerForClass();
-
     private static final String REGEXP_TESTER_COMMAND = "regexp_tester"; // $NON-NLS-1$
 
     private JPanel regexpPane;
@@ -73,7 +69,10 @@
 
     /** {@inheritDoc} */
     public void clearData() {
-        this.clearFields();
+        this.regexpDataField.setText(""); // $NON-NLS-1$
+        // don't set empty to keep regexp
+        // regexpField.setText(""); // $NON-NLS-1$
+        this.regexpResultField.setText(""); // $NON-NLS-1$
     }
 
     /** {@inheritDoc} */
@@ -103,7 +102,6 @@
     private void executeAndShowRegexpTester(String textToParse) {
         if (textToParse != null &amp;&amp; textToParse.length() &gt; 0
                 &amp;&amp; this.regexpField.getText().length() &gt; 0) {
-            log.debug("regexpField = " + this.regexpField.getText());
             this.regexpResultField.setText(process(textToParse));
         }
     }
@@ -116,26 +114,18 @@
         PatternCacheLRU pcLRU = new PatternCacheLRU();
         Pattern pattern = pcLRU.getPattern(regexpField.getText(), Perl5Compiler.READ_ONLY_MASK);
         List&lt;MatchResult&gt; matches = new LinkedList&lt;MatchResult&gt;();
-        int x = 0;
-        boolean done = false;
-        do {
-            if (matcher.contains(input, pattern)) {
-                //log.debug("RegexExtractor: Match found!");
-                matches.add(matcher.getMatch());
-            } else {
-                done = true;
-            }
-            x++;
-        } while (!done);
-
+        while (matcher.contains(input, pattern)) {
+            matches.add(matcher.getMatch());
+        }
         // Construct a multi-line string with all matches
-        StringBuffer sb = new StringBuffer();
-        for (int j = 0; j &lt; matches.size(); j++) {
+        StringBuilder sb = new StringBuilder();
+        final int size = matches.size();
+        sb.append("Match count: ").append(size).append("\n");
+        for (int j = 0; j &lt; size; j++) {
             MatchResult mr = matches.get(j);
             final int groups = mr.groups();
             for (int i = 0; i &lt; groups; i++) {
-                sb.append(" group[" + j + "][" + i + "]=" + mr.group(i) + "\n");
-
+                sb.append("Match[").append(j+1).append("][").append(i).append("]=").append(mr.group(i)).append("\n");
             }
         }
         return sb.toString();
@@ -143,15 +133,10 @@
     }
     /** {@inheritDoc} */
    public void renderResult(SampleResult sampleResult) {
-        this.clearFields();
-
-        if ((SampleResult.TEXT).equals(sampleResult.getDataType())) {
-            String response = ViewResultsFullVisualizer.getResponseAsString(sampleResult);
-            regexpDataField.setText(response);
-            regexpDataField.setCaretPosition(0);
-        } else {
-            regexpDataField.setText(JMeterUtils.getResString("regexp_render_no_text"));
-        }
+       clearData();
+        String response = ViewResultsFullVisualizer.getResponseAsString(sampleResult);
+        regexpDataField.setText(response);
+        regexpDataField.setCaretPosition(0);
     }
 
     /** {@inheritDoc} */
@@ -194,7 +179,7 @@
         regexpField = new JLabeledTextField(JMeterUtils.getResString("regexp_tester_field"),
30); // $NON-NLS-1$
         regexpActionPanel.add(regexpField, BorderLayout.WEST);
 
-        JButton regexpTester = new JButton(JMeterUtils.getResString("regexp_tester_button_test"));
+        JButton regexpTester = new JButton(JMeterUtils.getResString("regexp_tester_button_test"));
// $NON-NLS-1$
         regexpTester.setActionCommand(REGEXP_TESTER_COMMAND);
         regexpTester.addActionListener(this);
         regexpActionPanel.add(regexpTester, BorderLayout.EAST);
@@ -211,13 +196,6 @@
         return regexpTasksPanel;
     }
 
-    private void clearFields() {
-        regexpDataField.setText(""); // $NON-NLS-1$
-        // don't set empty to keep regexp
-        // regexpField.setText(""); // $NON-NLS-1$
-        regexpResultField.setText(""); // $NON-NLS-1$
-    }
-
     /** {@inheritDoc} */
     public synchronized void setRightSide(JTabbedPane side) {
         rightSide = side;
@@ -238,12 +216,13 @@
     /** {@inheritDoc} */
     @Override
     public String toString() {
-        return JMeterUtils.getResString("regexp_tester_title");
+        return JMeterUtils.getResString("regexp_tester_title"); // $NON-NLS-1$
     }
 
     /** {@inheritDoc} */
     public void renderImage(SampleResult sampleResult) {
         clearData();
+        regexpDataField.setText(JMeterUtils.getResString("regexp_render_no_text")); // $NON-NLS-1$
     }
 
     /** {@inheritDoc} */



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885851 - in /jakarta/jmeter/trunk/src: components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java core/org/apache/jmeter/util/JMeterUtils.java jorphan/org/apache/jorphan/reflect/ClassFinder.java</title>
<author><name>sebb@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091201181151.1179823889D0@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091201181151-1179823889D0@eris-apache-org%3e</id>
<updated>2009-12-01T18:11:50Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: sebb
Date: Tue Dec  1 18:11:50 2009
New Revision: 885851

URL: http://svn.apache.org/viewvc?rev=885851&amp;view=rev
Log:
Oops! Jorphan cannot invoke methods in JMeterUtils, so move the method there

Modified:
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/JMeterUtils.java
    jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java

Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java?rev=885851&amp;r1=885850&amp;r2=885851&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
(original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
Tue Dec  1 18:11:50 2009
@@ -55,7 +55,6 @@
 import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jmeter.visualizers.gui.AbstractVisualizer;
 import org.apache.jorphan.logging.LoggingManager;
-import org.apache.jorphan.reflect.ClassFinder;
 import org.apache.log.Logger;
 
 /**
@@ -278,7 +277,7 @@
         // if no results render in jmeter.properties, load Standard (default)
         List&lt;String&gt; classesToAdd = Collections.&lt;String&gt;emptyList();
         try {
-            classesToAdd = ClassFinder.findClassesThatExtend(ResultRenderer.class);
+            classesToAdd = JMeterUtils.findClassesThatExtend(ResultRenderer.class);
         } catch (IOException e1) {
             // ignored
         }

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/JMeterUtils.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/JMeterUtils.java?rev=885851&amp;r1=885850&amp;r2=885851&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/JMeterUtils.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/JMeterUtils.java Tue Dec  1 18:11:50
2009
@@ -33,6 +33,7 @@
 import java.util.Enumeration;
 import java.util.Hashtable;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Locale;
 import java.util.MissingResourceException;
 import java.util.Properties;
@@ -50,6 +51,7 @@
 import org.apache.commons.io.IOUtils;
 import org.apache.jmeter.gui.GuiPackage;
 import org.apache.jorphan.logging.LoggingManager;
+import org.apache.jorphan.reflect.ClassFinder;
 import org.apache.jorphan.test.UnitTestManager;
 import org.apache.jorphan.util.JOrphanUtils;
 import org.apache.log.Logger;
@@ -265,6 +267,20 @@
         getProperties(file);
     }
 
+    /**
+     * Convenience method for
+     * {@link ClassFinder#findClassesThatExtend(String[], Class[], boolean)}
+     * with the option to include inner classes in the search set to false
+     * and the path list is derived from JMeterUtils.getSearchPaths().
+     *
+     * @param superClass - single class to search for
+     * @return List of Strings containing discovered class names.
+     */
+    public static List&lt;String&gt; findClassesThatExtend(Class&lt;?&gt; superClass)
+        throws IOException {
+        return ClassFinder.findClassesThatExtend(getSearchPaths(), new Class[]{superClass},
false);
+    }
+
     public static String[] getSearchPaths() {
         String p = JMeterUtils.getPropDefault("search_paths", null); // $NON-NLS-1$
         String[] result = new String[1];

Modified: jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java?rev=885851&amp;r1=885850&amp;r2=885851&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java (original)
+++ jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java Tue Dec 
1 18:11:50 2009
@@ -35,7 +35,6 @@
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
-import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.jorphan.util.JOrphanUtils;
 import org.apache.log.Logger;
@@ -149,20 +148,6 @@
     /**
      * Convenience method for
      * {@link #findClassesThatExtend(String[], Class[], boolean)}
-     * with the option to include inner classes in the search set to false
-     * and the path list is derived from JMeterUtils.getSearchPaths().
-     *
-     * @param superClass - single class to search for
-     * @return List of Strings containing discovered class names.
-     */
-    public static List&lt;String&gt; findClassesThatExtend(Class&lt;?&gt; superClass)
-        throws IOException {
-        return findClassesThatExtend(JMeterUtils.getSearchPaths(), new Class[]{superClass},
false);
-    }
-
-    /**
-     * Convenience method for
-     * {@link #findClassesThatExtend(String[], Class[], boolean)}
      * with the option to include inner classes in the search set to false.
      *
      * @return List of Strings containing discovered class names.



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885849 - in /jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources: messages_fr.properties messages_pl.properties messages_pt_BR.properties messages_tr.properties</title>
<author><name>sebb@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091201180947.DE63A23888DC@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091201180947-DE63A23888DC@eris-apache-org%3e</id>
<updated>2009-12-01T18:09:47Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: sebb
Date: Tue Dec  1 18:09:46 2009
New Revision: 885849

URL: http://svn.apache.org/viewvc?rev=885849&amp;view=rev
Log:
Obsolete entries

Modified:
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_pl.properties
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_pt_BR.properties
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_tr.properties

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties?rev=885849&amp;r1=885848&amp;r2=885849&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties Tue Dec
 1 18:09:46 2009
@@ -762,7 +762,6 @@
 view_results_latency=Latence \: 
 view_results_load_time=Temps de r\u00E9ponse \: 
 view_results_render=Rendu \: 
-view_results_render_embedded=T\u00E9l\u00E9charger les ressources incluses
 view_results_render_html=HTML
 view_results_render_json=JSON
 view_results_render_text=Texte brut

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_pl.properties
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_pl.properties?rev=885849&amp;r1=885848&amp;r2=885849&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_pl.properties (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_pl.properties Tue Dec
 1 18:09:46 2009
@@ -837,7 +837,6 @@
 variable_name_param=Name of variable (may include variable and function references)
 view_graph_tree_title=View Graph Tree
 view_results_in_table=View Results in Table
-view_results_render_embedded=Download embedded resources
 view_results_render_html=Render HTML
 view_results_render_json=Render JSON
 view_results_render_text=Show Text

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_pt_BR.properties
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_pt_BR.properties?rev=885849&amp;r1=885848&amp;r2=885849&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_pt_BR.properties (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_pt_BR.properties Tue
Dec  1 18:09:46 2009
@@ -871,7 +871,6 @@
 view_results_in_table=Ver Resultados em Tabela
 view_results_latency=Lat\u00EAncia\:
 view_results_load_time=Tempo de Carga\:
-view_results_render_embedded=Download recursos embutidos
 view_results_render_html=Renderizar HTML
 view_results_render_json=Renderizar JSON
 view_results_render_text=Exibir Texto

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_tr.properties
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_tr.properties?rev=885849&amp;r1=885848&amp;r2=885849&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_tr.properties (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_tr.properties Tue Dec
 1 18:09:46 2009
@@ -818,7 +818,6 @@
 variable_name_param=De\u011Fi\u015Fken ismi (de\u011Fi\u015Fken ve fonksiyon referanslar\u0131
i\u00E7erebilir)
 view_graph_tree_title=Grafik A\u011Fac\u0131n\u0131 G\u00F6ster
 view_results_in_table=Sonu\u00E7 Tablosunu G\u00F6ster
-view_results_render_embedded=G\u00F6m\u00FCl\u00FC kaynaklar\u0131 indir
 view_results_render_html=HTML i\u015Fle
 view_results_render_json=JSON i\u015Fle
 view_results_render_text=Metin G\u00F6ster



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>DO NOT REPLY [Bug 47474] View Results Tree support for plugin renderers</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091201015306.4D4CC234C1F0@brutus.apache.org%3e"/>
<id>urn:uuid:%3c20091201015306-4D4CC234C1F0@brutus-apache-org%3e</id>
<updated>2009-12-01T01:53:06Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
https://issues.apache.org/bugzilla/show_bug.cgi?id=47474

Sebb &lt;sebb@apache.org&gt; changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Change View Results Tree by |View Results Tree support
                   |a more extensible listener  |for plugin renderers

--- Comment #12 from Sebb &lt;sebb@apache.org&gt; 2009-11-30 17:53:04 UTC ---
Thanks very much for the patches.

They have been applied to SVN:

URL: http://svn.apache.org/viewvc?rev=885648&amp;view=rev
Log:
Bug 47474 - View Results Tree support for plugin renderers

Various changes were made to package names, and the search panel is always
displayed if it is available. Some refactoring also done so binary files are
only processed in one place.

Documentation is still to be updated.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885648 [1/2] - in /jakarta/jmeter/trunk/src: components/org/apache/jmeter/visualizers/ core/org/apache/jmeter/resources/ jorphan/org/apache/jorphan/gui/</title>
<author><name>sebb@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091201015140.B2F2F238898B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091201015140-B2F2F238898B@eris-apache-org%3e</id>
<updated>2009-12-01T01:51:29Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: sebb
Date: Tue Dec  1 01:51:15 2009
New Revision: 885648

URL: http://svn.apache.org/viewvc?rev=885648&amp;view=rev
Log:
Bug 47474 - View Results Tree support for plugin renderers

Added:
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsHTML.java   (with props)
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsHTMLWithEmbedded.java   (with props)
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsJSON.java   (with props)
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsRegexp.java   (with props)
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsText.java   (with props)
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsXML.java   (with props)
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ResultRenderer.java   (with props)
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java   (with props)
    jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/gui/GuiUtils.java   (with props)
Modified:
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SearchTextExtension.java
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties

Added: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsHTML.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsHTML.java?rev=885648&amp;view=auto
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsHTML.java (added)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsHTML.java Tue Dec  1 01:51:15 2009
@@ -0,0 +1,150 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jmeter.visualizers;
+
+import javax.swing.JEditorPane;
+import javax.swing.text.ComponentView;
+import javax.swing.text.Document;
+import javax.swing.text.EditorKit;
+import javax.swing.text.Element;
+import javax.swing.text.StyleConstants;
+import javax.swing.text.View;
+import javax.swing.text.ViewFactory;
+import javax.swing.text.html.HTML;
+import javax.swing.text.html.HTMLEditorKit;
+
+import org.apache.jmeter.samplers.SampleResult;
+import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.log.Logger;
+
+public class RenderAsHTML extends SamplerResultTab implements ResultRenderer {
+
+    private static final Logger log = LoggingManager.getLoggerForClass();
+
+    private static final String TEXT_HTML = "text/html"; // $NON-NLS-1$
+
+    // Keep copies of the two editors needed
+    private static final EditorKit customisedEditor = new LocalHTMLEditorKit();
+
+    private static final EditorKit defaultHtmlEditor = JEditorPane.createEditorKitForContentType(TEXT_HTML);
+
+    /** {@inheritDoc} */
+    public void renderResult(SampleResult sampleResult) {
+        // get the text response and image icon
+        // to determine which is NOT null
+        String response = ViewResultsFullVisualizer.getResponseAsString(sampleResult);
+        showRenderedResponse(response, sampleResult);
+    }
+
+    protected void showRenderedResponse(String response, SampleResult res) {
+        showRenderedResponse(response, res, false);
+    }
+
+    protected void showRenderedResponse(String response, SampleResult res, boolean embedded) {
+        if (response == null) {
+            results.setText("");
+            return;
+        }
+
+        int htmlIndex = response.indexOf("&lt;HTML"); // could be &lt;HTML lang=""&gt; // $NON-NLS-1$
+
+        // Look for a case variation
+        if (htmlIndex &lt; 0) {
+            htmlIndex = response.indexOf("&lt;html"); // ditto // $NON-NLS-1$
+        }
+
+        // If we still can't find it, just try using all of the text
+        if (htmlIndex &lt; 0) {
+            htmlIndex = 0;
+        }
+
+        String html = response.substring(htmlIndex);
+
+        /*
+         * To disable downloading and rendering of images and frames, enable the
+         * editor-kit. The Stream property can then be
+         */
+        log.debug("html embedded=" + embedded);
+        // Must be done before setContentType
+        results.setEditorKitForContentType(TEXT_HTML, embedded ? defaultHtmlEditor : customisedEditor);
+
+        results.setContentType(TEXT_HTML);
+
+        if (embedded) {
+            // Allow JMeter to render frames (and relative images)
+            // Must be done after setContentType [Why?]
+            results.getDocument().putProperty(Document.StreamDescriptionProperty, res.getURL());
+        }
+        /*
+         * Get round problems parsing &lt;META http-equiv='content-type'
+         * content='text/html; charset=utf-8'&gt; See
+         * http://issues.apache.org/bugzilla/show_bug.cgi?id=23315
+         *
+         * Is this due to a bug in Java?
+         */
+        results.getDocument().putProperty("IgnoreCharsetDirective", Boolean.TRUE); // $NON-NLS-1$
+
+        results.setText(html);
+        results.setCaretPosition(0);
+        resultsScrollPane.setViewportView(results);
+
+    }
+
+    private static class LocalHTMLEditorKit extends HTMLEditorKit {
+
+        private static final long serialVersionUID = -3399554318202905392L;
+
+        private static final ViewFactory defaultFactory = new LocalHTMLFactory();
+
+        @Override
+        public ViewFactory getViewFactory() {
+            return defaultFactory;
+        }
+
+        private static class LocalHTMLFactory extends javax.swing.text.html.HTMLEditorKit.HTMLFactory {
+            /*
+             * Provide dummy implementations to suppress download and display of
+             * related resources: - FRAMEs - IMAGEs TODO create better dummy
+             * displays TODO suppress LINK somehow
+             */
+            @Override
+            public View create(Element elem) {
+                Object o = elem.getAttributes().getAttribute(StyleConstants.NameAttribute);
+                if (o instanceof HTML.Tag) {
+                    HTML.Tag kind = (HTML.Tag) o;
+                    if (kind == HTML.Tag.FRAME) {
+                        return new ComponentView(elem);
+                    } else if (kind == HTML.Tag.IMG) {
+                        return new ComponentView(elem);
+                    }
+                }
+                return super.create(elem);
+            }
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public String toString() {
+        return JMeterUtils.getResString("view_results_render_html"); // $NON-NLS-1$
+    }
+
+}

Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsHTML.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsHTML.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsHTMLWithEmbedded.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsHTMLWithEmbedded.java?rev=885648&amp;view=auto
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsHTMLWithEmbedded.java (added)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsHTMLWithEmbedded.java Tue Dec  1 01:51:15 2009
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jmeter.visualizers;
+
+import org.apache.jmeter.samplers.SampleResult;
+import org.apache.jmeter.util.JMeterUtils;
+
+public class RenderAsHTMLWithEmbedded extends RenderAsHTML
+    implements ResultRenderer {
+
+    /** {@inheritDoc} */
+    @Override
+    protected void showRenderedResponse(String response, SampleResult res) {
+        // enable embedded html resources
+        showRenderedResponse(response, res, true);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public String toString() {
+        return JMeterUtils.getResString("view_results_render_html_embedded"); // $NON-NLS-1$
+    }
+
+}

Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsHTMLWithEmbedded.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsHTMLWithEmbedded.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsJSON.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsJSON.java?rev=885648&amp;view=auto
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsJSON.java (added)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsJSON.java Tue Dec  1 01:51:15 2009
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jmeter.visualizers;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.jmeter.samplers.SampleResult;
+import org.apache.jmeter.util.JMeterUtils;
+
+public class RenderAsJSON extends SamplerResultTab implements ResultRenderer {
+
+    private static final String ESC_CHAR_REGEX = "\\\\[\"\\\\/bfnrt]|\\\\u[0-9A-Fa-f]{4}"; // $NON-NLS-1$
+
+    private static final String NORMAL_CHARACTER_REGEX = "[^\"\\\\]";  // $NON-NLS-1$
+
+    private static final String STRING_REGEX = "\"(" + ESC_CHAR_REGEX + "|" + NORMAL_CHARACTER_REGEX + ")*\""; // $NON-NLS-1$
+
+    // This 'other value' regex is deliberately weak, even accepting an empty string, to be useful when reporting malformed data.
+    private static final String OTHER_VALUE_REGEX = "[^\\{\\[\\]\\}\\,]*"; // $NON-NLS-1$
+
+    private static final String VALUE_OR_PAIR_REGEX = "((" + STRING_REGEX + "\\s*:)?\\s*(" + STRING_REGEX + "|" + OTHER_VALUE_REGEX + ")\\s*,?\\s*)"; // $NON-NLS-1$
+
+    private static final Pattern VALUE_OR_PAIR_PATTERN = Pattern.compile(VALUE_OR_PAIR_REGEX);
+
+    /** {@inheritDoc} */
+    public void renderResult(SampleResult sampleResult) {
+        String response = ViewResultsFullVisualizer.getResponseAsString(sampleResult);
+        showRenderJSONResponse(response);
+    }
+
+    private void showRenderJSONResponse(String response) {
+        results.setContentType("text/plain"); // $NON-NLS-1$
+        results.setText(response == null ? "" : prettyJSON(response));
+        results.setCaretPosition(0);
+        resultsScrollPane.setViewportView(results);
+    }
+
+    // It might be useful also to make this available in the 'Request' tab, for
+    // when posting JSON.
+    private static String prettyJSON(String json) {
+        StringBuffer pretty = new StringBuffer(json.length() * 2); // Educated guess
+
+        final String tab = ":   "; // $NON-NLS-1$
+        StringBuffer index = new StringBuffer();
+        String nl = ""; // $NON-NLS-1$
+
+        Matcher valueOrPair = VALUE_OR_PAIR_PATTERN.matcher(json);
+
+        boolean misparse = false;
+
+        for (int i = 0; i &lt; json.length(); ) {
+            final char currentChar = json.charAt(i);
+            if ((currentChar == '{') || (currentChar == '[')) {
+                pretty.append(nl).append(index).append(currentChar);
+                i++;
+                index.append(tab);
+                misparse = false;
+            }
+            else if ((currentChar == '}') || (currentChar == ']')) {
+                if (index.length() &gt; 0) {
+                    index.delete(0, tab.length());
+                }
+                pretty.append(nl).append(index).append(currentChar);
+                i++;
+                int j = i;
+                while ((j &lt; json.length()) &amp;&amp; Character.isWhitespace(json.charAt(j))) {
+                    j++;
+                }
+                if ((j &lt; json.length()) &amp;&amp; (json.charAt(j) == ',')) {
+                    pretty.append(","); // $NON-NLS-1$
+                    i=j+1;
+                }
+                misparse = false;
+            }
+            else if (valueOrPair.find(i) &amp;&amp; valueOrPair.group().length() &gt; 0) {
+                pretty.append(nl).append(index).append(valueOrPair.group());
+                i=valueOrPair.end();
+                misparse = false;
+            }
+            else {
+                if (!misparse) {
+                    pretty.append(nl).append("- Parse failed from:");
+                }
+                pretty.append(currentChar);
+                i++;
+                misparse = true;
+            }
+            nl = "\n"; // $NON-NLS-1$
+        }
+        return pretty.toString();
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public String toString() {
+        return JMeterUtils.getResString("view_results_render_json"); // $NON-NLS-1$
+    }
+
+}

Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsJSON.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsJSON.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsRegexp.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsRegexp.java?rev=885648&amp;view=auto
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsRegexp.java (added)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsRegexp.java Tue Dec  1 01:51:15 2009
@@ -0,0 +1,253 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ *
+ */
+package org.apache.jmeter.visualizers;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.swing.JButton;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JSplitPane;
+import javax.swing.JTabbedPane;
+import javax.swing.JTextArea;
+
+import org.apache.jmeter.samplers.SampleResult;
+import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jorphan.gui.GuiUtils;
+import org.apache.jorphan.gui.JLabeledTextField;
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.log.Logger;
+import org.apache.oro.text.PatternCacheLRU;
+import org.apache.oro.text.regex.MatchResult;
+import org.apache.oro.text.regex.Pattern;
+import org.apache.oro.text.regex.PatternMatcherInput;
+import org.apache.oro.text.regex.Perl5Compiler;
+import org.apache.oro.text.regex.Perl5Matcher;
+
+/**
+ * Implement ResultsRender for Regexp tester
+ */
+public class RenderAsRegexp implements ResultRenderer, ActionListener {
+
+    private static final Logger log = LoggingManager.getLoggerForClass();
+
+    private static final String REGEXP_TESTER_COMMAND = "regexp_tester"; // $NON-NLS-1$
+
+    private JPanel regexpPane;
+
+    private JTextArea regexpDataField;
+
+    private JLabeledTextField regexpField;
+
+    private JTextArea regexpResultField;
+
+    private JTabbedPane rightSide;
+
+    private SampleResult sampleResult = null;
+
+    /** {@inheritDoc} */
+    public void clearData() {
+        this.clearFields();
+    }
+
+    /** {@inheritDoc} */
+    public void init() {
+        // Create the panels for the regexp tab
+        regexpPane = createRegexpPanel();
+    }
+
+    /**
+     * Display the response as text or as rendered HTML. Change the text on the
+     * button appropriate to the current display.
+     *
+     * @param e the ActionEvent being processed
+     */
+    public void actionPerformed(ActionEvent e) {
+        String command = e.getActionCommand();
+        if ((sampleResult != null) &amp;&amp; (REGEXP_TESTER_COMMAND.equals(command))) {
+            String response = ViewResultsFullVisualizer.getResponseAsString(sampleResult);
+            executeAndShowRegexpTester(response);
+        }
+    }
+
+    /**
+     * Launch regexp engine to parse a input text
+     * @param textToParse
+     */
+    private void executeAndShowRegexpTester(String textToParse) {
+        if (textToParse != null &amp;&amp; textToParse.length() &gt; 0
+                &amp;&amp; this.regexpField.getText().length() &gt; 0) {
+            log.debug("regexpField = " + this.regexpField.getText());
+            this.regexpResultField.setText(process(textToParse));
+        }
+    }
+
+    private String process(String textToParse) {
+
+        Perl5Matcher matcher = new Perl5Matcher();
+        PatternMatcherInput input = new PatternMatcherInput(textToParse);
+
+        PatternCacheLRU pcLRU = new PatternCacheLRU();
+        Pattern pattern = pcLRU.getPattern(regexpField.getText(), Perl5Compiler.READ_ONLY_MASK);
+        List&lt;MatchResult&gt; matches = new LinkedList&lt;MatchResult&gt;();
+        int x = 0;
+        boolean done = false;
+        do {
+            if (matcher.contains(input, pattern)) {
+                //log.debug("RegexExtractor: Match found!");
+                matches.add(matcher.getMatch());
+            } else {
+                done = true;
+            }
+            x++;
+        } while (!done);
+
+        // Construct a multi-line string with all matches
+        StringBuffer sb = new StringBuffer();
+        for (int j = 0; j &lt; matches.size(); j++) {
+            MatchResult mr = matches.get(j);
+            final int groups = mr.groups();
+            for (int i = 0; i &lt; groups; i++) {
+                sb.append(" group[" + j + "][" + i + "]=" + mr.group(i) + "\n");
+
+            }
+        }
+        return sb.toString();
+
+    }
+    /** {@inheritDoc} */
+   public void renderResult(SampleResult sampleResult) {
+        this.clearFields();
+
+        if ((SampleResult.TEXT).equals(sampleResult.getDataType())) {
+            String response = ViewResultsFullVisualizer.getResponseAsString(sampleResult);
+            regexpDataField.setText(response);
+            regexpDataField.setCaretPosition(0);
+        } else {
+            regexpDataField.setText(JMeterUtils.getResString("regexp_render_no_text"));
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void setupTabPane() {
+         // Add regexp tester pane
+        if (rightSide.indexOfTab(JMeterUtils.getResString("regexp_tester_title")) &lt; 0) { // $NON-NLS-1$
+            rightSide.addTab(JMeterUtils.getResString("regexp_tester_title"), regexpPane); // $NON-NLS-1$
+        }
+        clearData();
+    }
+
+    /**
+     * @return RegExp Tester panel
+     */
+    private JPanel createRegexpPanel() {
+        regexpDataField = new JTextArea();
+        regexpDataField.setEditable(false);
+        regexpDataField.setLineWrap(true);
+        regexpDataField.setWrapStyleWord(true);
+
+        JScrollPane regexpDataPane = GuiUtils.makeScrollPane(regexpDataField);
+        regexpDataPane.setMinimumSize(new Dimension(0, 200));
+
+        JPanel pane = new JPanel(new BorderLayout(0, 5));
+
+        JSplitPane mainSplit = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
+                regexpDataPane, createRegexpTasksPanel());
+        mainSplit.setDividerLocation(300);
+        pane.add(mainSplit, BorderLayout.CENTER);
+        return pane;
+    }
+
+    /**
+     * Create the Regexp task pane
+     *
+     * @return Regexp task pane
+     */
+    private JPanel createRegexpTasksPanel() {
+        JPanel regexpActionPanel = new JPanel();
+        regexpField = new JLabeledTextField(JMeterUtils.getResString("regexp_tester_field"), 30); // $NON-NLS-1$
+        regexpActionPanel.add(regexpField, BorderLayout.WEST);
+
+        JButton regexpTester = new JButton(JMeterUtils.getResString("regexp_tester_button_test"));
+        regexpTester.setActionCommand(REGEXP_TESTER_COMMAND);
+        regexpTester.addActionListener(this);
+        regexpActionPanel.add(regexpTester, BorderLayout.EAST);
+
+        regexpResultField = new JTextArea();
+        regexpResultField.setEditable(false);
+        regexpResultField.setLineWrap(true);
+        regexpResultField.setWrapStyleWord(true);
+
+        JPanel regexpTasksPanel = new JPanel(new BorderLayout(0, 5));
+        regexpTasksPanel.add(regexpActionPanel, BorderLayout.NORTH);
+        regexpTasksPanel.add(GuiUtils.makeScrollPane(regexpResultField), BorderLayout.CENTER);
+
+        return regexpTasksPanel;
+    }
+
+    private void clearFields() {
+        regexpDataField.setText(""); // $NON-NLS-1$
+        // don't set empty to keep regexp
+        // regexpField.setText(""); // $NON-NLS-1$
+        regexpResultField.setText(""); // $NON-NLS-1$
+    }
+
+    /** {@inheritDoc} */
+    public synchronized void setRightSide(JTabbedPane side) {
+        rightSide = side;
+    }
+
+    /** {@inheritDoc} */
+    public synchronized void setSamplerResult(Object userObject) {
+        if (userObject instanceof SampleResult) {
+            sampleResult = (SampleResult) userObject;
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void setLastSelectedTab(int index) {
+        // nothing to do
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public String toString() {
+        return JMeterUtils.getResString("regexp_tester_title");
+    }
+
+    /** {@inheritDoc} */
+    public void renderImage(SampleResult sampleResult) {
+        clearData();
+    }
+
+    /** {@inheritDoc} */
+    public void setBackgroundColor(Color backGround) {
+    }
+
+}

Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsRegexp.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsRegexp.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsText.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsText.java?rev=885648&amp;view=auto
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsText.java (added)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsText.java Tue Dec  1 01:51:15 2009
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jmeter.visualizers;
+
+import org.apache.jmeter.samplers.SampleResult;
+import org.apache.jmeter.util.JMeterUtils;
+
+public class RenderAsText extends SamplerResultTab implements ResultRenderer {
+
+    /** {@inheritDoc} */
+    public void renderResult(SampleResult sampleResult) {
+        String response = ViewResultsFullVisualizer.getResponseAsString(sampleResult);
+        showTextResponse(response);
+    }
+
+    private void showTextResponse(String response) {
+        results.setContentType("text/plain"); // $NON-NLS-1$
+        results.setText(response == null ? "" : response); // $NON-NLS-1$
+        results.setCaretPosition(0);
+        resultsScrollPane.setViewportView(results);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public String toString() {
+        return JMeterUtils.getResString("view_results_render_text");
+    }
+
+}

Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsText.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsText.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsXML.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsXML.java?rev=885648&amp;view=auto
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsXML.java (added)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsXML.java Tue Dec  1 01:51:15 2009
@@ -0,0 +1,222 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jmeter.visualizers;
+
+import java.awt.Component;
+import java.awt.GridLayout;
+import java.io.ByteArrayInputStream;
+import java.io.StringWriter;
+
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTree;
+import javax.swing.ToolTipManager;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeCellRenderer;
+import javax.swing.tree.TreeSelectionModel;
+
+import org.apache.jmeter.samplers.SampleResult;
+import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jmeter.util.XPathUtil;
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.jorphan.util.JOrphanUtils;
+import org.apache.log.Logger;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.tidy.Tidy;
+import org.xml.sax.SAXException;
+
+public class RenderAsXML extends SamplerResultTab
+    implements ResultRenderer {
+
+    private static final Logger log = LoggingManager.getLoggerForClass();
+
+    private static final byte[] XML_PFX = "&lt;?xml ".getBytes(); // $NON-NLS-1$
+
+    public RenderAsXML(){
+        activateSearchExtension = false; // TODO work out how to search the XML pane
+    }
+
+    /** {@inheritDoc} */
+    public void renderResult(SampleResult sampleResult) {
+        showRenderXMLResponse(sampleResult);
+    }
+
+    private void showRenderXMLResponse(SampleResult res) {
+        results.setContentType("text/xml"); // $NON-NLS-1$
+        results.setCaretPosition(0);
+        byte[] source = res.getResponseData();
+        final ByteArrayInputStream baIS = new ByteArrayInputStream(source);
+        for(int i=0; i&lt;source.length-XML_PFX.length; i++){
+            if (JOrphanUtils.startsWith(source, XML_PFX, i)){
+                baIS.skip(i);// Skip the leading bytes (if any)
+                break;
+            }
+        }
+
+        // there is also a javax.swing.text.Document class.
+        org.w3c.dom.Document document = null;
+
+        StringWriter sw = new StringWriter();
+        Tidy tidy = XPathUtil.makeTidyParser(true, true, true, sw);
+        document = tidy.parseDOM(baIS, null);
+        document.normalize();
+        if (tidy.getParseErrors() &gt; 0) {
+            showErrorMessageDialog(sw.toString(),
+                    "Tidy: " + tidy.getParseErrors() + " errors, " + tidy.getParseWarnings() + " warnings",
+                    JOptionPane.WARNING_MESSAGE);
+        }
+
+        JPanel domTreePanel = new DOMTreePanel(document);
+        resultsScrollPane.setViewportView(domTreePanel);
+    }
+
+    /**
+     *
+     * A Dom tree panel for to display response as tree view author &lt;a
+     * href="mailto:d.maung@mdl.com"&gt;Dave Maung&lt;/a&gt; TODO implement to find any
+     * nodes in the tree using TreePath.
+     *
+     */
+    private static class DOMTreePanel extends JPanel {
+
+        private static final long serialVersionUID = 6871690021183779153L;
+
+        private JTree domJTree;
+
+        public DOMTreePanel(org.w3c.dom.Document document) {
+            super(new GridLayout(1, 0));
+            try {
+                Node firstElement = getFirstElement(document);
+                DefaultMutableTreeNode top = new XMLDefaultMutableTreeNode(firstElement);
+                domJTree = new JTree(top);
+
+                domJTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
+                domJTree.setShowsRootHandles(true);
+                JScrollPane domJScrollPane = new JScrollPane(domJTree);
+                domJTree.setAutoscrolls(true);
+                this.add(domJScrollPane);
+                ToolTipManager.sharedInstance().registerComponent(domJTree);
+                domJTree.setCellRenderer(new DomTreeRenderer());
+            } catch (SAXException e) {
+                log.warn("", e);
+            }
+
+        }
+
+        /**
+         * Skip all DTD nodes, all prolog nodes. They dont support in tree view
+         * We let user to insert them however in DOMTreeView, we dont display it
+         *
+         * @param root
+         * @return
+         */
+        private Node getFirstElement(Node parent) {
+            NodeList childNodes = parent.getChildNodes();
+            Node toReturn = parent; // Must return a valid node, or may generate an NPE
+            for (int i = 0; i &lt; childNodes.getLength(); i++) {
+                Node childNode = childNodes.item(i);
+                toReturn = childNode;
+                if (childNode.getNodeType() == Node.ELEMENT_NODE){
+                    break;
+                }
+
+            }
+            return toReturn;
+        }
+
+        /**
+         * This class is to view as tooltext. This is very useful, when the
+         * contents has long string and does not fit in the view. it will also
+         * automatically wrap line for each 100 characters since tool tip
+         * support html. author &lt;a href="mailto:d.maung@mdl.com"&gt;Dave Maung&lt;/a&gt;
+         */
+        private static class DomTreeRenderer extends DefaultTreeCellRenderer {
+
+            private static final long serialVersionUID = 240210061375790195L;
+
+            @Override
+            public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded,
+                    boolean leaf, int row, boolean phasFocus) {
+                super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, phasFocus);
+
+                DefaultMutableTreeNode valueTreeNode = (DefaultMutableTreeNode) value;
+                setToolTipText(getHTML(valueTreeNode.toString(), "&lt;br&gt;", 100)); // $NON-NLS-1$
+                return this;
+            }
+
+            /**
+             * get the html
+             *
+             * @param str
+             * @param separator
+             * @param maxChar
+             * @return
+             */
+            private String getHTML(String str, String separator, int maxChar) {
+                StringBuffer strBuf = new StringBuffer("&lt;html&gt;&lt;body bgcolor=\"yellow\"&gt;&lt;b&gt;"); // $NON-NLS-1$
+                char[] chars = str.toCharArray();
+                for (int i = 0; i &lt; chars.length; i++) {
+
+                    if (i % maxChar == 0 &amp;&amp; i != 0) {
+                        strBuf.append(separator);
+                    }
+                    strBuf.append(encode(chars[i]));
+
+                }
+                strBuf.append("&lt;/b&gt;&lt;/body&gt;&lt;/html&gt;"); // $NON-NLS-1$
+                return strBuf.toString();
+
+            }
+
+            private String encode(char c) {
+                String toReturn = String.valueOf(c);
+                switch (c) {
+                case '&lt;': // $NON-NLS-1$
+                    toReturn = "&amp;lt;"; // $NON-NLS-1$
+                    break;
+                case '&gt;': // $NON-NLS-1$
+                    toReturn = "&amp;gt;"; // $NON-NLS-1$
+                    break;
+                case '\'': // $NON-NLS-1$
+                    toReturn = "&amp;apos;"; // $NON-NLS-1$
+                    break;
+                case '\"': // $NON-NLS-1$
+                    toReturn = "&amp;quot;"; // $NON-NLS-1$
+                    break;
+
+                }
+                return toReturn;
+            }
+        }
+    }
+
+    private static void showErrorMessageDialog(String message, String title, int messageType) {
+        JOptionPane.showMessageDialog(null, message, title, messageType);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public String toString() {
+        return JMeterUtils.getResString("view_results_render_xml");
+    }
+
+}

Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsXML.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsXML.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ResultRenderer.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ResultRenderer.java?rev=885648&amp;view=auto
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ResultRenderer.java (added)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ResultRenderer.java Tue Dec  1 01:51:15 2009
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ *
+ */
+package org.apache.jmeter.visualizers;
+
+import java.awt.Color;
+
+import javax.swing.JTabbedPane;
+
+import org.apache.jmeter.samplers.SampleResult;
+
+
+/**
+ * Interface to results render
+ */
+public interface ResultRenderer {
+
+    public void clearData();
+
+    public void init();
+
+    public void setupTabPane();
+
+    public void setLastSelectedTab(int index);
+
+    public void setRightSide(JTabbedPane rightSide);
+
+    public void setSamplerResult(Object userObject);
+
+    public void renderResult(SampleResult sampleResult);
+
+    public void renderImage(SampleResult sampleResult);
+
+    /**
+     *
+     * @return the string to be displayed by the ComboBox
+     */
+    public String toString();
+
+    public void setBackgroundColor(Color backGround);
+
+}

Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ResultRenderer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ResultRenderer.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java?rev=885648&amp;view=auto
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java (added)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java Tue Dec  1 01:51:15 2009
@@ -0,0 +1,345 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jmeter.visualizers;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Component;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import javax.swing.BorderFactory;
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+import javax.swing.JEditorPane;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
+import javax.swing.JTextArea;
+import javax.swing.JTextPane;
+import javax.swing.text.BadLocationException;
+import javax.swing.text.Style;
+import javax.swing.text.StyleConstants;
+import javax.swing.text.StyledDocument;
+
+import org.apache.jmeter.assertions.AssertionResult;
+import org.apache.jmeter.samplers.SampleResult;
+import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jorphan.gui.GuiUtils;
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.log.Logger;
+
+public abstract class SamplerResultTab implements ResultRenderer {
+
+    private static final Logger log = LoggingManager.getLoggerForClass();
+
+    // N.B. these are not multi-threaded, so don't make it static
+    private final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z"); // ISO format $NON-NLS-1$
+
+    private static final String NL = "\n"; // $NON-NLS-1$
+
+    public static final Color SERVER_ERROR_COLOR = Color.red;
+
+    public static final Color CLIENT_ERROR_COLOR = Color.blue;
+
+    public static final Color REDIRECT_COLOR = Color.green;
+
+    protected static final String TEXT_COMMAND = "text"; // $NON-NLS-1$
+
+    private static final String STYLE_SERVER_ERROR = "ServerError"; // $NON-NLS-1$
+
+    private static final String STYLE_CLIENT_ERROR = "ClientError"; // $NON-NLS-1$
+
+    private static final String STYLE_REDIRECT = "Redirect"; // $NON-NLS-1$
+
+    protected JEditorPane results;
+
+    private JTextPane stats;
+
+    protected JScrollPane resultsScrollPane;
+
+    private JPanel resultsPane;
+
+    private JLabel imageLabel;
+
+    private JPanel requestPane;
+
+    private JTextArea sampleDataField;
+
+    protected JTabbedPane rightSide;
+
+    private int lastSelectedTab;
+
+    private Object userObject = null; // Could be SampleResult or AssertionResult
+
+    private SampleResult sampleResult = null;
+
+    private AssertionResult assertionResult = null;
+
+    protected SearchTextExtension searchTextExtension;
+
+    private JPanel searchPanel = null;
+
+    protected boolean activateSearchExtension = true; // most current subclasses can process text
+
+    private Color backGround;
+
+    public void clearData() {
+        results.setText("");// Response Data // $NON-NLS-1$
+        sampleDataField.setText("");// Request Data // $NON-NLS-1$
+    }
+
+    public void init() {
+        rightSide.addTab(JMeterUtils.getResString("view_results_tab_sampler"), createResponseMetadataPanel()); // $NON-NLS-1$
+        // Create the panels for the other tabs
+        requestPane = createRequestPanel();
+        resultsPane = createResponseDataPanel();
+    }
+
+    public void setupTabPane() {
+        StyledDocument statsDoc = stats.getStyledDocument();
+        try {
+            statsDoc.remove(0, statsDoc.getLength());
+            sampleDataField.setText(""); // $NON-NLS-1$
+            results.setText(""); // $NON-NLS-1$
+            if (userObject instanceof SampleResult) {
+                sampleResult = (SampleResult) userObject;
+                // We are displaying a SampleResult
+                setupTabPaneForSampleResult();
+
+                // load time label
+                log.debug("valueChanged1 : load time - " + sampleResult.getTime());
+                String sd = sampleResult.getSamplerData();
+                if (sd != null) {
+                    String rh = sampleResult.getRequestHeaders();
+                    if (rh != null) {
+                        StringBuffer sb = new StringBuffer(sd.length() + rh.length() + 20);
+                        sb.append(sd);
+                        sb.append("\n"); //$NON-NLS-1$
+                        sb.append(JMeterUtils.getResString("view_results_request_headers")); //$NON-NLS-1$
+                        sb.append("\n"); //$NON-NLS-1$
+                        sb.append(rh);
+                        sd = sb.toString();
+                    }
+                    sampleDataField.setText(sd);
+                }
+
+                StringBuffer statsBuff = new StringBuffer(200);
+                statsBuff.append(JMeterUtils.getResString("view_results_thread_name")).append(sampleResult.getThreadName()).append(NL); //$NON-NLS-1$
+                String startTime = dateFormat.format(new Date(sampleResult.getStartTime()));
+                statsBuff.append(JMeterUtils.getResString("view_results_sample_start")).append(startTime).append(NL); //$NON-NLS-1$
+                statsBuff.append(JMeterUtils.getResString("view_results_load_time")).append(sampleResult.getTime()).append(NL); //$NON-NLS-1$
+                statsBuff.append(JMeterUtils.getResString("view_results_latency")).append(sampleResult.getLatency()).append(NL); //$NON-NLS-1$
+                statsBuff.append(JMeterUtils.getResString("view_results_size_in_bytes")).append(sampleResult.getBytes()).append(NL); //$NON-NLS-1$
+                statsBuff.append(JMeterUtils.getResString("view_results_sample_count")).append(sampleResult.getSampleCount()).append(NL); //$NON-NLS-1$
+                statsBuff.append(JMeterUtils.getResString("view_results_error_count")).append(sampleResult.getErrorCount()).append(NL); //$NON-NLS-1$
+                statsDoc.insertString(statsDoc.getLength(), statsBuff.toString(), null);
+                statsBuff = new StringBuffer(); // reset for reuse
+
+                String responseCode = sampleResult.getResponseCode();
+                log.debug("valueChanged1 : response code - " + responseCode);
+
+                int responseLevel = 0;
+                if (responseCode != null) {
+                    try {
+                        responseLevel = Integer.parseInt(responseCode) / 100;
+                    } catch (NumberFormatException numberFormatException) {
+                        // no need to change the foreground color
+                    }
+                }
+
+                Style style = null;
+                switch (responseLevel) {
+                case 3:
+                    style = statsDoc.getStyle(STYLE_REDIRECT);
+                    break;
+                case 4:
+                    style = statsDoc.getStyle(STYLE_CLIENT_ERROR);
+                    break;
+                case 5:
+                    style = statsDoc.getStyle(STYLE_SERVER_ERROR);
+                    break;
+                }
+
+                statsBuff.append(JMeterUtils.getResString("view_results_response_code")).append(responseCode).append(NL); //$NON-NLS-1$
+                statsDoc.insertString(statsDoc.getLength(), statsBuff.toString(), style);
+                statsBuff = new StringBuffer(100); // reset for reuse
+
+                // response message label
+                String responseMsgStr = sampleResult.getResponseMessage();
+
+                log.debug("valueChanged1 : response message - " + responseMsgStr);
+                statsBuff.append(JMeterUtils.getResString("view_results_response_message")).append(responseMsgStr).append(NL); //$NON-NLS-1$
+
+                statsBuff.append(NL);
+                statsBuff.append(JMeterUtils.getResString("view_results_response_headers")).append(NL); //$NON-NLS-1$
+                statsBuff.append(sampleResult.getResponseHeaders()).append(NL);
+                statsBuff.append(NL);
+                final String samplerClass = sampleResult.getClass().getName();
+                statsBuff.append(samplerClass.substring(1 + samplerClass.lastIndexOf('.'))).append(" "+ JMeterUtils.getResString("view_results_fields")).append(NL); //$NON-NLS-1$
+                statsBuff.append("ContentType: ").append(sampleResult.getContentType()).append(NL);
+                statsBuff.append("DataEncoding: ").append(sampleResult.getDataEncodingNoDefault()).append(NL);
+                statsDoc.insertString(statsDoc.getLength(), statsBuff.toString(), null);
+                statsBuff = null; // Done
+
+                // Reset search
+                if (activateSearchExtension) {
+                    searchTextExtension.resetTextToFind();
+                }
+
+            } else if (userObject instanceof AssertionResult) {
+                assertionResult = (AssertionResult) userObject;
+
+                // We are displaying an AssertionResult
+                setupTabPaneForAssertionResult();
+
+                if (log.isDebugEnabled()) {
+                    log.debug("valueChanged1 : sample result - " + assertionResult);
+                }
+
+                StringBuffer statsBuff = new StringBuffer(100);
+                statsBuff.append(JMeterUtils.getResString("view_results_assertion_error")).append(assertionResult.isError()).append(NL); //$NON-NLS-1$
+                statsBuff.append(JMeterUtils.getResString("view_results_assertion_failure")).append(assertionResult.isFailure()).append(NL); //$NON-NLS-1$
+                statsBuff.append(JMeterUtils.getResString("view_results_assertion_failure_message")).append(assertionResult.getFailureMessage()).append(NL); //$NON-NLS-1$
+                statsDoc.insertString(statsDoc.getLength(), statsBuff.toString(), null);
+                statsBuff = null;
+            }
+        } catch (BadLocationException exc) {
+            log.error("Error setting statistics text", exc);
+            stats.setText("");
+        }
+    }
+
+    private void setupTabPaneForSampleResult() {
+        // Set the title for the first tab
+        rightSide.setTitleAt(0, JMeterUtils.getResString("view_results_tab_sampler")); //$NON-NLS-1$
+        // Add the other tabs if not present
+        if(rightSide.indexOfTab(JMeterUtils.getResString("view_results_tab_request")) &lt; 0) { // $NON-NLS-1$
+            rightSide.addTab(JMeterUtils.getResString("view_results_tab_request"), requestPane); // $NON-NLS-1$
+        }
+        if(rightSide.indexOfTab(JMeterUtils.getResString("view_results_tab_response")) &lt; 0) { // $NON-NLS-1$
+            rightSide.addTab(JMeterUtils.getResString("view_results_tab_response"), resultsPane); // $NON-NLS-1$
+        }
+        // restore last selected tab
+        if (lastSelectedTab &lt; rightSide.getTabCount()) {
+            rightSide.setSelectedIndex(lastSelectedTab);
+        }
+    }
+
+    private void setupTabPaneForAssertionResult() {
+        // Set the title for the first tab
+        rightSide.setTitleAt(0, JMeterUtils.getResString("view_results_tab_assertion")); //$NON-NLS-1$
+        // Remove the other tabs if present
+        int requestTabIndex = rightSide.indexOfTab(JMeterUtils.getResString("view_results_tab_request")); // $NON-NLS-1$
+        if(requestTabIndex &gt;= 0) {
+            rightSide.removeTabAt(requestTabIndex);
+        }
+        int responseTabIndex = rightSide.indexOfTab(JMeterUtils.getResString("view_results_tab_response")); // $NON-NLS-1$
+        if(responseTabIndex &gt;= 0) {
+            rightSide.removeTabAt(responseTabIndex);
+        }
+    }
+
+    private Component createResponseMetadataPanel() {
+        stats = new JTextPane();
+        stats.setEditable(false);
+        stats.setBackground(backGround);
+
+        // Add styles to use for different types of status messages
+        StyledDocument doc = (StyledDocument) stats.getDocument();
+
+        Style style = doc.addStyle(STYLE_REDIRECT, null);
+        StyleConstants.setForeground(style, REDIRECT_COLOR);
+
+        style = doc.addStyle(STYLE_CLIENT_ERROR, null);
+        StyleConstants.setForeground(style, CLIENT_ERROR_COLOR);
+
+        style = doc.addStyle(STYLE_SERVER_ERROR, null);
+        StyleConstants.setForeground(style, SERVER_ERROR_COLOR);
+
+        JScrollPane pane = GuiUtils.makeScrollPane(stats);
+        pane.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
+        return pane;
+    }
+
+    private JPanel createRequestPanel() {
+        sampleDataField = new JTextArea();
+        sampleDataField.setEditable(false);
+        sampleDataField.setLineWrap(true);
+        sampleDataField.setWrapStyleWord(true);
+
+        JPanel pane = new JPanel(new BorderLayout(0, 5));
+        pane.add(GuiUtils.makeScrollPane(sampleDataField));
+        return pane;
+    }
+
+    private JPanel createResponseDataPanel() {
+        results = new JEditorPane();
+        results.setEditable(false);
+
+        resultsScrollPane = GuiUtils.makeScrollPane(results);
+        imageLabel = new JLabel();
+
+        JPanel panel = new JPanel(new BorderLayout());
+        panel.add(resultsScrollPane, BorderLayout.CENTER);
+
+        if (activateSearchExtension) {
+            // Add search text extension
+            searchTextExtension = new SearchTextExtension();
+            searchTextExtension.init(panel);
+            searchPanel = searchTextExtension.createSearchTextExtensionPane();
+            searchTextExtension.setResults(results);
+            searchPanel.setVisible(true);
+            panel.add(searchPanel, BorderLayout.PAGE_END);
+        }
+
+        return panel;
+    }
+
+    private void showImage(Icon image) {
+        imageLabel.setIcon(image);
+        resultsScrollPane.setViewportView(imageLabel);
+    }
+
+    public synchronized void setSamplerResult(Object sample) {
+        userObject = sample;
+    }
+
+    public synchronized void setRightSide(JTabbedPane side) {
+        rightSide = side;
+    }
+
+    public void setLastSelectedTab(int index) {
+        lastSelectedTab = index;
+    }
+
+    public void renderImage(SampleResult sampleResult) {
+        byte[] responseBytes = sampleResult.getResponseData();
+        if (responseBytes != null) {
+            showImage(new ImageIcon(responseBytes)); //TODO implement other non-text types
+        }
+    }
+
+    public void setBackgroundColor(Color backGround){
+        this.backGround = backGround;
+    }
+}
\ No newline at end of file

Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SearchTextExtension.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SearchTextExtension.java?rev=885648&amp;r1=885647&amp;r2=885648&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SearchTextExtension.java (original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SearchTextExtension.java Tue Dec  1 01:51:15 2009
@@ -1,18 +1,18 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed  under the  License is distributed on an "AS IS" BASIS,
  * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
  * implied.
- * 
+ *
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
@@ -24,8 +24,6 @@
 import java.awt.Font;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.awt.event.InputEvent;
-import java.awt.event.KeyEvent;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -56,30 +54,21 @@
 import org.apache.log.Logger;
 
 public class SearchTextExtension implements ActionListener, DocumentListener {
-    
+
     private static final Logger log = LoggingManager.getLoggerForClass();
-    
-    public static final String SEARCH_TEXT_COMMAND = "search_text"; // $NON-NLS-1$
-    
-    public static final String DIALOG_SEARCH_SHOW_COMMAND = "show_search_dialog"; // $NON-NLS-1$
-    
-    public static final String DIALOG_SEARCH_HIDE_COMMAND = "close_search_dialog"; // $NON-NLS-1$
-
-    private static final String SEARCH_SHOW_COMMAND = "show_search_text"; // $NON-NLS-1$
-
-    // set default command to Text
-    private String command = DIALOG_SEARCH_SHOW_COMMAND;
-    
+
+    private static final String SEARCH_TEXT_COMMAND = "search_text"; // $NON-NLS-1$
+
     private static int LAST_POSITION_DEFAULT = 0;
 
     private int lastPosition = LAST_POSITION_DEFAULT;
-    
+
     private final static Color HILIT_COLOR = Color.LIGHT_GRAY;
-    
+
     private Highlighter selection;
-    
+
     private Highlighter.HighlightPainter painter;
-    
+
     private JLabel label;
 
     private JButton findButton;
@@ -93,26 +82,15 @@
     private String lastTextTofind;
 
     private boolean newSearch = false;
-    
+
     private JEditorPane results;
-    
+
     private JPanel searchPanel;
 
-    private boolean enabled = true;
-    
-    private JCheckBox showSearch;
 
-    
     public void init(JPanel resultsPane) {
-        // when CTRL-T is pressed, (un-)show search dialog box (only in results pane)
-        InputMap im = resultsPane
-                .getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
-        im.put(KeyStroke.getKeyStroke(KeyEvent.VK_T, 
-                InputEvent.CTRL_MASK), SEARCH_SHOW_COMMAND);
-        ActionMap am = resultsPane.getActionMap();
-        am.put(SEARCH_SHOW_COMMAND, new DisplaySearchAction());
     }
-    
+
     public void setResults(JEditorPane results) {
         if (this.results != null) {
             newSearch = true;
@@ -128,10 +106,10 @@
     /**
      * Launch find text engine on response text
      */
-    public void executeAndShowTextFind() {
+    private void executeAndShowTextFind() {
+        String textToFind = textToFindField.getText();
         if (results != null &amp;&amp; results.getText().length() &gt; 0
-                &amp;&amp; this.textToFindField.getText().length() &gt; 0) {
-            String textToFind = textToFindField.getText();
+                &amp;&amp; textToFind.length() &gt; 0) {
 
             // new search?
             if (lastTextTofind != null &amp;&amp; !lastTextTofind.equals(textToFind)) {
@@ -153,7 +131,7 @@
                     selection.removeAllHighlights();
                     selection.addHighlight(lastPosition + matcher.start(),
                             lastPosition + matcher.end(), painter);
-                    results.setCaretPosition(lastPosition + matcher.end());                    
+                    results.setCaretPosition(lastPosition + matcher.end());
 
                     // save search position
                     lastPosition = lastPosition + matcher.end();
@@ -180,12 +158,12 @@
 
     /**
      * Create the text find task pane
-     * 
+     *
      * @return Text find task pane
      */
-    public JPanel createSearchTextPanel() {
+    private JPanel createSearchTextPanel() {
         Font font = new Font("SansSerif", Font.PLAIN, 10);
-        
+
         // Search field
         searchPanel = new JPanel();
         searchPanel.setLayout(new BoxLayout(searchPanel, BoxLayout.X_AXIS));
@@ -224,34 +202,18 @@
         im.put(KeyStroke.getKeyStroke("ENTER"), SEARCH_TEXT_COMMAND);
         ActionMap am = textToFindField.getActionMap();
         am.put(SEARCH_TEXT_COMMAND, new EnterAction());
-        
+
+        // default not visible
+        searchPanel.setVisible(true);
         return searchPanel;
     }
-    
-    public JPanel createSearchTextExtensionPane() {
+
+    JPanel createSearchTextExtensionPane() {
         JPanel pane = new JPanel();
         pane.setLayout(new BoxLayout(pane, BoxLayout.X_AXIS));
-        pane.add(createShowSearchPanel());
         pane.add(createSearchTextPanel());
         return pane;
     }
-    
-    public JPanel createShowSearchPanel() {
-        Font fontBold = new Font("SansSerif", Font.BOLD, 10);
-
-        showSearch = new JCheckBox();
-        showSearch.setFont(fontBold);
-        showSearch.setAction(new DisplaySearchAction());
-        showSearch.setText(JMeterUtils
-                .getResString("view_results_search_pane")); // $NON-NLS-1$
-        
-        JPanel pane = new JPanel();
-        pane.setLayout(new BoxLayout(pane, BoxLayout.X_AXIS));
-        pane.add(showSearch);
-        
-        return pane;
-    }
-
 
     /**
      * Display the response as text or as rendered HTML. Change the text on the
@@ -261,18 +223,12 @@
      *            the ActionEvent being processed
      */
     public void actionPerformed(ActionEvent e) {
-        command = e.getActionCommand();
+        String command = e.getActionCommand();
 
         // Search text in response data
-        if (command != null 
-                &amp;&amp; (command.equals(SearchTextExtension.SEARCH_TEXT_COMMAND))) {
+        if (SEARCH_TEXT_COMMAND.equals(command)) {
             executeAndShowTextFind();
         }
-        // hide search dialog box
-        else if (command != null &amp;&amp; command.equals(
-                SearchTextExtension.DIALOG_SEARCH_HIDE_COMMAND)) {
-            hideSearchBox();
-        }
     }
 
     private class EnterAction extends AbstractAction {
@@ -282,22 +238,6 @@
         }
     }
 
-    private class DisplaySearchAction extends AbstractAction {
-        private static final long serialVersionUID = 1L;
-        public void actionPerformed(ActionEvent ev) {
-            if (searchPanel != null) {
-                resetTextToFind();
-                if (searchPanel.isVisible()) {
-                    searchPanel.setVisible(false);
-                    showSearch.setSelected(false);
-                } else {
-                    searchPanel.setVisible(true);
-                    showSearch.setSelected(true);
-                }
-            }
-        }
-    }
-    
     // DocumentListener method
     public void changedUpdate(DocumentEvent e) {
         // do nothing
@@ -313,11 +253,7 @@
         resetTextToFind();
     }
 
-    public void hideSearchBox() {
-        searchPanel.setVisible(false);
-    }
-    
-    public void resetTextToFind() {
+    void resetTextToFind() {
         if (newSearch) {
             log.debug("reset pass");
             // Reset search
@@ -330,22 +266,9 @@
             newSearch = false;
         }
     }
-    
-    public boolean isEnabled() {
-        return enabled ;
-    }
-    
-    public void setEnabled(boolean b) {
-        this.enabled = b;
-        label.setEnabled(b);
-        textToFindField.setEnabled(b);
-        findButton.setEnabled(b);
-        caseChkBox.setEnabled(b);
-        regexpChkBox.setEnabled(b);
-    }
-    
+
     private Pattern createPattern(String textToFind) {
-        // desactivate or not specials regexp char 
+        // desactivate or not specials regexp char
         String textToFindQ = Pattern.quote(textToFind);
         if (regexpChkBox.isSelected()) {
             textToFindQ = textToFind;



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885648 [2/2] - in /jakarta/jmeter/trunk/src: components/org/apache/jmeter/visualizers/ core/org/apache/jmeter/resources/ jorphan/org/apache/jorphan/gui/</title>
<author><name>sebb@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091201015140.B92C023889B5@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091201015140-B92C023889B5@eris-apache-org%3e</id>
<updated>2009-12-01T01:51:29Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java?rev=885648&amp;r1=885647&amp;r2=885648&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java (original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java Tue Dec  1 01:51:15 2009
@@ -9,64 +9,39 @@
  *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
  * See the License for the specific language governing permissions and
  * limitations under the License.
- *
  */
 
+/**
+ *
+ */
 package org.apache.jmeter.visualizers;
 
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Component;
 import java.awt.Dimension;
-import java.awt.Font;
-import java.awt.GridLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.io.ByteArrayInputStream;
-import java.io.StringWriter;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import javax.swing.BorderFactory;
-import javax.swing.Box;
-import javax.swing.BoxLayout;
-import javax.swing.ButtonGroup;
-import javax.swing.Icon;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+
+import javax.swing.ComboBoxModel;
+import javax.swing.DefaultComboBoxModel;
 import javax.swing.ImageIcon;
-import javax.swing.JCheckBox;
-import javax.swing.JEditorPane;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JRadioButton;
+import javax.swing.JComboBox;
 import javax.swing.JScrollPane;
 import javax.swing.JSplitPane;
 import javax.swing.JTabbedPane;
-import javax.swing.JTextArea;
-import javax.swing.JTextPane;
 import javax.swing.JTree;
-import javax.swing.ToolTipManager;
 import javax.swing.event.TreeSelectionEvent;
 import javax.swing.event.TreeSelectionListener;
-import javax.swing.text.BadLocationException;
-import javax.swing.text.ComponentView;
-import javax.swing.text.Document;
-import javax.swing.text.EditorKit;
-import javax.swing.text.Element;
-import javax.swing.text.Style;
-import javax.swing.text.StyleConstants;
-import javax.swing.text.StyledDocument;
-import javax.swing.text.View;
-import javax.swing.text.ViewFactory;
-import javax.swing.text.html.HTML;
-import javax.swing.text.html.HTMLEditorKit;
 import javax.swing.tree.DefaultMutableTreeNode;
 import javax.swing.tree.DefaultTreeCellRenderer;
 import javax.swing.tree.DefaultTreeModel;
@@ -74,127 +49,49 @@
 import javax.swing.tree.TreeSelectionModel;
 
 import org.apache.jmeter.assertions.AssertionResult;
+import org.apache.jmeter.gui.util.VerticalPanel;
 import org.apache.jmeter.samplers.Clearable;
 import org.apache.jmeter.samplers.SampleResult;
 import org.apache.jmeter.util.JMeterUtils;
-import org.apache.jmeter.util.XPathUtil;
 import org.apache.jmeter.visualizers.gui.AbstractVisualizer;
 import org.apache.jorphan.logging.LoggingManager;
-import org.apache.jorphan.util.JOrphanUtils;
+import org.apache.jorphan.reflect.ClassFinder;
 import org.apache.log.Logger;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.tidy.Tidy;
-import org.xml.sax.SAXException;
 
 /**
- * Allows the tester to view the textual response from sampling an Entry. This
- * also allows to "single step through" the sampling process via a nice
- * "Continue" button.
+ * Base for ViewResults
  *
- * Created 2001/07/25
  */
 public class ViewResultsFullVisualizer extends AbstractVisualizer
-        implements ActionListener, TreeSelectionListener, Clearable
-    {
+implements ActionListener, TreeSelectionListener, Clearable {
 
-    private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 7338676747296593842L;
 
     private static final Logger log = LoggingManager.getLoggerForClass();
 
-    // Maximum size that we will display
-    private static final int MAX_DISPLAY_SIZE =
-        JMeterUtils.getPropDefault("view.results.tree.max_size", 200 * 1024); // $NON-NLS-1$
-
-    // N.B. these are not multi-threaded, so don't make it static
-    private final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z"); // ISO format $NON-NLS-1$
-
-    private static final String NL = "\n"; // $NON-NLS-1$
-
-    private static final byte[] XML_PFX = "&lt;?xml ".getBytes(); // $NON-NLS-1$
-
     public static final Color SERVER_ERROR_COLOR = Color.red;
 
     public static final Color CLIENT_ERROR_COLOR = Color.blue;
 
     public static final Color REDIRECT_COLOR = Color.green;
 
-    private static final String TEXT_HTML = "text/html"; // $NON-NLS-1$
-
-    private static final String HTML_COMMAND = "html"; // $NON-NLS-1$
-
-    private static final String JSON_COMMAND = "json"; // $NON-NLS-1$
-
-    private static final String XML_COMMAND = "xml"; // $NON-NLS-1$
-
-    private static final String TEXT_COMMAND = "text"; // $NON-NLS-1$
-
-    private static final String STYLE_SERVER_ERROR = "ServerError"; // $NON-NLS-1$
-
-    private static final String STYLE_CLIENT_ERROR = "ClientError"; // $NON-NLS-1$
-
-    private static final String STYLE_REDIRECT = "Redirect"; // $NON-NLS-1$
-
-    private boolean textMode = true;
-
-    private static final String ESC_CHAR_REGEX = "\\\\[\"\\\\/bfnrt]|\\\\u[0-9A-Fa-f]{4}"; // $NON-NLS-1$
-
-    private static final String NORMAL_CHARACTER_REGEX = "[^\"\\\\]";  // $NON-NLS-1$
-
-    private static final String STRING_REGEX = "\"(" + ESC_CHAR_REGEX + "|" + NORMAL_CHARACTER_REGEX + ")*\""; // $NON-NLS-1$
-
-    // This 'other value' regex is deliberately weak, even accepting an empty string, to be useful when reporting malformed data.
-    private static final String OTHER_VALUE_REGEX = "[^\\{\\[\\]\\}\\,]*"; // $NON-NLS-1$
-
-    private static final String VALUE_OR_PAIR_REGEX = "((" + STRING_REGEX + "\\s*:)?\\s*(" + STRING_REGEX + "|" + OTHER_VALUE_REGEX + ")\\s*,?\\s*)"; // $NON-NLS-1$
-
-    private static final Pattern VALUE_OR_PAIR_PATTERN = Pattern.compile(VALUE_OR_PAIR_REGEX);
-
-    // set default command to Text
-    private String command = TEXT_COMMAND;
-
-    // Keep copies of the two editors needed
-    private static final EditorKit customisedEditor = new LocalHTMLEditorKit();
-
-    private static final EditorKit defaultHtmlEditor = JEditorPane.createEditorKitForContentType(TEXT_HTML);
+    private  JSplitPane mainSplit;
 
     private DefaultMutableTreeNode root;
 
     private DefaultTreeModel treeModel;
 
-    private JTextPane stats;
-
-    private JEditorPane results;
-
-    private JScrollPane resultsScrollPane;
-
-    private JPanel resultsPane;
-
-    private JLabel imageLabel;
-
-    private JTextArea sampleDataField;
-
-    private JPanel requestPane;
-
-    private JRadioButton textButton;
-
-    private JRadioButton htmlButton;
-
-    private JRadioButton jsonButton;
+    private JTree jTree;
 
-    private JRadioButton xmlButton;
+    private Component leftSide;
 
-    private JCheckBox downloadAll;
-    
-    private JLabel renderLabel;
+    private JTabbedPane rightSide;
 
-    private JTree jTree;
+    private JComboBox selectRenderPanel;
 
-    private JTabbedPane rightSide;
+    private int selectedTab;
 
-    private SearchTextExtension searchTextExtension;
-    
-    private JPanel searchPanel = null;
+    protected static final String COMBO_CHANGE_COMMAND = "change_combo"; // $NON-NLS-1$
 
     private static final ImageIcon imageSuccess = JMeterUtils.getImage(
             JMeterUtils.getPropDefault("viewResultsTree.success",  //$NON-NLS-1$
@@ -204,29 +101,31 @@
             JMeterUtils.getPropDefault("viewResultsTree.failure",  //$NON-NLS-1$
                     "icon_warning_sml.gif")); //$NON-NLS-1$
 
+    // Maximum size that we will display
+    private static final int MAX_DISPLAY_SIZE =
+        JMeterUtils.getPropDefault("view.results.tree.max_size", 200 * 1024); // $NON-NLS-1$
+
+    private ResultRenderer resultsRender = null;
+
+    private TreeSelectionEvent lastSelectionEvent;
+
+    /**
+     * Constructor
+     */
     public ViewResultsFullVisualizer() {
         super();
-        log.debug("Start : ViewResultsFullVisualizer1");
         init();
-        log.debug("End : ViewResultsFullVisualizer1");
-    }
-
-    public void add(SampleResult res) {
-        updateGui(res);
     }
 
-    public String getLabelResource() {
-        return "view_results_tree_title"; // $NON-NLS-1$
+    /** {@inheritDoc} */
+    public void add(SampleResult sample) {
+        updateGui(sample);
     }
 
     /**
      * Update the visualizer with new data.
      */
     private synchronized void updateGui(SampleResult res) {
-        log.debug("Start : updateGui1");
-        if (log.isDebugEnabled()) {
-            log.debug("updateGui1 : sample result - " + res);
-        }
         // Add sample
         DefaultMutableTreeNode currNode = new DefaultMutableTreeNode(res);
         treeModel.insertNodeInto(currNode, root, root.getChildCount());
@@ -246,7 +145,6 @@
         if (root.getChildCount() == 1) {
             jTree.expandPath(new TreePath(root));
         }
-        log.debug("End : updateGui1");
     }
 
     private void addSubResults(DefaultMutableTreeNode currNode, SampleResult res) {
@@ -278,314 +176,154 @@
         }
     }
 
-    /**
-     * Clears the visualizer.
-     */
-    public synchronized void clearData() {
-        log.debug("Start : clear1");
-
-        if (log.isDebugEnabled()) {
-            log.debug("clear1 : total child - " + root.getChildCount());
-        }
+    /** {@inheritDoc} */
+    public void clearData() {
         while (root.getChildCount() &gt; 0) {
             // the child to be removed will always be 0 'cos as the nodes are
             // removed the nth node will become (n-1)th
             treeModel.removeNodeFromParent((DefaultMutableTreeNode) root.getChildAt(0));
         }
+        resultsRender.clearData();
+    }
 
-        results.setText("");// Response Data // $NON-NLS-1$
-        sampleDataField.setText("");// Request Data // $NON-NLS-1$
-        log.debug("End : clear1");
+    /** {@inheritDoc} */
+    public String getLabelResource() {
+        return "view_results_tree_title"; // $NON-NLS-1$
     }
 
     /**
-     * Returns the description of this visualizer.
-     *
-     * @return description of this visualizer
+     * Initialize this visualizer
      */
-    @Override
-    public String toString() {
-        String desc = JMeterUtils.getResString("view_results_desc"); //$NON-NLS-1$
+    protected void init() {
+        log.debug("init() - pass");
+        setLayout(new BorderLayout(0, 5));
+        setBorder(makeBorder());
+        add(makeTitlePanel(), BorderLayout.NORTH);
 
-        if (log.isDebugEnabled()) {
-            log.debug("toString1 : Returning description - " + desc);
-        }
-        return desc;
+        leftSide = createLeftPanel();
+        // Prepare the common tab
+        rightSide = new JTabbedPane();
+
+        // Create the split pane
+        mainSplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftSide, rightSide);
+        add(mainSplit, BorderLayout.CENTER);
+        // init right side with first render
+        resultsRender.setRightSide(rightSide);
+        resultsRender.init();
     }
 
-    /**
-     * Sets the right pane to correspond to the selected node of the left tree.
-     */
+    /** {@inheritDoc} */
     public void valueChanged(TreeSelectionEvent e) {
-        log.debug("Start : valueChanged1");
+        lastSelectionEvent = e;
         DefaultMutableTreeNode node = (DefaultMutableTreeNode) jTree.getLastSelectedPathComponent();
 
-        if (log.isDebugEnabled()) {
-            log.debug("valueChanged : selected node - " + node);
-        }
-
-        StyledDocument statsDoc = stats.getStyledDocument();
-        try {
-            statsDoc.remove(0, statsDoc.getLength());
-            sampleDataField.setText(""); // $NON-NLS-1$
-            results.setText(""); // $NON-NLS-1$
-            if (node != null) {
-                Object userObject = node.getUserObject();
-                if(userObject instanceof SampleResult) {
-                    SampleResult res = (SampleResult) userObject;
-
-                    // We are displaying a SampleResult
-                    setupTabPaneForSampleResult();
-
-                    if (log.isDebugEnabled()) {
-                        log.debug("valueChanged1 : sample result - " + res);
-                        log.debug("valueChanged1 : load time - " + res.getTime());
-                    }
-
-                    String sd = res.getSamplerData();
-                    if (sd != null) {
-                        String rh = res.getRequestHeaders();
-                        if (rh != null) {
-                            StringBuilder sb = new StringBuilder(sd.length() + rh.length()+20);
-                            sb.append(sd);
-                            sb.append("\n"); //$NON-NLS-1$
-                            sb.append(JMeterUtils.getResString("view_results_request_headers")); //$NON-NLS-1$
-                            sb.append("\n"); //$NON-NLS-1$
-                            sb.append(rh);
-                            sd = sb.toString();
-                        }
-                        sampleDataField.setText(sd);
+        if (node != null) {
+            // to restore last tab used
+            if (rightSide.getTabCount() &gt; selectedTab) {
+                resultsRender.setLastSelectedTab(rightSide.getSelectedIndex());
+            }
+            Object userObject = node.getUserObject();
+            resultsRender.setSamplerResult(userObject);
+            resultsRender.setupTabPane();
+            // display a SampleResult
+            if (userObject instanceof SampleResult) {
+                SampleResult sampleResult = (SampleResult) userObject;
+                if ((SampleResult.TEXT).equals(sampleResult.getDataType())){
+                    resultsRender.renderResult(sampleResult);
+                } else {
+                    byte[] responseBytes = sampleResult.getResponseData();
+                    if (responseBytes != null) {
+                        resultsRender.renderImage(sampleResult);
                     }
-
-                    StringBuilder statsBuff = new StringBuilder(200);
-                    statsBuff.append(JMeterUtils.getResString("view_results_thread_name")).append(res.getThreadName()).append(NL); //$NON-NLS-1$
-                    String startTime = dateFormat.format(new Date(res.getStartTime()));
-                    statsBuff.append(JMeterUtils.getResString("view_results_sample_start")).append(startTime).append(NL); //$NON-NLS-1$
-                    statsBuff.append(JMeterUtils.getResString("view_results_load_time")).append(res.getTime()).append(NL); //$NON-NLS-1$
-                    statsBuff.append(JMeterUtils.getResString("view_results_latency")).append(res.getLatency()).append(NL); //$NON-NLS-1$
-                    statsBuff.append(JMeterUtils.getResString("view_results_size_in_bytes")).append(res.getBytes()).append(NL); //$NON-NLS-1$
-                    statsBuff.append(JMeterUtils.getResString("view_results_sample_count")).append(res.getSampleCount()).append(NL); //$NON-NLS-1$
-                    statsBuff.append(JMeterUtils.getResString("view_results_error_count")).append(res.getErrorCount()).append(NL); //$NON-NLS-1$
-                    statsDoc.insertString(statsDoc.getLength(), statsBuff.toString(), null);
-                    statsBuff = new StringBuilder(); //reset for reuse
-
-                    String responseCode = res.getResponseCode();
-                    if (log.isDebugEnabled()) {
-                        log.debug("valueChanged1 : response code - " + responseCode);
-                    }
-                    int responseLevel = 0;
-                    if (responseCode != null) {
-                        try {
-                            responseLevel = Integer.parseInt(responseCode) / 100;
-                        } catch (NumberFormatException numberFormatException) {
-                            // no need to change the foreground color
-                        }
-                    }
-
-                    Style style = null;
-                    switch (responseLevel) {
-                    case 3:
-                        style = statsDoc.getStyle(STYLE_REDIRECT);
-                        break;
-                    case 4:
-                        style = statsDoc.getStyle(STYLE_CLIENT_ERROR);
-                        break;
-                    case 5:
-                        style = statsDoc.getStyle(STYLE_SERVER_ERROR);
-                        break;
-                    }
-
-                    statsBuff.append(JMeterUtils.getResString("view_results_response_code")).append(responseCode).append(NL); //$NON-NLS-1$
-                    statsDoc.insertString(statsDoc.getLength(), statsBuff.toString(), style);
-                    statsBuff = new StringBuilder(100); //reset for reuse
-
-                    // response message label
-                    String responseMsgStr = res.getResponseMessage();
-
-                    if (log.isDebugEnabled()) {
-                        log.debug("valueChanged1 : response message - " + responseMsgStr);
-                    }
-                    statsBuff.append(JMeterUtils.getResString("view_results_response_message")).append(responseMsgStr).append(NL); //$NON-NLS-1$
-
-                    statsBuff.append(NL);
-                    statsBuff.append(JMeterUtils.getResString("view_results_response_headers")).append(NL); //$NON-NLS-1$
-                    statsBuff.append(res.getResponseHeaders()).append(NL);
-                    statsBuff.append(NL);
-                    final String samplerClass = res.getClass().getName();
-                    statsBuff.append(samplerClass.substring(1+samplerClass.lastIndexOf('.'))).append(" " + JMeterUtils.getResString("view_results_fields")).append(NL); //$NON-NLS-1$
-                    statsBuff.append("ContentType: ").append(res.getContentType()).append(NL);
-                    statsBuff.append("DataEncoding: ").append(res.getDataEncodingNoDefault()).append(NL);
-                    statsDoc.insertString(statsDoc.getLength(), statsBuff.toString(), null);
-                    statsBuff = null; // Done
-
-                    // Reset search
-                    searchTextExtension.resetTextToFind();
-                    
-                    // get the text response and image icon
-                    // to determine which is NOT null
-                    if ((SampleResult.TEXT).equals(res.getDataType())) // equals(null) is OK
-                    {
-                        String response = getResponseAsString(res);
-                        if (command.equals(TEXT_COMMAND)) {
-                            showTextResponse(response);
-                        } else if (command.equals(HTML_COMMAND)) {
-                            showRenderedResponse(response, res);
-                        } else if (command.equals(JSON_COMMAND)) {
-                            showRenderJSONResponse(response);
-                        } else if (command.equals(XML_COMMAND)) {
-                            showRenderXMLResponse(res);
-                        }
-                        if (!searchTextExtension.isEnabled()) {
-                            searchTextExtension.setEnabled(true);
-                        }
-                    } else {
-                        byte[] responseBytes = res.getResponseData();
-                        if (responseBytes != null) {
-                            showImage(new ImageIcon(responseBytes)); //TODO implement other non-text types
-                            if (searchTextExtension.isEnabled()) {
-                                searchTextExtension.setEnabled(false);
-                            }
-                        }
-                    }
-                }
-                else if(userObject instanceof AssertionResult) {
-                    AssertionResult res = (AssertionResult) userObject;
-
-                    // We are displaying an AssertionResult
-                    setupTabPaneForAssertionResult();
-
-                    if (log.isDebugEnabled()) {
-                        log.debug("valueChanged1 : sample result - " + res);
-                    }
-
-                    StringBuilder statsBuff = new StringBuilder(100);
-                    statsBuff.append(JMeterUtils.getResString("view_results_assertion_error")).append(res.isError()).append(NL); //$NON-NLS-1$
-                    statsBuff.append(JMeterUtils.getResString("view_results_assertion_failure")).append(res.isFailure()).append(NL); //$NON-NLS-1$
-                    statsBuff.append(JMeterUtils.getResString("view_results_assertion_failure_message")).append(res.getFailureMessage()).append(NL); //$NON-NLS-1$
-                    statsDoc.insertString(statsDoc.getLength(), statsBuff.toString(), null);
-                    statsBuff = null;
                 }
             }
-        } catch (BadLocationException exc) {
-            log.error("Error setting statistics text", exc);
-            stats.setText("");
         }
-        log.debug("End : valueChanged1");
     }
 
-    private void showImage(Icon image) {
-        imageLabel.setIcon(image);
-        resultsScrollPane.setViewportView(imageLabel);
-        setEnabledButtons(false);
-    }
+    private Component createLeftPanel() {
+        SampleResult rootSampleResult = new SampleResult();
+        rootSampleResult.setSampleLabel("Root");
+        rootSampleResult.setSuccessful(true);
+        root = new DefaultMutableTreeNode(rootSampleResult);
+
+        treeModel = new DefaultTreeModel(root);
+        jTree = new JTree(treeModel);
+        jTree.setCellRenderer(new ResultsNodeRenderer());
+        jTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
+        jTree.addTreeSelectionListener(this);
+        jTree.setRootVisible(false);
+        jTree.setShowsRootHandles(true);
 
-    private void showTextResponse(String response) {
-        results.setContentType("text/plain"); // $NON-NLS-1$
-        results.setText(response == null ? "" : response); // $NON-NLS-1$
-        results.setCaretPosition(0);
-        resultsScrollPane.setViewportView(results);
+        JScrollPane treePane = new JScrollPane(jTree);
+        treePane.setPreferredSize(new Dimension(200, 300));
 
-        setEnabledButtons(true);
+        VerticalPanel leftPane = new VerticalPanel();
+        leftPane.add(treePane, BorderLayout.CENTER);
+        leftPane.add(createComboRender(), BorderLayout.SOUTH);
+
+        return leftPane;
     }
 
-    // It might be useful also to make this available in the 'Request' tab, for
-    // when posting JSON.
-    private static String prettyJSON(String json) {
-        StringBuilder pretty = new StringBuilder(json.length() * 2); // Educated guess
-
-        final String tab = ":   "; // $NON-NLS-1$
-        StringBuilder index = new StringBuilder();
-        String nl = ""; // $NON-NLS-1$
-
-        Matcher valueOrPair = VALUE_OR_PAIR_PATTERN.matcher(json);
-
-        boolean misparse = false;
-
-        for (int i = 0; i &lt; json.length(); ) {
-            final char currentChar = json.charAt(i);
-            if ((currentChar == '{') || (currentChar == '[')) {
-                pretty.append(nl).append(index).append(currentChar);
-                i++;
-                index.append(tab);
-                misparse = false;
-            }
-            else if ((currentChar == '}') || (currentChar == ']')) {
-                if (index.length() &gt; 0) {
-                    index.delete(0, tab.length());
-                }
-                pretty.append(nl).append(index).append(currentChar);
-                i++;
-                int j = i;
-                while ((j &lt; json.length()) &amp;&amp; Character.isWhitespace(json.charAt(j))) {
-                    j++;
-                }
-                if ((j &lt; json.length()) &amp;&amp; (json.charAt(j) == ',')) {
-                    pretty.append(","); // $NON-NLS-1$
-                    i=j+1;
-                }
-                misparse = false;
-            }
-            else if (valueOrPair.find(i) &amp;&amp; valueOrPair.group().length() &gt; 0) {
-                pretty.append(nl).append(index).append(valueOrPair.group());
-                i=valueOrPair.end();
-                misparse = false;
-            }
-            else {
-                if (!misparse) {
-                    pretty.append(nl).append("- Parse failed from:");
-                }
-                pretty.append(currentChar);
-                i++;
-                misparse = true;
+    /**
+     * Create the drop-down list to changer render
+     * @return List of all render (implement ResultsRender)
+     */
+    private Component createComboRender() {// TODO move to bottom of renderer
+        ComboBoxModel nodesModel = new DefaultComboBoxModel();
+        // drop-down list for renderer
+        selectRenderPanel = new JComboBox(nodesModel);
+        selectRenderPanel.setActionCommand(COMBO_CHANGE_COMMAND);
+        selectRenderPanel.addActionListener(this);
+
+        // if no results render in jmeter.properties, load Standard (default)
+        List&lt;String&gt; classesToAdd = Collections.&lt;String&gt;emptyList();
+        try {
+            classesToAdd = ClassFinder.findClassesThatExtend(ResultRenderer.class);
+        } catch (IOException e1) {
+            // ignored
+        }
+        for (String clazz : classesToAdd) {
+            try {
+                // Instantiate render classes
+                final ResultRenderer renderer = (ResultRenderer) Class.forName(clazz).newInstance();
+                renderer.setBackgroundColor(getBackground());
+                selectRenderPanel.addItem(renderer);
+            } catch (Exception e) {
+                log.warn("Error in load result render:" + clazz, e);
             }
-            nl = "\n"; // $NON-NLS-1$
         }
-        return pretty.toString();
+        return selectRenderPanel;
     }
 
-    private void showRenderJSONResponse(String response) {
-        results.setContentType("text/plain"); // $NON-NLS-1$
-        results.setText(response == null ? "" : prettyJSON(response));
-        results.setCaretPosition(0);
-        resultsScrollPane.setViewportView(results);
+    /** {@inheritDoc} */
+    public void actionPerformed(ActionEvent event) {
+        String command = event.getActionCommand();
+        if (COMBO_CHANGE_COMMAND.equals(command)) {
+            JComboBox jcb = (JComboBox) event.getSource();
 
-        setEnabledButtons(true);
-    }
+            if (jcb != null) {
+                resultsRender = (ResultRenderer) jcb.getSelectedItem();
+                if (rightSide != null) {
+                    // to restore last selected tab (better user-friendly)
+                    selectedTab = rightSide.getSelectedIndex();
+                    // Remove old right side
+                    mainSplit.remove(rightSide);
 
-    private void showRenderXMLResponse(SampleResult res) {
-        results.setContentType("text/xml"); // $NON-NLS-1$
-        results.setCaretPosition(0);
-        byte[] source = res.getResponseData();
-        final ByteArrayInputStream baIS = new ByteArrayInputStream(source);
-        for(int i=0; i&lt;source.length-XML_PFX.length; i++){
-            if (JOrphanUtils.startsWith(source, XML_PFX, i)){
-                baIS.skip(i);// Skip the leading bytes (if any)
-                break;
+                    // create and add a new right side
+                    rightSide = new JTabbedPane();
+                    mainSplit.add(rightSide);
+                    resultsRender.setRightSide(rightSide);
+                    resultsRender.setLastSelectedTab(selectedTab);
+                    log.debug("selectedTab=" + selectedTab);
+                    resultsRender.init();
+                    // To display current sampler result before change
+                    this.valueChanged(lastSelectionEvent);
+                }
             }
         }
-        Component view = results;
-
-        // there is also a javax.swing.text.Document class.
-        org.w3c.dom.Document document = null;
-
-        StringWriter sw = new StringWriter();
-        Tidy tidy = XPathUtil.makeTidyParser(true, true, true, sw);
-        document = tidy.parseDOM(baIS, null);
-        document.normalize();
-        if (tidy.getParseErrors() &gt; 0) {
-            showErrorMessageDialog(sw.toString(),
-                    "Tidy: " + tidy.getParseErrors() + " errors, " + tidy.getParseWarnings() + " warnings",
-                    JOptionPane.WARNING_MESSAGE);
-        }
-
-        JPanel domTreePanel = new DOMTreePanel(document);
-        view = domTreePanel;
-        resultsScrollPane.setViewportView(view);
-        setEnabledButtons(true);
     }
 
-    private static String getResponseAsString(SampleResult res) {
-
+    public static String getResponseAsString(SampleResult res) {
         String response = null;
         if ((SampleResult.TEXT).equals(res.getDataType())) {
             // Showing large strings can be VERY costly, so we will avoid
@@ -608,302 +346,21 @@
         return response;
     }
 
-    /**
-     * Display the response as text or as rendered HTML. Change the text on the
-     * button appropriate to the current display.
-     *
-     * @param e
-     *            the ActionEvent being processed
-     */
-    public void actionPerformed(ActionEvent e) {
-        command = e.getActionCommand();
-
-        if (command != null
-                &amp;&amp; (command.equals(TEXT_COMMAND) || command.equals(HTML_COMMAND)
-                 || command.equals(JSON_COMMAND) || command.equals(XML_COMMAND))) {
-
-            textMode = command.equals(TEXT_COMMAND);
-
-            DefaultMutableTreeNode node = (DefaultMutableTreeNode) jTree.getLastSelectedPathComponent();
-
-            if (node == null) {
-                results.setText("");
-                return;
-            }
-            searchTextExtension.resetTextToFind();
-            
-            SampleResult res = (SampleResult) node.getUserObject();
-            String response = getResponseAsString(res);
-
-            if (command.equals(TEXT_COMMAND)) {
-                showTextResponse(response);
-            } else if (command.equals(HTML_COMMAND)) {
-                showRenderedResponse(response, res);
-            } else if (command.equals(JSON_COMMAND)) {
-                showRenderJSONResponse(response);
-            } else if (command.equals(XML_COMMAND)) {
-                showRenderXMLResponse(res);
-            }
-        }
-    }
-
-    private void showRenderedResponse(String response, SampleResult res) {
-        if (response == null) {
-            results.setText("");
-            return;
-        }
-
-        int htmlIndex = response.indexOf("&lt;HTML"); // could be &lt;HTML lang=""&gt; // $NON-NLS-1$
-
-        // Look for a case variation
-        if (htmlIndex &lt; 0) {
-            htmlIndex = response.indexOf("&lt;html"); // ditto // $NON-NLS-1$
-        }
-
-        // If we still can't find it, just try using all of the text
-        if (htmlIndex &lt; 0) {
-            htmlIndex = 0;
-        }
-
-        String html = response.substring(htmlIndex);
-
-        /*
-         * To disable downloading and rendering of images and frames, enable the
-         * editor-kit. The Stream property can then be
-         */
-
-        // Must be done before setContentType
-        results.setEditorKitForContentType(TEXT_HTML, downloadAll.isSelected() ? defaultHtmlEditor : customisedEditor);
-
-        results.setContentType(TEXT_HTML);
-
-        if (downloadAll.isSelected()) {
-            // Allow JMeter to render frames (and relative images)
-            // Must be done after setContentType [Why?]
-            results.getDocument().putProperty(Document.StreamDescriptionProperty, res.getURL());
-        }
-
-        /*
-         * Get round problems parsing &lt;META http-equiv='content-type'
-         * content='text/html; charset=utf-8'&gt; See
-         * http://issues.apache.org/bugzilla/show_bug.cgi?id=23315
-         *
-         * Is this due to a bug in Java?
-         */
-        results.getDocument().putProperty("IgnoreCharsetDirective", Boolean.TRUE); // $NON-NLS-1$
-
-        results.setText(html);
-        results.setCaretPosition(0);
-        resultsScrollPane.setViewportView(results);
-
-        setEnabledButtons(true);
-    }
-
-    private Component createHtmlOrTextPane() {
-        ButtonGroup group = new ButtonGroup();
-        Font font = new Font("SansSerif", Font.PLAIN, 10);
-        Font fontBold = new Font("SansSerif", Font.BOLD, 10);
-
-        renderLabel = new JLabel(JMeterUtils
-                .getResString("view_results_render")); // $NON-NLS-1$
-        renderLabel.setFont(fontBold);
-
-        textButton = new JRadioButton(JMeterUtils.getResString("view_results_render_text")); // $NON-NLS-1$
-        textButton.setFont(font);
-        textButton.setActionCommand(TEXT_COMMAND);
-        textButton.addActionListener(this);
-        textButton.setSelected(textMode);
-        group.add(textButton);
-
-        htmlButton = new JRadioButton(JMeterUtils.getResString("view_results_render_html")); // $NON-NLS-1$
-        htmlButton.setFont(font);
-        htmlButton.setActionCommand(HTML_COMMAND);
-        htmlButton.addActionListener(this);
-        htmlButton.setSelected(!textMode);
-        group.add(htmlButton);
-
-        jsonButton = new JRadioButton(JMeterUtils.getResString("view_results_render_json")); // $NON-NLS-1$
-        jsonButton.setFont(font);
-        jsonButton.setActionCommand(JSON_COMMAND);
-        jsonButton.addActionListener(this);
-        jsonButton.setSelected(!textMode);
-        group.add(jsonButton);
-
-        xmlButton = new JRadioButton(JMeterUtils.getResString("view_results_render_xml")); // $NON-NLS-1$
-        xmlButton.setFont(font);
-        xmlButton.setActionCommand(XML_COMMAND);
-        xmlButton.addActionListener(this);
-        xmlButton.setSelected(!textMode);
-        group.add(xmlButton);
-
-        downloadAll = new JCheckBox(JMeterUtils.getResString("view_results_render_embedded")); // $NON-NLS-1$
-        downloadAll.setFont(font);
-        
-        JPanel pane = new JPanel();
-        pane.setLayout(new BoxLayout(pane, BoxLayout.X_AXIS));
-        pane.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3));
-        pane.add(searchTextExtension.createShowSearchPanel());
-        pane.add(Box.createRigidArea(new Dimension(30, 0)));
-        pane.add(renderLabel);
-        pane.add(textButton);
-        pane.add(htmlButton);
-        pane.add(xmlButton);
-        pane.add(jsonButton);
-        pane.add(downloadAll);
-        
-        return pane;
-    }
-
-    /**
-     * Initialize this visualizer
-     */
-    private void init() {
-        setLayout(new BorderLayout(0, 5));
-        setBorder(makeBorder());
-
-        add(makeTitlePanel(), BorderLayout.NORTH);
-
-        Component leftSide = createLeftPanel();
-        rightSide = new JTabbedPane();
-        // Add the common tab
-        rightSide.addTab(JMeterUtils.getResString("view_results_tab_sampler"), createResponseMetadataPanel()); // $NON-NLS-1$
-        // Create the panels for the other tabs
-        requestPane = createRequestPanel();
-        resultsPane = createResponseDataPanel();
-
-        JSplitPane mainSplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftSide, rightSide);
-        add(mainSplit, BorderLayout.CENTER);
-        
-        searchTextExtension.init(resultsPane);
-    }
-
-    private void setupTabPaneForSampleResult() {
-        // Set the title for the first tab
-        rightSide.setTitleAt(0, JMeterUtils.getResString("view_results_tab_sampler")); //$NON-NLS-1$
-        // Add the other tabs if not present
-        if(rightSide.indexOfTab(JMeterUtils.getResString("view_results_tab_request")) &lt; 0) { // $NON-NLS-1$
-            rightSide.addTab(JMeterUtils.getResString("view_results_tab_request"), requestPane); // $NON-NLS-1$
-        }
-        if(rightSide.indexOfTab(JMeterUtils.getResString("view_results_tab_response")) &lt; 0) { // $NON-NLS-1$
-            rightSide.addTab(JMeterUtils.getResString("view_results_tab_response"), resultsPane); // $NON-NLS-1$
-        }
-    }
-
-    private void setupTabPaneForAssertionResult() {
-        // Set the title for the first tab
-        rightSide.setTitleAt(0, JMeterUtils.getResString("view_results_tab_assertion")); //$NON-NLS-1$
-        // Remove the other tabs if present
-        int requestTabIndex = rightSide.indexOfTab(JMeterUtils.getResString("view_results_tab_request")); // $NON-NLS-1$
-        if(requestTabIndex &gt;= 0) {
-            rightSide.removeTabAt(requestTabIndex);
-        }
-        int responseTabIndex = rightSide.indexOfTab(JMeterUtils.getResString("view_results_tab_response")); // $NON-NLS-1$
-        if(responseTabIndex &gt;= 0) {
-            rightSide.removeTabAt(responseTabIndex);
-        }
-    }
-
-    private Component createLeftPanel() {
-        SampleResult rootSampleResult = new SampleResult();
-        rootSampleResult.setSampleLabel("Root");
-        rootSampleResult.setSuccessful(true);
-        root = new DefaultMutableTreeNode(rootSampleResult);
-
-        treeModel = new DefaultTreeModel(root);
-        jTree = new JTree(treeModel);
-        jTree.setCellRenderer(new ResultsNodeRenderer());
-        jTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
-        jTree.addTreeSelectionListener(this);
-        jTree.setRootVisible(false);
-        jTree.setShowsRootHandles(true);
-
-        JScrollPane treePane = new JScrollPane(jTree);
-        treePane.setPreferredSize(new Dimension(200, 300));
-        return treePane;
-    }
-
-    private Component createResponseMetadataPanel() {
-        stats = new JTextPane();
-        stats.setEditable(false);
-        stats.setBackground(getBackground());
-
-        // Add styles to use for different types of status messages
-        StyledDocument doc = (StyledDocument) stats.getDocument();
-
-        Style style = doc.addStyle(STYLE_REDIRECT, null);
-        StyleConstants.setForeground(style, REDIRECT_COLOR);
-
-        style = doc.addStyle(STYLE_CLIENT_ERROR, null);
-        StyleConstants.setForeground(style, CLIENT_ERROR_COLOR);
-
-        style = doc.addStyle(STYLE_SERVER_ERROR, null);
-        StyleConstants.setForeground(style, SERVER_ERROR_COLOR);
-
-        JScrollPane pane = makeScrollPane(stats);
-        pane.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
-        return pane;
-    }
-
-    private JPanel createRequestPanel() {
-        sampleDataField = new JTextArea();
-        sampleDataField.setEditable(false);
-        sampleDataField.setLineWrap(true);
-        sampleDataField.setWrapStyleWord(true);
-
-        JPanel pane = new JPanel(new BorderLayout(0, 5));
-        pane.add(makeScrollPane(sampleDataField));
-        return pane;
-    }
-
-    private JPanel createResponseDataPanel() {
-        results = new JEditorPane();
-        results.setEditable(false);
-
-        resultsScrollPane = makeScrollPane(results);
-        imageLabel = new JLabel();
-
-        // Add search text extension
-        searchTextExtension = new SearchTextExtension();
-        searchPanel = searchTextExtension.createSearchTextPanel();
-        searchTextExtension.setResults(results);
-        searchPanel.setVisible(false);
-        JPanel panelSouth = new JPanel(new BorderLayout());
-        panelSouth.add(createHtmlOrTextPane(), BorderLayout.CENTER);
-        panelSouth.add(searchPanel, BorderLayout.SOUTH);
-        
-        JPanel panel = new JPanel(new BorderLayout());
-        panel.add(resultsScrollPane, BorderLayout.CENTER);
-        panel.add(panelSouth, BorderLayout.SOUTH);
+    private static class ResultsNodeRenderer extends DefaultTreeCellRenderer {
 
-        return panel;
-    }
+        private static final long serialVersionUID = 4159626601097711565L;
 
-    private void setEnabledButtons(boolean b) {
-        renderLabel.setEnabled(b); 
-        textButton.setEnabled(b);
-        htmlButton.setEnabled(b);
-        jsonButton.setEnabled(b);
-        xmlButton.setEnabled(b);
-        if (b &amp;&amp; command.equals(HTML_COMMAND)) {
-            downloadAll.setEnabled(b);
-        } else {
-            downloadAll.setEnabled(false);
-        }
-    }
-
-    private static class ResultsNodeRenderer extends DefaultTreeCellRenderer {
         @Override
-        public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded,
-                boolean leaf, int row, boolean focus) {
+        public Component getTreeCellRendererComponent(JTree tree, Object value,
+                boolean sel, boolean expanded, boolean leaf, int row, boolean focus) {
             super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, focus);
             boolean failure = true;
             Object userObject = ((DefaultMutableTreeNode) value).getUserObject();
-            if(userObject instanceof SampleResult) {
+            if (userObject instanceof SampleResult) {
                 failure = !(((SampleResult) userObject).isSuccessful());
-            }
-            else if(userObject instanceof AssertionResult) {
+            } else if (userObject instanceof AssertionResult) {
                 AssertionResult assertion = (AssertionResult) userObject;
-                failure =  assertion.isError() || assertion.isFailure();
+                failure = assertion.isError() || assertion.isFailure();
             }
 
             // Set the status for the node
@@ -917,154 +374,4 @@
         }
     }
 
-    private static class LocalHTMLEditorKit extends HTMLEditorKit {
-
-        private static final ViewFactory defaultFactory = new LocalHTMLFactory();
-
-        @Override
-        public ViewFactory getViewFactory() {
-            return defaultFactory;
-        }
-
-        private static class LocalHTMLFactory extends javax.swing.text.html.HTMLEditorKit.HTMLFactory {
-            /*
-             * Provide dummy implementations to suppress download and display of
-             * related resources: - FRAMEs - IMAGEs TODO create better dummy
-             * displays TODO suppress LINK somehow
-             */
-            @Override
-            public View create(Element elem) {
-                Object o = elem.getAttributes().getAttribute(StyleConstants.NameAttribute);
-                if (o instanceof HTML.Tag) {
-                    HTML.Tag kind = (HTML.Tag) o;
-                    if (kind == HTML.Tag.FRAME) {
-                        return new ComponentView(elem);
-                    } else if (kind == HTML.Tag.IMG) {
-                        return new ComponentView(elem);
-                    }
-                }
-                return super.create(elem);
-            }
-        }
-    }
-
-    /**
-     *
-     * A Dom tree panel for to display response as tree view author &lt;a
-     * href="mailto:d.maung@mdl.com"&gt;Dave Maung&lt;/a&gt; TODO implement to find any
-     * nodes in the tree using TreePath.
-     *
-     */
-    private static class DOMTreePanel extends JPanel {
-
-        private JTree domJTree;
-
-        public DOMTreePanel(org.w3c.dom.Document document) {
-            super(new GridLayout(1, 0));
-            try {
-                Node firstElement = getFirstElement(document);
-                DefaultMutableTreeNode top = new XMLDefaultMutableTreeNode(firstElement);
-                domJTree = new JTree(top);
-
-                domJTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
-                domJTree.setShowsRootHandles(true);
-                JScrollPane domJScrollPane = new JScrollPane(domJTree);
-                domJTree.setAutoscrolls(true);
-                this.add(domJScrollPane);
-                ToolTipManager.sharedInstance().registerComponent(domJTree);
-                domJTree.setCellRenderer(new DomTreeRenderer());
-            } catch (SAXException e) {
-                log.warn("", e);
-            }
-
-        }
-
-        /**
-         * Skip all DTD nodes, all prolog nodes. They dont support in tree view
-         * We let user to insert them however in DOMTreeView, we dont display it
-         *
-         * @param root
-         * @return
-         */
-        private Node getFirstElement(Node parent) {
-            NodeList childNodes = parent.getChildNodes();
-            Node toReturn = parent; // Must return a valid node, or may generate an NPE
-            for (int i = 0; i &lt; childNodes.getLength(); i++) {
-                Node childNode = childNodes.item(i);
-                toReturn = childNode;
-                if (childNode.getNodeType() == Node.ELEMENT_NODE){
-                    break;
-                }
-
-            }
-            return toReturn;
-        }
-
-        /**
-         * This class is to view as tooltext. This is very useful, when the
-         * contents has long string and does not fit in the view. it will also
-         * automatically wrap line for each 100 characters since tool tip
-         * support html. author &lt;a href="mailto:d.maung@mdl.com"&gt;Dave Maung&lt;/a&gt;
-         */
-        private static class DomTreeRenderer extends DefaultTreeCellRenderer {
-            @Override
-            public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded,
-                    boolean leaf, int row, boolean phasFocus) {
-                super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, phasFocus);
-
-                DefaultMutableTreeNode valueTreeNode = (DefaultMutableTreeNode) value;
-                setToolTipText(getHTML(valueTreeNode.toString(), "&lt;br&gt;", 100)); // $NON-NLS-1$
-                return this;
-            }
-
-            /**
-             * get the html
-             *
-             * @param str
-             * @param separator
-             * @param maxChar
-             * @return
-             */
-            private String getHTML(String str, String separator, int maxChar) {
-                StringBuilder strBuf = new StringBuilder("&lt;html&gt;&lt;body bgcolor=\"yellow\"&gt;&lt;b&gt;"); // $NON-NLS-1$
-                char[] chars = str.toCharArray();
-                for (int i = 0; i &lt; chars.length; i++) {
-
-                    if (i % maxChar == 0 &amp;&amp; i != 0) {
-                        strBuf.append(separator);
-                    }
-                    strBuf.append(encode(chars[i]));
-
-                }
-                strBuf.append("&lt;/b&gt;&lt;/body&gt;&lt;/html&gt;"); // $NON-NLS-1$
-                return strBuf.toString();
-
-            }
-
-            private String encode(char c) {
-                String toReturn = String.valueOf(c);
-                switch (c) {
-                case '&lt;': // $NON-NLS-1$
-                    toReturn = "&amp;lt;"; // $NON-NLS-1$
-                    break;
-                case '&gt;': // $NON-NLS-1$
-                    toReturn = "&amp;gt;"; // $NON-NLS-1$
-                    break;
-                case '\'': // $NON-NLS-1$
-                    toReturn = "&amp;apos;"; // $NON-NLS-1$
-                    break;
-                case '\"': // $NON-NLS-1$
-                    toReturn = "&amp;quot;"; // $NON-NLS-1$
-                    break;
-
-                }
-                return toReturn;
-            }
-        }
-    }
-
-    private static void showErrorMessageDialog(String message, String title, int messageType) {
-        JOptionPane.showMessageDialog(null, message, title, messageType);
-    }
-
 }

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=885648&amp;r1=885647&amp;r2=885648&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties Tue Dec  1 01:51:15 2009
@@ -624,6 +624,10 @@
 regexfunc_param_4=Between text.  If ALL is selected, the between text will be used to generate the results ([""])
 regexfunc_param_5=Default text.  Used instead of the template if the regular expression finds no matches ([""])
 regexfunc_param_7=Input variable name containing the text to be parsed ([previous sample])
+regexp_tester_button_test=Test
+regexp_tester_field=Regular expression\:
+regexp_render_no_text=Data response result isn't text.
+regexp_tester_title=RegExp Tester
 remote_error_init=Error initialising remote server
 remote_error_starting=Error starting remote server
 remote_exit=Remote Exit
@@ -895,8 +899,8 @@
 view_results_latency=Latency: 
 view_results_load_time=Load time: 
 view_results_render=Render: 
-view_results_render_embedded=Download embedded resources
 view_results_render_html=HTML
+view_results_render_html_embedded=HTML (download embedded resources)
 view_results_render_json=JSON
 view_results_render_text=Text
 view_results_render_xml=XML

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties?rev=885648&amp;r1=885647&amp;r2=885648&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties Tue Dec  1 01:51:15 2009
@@ -528,6 +528,10 @@
 regexfunc_param_3=Quelle correspondance utiliser. Un entier 1 ou plus grand, RAND pour indiquer que JMeter doit choisir al\u00E9atoirement , A d\u00E9cimal, ou ALL indique que toutes les correspondances doivent \u00EAtre utilis\u00E9es
 regexfunc_param_4=Entre le texte. Si ALL est s\u00E9lectionn\u00E9, l'entre-texte sera utilis\u00E9 pour g\u00E9n\u00E9rer les r\u00E9sultats ([""])
 regexfunc_param_5=Text par d\u00E9faut. Utilis\u00E9 \u00E0 la place du canevas si l'expression r\u00E9guli\u00E8re ne trouve pas de correspondance
+regexp_tester_button_test=Tester
+regexp_tester_field=Expression r\u00E9guli\u00E8re \:
+regexp_render_no_text=Les donn\u00E9es de r\u00E9ponse ne sont pas du texte.
+regexp_tester_title=Testeur de RegExp
 remote_exit=Sortie distante
 remote_exit_all=Sortie distante de tous
 remote_start=D\u00E9marrage distant

Added: jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/gui/GuiUtils.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/gui/GuiUtils.java?rev=885648&amp;view=auto
==============================================================================
--- jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/gui/GuiUtils.java (added)
+++ jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/gui/GuiUtils.java Tue Dec  1 01:51:15 2009
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * 
+ */
+
+package org.apache.jorphan.gui;
+
+import java.awt.Component;
+
+import javax.swing.JScrollPane;
+
+public class GuiUtils {
+
+    /**
+     * Create a scroll panel that sets its preferred size to its minimum size.
+     * Explicitly for scroll panes that live inside other scroll panes, or
+     * within containers that stretch components to fill the area they exist in.
+     * Use this for any component you would put in a scroll pane (such as
+     * TextAreas, tables, JLists, etc). It is here for convenience and to avoid
+     * duplicate code. JMeter displays best if you follow this custom.
+     *
+     * @param comp
+     *            the component which should be placed inside the scroll pane
+     * @return a JScrollPane containing the specified component
+     */
+    public static JScrollPane makeScrollPane(Component comp) {
+        JScrollPane pane = new JScrollPane(comp);
+        pane.setPreferredSize(pane.getMinimumSize());
+        return pane;
+    }
+
+}

Propchange: jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/gui/GuiUtils.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/gui/GuiUtils.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>DO NOT REPLY [Bug 48300] Allow JMeter HTTP Request HTTPClient to use several source IP addresses (IP aliasing or network interfaces)</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200912.mbox/%3c20091201004814.7FD4F234C1F0@brutus.apache.org%3e"/>
<id>urn:uuid:%3c20091201004814-7FD4F234C1F0@brutus-apache-org%3e</id>
<updated>2009-12-01T00:48:14Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
https://issues.apache.org/bugzilla/show_bug.cgi?id=48300

--- Comment #4 from Mark Thomas &lt;markt@apache.org&gt; 2009-11-30 16:48:13 GMT ---
Note that due to a data loss on 26/27 Nov 2009 the issue that was originally
created as bug 48300 was lost. It has been re-created as bug 48311.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885579 - /jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java</title>
<author><name>sebb@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200911.mbox/%3c20091130203322.DB85B23889EC@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091130203322-DB85B23889EC@eris-apache-org%3e</id>
<updated>2009-11-30T20:33:22Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: sebb
Date: Mon Nov 30 20:33:22 2009
New Revision: 885579

URL: http://svn.apache.org/viewvc?rev=885579&amp;view=rev
Log:
Add convenience method findClassesThatExtend(Class&lt;?&gt; superClass)
Make lowest level method private

Modified:
    jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java

Modified: jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java?rev=885579&amp;r1=885578&amp;r2=885579&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java (original)
+++ jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java Mon Nov 30
20:33:22 2009
@@ -35,6 +35,7 @@
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
+import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.jorphan.util.JOrphanUtils;
 import org.apache.log.Logger;
@@ -147,7 +148,21 @@
 
     /**
      * Convenience method for
-     * &lt;code&gt;findClassesThatExtend(Class[], boolean)&lt;/code&gt;
+     * {@link #findClassesThatExtend(String[], Class[], boolean)}
+     * with the option to include inner classes in the search set to false
+     * and the path list is derived from JMeterUtils.getSearchPaths().
+     *
+     * @param superClass - single class to search for
+     * @return List of Strings containing discovered class names.
+     */
+    public static List&lt;String&gt; findClassesThatExtend(Class&lt;?&gt; superClass)
+        throws IOException {
+        return findClassesThatExtend(JMeterUtils.getSearchPaths(), new Class[]{superClass},
false);
+    }
+
+    /**
+     * Convenience method for
+     * {@link #findClassesThatExtend(String[], Class[], boolean)}
      * with the option to include inner classes in the search set to false.
      *
      * @return List of Strings containing discovered class names.
@@ -252,8 +267,7 @@
      *
      * @return List containing discovered classes
      */
-    @SuppressWarnings("unchecked")
-    public static List&lt;String&gt; findClassesThatExtend(String[] strPathsOrJars,
+    private static List&lt;String&gt; findClassesThatExtend(String[] strPathsOrJars,
                 final Class&lt;?&gt;[] classNames, final boolean innerClasses,
                 String contains, String notContains, boolean annotations)
                 throws IOException  {
@@ -281,9 +295,11 @@
             }
         }
 
+        @SuppressWarnings("unchecked") // Should only be called with classes that extend
annotations
+        final Class&lt;? extends Annotation&gt;[] annoclassNames = (Class&lt;? extends Annotation&gt;[])
classNames;
         Set&lt;String&gt; listClasses =
             annotations ?
-                new AnnoFilterTreeSet((Class&lt;? extends Annotation&gt;[]) classNames, innerClasses)
+                new AnnoFilterTreeSet(annoclassNames, innerClasses)
                 :
                 new FilterTreeSet(classNames, innerClasses, contains, notContains);
         // first get all the classes



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885401 - /jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/math/StatCalculator.java</title>
<author><name>sebb@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200911.mbox/%3c20091130124901.CECBA23888FD@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091130124901-CECBA23888FD@eris-apache-org%3e</id>
<updated>2009-11-30T12:49:01Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: sebb
Date: Mon Nov 30 12:49:01 2009
New Revision: 885401

URL: http://svn.apache.org/viewvc?rev=885401&amp;view=rev
Log:
Comparable parameters Consume, so should be ? super T

Modified:
    jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/math/StatCalculator.java

Modified: jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/math/StatCalculator.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/math/StatCalculator.java?rev=885401&amp;r1=885400&amp;r2=885401&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/math/StatCalculator.java (original)
+++ jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/math/StatCalculator.java Mon Nov 30
12:49:01 2009
@@ -29,7 +29,7 @@
  * It is not threadsafe.
  * 
  */
-public abstract class StatCalculator&lt;T extends Number &amp; Comparable&lt;T&gt;&gt; {
+public abstract class StatCalculator&lt;T extends Number &amp; Comparable&lt;? super T&gt;&gt;
{
     
     private final List&lt;T&gt; values = new ArrayList&lt;T&gt;();
 



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>DO NOT REPLY [Bug 48300] Allow JMeter HTTP Request HTTPClient to use several source IP addresses (IP aliasing or network interfaces)</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200911.mbox/%3c20091130021132.74470234C1F2@brutus.apache.org%3e"/>
<id>urn:uuid:%3c20091130021132-74470234C1F2@brutus-apache-org%3e</id>
<updated>2009-11-30T02:11:32Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
https://issues.apache.org/bugzilla/show_bug.cgi?id=48300

Sebb &lt;sebb@apache.org&gt; changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

--- Comment #3 from Sebb &lt;sebb@apache.org&gt; 2009-11-29 18:11:30 UTC ---
Thanks for another useful patch, applied to SVN:

URL: http://svn.apache.org/viewvc?rev=885312&amp;view=rev
Log:
Bug 48300 - Allow override of IP source address for HTTP HttpClient requests

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885312 - in /jakarta/jmeter/trunk: docs/images/screenshots/webtest/ src/core/org/apache/jmeter/resources/ src/protocol/http/org/apache/jmeter/protocol/http/control/gui/ src/protocol/http/org/apache/jmeter/protocol/http/sampler/ xdocs/ xdoc...</title>
<author><name>sebb@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200911.mbox/%3c20091130020957.9F36C238888F@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091130020957-9F36C238888F@eris-apache-org%3e</id>
<updated>2009-11-30T02:09:57Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: sebb
Date: Mon Nov 30 02:09:55 2009
New Revision: 885312

URL: http://svn.apache.org/viewvc?rev=885312&amp;view=rev
Log:
Bug 48300 - Allow override of IP source address for HTTP HttpClient requests

Modified:
    jakarta/jmeter/trunk/docs/images/screenshots/webtest/http-request.png
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
    jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java
    jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui2.java
    jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java
    jakarta/jmeter/trunk/xdocs/changes.xml
    jakarta/jmeter/trunk/xdocs/images/screenshots/webtest/http-request.png
    jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml

Modified: jakarta/jmeter/trunk/docs/images/screenshots/webtest/http-request.png
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/images/screenshots/webtest/http-request.png?rev=885312&amp;r1=885311&amp;r2=885312&amp;view=diff
==============================================================================
Binary files - no diff available.

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=885312&amp;r1=885311&amp;r2=885312&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties Mon Nov
30 02:09:55 2009
@@ -923,6 +923,7 @@
 web_server_client=Client implementation:
 web_server_domain=Server Name or IP\:
 web_server_port=Port Number\:
+web_testing2_source_ip=Source IP address:
 web_testing2_title=HTTP Request HTTPClient
 web_testing_embedded_url_pattern=Embedded URLs must match\:
 web_testing_retrieve_images=Retrieve All Embedded Resources from HTML Files

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties?rev=885312&amp;r1=885311&amp;r2=885312&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties Mon Nov
30 02:09:55 2009
@@ -789,6 +789,7 @@
 web_server_timeout_connect=Connexion \:
 web_server_timeout_response=R\u00E9ponse \:
 web_server_timeout_title=D\u00E9lai expiration (ms)
+web_testing2_source_ip=Adresse IP source \:
 web_testing2_title=Requ\u00EAte HTTP HTTPClient
 web_testing_embedded_url_pattern=Les URL \u00E0 inclure doivent correspondre \u00E0 \:
 web_testing_retrieve_images=R\u00E9cup\u00E9rer les ressources incluses

Modified: jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java?rev=885312&amp;r1=885311&amp;r2=885312&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java
(original)
+++ jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java
Mon Nov 30 02:09:55 2009
@@ -113,7 +113,7 @@
         add(createOptionalTasksPanel(), BorderLayout.SOUTH);
     }
 
-    private JPanel createOptionalTasksPanel() {
+    protected JPanel createOptionalTasksPanel() {
         // OPTIONAL TASKS
         JPanel optionalTasksPanel = new VerticalPanel();
         optionalTasksPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
JMeterUtils
@@ -134,7 +134,7 @@
 
         // Embedded URL match regex
         embeddedRE = new JLabeledTextField(JMeterUtils.getResString("web_testing_embedded_url_pattern"),30);
// $NON-NLS-1$
-        optionalTasksPanel.add(embeddedRE);
+        optionalTasksPanel.add(embeddedRE, BorderLayout.CENTER);
         return optionalTasksPanel;
     }
 

Modified: jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui2.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui2.java?rev=885312&amp;r1=885311&amp;r2=885312&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui2.java
(original)
+++ jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui2.java
Mon Nov 30 02:09:55 2009
@@ -18,15 +18,24 @@
 
 package org.apache.jmeter.protocol.http.control.gui;
 
-import org.apache.jmeter.protocol.http.sampler.HTTPSamplerFactory;
+import java.awt.BorderLayout;
+import javax.swing.JPanel;
+
+import org.apache.jmeter.protocol.http.sampler.HTTPSampler2;
 import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase;
+import org.apache.jmeter.protocol.http.sampler.HTTPSamplerFactory;
 import org.apache.jmeter.testelement.TestElement;
 import org.apache.jmeter.util.JMeterUtils;
+import org.apache.jorphan.gui.JLabeledTextField;
 
 /**
  * HTTP Sampler GUI for Apache HTTPClient HTTP implementation
  */
 public class HttpTestSampleGui2 extends HttpTestSampleGui {
+    
+    private static final long serialVersionUID = 240L;
+    
+    private JLabeledTextField sourceIpAddr;
 
     public HttpTestSampleGui2() {
         super();
@@ -51,4 +60,44 @@
         return super.getStaticLabel().replace(' ', '_'); // $NON-NLS-1$  // $NON-NLS-2$
     }
 
+    @Override
+    protected JPanel createOptionalTasksPanel() {
+        JPanel optionalTasksPanel = super.createOptionalTasksPanel();
+        // Add a new field source ip address
+        sourceIpAddr = new JLabeledTextField(JMeterUtils
+                .getResString("web_testing2_source_ip"), 15); // $NON-NLS-1$
+        optionalTasksPanel.add(sourceIpAddr, BorderLayout.EAST);
+        
+        return optionalTasksPanel;
+    }
+    
+    /* (non-Javadoc)
+     * @see org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui#clearGui()
+     */
+    @Override
+    public void clearGui() {
+        super.clearGui();
+        sourceIpAddr.setText(""); // $NON-NLS-1$
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui#configure(org.apache.jmeter.testelement.TestElement)
+     */
+    @Override
+    public void configure(TestElement element) {
+        super.configure(element);
+        final HTTPSampler2 samplerBase = (HTTPSampler2) element;
+        sourceIpAddr.setText(samplerBase.getIpSource());
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui#modifyTestElement(org.apache.jmeter.testelement.TestElement)
+     */
+    @Override
+    public void modifyTestElement(TestElement sampler) {
+        // TODO Auto-generated method stub
+        super.modifyTestElement(sampler);
+        final HTTPSampler2 samplerBase = (HTTPSampler2) sampler;
+        samplerBase.setIpSource(sourceIpAddr.getText());
+    }
 }

Modified: jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java?rev=885312&amp;r1=885311&amp;r2=885312&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java
(original)
+++ jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler2.java
Mon Nov 30 02:09:55 2009
@@ -119,6 +119,8 @@
 
     private static final String PROXY_DOMAIN =
         JMeterUtils.getPropDefault("http.proxyDomain",""); // $NON-NLS-1$ $NON-NLS-2$
+    
+    public static final String IP_SOURCE = "HTTPSampler.ipSource"; // $NON-NLS-1$
 
     static final InetAddress localAddress;
 
@@ -536,6 +538,12 @@
         // Set up the local address if one exists
         if (localAddress != null){
             hc.setLocalAddress(localAddress);
+        } else {
+            final String ipSource = getIpSource();
+            if (ipSource.length() &gt; 0) {// Use special field ip source address (for pseudo
'ip spoofing')
+                InetAddress inetAddr = InetAddress.getByName(ipSource);
+                hc.setLocalAddress(inetAddr);
+            }
         }
 
         boolean useStaticProxy = PROXY_DEFINED &amp;&amp; !isNonProxy(host);
@@ -1162,4 +1170,13 @@
         }
         return client != null;
     }
+
+    
+    public void setIpSource(String value) {
+        setProperty(IP_SOURCE, value, "");
+    }
+
+    public String getIpSource() {
+        return getPropertyAsString(IP_SOURCE,"");
+    }
 }

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=885312&amp;r1=885311&amp;r2=885312&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Mon Nov 30 02:09:55 2009
@@ -120,6 +120,7 @@
 &lt;li&gt;Bug 47461 - Update Cache Manager to handle Expires HTTP header&lt;/li&gt;
 &lt;li&gt;Bug 48153 - Support for Cache-Control and Expires headers&lt;/li&gt;
 &lt;li&gt;Bug 47946 - Proxy should enable Grouping inside a Transaction Controller&lt;/li&gt;
+&lt;li&gt;Bug 48300 - Allow override of IP source address for HTTP HttpClient requests&lt;/li&gt;
 &lt;/ul&gt;
 
 &lt;h3&gt;Other samplers&lt;/h3&gt;

Modified: jakarta/jmeter/trunk/xdocs/images/screenshots/webtest/http-request.png
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/images/screenshots/webtest/http-request.png?rev=885312&amp;r1=885311&amp;r2=885312&amp;view=diff
==============================================================================
Binary files - no diff available.

Modified: jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml?rev=885312&amp;r1=885311&amp;r2=885312&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml (original)
+++ jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml Mon Nov 30 02:09:55 2009
@@ -81,7 +81,7 @@
 
 &lt;/component&gt;
 
-&lt;component name="HTTP Request" index="&amp;sect-num;.1.2"  width="730" height="618" screenshot="webtest/http-request.png"&gt;
+&lt;component name="HTTP Request" index="&amp;sect-num;.1.2"  width="735" height="646" screenshot="webtest/http-request.png"&gt;
 
 &lt;description&gt;
         &lt;p&gt;This sampler lets you send an HTTP/HTTPS request to a web server.  It
@@ -176,6 +176,10 @@
         &lt;property name="Port" required="No"&gt;Port the web server is listening to. Default:
80&lt;/property&gt;
         &lt;property name="Connect Timeout" required="No"&gt;Connection Timeout. Number of
milliseconds to wait for a connection to open.&lt;/property&gt;
         &lt;property name="Response Timeout" required="No"&gt;Response Timeout. Number of
milliseconds to wait for a response.&lt;/property&gt;
+        &lt;property name="Server (proxy)" required="No"&gt;Hostname or IP address of a proxy
server to perform request. [Do not include the http:// prefix.]&lt;/property&gt;
+        &lt;property name="Port" required="No"&gt;Port the proxy server is listening to.&lt;/property&gt;
+        &lt;property name="Username" required="No"&gt;(Optional) username for proxy server.&lt;/property&gt;
+        &lt;property name="Password" required="No"&gt;(Optional) password for proxy server.&lt;/property&gt;
         &lt;property name="Protocol" required="No"&gt;HTTP, HTTPS or FILE. Default: HTTP&lt;/property&gt;
         &lt;property name="Method" required="Yes"&gt;GET, POST, HEAD, TRACE, OPTIONS, PUT,
DELETE&lt;/property&gt;
         &lt;property name="Content Encoding" required="No"&gt;Content encoding to be used
(for POST and FILE)&lt;/property&gt;
@@ -252,6 +256,12 @@
         So if you only want to download embedded resources from http://example.com/, use
the expression:
         http://example\.com/.*
         &lt;/property&gt;
+        &lt;property name="Source IP address:" required="No"&gt;
+        [Only for HTTP Request HTTPClient] 
+        Override the default local IP address for this sample.
+        The JMeter host must have multiple IP addresses (i.e. IP aliases or network interfaces).

+        If the property &lt;b&gt;httpclient.localaddress&lt;/b&gt; is defined, that is used
for all HttpClient requests.
+        &lt;/property&gt;
 &lt;/properties&gt;
 &lt;p&gt;
 &lt;b&gt;N.B.&lt;/b&gt; when using Automatic Redirection, cookies are only sent for the initial
URL.



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>DO NOT REPLY [Bug 48155] Multiple problems / enhancements with JMS protocol classes.</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200911.mbox/%3c20091129234229.0F8CF234C1F0@brutus.apache.org%3e"/>
<id>urn:uuid:%3c20091129234229-0F8CF234C1F0@brutus-apache-org%3e</id>
<updated>2009-11-29T23:42:29Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
https://issues.apache.org/bugzilla/show_bug.cgi?id=48155

martinrl &lt;martinrleon@yahoo.com&gt; changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEEDINFO                    |NEW

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Bug report for JMeter [2009/11/29]</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200911.mbox/%3c20091129230811.90500234C48C@brutus.apache.org%3e"/>
<id>urn:uuid:%3c20091129230811-90500234C48C@brutus-apache-org%3e</id>
<updated>2009-11-29T23:08:10Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
+---------------------------------------------------------------------------+
| Bugzilla Bug ID                                                           |
|     +---------------------------------------------------------------------+
|     | Status: UNC=Unconfirmed NEW=New         ASS=Assigned                |
|     |         OPN=Reopened    VER=Verified    (Skipped Closed/Resolved)   |
|     |   +-----------------------------------------------------------------+
|     |   | Severity: BLK=Blocker CRI=Critical  REG=Regression  MAJ=Major   |
|     |   |           MIN=Minor   NOR=Normal    ENH=Enhancement TRV=Trivial |
|     |   |   +-------------------------------------------------------------+
|     |   |   | Date Posted                                                 |
|     |   |   |          +--------------------------------------------------+
|     |   |   |          | Description                                      |
|     |   |   |          |                                                  |
|11536|Ass|Enh|2002-08-07|Graph Results's throughput calculation includes id|
|15468|New|Enh|2002-12-18|Variable expansion in posted files in HTTPSampler |
|15999|New|Enh|2003-01-12|Show Results Tree is too HTTP-centric             |
|16370|New|Enh|2003-01-23|HTTP Request log                                  |
|16886|New|Enh|2003-02-07|Recorded requests shouldn't duplicate info in HTTP|
|17248|New|Enh|2003-02-20|Graph Improvements                                |
|17252|Ass|Enh|2003-02-20|HTML Link Parser seems not work properly.         |
|21695|New|Enh|2003-07-17|Unix jmeter start script assumes it is on PATH, no|
|22076|New|Enh|2003-08-01|global search and replace functionality           |
|22510|New|Maj|2003-08-18|SSL Manager does not handle multiple client certif|
|24480|New|Enh|2003-11-06|There is no good way to set checkbox based items u|
|25209|New|Min|2003-12-04|missed refresh of horizontal scrollbar when switch|
|25430|New|Enh|2003-12-11|Recording Controller to populate HTTP Authorisatio|
|27112|New|Enh|2004-02-20|User Parameters should use scrollbars             |
|27895|New|Enh|2004-03-24|badly formatted JDBC output (a regression w.r.t. 1|
|28502|New|Enh|2004-04-20|HTTP Resource Cache                               |
|29331|New|Enh|2004-06-01|how to load test java applet using JMeter         |
|29352|New|Enh|2004-06-03|Use external store to hold samples during distribu|
|29603|New|Enh|2004-06-16|Custom component developers need own resource bund|
|29708|New|Enh|2004-06-21|startup delay by JMeterThread initialization      |
|30563|New|Enh|2004-08-10|Thread Group should have a restart loop option on |
|31666|New|Enh|2004-10-12|writing sampleresults to databases                |
|32494|New|Enh|2004-12-02|Enhancement - scheduler should be added to Test Pl|
|33305|New|Enh|2005-01-31|Visual diff and merge functionality for JMeter scr|
|33878|New|Enh|2005-03-07|Function caching as option                        |
|33940|Opn|Nor|2005-03-09|Throughput value and Graph Results "Graphing" don'|
|34321|New|Enh|2005-04-06|password encryption for HTTP Authorization Manager|
|35059|New|Maj|2005-05-25|RuntimeController not working correctly           |
|35593|New|Enh|2005-07-03|Commons chain sampler                             |
|35670|New|Enh|2005-07-09|Default parameters not displayed                  |
|35915|New|Enh|2005-07-28|MonitorResults does not write results n CSV format|
|36378|New|Enh|2005-08-26|[PATCH] A "Thread Watcher" Listener               |
|36694|New|Enh|2005-09-17|substitute a value in the input XML for webservice|
|36721|New|Enh|2005-09-20|webMethods Sampling Protocol Extensions           |
|36931|New|Enh|2005-10-05|Printable Version of the Users Manual             |
|37073|New|Enh|2005-10-13|Lacking Poisson timer                             |
|37124|New|Enh|2005-10-17|Need error feedback in the GUI, noticed this by ac|
|37155|New|Enh|2005-10-19|Testplan: Stop... Continue....                    |
|37156|New|Enh|2005-10-19|Formatted view of Request in Results Tree         |
|37160|New|Enh|2005-10-19|Scalable distributed testing                      |
|37525|New|Enh|2005-11-16|Web service sampler does not support multipart req|
|38115|Inf|Nor|2006-01-04|decode from encoded string by IE                  |
|38387|Ass|Enh|2006-01-25|allow to read(/send) mail messages encrypted/signe|
|38832|New|Nor|2006-03-02|webservice request sampler adding xmlns:xmlns     |
|39219|New|Nor|2006-04-06|HTTP Server: You can't stop it after File-&gt;Open   |
|39642|New|Enh|2006-05-23|Need a sampler forJMX mbean-servers.              |
|39812|New|Nor|2006-06-14|Problem with Webservice(SOAP)Request  over https  |
|40011|New|Enh|2006-07-11|New Elements for use in JMeter                    |
|40181|Ass|Enh|2006-08-03|Add a new Session Bean protocol extension         |
|40424|New|Enh|2006-09-06|Web Services proxy                                |
|40499|New|Enh|2006-09-13|Need to be able to simulate abortive connection re|
|40671|New|Cri|2006-10-03|IncludeController not working in Jmeter 2.2       |
|40750|New|Nor|2006-10-12|Behaviour when TCPSampler sockets are closed by re|
|40934|Inf|Nor|2006-11-09|CSV Data Set Config parameters cannot be used in s|
|40961|New|Enh|2006-11-13|Maintain constant number of clients after assertio|
|40973|New|Nor|2006-11-14|[View Results Tree] component failed when generate|
|41110|New|Enh|2006-12-05|Jmeter does not record calculated values, such as |
|41210|Inf|Enh|2006-12-19|Latency time is not included in the summary report|
|41286|New|Nor|2007-01-03|Include controller problems in Jmeter 2.1.1.      |
|41293|New|Enh|2007-01-04|Allow multi-level Thread Groups                   |
|41319|New|Nor|2007-01-08|Parmeter value being URL decoded in URLRewritingMo|
|41418|Inf|Enh|2007-01-19|Excludes timer duration from Transaction Controlle|
|41545|New|Enh|2007-02-05|Enhancement to integrate soapui into Soap/XMLRPC s|
|41566|New|Enh|2007-02-08|Require a method of disabling HTTP Request Default|
|41788|New|Enh|2007-03-07|Log viewer (console window) needed as an option   |
|41800|New|Enh|2007-03-09|Parser for parsing the CSV results using JMeter An|
|41917|New|Enh|2007-03-21|Restructure HTTP Request GUI, to make it simpler a|
|41921|Inf|Maj|2007-03-21|samplers store all output, even when arbitrarily l|
|42012|Opn|Min|2007-04-01|Variable Listener filenames do not get processed i|
|42141|New|Min|2007-04-17|[Usability] Save as doesn't replace forbidden char|
|42205|New|Enh|2007-04-23|expand/collaps multiple selected nodes            |
|42246|New|Trv|2007-04-25|Need for a 'auto-scroll' option in "View Results T|
|42248|New|Enh|2007-04-25|Need undo-redo support                            |
|42428|New|Enh|2007-05-15|Workbench not saved with Test Plan                |
|42538|New|Enh|2007-05-29|No "duplicate" entry in context menu              |
|42637|Ass|Enh|2007-06-11|add non-POST method support to the SOAP/XML-RPC sa|
|42717|Inf|Enh|2007-06-21|webservice soap sampler does not recognize name sp|
|42784|New|Enh|2007-06-30|Show the number of errors logged in the GUI       |
|42837|New|Enh|2007-07-09|Provide link between .jmx and .jtl files          |
|42867|New|Nor|2007-07-12|Only default parameters of Java Request Samplers a|
|43168|New|Enh|2007-08-20|Exception when running multiple tests in same remo|
|43284|New|Trv|2007-09-02|Centralise use of ".jmx" and ".jtl" etc           |
|43288|New|Nor|2007-09-02|JLabeledRadio.getText() is language dependent     |
|43293|New|Nor|2007-09-03|Java Request fields not cleared when creating new |
|43294|New|Nor|2007-09-03|XPath Extractor namespace problems                |
|43360|New|Nor|2007-09-12|Huge size of test elements when loading a script  |
|43363|New|Enh|2007-09-12|Options for compressed content                    |
|43380|New|Enh|2007-09-13|override "download embedded ressources" for all ht|
|43381|Inf|Enh|2007-09-13|view results tree grouping results per threadgroup|
|43384|New|Enh|2007-09-13|using semaphores in jmeter (block critical regions|
|43450|New|Nor|2007-09-21|Listeners/Savers assume SampleResult count is alwa|
|43484|New|Nor|2007-09-26|Remote Statistical mode needs to collect min/max s|
|43539|New|Maj|2007-10-03|Monitor results are different in Non-GUI Mode     |
|43545|New|Nor|2007-10-03|AbstractVisualizer should implement TestElement in|
|43549|New|Enh|2007-10-04|Enhancing FTP Request with chmod or other unix com|
|43678|Opn|Nor|2007-10-23|Handle META tag http-equiv charset?               |
|43730|New|Enh|2007-10-29|User-settable JVM DNS cache expiry                |
|43999|Opn|Enh|2007-11-29|"HTTP Proxy Server" records redundant "Server Name|
|44126|Inf|Nor|2007-12-21|ConcurrentModificationException executing test on |
|44301|New|Enh|2008-01-26|Enable "ignore failed" for embedded resources     |
|44325|New|Min|2008-01-29|JMeter converts new lines to spaces               |
|44420|New|Enh|2008-02-14|AccessLog Sampler - process session ids?          |
|44690|New|Enh|2008-03-27|Make Login Config data available as variables     |
|44802|New|Enh|2008-04-10|MonitorHealthVisualizer.java enhancement          |
|44973|New|Nor|2008-05-12|Included Testplans fail to execute correctly from |
|45005|New|Enh|2008-05-15|Enhances MailReaderSampler                        |
|45006|New|Enh|2008-05-15|.class overwrite / enhancement concept            |
|45009|Ver|Nor|2008-05-15|Locally manage user defined variables             |
|45053|New|Enh|2008-05-21|SMTP-Sampler for JMeter                           |
|45132|New|Nor|2008-06-04|java.net.URLDecoder can not decode post data sent |
|45168|New|Nor|2008-06-09|Listeners need to take idleTime into account      |
|45169|New|Nor|2008-06-09|SampleResult idleTime not always taken into accoun|
|45174|New|Enh|2008-06-09|TCPSampler support for sending files              |
|45258|New|Enh|2008-06-23|Child sample handling                             |
|45267|New|Enh|2008-06-24|Feature request - loading property files from GUI |
|45268|New|Enh|2008-06-24|Add possibility to choose a set of defaults for sa|
|45457|New|Nor|2008-07-22|ModuleController lose the module-to-run when test |
|45589|New|Enh|2008-08-07|Automatic extraction of CSV Result from sumarry re|
|45703|Inf|Nor|2008-08-28|Synchronizing Timer                               |
|45772|New|Enh|2008-09-09|RgEx User Parameters Post Processor               |
|45839|New|Enh|2008-09-18|Allow premature exit from a loop                  |
|46142|Opn|Nor|2008-11-03|jms receiver will not validate if JMSCorrelationID|
|46178|New|Enh|2008-11-10|Ask newline feature for request parameter value   |
|46237|New|Enh|2008-11-18|add skeleton-key http authentication to AccessLogS|
|46307|Inf|Nor|2008-11-28|WebService(SOAP) Request doesn't support utf-8 in |
|46657|New|Enh|2009-02-03|provide an online PDF version of the User's Manual|
|46677|New|Enh|2009-02-09|Copying Test Elements between test plans          |
|46779|New|Nor|2009-02-27|${variable} expansion fails in listeners when runn|
|46790|New|Enh|2009-03-02|CSV Data Set Config should be able to parse CSV he|
|46901|New|Blk|2009-03-24|HTTP Sampler does not process var/func refs correc|
|46912|New|Nor|2009-03-25|csv file corrupted                                |
|46921|New|Enh|2009-03-26|Add Ability to Convert Test Elements              |
|46972|Inf|Enh|2009-04-05|TestNG integration with JMeter                    |
|47040|New|Enh|2009-04-16|OAuth Support                                     |
|47045|New|Enh|2009-04-17|JDBC Request .sql script file execution           |
|47052|New|Enh|2009-04-19|Add support for MigLayout to simplify and enhance |
|47166|New|Enh|2009-05-07|Add render Flex AMF 3 (Action Message Format) to L|
|47269|New|Maj|2009-05-26|StackOverflowException Using Combination of Random|
|47280|Inf|Nor|2009-05-28|Unable to start jmeter on dutch XP                |
|47302|New|Enh|2009-06-02|Ability to look at summaries without GUI (non-gui)|
|47474|New|Nor|2009-07-05|Change View Results Tree by a more extensible list|
|47587|New|Maj|2009-07-27|Recording using proxy fails with semicolon separat|
|47660|New|Nor|2009-08-07|OutOfMemoryErrors when sending large file using HT|
|47749|New|Maj|2009-08-27|JMS Publisher cannot publish to a Topic and it han|
|47817|New|Enh|2009-09-10|Enhancement: Use multiple connections per thread  |
|47850|New|Nor|2009-09-16|Include controller - Not able to get the desired t|
|47865|New|Enh|2009-09-17|New listeners optimized to work with huge amount o|
|47886|New|Enh|2009-09-22|Use ThreadPool for threads rather than create/star|
|47888|New|Nor|2009-09-22|JUnit Sampler re-uses test object                 |
|47890|New|Nor|2009-09-22|WSDL data does not populate if web methods are too|
|47915|New|Cri|2009-09-28|Always get OutOfMemoryError using JMS Topics      |
|47921|New|Nor|2009-09-30|Variables not released for GC after JMeterThread e|
|47949|New|Cri|2009-10-06|JMS Subscriber never recieves all the messages    |
|48015|New|Trv|2009-10-16|Proposal new icons for pre-processor and post-proc|
|48016|New|Nor|2009-10-16|Suggested contribution: using jMeter in server mod|
|48072|Inf|Nor|2009-10-28|Encoding of German  "ß"                           |
|48136|New|Nor|2009-11-05|Essential files missing from source tarball       |
|48145|New|Enh|2009-11-05|Integrating DTrace with JMeter                    |
|48155|Inf|Maj|2009-11-06|Multiple problems / enhancements with JMS protocol|
|48183|New|Trv|2009-11-11|ant doesn't create build directory in download_jar|
|48259|New|Enh|2009-11-21|Improve StatCalculator performance by using HashMa|
|48300|New|Nor|2009-11-29|Allow JMeter HTTP Request HTTPClient to use severa|
+-----+---+---+----------+--------------------------------------------------+
| Total  162 bugs                                                           |
+---------------------------------------------------------------------------+

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>DO NOT REPLY [Bug 48300] Allow JMeter HTTP Request HTTPClient to use several source IP addresses (IP aliasing or network interfaces)</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200911.mbox/%3c20091129175746.DF75C234C1EF@brutus.apache.org%3e"/>
<id>urn:uuid:%3c20091129175746-DF75C234C1EF@brutus-apache-org%3e</id>
<updated>2009-11-29T17:57:46Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
https://issues.apache.org/bugzilla/show_bug.cgi?id=48300

--- Comment #2 from Milamber &lt;milamberspace@gmail.com&gt; 2009-11-29 09:57:46 UTC ---
Created an attachment (id=24632)
 --&gt; (https://issues.apache.org/bugzilla/attachment.cgi?id=24632)
New screenshot HTTP Request (HTTPClient) with proxy fields and Source IP
address

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>DO NOT REPLY [Bug 48300] Allow JMeter HTTP Request HTTPClient to use several source IP addresses (IP aliasing or network interfaces)</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200911.mbox/%3c20091129175649.E0A15234C1EF@brutus.apache.org%3e"/>
<id>urn:uuid:%3c20091129175649-E0A15234C1EF@brutus-apache-org%3e</id>
<updated>2009-11-29T17:56:49Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
https://issues.apache.org/bugzilla/show_bug.cgi?id=48300

--- Comment #1 from Milamber &lt;milamberspace@gmail.com&gt; 2009-11-29 09:56:49 UTC ---
Created an attachment (id=24631)
 --&gt; (https://issues.apache.org/bugzilla/attachment.cgi?id=24631)
Patch to add a new field 'Source IP address' in HTTPClient Request 

Documentation is update:
- HTTP Request screenshot
- New 'proxy' fields
- New Source IP address

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>DO NOT REPLY [Bug 48300] New: Allow JMeter HTTP Request HTTPClient to use several source IP addresses (IP aliasing or network interfaces)</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200911.mbox/%3cbug-48300-1333@https.issues.apache.org/bugzilla/%3e"/>
<id>urn:uuid:%3cbug-48300-1333@https-issues-apache-org/bugzilla/%3e</id>
<updated>2009-11-29T17:53:06Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
https://issues.apache.org/bugzilla/show_bug.cgi?id=48300

           Summary: Allow JMeter HTTP Request HTTPClient to use several
                    source IP addresses (IP aliasing or network
                    interfaces)
           Product: JMeter
           Version: Nightly (Please specify date)
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: HTTP
        AssignedTo: jmeter-dev@jakarta.apache.org
        ReportedBy: milamberspace@gmail.com


With Commons HttpClient, it's easy to select a specific IP address source. 

This patch allow to define a source IP address in GUI which is a JMeter
variable. This last are retrieve from a CSV Data Set Config element which list
a 'pool' of IP addresses.

The IP pool is (all) configured IP addresses aliasing (or network interface) on
JMeter machine.

Now, JMeter with HTTPClient Request+CSV Data permit to simulate Virtual Users
with their IP addresses.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885226 - /jakarta/jmeter/trunk/build.xml</title>
<author><name>sebb@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200911.mbox/%3c20091129133852.784D22388962@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091129133852-784D22388962@eris-apache-org%3e</id>
<updated>2009-11-29T13:38:52Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: sebb
Date: Sun Nov 29 13:38:52 2009
New Revision: 885226

URL: http://svn.apache.org/viewvc?rev=885226&amp;view=rev
Log:
Standardise on pathelement location

Modified:
    jakarta/jmeter/trunk/build.xml

Modified: jakarta/jmeter/trunk/build.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/build.xml?rev=885226&amp;r1=885225&amp;r2=885226&amp;view=diff
==============================================================================
--- jakarta/jmeter/trunk/build.xml (original)
+++ jakarta/jmeter/trunk/build.xml Sun Nov 29 13:38:52 2009
@@ -705,13 +705,13 @@
     &lt;rmic base="${build.core}" classname="org.apache.jmeter.engine.RemoteJMeterEngineImpl"&gt;
       &lt;classpath&gt;
         &lt;pathelement location="${build.jorphan}"/&gt;
-        &lt;pathelement path="${build.core}"/&gt;
+        &lt;pathelement location="${build.core}"/&gt;
         &lt;path refid="classpath"/&gt;
       &lt;/classpath&gt;
     &lt;/rmic&gt;
     &lt;rmic base="${build.core}" classname="org.apache.jmeter.samplers.RemoteSampleListenerImpl"&gt;
       &lt;classpath&gt;
-        &lt;pathelement path="${build.core}"/&gt;
+        &lt;pathelement location="${build.core}"/&gt;
         &lt;path refid="classpath"/&gt;
       &lt;/classpath&gt;
     &lt;/rmic&gt;



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>DO NOT REPLY [Bug 48286] ConstantTimer's delay cannot be changed dynamically during a test</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200911.mbox/%3c20091126075439.C237F234C052@brutus.apache.org%3e"/>
<id>urn:uuid:%3c20091126075439-C237F234C052@brutus-apache-org%3e</id>
<updated>2009-11-26T07:54:39Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
https://issues.apache.org/bugzilla/show_bug.cgi?id=48286

--- Comment #4 from Sandor &lt;vass.sanyi@freemail.hu&gt; 2009-11-25 23:54:36 UTC ---
I'm sorry to hear that... :)


Thank you for your time!

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>DO NOT REPLY [Bug 48286] ConstantTimer's delay cannot be changed dynamically during a test</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200911.mbox/%3c20091125232152.60760234C04C@brutus.apache.org%3e"/>
<id>urn:uuid:%3c20091125232152-60760234C04C@brutus-apache-org%3e</id>
<updated>2009-11-25T23:21:52Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
https://issues.apache.org/bugzilla/show_bug.cgi?id=48286

Sebb &lt;sebb@apache.org&gt; changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |INVALID

--- Comment #3 from Sebb &lt;sebb@apache.org&gt; 2009-11-25 15:21:51 UTC ---
I misunderstood your issue; I thought the timer was not picking up changes to
its variable.

When the test run starts, the underlying plan as displayed in the GUI has to be
processed into samplers etc that are copied for each thread. This allows the
threads to operate independently.

It's just not possible to reflect subsequent GUI changes in the running code.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>DO NOT REPLY [Bug 48286] ConstantTimer's delay cannot be changed dynamically during a test</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200911.mbox/%3c20091125224346.54078234C1EE@brutus.apache.org%3e"/>
<id>urn:uuid:%3c20091125224346-54078234C1EE@brutus-apache-org%3e</id>
<updated>2009-11-25T22:43:46Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
https://issues.apache.org/bugzilla/show_bug.cgi?id=48286

Sandor &lt;vass.sanyi@freemail.hu&gt; changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEEDINFO                    |NEW

--- Comment #2 from Sandor &lt;vass.sanyi@freemail.hu&gt; 2009-11-25 14:43:44 UTC ---
Well, dereferencing the delay value with a variable is a good workaround for
the case, although not an elegant solution of the problem, IMHO.
I can't see the point why were the timers designed that way, that their delay
values are not changeable directly on the gui, during a test on-the-fly. That's
why I assumed it was a bug.
The three Timer instance generation and the unnecessary method calls are just
an other issue. Currently they don't cause any problem, but I doubt they should
be created and called 5 times.

Anyway, regarding of the static delay value, the throughput timer behaves the
same way as the normal constant timer, its delay value is not changeable from
the GUI during a running test.

On the other hand you are right: in most cases the throughput timer is way much
useful timer than the constant timer.


As far as I see, the solution would be only that the clone() method of the
timer(s) does not clone the stored properties, but simply copies the reference
of the properties' map. But I accept if this modification is not acceptable,
since it might involve many other issues...

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>DO NOT REPLY [Bug 48286] ConstantTimer's delay cannot be changed dynamically during a test</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200911.mbox/%3c20091125215246.2616D234C1E9@brutus.apache.org%3e"/>
<id>urn:uuid:%3c20091125215246-2616D234C1E9@brutus-apache-org%3e</id>
<updated>2009-11-25T21:52:46Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
https://issues.apache.org/bugzilla/show_bug.cgi?id=48286

Sebb &lt;sebb@apache.org&gt; changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |NEEDINFO

--- Comment #1 from Sebb &lt;sebb@apache.org&gt; 2009-11-25 13:52:45 UTC ---
A work-round is to use the Constant Throughput timer instead.
IMO this is more suited to the job anyway.

See for example:

http://jakarta.apache.org/jmeter/usermanual/best-practices.html#beanshell_server

Is that sufficient for you?

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>DO NOT REPLY [Bug 48286] New: ConstantTimer's delay cannot be changed dynamically during a test</title>
<author><name>bugzilla@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200911.mbox/%3cbug-48286-1333@https.issues.apache.org/bugzilla/%3e"/>
<id>urn:uuid:%3cbug-48286-1333@https-issues-apache-org/bugzilla/%3e</id>
<updated>2009-11-25T21:40:33Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
https://issues.apache.org/bugzilla/show_bug.cgi?id=48286

           Summary: ConstantTimer's delay cannot be changed dynamically
                    during a test
           Product: JMeter
           Version: 2.3.4
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: major
          Priority: P2
         Component: Main
        AssignedTo: jmeter-dev@jakarta.apache.org
        ReportedBy: vass.sanyi@freemail.hu


When I'm using Constant Timer in my testplan it turned out that the timer's
value (the speed of the stability test) could not be changed on the fly.

I was wondering why it happened, so I simply recreated the ConstantTimerGui and
ConstantTimer class itself (on a different name) and logged method calls on
them.

interesting issue 1)
It turned out, that MyTimerGui was instantiated and init'ed at the startup time
of JMeter (when there were no visible TimerGUI in JMeter at all).

Later on, I created a simple test plan, with an empty java sampler and with my
timer.
A new MyTimerGui instance was created and init'ed. A Timer object is created
here through the createTestElement() on the Gui.
interesting issue 2)
Several methods on MyConstantTimerGui was called 5 times, just because it was
created: modifyTestElment(), clearGui(), configure() and those methods, that
were called by these (getDelay, setDelay, configureTestElement...

interesting issue 3)
When I started my plan two brand new MyTimer instance were created. The first
one was just left to the garbage collection, it is never referenced again, as
far as I see. On the second one the iterationStart() and the delay() methods
were called, on each round, which is OK, except I thought those methods should
have been called on the firstly created Timer object (created by the Gui's
createTestElement() method).

interesting issue 4) (sounds like a bug to me)
when I change the delay of the timer, the Gui changes the delay's value on the
first created Timer object, not on which the framework is continuosuly calling
the delay() and the iterationStart() methods.

Summarizing it seems at the first sight, that the problem is, that two extra
Timers were created on starting a test instead of using the one, which was
created by the Gui component itself.
But. The 3rd (used) Timer object is able to retrieve the delay's value set
before starting the test, so my assumption would be that there is a problem
with the property container inside the Timers... I don't know.

Don't you think it would be very useful to be able to finetune a stability test
during the test execution itself? For example to measure the maximum throughput
of the system?
Currently there is only one way I can see as solution: during cloning the
Timers, the property map should not be cloned but the map's reference should be
copied. But it needs some hack, since the map is a private field of the
AbstractTestElement...

br,
Sandor

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org



</pre>
</div>
</content>
</entry>
</feed>
