Hi,
you have seen what this is about from the subject… before delving into the details, let’s have a look at the results:
[INFO] Ysld GeoServer Plugin … SUCCESS [ 15.820 s]
[INFO] MongoDB Data Store … SUCCESS [ 0.803 s]
[INFO] REST SLD service … SUCCESS [03:59 min]
[INFO] GeoFence security integration … SUCCESS [01:19 min]
[INFO] GeoFence Server … SUCCESS [01:55 min]
[INFO] GeoServer Release Module 2.15-SNAPSHOT … SUCCESS [ 0.820 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 14:04 min (Wall Clock)
[INFO] Finished at: 2018-10-14T16:04:18+02:00
[INFO] ------------------------------------------------------------------------
~/devel/git-gs/src (jdk11_build) $ mvn -version
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T20:49:05+01:00)
Maven home: /home/aaime/apps/apache-maven-3.5.3
Java version: 11, vendor: Oracle Corporation
Java home: /usr/lib/jvm/jdk-11
Default locale: it_IT, platform encoding: UTF-8
OS name: “linux”, version: “4.15.0-34-generic”, arch: “amd64”, family: “unix”
(forget about that vendor indication, it’s actually OpenJDK):
~/devel/git-gs/src (jdk11_build) $ java -version
openjdk version “11” 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
In order for the above to happen two PRs need to be applied, in addition to the ones already presented
for imageio-ext and geotools:
- GeoWebCache: https://github.com/GeoWebCache/geowebcache/pull/695
- GeoServer: https://github.com/geoserver/geoserver/pull/3182
As you can see by the numbers of commits in those two, it has not been as easy as with GeoTools and friends,
but the number of modified files is overall not big, nothing particularly fancy.
Bits worth noticing:
- HashMap iteration order changed once more, a few tests needed to be amended
- XML encoding of numbers and CDATA changed (different precision, different spacing around CDATA), some tests had to be amended
- Changing the size of a thread pool at runtime incurs into stricter checks than before
- GeoServerExtensions integration with SPI broke, I fell down on the GeoTools FactoryRegistry code, not sure if what was done is the best way to handle it, I’m open to suggestions:
https://github.com/geoserver/geoserver/pull/3182/files#diff-8414b5ac2b07c761343e3d61d80cf320R154 - The security LDAP module now builds (before it was trying to access a class that’s truly gone due to a debugging statement in the embedded LDAP server being used), but tests do not run (get skipped) because now the embedded server won’t start… even all I did was to bump it a couple of bugfix versions (bumping just one had the same result). That, and the newer version of the server is still a milestone and the spring ldap integration is declared not to work with it. Think we need someone that understands LDAP to make it actually run tests again.
- Commons-lang3 had to be upgraded to the latest version, as some utilities triggered Java version number parsing and failed. No biggie, but GWC had to be upgraded from commons-lang 2, which makes up most of the file changes in the PR
- Hazelcast has been upgraded to the latest version, which is a beta, but also the first run supposed to be running on JDK11. Still triggers some warnings, checking their issue tracker it seems at least some are being worked on before final release.
Going back to the performance topic the build times are a joke, using JDK8 and a “-T8” build I normally build on 7:30 to 8:00, with JDK11 it takes around 14 minutes!
Are we screwed? We’ll see, in the meantime I did a quick and silly benchmark against topp:states:
Concurrency Level: 16
Time taken for tests: 8.729 seconds
Complete requests: 3600
Failed requests: 0
Total transferred: 251305200 bytes
HTML transferred: 250491600 bytes
Requests per second: 412.44 [#/sec] (mean)
Time per request: 38.794 [ms] (mean)
Time per request: 2.425 [ms] (mean, across all concurrent requests)
Transfer rate: 28116.37 [Kbytes/sec] received
The performance on JDK8 + marlin is, by memory, the same (it’s late and I don’t want to rebuild everything in JDK 8 to confirm.
Also note the GeoServer status page screenshot, you’ll notice that JDK11 is using its own embedded Marlin version (as you probably
know, it has become the default renderer in JDK since version 9).
So, it seems something is up with the build but maybe not on runtime (more checks are needed).
Soo… next steps:
- I have to look into the GeoTools build and make it mergeable
- A review on the various PRs would be much appreciated
- Once the two above are done, I’d suggest to merge and call “step 1” done, so that when the sprint starts we can fork off and concentrate on warnings removal and modularization/re-packaging
Cheers
Andrea
···
GeoServer Professional Services from the experts! Visit http://goo.gl/it488V for more information. == Ing. Andrea Aime @geowolf Technical Lead GeoSolutions S.A.S. Via di Montramito 3/A 55054 Massarosa (LU) phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339 8844549 http://www.geo-solutions.it http://twitter.com/geosolutions_it ------------------------------------------------------- Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail.