Speaker Details

Rafael Winterhalter

Scienta AS

Rafael works as a software consultant in Oslo, Norway. He is a proponent of static typing and a JVM enthusiast with particular interest in code instrumentation, concurrency and functional programming. Rafael blogs about software development, regularly presents at conferences and was pronounced a JavaOne Rock Star. When coding outside of his work place, he contributes to a wide range of open source projects and often works on Byte Buddy, a library for simple runtime code generation for the Java virtual machine. For his work, Rafael received a Duke's Choice award, an Oracle groundbreaker award and was elected a Java Champion.

The definitive guide to Java agents

Java agents and their instrumentation API offer developers the most powerful toolset to interact with a Java application. Using this API, it becomes possible to alter the code of running applications, for example to add monitoring or to inject security checks as it is done by many enterprise products for the Java ecosystem.

In this session, developers will learn how to program Java agents of their own that make use of the instrumentation API. Doing so, developers learn how the majority of tooling for the JVM is implemented and will learn about Byte Buddy, a high level code generation library that does not require any knowledge of Java byte code that is normally required for writing agents. In the process, developers will see how Java classes can be used as templates for implementing highly performant code changes that avoid the boilerplate of alternative solutions such as AspectJ or Javassist while still performing better than agents implemented in low-level libraries such as ASM.

JVM
Javaagent
Bytecode

Getting code generators ready for Java 17

With Java 17 the still popular code generation library cglib no longer functions due to its unawareness of the module system. To ease the migration to an alternative, Byte Buddy, this code cafe seeks to execute such a migration and to document the process for others that want to do the same for their library or a library that they use.

Module System
Code Generators
Java 17
Libraries