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]

Reply via email to