Hi all,
ovirt-engine project reached a nice milestone, compiling and running on
Java-11 📣
The move itself needed care to see nothing breaks and with the help of OST
it remaind
like unbroken, but the move was mostly painless and didn't require changes
to
real business logic code. It was mainly to deal with 2 things, working with
modules and
lack of support from GWT.
Modular JDK (project jigsaw) landed in java-9 is more relevant to the
delivery of the sofware
rather to the development of it. Specifically now you can ship your
software only with
a subset of the jdk, or produce your jar as a module so it can expose or
hide internal
with real enforcment(even no reflection).
The relevant part to the change here is that java doesn't provide EE code
in the jdk,
specifically java.xml, java.annotation, javax.activation [1]
GWT and specifically the gwt compiler doesn't recognize java syntax beyond
8, and
efforts of the community to support don't look promising. Luckily since it
is strictly
compile-time only concern the invocation of the gwt compiler, which is
invoked by
maven, is instructed to use java-8 javac. This means the frontend artifacts
are
remain uneffected by this change.
Morning comes, I want to rebase and compile the project!
This should not be huge change, and is document here [2]:
- install java-11-openjdk-devel
- make java-11 binaries available on your path *before java-8 *(use your
favorite method
I use alternatives)
- install maven >= 3.5.0
Please report any problem here and also if the README [2] is not helping
enough
please help improve it!
P.S - Obviously it is strongly encouraged to get familiar with what java 9,
10, and 11
brought in and start make use of it. If you think you have code you want to
contribute
to master, but is going to be backported to 4.3 bare in mind the difference
in java version.
Thanks,
Roy
[1] covered in the git log
https://gerrit.ovirt.org/#/c/98623/
[2]
https://github.com/oVirt/ovirt-engine/blob/master/README.adoc#note-on-jav...