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 2009/11/19 00:16:10 UTC

svn commit: r881994 - in /jakarta/jmeter/trunk: src/core/org/apache/jmeter/config/gui/ src/core/org/apache/jmeter/engine/util/ src/core/org/apache/jmeter/gui/tree/ src/core/org/apache/jmeter/save/ src/core/org/apache/jmeter/testbeans/gui/ src/core/org/...

Author: sebb
Date: Wed Nov 18 23:16:09 2009
New Revision: 881994

URL: http://svn.apache.org/viewvc?rev=881994&view=rev
Log:
Generics and other tidy ups

Modified:
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/tree/JMeterTreeNode.java
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/OldSaveService.java
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/JMeterUtils.java
    jakarta/jmeter/trunk/src/functions/org/apache/jmeter/functions/JexlFunction.java
    jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/collections/SearchByClass.java
    jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java
    jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPFileArgsPanel.java
    jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
    jakarta/jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/config/gui/LDAPArgumentsPanel.java
    jakarta/jmeter/trunk/test/src/org/apache/jmeter/engine/util/TestValueReplacer.java

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java?rev=881994&r1=881993&r2=881994&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java Wed Nov 18 23:16:09 2009
@@ -60,7 +60,7 @@
     private transient JTable table;
 
     /** The model for the arguments table. */
-    protected transient ObjectTableModel tableModel;
+    protected transient ObjectTableModel tableModel; // will only contain Argument or HTTPArgument
 
     /** A button for adding new arguments to the table. */
     private JButton add;
@@ -156,6 +156,7 @@
         if (args instanceof Arguments) {
             arguments = (Arguments) args;
             arguments.clear();
+            @SuppressWarnings("unchecked") // only contains Argument (or HTTPArgument)
             Iterator<Argument> modelData = (Iterator<Argument>) tableModel.iterator();
             while (modelData.hasNext()) {
                 Argument arg = modelData.next();
@@ -326,7 +327,7 @@
      *
      * @return a new Argument object
      */
-    protected Object makeNewArgument() {
+    protected Argument makeNewArgument() {
         return new Argument("", ""); // $NON-NLS-1$ // $NON-NLS-2$
     }
 

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java?rev=881994&r1=881993&r2=881994&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java Wed Nov 18 23:16:09 2009
@@ -154,6 +154,7 @@
         return results.toString();
     }
 
+    @SuppressWarnings("unchecked") // clone will produce correct type
     public CompoundVariable getFunction() {
         CompoundVariable func = new CompoundVariable();
         func.compiledComponents = (LinkedList<Object>) compiledComponents.clone();

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/tree/JMeterTreeNode.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/tree/JMeterTreeNode.java?rev=881994&r1=881993&r2=881994&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/tree/JMeterTreeNode.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/tree/JMeterTreeNode.java Wed Nov 18 23:16:09 2009
@@ -23,6 +23,7 @@
 import java.beans.IntrospectionException;
 import java.beans.Introspector;
 import java.util.Collection;
+import java.util.Enumeration;
 
 import javax.swing.ImageIcon;
 import javax.swing.JPopupMenu;
@@ -141,4 +142,11 @@
     public void nameChanged() {
         treeModel.nodeChanged(this);
     }
+    
+    // Override in order to provide type safety
+    @Override
+    @SuppressWarnings("unchecked")
+    public Enumeration<JMeterTreeNode> children() {
+        return super.children();
+    }
 }

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/OldSaveService.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/OldSaveService.java?rev=881994&r1=881993&r2=881994&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/OldSaveService.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/OldSaveService.java Wed Nov 18 23:16:09 2009
@@ -376,6 +376,7 @@
 
     private static Collection<JMeterProperty> createCollection(Configuration config, String testClass) throws ConfigurationException,
             ClassNotFoundException, IllegalAccessException, InstantiationException {
+        @SuppressWarnings("unchecked") // OK
         Collection<JMeterProperty> coll = (Collection<JMeterProperty>) Class.forName(config.getAttribute("class")).newInstance(); // $NON-NLS-1$
         Configuration[] items = config.getChildren();
 
@@ -434,6 +435,7 @@
 
     private static Map<String, JMeterProperty> createMap(Configuration config, String testClass) throws ConfigurationException,
             ClassNotFoundException, IllegalAccessException, InstantiationException {
+        @SuppressWarnings("unchecked") // OK
         Map<String, JMeterProperty> map = (Map<String, JMeterProperty>) Class.forName(config.getAttribute("class")).newInstance();
         Configuration[] items = config.getChildren();
 

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java?rev=881994&r1=881993&r2=881994&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java Wed Nov 18 23:16:09 2009
@@ -318,8 +318,9 @@
 
     /**
      * {@inheritDoc}
-     * @param map must be an instance of Map<String, Object>
+     * @param map must be an instance of Map&lt;String, Object&gt;
      */
+    @SuppressWarnings("unchecked")
     public void setObject(Object map) {
         propertyMap = (Map<String, Object>) map;
 

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/JMeterUtils.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/JMeterUtils.java?rev=881994&r1=881993&r2=881994&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/JMeterUtils.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/JMeterUtils.java Wed Nov 18 23:16:09 2009
@@ -367,6 +367,7 @@
      */
     private static void notifyLocaleChangeListeners() {
         LocaleChangeEvent event = new LocaleChangeEvent(JMeterUtils.class, locale);
+        @SuppressWarnings("unchecked") // clone will produce correct type
         Iterator<LocaleChangeListener> iterator = ((Vector<LocaleChangeListener>) localeChangeListeners.clone()).iterator();
 
         while (iterator.hasNext()) {

Modified: jakarta/jmeter/trunk/src/functions/org/apache/jmeter/functions/JexlFunction.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/functions/org/apache/jmeter/functions/JexlFunction.java?rev=881994&r1=881993&r2=881994&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/functions/org/apache/jmeter/functions/JexlFunction.java (original)
+++ jakarta/jmeter/trunk/src/functions/org/apache/jmeter/functions/JexlFunction.java Wed Nov 18 23:16:09 2009
@@ -77,6 +77,7 @@
         {
             Script script = ScriptFactory.createScript(exp);
             JexlContext jc = JexlHelper.createContext();
+            @SuppressWarnings("unchecked")
             final Map<String, Object> jexlVars = jc.getVars();
             jexlVars.put("log", log); //$NON-NLS-1$
             jexlVars.put("ctx", jmctx); //$NON-NLS-1$

Modified: jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/collections/SearchByClass.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/collections/SearchByClass.java?rev=881994&r1=881993&r2=881994&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/collections/SearchByClass.java (original)
+++ jakarta/jmeter/trunk/src/jorphan/org/apache/jorphan/collections/SearchByClass.java Wed Nov 18 23:16:09 2009
@@ -59,14 +59,6 @@
     private final Class<?> searchClass;
 
     /**
-     * Creates an instance of SearchByClass. However, without setting the Class
-     * to search for, it will be a useless object.
-     */
-    public SearchByClass() {
-        searchClass = null;
-    }
-
-    /**
      * Creates an instance of SearchByClass, and sets the Class to be searched
      * for.
      *

Modified: jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java?rev=881994&r1=881993&r2=881994&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java (original)
+++ jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java Wed Nov 18 23:16:09 2009
@@ -77,7 +77,7 @@
     }
 
     @Override
-    protected Object makeNewArgument() {
+    protected HTTPArgument makeNewArgument() {
         HTTPArgument arg = new HTTPArgument("", "");
         arg.setAlwaysEncoded(false);
         arg.setUseEquals(true);
@@ -99,6 +99,7 @@
     @Override
     public TestElement createTestElement() {
         stopTableEditing();
+        @SuppressWarnings("unchecked") // only contains Argument (or HTTPArgument)
         Iterator<HTTPArgument> modelData = (Iterator<HTTPArgument>) tableModel.iterator();
         Arguments args = new Arguments();
         while (modelData.hasNext()) {

Modified: jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPFileArgsPanel.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPFileArgsPanel.java?rev=881994&r1=881993&r2=881994&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPFileArgsPanel.java (original)
+++ jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPFileArgsPanel.java Wed Nov 18 23:16:09 2009
@@ -65,7 +65,7 @@
     private transient JTable table;
 
     /** The model for the files table. */
-    private transient ObjectTableModel tableModel;
+    private transient ObjectTableModel tableModel; // only contains HTTPFileArg elements
 
     /** A button for adding new files to the table. */
     private JButton add;
@@ -170,6 +170,7 @@
         if (testElement instanceof HTTPSamplerBase) {
             HTTPSamplerBase base = (HTTPSamplerBase) testElement;
             int rows = tableModel.getRowCount();
+            @SuppressWarnings("unchecked") // we only put HTTPFileArgs in it
             Iterator<HTTPFileArg> modelData = (Iterator<HTTPFileArg>) tableModel.iterator();
             HTTPFileArg[] files = new HTTPFileArg[rows];
             int row=0;

Modified: jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java?rev=881994&r1=881993&r2=881994&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java (original)
+++ jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java Wed Nov 18 23:16:09 2009
@@ -378,7 +378,9 @@
     public synchronized void deliverSampler(HTTPSamplerBase sampler, TestElement[] subConfigs, SampleResult result) {
         if (filterContentType(result) && filterUrl(sampler)) {
             JMeterTreeNode myTarget = findTargetControllerNode();
+            @SuppressWarnings("unchecked") // OK, because find only returns correct element types
             Collection<ConfigTestElement> defaultConfigurations = (Collection<ConfigTestElement>) findApplicableElements(myTarget, ConfigTestElement.class, false);
+            @SuppressWarnings("unchecked") // OK, because find only returns correct element types
             Collection<Arguments> userDefinedVariables = (Collection<Arguments>) findApplicableElements(myTarget, Arguments.class, true);
 
             removeValuesFromSampler(sampler, defaultConfigurations);

Modified: jakarta/jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/config/gui/LDAPArgumentsPanel.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/config/gui/LDAPArgumentsPanel.java?rev=881994&r1=881993&r2=881994&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/config/gui/LDAPArgumentsPanel.java (original)
+++ jakarta/jmeter/trunk/src/protocol/ldap/org/apache/jmeter/protocol/ldap/config/gui/LDAPArgumentsPanel.java Wed Nov 18 23:16:09 2009
@@ -61,7 +61,8 @@
     private transient JTable table;
 
     /** The model for the arguments table. */
-    protected transient ObjectTableModel tableModel;
+    // needs to be accessible from test code
+    transient ObjectTableModel tableModel; // Only contains LDAPArgument entries
 
     /** A button for adding new arguments to the table. */
     private JButton add;
@@ -132,6 +133,7 @@
         if (args instanceof LDAPArguments) {
             arguments = (LDAPArguments) args;
             arguments.clear();
+            @SuppressWarnings("unchecked") // Only contains LDAPArgument entries
             Iterator<LDAPArgument> modelData = (Iterator<LDAPArgument>) tableModel.iterator();
             while (modelData.hasNext()) {
                 LDAPArgument arg = modelData.next();
@@ -166,46 +168,10 @@
     }
 
     /**
-     * Get the table used to enter arguments.
-     *
-     * @return the table used to enter arguments
-     */
-    protected JTable getTable() {
-        return table;
-    }
-
-    /**
-     * Get the title label for this component.
-     *
-     * @return the title label displayed with the table
-     */
-    protected JLabel getTableLabel() {
-        return tableLabel;
-    }
-
-    /**
-     * Get the button used to delete rows from the table.
-     *
-     * @return the button used to delete rows from the table
-     */
-    protected JButton getDeleteButton() {
-        return delete;
-    }
-
-    /**
-     * Get the button used to add rows to the table.
-     *
-     * @return the button used to add rows to the table
-     */
-    protected JButton getAddButton() {
-        return add;
-    }
-
-    /**
      * Enable or disable the delete button depending on whether or not there is
      * a row to be deleted.
      */
-    protected void checkDeleteStatus() {
+    private void checkDeleteStatus() {
         // Disable DELETE if there are no rows in the table to delete.
         if (tableModel.getRowCount() == 0) {
             delete.setEnabled(false);
@@ -240,7 +206,7 @@
     /**
      * Remove the currently selected argument from the table.
      */
-    protected void deleteArgument() {
+    private void deleteArgument() {
         // If a table cell is being edited, we must cancel the editing before
         // deleting the row
         if (table.isEditing()) {
@@ -275,7 +241,7 @@
     /**
      * Add a new argument row to the table.
      */
-    protected void addArgument() {
+    private void addArgument() {
         // If a table cell is being edited, we should accept the current value
         // and stop the editing before adding a new row.
         stopTableEditing();
@@ -295,7 +261,7 @@
      *
      * @return a new LDAPArgument object
      */
-    protected Object makeNewLDAPArgument() {
+    private LDAPArgument makeNewLDAPArgument() {
         return new LDAPArgument("", "", "");
     }
 
@@ -313,7 +279,7 @@
     /**
      * Initialize the table model used for the arguments table.
      */
-    protected void initializeTableModel() {
+    private void initializeTableModel() {
         tableModel = new ObjectTableModel(new String[] { COLUMN_NAMES[0], COLUMN_NAMES[1], COLUMN_NAMES[2] },
                 LDAPArgument.class,
                 new Functor[] { new Functor("getName"), new Functor("getValue"), new Functor("getOpcode") },
@@ -343,7 +309,7 @@
      * @param _table
      *            the table to resize columns for
      */
-    protected void sizeColumns(JTable _table) {
+    private void sizeColumns(JTable _table) {
     }
 
     /**
@@ -364,7 +330,7 @@
      *
      * @return a panel containing the title label
      */
-    protected Component makeLabelPanel() {
+    private Component makeLabelPanel() {
         JPanel labelPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
         labelPanel.add(tableLabel);
         return labelPanel;

Modified: jakarta/jmeter/trunk/test/src/org/apache/jmeter/engine/util/TestValueReplacer.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/test/src/org/apache/jmeter/engine/util/TestValueReplacer.java?rev=881994&r1=881993&r2=881994&view=diff
==============================================================================
--- jakarta/jmeter/trunk/test/src/org/apache/jmeter/engine/util/TestValueReplacer.java (original)
+++ jakarta/jmeter/trunk/test/src/org/apache/jmeter/engine/util/TestValueReplacer.java Wed Nov 18 23:16:09 2009
@@ -66,6 +66,7 @@
             element.setProperty(new CollectionProperty("args", argsin));
             replacer.reverseReplace(element);
             assertEquals("${server}", element.getPropertyAsString("domain"));
+            @SuppressWarnings("unchecked")
             List<JMeterProperty> args = (List<JMeterProperty>) element.getProperty("args").getObjectValue();
             assertEquals("username is ${username}", args.get(0).getStringValue());
             assertEquals("${password}", args.get(1).getStringValue());



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