sebb 2005/07/08 17:10:38
Modified: src/core/org/apache/jmeter/save/converters
TestResultWrapperConverter.java ConversionHelp.java
src/core/org/apache/jmeter/save SaveService.java
ScriptWrapperConverter.java
src/core/org/apache/jmeter/reporters ResultCollector.java
Log:
Update conversion format to 1.1:
use XStream to encode/decode strings instead of URLencode
Revision Changes Path
1.3 +5 -1
jakarta-jmeter/src/core/org/apache/jmeter/save/converters/TestResultWrapperConverter.java
Index: TestResultWrapperConverter.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/save/converters/TestResultWrapperConverter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TestResultWrapperConverter.java 23 Jun 2005 00:39:39 -0000 1.2
+++ TestResultWrapperConverter.java 9 Jul 2005 00:10:37 -0000 1.3
@@ -64,7 +64,7 @@
public void marshal(Object arg0, HierarchicalStreamWriter arg1,
MarshallingContext arg2)
{
-
+ // Not used, as the <testResult> element is generated by the
ResultCollector class
}
/* (non-Javadoc)
@@ -75,6 +75,10 @@
{
TestResultWrapper results = new TestResultWrapper();
Collection samples = new ArrayList();
+ String ver = reader.getAttribute("version");
+ if (ver==null || ver.length()==0) ver="1.0";
+ results.setVersion(ver);
+ ConversionHelp.setInVersion(ver);// Make sure decoding follows input
file
while (reader.hasMoreChildren()) {
reader.moveDown();
SampleResult res = (SampleResult)readItem(reader, context, results);
1.6 +21 -0
jakarta-jmeter/src/core/org/apache/jmeter/save/converters/ConversionHelp.java
Index: ConversionHelp.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/save/converters/ConversionHelp.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ConversionHelp.java 23 Jun 2005 00:39:39 -0000 1.5
+++ ConversionHelp.java 9 Jul 2005 00:10:37 -0000 1.6
@@ -37,8 +37,27 @@
private static final String CHAR_SET = "UTF-8";
transient private static final Logger log =
LoggingManager.getLoggerForClass();
+ /*
+ * These must be set before reading/writing the XML.
+ * Rather a hack, but saves changing all the method calls to include an
extra variable.
+ */
+ private static String inVersion;
+ private static String outVersion = "1.1"; // Default for writing
+
+ public static void setInVersion(String v)
+ {
+ inVersion=v;
+ }
+
+ public static void setOutVersion(String v)
+ {
+ outVersion=v;
+ }
+
public static String encode(String p)
{
+ if (!"1.0".equals(outVersion)) return p;
+ // Only encode strings if inVersion = 1.0
if(p == null)
{
return "";
@@ -57,6 +76,8 @@
public static String decode(String p)
{
+ if (!"1.0".equals(inVersion)) return p;
+ // Only decode strings if inVersion = 1.0
if(p == null)
{
return null;
1.65 +5 -2
jakarta-jmeter/src/core/org/apache/jmeter/save/SaveService.java
Index: SaveService.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/save/SaveService.java,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -r1.64 -r1.65
--- SaveService.java 8 Jul 2005 00:18:17 -0000 1.64
+++ SaveService.java 9 Jul 2005 00:10:38 -0000 1.65
@@ -40,6 +40,7 @@
import org.apache.jmeter.save.converters.StringPropertyConverter;
import org.apache.jmeter.save.converters.TestElementConverter;
import org.apache.jmeter.save.converters.TestElementPropertyConverter;
+import org.apache.jmeter.save.converters.TestResultWrapperConverter;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.collections.HashTree;
@@ -61,7 +62,7 @@
private static Logger log = LoggingManager.getLoggerForClass();
// Version information for test plan header
- static String version = "1.0";
+ public static final String version = "1.1";
static String propertiesVersion = "";//read from properties file
private static final String PROPVERSION = "1.7";
@@ -195,6 +196,7 @@
ScriptWrapper wrapper = new ScriptWrapper();
wrapper.testPlan = tree;
saver.toXML(wrapper, writer);
+ writer.write('\n');// Ensure terminated properly
}
public static void saveElement(Object el,Writer writer) throws Exception
@@ -285,7 +287,8 @@
checkVersion(StringPropertyConverter.class, "1.6");
checkVersion(TestElementConverter.class, "1.3");
checkVersion(TestElementPropertyConverter.class, "1.6");
- checkVersion(ScriptWrapperConverter.class, "1.4");
+ checkVersion(ScriptWrapperConverter.class, "1.5");
+ checkVersion(TestResultWrapperConverter.class, "1.3");
if (!PROPVERSION.equalsIgnoreCase(propertiesVersion))
{
log.warn("Property file - expected " + PROPVERSION + ", found "
1.5 +4 -1
jakarta-jmeter/src/core/org/apache/jmeter/save/ScriptWrapperConverter.java
Index: ScriptWrapperConverter.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/save/ScriptWrapperConverter.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ScriptWrapperConverter.java 8 Jul 2005 00:15:01 -0000 1.4
+++ ScriptWrapperConverter.java 9 Jul 2005 00:10:38 -0000 1.5
@@ -17,6 +17,7 @@
package org.apache.jmeter.save;
+import org.apache.jmeter.save.converters.ConversionHelp;
import org.apache.jorphan.collections.HashTree;
import com.thoughtworks.xstream.alias.ClassMapper;
@@ -59,6 +60,7 @@
MarshallingContext context)
{
ScriptWrapper wrap = (ScriptWrapper)arg0;
+ ConversionHelp.setOutVersion(SaveService.version);// Ensure output
follows version
writer.addAttribute("version",SaveService.version);
writer.addAttribute("properties",SaveService.propertiesVersion);
writer.startNode(classMapper.serializedClass(wrap.testPlan.getClass()));
@@ -74,6 +76,7 @@
{
ScriptWrapper wrap = new ScriptWrapper();
wrap.version = reader.getAttribute("version");
+ ConversionHelp.setInVersion(wrap.version);// Make sure decoding
follows input file
reader.moveDown();
wrap.testPlan =
(HashTree)context.convertAnother(wrap,getNextType(reader));
return wrap;
1.52 +8 -7
jakarta-jmeter/src/core/org/apache/jmeter/reporters/ResultCollector.java
Index: ResultCollector.java
===================================================================
RCS file:
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/reporters/ResultCollector.java,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -r1.51 -r1.52
--- ResultCollector.java 14 May 2005 23:28:30 -0000 1.51
+++ ResultCollector.java 9 Jul 2005 00:10:38 -0000 1.52
@@ -66,9 +66,12 @@
public class ResultCollector extends AbstractListenerElement implements
SampleListener, Clearable, Serializable, TestListener, Remoteable,
NoThreadClone {
- static final long serialVersionUID = 1;
+ static final long serialVersionUID = 2;
private static final String TESTRESULTS_START = "<testResults>";
+ private static final String TESTRESULTS_START_V1_1 = "<testResults
version=\""
+ +SaveService.version
+ +"\">";
private static final String TESTRESULTS_END = "</testResults>";
@@ -220,7 +223,7 @@
SampleSaveConfiguration saveConfig) {
if (saveConfig.saveAsXml()) {
writer.println(XML_HEADER);
- writer.println(TESTRESULTS_START);
+ writer.println(TESTRESULTS_START_V1_1);
} else if (saveConfig.saveFieldNames()) {
writer.println(OldSaveService.printableFieldNamesToString());
}
@@ -231,6 +234,7 @@
if (saveConfig.saveAsXml()) {
pw.print("\n");
pw.print(TESTRESULTS_END);
+ pw.print("\n");// Added in version 1.1
}
}
@@ -273,14 +277,11 @@
if (len < MIN_XML_FILE_LEN) {
return false;
}
- raf.seek(len - TESTRESULTS_END.length() - 10);// TODO: may not
- // work on
- // all OSes?
+ raf.seek(len - TESTRESULTS_END.length() - 10);// TODO: may not
work on all OSes?
String line;
long pos = raf.getFilePointer();
int end = 0;
- while ((line = raf.readLine()) != null)// reads to end of line OR
- // file
+ while ((line = raf.readLine()) != null)// reads to end of line
OR file
{
end = line.indexOf(TESTRESULTS_END);
if (end >= 0) // found the string
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]