Hi Enrico, Separating ZooKeeper client and server is a huge work, but we might not need it. As you mentioned we have to test ZK client with Java 8, what about separating only the test cases which we need to run with Java8 too? In Curator we have the ZK compatibility tests where we run a limited amount of Curator's jUnit tests with a different ZK version. We might be able to do the same here, tag tests which are testing ZK client and run them separately with Java 8. The only limitation is that these tests must stay JDK8 compatible. But from the tags we will see which ones are those.
What do you think? Regards, Tamaas On Sat, Oct 17, 2020 at 7:45 AM Enrico Olivelli <eolive...@gmail.com> wrote: > Christopher > I appreciate your idea and I also moved lots of my projects to work the way > you are suggesting. > > > We must run tests using real jdk8 to test the Zookeeper client. We must > ensure that Zookeeper works well, especially while dealing with security > stuff. > Currently the client is in the same module of the server and it will take a > good (huge) amount of work to separate them > > > Enrico > > Il Ven 16 Ott 2020, 23:25 Christopher <ctubb...@apache.org> ha scritto: > > > Hi ZK Devs, > > > > With recent advancements in Java (since Java 9), it is now generally > > no longer necessary to require that software be developed on an older > > JDK in order to have confidence that it will run on the older version > > of Java. This is because, as of Java 9, all JDK releases have better > > support for cross-compilation to older Java versions. > > > > What this means is that developers can confidently make the build > > requirements for a project higher than the Java version that will > > actually be supported at runtime. > > > > In fact, ZooKeeper already supports the necessary flags in its Maven > > build configuration to ensure that it uses JDK 8 compliance when > > building on a newer JDK (I added this way back in ZOOKEEPER-3739 / > > https://github.com/apache/zookeeper/pull/1269) > > > > So, I propose that we make JDK 11 the new minimum version to *build* > > ZooKeeper with. This would not change the runtime requirement, which > > would remain at JDK 8. > > > > The only necessary change to make this happen would be to add the > > minimum Java version to the maven-enforcer-plugin (like > > > > > https://github.com/apache/accumulo/blob/438f0efd34ef9d200bc8c7ecdd11d5dedb146519/pom.xml#L1162-L1164 > > ) > > > > This would allow ZooKeeper to to streamline its development process a > > little bit by reducing the amount of CI testing that is done as part > > of the build. In other words, we can drop the CI builds for JDK 8, > > which saves on build resources and time. The return on investment is > > so low for the JDK 8 builds anyway, because of the improved > > cross-compilation in newer JDKs. So, there's not much value in > > building on JDK 8 anyway. > > > > Of course, I am only recommending this for *new* release lines, > > starting with ZooKeeper 3.7.0/master branch, because I would not want > > to change expectations for users who will build their own 3.5 and 3.6 > > versions as they continue to have patch versions released. > > > > What do you think? > > > > Kind Regards, > > Christopher > > >