Am 14. Januar 2016 21:44:22 MEZ, schrieb Philippe Mouawad <[email protected]>: >Fixed in r1724685
Not really. The final method is overridden, which generates a compile error. Any reason, why you didn't put the call to init in the constructor? That way the init method could have stayed private. Regards, Felix >Thanks > >On Thu, Jan 14, 2016 at 9:40 PM, sebb <[email protected]> wrote: > >> On 14 January 2016 at 13:47, <[email protected]> wrote: >> > Author: pmouawad >> > Date: Thu Jan 14 13:47:34 2016 >> > New Revision: 1724608 >> > >> > URL: http://svn.apache.org/viewvc?rev=1724608&view=rev >> > Log: >> > Bug 58860 - HTTP Request : Add automatic variable generation in >HTTP >> parameters table by right click >> > #resolve #76 >> > Bugzilla Id: 58860 >> > >> > Modified: >> > >> >jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java >> > >jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties >> > >> >jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties >> > >> >jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java >> > jmeter/trunk/xdocs/changes.xml >> > >> > Modified: >> >jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java >> > URL: >> >http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java?rev=1724608&r1=1724607&r2=1724608&view=diff >> > >> >============================================================================== >> > --- >> >jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java >> (original) >> > +++ >> >jmeter/trunk/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java >Thu >> Jan 14 13:47:34 2016 >> > @@ -674,7 +674,7 @@ public class ArgumentsPanel extends Abst >> > /** >> > * Initialize the components and layout of this component. >> > */ >> > - private void init() { >> > + protected void init() { >> >> -1 >> >> init() is called from the constructor and must not be overridden. >> >> If such methods are overriden by subclasses, then it's possible that >> the subclass will see a partially constructed object. >> This can cause all sorts of odd behaviour. >> >> The init() method must either remain private or be marked final. >> >> > JPanel p = this; >> > >> > if (standalone) { >> > >> > Modified: >> jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties >> > URL: >> >http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=1724608&r1=1724607&r2=1724608&view=diff >> > >> >============================================================================== >> > --- >> jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties >> (original) >> > +++ >> jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties >Thu >> Jan 14 13:47:34 2016 >> > @@ -1167,6 +1167,7 @@ tr=Turkish >> > transaction_controller_include_timers=Include duration of timer >and >> pre-post processors in generated sample >> > transaction_controller_parent=Generate parent sample >> > transaction_controller_title=Transaction Controller >> > +transform_into_variable=Replace values with variables >> > unbind=Thread Unbind >> > undo=Undo >> > unescape_html_string=String to unescape >> > >> > Modified: >> >jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties >> > URL: >> >http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties?rev=1724608&r1=1724607&r2=1724608&view=diff >> > >> >============================================================================== >> > --- >> >jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties >> (original) >> > +++ >> >jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties >> Thu Jan 14 13:47:34 2016 >> > @@ -1152,6 +1152,7 @@ tr=Turc >> > transaction_controller_include_timers=Inclure la dur\u00E9e des >> compteurs de temps et pre/post processeurs dans le calcul du temps >> > transaction_controller_parent=G\u00E9n\u00E9rer en >\u00E9chantillon >> parent >> > transaction_controller_title=Contr\u00F4leur Transaction >> > +transform_into_variable=Remplacer les valeurs par des variables >> > unbind=D\u00E9connexion de l'unit\u00E9 >> > undo=Annuler >> > unescape_html_string=Cha\u00EEne \u00E0 \u00E9chapper >> > >> > Modified: >> >jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java >> > URL: >> >http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java?rev=1724608&r1=1724607&r2=1724608&view=diff >> > >> >============================================================================== >> > --- >> >jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java >> (original) >> > +++ >> >jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java >> Thu Jan 14 13:47:34 2016 >> > @@ -18,11 +18,16 @@ >> > >> > package org.apache.jmeter.protocol.http.gui; >> > >> > +import java.awt.event.ActionEvent; >> > +import java.awt.event.ActionListener; >> > import java.util.Iterator; >> > >> > +import javax.swing.JMenuItem; >> > +import javax.swing.JPopupMenu; >> > import javax.swing.JTable; >> > >> > import org.apache.commons.lang3.BooleanUtils; >> > +import org.apache.commons.lang3.StringUtils; >> > import org.apache.jmeter.config.Argument; >> > import org.apache.jmeter.config.Arguments; >> > import org.apache.jmeter.config.gui.ArgumentsPanel; >> > @@ -160,6 +165,41 @@ public class HTTPArgumentsPanel extends >> > >> > return argument; >> > } >> > + >> > + @Override >> > + protected void init() { >> > + super.init(); >> > + >> > + // register the right click menu >> > + JTable table = getTable(); >> > + final JPopupMenu popupMenu = new JPopupMenu(); >> > + JMenuItem variabilizeItem = new >> JMenuItem(JMeterUtils.getResString("transform_into_variable")); >> > + variabilizeItem.addActionListener(new ActionListener() { >> > + @Override >> > + public void actionPerformed(ActionEvent e) { >> > + transformNameIntoVariable(); >> > + } >> > + }); >> > + popupMenu.add(variabilizeItem); >> > + table.setComponentPopupMenu(popupMenu); >> > + } >> > >> > + /** >> > + * replace the argument value of the selection with a variable >> > + * the variable name is derived from the parameter name >> > + */ >> > + private void transformNameIntoVariable() { >> > + int[] rowsSelected = getTable().getSelectedRows(); >> > + for (int i = 0; i < rowsSelected.length; i++) { >> > + String name = (String) >> tableModel.getValueAt(rowsSelected[i], 0); >> > + if(StringUtils.isNotBlank(name)) { >> > + name = name.trim(); >> > + name = name.replaceAll("\\$", "_"); >> > + name = name.replaceAll("\\{", "_"); >> > + name = name.replaceAll("\\}", "_"); >> > + tableModel.setValueAt("${"+name+"}", >rowsSelected[i], >> 1); >> > + } >> > + } >> > + } >> > >> > } >> > >> > Modified: jmeter/trunk/xdocs/changes.xml >> > URL: >> >http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1724608&r1=1724607&r2=1724608&view=diff >> > >> >============================================================================== >> > --- jmeter/trunk/xdocs/changes.xml (original) >> > +++ jmeter/trunk/xdocs/changes.xml Thu Jan 14 13:47:34 2016 >> > @@ -98,6 +98,7 @@ Summary >> > <li><bug>57995</bug>Use FileServer for HTTP Request files. >> Implemented by Andrey Pokhilko (andrey at blazemeter.com) and >contributed >> by BlazeMeter Ltd.</li> >> > <li><bug>58811</bug>When pasting arguments between http >samplers >> the column "Encode" and "Include Equals" are lost. Contributed by >Benoit >> Wiart (benoit dot wiart at gmail.com)</li> >> > <li><bug>58843</bug>Improve the usable space in the HTTP >sampler >> GUI. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li> >> > + <li><bug>58860</bug>HTTP Request : Add automatic variable >> generation in HTTP parameters table by right click. Contributed by >Benoit >> Wiart (benoit dot wiart at gmail.com)</li> >> > </ul> >> > >> > <h3>Other samplers</h3> >> > >> > >>
