[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"/>