+1 (for keep server, client and common together).

We can do client / server split separately. Interestingly, there was an
outstanding JIRA about the split, which we could use after maven build is
live:  https://issues.apache.org/jira/browse/ZOOKEEPER-233

On Tue, Oct 16, 2018 at 3:30 AM Andor Molnar <an...@apache.org> wrote:

> Thanks Norbert for taking care of this.
> No surprise here in a 10+ year old project.
>
> -1 (binding) for the separation
>
> Let’s keep server + client + common together for now. We can revisit this
> later, but the pro is that we keep the release artifact structure and not
> introducing breaking changes.
>
> Regards,
> Andor
>
>
>
> > On 2018. Oct 16., at 9:15, Enrico Olivelli <eolive...@gmail.com> wrote:
> >
> > Yes,
> > I think it is NOT a good idea to go ahead with this separation.
> >
> > so -1 (non binding) from my side for now
> >
> > And your  patch is very good at demonstrating this.
> > We can't break compatibility in clients.
> >
> > We can move to Maven first and then re-think about separating client and
> server
> >
> > Enrico
> >
> > Il giorno lun 15 ott 2018 alle ore 23:55 Norbert Kalmar
> > <nkal...@cloudera.com.invalid> ha scritto:
> >>
> >> Sorry, I linked the document instead of the PR. I wanted to link the
> >> document at the beginning of the letter after "It was said here"
> >>
> >> The PR:
> >> https://github.com/apache/zookeeper/pull/670
> >>
> >> Norbert
> >>
> >> On Mon, Oct 15, 2018 at 11:49 PM Norbert Kalmar <nkal...@cloudera.com>
> >> wrote:
> >>
> >>> Hi community!
> >>>
> >>> As outlined in the start document, it was planned to separate the java
> >>> files to server and client, with common files in a separate common
> module.
> >>> It was said here:
> >>>
> >>> "Fifth iteration - move src/java/main to zk-server, which will be
> further
> >>> separated in Phase 2."
> >>>
> >>> But in order to save rebase for the contributors, I merged this into
> one
> >>> step. (I had a letter about it)
> >>> So I already created zookeeper-server, zookeeper-client and
> >>> zookeeper-common.
> >>>
> >>> But after doing the separation, I have to say... this just hardly makes
> >>> any sense.
> >>> Without breaking backward compatibility by making changes in the
> package
> >>> structure, it just makes the code more unreadable than before. Multiple
> >>> packages has to be present in all 3 modules (as it was never an
> intention
> >>> to separate it, so many classes are just not in their logical package,
> and
> >>> even inner classes used when top level would be required for the
> >>> separation). Client and server code can not be divided to only depend
> on
> >>> common. Either server depends on client - which makes more sense than
> the
> >>> other option - or client depend on server.
> >>> (Or make common so fat, only literally a few class remains in server
> and
> >>> client - which again, makes no sense).
> >>>
> >>> I created a pull request to illustrate what needs to be done, and this
> is
> >>> not even half complete:
> >>>
> >>>
> https://docs.google.com/document/d/1WXqhaPlCwchcWc8RCEzbCmVa4WbBDlfR3GQngikGjqc/edit?usp=sharing
> >>>
> >>> Some more detail in the description.
> >>>
> >>> My suggestion:
> >>> forget about zookeeper-client-java and zookeeper-common, and just leave
> >>> zookeeper-server.
> >>>
> >>> It just doesn't make any sense looking at the result, only makes the
> >>> project much more complicated. The java code is too much tangled
> together.
> >>>
> >>> What would this mean if I just create zookeeper-common? All the files
> had
> >>> to be renamed anyway, so some now would have 2 renames (fortunately
> most of
> >>> the files are in zookeeper-server anyway), and possible another rebase
> for
> >>> some PR's.
> >>>
> >>> Any input is appreciated.
> >>>
> >>> Regards,
> >>> Norbert
> >>>
> >>>
> >>>
> >>>
>
>

Reply via email to