The JavaLand 2017 conference took place for the 4th time in the famous Phantasialand holiday park in Brühl, near Cologne. The program consisted of talks on the first two days and in-depth workshops at the last day.
Here are some random facts to better imagine the dimension of the largest community conference for Java in Europe:
- 1600 visitors, 14 different locations in the holiday park
- 11 parallel talk tracks, 8 session slots each day
- 8 in-depth workshops with a duration of over 8 hours each
Talk: Reactive Programming
The talk “A Reactive Take on Pokémon GO” by Riccardo Lippolis and Bas Knopper was all about Spring Reactive. After a quick introduction, he showed us how to build a reactive program for smartphones. He extended the observer pattern and added push-based streams, which can be used when it is unknown whether data is available. At its core, the Spring Reactor, a fully non-blocking foundation with efficient demand management, is used. Another important aspect in this context plays Flux, which is similar to the Java 8 Stream API. A new paradigm in Spring Land will be released in June and is called Spring Web Flux. See this video by Josh Long for more details.
Talk: Migrating to Java 9
In this talk by Sander Mak, who is currently writing a book with Paul Bakker about Java 9 Modularity, he explained essential steps to prepare for the next major Java release.
Use jdeps to get information about missing platform modules.
This tool has some interesting option to inspect JDK internals. However, some of its parameters like
—permit-illegal-access should not be used that often.
Better introduce according changes to your own source code, instead of using these flags.
If you want to migrate in order to use modules, you can put a plain on the module path (automatic modules).
The name is derived from the jar name and exports everything needed as well as reads other downstream modules.
It can access the class path.
You should create a module, which requires
Dependencies have to be modules themselves for easier handling (transitive dependencies).
At runtime services (components) are accessible via reflection.
Here are some more best practices to consider as well:
- Don’t open a module to everyone.
- Export only certain API packages including services!
- Revisit open modules, when you are done.
- Create several modules that are logically separated, e.g.
At the workshop day we visited the “Java Web Security” session by Dominik Shadow (Website) and the Hibernate 4 session by Thorben Jansen, who just released a new Hibernate Tips book about it and runs a very popular web portal about Java and Hibernate. Both sessions were an absolute blast and highlights of the conference itself, as both trainers have many years of coding and lecturing experience.
People, Fun and Food
Apart from the amazing talks and workshops, the conference is also about meeting great Java software engineers from other countries, including real Java Champions and JavaOne Rockstars, and meeting Java User Groups from Germany (see JUG_DE and iJUG) as well as from all around the world. The team from NightHacking was even live streamed from the exhibition room. In the exhibition room, famous organizations, such as the Eclipse Foundation or JetBrains with their core developers of the well-known IDEA programming environment for all JVM languages, offered their support. It was also great to meet the founder and organizer of the biggest Java User Group on our planet, the Virtual Java User Group by Simon Maple and Oleg Shelajev from ZeroTurnaround aka the really helpful JRebel tool company.
Everything was awesome – from start to finish. I highly recommend you to join next year, too. And don’t forget about all the free roller coaster rides without standing in line, the great late night music concert with a terrific live band with Amelia Eiras and the free food at every restaurant at the marvelous and epic Phantasialand near Cologne, Germany. More images can be found on the twitter channel and the official website as well as videos, video streams and another article about the JavaLand 2017. See you in 2018!