Lines 222-227
public class ProxyControl extends GenericController {
Link Here
|
222 |
// If this is defined, it is assumed to be the alias of a user-supplied certificate; overrides dynamic mode |
222 |
// If this is defined, it is assumed to be the alias of a user-supplied certificate; overrides dynamic mode |
223 |
static final String CERT_ALIAS = JMeterUtils.getProperty("proxy.cert.alias"); // $NON-NLS-1$ |
223 |
static final String CERT_ALIAS = JMeterUtils.getProperty("proxy.cert.alias"); // $NON-NLS-1$ |
224 |
|
224 |
|
|
|
225 |
private static JMeterTreeModel treeModel = null; |
226 |
|
225 |
public enum KeystoreMode { |
227 |
public enum KeystoreMode { |
226 |
USER_KEYSTORE, // user-provided keystore |
228 |
USER_KEYSTORE, // user-provided keystore |
227 |
JMETER_KEYSTORE, // keystore generated by JMeter; single entry |
229 |
JMETER_KEYSTORE, // keystore generated by JMeter; single entry |
Lines 246-251
public class ProxyControl extends GenericController {
Link Here
|
246 |
log.warn("HTTP(S) Test Script Recorder SSL Proxy will use keys that may not work for embedded resources in file " + CERT_PATH_ABS); |
248 |
log.warn("HTTP(S) Test Script Recorder SSL Proxy will use keys that may not work for embedded resources in file " + CERT_PATH_ABS); |
247 |
} |
249 |
} |
248 |
} |
250 |
} |
|
|
251 |
|
252 |
if (GuiPackage.getInstance() != null) { |
253 |
treeModel = GuiPackage.getInstance().getTreeModel(); |
254 |
} |
249 |
} |
255 |
} |
250 |
|
256 |
|
251 |
// Whether to use the redirect disabling feature (can be switched off if it does not work) |
257 |
// Whether to use the redirect disabling feature (can be switched off if it does not work) |
Lines 300-305
public class ProxyControl extends GenericController {
Link Here
|
300 |
setCaptureHttpHeaders(true); // maintain original behaviour |
306 |
setCaptureHttpHeaders(true); // maintain original behaviour |
301 |
} |
307 |
} |
302 |
|
308 |
|
|
|
309 |
/** |
310 |
* When working without GUI required for operation |
311 |
* @param treeModel JMeterTreeModel used for recording |
312 |
*/ |
313 |
public static void setGlobalTreeRoot(JMeterTreeModel treeModel) { |
314 |
ProxyControl.treeModel = treeModel; |
315 |
} |
316 |
|
303 |
public void setPort(int port) { |
317 |
public void setPort(int port) { |
304 |
this.setProperty(new IntegerProperty(PORT, port)); |
318 |
this.setProperty(new IntegerProperty(PORT, port)); |
305 |
} |
319 |
} |
Lines 485-490
public class ProxyControl extends GenericController {
Link Here
|
485 |
try { |
499 |
try { |
486 |
server = new Daemon(getPort(), this); |
500 |
server = new Daemon(getPort(), this); |
487 |
server.start(); |
501 |
server.start(); |
|
|
502 |
if (GuiPackage.getInstance() != null) |
488 |
GuiPackage.getInstance().register(server); |
503 |
GuiPackage.getInstance().register(server); |
489 |
} catch (IOException e) { |
504 |
} catch (IOException e) { |
490 |
log.error("Could not create Proxy daemon", e); |
505 |
log.error("Could not create Proxy daemon", e); |
Lines 674-679
public class ProxyControl extends GenericController {
Link Here
|
674 |
public void stopProxy() { |
689 |
public void stopProxy() { |
675 |
if (server != null) { |
690 |
if (server != null) { |
676 |
server.stopServer(); |
691 |
server.stopServer(); |
|
|
692 |
if (GuiPackage.getInstance() != null) |
677 |
GuiPackage.getInstance().unregister(server); |
693 |
GuiPackage.getInstance().unregister(server); |
678 |
try { |
694 |
try { |
679 |
server.join(1000); // wait for server to stop |
695 |
server.join(1000); // wait for server to stop |
Lines 972-978
public class ProxyControl extends GenericController {
Link Here
|
972 |
* <code>null</code> if none was found. |
988 |
* <code>null</code> if none was found. |
973 |
*/ |
989 |
*/ |
974 |
private JMeterTreeNode findFirstNodeOfType(Class<?> type) { |
990 |
private JMeterTreeNode findFirstNodeOfType(Class<?> type) { |
975 |
JMeterTreeModel treeModel = GuiPackage.getInstance().getTreeModel(); |
|
|
976 |
List<JMeterTreeNode> nodes = treeModel.getNodesOfType(type); |
991 |
List<JMeterTreeNode> nodes = treeModel.getNodesOfType(type); |
977 |
for (JMeterTreeNode node : nodes) { |
992 |
for (JMeterTreeNode node : nodes) { |
978 |
if (node.isEnabled()) { |
993 |
if (node.isEnabled()) { |
Lines 1038-1044
public class ProxyControl extends GenericController {
Link Here
|
1038 |
*/ |
1053 |
*/ |
1039 |
// TODO - could be converted to generic class? |
1054 |
// TODO - could be converted to generic class? |
1040 |
private Collection<?> findApplicableElements(JMeterTreeNode myTarget, Class<? extends TestElement> myClass, boolean ascending) { |
1055 |
private Collection<?> findApplicableElements(JMeterTreeNode myTarget, Class<? extends TestElement> myClass, boolean ascending) { |
1041 |
JMeterTreeModel treeModel = GuiPackage.getInstance().getTreeModel(); |
|
|
1042 |
LinkedList<TestElement> elements = new LinkedList<>(); |
1056 |
LinkedList<TestElement> elements = new LinkedList<>(); |
1043 |
|
1057 |
|
1044 |
// Look for elements directly within the HTTP proxy: |
1058 |
// Look for elements directly within the HTTP proxy: |
Lines 1096-1103
public class ProxyControl extends GenericController {
Link Here
|
1096 |
private void placeSampler(final HTTPSamplerBase sampler, final TestElement[] subConfigs, |
1110 |
private void placeSampler(final HTTPSamplerBase sampler, final TestElement[] subConfigs, |
1097 |
JMeterTreeNode myTarget) { |
1111 |
JMeterTreeNode myTarget) { |
1098 |
try { |
1112 |
try { |
1099 |
final JMeterTreeModel treeModel = GuiPackage.getInstance().getTreeModel(); |
|
|
1100 |
|
1101 |
boolean firstInBatch = false; |
1113 |
boolean firstInBatch = false; |
1102 |
long now = System.currentTimeMillis(); |
1114 |
long now = System.currentTimeMillis(); |
1103 |
long deltaT = now - lastTime; |
1115 |
long deltaT = now - lastTime; |
Lines 1288-1294
public class ProxyControl extends GenericController {
Link Here
|
1288 |
* sampling event to be delivered |
1300 |
* sampling event to be delivered |
1289 |
*/ |
1301 |
*/ |
1290 |
private void notifySampleListeners(SampleEvent event) { |
1302 |
private void notifySampleListeners(SampleEvent event) { |
1291 |
JMeterTreeModel treeModel = GuiPackage.getInstance().getTreeModel(); |
|
|
1292 |
JMeterTreeNode myNode = treeModel.getNodeOf(this); |
1303 |
JMeterTreeNode myNode = treeModel.getNodeOf(this); |
1293 |
Enumeration<JMeterTreeNode> kids = myNode.children(); |
1304 |
Enumeration<JMeterTreeNode> kids = myNode.children(); |
1294 |
while (kids.hasMoreElements()) { |
1305 |
while (kids.hasMoreElements()) { |
Lines 1307-1313
public class ProxyControl extends GenericController {
Link Here
|
1307 |
* (here meaning the proxy recording) has started. |
1318 |
* (here meaning the proxy recording) has started. |
1308 |
*/ |
1319 |
*/ |
1309 |
private void notifyTestListenersOfStart() { |
1320 |
private void notifyTestListenersOfStart() { |
1310 |
JMeterTreeModel treeModel = GuiPackage.getInstance().getTreeModel(); |
|
|
1311 |
JMeterTreeNode myNode = treeModel.getNodeOf(this); |
1321 |
JMeterTreeNode myNode = treeModel.getNodeOf(this); |
1312 |
Enumeration<JMeterTreeNode> kids = myNode.children(); |
1322 |
Enumeration<JMeterTreeNode> kids = myNode.children(); |
1313 |
while (kids.hasMoreElements()) { |
1323 |
while (kids.hasMoreElements()) { |
Lines 1326-1332
public class ProxyControl extends GenericController {
Link Here
|
1326 |
* (here meaning the proxy recording) has ended. |
1336 |
* (here meaning the proxy recording) has ended. |
1327 |
*/ |
1337 |
*/ |
1328 |
private void notifyTestListenersOfEnd() { |
1338 |
private void notifyTestListenersOfEnd() { |
1329 |
JMeterTreeModel treeModel = GuiPackage.getInstance().getTreeModel(); |
|
|
1330 |
JMeterTreeNode myNode = treeModel.getNodeOf(this); |
1339 |
JMeterTreeNode myNode = treeModel.getNodeOf(this); |
1331 |
Enumeration<JMeterTreeNode> kids = myNode.children(); |
1340 |
Enumeration<JMeterTreeNode> kids = myNode.children(); |
1332 |
while (kids.hasMoreElements()) { |
1341 |
while (kids.hasMoreElements()) { |