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 > > >