Author: sebb
Date: Sat Mar 17 15:12:43 2007
New Revision: 519460

URL: http://svn.apache.org/viewvc?view=rev&rev=519460
Log:
Bug 41876 - Add more options to control what the HTTP Proxy generates

Modified:
    
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/HttpRequestHdr.java
    
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/Proxy.java
    
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
    
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
    jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml

Modified: 
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/HttpRequestHdr.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/HttpRequestHdr.java?view=diff&rev=519460&r1=519459&r2=519460
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/HttpRequestHdr.java
 (original)
+++ 
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/HttpRequestHdr.java
 Sat Mar 17 15:12:43 2007
@@ -32,7 +32,10 @@
 import org.apache.jmeter.protocol.http.control.Header;
 import org.apache.jmeter.protocol.http.control.HeaderManager;
 import org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui;
+import org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui2;
 import org.apache.jmeter.protocol.http.gui.HeaderPanel;
+import org.apache.jmeter.protocol.http.sampler.HTTPSampler;
+import org.apache.jmeter.protocol.http.sampler.HTTPSampler2;
 import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase;
 import org.apache.jmeter.protocol.http.sampler.HTTPSamplerFactory;
 import org.apache.jmeter.testelement.TestElement;
@@ -75,6 +78,8 @@
 
        private Map headers = new HashMap();
 
+       private HTTPSamplerBase sampler;
+
        /*
         * Optionally number the requests
         */
@@ -83,6 +88,17 @@
 
        private static int requestNumber = 0;// running number
 
+       public HttpRequestHdr() {
+               this.sampler = HTTPSamplerFactory.newInstance();
+       }
+       
+       /**
+        * @param samplerTypeName the name of the http sampler to instantiate, 
as defined in HTTPSamplerFactory
+        */
+       public HttpRequestHdr(HTTPSamplerBase sampler) {
+               this.sampler = sampler;
+       }
+       
        /**
         * Parses a http header from a stream.
         * 
@@ -179,15 +195,26 @@
        public HTTPSamplerBase getSampler() throws MalformedURLException, 
IOException, ProtocolException {
                // Damn! A whole new GUI just to instantiate a test element?
                // Isn't there a beter way?
-               HttpTestSampleGui tempGui = new HttpTestSampleGui();
-               HTTPSamplerBase result = createSampler();
-               tempGui.configure(result);
-               tempGui.modifyTestElement(result);
-               result.setFollowRedirects(false);
-               result.setUseKeepAlive(true);
+               HttpTestSampleGui tempGui = null;
+               // Create the corresponding gui for the sampler class
+               if(sampler instanceof HTTPSampler2) {
+                       tempGui = new HttpTestSampleGui2();
+               }
+               else {
+                       tempGui = new HttpTestSampleGui();
+               }
+               sampler.setProperty(TestElement.GUI_CLASS, 
tempGui.getClass().getName());
+               populateSampler();
+               
+               tempGui.configure(sampler);
+               tempGui.modifyTestElement(sampler);
+               // Defaults
+               sampler.setFollowRedirects(false);
+               sampler.setUseKeepAlive(true);
+               
         if (log.isDebugEnabled())
-               log.debug("getSampler: sampler path = " + result.getPath());
-               return result;
+               log.debug("getSampler: sampler path = " + sampler.getPath());
+               return sampler;
        }
 
        private String getContentType() {
@@ -206,9 +233,9 @@
                }
        }
 
-       private HTTPSamplerBase createSampler() {
+       private void populateSampler() {
                MultipartUrlConfig urlConfig = null;
-               HTTPSamplerBase sampler = HTTPSamplerFactory.newInstance();
+               
                sampler.setDomain(serverName());
         if (log.isDebugEnabled())
                log.debug("Proxy: setting server: " + sampler.getDomain());
@@ -253,7 +280,6 @@
                }
         if (log.isDebugEnabled())
                log.debug("sampler path = " + sampler.getPath());
-               return sampler;
        }
 
        //

Modified: 
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/Proxy.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/Proxy.java?view=diff&rev=519460&r1=519459&r2=519460
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/Proxy.java
 (original)
+++ 
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/Proxy.java
 Sat Mar 17 15:12:43 2007
@@ -98,15 +98,27 @@
         * Main processing method for the Proxy object
         */
        public void run() {
-               HttpRequestHdr request = new HttpRequestHdr();
+               // Check which HTTPSampler class we should use
+               String httpSamplerName = HTTPSamplerFactory.DEFAULT_CLASSNAME;
+               if(target.getSamplerTypeName() == 
ProxyControl.SAMPLER_TYPE_HTTP_SAMPLER) {
+                       httpSamplerName = HTTPSamplerFactory.HTTP_SAMPLER_JAVA;
+               }
+               else if(target.getSamplerTypeName() == 
ProxyControl.SAMPLER_TYPE_HTTP_SAMPLER2) {
+                       httpSamplerName = 
HTTPSamplerFactory.HTTP_SAMPLER_APACHE;
+               }
+               // Instantiate the sampler
+               HTTPSamplerBase sampler = 
HTTPSamplerFactory.newInstance(httpSamplerName);
+               
+               HttpRequestHdr request = new HttpRequestHdr(sampler);
                SampleResult result = null;
                HeaderManager headers = null;
 
-               HTTPSamplerBase sampler = null;
                try {
                        request.parse(new 
BufferedInputStream(clientSocket.getInputStream()));
 
-                       sampler = request.getSampler();
+                       // Populate the sampler. It is the same sampler as we 
sent into
+                       // the constructor of the HttpRequestHdr instance above 
+                       request.getSampler();
 
                        /*
                         * Create a Header Manager to ensure that the browsers 
headers are
@@ -146,9 +158,9 @@
                        log.error("", e);
                        writeErrorToClient(HttpReplyHdr.formTimeout());
                } finally {
-            if (sampler == null){
-                sampler = HTTPSamplerFactory.newInstance();
-            }
+                       if (log.isDebugEnabled()) {
+                               log.debug("Will deliver sample " + 
sampler.getName());
+                       }
                        target.deliverSampler(sampler, new TestElement[] { 
captureHttpHeaders ? headers : null }, result);
                        try {
                                clientSocket.close();

Modified: 
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java?view=diff&rev=519460&r1=519459&r2=519460
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
 (original)
+++ 
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
 Sat Mar 17 15:12:43 2007
@@ -40,10 +40,7 @@
 import org.apache.jmeter.gui.tree.JMeterTreeNode;
 import org.apache.jmeter.protocol.http.control.HeaderManager;
 import org.apache.jmeter.protocol.http.control.RecordingController;
-import org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui;
-import org.apache.jmeter.protocol.http.control.gui.HttpTestSampleGui2;
 import org.apache.jmeter.protocol.http.gui.HeaderPanel;
-import org.apache.jmeter.protocol.http.sampler.HTTPSampler2;
 import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase;
 import org.apache.jmeter.samplers.SampleEvent;
 import org.apache.jmeter.samplers.SampleListener;
@@ -75,12 +72,6 @@
     
     private static final Logger log = LoggingManager.getLoggerForClass();
 
-    /*
-     * Use class names so the compiler can detect if a class is renamed/deleted
-     */
-       private static final String HTTP_TEST_SAMPLE_GUI = 
HttpTestSampleGui.class.getName();
-       private static final String HTTP_TEST_SAMPLE_GUI2 = 
HttpTestSampleGui2.class.getName();
-
     private static final String ASSERTION_GUI = AssertionGui.class.getName();
 
     private static final String LOGIC_CONTROLLER_GUI = 
LogicControllerGui.class.getName(); 
@@ -107,8 +98,16 @@
 
        public static final String GROUPING_MODE = 
"ProxyControlGui.grouping_mode"; // $NON-NLS-1$
 
+       public static final String SAMPLER_TYPE_NAME = 
"ProxyControlGui.sampler_type_name"; // $NON-NLS-1$
+
+       public static final String SAMPLER_REDIRECT_AUTOMATICALLY = 
"ProxyControlGui.sampler_redirect_automatically"; // $NON-NLS-1$
+
+       public static final String SAMPLER_FOLLOW_REDIRECTS = 
"ProxyControlGui.sampler_follow_redirects"; // $NON-NLS-1$
+
        public static final String USE_KEEPALIVE = 
"ProxyControlGui.use_keepalive"; // $NON-NLS-1$
 
+       public static final String SAMPLER_DOWNLOAD_IMAGES = 
"ProxyControlGui.sampler_download_images"; // $NON-NLS-1$
+
        public static final String REGEX_MATCH = "ProxyControlGui.regex_match"; 
// $NON-NLS-1$
 
        public static final String HTTPS_SPOOF = "ProxyControlGui.https_spoof";
@@ -120,6 +119,11 @@
        public static final int GROUPING_IN_CONTROLLERS = 2;
 
        public static final int GROUPING_STORE_FIRST_ONLY = 3;
+       
+       // Must agree with the order of entries in the drop-down 
+       // created in ProxyControlGui.createHTTPSamplerPanel()
+       public static final int SAMPLER_TYPE_HTTP_SAMPLER = 0;
+       public static final int SAMPLER_TYPE_HTTP_SAMPLER2 = 1;
 
        private long lastTime = 0;// When was the last sample seen?
 
@@ -130,9 +134,15 @@
        private boolean addAssertions;
 
        private int groupingMode;
+       
+       private boolean samplerRedirectAutomatically;
 
+       private boolean samplerFollowRedirects;
+       
        private boolean useKeepAlive;
 
+       private boolean samplerDownloadImages;
+
        private boolean regexMatch = false;// Should we match using regexes?
        
        /**
@@ -171,6 +181,20 @@
                setProperty(new BooleanProperty(ADD_ASSERTIONS, b));
        }
 
+       public void setSamplerTypeName(int samplerTypeName) {
+               setProperty(new IntegerProperty(SAMPLER_TYPE_NAME, 
samplerTypeName));
+       }
+
+       public void setSamplerRedirectAutomatically(boolean b) {
+               samplerRedirectAutomatically = b;
+               setProperty(new BooleanProperty(SAMPLER_REDIRECT_AUTOMATICALLY, 
b));
+       }
+
+       public void setSamplerFollowRedirects(boolean b) {
+               samplerFollowRedirects = b;
+               setProperty(new BooleanProperty(SAMPLER_FOLLOW_REDIRECTS, b));
+       }
+
        /**
         * @param b
         */
@@ -179,6 +203,11 @@
                setProperty(new BooleanProperty(USE_KEEPALIVE, b));
        }
 
+       public void setSamplerDownloadImages(boolean b) {
+               samplerDownloadImages = b;
+               setProperty(new BooleanProperty(SAMPLER_DOWNLOAD_IMAGES, b));
+       }
+
        public void setIncludeList(Collection list) {
                setProperty(new CollectionProperty(INCLUDE_LIST, new 
HashSet(list)));
        }
@@ -230,9 +259,25 @@
                return getPropertyAsBoolean(CAPTURE_HTTP_HEADERS);
        }
 
+       public int getSamplerTypeName() {
+               return getPropertyAsInt(SAMPLER_TYPE_NAME);
+       }
+       
+       public boolean getSamplerRedirectAutomatically() {
+               return getPropertyAsBoolean(SAMPLER_REDIRECT_AUTOMATICALLY, 
false);
+       }
+
+       public boolean getSamplerFollowRedirects() {
+               return getPropertyAsBoolean(SAMPLER_FOLLOW_REDIRECTS, true);
+       }
+       
        public boolean getUseKeepalive() {
                return getPropertyAsBoolean(USE_KEEPALIVE, true);
        }
+       
+       public boolean getSamplerDownloadImages() {
+               return getPropertyAsBoolean(SAMPLER_DOWNLOAD_IMAGES, false);
+       }
 
        public boolean getRegexMatch() {
                return getPropertyAsBoolean(REGEX_MATCH, false);
@@ -309,12 +354,10 @@
 
                        removeValuesFromSampler(sampler, defaultConfigurations);
                        replaceValues(sampler, subConfigs, 
userDefinedVariables);
+                       sampler.setAutoRedirects(samplerRedirectAutomatically);
+                       sampler.setFollowRedirects(samplerFollowRedirects);
                        sampler.setUseKeepAlive(useKeepAlive);
-                       
-                       sampler.setProperty(TestElement.GUI_CLASS, 
-                                       (sampler instanceof HTTPSampler2) ?
-                                       HTTP_TEST_SAMPLE_GUI2 : 
HTTP_TEST_SAMPLE_GUI
-                                       );
+                       sampler.setImageParser(samplerDownloadImages);
 
                        placeSampler(sampler, subConfigs, myTarget);
 

Modified: 
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java?view=diff&rev=519460&r1=519459&r2=519460
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
 (original)
+++ 
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
 Sat Mar 17 15:12:43 2007
@@ -103,6 +103,26 @@
         */
        private JCheckBox regexMatch;
 
+       /**
+        * The list of sampler type names to choose from
+        */
+       private JComboBox samplerTypeName;
+
+       /**
+        * Set/clear the Redirect automatically box on the samplers (default is 
false)
+        */
+       private JCheckBox samplerRedirectAutomatically;
+       /**
+        * Set/clear the Follow-redirects box on the samplers (default is true)
+        */
+       private JCheckBox samplerFollowRedirects;
+
+
+       /**
+        * Set/clear the Download images box on the samplers (default is false)
+        */
+       private JCheckBox samplerDownloadImages;
+
        /*
         * Spoof the client into thinking that it is communicating with http
         * even if it is really https.
@@ -181,7 +201,11 @@
                        model.setCaptureHttpHeaders(httpHeaders.isSelected());
                        model.setGroupingMode(groupingMode.getSelectedIndex());
                        model.setAssertions(addAssertions.isSelected());
+                       
model.setSamplerTypeName(samplerTypeName.getSelectedIndex());
+                       
model.setSamplerRedirectAutomatically(samplerRedirectAutomatically.isSelected());
+                       
model.setSamplerFollowRedirects(samplerFollowRedirects.isSelected());
                        model.setUseKeepAlive(useKeepAlive.isSelected());
+                       
model.setSamplerDownloadImages(samplerDownloadImages.isSelected());
                        model.setRegexMatch(regexMatch.isSelected());
                        model.setHttpsSpoof(httpsSpoof.isSelected());           
        
                        TreeNodeWrapper nw = (TreeNodeWrapper) 
targetNodes.getSelectedItem();
@@ -228,7 +252,11 @@
                httpHeaders.setSelected(model.getCaptureHttpHeaders());
                groupingMode.setSelectedIndex(model.getGroupingMode());
                addAssertions.setSelected(model.getAssertions());
+               samplerTypeName.setSelectedIndex(model.getSamplerTypeName());
+               
samplerRedirectAutomatically.setSelected(model.getSamplerRedirectAutomatically());
+               
samplerFollowRedirects.setSelected(model.getSamplerFollowRedirects());
                useKeepAlive.setSelected(model.getUseKeepalive());
+               
samplerDownloadImages.setSelected(model.getSamplerDownloadImages());
                regexMatch.setSelected(model.getRegexMatch());
                httpsSpoof.setSelected(model.getHttpsSpoof());
 
@@ -289,8 +317,13 @@
                } else if (command.equals(RESTART)) {
                        model.stopProxy();
                        startProxy();
-               } else if (command.equals(ProxyControl.CAPTURE_HTTP_HEADERS) || 
command.equals(ProxyControl.ADD_ASSERTIONS)
-                               || command.equals(ProxyControl.USE_KEEPALIVE) 
|| command.equals(ProxyControl.REGEX_MATCH)
+               } else if (command.equals(ProxyControl.CAPTURE_HTTP_HEADERS)
+                               || command.equals(ProxyControl.ADD_ASSERTIONS)
+                               || 
command.equals(ProxyControl.SAMPLER_REDIRECT_AUTOMATICALLY)  
+                               || 
command.equals(ProxyControl.SAMPLER_FOLLOW_REDIRECTS) 
+                               || command.equals(ProxyControl.USE_KEEPALIVE)
+                               || 
command.equals(ProxyControl.SAMPLER_DOWNLOAD_IMAGES) 
+                               || command.equals(ProxyControl.REGEX_MATCH)
                                || command.equals(ProxyControl.HTTPS_SPOOF)) {
                        enableRestart();
                } else if (command.equals(ADD_EXCLUDE)) {
@@ -400,6 +433,10 @@
                Box myBox = Box.createVerticalBox();
                myBox.add(createPortPanel());
                myBox.add(Box.createVerticalStrut(5));
+               myBox.add(createTestPlanContentPanel());
+               myBox.add(Box.createVerticalStrut(5));
+               myBox.add(createHTTPSamplerPanel());
+               myBox.add(Box.createVerticalStrut(5));
                myBox.add(createTargetPanel());
                myBox.add(Box.createVerticalStrut(5));
                myBox.add(createGroupingPanel());
@@ -447,6 +484,25 @@
                JLabel label = new JLabel(JMeterUtils.getResString("port"));
                label.setLabelFor(portField);
 
+               httpsSpoof = new 
JCheckBox(JMeterUtils.getResString("proxy_httpsspoofing"));
+               httpsSpoof.setName(ProxyControl.HTTPS_SPOOF);
+               httpsSpoof.setSelected(false);
+               httpsSpoof.addActionListener(this);
+               httpsSpoof.setActionCommand(ProxyControl.HTTPS_SPOOF);          
+               
+               HorizontalPanel panel = new HorizontalPanel();
+               panel.add(label);
+               panel.add(portField);
+
+               panel.add(Box.createHorizontalStrut(10));
+               panel.add(httpsSpoof);
+
+               return panel;
+       }
+
+       private JPanel createTestPlanContentPanel() {
+               JLabel label = new JLabel("Test plan content:");
+
                httpHeaders = new 
JCheckBox(JMeterUtils.getResString("proxy_headers"));
                httpHeaders.setName(ProxyControl.CAPTURE_HTTP_HEADERS);
                httpHeaders.setSelected(true); // maintain original default
@@ -459,39 +515,73 @@
                addAssertions.addActionListener(this);
                addAssertions.setActionCommand(ProxyControl.ADD_ASSERTIONS);
 
-               useKeepAlive = new 
JCheckBox(JMeterUtils.getResString("proxy_usekeepalive"));
-               useKeepAlive.setName(ProxyControl.USE_KEEPALIVE);
-               useKeepAlive.setSelected(true);
-               useKeepAlive.addActionListener(this);
-               useKeepAlive.setActionCommand(ProxyControl.USE_KEEPALIVE);
-
                regexMatch = new 
JCheckBox(JMeterUtils.getResString("proxy_regex"));
                regexMatch.setName(ProxyControl.REGEX_MATCH);
                regexMatch.setSelected(false);
                regexMatch.addActionListener(this);
                regexMatch.setActionCommand(ProxyControl.REGEX_MATCH);
 
-               httpsSpoof = new 
JCheckBox(JMeterUtils.getResString("proxy_httpsspoofing"));
-               httpsSpoof.setName(ProxyControl.HTTPS_SPOOF);
-               httpsSpoof.setSelected(false);
-               httpsSpoof.addActionListener(this);
-               httpsSpoof.setActionCommand(ProxyControl.HTTPS_SPOOF);          
-               
                HorizontalPanel panel = new HorizontalPanel();
                panel.add(label);
-               panel.add(portField);
 
-               panel.add(Box.createHorizontalStrut(10));
                panel.add(httpHeaders);
-
-               panel.add(useKeepAlive);
                panel.add(addAssertions);
                panel.add(regexMatch);
-               panel.add(httpsSpoof);
 
                return panel;
        }
 
+       private JPanel createHTTPSamplerPanel() {
+               JLabel label = new JLabel("HTTP Sampler settings:");
+               
+               DefaultComboBoxModel m = new DefaultComboBoxModel();
+               // Note: position of these elements in the menu *must* match the
+               // corresponding ProxyControl.SAMPLER_TYPE_* values.
+               m.addElement(JMeterUtils.getResString("web_testing_title"));
+               m.addElement(JMeterUtils.getResString("web_testing2_title"));
+               samplerTypeName = new JComboBox(m);
+               samplerTypeName.setName(ProxyControl.SAMPLER_TYPE_NAME);
+               samplerTypeName.setSelectedIndex(0);
+               samplerTypeName.addItemListener(this);
+               JLabel label2 = new JLabel("Type:");
+               label2.setLabelFor(samplerTypeName);
+
+               samplerRedirectAutomatically = new JCheckBox("Redirect 
automatically");
+               
samplerRedirectAutomatically.setName(ProxyControl.SAMPLER_REDIRECT_AUTOMATICALLY);
+               samplerRedirectAutomatically.setSelected(false);
+               samplerRedirectAutomatically.addActionListener(this);
+               
samplerRedirectAutomatically.setActionCommand(ProxyControl.SAMPLER_REDIRECT_AUTOMATICALLY);
+               
+               samplerFollowRedirects = new JCheckBox("Follow redirects");
+               
samplerFollowRedirects.setName(ProxyControl.SAMPLER_FOLLOW_REDIRECTS);
+               samplerFollowRedirects.setSelected(true);
+               samplerFollowRedirects.addActionListener(this);
+               
samplerFollowRedirects.setActionCommand(ProxyControl.SAMPLER_FOLLOW_REDIRECTS);
+               
+               useKeepAlive = new 
JCheckBox(JMeterUtils.getResString("proxy_usekeepalive"));
+               useKeepAlive.setName(ProxyControl.USE_KEEPALIVE);
+               useKeepAlive.setSelected(true);
+               useKeepAlive.addActionListener(this);
+               useKeepAlive.setActionCommand(ProxyControl.USE_KEEPALIVE);
+
+               samplerDownloadImages = new JCheckBox("Download images");
+               
samplerDownloadImages.setName(ProxyControl.SAMPLER_DOWNLOAD_IMAGES);
+               samplerDownloadImages.setSelected(false);
+               samplerDownloadImages.addActionListener(this);
+               
samplerDownloadImages.setActionCommand(ProxyControl.SAMPLER_DOWNLOAD_IMAGES);
+               
+               HorizontalPanel panel = new HorizontalPanel();
+               panel.add(label);
+               panel.add(label2);
+               panel.add(samplerTypeName);
+               panel.add(samplerRedirectAutomatically);
+               panel.add(samplerFollowRedirects);
+               panel.add(useKeepAlive);
+               panel.add(samplerDownloadImages);
+
+               return panel;
+       }
+       
        private JPanel createTargetPanel() {
                targetNodesModel = new DefaultComboBoxModel();
                targetNodes = new JComboBox(targetNodesModel);
@@ -560,7 +650,7 @@
        private JPanel createIncludePanel() {
                includeModel = new PowerTableModel(new String[] { INCLUDE_COL 
}, new Class[] { String.class });
                includeTable = new JTable(includeModel);
-               includeTable.setPreferredScrollableViewportSize(new 
Dimension(100, 50));
+               includeTable.setPreferredScrollableViewportSize(new 
Dimension(100, 30));
                includeTable.addFocusListener(this);
 
                JPanel panel = new JPanel(new BorderLayout());
@@ -576,7 +666,7 @@
        private JPanel createExcludePanel() {
                excludeModel = new PowerTableModel(new String[] { EXCLUDE_COL 
}, new Class[] { String.class });
                excludeTable = new JTable(excludeModel);
-               excludeTable.setPreferredScrollableViewportSize(new 
Dimension(100, 50));
+               excludeTable.setPreferredScrollableViewportSize(new 
Dimension(100, 30));
                excludeTable.addFocusListener(this);
 
                JPanel panel = new JPanel(new BorderLayout());

Modified: jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml?view=diff&rev=519460&r1=519459&r2=519460
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml (original)
+++ jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml Sat Mar 17 15:12:43 2007
@@ -121,6 +121,7 @@
 <li>Bug 41259 - Comment field added to all test elements</li>
 <li>Add standard deviation to Summary Report</li>
 <li>Bug 41873 - Add name to AssertionResult and display AssertionResult in 
ViewResultsFullVisualizer</li>
+<li>Bug 41876 - Add more options to control what the HTTP Proxy generates</li>
 </ul>
 
 <h4>Non-functional improvements:</h4>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to