You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by yh...@apache.org on 2025/06/28 21:34:20 UTC

(beam) branch master updated: Drop junit-dep dependency by removing system-rules usage (#35464)

This is an automated email from the ASF dual-hosted git repository.

yhu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new 2ad4eeab657 Drop junit-dep dependency by removing system-rules usage (#35464)
2ad4eeab657 is described below

commit 2ad4eeab6574dcc60391f3d8fe50d072d68b31e3
Author: Steven van Rossum <st...@gmail.com>
AuthorDate: Sat Jun 28 23:34:14 2025 +0200

    Drop junit-dep dependency by removing system-rules usage (#35464)
    
    * Drop junit-dep dependency by removing system-rules usage
    
    * Use explicit CharSet
    
    * Run spotless
    
    * Use encoding name instead of CharSet
    
    * Set line separator as scanner delimiter
    
    * Use hasItem matcher instead of contains matcher
    
    * Minimize scope of stdout redirection
---
 .../container/license_scripts/dep_urls_java.yaml   |  4 ---
 sdks/java/core/build.gradle                        |  2 --
 .../apache/beam/sdk/fn/JvmInitializersTest.java    | 30 +++++++++++++++++-----
 3 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/sdks/java/container/license_scripts/dep_urls_java.yaml b/sdks/java/container/license_scripts/dep_urls_java.yaml
index 2ce07d7f153..89a113718e5 100644
--- a/sdks/java/container/license_scripts/dep_urls_java.yaml
+++ b/sdks/java/container/license_scripts/dep_urls_java.yaml
@@ -61,10 +61,6 @@ jackson-bom:
   '2.15.4':
     license: "https://raw.githubusercontent.com/FasterXML/jackson-bom/master/LICENSE"
     type: "Apache License 2.0"
-junit-dep:
-  '4.11':
-    license: "https://opensource.org/licenses/cpl1.0.txt"
-    type: "Common Public License Version 1.0"
 org.eclipse.jgit:
   '4.4.1.201607150455-r':
     license: "https://www.eclipse.org/org/documents/edl-v10.html"
diff --git a/sdks/java/core/build.gradle b/sdks/java/core/build.gradle
index 6f22e1b771a..a1f2916f195 100644
--- a/sdks/java/core/build.gradle
+++ b/sdks/java/core/build.gradle
@@ -106,7 +106,6 @@ dependencies {
   implementation library.java.snake_yaml
   shadowTest library.java.everit_json_schema
   provided library.java.junit
-  testImplementation "com.github.stefanbirkner:system-rules:1.19.0"
   provided library.java.hamcrest
   provided 'io.airlift:aircompressor:0.18'
   provided 'com.facebook.presto.hadoop:hadoop-apache2:3.2.0-1'
@@ -125,7 +124,6 @@ dependencies {
   shadowTest library.java.log4j2_api
   shadowTest library.java.jamm
   testRuntimeOnly library.java.slf4j_jdk14
-  testImplementation "com.github.stefanbirkner:system-rules:1.19.0"
 }
 
 project.tasks.compileTestJava {
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/fn/JvmInitializersTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/fn/JvmInitializersTest.java
index 7820467987e..25efd2e7e55 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/fn/JvmInitializersTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/fn/JvmInitializersTest.java
@@ -17,20 +17,26 @@
  */
 package org.apache.beam.sdk.fn;
 
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.hasItem;
 import static org.hamcrest.core.StringContains.containsString;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
 import com.google.auto.service.AutoService;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.io.UnsupportedEncodingException;
+import java.util.Scanner;
 import org.apache.beam.sdk.harness.JvmInitializer;
 import org.apache.beam.sdk.options.PipelineOptions;
 import org.apache.beam.sdk.testing.ExpectedLogs;
 import org.apache.beam.sdk.testing.TestPipeline;
-import org.hamcrest.MatcherAssert;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
-import org.junit.contrib.java.lang.system.SystemOutRule;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
 
@@ -39,7 +45,6 @@ import org.junit.runners.JUnit4;
 public final class JvmInitializersTest {
 
   @Rule public ExpectedLogs expectedLogs = ExpectedLogs.none(JvmInitializers.class);
-  @Rule public SystemOutRule systemOutRule = new SystemOutRule().enableLog();
 
   private static Boolean onStartupRan;
   private static Boolean beforeProcessingRan;
@@ -68,12 +73,23 @@ public final class JvmInitializersTest {
   }
 
   @Test
-  public void runOnStartup_runsInitializers() {
-    JvmInitializers.runOnStartup();
+  public void runOnStartup_runsInitializers() throws IOException, UnsupportedEncodingException {
+    ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+    PrintStream out = System.out;
+    try (PrintStream ps = new PrintStream(baos, false, "UTF8")) {
+      System.setOut(ps);
+      JvmInitializers.runOnStartup();
+    } finally {
+      System.setOut(out);
+    }
 
     assertTrue(onStartupRan);
-    MatcherAssert.assertThat(
-        systemOutRule.getLog(), containsString("Running JvmInitializer#onStartup"));
+    assertThat(
+        () ->
+            new Scanner(new ByteArrayInputStream(baos.toByteArray()), "UTF8")
+                .useDelimiter(System.lineSeparator()),
+        hasItem(containsString("Running JvmInitializer#onStartup")));
   }
 
   @Test