apex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Weise <...@apache.org>
Subject Re: Backward compatibility issue in 3.6.0 release
Date Mon, 15 May 2017 17:02:08 GMT
I would prefer 1. - treat it as bug and add exception to semver check to
fix the issue (in both master and release branch).

In light of recent discussions, I think it is necessary to up the review
due diligence for changes to the API and those classes in core that are
covered by backward compatibility.

Thanks,
Thomas



On Mon, May 15, 2017 at 9:53 AM, Vlad Rozov <v.rozov@datatorrent.com> wrote:

> Hi All,
>
> There is a possible change in operators behavior caused by changes that
> were introduced in the release 3.6.0 into DefaultInputPort and
> DefaultOutputPort. Please see https://issues.apache.org/jira
> /browse/APEXCORE-722. We need to agree how to proceed.
>
> 1. Break semantic versioning for the Default Input and Output Ports in the
> next release (3.7.0), declare protected variables as private and provide
> protected access method. Another option is to rename protected variables to
> use less common names (for example __count).
> 2. Keep protected variables with the risk that the following common
> operator design pattern will be used accidentally by existing operators and
> newly designed operators:
>
> public Operator extends BaseOperator {
>   private int count;
>   public DefaultInputPort in = new DefaultInputPort() {
>     @Override
>     public void process(Object tuple)
>     {
>        count++;  // updates DefaultInputPort count, not Operator count!
>     }
>   }
> }
>
>
> Thank you,
>
> Vlad
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message