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:33:37 GMT

Am 24.11.20 um 16:10 schrieb Felix Schumacher:
> 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.

Having tried that a moment ago, I realized, that we include an
org.apache.log.Logger class in JMeter that is different to the one on
avalon-logkit (which is used inside of the maven build by
jmeter-plugins). Our implementation differs in the visibility of the
default constructor and the override-ability of the methods. That means,
we can't simply copy our old Slf4jLogkitLogger into the commons project
of jmeter-plugins.

Felix

>
> 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