Title: Proxy 2.0 Abstract: Since Java 1.3, the JDK embeds the class java.lang.reflect.Proxy API that is able to generate proxies at runtime. Initially used to support RMI, it is currently used in a wide range of applications like Hibernate (for lazy loading), Spring (AOP) or Weld (CDI injection) and also inside the OpenJDK itself to implement things like annotation objects at runtime. But the design of the proxy API shows its age, - it's usage is non transparent (you can see the proxy internals in the stacktrace) - the implementation is slow (the VM is not able to see through a proxy) - new Java features like default methods are not well integrated. This talk will tell the story of Proxy 2.0 API, a new API, its design and its implementation and in particular how the code written for Java 8 is retrofitted to be compatible with Java 7 using its own dog food. The code is freely available here: https://github.com/forax/proxy2 A/V recording: Ok Speaker Bio: Rémi Forax, Assistant Prof at University Paris-East Marne La Vallée, Expert for JSR 292(invokedynamic), 335(lambda), 376(java module) Open source dev of ASM, OpenJDK, Tatoo, etc. Rémi