Lines 202-207
Link Here
|
202 |
// If this is defined, it is assumed to be the alias of a user-supplied certificate; overrides dynamic mode |
202 |
// If this is defined, it is assumed to be the alias of a user-supplied certificate; overrides dynamic mode |
203 |
static final String CERT_ALIAS = JMeterUtils.getProperty("proxy.cert.alias"); // $NON-NLS-1$ |
203 |
static final String CERT_ALIAS = JMeterUtils.getProperty("proxy.cert.alias"); // $NON-NLS-1$ |
204 |
|
204 |
|
|
|
205 |
private static JMeterTreeModel treeModel = null; |
206 |
|
205 |
public static enum KeystoreMode { |
207 |
public static enum KeystoreMode { |
206 |
USER_KEYSTORE, // user-provided keystore |
208 |
USER_KEYSTORE, // user-provided keystore |
207 |
JMETER_KEYSTORE, // keystore generated by JMeter; single entry |
209 |
JMETER_KEYSTORE, // keystore generated by JMeter; single entry |
Lines 226-231
Link Here
|
226 |
log.warn("HTTP(S) Test Script Recorder SSL Proxy will use keys that may not work for embedded resources in file " + CERT_PATH_ABS); |
228 |
log.warn("HTTP(S) Test Script Recorder SSL Proxy will use keys that may not work for embedded resources in file " + CERT_PATH_ABS); |
227 |
} |
229 |
} |
228 |
} |
230 |
} |
|
|
231 |
|
232 |
if (GuiPackage.getInstance() != null) { |
233 |
treeModel = GuiPackage.getInstance().getTreeModel(); |
234 |
} |
229 |
} |
235 |
} |
230 |
|
236 |
|
231 |
// Whether to use the redirect disabling feature (can be switched off if it does not work) |
237 |
// Whether to use the redirect disabling feature (can be switched off if it does not work) |
Lines 280-285
Link Here
|
280 |
setCaptureHttpHeaders(true); // maintain original behaviour |
286 |
setCaptureHttpHeaders(true); // maintain original behaviour |
281 |
} |
287 |
} |
282 |
|
288 |
|
|
|
289 |
/** |
290 |
* When working without GUI required for operation |
291 |
* @param treeModel JMeterTreeModel used for recording |
292 |
*/ |
293 |
public static void setGlobalTreeRoot(JMeterTreeModel treeModel) { |
294 |
ProxyControl.treeModel = treeModel; |
295 |
} |
296 |
|
283 |
public void setPort(int port) { |
297 |
public void setPort(int port) { |
284 |
this.setProperty(new IntegerProperty(PORT, port)); |
298 |
this.setProperty(new IntegerProperty(PORT, port)); |
285 |
} |
299 |
} |
Lines 457-462
Link Here
|
457 |
try { |
471 |
try { |
458 |
server = new Daemon(getPort(), this); |
472 |
server = new Daemon(getPort(), this); |
459 |
server.start(); |
473 |
server.start(); |
|
|
474 |
if (GuiPackage.getInstance() != null) |
460 |
GuiPackage.getInstance().register(server); |
475 |
GuiPackage.getInstance().register(server); |
461 |
} catch (IOException e) { |
476 |
} catch (IOException e) { |
462 |
log.error("Could not create Proxy daemon", e); |
477 |
log.error("Could not create Proxy daemon", e); |
Lines 571-576
Link Here
|
571 |
public void stopProxy() { |
586 |
public void stopProxy() { |
572 |
if (server != null) { |
587 |
if (server != null) { |
573 |
server.stopServer(); |
588 |
server.stopServer(); |
|
|
589 |
if (GuiPackage.getInstance() != null) |
574 |
GuiPackage.getInstance().unregister(server); |
590 |
GuiPackage.getInstance().unregister(server); |
575 |
try { |
591 |
try { |
576 |
server.join(1000); // wait for server to stop |
592 |
server.join(1000); // wait for server to stop |
Lines 844-850
Link Here
|
844 |
* <code>null</code> if none was found. |
860 |
* <code>null</code> if none was found. |
845 |
*/ |
861 |
*/ |
846 |
private JMeterTreeNode findFirstNodeOfType(Class<?> type) { |
862 |
private JMeterTreeNode findFirstNodeOfType(Class<?> type) { |
847 |
JMeterTreeModel treeModel = GuiPackage.getInstance().getTreeModel(); |
|
|
848 |
List<JMeterTreeNode> nodes = treeModel.getNodesOfType(type); |
863 |
List<JMeterTreeNode> nodes = treeModel.getNodesOfType(type); |
849 |
for (JMeterTreeNode node : nodes) { |
864 |
for (JMeterTreeNode node : nodes) { |
850 |
if (node.isEnabled()) { |
865 |
if (node.isEnabled()) { |
Lines 910-916
Link Here
|
910 |
*/ |
925 |
*/ |
911 |
// TODO - could be converted to generic class? |
926 |
// TODO - could be converted to generic class? |
912 |
private Collection<?> findApplicableElements(JMeterTreeNode myTarget, Class<? extends TestElement> myClass, boolean ascending) { |
927 |
private Collection<?> findApplicableElements(JMeterTreeNode myTarget, Class<? extends TestElement> myClass, boolean ascending) { |
913 |
JMeterTreeModel treeModel = GuiPackage.getInstance().getTreeModel(); |
|
|
914 |
LinkedList<TestElement> elements = new LinkedList<TestElement>(); |
928 |
LinkedList<TestElement> elements = new LinkedList<TestElement>(); |
915 |
|
929 |
|
916 |
// Look for elements directly within the HTTP proxy: |
930 |
// Look for elements directly within the HTTP proxy: |
Lines 968-975
Link Here
|
968 |
private void placeSampler(final HTTPSamplerBase sampler, final TestElement[] subConfigs, |
982 |
private void placeSampler(final HTTPSamplerBase sampler, final TestElement[] subConfigs, |
969 |
JMeterTreeNode myTarget) { |
983 |
JMeterTreeNode myTarget) { |
970 |
try { |
984 |
try { |
971 |
final JMeterTreeModel treeModel = GuiPackage.getInstance().getTreeModel(); |
|
|
972 |
|
973 |
boolean firstInBatch = false; |
985 |
boolean firstInBatch = false; |
974 |
long now = System.currentTimeMillis(); |
986 |
long now = System.currentTimeMillis(); |
975 |
long deltaT = now - lastTime; |
987 |
long deltaT = now - lastTime; |
Lines 1163-1169
Link Here
|
1163 |
* sampling event to be delivered |
1175 |
* sampling event to be delivered |
1164 |
*/ |
1176 |
*/ |
1165 |
private void notifySampleListeners(SampleEvent event) { |
1177 |
private void notifySampleListeners(SampleEvent event) { |
1166 |
JMeterTreeModel treeModel = GuiPackage.getInstance().getTreeModel(); |
|
|
1167 |
JMeterTreeNode myNode = treeModel.getNodeOf(this); |
1178 |
JMeterTreeNode myNode = treeModel.getNodeOf(this); |
1168 |
Enumeration<JMeterTreeNode> kids = myNode.children(); |
1179 |
Enumeration<JMeterTreeNode> kids = myNode.children(); |
1169 |
while (kids.hasMoreElements()) { |
1180 |
while (kids.hasMoreElements()) { |
Lines 1182-1188
Link Here
|
1182 |
* (here meaning the proxy recording) has started. |
1193 |
* (here meaning the proxy recording) has started. |
1183 |
*/ |
1194 |
*/ |
1184 |
private void notifyTestListenersOfStart() { |
1195 |
private void notifyTestListenersOfStart() { |
1185 |
JMeterTreeModel treeModel = GuiPackage.getInstance().getTreeModel(); |
|
|
1186 |
JMeterTreeNode myNode = treeModel.getNodeOf(this); |
1196 |
JMeterTreeNode myNode = treeModel.getNodeOf(this); |
1187 |
Enumeration<JMeterTreeNode> kids = myNode.children(); |
1197 |
Enumeration<JMeterTreeNode> kids = myNode.children(); |
1188 |
while (kids.hasMoreElements()) { |
1198 |
while (kids.hasMoreElements()) { |
Lines 1201-1207
Link Here
|
1201 |
* (here meaning the proxy recording) has ended. |
1211 |
* (here meaning the proxy recording) has ended. |
1202 |
*/ |
1212 |
*/ |
1203 |
private void notifyTestListenersOfEnd() { |
1213 |
private void notifyTestListenersOfEnd() { |
1204 |
JMeterTreeModel treeModel = GuiPackage.getInstance().getTreeModel(); |
|
|
1205 |
JMeterTreeNode myNode = treeModel.getNodeOf(this); |
1214 |
JMeterTreeNode myNode = treeModel.getNodeOf(this); |
1206 |
Enumeration<JMeterTreeNode> kids = myNode.children(); |
1215 |
Enumeration<JMeterTreeNode> kids = myNode.children(); |
1207 |
while (kids.hasMoreElements()) { |
1216 |
while (kids.hasMoreElements()) { |