- PVSM.RU - https://www.pvsm.ru -
Автором данной статьи является наш друг и пользователь платформы Jelastic [1] – Антон Архипов. Антон — очень талантливый разработчик, сейчас занимает должность менеджера продукта JRebel [2] в компании ZeroTurnaround [3], а также является сооснователем сообщества разработчиков devclub.eu [4] и JUG.ee [5].
Англоязычную версию статьи можно читать здесь [6].
Возможно, Вы еще не слышали о таком продукте как JRebel. Так вот, JRebel – это инструмент, призванный избавить от проблемы повторного развертывания приложения во время разработки, а значить сэкономить Ваше время. Он обновляет приложение сразу же после внесения каких-либо изменений в классовую структуру, файлы ресурсов и конфигурационные файлы фреймворков. Надо отметить, что этот инструмент пользуется огромной популярностью среди Java разработчиков. И не зря, ведь используя JRebel, разработчик избавляется от необходимости повторно собирать и разворачивать приложение. При этом он сохраняет в среднем 10,5 минут за час кодирования, согласно последнему отчету о JavaEE продуктивности. Это больше чем 5 недель работы каждый год – а значит более 1 месячной зарплаты каждого разработчика в команде.
Совсем недавно вышел релиз JRebel 5.0 [7]. Главная фишка этого релиза — функция JRebel Remoting [8], которая позволяет использовать JRebel в случаях, когда приложение запущено в облачной среде.
С такой фичей будет очень просто разрабатывать и тестировать Java приложения в облаках. Давайте рассмотрим, как установить и сконфигугировать JRebel на облачной платформе Jelastic.
Во-первых, необходимо создать окружение, которое Вы будете использовать, чтобы хостить Ваше приложение. Давайте возьмем в качестве сервера приложений Tomcat, который является самым широко используемым сервером согласно Developer Productivity Report 2012 [9].
После создания окружения можно переходить к установке JRebel-агента. Для этого необходимо загрузить jrebel.jar. И не забудьте о лицензионном файле, который должен находиться в папке {user.home}/.jrebel.
Jelastic представил поддержку пользовательских свойств JVM несколько месяцев назад, и мы будем использовать эту возможность для того, чтобы настроить JRebel. Для этого нам необходимо внести некоторые изменения в файл variables.conf.
Кроме -javaagent параметра для того, чтобы обеспечить работy JRebel Remoting, нам понадобится JRebel remoting plugin. Подключаем его с помощью специального JVM аргумента:
-Drebel.remoting_plugin = true
Теперь мы сможем просмотреть JRebel логи, чтобы убедиться, что установка данного инструмента прошла успешно. Не забудьте сохранить все изменения и перезапустить Tomcat, чтобы применить новые параметры конфигурации.
Обратите внимание! Процедуры установки JRebel для Jetty и Tomcat практически ничем не отличаются. А вот GlassFish вместо variables.conf использует domain.xml или админ панель.
Для работы JRebel Remoting необходимы два конфиг файла: rebel.xml и rebel-remote.xml. JRebel требует наличия конфигурационного файла rebel.xml, чтобы загрузчики классов смогли увидеть изменения, внесенные в файлы проекта напрямую.
Rebel-remote.xml необходим для удаленной работы. Это очень простой конфигурационный файл, содержащий два параметра, ID модуля и URL, по которому доступно приложение.
Оба конфигурационных файла можно сгенерировать с помощью JRebel плагина для Eclipse, который доступне в Eclipse Marketplace [10].
Когда оба файла сгенерированы, можно собирать проект в war архив и деплоить в окружение Jelastic.
Давайте внесем изменения в проект, чтобы проверить, как работает JRebel.
Для примера изменим первую страничку (welcome.jsp). Напишем вместо “Welcome” — “Welcome to Jelastic!” и вызовем метод “Sync Now”, предоставляемый JRebel IDE плагином, чтобы обновить наше приложение.
После этого в консоли IDE появится следующее сообщение:
Manually triggered JRebel remoting synchronization.
Scheduling JRebel Remoting synchronization for projects: petclinic
Starting manual synchronization for project: petclinic
Parsing configuration for /Users/anton/work-src/petclinic
Directory target/classes/ will be used for uploading
Directory src/main/webapp/ will be used for uploading
…
JRebel-Remoting uploaded changes successfully, have fun!
Как правило, чтобы загрузить изменения на сервер, нужно около секунды, но это, конечно же, зависит от подключения. После завершешия синхронизации, обновляем страницу – и вуаля!
В настоящее время JRebel Remoting поддерживается IDE плагином, который доступен для Eclipse, плагины для IntelliJ и NetBeans появятся в скором времени.
С JRebel 5.0 [7] и Jelastic [11] появилась возможность работать как локально, так и удаленно без лишних затрат времени на повторне развертывания. Попробуйте и поделитесь мнением в комментариях к этому посту. Будем очень благодарны.
Автор: jelastic
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/9951
Ссылки в тексте:
[1] Jelastic : http://jelastic.com
[2] JRebel: http://zeroturnaround.com/software/jrebel/
[3] ZeroTurnaround: http://zeroturnaround.com/
[4] devclub.eu: http://www.devclub.eu/
[5] JUG.ee: http://www.jug.ee/
[6] здесь: http://zeroturnaround.com/blog/jrebel-and-jelastic-the-silver-lining-for-your-java-cloud/
[7] JRebel 5.0: http://zeroturnaround.com/blog/jrebel-5-0/
[8] JRebel Remoting: http://zeroturnaround.com/software/jrebel/remoting/
[9] Developer Productivity Report 2012: http://pages.zeroturnaround.com/ProductivityReport2012_java-productivity-report-1.html
[10] Eclipse Marketplace: http://marketplace.eclipse.org/content/jrebel-eclipse
[11] Jelastic: http://jelastic.com/java-paas
Нажмите здесь для печати.