Skip to content

Commit

Permalink
[FLINK-36217][tests] Remove powermock usage (apache#25287)
Browse files Browse the repository at this point in the history
* [FLINK-36217][tests] Remove powermock usage

* Address feedback
  • Loading branch information
snuyanzin authored Sep 9, 2024
1 parent 277706d commit be25a14
Show file tree
Hide file tree
Showing 6 changed files with 1 addition and 114 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -77,17 +77,8 @@ void testProperSynchronized() throws Exception {
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);
Expand Down Expand Up @@ -123,41 +114,6 @@ public Object run() {
}
}

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 {
Expand Down
13 changes: 0 additions & 13 deletions flink-runtime/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -306,23 +306,10 @@ under the License.
</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>
Expand Down

This file was deleted.

30 changes: 0 additions & 30 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,6 @@ under the License.
<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>
Expand Down Expand Up @@ -590,14 +589,12 @@ under the License.
</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>
Expand Down Expand Up @@ -931,27 +928,6 @@ under the License.
<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>

Expand Down Expand Up @@ -2265,10 +2241,6 @@ under the License.
<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 -->
Expand All @@ -2292,8 +2264,6 @@ under the License.
<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>
Expand Down
4 changes: 0 additions & 4 deletions tools/maven/suppressions-core.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,6 @@ under the License.
<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"/>
Expand Down
3 changes: 0 additions & 3 deletions tools/maven/suppressions-runtime.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,6 @@ under the License.
<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"/>
Expand Down

0 comments on commit be25a14

Please sign in to comment.