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]
