[ 
https://issues.apache.org/jira/browse/BEAM-2779?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kai Jiang updated BEAM-2779:
----------------------------
    Description: 
PipelineOptions currently serializes information about all getter/setter pairs 
on interfaces which don't extend PipelineOptions.

For example:

{code:java}
interface Foo extends PipelineOptions, Bar {
  String getFoo();
  void setFoo(String value);
}

interface Bar {
  String getBar();
  void setBar(String value);
}
{code}

The serialization of the above (when both *foo* and *bar* are set) will produce 
JSON where we only include display data for *foo* but data for both *foo* and 
*bar*. During validation of an interface in *PipelineOptionsFactory*, we should 
throw an error if one of the users interfaces doesn't extend *PipelineOptions* 
(note that we should ignore the HasDisplayData interface).

  was:
PipelineOptions currently serializes information about all getter/setter pairs 
on interfaces which don't extend PipelineOptions.

For example:

{code:java}
interface Foo extends PipelineOptions, Bar {
  String getFoo();
  void setFoo(String value);
}

interface Bar {
  String getBar();
  void setBar();
}
{code}

The serialization of the above (when both *foo* and *bar* are set) will produce 
JSON where we only include display data for *foo* but data for both *foo* and 
*bar*. During validation of an interface in *PipelineOptionsFactory*, we should 
throw an error if one of the users interfaces doesn't extend *PipelineOptions* 
(note that we should ignore the HasDisplayData interface).


> PipelineOptionsFactory should prevent non PipelineOptions interfaces from 
> being constructed.
> --------------------------------------------------------------------------------------------
>
>                 Key: BEAM-2779
>                 URL: https://issues.apache.org/jira/browse/BEAM-2779
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-java-core
>    Affects Versions: 2.0.0
>            Reporter: Luke Cwik
>            Priority: Minor
>              Labels: starter
>
> PipelineOptions currently serializes information about all getter/setter 
> pairs on interfaces which don't extend PipelineOptions.
> For example:
> {code:java}
> interface Foo extends PipelineOptions, Bar {
>   String getFoo();
>   void setFoo(String value);
> }
> interface Bar {
>   String getBar();
>   void setBar(String value);
> }
> {code}
> The serialization of the above (when both *foo* and *bar* are set) will 
> produce JSON where we only include display data for *foo* but data for both 
> *foo* and *bar*. During validation of an interface in 
> *PipelineOptionsFactory*, we should throw an error if one of the users 
> interfaces doesn't extend *PipelineOptions* (note that we should ignore the 
> HasDisplayData interface).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to