Advanced Code Hot Swapping in JDK 8?

Martin Kersten picture Martin Kersten · Nov 28, 2013 · Viewed 8.8k times · Source

I am looking for better HotSwapping in the JavaVM. Being able to only apply method body changes is okay but quite limiting.

The options available is JRebel and a discontinued project called Dynamic Code Evolution Virtual Machine (DCEVM).

There is a JEP 159 out there that was written by the core developper of DCEVM. A blog post from 2011 mentioned that the developers of DCEVM now work for Oracle to integrate this into the JDK.

Do we have this kind of support for JDK 8 beta already or was it postponed to JDK 9?

I need hot swapping for adding and removing and renaming private methods mostly. This would help alot. Is there a product allowing me to do so (beside JRebel which PR-campaigns got me upset).

The last supported version of DCEVM is for 1.6u24 and it only provides 32-bit linux binaries. Since I use 1.7 and 64bit Linux this is both a show stopper for me.

There is also another project available on github called Fakereplace. Can this be easily used for my purpose or should I not investigate into this?

Answer

eis picture eis · Nov 28, 2013

JEPs coming in JDK 8 and JDK 9 are listed in this page. JEP-159 is not among them. From jep index you can see that JEP-159 is not yet targeted to any JDK release, not even jdk 10.

JEP-159 status is currently "Submitted". The process is described as follows:

A successful JEP passes through the following states:

  • Draft — In circulation by the author for initial review and consensus-building
  • Posted — Entered into the JEP Archive by the author for wider review
  • Submitted — Declared by the author to be ready for evaluation
  • Candidate — Accepted for inclusion in the Roadmap by the OpenJDK Lead
  • Funded — Judged by a Group or Area Lead to be fully funded
  • Completed — Finished and delivered

So it's not yet accepted for any roadmap.