I consider it a hack or weird thing.
By convention all functions start with "__"
Consider yourself giving a training, how do you explain why some functions
start with "_"

Look at the fix, the code that handles it is a code hack and breaks
isolation of this function.

Backward compat is nice but having to maintain in lot of places code that
allows those is a bad thing in long term and source of bugs.

IMO, dropping this alias is harmless, as you do a search replace to move to
new name.

Regards

On Sunday, July 16, 2017, sebb <[email protected]> wrote:

> On 16 July 2017 at 16:50, Felix Schumacher
> <[email protected] <javascript:;>> wrote:
> > Am 16.07.2017 um 17:05 schrieb Philippe Mouawad:
> >>
> >> Hi Felix,
> >> This function was just an alias for the other one __StringFromFile.
> >> The replacement is just to add a '_' as all other functions.
> >>  From my understanding, we'll release a 3.3 which IMO can drop elements
> >> and/or functions as we did in 3.2.
> >>
> >> I can keep it, but those are always backward compatibility hacks that
> IMO
> >> give a weird image of JMeter sometimes.
> >
> > I feel a bit uneasy to drop support for an old hack without warning.
>
> This is not a hack; it's an alias added when the function was renamed.
> There's no need to drop the alias.
>
> > Felix
> >
> >>
> >> But if you still want to keep it, it 'll be ok for me.
> >>
> >> Regards
> >> Philippe
> >>
> >>
> >>
> >>
> >>
> >> On Sun, Jul 16, 2017 at 4:58 PM, Felix Schumacher <
> >> [email protected] <javascript:;>> wrote:
> >>
> >>> Am 16.07.2017 um 16:38 schrieb [email protected] <javascript:;>:
> >>>
> >>>> Author: pmouawad
> >>>> Date: Sun Jul 16 14:38:29 2017
> >>>> New Revision: 1802063
> >>>>
> >>>> URL: http://svn.apache.org/viewvc?rev=1802063&view=rev
> >>>> Log:
> >>>> Bug 61258 - StringFromFile function is mentioned twice in the Function
> >>>> helper dialog
> >>>> Bugzilla Id: 61258
> >>>>
> >>>> Modified:
> >>>>       jmeter/trunk/src/components/org/apache/jmeter/modifiers/Use
> >>>> rParameters.java
> >>>>       jmeter/trunk/src/core/org/apache/jmeter/engine/util/Compoun
> >>>> dVariable.java
> >>>>       jmeter/trunk/src/core/org/apache/jmeter/resources/messages.
> >>>> properties
> >>>>       jmeter/trunk/src/core/org/apache/jmeter/resources/messages_
> >>>> es.properties
> >>>>       jmeter/trunk/src/core/org/apache/jmeter/resources/messages_
> >>>> fr.properties
> >>>>       jmeter/trunk/src/core/org/apache/jmeter/resources/messages_
> >>>> pt_BR.properties
> >>>>       jmeter/trunk/src/core/org/apache/jmeter/resources/messages_
> >>>> tr.properties
> >>>>       jmeter/trunk/src/core/org/apache/jmeter/resources/messages_
> >>>> zh_TW.properties
> >>>>       jmeter/trunk/xdocs/changes.xml
> >>>>       jmeter/trunk/xdocs/usermanual/component_reference.xml
> >>>>       jmeter/trunk/xdocs/usermanual/functions.xml
> >>>>
> >>>> Modified: jmeter/trunk/src/components/org/apache/jmeter/modifiers/
> User
> >>>> Parameters.java
> >>>> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org
> >>>> /apache/jmeter/modifiers/UserParameters.java?rev=1802063&r1=
> >>>> 1802062&r2=1802063&view=diff
> >>>> ============================================================
> >>>> ==================
> >>>> ---
> >>>> jmeter/trunk/src/components/org/apache/jmeter/modifiers/
> UserParameters.java
> >>>> (original)
> >>>> +++
> >>>> jmeter/trunk/src/components/org/apache/jmeter/modifiers/
> UserParameters.java
> >>>> Sun Jul 16 14:38:29 2017
> >>>> @@ -49,7 +49,7 @@ public class UserParameters extends Abst
> >>>>         * shared between all threads see the clone() method below
> >>>>         *
> >>>>         * The lock ensures that all the variables are processed
> >>>> together,
> >>>> which is
> >>>> -     * important for functions such as __CSVRead and _StringFromFile.
> >>>> +     * important for functions such as __CSVRead and
> __StringFromFile.
> >>>>         * But it has a performance drawback.
> >>>>         */
> >>>>        private transient Object lock = new Object();
> >>>>
> >>>> Modified: jmeter/trunk/src/core/org/apache/jmeter/engine/util/
> Compound
> >>>> Variable.java
> >>>> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apach
> >>>> e/jmeter/engine/util/CompoundVariable.java?rev=1802063&r1=
> >>>> 1802062&r2=1802063&view=diff
> >>>> ============================================================
> >>>> ==================
> >>>> ---
> >>>> jmeter/trunk/src/core/org/apache/jmeter/engine/util/
> CompoundVariable.java
> >>>> (original)
> >>>> +++
> >>>> jmeter/trunk/src/core/org/apache/jmeter/engine/util/
> CompoundVariable.java
> >>>> Sun Jul 16 14:38:29 2017
> >>>> @@ -76,10 +76,6 @@ public class CompoundVariable implements
> >>>>                    String referenceKey = tempFunc.getReferenceKey();
> >>>>                    if (referenceKey.length() > 0) { // ignore self
> >>>>                        functions.put(referenceKey,
> tempFunc.getClass());
> >>>> -                    // Add alias for original StringFromFile name
> (had
> >>>> only one underscore)
> >>>> -                    if (referenceKey.equals("__String
> >>>> FromFile")){//$NON-NLS-1$
> >>>> -                        functions.put("_StringFromFile",
> >>>> tempFunc.getClass());//$NON-NLS-1$
> >>>> -                    }
> >>>>
> >>> Do you think it is a good idea to drop a function (alias) in a minor
> >>> version?
> >>>
> >>>   I think we should keep the alias. I am OK to remove it from  the
> >>> documentation.
> >>>
> >>> Felix
> >>>
> >>>
> >>>                    }
> >>>>
> >>>>                }
> >>>>
> >>>> Modified: jmeter/trunk/src/core/org/apache/jmeter/resources/messages.
> >>>> properties
> >>>> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apach
> >>>> e/jmeter/resources/messages.properties?rev=1802063&r1=
> >>>> 1802062&r2=1802063&view=diff
> >>>> ============================================================
> >>>> ==================
> >>>> ---
> >>>> jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
> >>>> (original)
> >>>> +++
> >>>> jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
> >>>> Sun Jul 16 14:38:29 2017
> >>>> @@ -1007,7 +1007,7 @@ server=Server Name or IP\:
> >>>>    servername=Servername \:
> >>>>    session_argument_name=Session Argument Name
> >>>>    setup_thread_group_title=setUp Thread Group
> >>>> -should_save=You should save your test plan before running it.  \nIf
> you
> >>>> are using supporting data files (ie, for CSV Data Set or
> >>>> _StringFromFile),
> >>>> \nthen it is particularly important to first save your test script.
> \nDo
> >>>> you want to save your test plan first?
> >>>> +should_save=You should save your test plan before running it.  \nIf
> you
> >>>> are using supporting data files (ie, for CSV Data Set or
> >>>> __StringFromFile),
> >>>> \nthen it is particularly important to first save your test script.
> \nDo
> >>>> you want to save your test plan first?
> >>>>    shutdown=Shutdown
> >>>>    simple_config_element=Simple Config Element
> >>>>    simple_data_writer_title=Simple Data Writer
> >>>>
> >>>> Modified: jmeter/trunk/src/core/org/apache/jmeter/resources/messages_
> >>>> es.properties
> >>>> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apach
> >>>> e/jmeter/resources/messages_es.properties?rev=1802063&r1=
> >>>> 1802062&r2=1802063&view=diff
> >>>> ============================================================
> >>>> ==================
> >>>> ---
> >>>> jmeter/trunk/src/core/org/apache/jmeter/resources/
> messages_es.properties
> >>>> (original)
> >>>> +++
> >>>> jmeter/trunk/src/core/org/apache/jmeter/resources/
> messages_es.properties
> >>>> Sun Jul 16 14:38:29 2017
> >>>> @@ -706,7 +706,7 @@ server=Nombre de Servidor o IP\:
> >>>>    servername=Nombre de Servidor\:
> >>>>    session_argument_name=Nombre de Argumento de Sesi\u00F3n
> >>>>    setup_thread_group_title=Montar grupo de Hilos
> >>>> -should_save=Deber\u00EDa guardar el plan de pruebas antes de
> lanzarlo.
> >>>> Si est\u00E1 utilizando archivos de datos (ie, para DCV o
> >>>> _StringFromFile),
> >>>> entonces es especialmente importante que primero guarde su script de
> >>>> prueba.
> >>>> +should_save=Deber\u00EDa guardar el plan de pruebas antes de
> lanzarlo.
> >>>> Si est\u00E1 utilizando archivos de datos (ie, para DCV o
> >>>> __StringFromFile), entonces es especialmente importante que primero
> >>>> guarde
> >>>> su script de prueba.
> >>>>    shutdown=Interrumpir
> >>>>    simple_config_element=Elemento de Configuraci\u00F3n Simple
> >>>>    simple_data_writer_title=Escritor de Datos Simple
> >>>>
> >>>> Modified: jmeter/trunk/src/core/org/apache/jmeter/resources/messages_
> >>>> fr.properties
> >>>> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apach
> >>>> e/jmeter/resources/messages_fr.properties?rev=1802063&r1=
> >>>> 1802062&r2=1802063&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
> >>>> Sun Jul 16 14:38:29 2017
> >>>> @@ -997,7 +997,7 @@ server=Nom ou IP du serveur \:
> >>>>    servername=Nom du serveur \:
> >>>>    session_argument_name=Nom des arguments de la session
> >>>>    setup_thread_group_title=Groupe d'unit\u00E9s de d\u00E9but
> >>>> -should_save=Vous devez enregistrer le plan de test avant de le
> lancer.
> >>>> \nSi vous utilisez des fichiers de donn\u00E9es (i.e. Source de
> >>>> donn\u00E9es CSV ou la fonction _StringFromFile), \nalors c'est
> >>>> particuli\u00E8rement important d'enregistrer d'abord votre script de
> >>>> test.
> >>>> \nVoulez-vous enregistrer maintenant votre plan de test ?
> >>>> +should_save=Vous devez enregistrer le plan de test avant de le
> lancer.
> >>>> \nSi vous utilisez des fichiers de donn\u00E9es (i.e. Source de
> >>>> donn\u00E9es CSV ou la fonction __StringFromFile), \nalors c'est
> >>>> particuli\u00E8rement important d'enregistrer d'abord votre script de
> >>>> test.
> >>>> \nVoulez-vous enregistrer maintenant votre plan de test ?
> >>>>    shutdown=Eteindre
> >>>>    simple_config_element=Configuration Simple
> >>>>    simple_data_writer_title=Enregistreur de donn\u00E9es
> >>>>
> >>>> Modified: jmeter/trunk/src/core/org/apache/jmeter/resources/messages_
> >>>> pt_BR.properties
> >>>> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apach
> >>>> e/jmeter/resources/messages_pt_BR.properties?rev=1802063&
> >>>> r1=1802062&r2=1802063&view=diff
> >>>> ============================================================
> >>>> ==================
> >>>> ---
> >>>> jmeter/trunk/src/core/org/apache/jmeter/resources/
> messages_pt_BR.properties
> >>>> (original)
> >>>> +++
> >>>> jmeter/trunk/src/core/org/apache/jmeter/resources/
> messages_pt_BR.properties
> >>>> Sun Jul 16 14:38:29 2017
> >>>> @@ -651,7 +651,7 @@ send_file_param_name_label=Nome do Par\u
> >>>>    server=Nome do servidor ou IP\:
> >>>>    servername=Nome do servidor\:
> >>>>    session_argument_name=Nome do Argumento de Sess\u00E3o
> >>>> -should_save=Voc\u00EA deveria salvar seu plano de teste antes de
> >>>> execut\u00E1-lo.\nSe voc\u00EA est\u00E1 usando suporte a arquivos de
> >>>> dados
> >>>> (ex\: Conjunto de Dados CSV ou _StringFromFile),\nent\u00E3o \u00E9
> >>>> particularmente importante salvar seu script de teste.\nVoc\u00EA quer
> >>>> salvar seu plano de teste primeiro?
> >>>> +should_save=Voc\u00EA deveria salvar seu plano de teste antes de
> >>>> execut\u00E1-lo.\nSe voc\u00EA est\u00E1 usando suporte a arquivos de
> >>>> dados
> >>>> (ex\: Conjunto de Dados CSV ou __StringFromFile),\nent\u00E3o \u00E9
> >>>> particularmente importante salvar seu script de teste.\nVoc\u00EA quer
> >>>> salvar seu plano de teste primeiro?
> >>>>    shutdown=Desligar
> >>>>    simple_config_element=Elemento de Configura\u00E7\u00E3o Simples
> >>>>    simple_data_writer_title=Escritor de Dados Simples
> >>>>
> >>>> Modified: jmeter/trunk/src/core/org/apache/jmeter/resources/messages_
> >>>> tr.properties
> >>>> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apach
> >>>> e/jmeter/resources/messages_tr.properties?rev=1802063&r1=
> >>>> 1802062&r2=1802063&view=diff
> >>>> ============================================================
> >>>> ==================
> >>>> ---
> >>>> jmeter/trunk/src/core/org/apache/jmeter/resources/
> messages_tr.properties
> >>>> (original)
> >>>> +++
> >>>> jmeter/trunk/src/core/org/apache/jmeter/resources/
> messages_tr.properties
> >>>> Sun Jul 16 14:38:29 2017
> >>>> @@ -620,7 +620,7 @@ send_file_param_name_label=Parametre \u0
> >>>>    server=Sunucu \u0130smi veya IP\:
> >>>>    servername=Sunucu \u0130smi \:
> >>>>    session_argument_name=Oturum Arg\u00FCman\u0131 \u0130smi
> >>>> -should_save=Testi \u00E7al\u0131\u015Ft\u0131rmadan \u00F6nce test
> >>>> plan\u0131n\u0131 kaydetmeniz tavsiye edilir.\nE\u011Fer destek veri
> >>>> dosyalar\u0131 kullan\u0131yorsan\u0131z (\u00F6r\: CSV Veri
> K\u00FCmesi
> >>>> ya
> >>>> da _StringFromFile), \u00F6ncelikle test beti\u011Fini kaydetmeniz
> >>>> \u00F6nemlidir.\n\u00D6ncelikle test plan\u0131n\u0131 kaydetmek
> istiyor
> >>>> musunuz?
> >>>> +should_save=Testi \u00E7al\u0131\u015Ft\u0131rmadan \u00F6nce test
> >>>> plan\u0131n\u0131 kaydetmeniz tavsiye edilir.\nE\u011Fer destek veri
> >>>> dosyalar\u0131 kullan\u0131yorsan\u0131z (\u00F6r\: CSV Veri
> K\u00FCmesi
> >>>> ya
> >>>> da __StringFromFile), \u00F6ncelikle test beti\u011Fini kaydetmeniz
> >>>> \u00F6nemlidir.\n\u00D6ncelikle test plan\u0131n\u0131 kaydetmek
> istiyor
> >>>> musunuz?
> >>>>    shutdown=Kapat
> >>>>    simple_config_element=Basit Ayar Eleman\u0131
> >>>>    simple_data_writer_title=Basit Veri Yaz\u0131c\u0131
> >>>>
> >>>> Modified: jmeter/trunk/src/core/org/apache/jmeter/resources/messages_
> >>>> zh_TW.properties
> >>>> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apach
> >>>> e/jmeter/resources/messages_zh_TW.properties?rev=1802063&
> >>>> r1=1802062&r2=1802063&view=diff
> >>>> ============================================================
> >>>> ==================
> >>>> ---
> >>>> jmeter/trunk/src/core/org/apache/jmeter/resources/
> messages_zh_TW.properties
> >>>> (original)
> >>>> +++
> >>>> jmeter/trunk/src/core/org/apache/jmeter/resources/
> messages_zh_TW.properties
> >>>> Sun Jul 16 14:38:29 2017
> >>>> @@ -468,7 +468,7 @@ send_file_param_name_label=\u53C3\u6578\
> >>>>    server=\u4F3A\u670D\u5668\u540D\u7A31\u6216 IP
> >>>>    servername=\u4F3A\u670D\u5668\u540D\u7A31
> >>>>
> >>>> session_argument_name=\u9023\u7DDA\u968E\u6BB5\u53C3\u6578\
> u540D\u7A31
> >>>> -should_save=\u57F7\u884C\u6E2C\u8A66\u524D\u8981\u5148\u5C0
> >>>> 7\u6E2C\u8A66\u8173\u672C\u5B58\u6A94.
> >>>> \u5C24\u5176\u662F\u7576\u4F60\u4F7F\u7528
> >>>> CSV Data Set \u6216 _StringFromFile \u6642
> >>>> +should_save=\u57F7\u884C\u6E2C\u8A66\u524D\u8981\u5148\u5C0
> >>>> 7\u6E2C\u8A66\u8173\u672C\u5B58\u6A94.
> >>>> \u5C24\u5176\u662F\u7576\u4F60\u4F7F\u7528
> >>>> CSV Data Set \u6216 __StringFromFile \u6642
> >>>>    shutdown=\u95DC\u9589
> >>>>    simple_config_element=\u7C21\u6613\u8A2D\u7F6E\u5143\u7D20
> >>>>    simple_data_writer_title=\u7C21\u6613\u8CC7\u6599\u5BEB\
> u4F5C\u8005
> >>>>
> >>>> Modified: jmeter/trunk/xdocs/changes.xml
> >>>> URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?
> >>>> rev=1802063&r1=1802062&r2=1802063&view=diff
> >>>> ============================================================
> >>>> ==================
> >>>> --- jmeter/trunk/xdocs/changes.xml [utf-8] (original)
> >>>> +++ jmeter/trunk/xdocs/changes.xml [utf-8] Sun Jul 16 14:38:29 2017
> >>>> @@ -80,7 +80,7 @@ Summary
> >>>>    <li>In CookieManager, DEFAULT_IMPLEMENTATION and
> >>>> DEFAULT_IMPLEMENTATION
> >>>> constants are now private.
> >>>>    <note>If you're using ignorecookies with HC3CookieHandler (&lt;
> >>>> JMeter
> >>>> 3.1)  configuration will be reset, ensure you put it back </note></li>
> >>>>    <h3>Removed elements or functions</h3>
> >>>> -
> >>>> +    <li><code>_StringFromFile</code> function has been dropped, use
> >>>> <code>__StringFromFile</code> instead</li>
> >>>>    <h3>Logging changes</h3>
> >>>>      <!-- =================== Improvements =================== -->
> >>>> @@ -179,6 +179,7 @@ Summary
> >>>>      <h3>Functions</h3>
> >>>>    <ul>
> >>>> +    <li><bug>61258</bug>StringFromFile function is mentioned twice
> in
> >>>> the Function helper dialog</li>
> >>>>    </ul>
> >>>>      <h3>I18N</h3>
> >>>>
> >>>> Modified: jmeter/trunk/xdocs/usermanual/component_reference.xml
> >>>> URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/usermanual/c
> >>>> omponent_reference.xml?rev=1802063&r1=1802062&r2=1802063&view=diff
> >>>> ============================================================
> >>>> ==================
> >>>> --- jmeter/trunk/xdocs/usermanual/component_reference.xml (original)
> >>>> +++ jmeter/trunk/xdocs/usermanual/component_reference.xml Sun Jul 16
> >>>> 14:38:29 2017
> >>>> @@ -3507,7 +3507,7 @@ By default, a Graphite implementation is
> >>>>    <description>
> >>>>        <p>
> >>>>        CSV Data Set Config is used to read lines from a file, and
> split
> >>>> them into variables.
> >>>> -    It is easier to use than the <code>__CSVRead()</code> and
> >>>> <code>_StringFromFile()</code> functions.
> >>>> +    It is easier to use than the <code>__CSVRead()</code> and
> >>>> <code>__StringFromFile()</code> functions.
> >>>>        It is well suited to handling large numbers of variables, and
> is
> >>>> also useful for testing with
> >>>>        "random" and unique values.</p>
> >>>>        <p>Generating unique random values at run-time is expensive in
> >>>> terms of CPU and memory, so just create the data
> >>>>
> >>>> Modified: jmeter/trunk/xdocs/usermanual/functions.xml
> >>>> URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/usermanual/f
> >>>> unctions.xml?rev=1802063&r1=1802062&r2=1802063&view=diff
> >>>> ============================================================
> >>>> ==================
> >>>> --- jmeter/trunk/xdocs/usermanual/functions.xml (original)
> >>>> +++ jmeter/trunk/xdocs/usermanual/functions.xml Sun Jul 16 14:38:29
> 2017
> >>>> @@ -432,8 +432,6 @@ be in the interval -2147483648 to 214748
> >>>>    </p>
> >>>>    </component>
> >>>>    -<!-- Alternate spelling -->
> >>>> -<a name="_StringFromFile"/>
> >>>>    <component index="&sect-num;.5.5" name="__StringFromFile">
> >>>>      <description>
> >>>> @@ -520,8 +518,8 @@ Here are a few format strings and the co
> >>>>        the sequence number is interpreted as a loop count, and the
> file
> >>>> will be used at most "<code>end</code>" times.
> >>>>        In this case the filename is not formatted.
> >>>>        <br></br>
> >>>> -    <code>${_StringFromFile(PIN#'.'DAT,,1,2)}</code> - reads
> >>>> <code>PIN1.DAT</code>, <code>PIN2.DAT</code><br></br>
> >>>> -    <code>${_StringFromFile(PIN.DAT,,,2)}</code> - reads
> >>>> <code>PIN.DAT</code> twice<br></br>
> >>>> +    <code>${__StringFromFile(PIN#'.'DAT,,1,2)}</code> - reads
> >>>> <code>PIN1.DAT</code>, <code>PIN2.DAT</code><br></br>
> >>>> +    <code>${__StringFromFile(PIN.DAT,,,2)}</code> - reads
> >>>> <code>PIN.DAT</code> twice<br></br>
> >>>>        Note that the "<code>.</code>" in <code>PIN.DAT</code> above
> >>>> should
> >>>> <u>not</u> be quoted.
> >>>>        In this case the start number is omitted, so the file name is
> >>>> used
> >>>> exactly as is.
> >>>>        </p>
> >>>> @@ -697,7 +695,7 @@ This leads to creation of match number v
> >>>>    </component>
> >>>>      <component index="&sect-num;.5.8" name="__CSVRead">
> >>>> -<description><p>The CSVRead function returns a string from a CSV file
> >>>> (c.f. <a href="#_StringFromFile">StringFromFile</a>)</p>
> >>>> +<description><p>The CSVRead function returns a string from a CSV file
> >>>> (c.f. <a href="#__StringFromFile">StringFromFile</a>)</p>
> >>>>        <p>NOTE: JMeter supports multiple file names.
> >>>>        </p>
> >>>>        <p><b>In most cases, the newer
> >>>>
> >>>>
> >>>>
> >>
> >
>


-- 
Cordialement.
Philippe Mouawad.

Reply via email to