Bug 59060 - HTTP Request GUI : Move File Upload to a new Tab to have more space for parameters and prevent incoherent configuration
Summary: HTTP Request GUI : Move File Upload to a new Tab to have more space for param...
Status: RESOLVED FIXED
Alias: None
Product: JMeter
Classification: Unclassified
Component: Main (show other bugs)
Version: 2.13
Hardware: All All
: P2 enhancement (vote)
Target Milestone: ---
Assignee: JMeter issues mailing list
URL:
Keywords: PatchAvailable
Depends on:
Blocks:
 
Reported: 2016-02-24 09:56 UTC by benoit.wiart
Modified: 2016-08-02 20:44 UTC (History)
1 user (show)



Attachments
screen (56.06 KB, image/png)
2016-02-24 09:56 UTC, benoit.wiart
Details

Note You need to log in before you can comment on or make changes to this bug.
Description benoit.wiart 2016-02-24 09:56:46 UTC
Created attachment 33586 [details]
screen

Currently you can add a file in the file upload panel AND set a raw body post.

The file upload panel (HTTPFileArgsPanel) is now a new tab

Benefits
Better screen space usage
Add some validation to prevent incoherent configuration

The file upload tab will be hidden by default.
Comment 1 benoit.wiart 2016-02-24 09:59:00 UTC
PR https://github.com/apache/jmeter/pull/140

Please amend the new label if needed.
Comment 2 Philippe Mouawad 2016-02-26 20:12:59 UTC
Date: Fri Feb 26 20:12:33 2016
New Revision: 1732554

URL: http://svn.apache.org/viewvc?rev=1732554&view=rev
Log:
Bug 59060 - HTTP Request GUI : Move File Upload to a new Tab to have more space for parameters and prevent incoherent configuration
Contributed by Benoit Wiart
#resolve #140
https://github.com/apache/jmeter/pull/140
Bugzilla Id: 59060

Modified:
    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/config/gui/MultipartUrlConfigGui.java
    jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/UrlConfigGui.java
    jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java
    jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPFileArgsPanel.java
    jmeter/trunk/xdocs/changes.xml
Comment 3 Sebb 2016-03-02 11:30:59 UTC
The patch deprecated several items; however they are still used internally by non-deprecated code, and indirectly by non-deprecated code in other JMeter classes.

So it's not possible to remove the deprecated items.

Either the items are not supposed to be deprecated, or the code that uses them needs to be fixed to use whatever is intended to replace the deprecated code.
Comment 4 benoit.wiart 2016-03-02 12:23:16 UTC
(In reply to Sebb from comment #3)
> The patch deprecated several items; however they are still used internally
> by non-deprecated code, and indirectly by non-deprecated code in other
> JMeter classes.

which one ?
Comment 5 Sebb 2016-03-02 12:50:06 UTC
(In reply to benoit.wiart from comment #4)
> (In reply to Sebb from comment #3)
> > The patch deprecated several items; however they are still used internally
> > by non-deprecated code, and indirectly by non-deprecated code in other
> > JMeter classes.
> 
> which one ?

This is easily found by an IDE, e.g. using Eclipse:

Select a deprecated item, e.g. tableLabel
Open Call Hierarchy
This shows that the item is used by 
init()
HTTPFileArgsPanel()
UrlConfigGui.getParameterPanel()

None of these are deprecated and all are in use.
Similarly for the other deprecated items.
Comment 6 benoit.wiart 2016-03-02 13:09:25 UTC
> This is easily found by an IDE, e.g. using Eclipse:
thanx for the tip. I was using a punched card to develop jmeter.

> Select a deprecated item, e.g. tableLabel
> Open Call Hierarchy
> This shows that the item is used by 
> init()
> HTTPFileArgsPanel()
> UrlConfigGui.getParameterPanel()

You should not blindly rely on your IDE to do this kind of analysis.

In your example it's perfectly possible to remove tableLabel without any impact on UrlConfigGui.getParameterPanel().
As tableLabel defaults to null and when it's null the component is not created see init().

tableLabel is not null only when used with the deprecated constructor.
the deprecated constructor is only used by the deprecated MultipartUrlConfigGui

Some of the methods/ fields were deprecated and not removed to let third party plugins provider adapt to the change.