package com.blazemeter.jmeter.xmpp.actions; import com.blazemeter.jmeter.xmpp.JMeterXMPPSampler; import java.awt.GridBagConstraints; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JTextField; import org.apache.jmeter.samplers.SampleResult; import org.apache.jorphan.logging.LoggingManager; import org.apache.log.Logger; import org.jivesoftware.smack.XMPPConnection; public class Login extends AbstractXMPPAction { private static final Logger log = LoggingManager.getLoggerForClass(); public static final String LOGIN = "login"; public static final String PASSWORD = "password"; public static final String RESOURCE = "resource"; private JTextField login; private JTextField password; private JTextField resource; @Override public String getLabel() { return "Log In"; } @Override public void addUI(JComponent panel, GridBagConstraints labelConstraints, GridBagConstraints editConstraints) { addToPanel(panel, labelConstraints, 0, 0, new JLabel("Username: ", JLabel.RIGHT)); addToPanel(panel, editConstraints, 1, 0, login = new JTextField(20)); addToPanel(panel, labelConstraints, 0, 1, new JLabel("Password: ", JLabel.RIGHT)); addToPanel(panel, editConstraints, 1, 1, password = new JTextField(20)); addToPanel(panel, labelConstraints, 0, 2, new JLabel("Resource: ", JLabel.RIGHT)); addToPanel(panel, editConstraints, 1, 2, resource = new JTextField(20)); } @Override public SampleResult perform(JMeterXMPPSampler sampler, SampleResult res) throws Exception { XMPPConnection conn = sampler.getXMPPConnection(); String loginStr = sampler.getPropertyAsString(LOGIN); String pwdStr = sampler.getPropertyAsString(PASSWORD); String resStr = sampler.getPropertyAsString(RESOURCE); res.setSamplerData("Username: " + loginStr + "\nPassword: " + pwdStr + "\nResource: " + resStr); if (loginStr.isEmpty()) { conn.loginAnonymously(); } else { conn.login(loginStr, pwdStr, resStr); } return res; } @Override public void clearGui() { login.setText(""); password.setText(""); resource.setText("JMeter"); } @Override public void setSamplerProperties(JMeterXMPPSampler sampler) { sampler.setProperty(LOGIN, login.getText()); sampler.setProperty(PASSWORD, password.getText()); sampler.setProperty(RESOURCE, resource.getText()); } @Override public void setGuiFieldsFromSampler(JMeterXMPPSampler sampler) { login.setText(sampler.getPropertyAsString(LOGIN)); password.setText(sampler.getPropertyAsString(PASSWORD)); resource.setText(sampler.getPropertyAsString(RESOURCE)); } }