nielsbasjes commented on PR #2699:
URL: https://github.com/apache/avro/pull/2699#issuecomment-1913360625

   Building the software using different JDK versions may yield different code 
than what is actually released; So the code is built only once under a specific 
JDK version and that is tested against compatibility with all other JDKs.
   
   Summary of what I have changed:
   - The build requires Maven 3.9.6 and JDK 8, 11, 17 and 21 (yes, all of them) 
installed with the correct toolchains config to be present.
   - The build (Maven 3.9.6) must run under Java 21 so the latest plugins can 
be used.
   - Depending on the module the maximum JDK is selected to build the software 
with a release target of Java 8.
   - Using the invoker plugin all tests of the main avro module are rerun in 
all mentioned JDKs (yes, all tests).
   - The interoperability tests were restructured into a separate module which 
generates van validates the files.
   - An extra profile `skipQuality` which disables all testing and code quality 
verification.
   
   Rough edges:
   - The code relating to the Unsafe had to be removed because building it 
under Java 9+ meant the need for specific compiler flags that disallowed 
targeting Java 8.
   - Some tests required Mockito which now need Java 11+.
   - Some tests rely on tools.jar which no longer exists in java 9+
   - Several tests relating to reflection fail on newer Java versions because 
it tried to access internal fields in different modules.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to