[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Supporting multiple JDKs

What do we mean "support multiple JDKs" ?
Are we talking Run-time or Compile-time? 

> If we support multiple JDKs, at a minimum we should compile code against those JDKs. 

Why? I really don't get that logic.

There's a cost-optimisation here in reducing what we have to support.

If we support compiling with multiple JDKs and running with multiple JDKs, then we've a matrix of things to test. And it's kinda odd i think, when we don't need to compile against multiple JDKs and don't distribute releases built on different JDKs.

The suggestion to use the AnimalSniffer ant task was a way to simply this.

That is, so we can 
 - only build with one JDK (the same we build releases with),
 - run unit tests only against that JDK,
 - run dtests against multiple JDKs.

Ensuring at compile-time that earlier JDKs are supported at run-time then is done using the AnimalSniffer ant task. It doesn't just simply the testing matrix, but provides a quick feedback loop to the developer when they accidentally code against a java api that's not available in the older JDK.

There's also two contexts here: Cassandra-2.2 (jdks 1.7 and 1.8) and Cassandra-4.0 (jdks 1.8 and 11).
I don't know if it's possible, but it would be awesome once jdk11 is released that it's the only jdk we use to compile Cassandra-4.0+ with.


To unsubscribe, e-mail: dev-unsubscribe@xxxxxxxxxxxxxxxxxxxx
For additional commands, e-mail: dev-help@xxxxxxxxxxxxxxxxxxxx