JRebel permet de redéployer le code nouvellement compilé sans redémarrer l'application. Je me demande s'il existe une alternative (gratuite?). La page FAQ répond à cette question, mais je suis sûr qu'elle est biaisée en faveur de JRebel. Cette question a été posée il y a un an sur ce site, mais je la ramène pour voir si quelqu'un a de nouvelles informations.
En passant, j'aime beaucoup JRebel, mais s'il y a une alternative gratuite, je suis prêt à l'essayer.
Une note supplémentaire, je travaille sur un projet open source, et ils offrent des licences gratuites d'un an aux personnes qui peuvent prouver qu'elles sont sur un projet open source. Ce qui fonctionne très bien pour moi (www.kuali.org), mais je ne serai pas sur ce projet pour toujours.
Réponses:
Jetez un œil à DCEVM , c'est une modification de la VM HotSpot qui permet des redéfinitions de classe illimitées au moment de l'exécution. Vous pouvez ajouter / supprimer des champs et des méthodes et modifier les super types d'une classe au moment de l'exécution. Les fonctionnalités de DCEVM pourraient être intégrées dans une future mise à jour de Java dans le cadre de JEP 159 .
Les binaires disponibles sur le site d'origine sont limités à Java 6u25 et aux premières versions de Java 7. Le projet a été forké sur Github et prend en charge les versions récentes de Java 7 et 8. Le mainteneur fournit des binaires pour les VM 32/64 bits sous Windows / Linux. À partir de Java 11, le projet a été déplacé vers un nouveau référentiel GitHub et fournit désormais également des binaires pour OS X.
DCEVM est fourni pour Debian et Ubuntu, il est commodément intégré à OpenJDK et peut être appelé avec
java -dcevm
. Le nom du package dépend de la version du JDK par défaut:la source
Hotswap Agent est une extension de DCEVM qui prend en charge de nombreux frameworks Java (recharger la définition de Spring bean, mappage d'entité Hibernate, configuration du niveau de journalisation, ...).
Il existe également beaucoup de documentation sur la configuration de DCEVM et des binaires compilés pour Java 1.7.
la source
DCEVM prend en charge les redéfinitions de classe améliorées et est disponible pour les JDK7 et JDK8 actuels.
https://github.com/dcevm/dcevm/releases
HotswapAgent est une alternative gratuite à JRebel et prend en charge DCEVM dans divers Frameworks.
http://hotswapagent.org/
la source
Par les gars de Spring, utilisé pour le rechargement de Grails mais fonctionne également avec Java:
https://github.com/SpringSource/spring-loaded
la source
J'ai écrit un article sur DCEVM : Spring-mvc + Velocity + DCEVM
Je pense que ça vaut le coup, puisque mon environnement fonctionne sans aucun problème.
la source
J'ai travaillé sur un projet open source qui vous permet de remplacer à chaud des classes au-delà de ce que permet l'échange à chaud: https://github.com/fakereplace/fakereplace
Cela peut ou non fonctionner pour vous, mais tout commentaire est apprécié
la source
Vous voudrez peut-être jeter un coup d'œil à ceci:
Pour le moment, cela permet uniquement de redéployer le corps de méthode nouvellement compilé sans redémarrer l'application. Tout ce que vous avez à faire est de l'exécuter avec un débogueur. Je l'ai essayé dans Eclipse et cela fonctionne à merveille.
Aussi, comme Emmanuel Bourg l'a mentionné dans sa réponse ( JEP 159 ), il y a de l'espoir d'avoir un support pour l'ajout de supertypes et l'ajout et la suppression de méthodes et de champs.
Référence: Livre blanc Java 135217: Fiabilité, disponibilité et facilité de maintenance
la source
JRebel est gratuit. Ne l'achetez pas. Sélectionnez l'option «gratuit» (bouton radio) sur la page «acheter». Sélectionnez ensuite "Social". Après votre inscription, vous obtiendrez une clé de licence JRebel entièrement fonctionnelle. Vous pouvez ensuite télécharger JRebel ou utiliser la clé dans la version intégrée de votre IDE. Le hic, (oui, il y a un hic), vous devez leur permettre de publier en votre nom (faire de la publicité) une fois par mois sur votre timeline FB ou votre compte Twitter. Je leur ai donné mon compte Twitter, ce n'est pas grave, je ne l'utilise jamais et personne de ma connaissance ne l'utilise vraiment. Alors économisez 260 $.
la source