Sorry for slight offtopic, but I'd like to announce JavaOne session
TS-1326 - "Bytecode Manipulation Techniques for Dynamic Applications for
the Java Virtual Machine" [1].
The talk is presented by Tom Ware from Oracle, Tim Eck and yours truly
(Eugene Kuleshov) from Terracotta and Charles Nutter from JRuby/Sun. We
are planning to show examples of the bytecode transformations from the
Oracle TopLink, Terracotta DSO and JRuby Compiler from the product
developers. All those products choose ASM bytecode framework for its
performance, simplicity and size.
If you have any ideas or suggestions on what you would like to see in
this talk please let me know.
Here is the session abstract:/
/
/The Java virtual machine (JVM) provides a proven platform for
running reliable and high-performance applications. Its
class-loading architecture enables dynamic applications, frameworks,
and even languages other than the Java programming language to run
and coexist in the same JVM.
To make things even more dynamic while keeping an acceptable
performance mark, many of those frameworks are generating Java
bytecode, skipping compilation from Java technology sources or even
instrumenting existing Java platform classes to introduce additional
logic. This approach is used by several Java Persistence API (JPA)
engines and Enterprise JavaBeans (EJB) 3 (JSR 220) containers to
keep track of state changes for the managed components, to provide
lazy data loading, transaction management, and clustering features.
Several dynamic languages for the Java platform, such as JRuby,
Groovy (JSR 241), and BeanShell (JSR 274), are also using bytecode
generation to compile their own sources into Java bytecode and to
provide interoperability with Java libraries.
This session shows that bytecode manipulation is not that difficult
and that it is very cool. It gives attendees a better understanding
of how these dynamic frameworks do their job and how these ideas can
be used for other applications. Using a popular open-source bytecode
manipulation framework, it shows several practical applications of
bytecode generation used in real products. /
regards,
Eugene
[1]
http://www28.cplan.com/cc158/session_details.jsp?isid=286326&ilocation_id=158-1&ilanguage=english