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 ms...@apache.org on 2001/07/15 19:01:06 UTC
cvs commit: jakarta-jmeter/src/org/apache/jmeter/visualizers MailerVisualizer.java ViewResultsVisualizer.java
mstover1 01/07/15 10:01:06
Modified: src/org/apache/jmeter/protocol/http/sampler HTTPSampler.java
src/org/apache/jmeter/reporters ResultCollector.java
src/org/apache/jmeter/visualizers MailerVisualizer.java
ViewResultsVisualizer.java
Added: src/org/apache/jmeter/reporters MailerResultCollector.java
src/org/apache/jmeter/samplers Clearable.java
Log:
Mailer visualizer revamped to new JMeter architecture. New Clearable interface.
Revision Changes Path
1.15 +4 -4 jakarta-jmeter/src/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java
Index: HTTPSampler.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- HTTPSampler.java 2001/06/29 21:57:15 1.14
+++ HTTPSampler.java 2001/07/15 17:01:05 1.15
@@ -6,7 +6,7 @@
* companies.
*
* All rights reserved
- * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java,v 1.14 2001/06/29 21:57:15 mstover1 Exp $
+ * $Header: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java,v 1.15 2001/07/15 17:01:05 mstover1 Exp $
*/
package org.apache.jmeter.protocol.http.sampler;
@@ -28,8 +28,8 @@
* HTTP requests, including cookies and authentication.
*
*@author Michael Stover
- *@created $Date: 2001/06/29 21:57:15 $
- *@version $Revision: 1.14 $
+ *@created $Date: 2001/07/15 17:01:05 $
+ *@version $Revision: 1.15 $
*/
public class HTTPSampler implements Sampler
{
@@ -304,7 +304,7 @@
}
catch (IOException ex)
{
- ex.printStackTrace();
+ //ex.printStackTrace();
res.setTime((long) 0);
res.putValue(this.TEXT_RESPONSE, ex.toString());
res.putValue(SUCCESS, new Boolean(false));
1.7 +272 -164 jakarta-jmeter/src/org/apache/jmeter/reporters/ResultCollector.java
Index: ResultCollector.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/reporters/ResultCollector.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ResultCollector.java 2001/06/29 21:57:21 1.6
+++ ResultCollector.java 2001/07/15 17:01:05 1.7
@@ -1,164 +1,272 @@
-/*
- * ====================================================================
- * 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 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.reporters;
-
-import org.apache.jmeter.gui.*;
-import java.util.*;
-import org.apache.jmeter.samplers.*;
-import org.apache.jmeter.visualizers.ViewResultsVisualizer;
-import org.apache.jmeter.save.Saveable;
-/**
- * Title:
- * Description:
- * Copyright: Copyright (c) 2001
- * Company:
- * @author Michael Stover
- * @version 1.0
- */
-
-public class ResultCollector implements JMeterComponentModel,SampleListener,Saveable
-{
-
- private ArrayList results = new ArrayList();
- private String name;
- private ViewResultsVisualizer listener;
- private int current;
-
- public ResultCollector()
- {
- current = 0;
- }
-
- public Class getTagHandlerClass()
- {
- return org.apache.jmeter.save.handlers.JMeterComponentHandler.class;
- }
-
- public void setListener(ViewResultsVisualizer listener)
- {
- this.listener = listener;
- }
-
- public Class getGuiClass()
- {
- return org.apache.jmeter.visualizers.ViewResultsVisualizer.class;
- }
- public String getName()
- {
- return name;
- }
- public void setName(String name)
- {
- this.name = name;
- }
- public Collection getAddList()
- {
- return null;
- }
- public String getClassLabel()
- {
- return "View Results";
- }
- public void uncompile()
- {
- this.clear();
- }
-
- public void clear()
- {
- results.clear();
- current = 0;
- if(listener != null)
- {
- listener.clear();
- }
- }
-
- public String getSampleLabel()
- {
- if(current < results.size() && current >= 0)
- {
- SampleResult res = (SampleResult)results.get(current);
- return (String)res.getValue(Sampler.SAMPLE_LABEL);
- }
- else return "";
- }
-
- public String getTextResponse()
- {
- if(current < results.size() && current >= 0)
- {
- return (String)((SampleResult)results.get(current++)).getValue(Sampler.TEXT_RESPONSE);
- }
- else return "";
- }
-
- public void sampleStarted(SampleEvent e)
- {
- }
-
- public void sampleStopped(SampleEvent e)
- {
- }
-
- public void sampleOccurred(SampleEvent e)
- {
- results.add(e.getResult());
- if(listener != null)
- {
- listener.updateGui();
- }
- }
-}
\ No newline at end of file
+/*
+ * ====================================================================
+ * 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 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.reporters;
+
+import org.apache.jmeter.gui.*;
+import java.util.*;
+import org.apache.jmeter.samplers.*;
+import org.apache.jmeter.visualizers.ViewResultsVisualizer;
+import org.apache.jmeter.save.Saveable;
+/**
+ * Title: Description: Copyright: Copyright (c) 2001 Company:
+ *
+ *@author Michael Stover
+ *@created July 14, 2001
+ *@version 1.0
+ */
+
+public class ResultCollector implements JMeterComponentModel, SampleListener, Saveable,Clearable
+{
+ private static int SIZE_LIMIT = 100;
+
+ private ArrayList results = new ArrayList();
+ private String name;
+ private ModelSupported listener;
+ private int current;
+
+ /**
+ * Constructor for the ResultCollector object
+ */
+ public ResultCollector()
+ {
+ current = 0;
+ }
+
+ /**
+ * Sets the Listener attribute of the ResultCollector object
+ *
+ *@param listener The new Listener value
+ */
+ public void setListener(ModelSupported listener)
+ {
+ this.listener = listener;
+ }
+
+ /**
+ * Sets the Name attribute of the ResultCollector object
+ *
+ *@param name The new Name value
+ */
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ /**
+ * Gets the TagHandlerClass attribute of the ResultCollector object
+ *
+ *@return The TagHandlerClass value
+ */
+ public Class getTagHandlerClass()
+ {
+ return org.apache.jmeter.save.handlers.JMeterComponentHandler.class;
+ }
+
+ /**
+ * Gets the GuiClass attribute of the ResultCollector object
+ *
+ *@return The GuiClass value
+ */
+ public Class getGuiClass()
+ {
+ return org.apache.jmeter.visualizers.ViewResultsVisualizer.class;
+ }
+
+ /**
+ * Gets the Name attribute of the ResultCollector object
+ *
+ *@return The Name value
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * Gets the AddList attribute of the ResultCollector object
+ *
+ *@return The AddList value
+ */
+ public Collection getAddList()
+ {
+ return null;
+ }
+
+ /**
+ * Gets the ClassLabel attribute of the ResultCollector object
+ *
+ *@return The ClassLabel value
+ */
+ public String getClassLabel()
+ {
+ return "View Results";
+ }
+
+
+ /**
+ * Gets the SampleLabel attribute of the ResultCollector object
+ *
+ *@return The SampleLabel value
+ */
+ public String getSampleLabel()
+ {
+ if (current < results.size() && current >= 0)
+ {
+ SampleResult res = (SampleResult) results.get(current);
+ return (String) res.getValue(Sampler.SAMPLE_LABEL);
+ }
+ else
+ {
+ return "";
+ }
+ }
+
+ /**
+ * Gets the TextResponse attribute of the ResultCollector object
+ *
+ *@return The TextResponse value
+ */
+ public String getTextResponse()
+ {
+ if (current < results.size() && current >= 0)
+ {
+ return (String) ((SampleResult) results.get(current)).getValue(Sampler.TEXT_RESPONSE);
+ }
+ else
+ {
+ return "";
+ }
+ }
+
+ /**
+ * Description of the Method
+ */
+ public void uncompile()
+ {
+ this.clear();
+ }
+
+ /**
+ * Description of the Method
+ */
+ public void clear()
+ {
+ results.clear();
+ current = 0;
+ if (listener != null)
+ {
+ ((Clearable)listener).clear();
+ }
+ }
+
+ /**
+ * Description of the Method
+ */
+ public void next()
+ {
+ if (++current >= results.size())
+ {
+ current--;
+ }
+ }
+
+ /**
+ * Description of the Method
+ */
+ public void previous()
+ {
+ if (--current < 0)
+ {
+ current = 0;
+ }
+ }
+
+ /**
+ * Description of the Method
+ *
+ *@param e Description of Parameter
+ */
+ public void sampleStarted(SampleEvent e)
+ {
+ }
+
+ /**
+ * Description of the Method
+ *
+ *@param e Description of Parameter
+ */
+ public void sampleStopped(SampleEvent e)
+ {
+ }
+
+ /**
+ * Description of the Method
+ *
+ *@param e Description of Parameter
+ */
+ public void sampleOccurred(SampleEvent e)
+ {
+ results.add(e.getResult());
+ if(results.size() > SIZE_LIMIT)
+ {
+ results.remove(0);
+ current--;
+ }
+ if (listener != null)
+ {
+ listener.updateGui();
+ }
+ }
+}
1.1 jakarta-jmeter/src/org/apache/jmeter/reporters/MailerResultCollector.java
Index: MailerResultCollector.java
===================================================================
package org.apache.jmeter.reporters;
import java.util.*;
import java.net.*;
import javax.mail.*;
import javax.mail.internet.*;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jmeter.samplers.*;
/**
* Title: Apache JMeter
* Description:
* Copyright: Copyright (c) 2000
* Company: Apache Foundation
* @author Michael Stover
* @version 1.0
*/
public class MailerResultCollector extends ResultCollector
{
String address;
String from;
String smtpHost;
String failSubject;
String successSubject;
long failureCount = 0;
long successCount = 0;
long failureLimit = 2;
long successLimit = 2;
boolean failureMsgSent = false;
boolean siteDown = false;
boolean successMsgSent = false;
public MailerResultCollector()
{
super();
from = JMeterUtils.getPropDefault("mailer.from","");
address = JMeterUtils.getPropDefault("mailer.addressies","");
smtpHost = JMeterUtils.getPropDefault("mailer.smtphost","");
failSubject = JMeterUtils.getPropDefault("mailer.failsubject","");
successSubject = JMeterUtils.getPropDefault("mailer.successsubject","");
try
{
failureLimit =
Long.parseLong(JMeterUtils.getPropDefault("mailer.failurelimit","2"));
}catch (NumberFormatException ex){}
try
{
successLimit =
Long.parseLong(JMeterUtils.getPropDefault("mailer.successlimit","2"));
}catch (NumberFormatException ex){}
}
/**
* Gets the GuiClass attribute of the ResultCollector object
*
*@return The GuiClass value
*/
public Class getGuiClass()
{
return org.apache.jmeter.visualizers.MailerVisualizer.class;
}
/**
* Gets the ClassLabel attribute of the ResultCollector object
*
*@return The ClassLabel value
*/
public String getClassLabel()
{
return "Email Results";
}
public long getFailureLimit()
{
return failureLimit;
}
public long getFailureCount()
{
return failureCount;
}
public long getSuccessLimit()
{
return successLimit;
}
public void setFailureLimit(long limit)
{
failureLimit = limit;
}
public void setSuccessLimit(long limit)
{
successLimit = limit;
}
public void setAddress(String address)
{
this.address = address;
}
public String getAddress()
{
return address;
}
public void setFrom(String from)
{
this.from = from;
}
public String getFrom()
{
return from;
}
public void setSmtpHost(String host)
{
smtpHost = host;
}
public String getSmtpHost()
{
return smtpHost;
}
public void setFailSubject(String subject)
{
failSubject = subject;
}
public String getFailSubject()
{
return failSubject;
}
public void setSuccessSubject(String subject)
{
successSubject = subject;
}
public String getSuccessSubject()
{
return successSubject;
}
/************************************************************
* !ToDoo (Method description)
*
*@return !ToDo (Return description)
***********************************************************/
public synchronized boolean isFailing()
{
return (failureCount > failureLimit);
}
public void sendTestMessage()
{
System.out.println("### Test To: " + this.address + ", " +
"Via: " + this.smtpHost + ", " +
"Fail Subject: " + this.failSubject + ", " +
"Success Subject: " + this.successSubject);
String testMessage = ("### Test To: " + this.address + ", " +
"Via: " + this.smtpHost + ", " +
"Fail Subject: " + this.failSubject + ", " +
"Success Subject: " + this.successSubject);
Vector addressVector = newAddressVector(address);
sendMail(from, addressVector, "Testing addressies", testMessage, smtpHost);
}
/************************************************************
* !ToDo (Method description)
*
*@param sample !ToDo (Parameter description)
***********************************************************/
public synchronized void sampleOccurred(SampleEvent event)
{
super.sampleOccurred(event);
SampleResult sample = event.getResult();
// -1 is the code for a failed sample.
//
if (sample.getValue(Sampler.SUCCESS) == null ||
!((Boolean)sample.getValue(Sampler.SUCCESS)).booleanValue())
{
failureCount++;
}
else
{
successCount++;
}
if (this.isFailing() && !siteDown && !failureMsgSent)
{
// Send the mail ...
Vector addressVector = newAddressVector(address);
sendMail(from, addressVector, failSubject, "URL Failed: " +
sample.getValue(Sampler.SAMPLE_LABEL), smtpHost);
siteDown = true;
failureMsgSent = true;
successCount = 0;
}
if (siteDown && (sample.getTime() != -1) & !successMsgSent)
{
// Send the mail ...
if (successCount > successLimit)
{
Vector addressVector = newAddressVector(address);
sendMail(from, addressVector, successSubject, "URL Restarted: " +
sample.getValue(Sampler.SAMPLE_LABEL), smtpHost);
siteDown = false;
successMsgSent = true;
}
}
if (successMsgSent && failureMsgSent)
{
clear();
}
}
/************************************************************
* !ToDo (Method description)
*
*@param from !ToDo (Parameter description)
*@param vEmails !ToDo (Parameter description)
*@param subject !ToDo (Parameter description)
*@param attText !ToDo (Parameter description)
*@param SMTPHost !ToDo (Parameter description)
***********************************************************/
public static synchronized void sendMail(String from,
Vector vEmails,
String subject,
String attText,
String SMTPHost)
{
try
{
String host = SMTPHost;
boolean debug = Boolean.valueOf(host).booleanValue();
InetAddress remote = InetAddress.getByName(host);
InternetAddress[] address = new InternetAddress[vEmails.size()];
for (int k = 0; k < vEmails.size(); k++)
{
address[k] = new InternetAddress(vEmails.elementAt(k).toString());
}
// create some properties and get the default Session
Properties props = new Properties();
props.put("mail.smtp.host", host);
Session session = Session.getDefaultInstance(props, null);
session.setDebug(debug);
// create a message
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject(subject);
msg.setText(attText);
Transport.send(msg);
System.out.println("Mail sent successfully!!");
}
catch (UnknownHostException e1)
{
System.out.println("NxError:Invalid Mail Server " + e1);
System.exit(1);
}
catch (Exception e)
{
e.printStackTrace();
System.exit(1);
}
}
/************************************************************
* !ToDo (Method description)
*
*@param theAddressie !ToDo (Parameter description)
*@return !ToDo (Return description)
***********************************************************/
public synchronized Vector newAddressVector(String theAddressie)
{
Vector addressVector = new Vector();
String addressSep = ", ";
StringTokenizer next = new StringTokenizer(theAddressie, addressSep);
while (next.hasMoreTokens())
{
String theToken = next.nextToken();
if (theToken.indexOf("@") > 0)
{
addressVector.addElement(theToken);
}
}
return addressVector;
}
}
1.1 jakarta-jmeter/src/org/apache/jmeter/samplers/Clearable.java
Index: Clearable.java
===================================================================
package org.apache.jmeter.samplers;
/**
* Title: Apache JMeter
* Description:
* Copyright: Copyright (c) 2000
* Company: Apache Foundation
* @author Michael Stover
* @version 1.0
*/
public interface Clearable
{
/**
* Clears the current data of the object.
*/
public void clear();
}
1.13 +38 -237 jakarta-jmeter/src/org/apache/jmeter/visualizers/MailerVisualizer.java
Index: MailerVisualizer.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/visualizers/MailerVisualizer.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- MailerVisualizer.java 2001/03/17 22:25:59 1.12
+++ MailerVisualizer.java 2001/07/15 17:01:05 1.13
@@ -61,13 +61,14 @@
import javax.swing.event.*;
import java.util.*;
import java.net.*;
-import javax.mail.*;
-import javax.mail.internet.*;
//import javax.activation.* ;
import java.util.Properties;
import org.apache.jmeter.util.*;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler;
+import org.apache.jmeter.reporters.MailerResultCollector;
+import org.apache.jmeter.gui.ModelSupported;
+import org.apache.jmeter.gui.JMeterComponentModel;
/*
* TODO :
@@ -84,27 +85,13 @@
* occurs.
*
*@author <a href="mailto:stuart@personalmd.com">Stuart Schmukler</a>
- *@created $Date: 2001/03/17 22:25:59 $
- *@version $Revision: 1.12 $ $Date: 2001/03/17 22:25:59 $
+ *@created $Date: 2001/07/15 17:01:05 $
+ *@version $Revision: 1.13 $ $Date: 2001/07/15 17:01:05 $
***********************************************************/
-public class MailerVisualizer extends JPanel implements Visualizer, ActionListener
+public class MailerVisualizer extends JPanel implements ModelSupported, ActionListener
{
+ MailerResultCollector model;
- String addressie;
- String from;
- String smtpHost;
- String failsubject;
- String successsubject;
- long failureCount = 0;
- long successCount = 0;
- long failureLimit = 2;
- long successLimit = 2;
- boolean failureMsgSent = false;
- boolean siteDown = false;
- boolean successMsgSent = false;
-
- Properties appProperties;
-
JButton testerButton;
JTextField addressField;
JTextField fromField;
@@ -123,10 +110,21 @@
public MailerVisualizer()
{
super();
+ }
- // Properties connection.
- this.appProperties = JMeterUtils.getJMeterProperties();
+ public void setModel(Object model)
+ {
+ this.model = (MailerResultCollector)model;
+ init();
+ }
+ public void updateGui()
+ {
+ failureField.setText(Long.toString(model.getFailureCount()));
+ }
+
+ private void init()
+ {
// File panel
JPanel mailerPanel = new JPanel();
GridBagLayout g = new GridBagLayout();
@@ -138,8 +136,7 @@
c.gridwidth = 1;
mailerPanel.add(new JLabel("From:"));
- from = appProperties.getProperty("mailer.from");
- fromField = new JTextField(from, 25);
+ fromField = new JTextField(model.getFrom(), 25);
fromField.setEditable(true);
fromField.addActionListener(this);
c.gridwidth = GridBagConstraints.REMAINDER;
@@ -151,8 +148,7 @@
c.gridwidth = 1;
mailerPanel.add(new JLabel("Addressie(s):"));
- addressie = appProperties.getProperty("mailer.addressies");
- addressField = new JTextField(addressie, 25);
+ addressField = new JTextField(model.getAddress(), 25);
addressField.setEditable(true);
addressField.addActionListener(this);
c.gridwidth = GridBagConstraints.REMAINDER;
@@ -162,8 +158,7 @@
c.gridwidth = 1;
mailerPanel.add(new JLabel("SMTP Host:"));
- smtpHost = appProperties.getProperty("mailer.smtphost");
- smtpHostField = new JTextField(smtpHost, 25);
+ smtpHostField = new JTextField(model.getSmtpHost(), 25);
smtpHostField.setEditable(true);
smtpHostField.addActionListener(this);
c.gridwidth = GridBagConstraints.REMAINDER;
@@ -173,8 +168,7 @@
c.gridwidth = 1;
mailerPanel.add(new JLabel("Failure Subject:"));
- failsubject = appProperties.getProperty("mailer.failsubject");
- failsubjectField = new JTextField(failsubject, 25);
+ failsubjectField = new JTextField(model.getFailSubject(), 25);
failsubjectField.setEditable(true);
failsubjectField.addActionListener(this);
c.gridwidth = GridBagConstraints.REMAINDER;
@@ -184,8 +178,7 @@
c.gridwidth = 1;
mailerPanel.add(new JLabel("Success Subject:"));
- successsubject = appProperties.getProperty("mailer.successsubject");
- successsubjectField = new JTextField(successsubject, 25);
+ successsubjectField = new JTextField(model.getSuccessSubject(), 25);
successsubjectField.setEditable(true);
successsubjectField.addActionListener(this);
c.gridwidth = GridBagConstraints.REMAINDER;
@@ -195,16 +188,8 @@
c.gridwidth = 1;
mailerPanel.add(new JLabel("Failure Limit:"));
- try
- {
- failureLimit =
- Long.parseLong(appProperties.getProperty("mailer.failurelimit"));
- }
- catch (NumberFormatException ex)
- {
- // Ignore any garbage
- }
- failureLimitField = new JTextField(Long.toString(failureLimit), 6);
+
+ failureLimitField = new JTextField(Long.toString(model.getFailureLimit()), 6);
failureLimitField.setEditable(true);
failureLimitField.addActionListener(this);
c.gridwidth = GridBagConstraints.REMAINDER;
@@ -213,17 +198,7 @@
c.gridwidth = 1;
mailerPanel.add(new JLabel("Success Limit:"));
-
- try
- {
- successLimit =
- Long.parseLong(appProperties.getProperty("mailer.successlimit"));
- }
- catch (NumberFormatException ex)
- {
- // Ignore any garbage
- }
- successLimitField = new JTextField(Long.toString(successLimit), 6);
+ successLimitField = new JTextField(Long.toString(model.getSuccessLimit()), 6);
successLimitField.setEditable(true);
successLimitField.addActionListener(this);
c.gridwidth = GridBagConstraints.REMAINDER;
@@ -249,26 +224,9 @@
this.add(mailerPanel);
}
- /************************************************************
- * !ToDoo (Method description)
- *
- *@return !ToDo (Return description)
- ***********************************************************/
- public synchronized boolean isFailing()
- {
- return (failureCount > failureLimit);
- }
- /************************************************************
- * !ToDoo (Method description)
- *
- *@return !ToDo (Return description)
- ***********************************************************/
- public JPanel getControlPanel()
- {
- return this;
- }
+
/************************************************************
* !ToDo (Method description)
*
@@ -281,53 +239,36 @@
JComponent c = (JComponent)e.getSource();
if (c == addressField)
{
- this.addressie = this.addressField.getText();
- System.out.println("AddressField=" + addressField.getText());
+ this.model.setAddress(addressField.getText());
}
else if (c == fromField)
{
- this.from = this.fromField.getText();
- System.out.println("FromField=" + fromField.getText());
+ model.setFrom(fromField.getText());
}
else if (c == smtpHostField)
{
- this.smtpHost = this.smtpHostField.getText();
- System.out.println("smtpHostField=" + smtpHostField.getText());
+ model.setSmtpHost(smtpHostField.getText());
}
else if (c == failsubjectField)
{
- this.failsubject = this.failsubjectField.getText();
- System.out.println("failsubjectField=" + failsubjectField.getText());
+ model.setFailSubject(failsubjectField.getText());
}
else if (c == successsubjectField)
{
- this.successsubject = this.successsubjectField.getText();
- System.out.println("successsubjectField=" + successsubjectField.getText());
+ model.setSuccessSubject(successsubjectField.getText());
}
else if (c == failureLimitField)
{
- this.failureLimit = Long.parseLong(this.failureLimitField.getText());
- System.out.println("failureLimitField=" + failureLimitField.getText());
+ model.setFailureLimit(Long.parseLong(this.failureLimitField.getText()));
}
else if (c == successLimitField)
{
- this.successLimit = Long.parseLong(this.successLimitField.getText());
- System.out.println("successLimitField=" + successLimitField.getText());
+ model.setSuccessLimit(Long.parseLong(this.successLimitField.getText()));
}
else if (c == testerButton)
{
- System.out.println("### Test To: " + this.addressie + ", " +
- "Via: " + this.smtpHost + ", " +
- "Fail Subject: " + this.failsubject + ", " +
- "Success Subject: " + this.successsubject);
-
- String testMessage = ("### Test To: " + this.addressie + ", " +
- "Via: " + this.smtpHost + ", " +
- "Fail Subject: " + this.failsubject + ", " +
- "Success Subject: " + this.successsubject);
+ model.sendTestMessage();
- Vector addressVector = newAddressVector(addressie);
- sendMail(from, addressVector, "Testing addressies", testMessage, smtpHost);
}
else
{
@@ -341,103 +282,15 @@
}
- /************************************************************
- * !ToDo (Method description)
- *
- *@param theAddressie !ToDo (Parameter description)
- *@return !ToDo (Return description)
- ***********************************************************/
- public synchronized Vector newAddressVector(String theAddressie)
- {
- Vector addressVector = new Vector();
- String addressSep = ", ";
-
- StringTokenizer next = new StringTokenizer(theAddressie, addressSep);
-
- while (next.hasMoreTokens())
- {
- String theToken = next.nextToken();
-
- if (theToken.indexOf("@") > 0)
- {
- addressVector.addElement(theToken);
- }
- }
-
- return addressVector;
- }
-
-
- /************************************************************
- * !ToDo (Method description)
- *
- *@param sample !ToDo (Parameter description)
- ***********************************************************/
- public synchronized void add(SampleResult sample)
- {
-
- // -1 is the code for a failed sample.
- //
- if (sample.getValue(Sampler.SUCCESS) == null ||
- !((Boolean)sample.getValue(Sampler.SUCCESS)).booleanValue())
- {
- failureCount++;
- }
- else
- {
- successCount++;
- }
-
- if (this.isFailing() && !siteDown && !failureMsgSent)
- {
- // Display ...
- failureField.setText(Long.toString(failureCount));
- repaint();
-
- // Send the mail ...
- Vector addressVector = newAddressVector(addressie);
- sendMail(from, addressVector, failsubject, "URL Failed: " +
- sample.getValue(Sampler.SAMPLE_LABEL), smtpHost);
- siteDown = true;
- failureMsgSent = true;
- successCount = 0;
- }
-
- if (siteDown && (sample.getTime() != -1) & !successMsgSent)
- {
- // Display ...
- failureField.setText(Long.toString(failureCount));
- repaint();
-
- // Send the mail ...
- if (successCount > successLimit)
- {
- Vector addressVector = newAddressVector(addressie);
- sendMail(from, addressVector, successsubject, "URL Restarted: " +
- sample.getValue(Sampler.SAMPLE_LABEL), smtpHost);
- siteDown = false;
- successMsgSent = true;
- }
- }
- if (successMsgSent && failureMsgSent)
- {
- clear();
- }
- }
/************************************************************
* !ToDo (Method description)
***********************************************************/
public synchronized void clear()
{
- failureCount = 0;
- successCount = 0;
- siteDown = false;
- successMsgSent = false;
- failureMsgSent = false;
- failureField.setText(Long.toString(failureCount));
+ failureField.setText(Long.toString(model.getFailureCount()));
repaint();
}
@@ -454,57 +307,5 @@
//-----------
//function to send a mail to list mailaddresses
- /************************************************************
- * !ToDo (Method description)
- *
- *@param from !ToDo (Parameter description)
- *@param vEmails !ToDo (Parameter description)
- *@param subject !ToDo (Parameter description)
- *@param attText !ToDo (Parameter description)
- *@param SMTPHost !ToDo (Parameter description)
- ***********************************************************/
- public static synchronized void sendMail(String from,
- Vector vEmails,
- String subject,
- String attText,
- String SMTPHost)
- {
- try
- {
- String host = SMTPHost;
- boolean debug = Boolean.valueOf(host).booleanValue();
- InetAddress remote = InetAddress.getByName(host);
-
- InternetAddress[] address = new InternetAddress[vEmails.size()];
- for (int k = 0; k < vEmails.size(); k++)
- {
- address[k] = new InternetAddress(vEmails.elementAt(k).toString());
- }
- // create some properties and get the default Session
- Properties props = new Properties();
- props.put("mail.smtp.host", host);
- Session session = Session.getDefaultInstance(props, null);
- session.setDebug(debug);
-
- // create a message
- Message msg = new MimeMessage(session);
- msg.setFrom(new InternetAddress(from));
- msg.setRecipients(Message.RecipientType.TO, address);
- msg.setSubject(subject);
- msg.setText(attText);
- Transport.send(msg);
- System.out.println("Mail sent successfully!!");
- }
- catch (UnknownHostException e1)
- {
- System.out.println("NxError:Invalid Mail Server " + e1);
- System.exit(1);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- System.exit(1);
- }
- }
}
1.12 +5 -3 jakarta-jmeter/src/org/apache/jmeter/visualizers/ViewResultsVisualizer.java
Index: ViewResultsVisualizer.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/visualizers/ViewResultsVisualizer.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- ViewResultsVisualizer.java 2001/03/17 22:26:00 1.11
+++ ViewResultsVisualizer.java 2001/07/15 17:01:05 1.12
@@ -60,6 +60,7 @@
import javax.swing.*;
import org.apache.jmeter.reporters.ResultCollector;
import org.apache.jmeter.gui.*;
+import org.apache.jmeter.samplers.Clearable;
/************************************************************
* Allows the tester to view the textual response from sampling an Entry. This
@@ -67,10 +68,10 @@
* "Continue" button.
*
*@author $Author: mstover1 $
- *@created $Date: 2001/03/17 22:26:00 $
- *@version $Revision: 1.11 $ $Date: 2001/03/17 22:26:00 $
+ *@created $Date: 2001/07/15 17:01:05 $
+ *@version $Revision: 1.12 $ $Date: 2001/07/15 17:01:05 $
***********************************************************/
-public class ViewResultsVisualizer extends JPanel implements ModelSupported, ActionListener
+public class ViewResultsVisualizer extends JPanel implements ModelSupported, ActionListener,Clearable
{
@@ -151,6 +152,7 @@
public void actionPerformed(ActionEvent e)
{
label.setText("");
+ model.next();
updateGui();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org