I would vote for 1 and making variables private since it anyways breaks
semantic versioning.
I think it would it be a good idea to release a 3.6.1 patch release as
well.


Ajay

On Mon, May 15, 2017 at 10:36 PM, Sanjay Pujare <san...@datatorrent.com>
wrote:

> I vote for renaming to less common names like __count. The renaming breaks
> compatibility from 3.6.0 to 3.7.0 but seems to be the best option.
>
> On Mon, May 15, 2017 at 9:53 AM, Vlad Rozov <v.ro...@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
> >
>

Reply via email to