Hey,

#3798 looks promising; I've reopened - it seems like it have fallen between the 
cracks...
testruns have become outdated and it seems like it needs a rebase.

I think that the usage of powermock signals that something is wrong and a 
refactor step should be taken instead of introducing it
iirc it could even interfere with jvm reuse for test executions - and thus 
could cause some confusion.

cheers,
Zoltan


On 7/10/23 18:56, Attila Turoczy wrote:
+1 Kill it! :)
mockito is a more modern approach. I think it is cool that we modernize our
platform, and remove old and unsupported tools and components.


On Mon, Jul 10, 2023 at 5:36 PM Ayush Saxena <ayush...@gmail.com> wrote:

+1, PowerMock as far as I remember has issues with JDK-11+ as well,
one such ref :
https://stackoverflow.com/questions/52966897/powermock-java-11

-Ayush

On Mon, 10 Jul 2023 at 20:18, Zsolt Miskolczi <zsolt.miskol...@gmail.com>
wrote:

Hi,

Hive heavily uses PowerMock <https://powermock.github.io/>. The main
purpose of it is having static mocking.

The sad thing is it seems PowerMock is dead:
- The main branch got it's lot commit in 2022 and and most of the
contributions last year were simple dependency upgrades:
https://github.com/powermock/powermock/commits/release/2.x
- The last release was in 2020
- And their mailing list looks dead as well. That is the last email on
that
list: https://groups.google.com/g/powermock/c/JdYY3naZlbU. It asked if
it
was discontinued and didn't get an answer at all.

So officially, it is not dead but it seems it is.

Back then when PowerMock development started, there were no static
mocking
in mockito. But since then, it is possible using mockito-inline.

I won't lie, it is hard to switch from PowerMock: it enables some coding
patterns that are considered bad patterns and it leads to code that is
harder to test. Last year I played with it and removed it from the
hive-exec module: https://github.com/apache/hive/pull/3798.

The hard part in removing it is that PowerMock and mockito-inline don't
work together. So when we want to remove it, we have to do it in one pull
request for a given module. It cannot be separated into smaller steps.
The good news is as it relates to testing, pre commit tests can validate
the refactor.

What do you think? Should we move away from PowerMock or keep it as it
is?

Thank you,
Zsolt Miskolczi


Attachment: OpenPGP_signature
Description: OpenPGP digital signature

Reply via email to