Full-day workshop:

Java 11+ and surroundings

If you’re not familiar with Java 11+ it’s time to catch up! 😉

Why this workshop?

There are dozens of pages/tutorials/talks explaining what are the changes to the Java language after version 8. However, there are also many other benefits beside new cool classes and methods that could help us be more efficient, our code be cleaner and our systems to work faster.


Who is it for?

This workshop is not for absolute beginners to Java. Some experience (ideally commercial) is needed.






What will you learn?

You’re invited to a whole-day workshop during which:

  • we’re going to migrate a simple app from Java 8 to Java 11,
  • we’ll play with modules in a new, clean app (and see what impact they have on clean architecture),
  • we’re going to spin off jshell to check if there’s a ghost,
  • we’ll checkout if var is only type inference marker or maybe much more than that,
  • AppCSD will be employed to improve boot time,
  • and JFR will tell us if profiling on production makes sense now.

This workshop is not strictly about new APIs added in Java 9, 10 and 11. We’re going to employ some of them but this is not the primary goal, more of a by-product. (Which still will be present.)


Who is the trainer?

Piotr Przybył is a notorious engineer at work and after hours, tracing meanders of the art of software engineering.

Software Gardener, mostly working in web-oriented Java gardens. Programming usually in Java (since 1.3) and Scala.

Fan of agility, seen mostly as choosing the right tools and approaches after asking the right questions.

Lead developer, trainer and conference speaker. In his talks Piotr covers not only hardcore Java, but also software architecture, computer security and soft-skills.

Technical requirements:

What’s going to be needed:

  • eager spirit to spend a whole day learning,
  • your own computer (with power adapter),
  • your favourite Java IDE in most recent version,
  • ability to clone code from GitHub,
  • most recent version of Maven,
  • latest version of JMC for your OS, you can get it asj mc-latest-* from https://builds.shipilev.net/jmc/

 Ideally you can come with your own computer in which you’re running GNU/Linux or MacOS and you have https://sdkman.io installed. (SDK MAN could help a lot when working on migration tasks, and we’re going to run some scripts which might be easier in Bash, that’s why.) E. g. you can run Ubuntu in VirtualBox.

If you’re forced to stick to Windows, please make sure you have the latest version of Java 11 installed (Java 13 is even better!), you can get one for free from https://adoptopenjdk.net/.

 In either case, to avoid loosing precious time at workshop, please make sure before that your machine is ready.  To do so please clone: https://github.com/pioorg/javVerCh.git and then run

 ./mvnw clean compile exec:exec

 On Windows please use

./mvnw.cmd clean compile exec:exec

It should work in your terminal and your IDE.

Last but not least: having your own machine is not critical. We can have lots of fun applying pair programming 😉

See you!



Remote Freelance Software Gardener @piotrprz / Symentis