This is an automated email from the ASF dual-hosted git repository.
pabloem 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 75fcb72 [BEAM-2492] Have PipelineOptions DisplayData filter out
attributes marked with Hidden
new 7c1b9e4c Merge pull request #14970 from [BEAM-2492] Have
PipelineOptions DisplayData filter out attributes marked with
@org.apache.beam.sdk.options.Hidden
75fcb72 is described below
commit 75fcb72857ebd78141fca4d5964f93cf1fd3b188
Author: yzhang559 <[email protected]>
AuthorDate: Tue Jun 8 11:46:12 2021 -0700
[BEAM-2492] Have PipelineOptions DisplayData filter out attributes marked
with Hidden
---
.../apache/beam/sdk/options/ProxyInvocationHandler.java | 8 ++++++++
.../beam/sdk/options/ProxyInvocationHandlerTest.java | 17 +++++++++++++++++
2 files changed, 25 insertions(+)
diff --git
a/sdks/java/core/src/main/java/org/apache/beam/sdk/options/ProxyInvocationHandler.java
b/sdks/java/core/src/main/java/org/apache/beam/sdk/options/ProxyInvocationHandler.java
index 9d7a11e..97f673a 100644
---
a/sdks/java/core/src/main/java/org/apache/beam/sdk/options/ProxyInvocationHandler.java
+++
b/sdks/java/core/src/main/java/org/apache/beam/sdk/options/ProxyInvocationHandler.java
@@ -324,6 +324,10 @@ class ProxyInvocationHandler implements InvocationHandler,
Serializable {
continue;
}
+ if (optionSpec.getGetterMethod().isAnnotationPresent(Hidden.class)) {
+ continue;
+ }
+
builder.add(
DisplayData.item(option.getKey(), resolved.getType(),
resolved.getValue())
.withNamespace(optionSpec.getDefiningInterface()));
@@ -350,6 +354,10 @@ class ProxyInvocationHandler implements InvocationHandler,
Serializable {
continue;
}
+ if (spec.getGetterMethod().isAnnotationPresent(Hidden.class)) {
+ continue;
+ }
+
Object value = getValueFromJson(jsonOption.getKey(),
spec.getGetterMethod());
DisplayDataValue resolved = DisplayDataValue.resolve(value);
builder.add(
diff --git
a/sdks/java/core/src/test/java/org/apache/beam/sdk/options/ProxyInvocationHandlerTest.java
b/sdks/java/core/src/test/java/org/apache/beam/sdk/options/ProxyInvocationHandlerTest.java
index bb07587..b590b00 100644
---
a/sdks/java/core/src/test/java/org/apache/beam/sdk/options/ProxyInvocationHandlerTest.java
+++
b/sdks/java/core/src/test/java/org/apache/beam/sdk/options/ProxyInvocationHandlerTest.java
@@ -995,6 +995,23 @@ public class ProxyInvocationHandlerTest {
}
@Test
+ public void testDisplayDataExcludesHiddenValues() {
+ HasHidden options = PipelineOptionsFactory.as(HasHidden.class);
+ options.setFoo("bar");
+
+ DisplayData data = DisplayData.from(options);
+ assertThat(data, not(hasDisplayItem("foo")));
+ }
+
+ /** Test interface. */
+ public interface HasHidden extends PipelineOptions {
+ @Hidden
+ String getFoo();
+
+ void setFoo(String value);
+ }
+
+ @Test
public void testDisplayDataIncludesExplicitlySetDefaults() {
HasDefaults options = PipelineOptionsFactory.as(HasDefaults.class);
String defaultValue = options.getFoo();