Release 5.3

2020-04-02 Thread Vladimir Sitnikov
Hi,

It's been a long since JMeter 5.2.1, so I guess 5.3 is long overdue.

How about we release JMeter 5.3?

Vladimir


Re: NoThreadClone should be used more often

2020-03-30 Thread Vladimir Sitnikov
>https://github.com/JCTools/JCTools) instead of Dexx HashMap?

They serve for completely different use cases.

JCTool's map is for concurrent operation (like Java's ConecurrentHashMap).
That is when a map needs to be accessed from multiple threads, and each
thread should see updates that come from the other threads.

However, JMeter needs quite the opposite.
JMeter needs a map that pretends to be **non-shared**.
I other words, the map should support updates, however, each thread should
see **only** its own updates.

What JMeter currently does it **clones** maps. So a single
"FlowControlAction" is stored millions times in the Java heap
since JMeter clones the test plan for each and every thread.

What we need is a way to share "the common values", however, all the
updates must be put to separate storage.
This is exactly what Dexx collections do.

Of course, Dexx is not the only implementation, however it was the best for
performance-memory footprint ratio when I explored the libraries some time
ago for https://github.com/vlsi/compactmap

Vladimir


Re: NoThreadClone should be used more often

2020-03-30 Thread Vladimir Sitnikov
>What do you mean by unsafe  ?

Suppose the property in question is TestElement.gui_class
If the code reads it as <>, then the property can't be
modified,
so it is safe to use a shared property instance.

However, if the client code does <> then
we have no idea what will happen next. The code might call
<> or do something else.

That is why it is not safe to share the properties that were exposed
outside of AbstractTestElement class.

>For me this should be 6.0 (even if it's backward compatible),
>it's a major change that needs to be highlighted.

That is true. Async executor would indeed qualify as 6.0.

Vladimir


Re: NoThreadClone should be used more often

2020-03-30 Thread Vladimir Sitnikov
>Custom scripts can also modify props (I guess you have this in mind, but
>just not to skip it)

That is true. I expect that all calls to "public JMeterProperty
getProperty(String key)" should be treated as unsafe.

Frankly speaking, it would probably be great if we could split
configuration and execution phases.
Currently, JMeter uses the same object (e.g. AbstractSampler) to configure
the behavior in the test plan, and the very same object is used for the
execution.

However, the goals there are completely different:
1) Configuration needs backward compatibility (e.g. load old test plans),
configuration needs various setters, generic visitor for "search substring"
features, and so on
2) Execution needs much less. It does not need UI, it needs no backward
compatibility. It just needs enough information to execute stuff.

It would be much better if we
removed org.apache.jmeter.testelement.AbstractTestElement#setRunningVersion
and replaced it with something like
`AbstractTestElement#getExecutorNode()`

Then we would be able to build the executable test plan just once and skip
cloning the test plan nodes altogether.
Unfortunately, it is not clear how much effort would it take to rewrite the
existing samplers and the controllers to the new approach :(

So the plan could probably be like:
JMeter 5.3 or 5.4:
rewrite org.apache.jmeter.testelement.AbstractTestElement#propMap to use
Dexx HashMap;  add coroutine-based executor. That would unlock testing with
high number of threads.
JMeter 6.0: split AbstractTestElement into "configuration" and "execution"
classes

Vladimir


Re: NoThreadClone should be used more often

2020-03-30 Thread Vladimir Sitnikov
>a) Implement copy-on-write like mode for properties.
>For instance, we can add `modifiedPropMap` for the properties that were
modified in the running version.

copy-on-write seems trivial to implement (e.g. replace Map with Dexx
HashMap: https://github.com/andrewoma/dexx ),
however, there's a major problem:
JMeterProperty is exposed in a raw fashion (e.g. #getProperty or even
#propertyIterator)

It means we should clone properties at the time they are exposed to the
untrusted code.
However, it is not clear how to tell if the property was already cloned or
not.

Vladimir


Re: [Bug 64287] WhileController: Improve UX

2020-03-29 Thread Vladimir Sitnikov
Philippe,

Thanks for doing the cleanup. I deliberately refrained from touching
individual components :)


However, can you please clarify what is the value of those one-time
Bugzilla issues?
They do appear in the email notifications, so they produce some noise.
Later the end-users would crawl over the fixed bugs listed in the
changelog, and they will not know if the bug is a true one or if it is an
empty one.
So these "empty Bugzilla entries" distract both developers and the
end-users :-/
I guess we should commit small UX changes without creating Bugzilla tickets.

On the other hand, it would be great to have screenshots (e.g. in the
changelog) for the changes.
That would be more valuable for the end-users, so they would learn how it
works.

PS. Some of the components you edit have significant padding around the
panel.
For instance, While Controller has significant padding for "Conditition
(function or variable)" field.
I guess we should stick to the following:
1) If a component contains just a set of fields, then padding should be
minimal (e.g. like in Debug Sampler where the component panel has no
padding around)
2) If there are titled panels, then the padding should be there. For
instance, Thread Group has two titled panels, so the contents of the panels
is padded.

Vladimir


Re: [jmeter] branch master updated: Bug 64283 - XPath2 Extractor: Improve UX

2020-03-29 Thread Vladimir Sitnikov
+mainPanel.add(createScopePanel(true, true, true),
BorderLayout.NORTH);
+ <-- trailing whitespace
+JPanel panel = new JPanel(new MigLayout("fillx, wrap 2",
"[][fill,grow]"));

Phillippe, just wondering: I guess there's EditorConfig plugin for your IDE
(or a setting to trim trailing whitespace in Java files).
Have you tried it?

I guess it should completely prevent the appearance of the trailing
whitespace.

Vladimir


Re: [jmeter] branch master updated: Bug 64280 IfController: Improve UX

2020-03-29 Thread Vladimir Sitnikov
> +conditionPanel.setBorder(BorderFactory.createEtchedBorder()); //
$NON-NLS-1$

Philippe, please remove the etched border.
It adds visual noise for no reason.

I'm inclined that we should forbid the use of
BorderFactory.createEtchedBorder()

Vladimir


NoThreadClone should be used more often

2020-03-29 Thread Vladimir Sitnikov
Hi,

I've noticed that we have just a few cases when NoThreadClone is used.
It results in enormous memory consumption since the test plan is
effectively duplicated for each and every thread.

Just in case: my testcase is 1 thread group (100'000 threads), 10
transaction controllers (each has one FlowControlAction, and one Constant
30sec timer).
The test does not fit within 2Gb RAM :-(


AFAIK there are three types of elements:
* (almost) Stateless. For instance, UniformRandomTimer has no fields, and
it does not even access its own properties.
Note: there's `getRandom()` which is now implemented as
`ThreadLocalRandom.current()` so it is thread-safe
* Semi-stateless. For instance, TestAction. It does have a state for
cancellation purposes (it needs to remember which thread to cancel)
* Elements that do hold state. For example, TransactionController has quite
a few fields

I think we should do something with that, otherwise, the memory consumption
is insane.

I see the following possibilities:
a) Implement copy-on-write like mode for properties.
For instance, we can add `modifiedPropMap` for the properties that were
modified in the running version.
Then we could share the same property map and newly modified properties (if
any) would go another map.
That would save a lot of memory by small changes to the core alone.

Just some numbers:
400'000 TestActions retain 315MiB in the heap, and the most part of it
(300MiB) is consumed by property maps

b) Apply NoThreadClone when possible. Note: `NoThreadClone` interface
propagates for the derived classes,
however, it might be the case that the derived class does have state, thus
it requires cloning.
So I think we might need to add `@ThreadClone` annotation which would
enable us to specify different cloning behaviors for parent and derived
classes.

Then we might want to add a test case that ensures all in-core components
either support NoThreadClone or explicitly declare that they do not support
it.

c) Consider dropping some attributes when making a runtime version.
For instance, TestAction has the following properties:
ActionProcessor.action
ActionProcessor.duration
ActionProcessor.target
TestElement.enabled
TestElement.gui_class
TestElement.name
TestElement.test_class
TestElement.comments

I guess gui_class and test_class are not really required for the running
version.
It might play well with annotation:
`@ThreadClone(excludeProperties=["...gui_class", "test_class"])`

Any thoughts?

Vladimir


Re: Darklaf Intellij: when element is disabled its label is not readable Inbox x

2020-03-28 Thread Vladimir Sitnikov
Philippe>It's really nice, beautiful, clean , it's a big improvement for
JMeter
Philippe>design, thanks for your works Vladimir and Jannis.

Thanks!

Philippe>when you select it or
Philippe>the View Results Tree under it the selected element name is
unreadable.

In my experience, Darklaf has quite a number of demo classes, and it is
often possible to create an isolated example.
For example, I've filed this case as
https://github.com/weisJ/darklaf/issues/123

Even though Jannis is extremely fast at UI, you might try selecting colors
on your own.
If you clone JMeter and Darklaf repositories side by side, then you would
be able to launch JMeter as
./gradlew runGui -PlocalDarklaf
It would build Darklaf from sources, so you could make changes to Darklaf
and see how it works with JMeter.

Here's the list of colors: https://weisj.github.io/darklaf/

Vladimir


Re: Screenshots: documentation, pull requests

2020-03-28 Thread Vladimir Sitnikov
>Is there somewhere we can host them, like netlify or S3, instead of git?

Well, we can try Netlify, however, I'm not sure we are OK within their
limits.
A year ago I've raised https://issues.apache.org/jira/browse/INFRA-18102 for
use of Netlify for documentation preview, and the infra response was not
that positive.

Now I see they enable GitHub-Netlify integration for some of the projects.

Do you think you could explore the ways to preview the results?

So far I see the following key outputs:
* Documentation (e.g. canned screenshots for use in the online
documentation)
* UI regression testing: the system should render new screenshots, compare
them (with tolerance) with the etalon ones
(e.g. with the current screenshots), and produce the list of the ones that
differ significantly.

>What about the custom highlights around specific parts of the screenshot

It would be nice to have as well as
* custom values for fields
* custom size for the control
* crop

Frankly speaking, I think behind the lines of Kotlin DSL for that.

>instead of git

We might want to have documentation for **all** JMeter versions on the
website at the same time.
In other words, it would be great to have a version selector, so the users
could check the documentation for their version.

That implies we might want to store screenshots for all the versions rather
than "the latest screenshot for ThreadGroupGui".

Vladimir


Groovy 2.4.18 vs Java 14

2020-03-28 Thread Vladimir Sitnikov
Hi,

AFAIK, the version of Groovy we use 2.4.18 does not support Java 14.

Should we upgrade?
There are two options: 2.5.10 (see
http://groovy-lang.org/changelogs/changelog-2.5.10.html ) and 3.0.2 (
http://groovy-lang.org/changelogs/changelog-3.0.2.html )

Does anybody have any preference?

I think it might be ok to go with 3.0.2

Vladimir


Re: Undo/redo: does anybody use it?

2020-03-28 Thread Vladimir Sitnikov
>Nice work for a first shot !

Thanks. I think I'll merge it shortly.

So far it looks good to me, and it invalidates the history as the tree
selection is changed.

Frankly speaking, I have no idea on the generic way to associate the fields
to components yet.
In other words, if we want to associate edit history with components (e.g.
allow the user to switch between components and undo individual actions),
then we need to associate undo/redo history with the component rather with
the edit field.
However, that looks like an invasive change since it would require
JMeterGUIComponent#modifyTestElement (or something like that) to push/pop
the history.

Vladimir


Re: TristateCheckBox vs look and feels

2020-03-28 Thread Vladimir Sitnikov
Just in case, I've added a workaround to TristateCheckBox so it no longer
fails with NPE.

Vladimir


Re: Undo/redo: does anybody use it?

2020-03-27 Thread Vladimir Sitnikov
I've created a draft undo/redo implementation for text fields:
https://github.com/apache/jmeter/pull/576

Of course, it needs special treatment when tree selection changes, however,
even just the very basic ctrl+z
would be way better than nothing.

Any thoughts?

Vladimir


TristateCheckBox vs look and feels

2020-03-26 Thread Vladimir Sitnikov
Hi,

We provide a menu option to select Look and Feel.
I'm not sure which of them are used often, however, multiple LaFs come at a
cost.

For example, TCP Sampler UI
uses org.apache.jmeter.gui.util.TristateCheckBox which has multiple hacks
for different LaFs.
TristateCheckBox relies on defaults.get("CheckBox.icon") which is null in
case Daflkaf theme.
On top of that, it is hard to tell what the third state means. The UI is
obscure, and the documentation says nothing on the third state of the
checkbox.

So I have a couple of questions:
1) Should we replace TCP Sampler UI to use regular checkbox rather than a
tristate one?
2) Should we refrain from implementing custom components?
I'm inclined to drop TristateCheckBox completely rather than trying to fix
that control to support the current LaFs.
In practice, it would take time to develop and test custom-painted UI
components across multiple looks.
3) What if we reduce the number of LaFs that we "support"? I do not think
users really need different **styles** of UI.
It should be enough if we provide an option to use different color themes
like "light, dark, contrast, etc, etc".

Vladimir


Re: Undo/redo: does anybody use it?

2020-03-26 Thread Vladimir Sitnikov
>a) when component UI is created, we can scan the component hierarchy, and
add the listeners to all JTextField-like objects in the tree
>I'm inclined to #a because changing all new JTextField with new
JMeterTextField would look like changing 100500 files out of thin air.

It looks like there's yet another option: override TextFieldUI property in
Swing's UIDefaults.
Then JMeter could provide its own UI class. Then we could transparently
support undo/redo listeners for all the fields, including plugin-provided
GUI classes.

Vladimir


Screenshots: documentation, pull requests

2020-03-25 Thread Vladimir Sitnikov
Hi,

JMeter heavily relies on the UI, and would probably be nice if we could
have machinery for automated screenshot generation.

I see the following issues with the current screenshots:
1) They are often out of date
2) Image quality is not always good (e.g. LowDPI image does not work for
HiDPI screen)
3) Image themes are not consistent. One screenshot can be dark, another can
be light, and so on :(

What do you think if we replace screenshots with automatically generated
ones?

I've created a draft PR: https://github.com/apache/jmeter/pull/574
I implement a small class that instantiates GUI components and generates
PNG files out of it.

So far my findings are:
a) The full set of screenshots takes ~7 megabytes (or ~3.5 after pngquant).
We would probably want to keep screenshots in another repository.
Otherwise, we could pollute the main source repository with images quite
fast.
b) Different operating systems have slightly different rendering because
the default fonts are different
c) If we use a different repository for storing screenshots, then we could
render even multiple themes and add "preferred theme" switch to the website
d) A single component might need more than one screenshot (e.g. HTTP
request have multiple tabs)


Any thoughts?

Vladimir


Re: Replacing nashorn

2020-03-25 Thread Vladimir Sitnikov
There might be yet another option.

It might be that Nashorn would be moved to a community-managed library
(e.g. like JavaFx became OpenJFX).


>Is Nashorn or its replacment needed for *all* test plans?

Some of the plans depend on Nashorn, and some of them do not.

Vladimir


Re: Undo/redo: does anybody use it?

2020-03-25 Thread Vladimir Sitnikov
>Indeed, undo is only within current active selection.

Ok. I just thought we could start with `undo for edit fields within the
current tree selection`.

In other words, reset all undo history when the test plan element is
re-selected.
I guess we could be able to release that activated by default, so
people could start using undo/redo.

A bit of a problem with that is it is required to attach undo listeners to
all the fields, and the fields can even be created dynamically :-/

I see two approaches:
a) when component UI is created, we can scan the component hierarchy, and
add the listeners to all JTextField-like objects in the tree
b) require that all JTextField must pass through a special API to add undo
listeners

Any thoughts on that?
I'm inclined to #a because changing all new JTextField with new
JMeterTextField would look like changing 100500 files out of thin air.

Vladimir


Re: Undo/redo: does anybody use it?

2020-03-24 Thread Vladimir Sitnikov
sebb>My point was that the working copy of the test plan is complicated and
fragile

Well, the solution is to add synchronization (e.g. read-write locks) and
forbid non-synchronized access to the model.
That, however, is an orthogonal story.

Vladimir


Re: Undo/redo: does anybody use it?

2020-03-24 Thread Vladimir Sitnikov
>Scripting elements like JSR223 and all elements using RSyntaxTextArea
>already support this.

Not quite.

Suppose the following:
1) Create JSR223 Sampler
2) Type "hello" into the script field
3) Switch to Test Plan
4) Switch back to JSR223 Sampler

ctrl+z does nothing. I would expect that history should persist across
switching between elements.

Vladimir


Re: Undo/redo: does anybody use it?

2020-03-24 Thread Vladimir Sitnikov
sebb>For example, even detecting whether the test plan has been changed

I don't see why change detection is needed for undo.

Philippe>Do you think it will be feasible to implement per-element undo/redo
?
Philippe>ok by me anyway to have something in this field

Yet another approach could be `per-field` undo. In other words, `ctrl+z`
could undo the edits in the currently focused field.

Vladimir


Re: Replacing nashorn

2020-03-23 Thread Vladimir Sitnikov
up.

Graal.JS seems to be mature now.
It can run on any Java machine:
https://github.com/graalvm/graaljs/blob/master/docs/user/RunOnJDK.md#run-graalvm-javascript-on-a-stock-jdk

The licenses there are MIT and/or UPL (both are permissible for Apache)

The sad thing is that Graal.JS is ~20 megabytes extra.


It is extremely likely Nashorn will be removed from Java 15, so we need to
deal with it somehow.

So the options are:
a) Bundle Graal.JS (+20MiB :( )
b) Document the way to add Graal.JS jars as an external dependency
(everybody would need to download the file manually :( )
c) Add an option to download Graal.JS on demand (not that trivial to
implement, yet useful for many(!) other cases)

WDYT?

Vladimir


Re: Comments field vs moving focus: tab vs ctrl+tab

2020-03-20 Thread Vladimir Sitnikov
Ok, great.

Now's a more tricky question: should we patch all the multiline fields or
should we do it case by case?

For instance: how about JSR223 code editors?

Vladimir


Comments field vs moving focus: tab vs ctrl+tab

2020-03-19 Thread Vladimir Sitnikov
Hi,

Every JMeter component has Name and Comments.
"Comments" is a multi-line field (which is nice for writing comments), but
it does not play well with moving focus via tab and shift+tab.

If you hit `tab` inside Comments field, then you just add a tab character
(like an indentation).
Of course, there's a way to move focus, and it is ctrl+tab and
ctrl+shift+tab, however, it looks weird for me.

Does that make sense?
Frankly speaking, I think using tabs for indentation inside Comments field
is an edge case, so I would suggest we re-configure `tab` meaning for
Comments field.

Any thoughts?

Vladimir


Undo/redo: does anybody use it?

2020-03-17 Thread Vladimir Sitnikov
Hi,

I see undo was added ~6 years ago, however, it is still disabled by default
:(
The lack of undo can easily be the top priority issue for the users.

>From what I understand, the current implementation is to build a global
history across all test plan elements.

It does not feel right, because the test plan is often a mix of loosely
coupled items (e.g. different thread groups represent completely different
test items),
so it looks like undo/redo should be per-element rather than global.

Just in case: IntelliJ IDEA seems to implement per-file undo/redo, so
ctrl+z (cmd+z) reverts actions in the current file.

What do you think if we make undo per-element?

Vladimir


Re: [jmeter] branch master updated: Error when loading Templates on Windows

2020-03-15 Thread Vladimir Sitnikov
>-Document document = bd.parse(file.getAbsolutePath());
>+Document document = bd.parse(file.toURI().toString());

Felix, is there a reason why bd.parse(file) is not used?

Vladimir


Re: failing timeshift test

2020-03-08 Thread Vladimir Sitnikov
>interpretation of LocalTime addition operations and parsing

Well, the function itself does a lot of time parsing, so I am nowhere sure
if it contains bug or not.
Did you mean the test fails at the specific date only?

However, the concurrent execution of tests that alter timezone is not
something we intended to do.
Technically speaking, JUnit5 has ResourceLock notation (see
https://github.com/junit-team/junit5/issues/2142#issuecomment-596199239 )

Vladimir


Re: [jmeter] branch master updated: Apply autostyle to make spotbugs happy

2020-03-08 Thread Vladimir Sitnikov
Felix> new 1673248  Apply autostyle to make spotbugs happy

1) Technically speaking, this has nothing to do with spotbugs.

2) If you install editorconfig plugin, it would likely insert the final
newline automatically (see insert_final_newline in .editorconfig)

Vladimir


Re: failing timeshift test

2020-03-08 Thread Vladimir Sitnikov
I guess the issue there is the test relies on TimeZone.getDefault(),
however,
there's 
org.apache.jmeter.functions.TestDateTimeConvertFunction#testDateTimeConvertEpochTime
which alters the default time zone.

Let's see if something like https://github.com/apache/jmeter/pull/560 can
workaround this.

Vladimir


Re: Darklaf - A themeable swing Look and Feel based on Darcula-Laf

2020-03-05 Thread Vladimir Sitnikov
>Properties, XML, etc are not executed by the JVM; they are effectively
>just data.

BeanShell, JavaScript, and Groovy are not "just data", but it is code which
is a part of JMeter.

So far I see no technical justification for requiring all transitive
dependencies to be written in Java language only.

Vladimir


Re: Darklaf - A themeable swing Look and Feel based on Darcula-Laf

2020-03-02 Thread Vladimir Sitnikov
>No, that's not exactly what 100% pure Java code means

Pure Java means nothing.
JMeter has lots of Properties, XML, XSLT, CSS, Groovy, BeanShell, and even,
holy cow, JavaScript files.

There's no point in making "100% pure X" without having a good definition
of that.

>The Java code must of course comply with the appropriate Java language

>Is Darklaf written entirely in Java?
>Are all its dependencies written in Java?

It is Java virtual machine compliant. Why does the language matter to you?

Vladimir


Re: Darklaf - A themeable swing Look and Feel based on Darcula-Laf

2020-03-02 Thread Vladimir Sitnikov
>Huh?

Ok, so you mean Java specification.
In that sense, Darklaf follows the spec, and its code should be compatible
with all Java virtual machines.

Vladimir


Re: Darklaf - A themeable swing Look and Feel based on Darcula-Laf

2020-03-02 Thread Vladimir Sitnikov
>Will JMeter remain 100% pure Java?

Sorry, I don't understand the question.
What do you mean by 100% Java?

>Are there really no standard LAFs that would suit JMeter?

1) Standard LAFs do not look and feel modern
2) No standard LAF has a dark scheme that might work better in the evening.

Vladimir


Re: Darklaf - A themeable swing Look and Feel based on Darcula-Laf

2020-03-02 Thread Vladimir Sitnikov
>JMeter is advertised as being 100% pure Java code.

Darklaf has a native integration feature, however, it is optional.

Currently, JMeter uses Darcula as a default look and feel now,
there are multiple UI bugs in Darcula (e.g. tree indent is hard to see),
Darcula has a single release only,
nobody's going to fix Darcula issues in Darcula itself, because the code is
just stale.

So I think we should drop Darcula theme completely, and migrate to Darklaf
( https://github.com/weisJ/darklaf ) or FlatLaf (
https://github.com/JFormDesigner/FlatLaf )

So far, Darklaf maintainer fixed all the JMeter-related LaF issues, and I
think JMeter can just migrate to that LaF.
The challenge for JMeter is that Darklaf uses **extensible** theming, so it
is a single LaF with an ability to have multiple themes.
JMeter's menu does not support that, and we probably need to configure that
somehow (e.g. creating a submenu for themes).

Vladimir


Re: Darklaf - A themeable swing Look and Feel based on Darcula-Laf

2020-02-17 Thread Vladimir Sitnikov
> * it seems to takes more screen space  than the other themes (just a
feeling)

It was a bug in Combobox rendering:
https://github.com/weisJ/darklaf/issues/38
It is fixed.

>* dragable separators are hard to see (on my setup). I can only see the
drag-handles

I guess even the old Darcula renders the handles only.
It looks like Darklaf defaults to no-border JPanel while Darcula renders
1px black border which sometimes looks like a divider.

Vladimir


Re: [jmeter] branch master updated: Try to cleanup gradle cache for bouncycastle on travis

2020-02-16 Thread Vladimir Sitnikov
>Probably different caches?

I'm not sure, but it looks plausible that .asc resolution failed, and it
was cached somehow.
Can you try dropping the cache and restarting the job (there's UI as well
for that)

Vladimir


Re: [jmeter] branch master updated: Try to cleanup gradle cache for bouncycastle on travis

2020-02-16 Thread Vladimir Sitnikov
Felix, just in case, there's "drop cache" button in the UI:
https://travis-ci.org/apache/jmeter/caches

Vladimir


Re: Darklaf - A themeable swing Look and Feel based on Darcula-Laf

2020-02-15 Thread Vladimir Sitnikov
>Does it silently default if it fails to bind to dll or does it break  ?

No idea.
The full thing works in my macOS. It might work as well if excluding jna
dependency, however I have not tried that.

Vladimir


Re: Darklaf - A themeable swing Look and Feel based on Darcula-Laf

2020-02-15 Thread Vladimir Sitnikov
>Just wondering, why does it rely on jna ?

I guess it is for
https://github.com/weisJ/darklaf/wiki/Features#native-window-decorations
(which is Windows-only for now)

Vladimir


Re: Darklaf - A themeable swing Look and Feel based on Darcula-Laf

2020-02-15 Thread Vladimir Sitnikov
>But the glitches for now seem blocking no ?

Well, checkbox/radio glitch is already fixed (~3-4 hours time from issue to
resolution), so the author is quite open with fixing issues, and they do
publish the library to Central.

The key issue left is license clearance + fixing minor issues.
In my opinion, it is more-or-less ready for JMeter.
That would enable us to keep momentum.

An alternative option is to migrate to something like https://tornadofx.io/ ,
however, that is a bit different story.


The dependencies are something like the following:

+--- com.github.weisj:darklaf -> 1.3.3.4
|+--- com.metsci.ext.com.kitfox.svg:svg-salamander:0.1.19
|+--- net.java.dev.jna:jna:4.1.0
|\--- org.swinglabs:jxlayer:3.0.4


Vladimir


Re: Darklaf - A themeable swing Look and Feel based on Darcula-Laf

2020-02-14 Thread Vladimir Sitnikov
>Yes, it is looking really nice.

OK. I've tried it, and it seems to work, however, there are glitches :(

The most interesting bit is jxlayer-3.0.4.jar dependency.
AFAIK the library was initiated at http://swinglabs.org/ which is no longer
available.
The jar file does not bundle the license text.
I don't think the original repository is alive.

I guess the license of the artifact is BSD-3-Clause (==> it requires to
reproduce the copyright header),
so technically speaking we must somehow resurrect the copyright owner if we
want to include that dependency :)

I'm not that good at resurrection, however, it looks like this looks ok:
https://github.com/tsachev/jgnash/blob/25a5ad1f9349cf9f2849509c09a24f8b1fa3cbf5/jgnash-resources/src/main/resources/jgnash/resource/html/en/jxlayer-license.html



Here's a PR with minimal change to make it fly:
https://github.com/apache/jmeter/pull/556

I've filed a couple of issues to darklaf as well.

Vladimir


Darklaf - A themeable swing Look and Feel based on Darcula-Laf

2020-02-14 Thread Vladimir Sitnikov
Hi,

It looks interesting: https://github.com/weisJ/darklaf/wiki/Features

Vladimir


Re: batchTestRedirectionPolicies fails too often

2020-01-27 Thread Vladimir Sitnikov
Just in case:

https://github.com/vlsi/jmeter/runs/411635373 (both macOS and Windows jobs
failed because of redirection policies)
https://github.com/apache/jmeter/pull/553/checks?check_run_id=411635502 the
same thing
The same thing for ALL Travis jobs:
https://travis-ci.org/apache/jmeter/builds/642583544

The test breaks 8 CI jobs of 8 which does not look great.

Vladimir


Re: batchTestRedirectionPolicies fails too often

2020-01-26 Thread Vladimir Sitnikov
>Is there a better way to test the same functionality?

The tests should not connect to external servers unless the server is known
to be stable.

For now, we have multiple tests that access external systems, and they fail
quite often.

Vladimir


batchTestRedirectionPolicies fails too often

2020-01-26 Thread Vladimir Sitnikov
Hi,

I see that batchTestRedirectionPolicies fails too often (more than 50% of
the times?) which is sad.
I'm inclined to disable the test.

Any thoughts?

Vladimir


Replace Spotless with Autostyle

2019-12-28 Thread Vladimir Sitnikov
Hi,

I intend to replace Spotless with Autostyle (
https://github.com/autostyle/autostyle) in our build.
The net result will be the license headers will be more consistent, and the
style violation messages will be easier to understand.

For instance, Autostyle is capable of automatic license formatting for XML
and Shell files.

PR: https://github.com/apache/jmeter/pull/549
Unfortunately, the PR touches a lot of files, however, it should not hurt
much.

spotlessCheck task will be replaced with autostyleCheck
spotlessApply -> autostyleApply

style task will still work (it applies the changes and verifies the rest)

Vladimir


Re: httpclient4.time_to_live defaults to 2000 which is way less than the typical browser behavior

2019-12-25 Thread Vladimir Sitnikov
>more connections on the
client, which can be a sparse resource.

It does not typically exceed the number of threads, so users would expect
that.

The problem with the current default is it makes the false sense of
enabling keep-alive in UI.

The users might think that they activate KA, but it is not used if the
response times exceed 2sec.

Reusing connections after 60seconds might even enable to surface
concurrency issues in the app.

Vladimir


Re: Hardcoded setEnableAutoCommitOnReturn=false

2019-12-17 Thread Vladimir Sitnikov
Philippe>dataSource.setEnableAutoCommitOnReturn(isAutocommit());

What do you think of adding a checkbox like "rollback on returning
connections to the pool"?

Dmitry>I've created issue. Currently I can't find solution for that without
Dmitry>changing source code :(

I guess it would make sense to make it configurable.

Vladimir


Re: Hardcoded setEnableAutoCommitOnReturn=false

2019-12-16 Thread Vladimir Sitnikov
>Here is the example jmx file

It looks like the attachment was cut :(

https://lists.apache.org/thread.html/651e4cd6d9bebabc1a70766d01b2030c3e72ecdcd83d1c513558f99a%40%3Cdev.jmeter.apache.org%3E

Vladimir


Re: Hardcoded setEnableAutoCommitOnReturn=false

2019-12-16 Thread Vladimir Sitnikov
Dmitry>I'm facing problem while I'm testing Derby DB - when 2 connection
used
Dmitry>(first with autoCommit=true and other with autoCommit=false)
exception
Dmitry>occurs while switching between this 2 connections inside test.

Can you please provide a minimal reproducible example (e.g. jmx file)?

It was added in
https://github.com/apache/jmeter/commit/e15602def76e4472a689aadae25b2d7b2ea0cd97
 ,
and it probably makes sense to make the option configurable.

java.sql.Conneciton#close with a pending transaction is not specified
indeed, and Derby has chosen to throw in such a case.

Vladimir


httpclient4.time_to_live defaults to 2000 which is way less than the typical browser behavior

2019-12-12 Thread Vladimir Sitnikov
Hi,

JMeter defaults to 2 seconds timeout for keep-alive HTTP connections, which
seems to be much less than the typical browser configuration.

https://en.wikipedia.org/wiki/HTTP_persistent_connection#Use_in_web_browsers
,
https://fastmail.blog/2011/06/28/http-keep-alive-connection-timeouts/
suggest that:
IE: 60 sec
FireFox: 115 sec
Chrome: 300 sec

What do you think if we bump the default for httpclient4.time_to_live from
2000 to 12 (==2 min)?

I guess the current setting of 2000 was just a copy-paste result when the
setting was initially implemented.
Here's the commit that introduces the feature:
https://github.com/apache/jmeter/commit/eaaf1be40908ba5f74e7baac9ea985cc62de6a6f#diff-4e3471b25c91730a99ed23402467b9eaR146

Vladimir


Re: [OpenIV:0551] Re: Bugzilla Enhancement: "Auto-Correlation as core functionality in JMeter"

2019-11-26 Thread Vladimir Sitnikov
>About new feature of auto-correlation, we prepared specification written
as manual.

That is great. It really helps to preview the feature.

However, I fail to understand what is "correlation with JMX file".
I see it consumes an extra JMX file, but it is not clear what should be
there in the file,
it is not clear what is added as a result.

Does "Correlation" differ from "Auto-Correlation"? Should just one of them
be used in all the places?
Is there a "manual correlation"?

How Rule differs from Correlation?
Is Rule mandatory for Correlation to work?

Vladimir


Re: [VOTE] Release JMeter 5.2.1 RC5

2019-11-20 Thread Vladimir Sitnikov
Thanks,

+1

Artifacts look good, jks is not included to the binary archives.

Vladimir


Re: Cleaning the /src/dist/build/distributions directory before put the archives

2019-11-20 Thread Vladimir Sitnikov
>it's will be better to clean the distributions directory before
>put the archives to avoid issues?

Extra files do not bother me, and I even compare them sometimes.
The contents of src/dist/build/distributions is never scanned for the list
of files to publish,
and I see no reason to clean it every time.

You can execute gw clean (or ./gradlew :src:dist:clean) if you want before
the release.
You can use gradlew :src:dist:clean prepareVote ... as well.

Vladimir


Re: [VOTE] Release JMeter 5.2.1 RC4

2019-11-19 Thread Vladimir Sitnikov
I guess it is up to RM, but I do not think those are significant issues.

It takes too much time to vote/announce, so redoing RC for minor issues
seems to be a waste of time.

Vladimis


Re: [VOTE] Release JMeter 5.2.1 RC4

2019-11-19 Thread Vladimir Sitnikov
>it could be moved to a test resources directory instead

I agree. We should refrain from mixing production code with testing code in
the same folder.

Vladimir


Re: [VOTE] Release JMeter 5.2.1 RC4

2019-11-19 Thread Vladimir Sitnikov
>It's also in the source release and in the Git repo, so I assume it is
>supposed to be there.

That depends. It might be in the source repo for testing purposes only.
So I would suggest we keep it in the source distribution (otherwise source
build would fail), and we exclude the file from the binary distribution
to prevent users from accidental use of rmi_keystore.jks.

Vladimir


Re: [VOTE] Release JMeter 5.2.1 RC4

2019-11-18 Thread Vladimir Sitnikov
Just a side note: the release step (gw publishDist) is known to fail if SVN
1.9 is used (see https://issues.apache.org/jira/browse/SVN-4666 ,
https://github.com/vlsi/asflike-release-environment/issues/1)
I guess Milamber is using a newer version (since the previous release
succeeded),
however, I would suggest double-checking.

The error does not happen for me with SVN 1.12.2 though, and the next
version of the release plugin implements a workaround.
We can upgrade after the release.

Vladimir


Re: [VOTE] Release JMeter 5.2.1 RC4

2019-11-17 Thread Vladimir Sitnikov
>The fourth release candidate for JMeter 5.2.1

Thank you

+1: I verified checksums, signatures, build, tests, pom files
JMeter from binary distribution starts.

--- script

VER=5.2.1
RC=4
svn checkout
https://dist.apache.org/repos/dist/dev/jmeter/apache-jmeter-$VER-rc$RC
cd apache-jmeter-$VER-rc4
for i in *.asc; do gpg --verify $i; done;
for i in *.zip *.tgz; do shasum -a512 $i; done;

tar xzf apache-jmeter-${VER}_src.tgz # or unzip apache-jmeter-${VER}_src.zip
cd apache-jmeter-${VER}

./gradlew build -Prelease -PskipSigning

Vladimir


Re: [VOTE] jmeter-test.apache.org for site preview

2019-11-16 Thread Vladimir Sitnikov
Thanks,

The vote passes with +4: Vladimir, Philippe, Felix, Antonio.

Vladimir


[VOTE] jmeter-test.apache.org for site preview

2019-11-15 Thread Vladimir Sitnikov
Hi,

We are using GitHub pages for 'site preview' during release.
In https://issues.apache.org/jira/browse/INFRA-19395 I asked to create
robots.txt to disallow indexing of the preview site (
https://apache.github.io/jmeter-site/... )

It turns out we can have a CNAME (see INFRA-19395), so
https://jmeter-test.apache.org points to GitHub Pages site. The SSL
certificates would be automatic.

What do you think regarding jmeter-test.apache.org ?

+1: I support jmeter-site.a.o
-1: I do not like the idea because...

Here's my vote: +1

Vladimir


Re: Release 5.2.1

2019-11-15 Thread Vladimir Sitnikov
Milamber, would you please retry creating RC?

Vladimir


Re: [jmeter] branch master updated: Get focus on the RC Number in word and the description of the release

2019-11-15 Thread Vladimir Sitnikov
>+The [RC NUMBER] release candidate

What do you mean by [RC NUMBER] ?
Could you just use $rc variable instead ?

Vladimir


Re: [jmeter] branch master updated (7850afb -> 79bda1b)

2019-11-15 Thread Vladimir Sitnikov
Ok. I see you've made the screenshot to be much wider (687px -> 1055px):
https://github.com/apache/jmeter/commit/79bda1b4ea1eb9494811ca0c166ccca85bebf818?short_path=10973a0#diff-10973a05c7bd6dbecfcee858f78121b1

Does it help readability? I doubt so.

So, would we please enable force-push and shrink the image?

Vladimir


Re: [jmeter] branch master updated (7850afb -> 79bda1b)

2019-11-15 Thread Vladimir Sitnikov
>Bin 26380 -> 37115 bytes

Philippe, have you compressed the image?

It is yet another reason to enable force-push.
If a big file suddenly committed, it would be hard to get rid of it.

Vladimir


Re: Release 5.2.1

2019-11-14 Thread Vladimir Sitnikov
>I will try to do a RC2 of v5.2.1 tonight

My bad. The latest snapshot (gradle-6.0.1-20191114002542+-all.zip) does
not include the fix yet.
So let's try tomorrow.

Vladimir


Re: Release 5.2.1

2019-11-13 Thread Vladimir Sitnikov
It seems rather restrictive that repository.apache.org is not ready for
sha256 in 2019.

Vladimir


Re: Release 5.2.1

2019-11-13 Thread Vladimir Sitnikov
>Are we sure it will be available in 1 week ?

Please have a look over the recent patch releases:
https://gradle.org/releases/
They were quite prompt.
For instance: Gradle 5.2 (Feb 04), 5.2.1 (Feb 08).
We are not voting that fast yet :-/

If it does not appear in a week, we can revert to 5.6.

Vladimir


Re: Release 5.2.1

2019-11-13 Thread Vladimir Sitnikov
Update: it turned out repository.apache.org is not yet ready for storing
sha256 and sha512 checksums.
Gradle 6.0 publishes sha256 and sha512, however, Nexus is not ready yet.

The relevant issue is https://issues.apache.org/jira/browse/INFRA-14923
Gradle issue is https://github.com/gradle/gradle/issues/11308

So we have at least two options:
* Wait till 6.0.1 is released with a flag that disables 256/512 checksums
* Revert Gradle to 5.6.2 and retry the release

I would suggest waiting for Gradle 6.0.1 for a week.

Vladimir


Re: Release 5.2.1

2019-11-11 Thread Vladimir Sitnikov
>That’s what is done with maven when you want to force a newer version than
the one embedded by dependency

Remember there are frameworks and there are libraries.

binary distribution of JMeter is a framework: it enforces you to put jars
into relevant places, and start with ./jmeter.

On the other hand, jar files on Maven Central are libraries. They do not
enforce the way you use them.

The one who uses Maven artifacts is free to select the suitable versions.

The rule for dependencies should be as follows:
1) If we use the class (e.g. in extends, method parameter or method
returning value), then the dependency should be explicitly declared
2) If we do not use a dependency (e.g. we do not use asm explicitly), then
the dependency should not be declared
3) The exception to #2 is the case when the transitive version is too old
(e.g. contains security issue), then we could still declare an "unused
dependency".

Unfortunately, there's no validation for the dependencies yet, and I'm
planning to implement one shortly.

Vladimir


Re: Release 5.2.1

2019-11-11 Thread Vladimir Sitnikov
>Done.

Why add asm?
We do not use it => it should not be added.

Vladimir


Re: Release 5.2.1

2019-11-11 Thread Vladimir Sitnikov
If Milamber has not yet started rc1, then we could add it.
Otherwise, I do not think it is a notable issue for stopping the release.

Vladimir


Re: [jmeter] branch master updated: prepare new version 5.2.1

2019-11-11 Thread Vladimir Sitnikov
>+

Ah. Need to get rid of this.

Vladimir


Re: Release 5.2.1

2019-11-11 Thread Vladimir Sitnikov
Looks good to me.

Milamber, would you please create a rc?

Vladimir


Re: Release 5.2.1

2019-11-11 Thread Vladimir Sitnikov
>Following discovery of issue on pom, can we release a 5.2.1 ?

+1

Vladimir


Re: [jmeter] branch master updated: build.gradle.kts in core, functions, components, protocol: Fix dependencies for pom generation and remove version

2019-11-09 Thread Vladimir Sitnikov
>Where ?

https://github.com/apache/jmeter/blob/2cfdec9d50ddab4649b813c07724588a03371ef4/src/protocol/build.gradle.kts#L86

Vladimir


Re: [jmeter] branch master updated: build.gradle.kts in core, functions, components, protocol: Fix dependencies for pom generation and remove version

2019-11-09 Thread Vladimir Sitnikov
>1/ I reverted the ones that indeed look wrong.

Thanks

>2/ But I kept dec which is needed for http.

Do you mean org.brotli:dec ? It was there.

Vladimir


Re: [jmeter] branch master updated: build.gradle.kts in core, functions, components, protocol: Fix dependencies for pom generation and remove version

2019-11-09 Thread Vladimir Sitnikov
> For com.miglayout:miglayout-swing , isn't it missing ?

It is declared in "core":
https://github.com/apache/jmeter/blob/b0448c8cb3b70e7c3c58f84af926d0071a091f78/src/core/build.gradle.kts#L74

>- Is scope runtime in the poms correct ?

It is

Vladimir


Re: [jmeter] branch master updated: build.gradle.kts in core, functions, components, protocol: Fix dependencies for pom generation and remove version

2019-11-09 Thread Vladimir Sitnikov
>No, it's one of my concern but that's not what drives my commit.
>The Pom are wrong and I am trying to fix it.

That is fine. However, this time the fix is wrong, so I suggest to step
back and revert it.

>Can you explain instead of requesting revert ?

Simple explanation: Gradle builds the code, and the resulting binary works.
It means all the required jars are declared (either explicitly or they come
with transitive dependencies)


xpp3 is not used by JMeter code, so the library should not be in the
dependencies.
In other words, org.xmlpull classes never appear in the source code of
JMeter, so the library should not be in the dependencies.

As you can see below, xpp3 is used by xtream:jar, and it is declared in the
pom file for com.thoughtworks.xstream:xstream:jar:1.4.11
(see
https://repo1.maven.org/maven2/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.pom
 )

$ mvn -f src/core/build/publications/core/pom-default.xml dependency:tree
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @
ApacheJMeter_core ---
[INFO] org.apache.jmeter:ApacheJMeter_core:jar:5.2.1-SNAPSHOT
[INFO] +- org.apache.jmeter:ApacheJMeter:jar:5.2.1-SNAPSHOT:compile
[INFO] +- org.apache.jmeter:jorphan:jar:5.2.1-SNAPSHOT:compile
[INFO] |  +- org.slf4j:slf4j-api:jar:1.7.28:compile
[INFO] |  +- commons-io:commons-io:jar:2.6:runtime
[INFO] |  \- org.apache.commons:commons-lang3:jar:3.9:runtime
[INFO] +- bsf:bsf:jar:2.4.0:compile
[INFO] |  \- commons-logging:commons-logging:jar:1.0.4:compile
[INFO] +- com.fifesoft:rsyntaxtextarea:jar:3.0.4:compile
[INFO] +- net.sf.jtidy:jtidy:jar:r938:compile

[INFO] +- com.thoughtworks.xstream:xstream:jar:1.4.11:compile
[INFO] |  +- xmlpull:xmlpull:jar:1.1.3.1:compile
[INFO] |  \- xpp3:xpp3_min:jar:1.1.4c:compile

^^^ here

[INFO] +- org.apache.logging.log4j:log4j-1.2-api:jar:2.12.1:compile
[INFO] +- org.apache.logging.log4j:log4j-api:jar:2.12.1:compile
[INFO] +- org.apache.logging.log4j:log4j-core:jar:2.12.1:compile
[INFO] +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.12.1:compile
[INFO] +- org.apiguardian:apiguardian-api:jar:1.1.0:compile
[INFO] +- oro:oro:jar:2.0.8:compile
[INFO] +- xalan:xalan:jar:2.7.2:compile
[INFO] |  \- xalan:serializer:jar:2.7.2:compile
[INFO] +- net.sf.saxon:Saxon-HE:jar:9.9.1-5:compile
[INFO] +- org.slf4j:jcl-over-slf4j:jar:1.7.28:runtime
[INFO] +- commons-codec:commons-codec:jar:1.13:runtime
[INFO] +- commons-collections:commons-collections:jar:3.2.2:runtime
[INFO] +- com.github.ben-manes.caffeine:caffeine:jar:2.8.0:runtime
[INFO] |  +- org.checkerframework:checker-qual:jar:2.10.0:runtime
[INFO] |  \- com.google.errorprone:error_prone_annotations:jar:2.3.3:runtime
[INFO] +- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.10:runtime
[INFO] +- com.fasterxml.jackson.core:jackson-core:jar:2.9.10:runtime
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.10:runtime
[INFO] +- com.miglayout:miglayout-swing:jar:5.2:runtime
[INFO] |  \- com.miglayout:miglayout-core:jar:5.2:runtime
[INFO] +- org.freemarker:freemarker:jar:2.3.29:runtime
[INFO] +- org.mozilla:rhino:jar:1.7.11:runtime
[INFO] +- org.apache.xmlgraphics:xmlgraphics-commons:jar:2.3:runtime
[INFO] +- org.apache.commons:commons-text:jar:1.8:runtime
[INFO] +- org.apache.commons:commons-math3:jar:3.6.1:runtime
[INFO] +- org.apache.tika:tika-core:jar:1.22:runtime
[INFO] +- org.jodd:jodd-core:jar:5.0.13:runtime
[INFO] +- org.jodd:jodd-props:jar:5.0.13:runtime
[INFO] +- org.codehaus.groovy:groovy-all:jar:2.4.16:runtime
[INFO] +- org.apache.tika:tika-parsers:jar:1.22:runtime
[INFO] +- xerces:xercesImpl:jar:2.12.0:runtime
[INFO] \- xml-apis:xml-apis:jar:1.4.01:runtime

>http modules requires HttpClient, it's not referenced , as a
>   consequence corresponding pom is wrong

See
$ mvn -f src/protocol/http/build/publications/http/pom-default.xml
dependency:tree
...
[INFO] +- org.apache.httpcomponents:httpmime:jar:4.5.10:runtime
[INFO] |  \- org.apache.httpcomponents:httpclient:jar:4.5.10:runtime
...


Vladimir


Re: [jmeter] branch master updated: build.gradle.kts in core, functions, components, protocol: Fix dependencies for pom generation and remove version

2019-11-09 Thread Vladimir Sitnikov
>So the commit is not incorrect.

Please revert.
I'm 100% sure the commit is incorrect.

It seems you are driven by "the failure of jmeter-maven-plugin".
However, the failure is caused by j-m-p itself, and adding unused
dependencies to JMeter is not the right way to workaround j-m-p issue.

Vladimir


Re: [jmeter] branch master updated: build.gradle.kts in core, functions, components, protocol: Fix dependencies for pom generation and remove version

2019-11-09 Thread Vladimir Sitnikov
>implementation("xpp3:xpp3_min")
>Used by core  for persisting

This is very simple to check.
xpp3_min-1.1.4c.jar jar contains only org/xmlpull/... classes.

$ git grep xmlpull
checksum.xml:
gradle.properties:xmlpull.version=1.1.3.1
lib/aareadme.txt:xmlpull-1.1.3.1
lib/aareadme.txt:http://www.xmlpull.org/impls.shtml
src/bom/build.gradle.kts:apiv("xmlpull:xmlpull")

That is it. JMeter source code does not use org.xmlpull. classes, so
xpp3:xpp3_min dependency should not be added.
The same thing is for other dependencies.

Please revert the changes that add the dependencies.

Vladimir


Re: [jmeter] branch master updated: build.gradle.kts in core, functions, components, protocol: Fix dependencies for pom generation and remove version

2019-11-09 Thread Vladimir Sitnikov
The ones that you've just added:
+implementation("com.miglayout:miglayout-core")
+implementation("com.miglayout:miglayout-swing")
+implementation("org.ow2.asm:asm")
+implementation("xalan:serializer:xalan")
+implementation("xmlpull:xmlpull")
+implementation("xpp3:xpp3_min")
and so on.

I'm fine with removal of the versions, however, I'm not fine with adding
dependencies that are not actually used.

Vladimir


Re: [jmeter] branch master updated: build.gradle.kts in core, functions, components, protocol: Fix dependencies for pom generation and remove version

2019-11-09 Thread Vladimir Sitnikov
>Fix dependencies for pom generation and remove version

Why are the dependencies added?
They are not used by JMeter.

Vladimir


Re: gw generatePom not generating pom files

2019-11-09 Thread Vladimir Sitnikov
>I thought running from there would generate for all projects

Of course, it would.

$ gw clean
$ find . -name 'pom*.xml' | wc -l
  0
$ gw generatePom -m
...
:generatePom SKIPPED
:src:components:generatePomFileForComponentsPublication SKIPPED
:src:components:generatePom SKIPPED
:src:config:generatePomFileForConfigPublication SKIPPED
:src:config:generatePom SKIPPED
:src:core:generatePomFileForCorePublication SKIPPED
:src:core:generatePom SKIPPED
:src:functions:generatePomFileForFunctionsPublication SKIPPED
:src:functions:generatePom SKIPPED
:src:jorphan:generatePomFileForJorphanPublication SKIPPED
:src:jorphan:generatePom SKIPPED
:src:launcher:generatePomFileForLauncherPublication SKIPPED
:src:launcher:generatePom SKIPPED
...
$ gw generatePom
$ find . -name 'pom*.xml'
./src/launcher/build/publications/launcher/pom-default.xml
./src/core/build/publications/core/pom-default.xml
./src/config/build/publications/config/pom-default.xml
./src/protocol/junit-sample/build/publications/junit-sample/pom-default.xml
./src/protocol/ftp/build/publications/ftp/pom-default.xml
./src/protocol/native/build/publications/native/pom-default.xml
./src/protocol/bolt/build/publications/bolt/pom-default.xml
./src/protocol/junit/build/publications/junit/pom-default.xml
./src/protocol/mail/build/publications/mail/pom-default.xml
./src/protocol/ldap/build/publications/ldap/pom-default.xml
./src/protocol/java/build/publications/java/pom-default.xml
./src/protocol/mongodb/build/publications/mongodb/pom-default.xml
./src/protocol/jdbc/build/publications/jdbc/pom-default.xml
./src/protocol/tcp/build/publications/tcp/pom-default.xml
./src/protocol/http/build/publications/http/pom-default.xml
./src/protocol/jms/build/publications/jms/pom-default.xml
./src/components/build/publications/components/pom-default.xml
./src/functions/build/publications/functions/pom-default.xml
./src/jorphan/build/publications/jorphan/pom-default.xml

Vladimir


Re: Version 5.2 (Broken poms)

2019-11-09 Thread Vladimir Sitnikov
Vladimir>The current error

Just to clarify: I believe
https://github.com/apache/jmeter/commit/ef06709a780bc776ecc3b5d839c424d39bb1aeae
fixes
the poms,
and the current jmeter/master is ok.

Vladimir


Re: gw generatePom not generating pom files

2019-11-09 Thread Vladimir Sitnikov
Philippe>But I see nothing in build/publications

Are you sure?

$ cd src/core
$ gw generatePom
$ grep -B 3 -A 3 jorphan build/publications/core/pom-default.xml


  org.apache.jmeter
  jorphan
  5.2.1-SNAPSHOT



Vladimir


Re: Version 5.2 (Broken poms)

2019-11-09 Thread Vladimir Sitnikov
Mark>Secondly we don’t use any local files, we pull binaries directly down
from maven central using aether
Mark>currently the plugin wouldn’t use them anyway

Here you go:
https://github.com/jmeter-maven-plugin/jmeter-maven-plugin/pull/345

The current error is "An error occurred:
org/xmlpull/v1/XmlPullParserException" (see
https://travis-ci.org/jmeter-maven-plugin/jmeter-maven-plugin/jobs/609714883#L3135
 ),
and I believe it has the same root cause as
https://github.com/jmeter-maven-plugin/jmeter-maven-plugin/issues/187

Vladimir


Re: Git enable force push for master branches

2019-11-09 Thread Vladimir Sitnikov
Up. Any thoughts?

This could have been prevented if force-push was enabled:
https://github.com/apache/jmeter/commit/04aab12c68af8c57258c5ae905bd8b7ab0a2dd9f

Vladimir


Re: [jmeter] branch master updated: ApacheJMeter_config.jar: Restore bin folder and add missing files

2019-11-09 Thread Vladimir Sitnikov
+text("templates.xml")
+text("*.jmx")

Those files were not here.
Are they required?

What is the test case for the jar?

Vladimir


Re: svn commit: r36676 - in /release/jmeter: binaries/ source/

2019-11-09 Thread Vladimir Sitnikov
I've added removeStaleArtifacts which is automatically run after publishing
the release to /release/jmeter/...

The task can be called manually:
$ gw removeStaleArtifacts -PasfDryRun -Pjmeter.version=5.2 # keep 5.2
artifacts, and print the files to be removed
$ gw removeStaleArtifacts -Pasf -Pjmeter.version=5.2 # keep 5.2 artifacts,
and remove the other files

The set of files to keep is configured in /build.gradle.kts
-> staleRemovalFilters { ... }

The missing bit is to drop stale Nexus staging repositories.
It could be implemented as
https://github.com/gradle-nexus/publish-plugin effort
stabilizes.

Vladimir


Re: Version 5.2 (Broken poms)

2019-11-09 Thread Vladimir Sitnikov
I reached out to jmeter-maven-plugin 3 month ago, and they did not seem to
care: https://github.com/jmeter-maven-plugin/jmeter-maven-plugin/issues/339

Vladimir


Re: svn commit: r36676 - in /release/jmeter: binaries/ source/

2019-11-08 Thread Vladimir Sitnikov
>With the new build script, there is a Gradle task to do this ?

It is not there yet.

>Note: I use the (old) ant script to remove the v5.1.1 from the release site

https://dist.apache.org/repos/dist/dev/jmeter/ still contains old files.
Should they be removed after the release as well?

Should the removal happen with moving artifacts from /dev/ to /release/?

Vladimir


Re: Returned post for annou...@apache.org

2019-11-07 Thread Vladimir Sitnikov
Milamber>PS @vladimir can you fix this on the release plugin?

The folder is configured in JMeter sources:
https://github.com/apache/jmeter/blob/7fa6e9233b499c9a0c079c395a855331daccc8d5/build.gradle.kts#L126-L130

Vladimir


Re: Issue with last RC about SHA512 hashes

2019-11-07 Thread Vladimir Sitnikov
>issue: the generated email have twice "*apache-jmeter-5.2.xxx" on each
> line.

It is fixed now (~
https://github.com/vlsi/vlsi-release-plugins/commit/19e2a6e8330d3d10f80e7fed6503443362f69c07#
 )

Vladimir


Re: Returned post for annou...@apache.org

2019-11-07 Thread Vladimir Sitnikov
>source is singular because there is generally only one version of
> source for OSes.

I would suggest to update the download script accordingly because we have
tgz and zip flavours of the sources.
Plus we might happen to have multiple versions in the sources folder.

Vladimir


Re: [ANNOUNCE] Apache JMeter 5.2 released

2019-11-06 Thread Vladimir Sitnikov
Many thanks to everybody involved.

Vladimir


Re: Build failed in Jenkins: JMeter Ubuntu #929

2019-11-05 Thread Vladimir Sitnikov
sebb>I think the test harness is broken in this regard, and ought to be
fixed.

Ok. What do you typically do when an open-source project is broken or when
it is missing a feature?

sebb>It may still occur.

The probability is extremely low, so it does not matter if it can occur or
not.

Vladimir> line numbers are the first thing to rely on
sebb>I have always found it the most useful item of info

I don't say line numbers are not useful. What I say is line numbers should
not be treated as the first thing to look at.

sebb>with editors one can go direct to the right place

Build failure from builds.apache.org does not integrate with IDEs yet.
Many people miss IDEs on their mobile phones/tables, and I test failure
mails should be readable/understandable even without IDE/code editor.


Vladimir


Re: Build failed in Jenkins: JMeter Ubuntu #929

2019-11-04 Thread Vladimir Sitnikov
sebb>So is there a way to fix this so the line number *is* shown?

For instance: avoid extending test methods and use delegation instead of
inheritance.

sebb>Such an error is likely to occur again elsewhere

Why do you think so?
There are no more than 5 such cases (I would say 1-2, but 5 is very
conservative) in JMeter sources,
so it is very unlikely similar cases would occur elsewhere.
It is far easier to just fix the assertion messages (if they ever occur)
rather than discuss "oh, that is likely to occur".

sebb>Unique messages are one way to achieve that if the test harness fails
sebb>to provide that information, as in this case

sebb>If the same message can appear in two places

Yes, but that is missing my point.
If the same message can appear in two places in the same test method then
the test is **broken**.
Remember that line numbers change over time (e.g. when tests are edited),
and it is not the first thing to rely on.

In other words, assert messages should be good enough even without line
number/stacktrace.

Vladimir


<    1   2   3   4   5   6   7   8   9   >