Improve Pruning performed by the DirectRunnerApiSurfaceTest

Prune the parts of the Core SDK that must be exposed as part of the API
surface. The remainder should not be exposed accidentally.


Project: http://git-wip-us.apache.org/repos/asf/beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/beam/commit/9d86bcd0
Tree: http://git-wip-us.apache.org/repos/asf/beam/tree/9d86bcd0
Diff: http://git-wip-us.apache.org/repos/asf/beam/diff/9d86bcd0

Branch: refs/heads/jstorm-runner
Commit: 9d86bcd0e199b34220feaa583d933c5e7b3215a8
Parents: 529f251
Author: Thomas Groh <[email protected]>
Authored: Tue May 9 16:09:25 2017 -0700
Committer: Thomas Groh <[email protected]>
Committed: Tue May 16 10:24:41 2017 -0700

----------------------------------------------------------------------
 .../runners/direct/DirectRunnerApiSurfaceTest.java | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/beam/blob/9d86bcd0/runners/direct-java/src/test/java/org/apache/beam/runners/direct/DirectRunnerApiSurfaceTest.java
----------------------------------------------------------------------
diff --git 
a/runners/direct-java/src/test/java/org/apache/beam/runners/direct/DirectRunnerApiSurfaceTest.java
 
b/runners/direct-java/src/test/java/org/apache/beam/runners/direct/DirectRunnerApiSurfaceTest.java
index 9928cb0..631349f 100644
--- 
a/runners/direct-java/src/test/java/org/apache/beam/runners/direct/DirectRunnerApiSurfaceTest.java
+++ 
b/runners/direct-java/src/test/java/org/apache/beam/runners/direct/DirectRunnerApiSurfaceTest.java
@@ -23,7 +23,12 @@ import static org.junit.Assert.assertThat;
 
 import com.google.common.collect.ImmutableSet;
 import java.util.Set;
-import javax.annotation.Nullable;
+import org.apache.beam.sdk.Pipeline;
+import org.apache.beam.sdk.PipelineRunner;
+import org.apache.beam.sdk.metrics.MetricResults;
+import org.apache.beam.sdk.options.PipelineOptions;
+import org.apache.beam.sdk.options.PipelineOptionsRegistrar;
+import org.apache.beam.sdk.transforms.display.DisplayData;
 import org.apache.beam.sdk.util.ApiSurface;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -43,9 +48,17 @@ public class DirectRunnerApiSurfaceTest {
     final ClassLoader thisClassLoader = getClass().getClassLoader();
     ApiSurface apiSurface =
         ApiSurface.ofPackage(thisPackage, thisClassLoader)
+            // Do not include dependencies that are required based on the 
known exposures. This
+            // could alternatively prune everything exposed by the public 
parts of the Core SDK
+            .pruningClass(Pipeline.class)
+            .pruningClass(PipelineRunner.class)
+            .pruningClass(PipelineOptions.class)
+            .pruningClass(PipelineOptionsRegistrar.class)
+            .pruningClass(PipelineOptions.DirectRunner.class)
+            .pruningClass(DisplayData.Builder.class)
+            .pruningClass(MetricResults.class)
             .pruningPattern("org[.]apache[.]beam[.].*Test.*")
             .pruningPattern("org[.]apache[.]beam[.].*IT")
-            .pruningClass(Nullable.class)
             .pruningPattern("java[.]io.*")
             .pruningPattern("java[.]lang.*")
             .pruningPattern("java[.]util.*");

Reply via email to