bloritsch    01/09/05 08:31:56

  Modified:    src/org/apache/jmeter/save/handlers ThreadGroupHandler.java
  Log:
  Fix ThreadGroupHandler to output valid XML
  
  Revision  Changes    Path
  1.13      +174 -176  
jakarta-jmeter/src/org/apache/jmeter/save/handlers/ThreadGroupHandler.java
  
  Index: ThreadGroupHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/org/apache/jmeter/save/handlers/ThreadGroupHandler.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- ThreadGroupHandler.java   2001/08/31 00:46:44     1.12
  +++ ThreadGroupHandler.java   2001/09/05 15:31:56     1.13
  @@ -1,176 +1,174 @@
  -/*
  - * ====================================================================
  - * The Apache Software License, Version 1.1
  - *
  - * Copyright (c) 2001 The Apache Software Foundation.  All rights
  - * reserved.
  - *
  - * Redistribution and use in source and binary forms, with or without
  - * modification, are permitted provided that the following conditions
  - * are met:
  - *
  - * 1. Redistributions of source code must retain the above copyright
  - * notice, this list of conditions and the following disclaimer.
  - *
  - * 2. Redistributions in binary form must reproduce the above copyright
  - * notice, this list of conditions and the following disclaimer in
  - * the documentation and/or other materials provided with the
  - * distribution.
  - *
  - * 3. The end-user documentation included with the redistribution,
  - * if any, must include the following acknowledgment:
  - * "This product includes software developed by the
  - * Apache Software Foundation (http://www.apache.org/)."
  - * Alternately, this acknowledgment may appear in the software itself,
  - * if and wherever such third-party acknowledgments normally appear.
  - *
  - * 4. The names "Apache" and "Apache Software Foundation" and
  - * "Apache JMeter" must not be used to endorse or promote products
  - * derived from this software without prior written permission. For
  - * written permission, please contact [EMAIL PROTECTED]
  - *
  - * 5. Products derived from this software may not be called "Apache",
  - * "Apache JMeter", nor may "Apache" appear in their name, without
  - * prior written permission of the Apache Software Foundation.
  - *
  - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  - * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  - * SUCH DAMAGE.
  - * ====================================================================
  - *
  - * This software consists of voluntary contributions made by many
  - * individuals on behalf of the Apache Software Foundation.  For more
  - * information on the Apache Software Foundation, please see
  - * <http://www.apache.org/>.
  - */
  -package org.apache.jmeter.save.handlers;
  -
  -import org.xml.sax.Attributes;
  -import java.util.*;
  -
  -import org.apache.jmeter.threads.ThreadGroup;
  -import org.apache.jmeter.save.Saveable;
  -import java.io.Writer;
  -import org.apache.jmeter.save.xml.*;
  -import org.apache.jmeter.control.SamplerController;
  -import org.apache.jmeter.control.LoopController;
  -
  -/************************************************************
  - *  Title: Description: Copyright: Copyright (c) 2001 Company:
  - *
  - *@author     Michael Stover
  - *@created    $Date: 2001/08/31 00:46:44 $
  - *@version    1.0
  - ***********************************************************/
  -
  -public class ThreadGroupHandler extends TagHandler
  -{
  -
  -     private ThreadGroup group;
  -
  -     /************************************************************
  -      *  !ToDo (Constructor description)
  -      ***********************************************************/
  -     public ThreadGroupHandler()
  -     {
  -     }
  -
  -     /************************************************************
  -      *  !ToDo (Method description)
  -      *
  -      *@param  atts                     !ToDo (Parameter description)
  -      *@exception  java.lang.Exception  !ToDo (Exception description)
  -      ***********************************************************/
  -     public void setAtts(Attributes atts) throws java.lang.Exception
  -     {
  -             group = new ThreadGroup();
  -             group.setName(atts.getValue("name"));
  -             try
  -             {
  -                     
group.setNumThreads(Integer.parseInt(atts.getValue("numThreads")));
  -                     group.setRampUp(Integer.parseInt(atts.getValue("rampUp")));
  -             }
  -             catch (Exception ex)
  -             {
  -                     ex.printStackTrace();
  -             }
  -
  -     }
  -
  -     /************************************************************
  -      *  !ToDoo (Method description)
  -      *
  -      *@return    !ToDo (Return description)
  -      ***********************************************************/
  -     public String getPrimaryTagName()
  -     {
  -             return "ThreadGroup";
  -     }
  -
  -     /************************************************************
  -      *  !ToDoo (Method description)
  -      *
  -      *@return    !ToDo (Return description)
  -      ***********************************************************/
  -     public Object getModel()
  -     {
  -             return group;
  -     }
  -
  -     /************************************************************
  -      *  !ToDo (Method description)
  -      *
  -      *@param  s                        !ToDo (Parameter description)
  -      *@param  out                      !ToDo (Parameter description)
  -      *@exception  java.io.IOException  !ToDo (Exception description)
  -      ***********************************************************/
  -     public void save(Saveable s, Writer out) throws java.io.IOException
  -     {
  -             ThreadGroup save = (ThreadGroup)s;
  -             out.write("<ThreadGroup name=\"");
  -             out.write(JMeterHandler.convertToXML(save.getName()));
  -             out.write("\" numThreads=\"");
  -
  -             out.write(" numThreads=\"");
  -             out.write("" + save.getNumThreads());
  -             out.write("\">\n");
  -
  -             out.write(" rampUp=\"");
  -             out.write("" + save.getRampUp());
  -             out.write("\"");
  -
  -             out.write(">\n");
  -             Collection controllers = new LinkedList();
  -             controllers.add(save.getSamplerController());
  -             JMeterHandler.writeControllers(controllers, out);
  -             JMeterHandler.writeTimers(save.getTimers(), out);
  -             JMeterHandler.writeListeners(save.getListeners(), out);
  -             out.write("</ThreadGroup>\n");
  -     }
  -
  -     /************************************************************
  -      *  !ToDo (Method description)
  -      *
  -      *@param  childObj  !ToDo (Parameter description)
  -      ***********************************************************/
  -     public void notifySubElementEnded(Object childObj)
  -     {
  -             if (childObj instanceof SamplerController)
  -             {
  -                     Iterator children = 
xmlParent.takeChildObjects(this).iterator();
  -                     if (children.hasNext())
  -                     {
  -                             
group.setSamplerController((LoopController)((TagHandler)children.next()).getModel());
  -                     }
  -             }
  -     }
  -}
  +/*
  + * ====================================================================
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 2001 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + * notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + * notice, this list of conditions and the following disclaimer in
  + * the documentation and/or other materials provided with the
  + * distribution.
  + *
  + * 3. The end-user documentation included with the redistribution,
  + * if any, must include the following acknowledgment:
  + * "This product includes software developed by the
  + * Apache Software Foundation (http://www.apache.org/)."
  + * Alternately, this acknowledgment may appear in the software itself,
  + * if and wherever such third-party acknowledgments normally appear.
  + *
  + * 4. The names "Apache" and "Apache Software Foundation" and
  + * "Apache JMeter" must not be used to endorse or promote products
  + * derived from this software without prior written permission. For
  + * written permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache",
  + * "Apache JMeter", nor may "Apache" appear in their name, without
  + * prior written permission of the Apache Software Foundation.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + */
  +package org.apache.jmeter.save.handlers;
  +
  +import org.xml.sax.Attributes;
  +import java.util.*;
  +
  +import org.apache.jmeter.threads.ThreadGroup;
  +import org.apache.jmeter.save.Saveable;
  +import java.io.Writer;
  +import org.apache.jmeter.save.xml.*;
  +import org.apache.jmeter.control.SamplerController;
  +import org.apache.jmeter.control.LoopController;
  +
  +/************************************************************
  + *  Title: Description: Copyright: Copyright (c) 2001 Company:
  + *
  + *@author     Michael Stover
  + *@created    $Date: 2001/09/05 15:31:56 $
  + *@version    1.0
  + ***********************************************************/
  +
  +public class ThreadGroupHandler extends TagHandler
  +{
  +
  +    private ThreadGroup group;
  +
  +    /************************************************************
  +     *  !ToDo (Constructor description)
  +     ***********************************************************/
  +    public ThreadGroupHandler()
  +    {
  +    }
  +
  +    /************************************************************
  +     *  !ToDo (Method description)
  +     *
  +     *@param  atts                     !ToDo (Parameter description)
  +     *@exception  java.lang.Exception  !ToDo (Exception description)
  +     ***********************************************************/
  +    public void setAtts(Attributes atts) throws java.lang.Exception
  +    {
  +        group = new ThreadGroup();
  +        group.setName(atts.getValue("name"));
  +        try
  +        {
  +            group.setNumThreads(Integer.parseInt(atts.getValue("numThreads")));
  +            group.setRampUp(Integer.parseInt(atts.getValue("rampUp")));
  +        }
  +        catch (Exception ex)
  +        {
  +            ex.printStackTrace();
  +        }
  +
  +    }
  +
  +    /************************************************************
  +     *  !ToDoo (Method description)
  +     *
  +     *@return    !ToDo (Return description)
  +     ***********************************************************/
  +    public String getPrimaryTagName()
  +    {
  +        return "ThreadGroup";
  +    }
  +
  +    /************************************************************
  +     *  !ToDoo (Method description)
  +     *
  +     *@return    !ToDo (Return description)
  +     ***********************************************************/
  +    public Object getModel()
  +    {
  +        return group;
  +    }
  +
  +    /************************************************************
  +     *  !ToDo (Method description)
  +     *
  +     *@param  s                        !ToDo (Parameter description)
  +     *@param  out                      !ToDo (Parameter description)
  +     *@exception  java.io.IOException  !ToDo (Exception description)
  +     ***********************************************************/
  +    public void save(Saveable s, Writer out) throws java.io.IOException
  +    {
  +        ThreadGroup save = (ThreadGroup)s;
  +        out.write("<ThreadGroup name=\"");
  +        out.write(JMeterHandler.convertToXML(save.getName()));
  +        out.write("\" numThreads=\"");
  +
  +        out.write(String.valueOf(save.getNumThreads()));
  +
  +        out.write("\" rampUp=\"");
  +        out.write(String.valueOf(save.getRampUp()));
  +        out.write("\"");
  +
  +        out.write(">\n");
  +        Collection controllers = new LinkedList();
  +        controllers.add(save.getSamplerController());
  +        JMeterHandler.writeControllers(controllers, out);
  +        JMeterHandler.writeTimers(save.getTimers(), out);
  +        JMeterHandler.writeListeners(save.getListeners(), out);
  +        out.write("</ThreadGroup>\n");
  +    }
  +
  +    /************************************************************
  +     *  !ToDo (Method description)
  +     *
  +     *@param  childObj  !ToDo (Parameter description)
  +     ***********************************************************/
  +    public void notifySubElementEnded(Object childObj)
  +    {
  +        if (childObj instanceof SamplerController)
  +        {
  +            Iterator children = xmlParent.takeChildObjects(this).iterator();
  +            if (children.hasNext())
  +            {
  +                
group.setSamplerController((LoopController)((TagHandler)children.next()).getModel());
  +            }
  +        }
  +    }
  +}
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to