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 se...@apache.org on 2008/11/12 02:23:28 UTC

svn commit: r713239 - in /jakarta/jmeter/trunk: src/components/org/apache/jmeter/assertions/gui/ src/core/org/apache/jmeter/gui/util/ src/protocol/http/org/apache/jmeter/protocol/http/gui/ src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ xd...

Author: sebb
Date: Tue Nov 11 17:23:28 2008
New Revision: 713239

URL: http://svn.apache.org/viewvc?rev=713239&view=rev
Log:
Enhance PowerTableModel to support header resource names; use this to fix locale changes in Proxy, Response Assertion, Cookie Manager

Modified:
    jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/AssertionGui.java
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/PowerTableModel.java
    jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java
    jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
    jakarta/jmeter/trunk/xdocs/changes.xml

Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/AssertionGui.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/AssertionGui.java?rev=713239&r1=713238&r2=713239&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/AssertionGui.java (original)
+++ jakarta/jmeter/trunk/src/components/org/apache/jmeter/assertions/gui/AssertionGui.java Tue Nov 11 17:23:28 2008
@@ -47,7 +47,8 @@
  */
 public class AssertionGui extends AbstractAssertionGui {
     /** The name of the table column in the list of patterns. */
-    private static final String COL_NAME = JMeterUtils.getResString("assertion_patterns_to_test"); //$NON-NLS-1$
+    
+    private static final String COL_RESOURCE_NAME = "assertion_patterns_to_test"; //$NON-NLS-1$
 
     /** Radio button indicating that the text response should be tested. */
     private JRadioButton responseStringButton;
@@ -137,7 +138,7 @@
             saveScopeSettings(ra);
             
             ra.clearTestStrings();
-            String[] testStrings = tableModel.getData().getColumn(COL_NAME);
+            String[] testStrings = tableModel.getData().getColumn(COL_RESOURCE_NAME);
             for (int i = 0; i < testStrings.length; i++) {
                 ra.addTestString(testStrings[i]);
             }
@@ -345,7 +346,7 @@
      * @return a new panel for adding string patterns
      */
     private JPanel createStringPanel() {
-        tableModel = new PowerTableModel(new String[] { COL_NAME }, new Class[] { String.class });
+        tableModel = new PowerTableModel(new String[] { COL_RESOURCE_NAME }, new Class[] { String.class }, true);
         stringTable = new JTable(tableModel);
 
         TextAreaCellRenderer renderer = new TextAreaCellRenderer();

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/PowerTableModel.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/PowerTableModel.java?rev=713239&r1=713238&r2=713239&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/PowerTableModel.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/PowerTableModel.java Tue Nov 11 17:23:28 2008
@@ -24,6 +24,7 @@
 
 import javax.swing.table.DefaultTableModel;
 
+import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jorphan.collections.Data;
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.log.Logger;
@@ -31,19 +32,39 @@
 public class PowerTableModel extends DefaultTableModel {
     private static final Logger log = LoggingManager.getLoggerForClass();
 
-    Data model = new Data();
+    private Data model = new Data();
 
-    Class[] columnClasses;
+    private Class[] columnClasses;
 
-    public PowerTableModel(String[] headers, Class[] cc) {
-        if (headers.length != cc.length){
-            throw new IllegalArgumentException("Header and column array sizes differ");
-        }
-        model.setHeaders(headers);
-        columnClasses = cc;
+    private final boolean headersAreResouceNames;
+    
+    /**
+     * Define a table with fixed headers.
+     * 
+     * @param headers list of header names
+     * @param columnClasses list of column classes
+     */
+    public PowerTableModel(String[] headers, Class[] columnClasses) {
+        this(headers, columnClasses, false);
     }
 
-    public PowerTableModel() {
+    /**
+     * Define a table with header names that can be locale-sensitive.
+     * If the useAsResourceNames parameter is true, then the header
+     * values are assumed to be resource names when generating the column headings.
+     * The column names in the data table are not translated.
+     * 
+     * @param headers list of header names
+     * @param columnClasses list of column classes
+     * @param useAsResourceNames set true to use the headers as resource names
+     */
+    public PowerTableModel(String[] headers, Class[] columnClasses, boolean useAsResourceNames) {
+        if (headers.length != columnClasses.length){
+            throw new IllegalArgumentException("Header and column array sizes differ");
+        }
+        this.model.setHeaders(headers);
+        this.columnClasses = columnClasses;
+        this.headersAreResouceNames = useAsResourceNames;
     }
 
     public void setRowValues(int row, Object[] values) {
@@ -237,7 +258,11 @@
      * @return the ColumnName value
      */
     public String getColumnName(int column) {
-        return model.getHeaders()[column];
+        String rawName = model.getHeaders()[column];
+        if (headersAreResouceNames){
+            return JMeterUtils.getResString(rawName);
+        }
+        return rawName;
     }
 
     public boolean isCellEditable(int row, int column) {

Modified: jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java?rev=713239&r1=713238&r2=713239&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java (original)
+++ jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java Tue Nov 11 17:23:28 2008
@@ -59,6 +59,7 @@
 
     private static final Logger log = LoggingManager.getLoggerForClass();
 
+    //++ Action command names
     private static final String ADD_COMMAND = "Add"; //$NON-NLS-1$
 
     private static final String DELETE_COMMAND = "Delete"; //$NON-NLS-1$
@@ -66,6 +67,7 @@
     private static final String LOAD_COMMAND = "Load"; //$NON-NLS-1$
 
     private static final String SAVE_COMMAND = "Save"; //$NON-NLS-1$
+    //--
 
     private JTable cookieTable;
 
@@ -73,14 +75,12 @@
 
     private JCheckBox clearEachIteration;
 
-    private static final String clearEachIterationLabel = "clear_cookies_per_iter"; //$NON-NLS-1$
-
-    private static final String[] columnNames = {
-        JMeterUtils.getResString("name"),   //$NON-NLS-1$
-        JMeterUtils.getResString("value"),  //$NON-NLS-1$
-        JMeterUtils.getResString("domain"), //$NON-NLS-1$
-        JMeterUtils.getResString("path"),   //$NON-NLS-1$
-        JMeterUtils.getResString("secure"), //$NON-NLS-1$
+    private static final String[] COLUMN_RESOURCE_NAMES = {
+        ("name"),   //$NON-NLS-1$
+        ("value"),  //$NON-NLS-1$
+        ("domain"), //$NON-NLS-1$
+        ("path"),   //$NON-NLS-1$
+        ("secure"), //$NON-NLS-1$
         // removed expiration because it's just an annoyance for static cookies
     };
 
@@ -292,8 +292,9 @@
      * Shows the main cookie configuration panel.
      */
     private void init() {
-        tableModel = new PowerTableModel(columnNames, columnClasses);
-        clearEachIteration = new JCheckBox(JMeterUtils.getResString(clearEachIterationLabel), false);
+        tableModel = new PowerTableModel(COLUMN_RESOURCE_NAMES, columnClasses, true);
+        clearEachIteration = 
+            new JCheckBox(JMeterUtils.getResString("clear_cookies_per_iter"), false); //$NON-NLS-1$
         policy = new JLabeledChoice(
                 JMeterUtils.getResString("cookie_manager_policy"), //$NON-NLS-1$
                 policies);

Modified: jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java?rev=713239&r1=713238&r2=713239&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java (original)
+++ jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java Tue Nov 11 17:23:28 2008
@@ -178,9 +178,10 @@
     private static final String DELETE_EXCLUDE = "delete_exclude"; // $NON-NLS-1$
     //- action names
 
-    private static final String INCLUDE_COL = JMeterUtils.getResString("patterns_to_include"); // $NON-NLS-1$
+    // Resource names for column headers
+    private static final String INCLUDE_COL = "patterns_to_include"; // $NON-NLS-1$
 
-    private static final String EXCLUDE_COL = JMeterUtils.getResString("patterns_to_exclude"); // $NON-NLS-1$
+    private static final String EXCLUDE_COL = "patterns_to_exclude"; // $NON-NLS-1$
 
     // Used by itemListener
     private static final String PORTFIELD = "portField"; // $NON-NLS-1$
@@ -690,7 +691,7 @@
     }
 
     private JPanel createIncludePanel() {
-        includeModel = new PowerTableModel(new String[] { INCLUDE_COL }, new Class[] { String.class });
+        includeModel = new PowerTableModel(new String[] { INCLUDE_COL }, new Class[] { String.class }, true);
         includeTable = new JTable(includeModel);
         includeTable.setPreferredScrollableViewportSize(new Dimension(100, 30));
 
@@ -705,7 +706,7 @@
     }
 
     private JPanel createExcludePanel() {
-        excludeModel = new PowerTableModel(new String[] { EXCLUDE_COL }, new Class[] { String.class });
+        excludeModel = new PowerTableModel(new String[] { EXCLUDE_COL }, new Class[] { String.class }, true);
         excludeTable = new JTable(excludeModel);
         excludeTable.setPreferredScrollableViewportSize(new Dimension(100, 30));
 

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=713239&r1=713238&r2=713239&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Tue Nov 11 17:23:28 2008
@@ -164,6 +164,7 @@
 <li>Bug 44941 - Throughput controllers should not share global counters</li>
 <li>Various ReceiveSubscriber thread-safety fixes</li>
 <li>JMSPublisher and Subscriber fixes: thread-safety, support dynamic locale changes, locale independence for JMX attribute values</li>
+<li>Enhance PowerTableModel to support header resource names; use this to fix locale changes in Proxy, Response Assertion, Cookie Manager</li>
 </ul>
 
 <h3>Improvements</h3>



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org