license dcevm alternative java jrebel hotswap

java - dcevm - Reubicación de alternativas a JRebel



jrebel free (8)

DCEVM admite redefiniciones de clase mejoradas y está disponible para JDK7 y JDK8 actuales.

https://github.com/dcevm/dcevm/releases

HotswapAgent es una alternativa gratuita de JRebel y es compatible con DCEVM en varios Frameworks.

http://hotswapagent.org/

JRebel permite volver a implementar el código recién compilado sin reiniciar la aplicación. Me pregunto si hay alguna alternativa (¿gratis?). La página de preguntas FAQ responde esta pregunta, pero estoy seguro de que está sesgada hacia JRebel. Esta pregunta fue hecha hace un año en este sitio, pero la estoy volviendo a subir para ver si alguien tiene alguna información nueva.

En una nota lateral, realmente me gusta JRebel, pero si hay una alternativa gratuita, estoy dispuesto a intentarlo.

Una nota adicional, estoy trabajando en un proyecto de código abierto, y ofrecen licencias gratis de un año a personas que pueden demostrar que están en un proyecto de código abierto. Lo cual funciona muy bien para mí (www.kuali.org), pero no estaré en ese proyecto para siempre.


Eche un vistazo a DCEVM , es una modificación de la máquina virtual de HotSpot que permite redefiniciones de clase ilimitadas en tiempo de ejecución. Puede agregar / eliminar campos y métodos y cambiar los súper tipos de una clase en tiempo de ejecución. Es probable que las características de DCEVM se integren en una actualización futura de Java como parte del JEP 159 .

Los binarios disponibles en el sitio están limitados a Java 6u25 y a versiones anteriores de Java 7. El proyecto se ha bifurcado en Github y admite versiones recientes de Java 7 y 8. El mantenedor proporciona binarios para máquinas virtuales de 32/64 bits en Windows / Linux . Comenzando con Debian 7 (Wheezy) y Ubuntu 15.04 DCEVM se puede instalar con los openjdk-7-jre-dcevm y openjdk-8-jre-dcevm , y se invoca con java -dcevm .


Es posible que desee echar un vistazo a esto:

Soporte de HotSwap: la arquitectura orientada a objetos de Java HotSpot VM permite funciones avanzadas como la redefinición de la clase sobre la marcha o "HotSwap". Esta característica proporciona la capacidad de sustituir código modificado en una aplicación en ejecución a través de las API del depurador. HotSwap agrega funcionalidad a la arquitectura del depurador de la plataforma Java, lo que permite que una clase se actualice durante la ejecución mientras se encuentra bajo el control de un depurador . También permite que las operaciones de creación de perfiles se realicen mediante hotswapping en versiones de métodos en los que se ha insertado código de creación de perfiles.

Por el momento, esto solo permite la redistribución del nuevo cuerpo del método compilado sin reiniciar la aplicación. Todo lo que tienes que hacer es ejecutarlo con un depurador. Lo intenté en Eclipse y funciona espléndidamente.

Además, como mencionó Emmanuel Bourg en su respuesta ( JEP 159 ), existe la esperanza de tener soporte para la adición de supertipos y la adición y eliminación de métodos y campos.

Referencia: Java Whitepaper 135217: Fiabilidad, disponibilidad y facilidad de servicio



He estado trabajando en un proyecto de código abierto que le permite reemplazar las clases en caliente más allá de lo que permite el intercambio en caliente: https://github.com/fakereplace/fakereplace

Puede o no funcionar para usted, pero cualquier comentario es apreciado


JRebel es gratis. No lo compre Seleccione la opción "gratis" (botón de opción) en la página "comprar". Luego selecciona "Social". Después de registrarse, obtendrá una clave de licencia de JRebel completamente funcional. A continuación, puede descargar JRebel o usar la clave en su versión integrada de IDEs. El truco, (sí, hay un truco), tienes que permitirles publicar en tu nombre (publicitar) una vez al mes en tu línea de tiempo FB o cuenta de Twitter. Les di mi cuenta de Twitter, no es gran cosa, nunca la uso y nadie que conozca realmente la usa. Así que ahorre $ 260.



Hotswap Agent es una extensión de DCEVM que admite muchos frameworks Java (recarga la definición de Spring Bean, Hibernate entity mapping, logger level setup, ...).

También hay mucha documentación sobre cómo configurar DCEVM y binarios compilados para Java 1.7.