You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by di...@apache.org on 2022/11/24 15:13:01 UTC
[oozie] branch master updated: OOZIE-3675 Upgrade Mockito from 2 to 3.11.2 (jmakai via dionusos)
This is an automated email from the ASF dual-hosted git repository.
dionusos pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/oozie.git
The following commit(s) were added to refs/heads/master by this push:
new d6d5f1abd OOZIE-3675 Upgrade Mockito from 2 to 3.11.2 (jmakai via dionusos)
d6d5f1abd is described below
commit d6d5f1abd540430e54613ef9b5d1b636c2d6d066
Author: Denes Bodo <di...@apache.org>
AuthorDate: Thu Nov 24 12:44:03 2022 +0100
OOZIE-3675 Upgrade Mockito from 2 to 3.11.2 (jmakai via dionusos)
Additional note:
- Setting the surefire plugin's parallel exeucution mode from `classes` to `methods` in the main pom.xml was necessary in order to prevent Mockito listener related intermtitent failures. (by jmakai)
---
.../org/apache/oozie/cli/TestOozieCLIMethods.java | 5 ++-
core/pom.xml | 6 ++++
.../hadoop/TestScriptLanguageActionExecutor.java | 38 +++++++++++++---------
.../java/org/apache/oozie/util/TestDateUtils.java | 4 +++
pom.xml | 13 ++++++--
release-log.txt | 1 +
.../oozie/action/hadoop/TestLauncherMain.java | 3 ++
sharelib/spark/pom.xml | 7 ++++
.../apache/oozie/tools/TestOozieSharelibCLI.java | 3 ++
9 files changed, 61 insertions(+), 19 deletions(-)
diff --git a/client/src/test/java/org/apache/oozie/cli/TestOozieCLIMethods.java b/client/src/test/java/org/apache/oozie/cli/TestOozieCLIMethods.java
index 06db6c314..516db53ec 100644
--- a/client/src/test/java/org/apache/oozie/cli/TestOozieCLIMethods.java
+++ b/client/src/test/java/org/apache/oozie/cli/TestOozieCLIMethods.java
@@ -44,9 +44,12 @@ import org.junit.Test;
import com.google.common.collect.ImmutableList;
import com.google.common.io.ByteStreams;
-import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
+
import static org.junit.Assert.assertTrue;
+@RunWith(MockitoJUnitRunner.class)
public class TestOozieCLIMethods {
static final String jobIdPattern = "Job ID[\\s|:]+";
diff --git a/core/pom.xml b/core/pom.xml
index af60423c0..89ea055d4 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -424,6 +424,12 @@
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-inline</artifactId>
+ <scope>test</scope>
+ </dependency>
+
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-core</artifactId>
diff --git a/core/src/test/java/org/apache/oozie/action/hadoop/TestScriptLanguageActionExecutor.java b/core/src/test/java/org/apache/oozie/action/hadoop/TestScriptLanguageActionExecutor.java
index 1e1271e28..bebba9d83 100644
--- a/core/src/test/java/org/apache/oozie/action/hadoop/TestScriptLanguageActionExecutor.java
+++ b/core/src/test/java/org/apache/oozie/action/hadoop/TestScriptLanguageActionExecutor.java
@@ -23,18 +23,16 @@ import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.oozie.action.ActionExecutor;
-import org.apache.oozie.service.ServiceException;
import org.apache.oozie.service.Services;
import org.jdom2.Element;
-import org.jdom2.Namespace;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
+import org.mockito.MockedStatic;
+import org.mockito.Mockito;
+import org.mockito.junit.MockitoJUnitRunner;
import java.nio.charset.StandardCharsets;
@@ -44,10 +42,8 @@ import static org.mockito.ArgumentMatchers.isNull;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
-import static org.powermock.api.mockito.PowerMockito.when;
-@RunWith(PowerMockRunner.class)
-@PrepareForTest(Services.class)
+@RunWith(MockitoJUnitRunner.class)
public class TestScriptLanguageActionExecutor {
@Mock private ActionExecutor.Context mockContext;
@@ -60,14 +56,28 @@ public class TestScriptLanguageActionExecutor {
@Mock private Configuration mockActionConfig;
@Mock private Services mockServices;
- @Before
- public void setup() throws ServiceException {
- PowerMockito.mockStatic(Services.class);
+ private MockedStatic<Services> SERVICES;
- when(Services.get()).thenReturn(mockServices);
+ @Before
+ public void setup() {
+ SERVICES = Mockito.mockStatic(Services.class);
+ SERVICES.when(Services::get).thenReturn(mockServices);
doReturn(mockConfiguration).when(mockServices).getConf();
}
+ @After
+ public void tearDown() throws Exception {
+ if (SERVICES != null) {
+ try {
+ SERVICES.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ SERVICES = null;
+ }
+ }
+ }
+
@Test
public void multibyteInputsAreAcceptedInScripts() throws Exception {
final String testInput = "林檎";
@@ -90,8 +100,4 @@ public class TestScriptLanguageActionExecutor {
verify(fsDataOutputStream).write(expectedInput);
}
- @After
- public void cleanUp() {
- Services.get().destroy();
- }
}
diff --git a/core/src/test/java/org/apache/oozie/util/TestDateUtils.java b/core/src/test/java/org/apache/oozie/util/TestDateUtils.java
index 1df7b78fd..7fbef5381 100644
--- a/core/src/test/java/org/apache/oozie/util/TestDateUtils.java
+++ b/core/src/test/java/org/apache/oozie/util/TestDateUtils.java
@@ -21,10 +21,14 @@ import org.apache.hadoop.conf.Configuration;
import org.junit.After;
import org.junit.Assert;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
+
import java.text.ParseException;
import java.util.Date;
import java.util.TimeZone;
+@RunWith(MockitoJUnitRunner.class)
public class TestDateUtils {
@After
diff --git a/pom.xml b/pom.xml
index 12d6560e9..0b1625b95 100644
--- a/pom.xml
+++ b/pom.xml
@@ -131,6 +131,7 @@
<spotbugs-maven-plugin.version>3.1.11</spotbugs-maven-plugin.version>
<spotbugs.version>3.1.11</spotbugs.version>
<powermock.version>2.0.2</powermock.version>
+ <mockito3.version>3.11.2</mockito3.version>
</properties>
<modules>
@@ -1452,7 +1453,13 @@
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
- <version>2.28.2</version>
+ <version>${mockito3.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-inline</artifactId>
+ <version>${mockito3.version}</version>
</dependency>
<dependency>
@@ -2089,7 +2096,9 @@
<exclude>**/TestSsh*.java</exclude>
</excludes>
<!-- DO NOT CHANGE THIS VALUES, TESTCASES CANNOT RUN IN PARALLEL -->
- <parallel>classes</parallel>
+ <!-- NOTE: changing parallel execution mode to `classes` can lead to intermittent Mockito listener
+ related failures-->
+ <parallel>methods</parallel>
<threadCount>1</threadCount>
<perCoreThreadCount>true</perCoreThreadCount>
<classpathDependencyExcludes>
diff --git a/release-log.txt b/release-log.txt
index f32679613..1f9c825ba 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
-- Oozie 5.3.0 release (trunk - unreleased)
+OOZIE-3675 Upgrade Mockito from 2 to 3.11.2 (jmakai via dionusos)
OOZIE-3669 Fix purge process for bundles to prevent orphan coordinators (jmakai via dionusos)
OOZIE-3254 [coordinator] LAST_ONLY and NONE execution modes: possible OutOfMemoryError when there are too many coordinator actions to materialize (jmakai via dionusos)
OOZIE-3666 Oozie log streaming bug when log timestamps are the same on multiple Oozie servers (jmakai via dionusos)
diff --git a/sharelib/oozie/src/test/java/org/apache/oozie/action/hadoop/TestLauncherMain.java b/sharelib/oozie/src/test/java/org/apache/oozie/action/hadoop/TestLauncherMain.java
index bfa6a26f1..53195aa51 100644
--- a/sharelib/oozie/src/test/java/org/apache/oozie/action/hadoop/TestLauncherMain.java
+++ b/sharelib/oozie/src/test/java/org/apache/oozie/action/hadoop/TestLauncherMain.java
@@ -41,13 +41,16 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.runner.RunWith;
import org.mockito.Mockito;
+import org.mockito.junit.MockitoJUnitRunner;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+@RunWith(MockitoJUnitRunner.class)
public class TestLauncherMain {
private final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
private PrintStream originalStream;
diff --git a/sharelib/spark/pom.xml b/sharelib/spark/pom.xml
index 279aa8927..3c62951a6 100644
--- a/sharelib/spark/pom.xml
+++ b/sharelib/spark/pom.xml
@@ -434,6 +434,13 @@
</descriptors>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <parallel>classes</parallel>
+ </configuration>
+ </plugin>
</plugins>
</build>
</project>
diff --git a/tools/src/test/java/org/apache/oozie/tools/TestOozieSharelibCLI.java b/tools/src/test/java/org/apache/oozie/tools/TestOozieSharelibCLI.java
index 433cfdb34..8d6269e97 100644
--- a/tools/src/test/java/org/apache/oozie/tools/TestOozieSharelibCLI.java
+++ b/tools/src/test/java/org/apache/oozie/tools/TestOozieSharelibCLI.java
@@ -26,6 +26,8 @@ import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
import java.io.ByteArrayOutputStream;
import java.io.File;
@@ -51,6 +53,7 @@ import static org.mockito.Mockito.verify;
/**
* Test OozieSharelibCLI
*/
+@RunWith(MockitoJUnitRunner.class)
public class TestOozieSharelibCLI {
private final static String TEST_SHAERELIBNAME1 = "sharelibName";