You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2004/01/15 02:02:16 UTC

cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/samplers/gui ExampleSamplerGui.java

sebb        2004/01/14 17:02:16

  Added:       src/core/org/apache/jmeter/samplers ExampleSampler.java
               src/core/org/apache/jmeter/samplers/gui
                        ExampleSamplerGui.java
  Log:
  Example sampler (non-Bean)
  
  Revision  Changes    Path
  1.1                  jakarta-jmeter/src/core/org/apache/jmeter/samplers/ExampleSampler.java
  
  Index: ExampleSampler.java
  ===================================================================
  /*
   * ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2004 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 apache@apache.org.
   *
   * 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.samplers;
  
  import org.apache.jorphan.logging.LoggingManager;
  import org.apache.log.Logger;
  
  /**
   * Example Sampler (non-Bean version)
   * 
   * @author sebb AT apache DOT org
   * @version $revision$ $date$
   */
  public class ExampleSampler extends AbstractSampler
  {
  
  	protected static Logger log = LoggingManager.getLoggerForClass();
  
      // The name of the property used to hold our data
  	public final static String DATA = "ExampleSampler.data";   //$NON-NLS-1$
  	
  	public ExampleSampler()
  	{
  	}
  
      /* (non-Javadoc)
       * Performs the sample, and returns the result
       * 
       * @see org.apache.jmeter.samplers.Sampler#sample(org.apache.jmeter.samplers.Entry)
       */
      public SampleResult sample(Entry e)
      {
  		SampleResult res = new SampleResult();
  		boolean isOK = false; // Did sample succeed?
  		String data=getData(); // Sampler data
  		String response=null;
  		
  		res.setSampleLabel(getTitle());
  		/*
  		 * Perform the sampling
  		 */
  		res.sampleStart(); //Start timing
  		try {
  			
  			// Do something here ...
  			
  			response=Thread.currentThread().getName();
  			
  			/*
  			 * Set up the sample result details
  			 */
  			res.setSamplerData(data);
  			res.setResponseData(response.getBytes());
  			res.setDataType(SampleResult.TEXT);
  			
  			res.setResponseCode("200");
  			res.setResponseMessage("OK");
  			isOK = true;
  		}
  		catch (Exception ex){
  			log.debug("",ex);
  			res.setResponseCode("500");
  			res.setResponseMessage(ex.toString());
  		}
  		res.sampleEnd(); //End timimg
  		
  		res.setSuccessful(isOK);
  
          return res;
      }
  
      /**
       * @return a string for the sampleResult Title
       */
      private String getTitle()
      {
          return "ExampleSample";
      }
      
      /**
       * @return the data for the sample
       */
      public String getData()
      {
      	return getPropertyAsString(DATA);
      }
  }
  
  
  1.1                  jakarta-jmeter/src/core/org/apache/jmeter/samplers/gui/ExampleSamplerGui.java
  
  Index: ExampleSamplerGui.java
  ===================================================================
  /*
   * ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2004 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 apache@apache.org.
   *
   * 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/>.
   */
  
  /*
   * Example Sampler GUI (non-beans version)
   */
   
  package org.apache.jmeter.samplers.gui;
  
  import java.awt.BorderLayout;
  import java.awt.Component;
  
  import javax.swing.JLabel;
  import javax.swing.JPanel;
  import javax.swing.JTextField;
  
  import org.apache.jmeter.samplers.ExampleSampler;
  import org.apache.jmeter.testelement.TestElement;
  import org.apache.jmeter.util.JMeterUtils;
  
  /**
   *  Example Sampler (non-Bean version)
   * 
   * @author sebb AT apache DOT org
   * @version $revision$ $date$
   */
  public class ExampleSamplerGui extends AbstractSamplerGui
  {
  
  	private JTextField data;
  		
  	public ExampleSamplerGui()
  	{
  		init();
  	}
  
      /* (non-Javadoc)
       * @see org.apache.jmeter.gui.JMeterGUIComponent#getStaticLabel()
       */
      public String getStaticLabel()
      {
  		return JMeterUtils.getResString("example_title");
      }
  
      /* (non-Javadoc)
       * Copy the data from the test element to the GUI
       * 
       * @see org.apache.jmeter.gui.JMeterGUIComponent#configure(org.apache.jmeter.testelement.TestElement)
       */
  	public void configure(TestElement element)
  	{
  		data.setText(element.getPropertyAsString(ExampleSampler.DATA));
  		super.configure(element);
  	}
  
      /* (non-Javadoc)
       * Create the corresponding Test Element and set up its data
       * 
       * @see org.apache.jmeter.gui.JMeterGUIComponent#createTestElement()
       */
      public TestElement createTestElement()
      {
  		ExampleSampler sampler = new ExampleSampler();
  		modifyTestElement(sampler);
  		return sampler;
      }
  
  	/* (non-Javadoc)
  	 * Modifies a given TestElement to mirror the data in the gui components.
  	 * @see org.apache.jmeter.gui.JMeterGUIComponent#modifyTestElement(TestElement)
  	 */
      public void modifyTestElement(TestElement te)
      {
  		te.clear();
  		configureTestElement(te);
  		te.setProperty(ExampleSampler.DATA,data.getText());
      }
  
  
      /*
       * Helper method to set up the GUI screen
       */
  	private void init()
  	{
  		// Standard setup
  		setLayout(new BorderLayout(0, 5));
  		setBorder(makeBorder());
  		add(makeTitlePanel(),BorderLayout.NORTH); // Add the standard title
  		
  		// Specific setup
  		add(createDataPanel(),BorderLayout.CENTER);
  	}
  
      /*
       * Create a data input text field
       * 
       * @return the panel for entering the data
       */
      private Component createDataPanel()
      {
  		JLabel label = new JLabel(JMeterUtils.getResString("example_data"));
  		
  		data = new JTextField(10);
  		data.setName(ExampleSampler.DATA);
  		label.setLabelFor(data);
  
  		JPanel dataPanel = new JPanel(new BorderLayout(5, 0));
  		dataPanel.add(label, BorderLayout.WEST);
  		dataPanel.add(data, BorderLayout.CENTER);
  
          return dataPanel;
      }
  }
  
  

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