jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Felix Schumacher <felix.schumac...@internetallee.de>
Subject Re: [VOTE] Release JMeter 5.4 RC1
Date Tue, 24 Nov 2020 15:10:17 GMT

Am 24.11.20 um 16:01 schrieb Philippe Mouawad:
> On Tue, Nov 24, 2020 at 3:52 PM Felix Schumacher <
> felix.schumacher@internetallee.de> wrote:
>
>> Am 24.11.20 um 15:37 schrieb Philippe Mouawad:
>>> On Mon, Nov 23, 2020 at 3:45 PM Felix Schumacher <
>>> felix.schumacher@internetallee.de> wrote:
>>>
>>>> Am 23.11.20 um 13:04 schrieb Philippe Mouawad:
>>>>> Hello,
>>>>> Thanks for the release !
>>>>>
>>>>> I notice a first problem with plugins manager , if we install it ,
>> jmeter
>>>>> does not start with this error:
>>>>>
>>>>>    - First, I think we should not fail if 3rd party plugin has an issue
>>>>>    - What should we do with this ? Reintroduce the class we removed ?
>> or
>>>>>    propose a PR to plugins manager ?
>>>> Probably both (or all) :)
>>>>
>>>> Do we fail on JMeterMenuBar#findMenuCreators? The code catches
>>>> Exceptions, logs them and should work (stepping over the broken
>>>> MenuCreator). If not, it is not intended and should be fixed.
>>>>
>>> Yes but it's a NoClassDefFoundError that is thrown , I'll commit a fix.
>> +1
>>> We can provide a PR to PluginsManager but I guess there can be a lot of
>>> broken plugins by the change.
>> I have looked into providing a PR, but I think it will not be that easy.
>> PluginsManager builds for JMeter 2.13 upwards and some classes have
>> public or protected instances of org.apache.log.Logger (which seems to
>> be log-kit). Those classes would either have to change their
>> serializable id, or something would have to provide a Logger that is
>> compatible with the original class (and not generated by JMeters classes).
>>
> Can't we just replace LoggingManager with SLF4J ?

For most classes this is no problem:

find . -name "*.java" -type f \
       | xargs -l1 grep -l "private static final Logger" \
       | while read i; do
           sed -i 's/private static final Logger \(LOGGER\|log\) =
LoggingManager.getLoggerForClass();/private static final Logger \1 =
LoggerFactory.getLogger('$(basename $i .java)'.class);/;
s/org.apache.jorphan.logging.LoggingManager/org.slf4j.LoggerFactory/;
s/org.apache.log.Logger/org.slf4j.Logger/;' $i;
         done

will get you going for most classes.

Some references to LoggingManger#setPriority will have to be removed,
but there are still some classes, that are like

import org.apache.log.Logger;
...
public class Something extends ConfigTestElement {
   public static Logger log = LoggingManager.getLoggerForClass();
   ...
}

If we change the Logger to a SLF4J implementation we would break the
implicit serialization format of the class and every client that
inherits from this class. I don't know, if this OK or not.

If we keep it, we would have to change the generation of the Logger
(i.e. the call to LoggingManager.getLoggerForClass()) to something, that
generates an instance of a org.apache.log.Logger that in reality logs to
SLF4J or log4j2 or ... That is basically what we removed from JMeter :)

We could add that implementation to jmeter-plugins though.

The other thing we have to check is, whether that setup would work with
JMeter 2.13 (as that is targeted by jmeter-plugins, too).

Felix

>
>> So, at the moment I tend to revert the removal of LoggingManager and the
>> facade for the Logger.
>>
>> Felix
>>
>>>
>>>> As I don't expect PluginManager to be fixed before a potential release,
>>>> I think we should add back the class (maybe with a warning message on
>>>> instantiation?)
>>>>
>>> Yes .
>>> Should we revert this commit completely :
>>>
>> https://github.com/apache/jmeter/commit/43217ec8086c8f2dc485936cd020c9c8107b698e
>>> or only the LoggingManager and Slf4jLogkitLogger
>>>
>>>
>>>
>>> Felix
>>>>> Details:
>>>>> java.lang.NoClassDefFoundError:
>> org/apache/jorphan/logging/LoggingManager
>>>>>         at
>>>>>
>> org.jmeterplugins.repository.PluginManagerMenuCreator.<clinit>(PluginManagerMenuCreator.java:10)
>>>>> ~[jmeter-plugins-manager-1.4.jar:?]
>>>>>         at java.lang.Class.forName0(Native Method) ~[?:1.8.0_201]
>>>>>         at java.lang.Class.forName(Class.java:264) ~[?:1.8.0_201]
>>>>>         at
>>>>>
>> org.apache.jmeter.gui.util.JMeterMenuBar.findMenuCreators(JMeterMenuBar.java:229)
>>>>> ~[ApacheJMeter_core.jar:5.4]        at
>>>>> org.apache.jmeter.gui.util.JMeterMenuBar.createMenuBar(JMeterMenuBar.
>>>>> java:196) ~[ApacheJMeter_core.jar:5.4]        at
>>>>> org.apache.jmeter.gui.util.JMeterMenuBar.<init>(JMeterMenuBar.java:11
>>>>> 7) ~[ApacheJMeter_core.jar:5.4]        at
>>>>> org.apache.jmeter.gui.MainFrame.init(MainFrame.java:514) ~[ApacheJMet
>>>>> er_core.jar:5.4]
>>>>>         at org.apache.jmeter.gui.MainFrame.<init>(MainFrame.java:231)
>>>>> ~[ApacheJM
>>>>> eter_core.jar:5.4]
>>>>>
>>>>> On Mon, Nov 23, 2020 at 12:20 PM Milamber <milamber@apache.org>
wrote:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> The first release candidate for JMeter 5.4 (8f58074e67) has been
>>>>>> prepared, and your votes are solicited.
>>>>>>
>>>>>> This release brings some new features and improvements, and also
fixes
>>>>>> bugs.
>>>>>>
>>>>>> Please, test this release candidate (with load tests and/or functional
>>>>>> tests) using Java 8+ on Linux/Windows/macOS, especially on the
>> changes.
>>>>>> Feedback is very welcome within the next 72 hours.
>>>>>>
>>>>>> You can read the New and Noteworthy section with some screenshots
to
>>>>>> illustrate improvements and full list of changes at:
>>>>>> https://apache.github.io/jmeter-site-preview/site/changes.html
>>>>>>
>>>>>> JMeter is a Java desktop application designed to load test functional
>>>>>> behavior and measure performance. The current version targets Java
8+
>>>>>>
>>>>>> Download - Archives/hashes/sigs:
>>>>>> https://dist.apache.org/repos/dist/dev/jmeter/apache-jmeter-5.4-rc1
>>>>>> (dist revision 44638)
>>>>>>
>>>>>> RAT report:
>>>>>> https://apache.github.io/jmeter-site-preview/rat/
>>>>>>
>>>>>> SHA512 hashes of archives for this vote: see footnote [1]
>>>>>>
>>>>>> Site preview is here:
>>>>>> https://apache.github.io/jmeter-site-preview/site/
>>>>>>
>>>>>> JavaDoc API preview is here:
>>>>>> https://apache.github.io/jmeter-site-preview/site/api/
>>>>>>
>>>>>> Maven staging repository is accessible here:
>>>>>>
>>>>>>
>> https://repository.apache.org/content/repositories/orgapachejmeter-1067/org/apache/jmeter/
>>>>>> Tag:
>>>>>>
>> https://gitbox.apache.org/repos/asf?p=jmeter.git;a=tag;h=refs/tags/v5.4-rc1
>>>>>> Keys are here:
>>>>>> https://www.apache.org/dist/jmeter/KEYS
>>>>>>
>>>>>> N.B.
>>>>>> To create the distribution and test JMeter: "./gradlew build -Prelease
>>>>>> -PskipSign".
>>>>>>
>>>>>> JMeter 5.4 requires Java 8 or later to run.
>>>>>>
>>>>>> The artifacts were built with
>>>>>>    Java(TM) SE Runtime Environment Oracle Corporation (build
>>>> 1.8.0_221-b11)
>>>>>>    Java HotSpot(TM) 64-Bit Server VM Oracle Corporation (build
>>>>>> 25.221-b11, mixed mode)
>>>>>>
>>>>>> Some known issues and incompatible changes are listed on changes
page.
>>>>>>
>>>>>>
>> https://apache.github.io/jmeter-site-preview/site/changes.html#Known%20problems%20and%20workarounds
>>>>>> All feedback and vote are welcome.
>>>>>>
>>>>>> [  ] +1  I support this release
>>>>>> [  ] +0  I am OK with this release
>>>>>> [  ] -0  OK, but....
>>>>>> [  ] -1  I do not support this release (please indicate why)
>>>>>>
>>>>>> The vote will remain open for at least 72 hours.
>>>>>>
>>>>>> The PMC members please indicate the mention "(binding)" with your
>> vote.
>>>>>>
>>>>>> Note: If the vote passes, the intention is to release the archive
>> files
>>>>>> and rename the RC tag as the release tag.
>>>>>>
>>>>>> Thanks in advance!
>>>>>>
>>>>>> Milamber
>>>>>>
>>>>>> ===
>>>>>> [1] SHA512 hashes of archives for this vote:
>>>>>>
>>>>>>
>>>>>>
>> ae1e2ecbde06ae6cd8f7af3d9f5f284ebdc4c2c462c917da9f34755d8cdc133c9371c4bc349fd3ec2f0bc431c6bfb8e5d8b00389f2eb037120804edf02042e9f
>>>>>> *apache-jmeter-5.4.tgz
>>>>>>
>>>>>>
>> 8f859d8121f2f54bc9b73885ab4cc9b5d86911c2bc498d22f0add13263c0039d5579d703f2db9f876d1a556128079fbf67a07f7d98dcfc87104da418ca181f84
>>>>>> *apache-jmeter-5.4.zip
>>>>>>
>>>>>>
>> e5bf807b13f08476c0808f2c0786da4e92d56ab6c63849eec47ae9a8862d7ac4ac635ff48baec8dcfab3528a97dbc6cc07f8341929c416e61fa3cb498e790e70
>>>>>> *apache-jmeter-5.4_src.tgz
>>>>>>
>>>>>>
>> 096b52420c08522a5a5f2492562e2ead301ff028ac46ac9b52f176f34221a0f24005d9529335d0ec850b105ff0aaa14b7522d0db2009c94b3977c784628e1f6b
>>>>>> *apache-jmeter-5.4_src.zip
>>>>>>
>>>>>>
>

Mime
View raw message