[FLINK-36217][tests] Remove powermock usage (#25287)

* [FLINK-36217][tests] Remove powermock usage

* Address feedback
diff --git a/flink-core/src/test/java/org/apache/flink/core/fs/InitOutputPathTest.java b/flink-core/src/test/java/org/apache/flink/core/fs/InitOutputPathTest.java
index 90011fd..a51b37e 100644
--- a/flink-core/src/test/java/org/apache/flink/core/fs/InitOutputPathTest.java
+++ b/flink-core/src/test/java/org/apache/flink/core/fs/InitOutputPathTest.java
@@ -77,17 +77,8 @@
         runTest(false);
     }
 
-    // Line 82~ Line 191 are copied from
+    // Line 82~ Line 147 are copied from
     // https://github.com/powermock/powermock/blob/release/2.x/powermock-reflect/src/main/java/org/powermock/reflect/internal/WhiteboxImpl.java
-    private static void setField(Object object, Object value, Field foundField) {
-        boolean isStatic = (foundField.getModifiers() & Modifier.STATIC) == Modifier.STATIC;
-        if (isStatic) {
-            setStaticFieldUsingUnsafe(foundField, value);
-        } else {
-            setFieldUsingUnsafe(foundField, object, value);
-        }
-    }
-
     private static void setStaticFieldUsingUnsafe(final Field field, final Object newValue) {
         try {
             field.setAccessible(true);
@@ -123,41 +114,6 @@
         }
     }
 
-    private static void setFieldUsingUnsafe(
-            final Field field, final Object object, final Object newValue) {
-        try {
-            field.setAccessible(true);
-            int fieldModifiersMask = field.getModifiers();
-            boolean isFinalModifierPresent =
-                    (fieldModifiersMask & Modifier.FINAL) == Modifier.FINAL;
-            if (isFinalModifierPresent) {
-                AccessController.doPrivileged(
-                        new PrivilegedAction<Object>() {
-                            @Override
-                            public Object run() {
-                                try {
-                                    Unsafe unsafe = getUnsafe();
-                                    long offset = unsafe.objectFieldOffset(field);
-                                    setFieldUsingUnsafe(
-                                            object, field.getType(), offset, newValue, unsafe);
-                                    return null;
-                                } catch (Throwable t) {
-                                    throw new RuntimeException(t);
-                                }
-                            }
-                        });
-            } else {
-                try {
-                    field.set(object, newValue);
-                } catch (IllegalAccessException ex) {
-                    throw new RuntimeException(ex);
-                }
-            }
-        } catch (SecurityException ex) {
-            throw new RuntimeException(ex);
-        }
-    }
-
     private static Unsafe getUnsafe()
             throws IllegalArgumentException, IllegalAccessException, NoSuchFieldException,
                     SecurityException {
diff --git a/flink-runtime/pom.xml b/flink-runtime/pom.xml
index 204b3cc..91a944d 100644
--- a/flink-runtime/pom.xml
+++ b/flink-runtime/pom.xml
@@ -306,23 +306,10 @@
 		</dependency>
 
 		<dependency>
-			<!-- This must appear before powermock on the classpath! -->
 			<groupId>org.mockito</groupId>
 			<artifactId>mockito-inline</artifactId>
 			<scope>test</scope>
 		</dependency>
-
-		<dependency>
-			<groupId>org.powermock</groupId>
-			<artifactId>powermock-module-junit4</artifactId>
-			<scope>test</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>org.powermock</groupId>
-			<artifactId>powermock-api-mockito2</artifactId>
-			<scope>test</scope>
-		</dependency>
 	</dependencies>
 
 	<build>
diff --git a/flink-test-utils-parent/flink-test-utils-junit/src/main/resources/org/powermock/extensions/configuration.properties b/flink-test-utils-parent/flink-test-utils-junit/src/main/resources/org/powermock/extensions/configuration.properties
deleted file mode 100644
index d2835ca..0000000
--- a/flink-test-utils-parent/flink-test-utils-junit/src/main/resources/org/powermock/extensions/configuration.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-################################################################################
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing, software
-#  distributed under the License is distributed on an "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  See the License for the specific language governing permissions and
-# limitations under the License.
-################################################################################
-
-powermock.global-ignore=javax.management.*,com.sun.jndi.*,org.apache.log4j.*,org.apache.logging.log4j.*
diff --git a/pom.xml b/pom.xml
index 476af62..3ca6a6f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -157,7 +157,6 @@
 		<junit5.version>5.10.1</junit5.version>
 		<archunit.version>1.2.0</archunit.version>
 		<mockito.version>3.4.6</mockito.version>
-		<powermock.version>2.0.9</powermock.version>
 		<hamcrest.version>1.3</hamcrest.version>
 		<assertj.version>3.23.1</assertj.version>
 		<py4j.version>0.10.9.7</py4j.version>
@@ -590,14 +589,12 @@
 			</dependency>
 
 			<dependency>
-				<!-- mockito/powermock mismatch -->
 				<groupId>net.bytebuddy</groupId>
 				<artifactId>byte-buddy</artifactId>
 				<version>1.14.4</version>
 			</dependency>
 
 			<dependency>
-				<!-- mockito/powermock mismatch -->
 				<groupId>net.bytebuddy</groupId>
 				<artifactId>byte-buddy-agent</artifactId>
 				<version>1.14.4</version>
@@ -931,27 +928,6 @@
 				<version>${mockito.version}</version>
 				<scope>test</scope>
 			</dependency>
-
-			<dependency>
-				<groupId>org.powermock</groupId>
-				<artifactId>powermock-module-junit4</artifactId>
-				<version>${powermock.version}</version>
-				<scope>test</scope>
-			</dependency>
-
-			<dependency>
-				<groupId>org.powermock</groupId>
-				<artifactId>powermock-api-mockito2</artifactId>
-				<version>${powermock.version}</version>
-				<scope>test</scope>
-				<exclusions>
-					<exclusion>
-						<groupId>org.mockito</groupId>
-						<artifactId>mockito-core</artifactId>
-					</exclusion>
-				</exclusions>
-			</dependency>
-
 		</dependencies>
 	</dependencyManagement>
 
@@ -2265,10 +2241,6 @@
 							<dependency>org.apache.flink:*</dependency>
 							<!-- False positive since we use hamcrest-all -->
 							<dependency>org.hamcrest:hamcrest-core</dependency>
-							<!-- transitive powermock test dependencies; excluded for brevity -->
-							<dependency>org.powermock:powermock-core</dependency>
-							<dependency>org.powermock:powermock-reflect</dependency>
-							<dependency>org.powermock:powermock-api-support</dependency>
 						</ignoredUsedUndeclaredDependencies>
 						<ignoredUnusedDeclaredDependencies combine.children="append">
 							<!-- build dependency, required for shading; does not contain any classes -->
@@ -2292,8 +2264,6 @@
 							<dependency>org.apache.flink:flink-test-utils-junit</dependency>
 							<dependency>junit:junit</dependency>
 							<dependency>org.mockito:mockito-core</dependency>
-							<dependency>org.powermock:powermock-api-mockito2</dependency>
-							<dependency>org.powermock:powermock-module-junit4</dependency>
 							<dependency>org.hamcrest:hamcrest-all</dependency>
 						</ignoredUnusedDeclaredDependencies>
 					</configuration>
diff --git a/tools/maven/suppressions-core.xml b/tools/maven/suppressions-core.xml
index 8fe723c..d87bcba 100644
--- a/tools/maven/suppressions-core.xml
+++ b/tools/maven/suppressions-core.xml
@@ -45,10 +45,6 @@
 	<suppress files="MethodForwardingTestUtil.java|InitOutputPathTest.java|LimitedConnectionsFileSystemDelegationTest.java"
 			  checks="IllegalImport"/>
 
-	<!-- Legacy powermock usages -->
-	<suppress files="InitOutputPathTest.java"
-			  checks="IllegalImport"/>
-
 	<suppress
 		files="(.*)api[/\\]java[/\\]typeutils[/\\]runtime[/\\](.*)"
 		checks="RedundantModifier|JavadocParagraph|JavadocType|JavadocStyle|StaticVariableNameCheck|LocalFinalVariableName|EmptyLineSeparator"/>
diff --git a/tools/maven/suppressions-runtime.xml b/tools/maven/suppressions-runtime.xml
index 0ae0cc3..54ae63f 100644
--- a/tools/maven/suppressions-runtime.xml
+++ b/tools/maven/suppressions-runtime.xml
@@ -39,9 +39,6 @@
 	<suppress files="TumblingProcessingTimeWindowsTest.java|SourceFunctionUtil.java|AbstractStreamOperatorTestHarnessTest.java|SynchronousCheckpointITCase.java|TestSpyWrapperStateBackend.java|InterruptSensitiveRestoreTest.java|TaskCheckpointingBehaviourTest.java|StreamTaskTerminationTest.java|StreamMockEnvironment.java|SlidingProcessingTimeWindowsTest.java|TumblingEventTimeWindowsTest.java|RegularWindowOperatorContractTest.java|WindowOperatorContractTest.java|PurgingTriggerTest.java|GlobalWindowsTest.java|SlidingEventTimeWindowsTest.java|StreamSourceOperatorLatencyMetricsTest.java|StreamElementSerializerTest.java|StateInitializationContextImplTest.java|OperatorSnapshotFuturesTest.java|StateSnapshotContextSynchronousImplTest.java|InternalTimerServiceImplTest.java|StreamTaskStateInitializerImplTest.java|BackendRestorerProcedureTest.java|StreamingRuntimeContextTest.java|OutputFormatSinkFunctionTest.java|BlobCachePutTest.java|CheckpointCoordinatorFailureTest.java|CheckpointCoordinatorMasterHooksTest.java|CheckpointCoordinatorRestoringTest.java|CheckpointCoordinatorTestingUtils.java|CheckpointCoordinatorTest.java|CheckpointMetadataLoadingTest.java|CheckpointSettingsSerializableTest.java|CheckpointStateRestoreTest.java|CheckpointStatsHistoryTest.java|CheckpointStatsSnapshotTest.java|CompletedCheckpointStatsSummaryTest.java|CompletedCheckpointTest.java|FailoverStrategyCheckpointCoordinatorTest.java|MasterHooksTest.java|PendingCheckpointStatsTest.java|PendingCheckpointTest.java|StateObjectCollectionTest.java|TaskStateSnapshotTest.java|FinalizeOnMasterTest.java|HadoopUserUtilsITCase.java|EmbeddedHaServicesTest.java|StandaloneHaServicesTest.java|AsynchronousBufferFileWriterTest.java|AsynchronousFileIOChannelTest.java|AbstractReaderTest.java|CancelPartitionRequestTest.java|ClientTransportErrorHandlingTest.java|CreditBasedPartitionRequestClientHandlerTest.java|PartitionRequestClientFactoryTest.java|ServerTransportErrorHandlingTest.java|NettyShuffleEnvironmentTest.java|InputChannelTest.java|LocalInputChannelTest.java|RemoteInputChannelTest.java|InputChannelTestUtils.java|PipelinedSubpartitionTest.java|BlockingBackChannelTest.java|ZooKeeperJobGraphsStoreITCase.java|ZooKeeperLeaderElectionTest.java|ConnectionUtilsTest.java|DataSinkTaskTest.java|KvStateLocationRegistryTest.java|RetryingRegistrationTest.java|DefaultJobLeaderIdServiceTest.java|FileUploadHandlerITCase.java|AbstractHandlerTest.java|AbstractMetricsHandlerTest.java|JobVertexWatermarksHandlerTest.java|CheckpointStatsCacheTest.java|HadoopModuleTest.java|HadoopDelegationTokenReceiverITCase.java|KerberosLoginProviderITCase.java|CheckpointStateOutputStreamTest.java|FsCheckpointStateOutputStreamTest.java|FsCheckpointStorageAccessTest.java|HeapStateBackendTestBase.java|IncrementalRemoteKeyedStateHandleTest.java|LatencyTrackingStateFactoryTest.java|OperatorStateBackendTest.java|SnapshotResultTest.java|StateBackendLoadingTest.java|StateBackendTestBase.java|StateSnapshotCompressionTest.java|TaskExecutorSubmissionTest.java|TaskManagerServicesBuilder.java|TaskSubmissionTestEnvironment.java|TaskAsyncCallTest.java|TaskManagerLocationTest.java|TaskTest.java|TestTaskBuilder.java|EnvironmentInformationTest.java|LeaderGatewayRetrieverTest.java|ZooKeeperStateHandleStoreTest.java"
 			  checks="IllegalImport"/>
 
-	<!-- Legacy powermock usages -->
-	<suppress files="ConnectionUtilsTest.java"
-			  checks="IllegalImport"/>
 	<suppress
 		files="(.*)test[/\\](.*)runtime[/\\]checkpoint[/\\](.*)"
 		checks="AvoidStarImport|NeedBraces|RedundantModifier|JavadocParagraph|JavadocType|JavadocStyle|MemberNameCheck|LocalFinalVariableName|LocalVariableName|UpperEll|reliefPattern|EmptyStatement|EmptyLineSeparator"/>