Tamas, Enrico, Sorry I don’t follow. Why do we have to test the client with JDK 8 in version 3.7.0?
Andor > On 2020. Oct 20., at 22:29, Tamas Penzes <tam...@cloudera.com.INVALID> wrote: > > 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 >>> >>