JRebel

2,216 views
1,925 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,216
On SlideShare
0
From Embeds
0
Number of Embeds
1,143
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

JRebel

  1. 1. Как забыть про редеплой Поганшев Сергей
  2. 2. План Редеплоймент - проблема? Каким образом JRebel решает проблему редеплоймента? Стоимость и альтернативы Практика использования JRebel LiveRebel
  3. 3.  Редеплоймент - проблема? Каким образом JRebel решает проблему редеплоймента? Стоимость и альтернативы Практика использования JRebel LiveRebel
  4. 4.  java.lang.OutOfMemoryError: PermGen space java.util.zip.ZipException: error in opening zip file DEPLOYMENTS IN ERROR: Deployment "vfszip:/D:/jboss- 5.1.0.GA/server/default/deploy/Enhanc ed-QC-ejb.jar/" is in error due to the following reason(s): java.lang.IllegalStateException…
  5. 5.  Редеплоймент - проблема? Каким образом JRebel решает проблему редеплоймента? Стоимость и альтернативы Практика использования JRebel LiveRebel
  6. 6. Настройка (Eclipse) Установить плагин Активировать лицензию Активировать сервер Отметить проекты Запустить сервер Profit!
  7. 7. За кулисами rebel.xml:<application> <classpath> <dir name="C:/project/workspace/TestRebel/bin"/> </classpath> <web> <link target="/"> <dir name="C:/project/workspace/TestRebel/webapp"/> </link> </web></application> Опции сервера:-javaagent:c:jrebeljrebel.jar
  8. 8. Примерpublic class TestClient { public TestClient() { System.out.println("Constructor"); } public static void main(String... args) { TestClient client = new TestClient(); while (true) { client.sayHello(); Thread.sleep(1000); } } private void sayHello() { System.out.println("Hello"); }}
  9. 9. Пример Constructor Hellopublic class TestClient { Hello public TestClient() { JRebel: Reloading System.out.println("Constructor"); class TestClient. } Hello2 Hello2 public static void main(String... args) { TestClient client = new TestClient(); while (true) { client.sayHello(); Thread.sleep(1000); } } private void sayHello() { System.out.println("Hello2"); }}
  10. 10. Пример Hello2 Hello2public class TestClient { Hello2 private String field = “field value”; JRebel: Reloading class TestClient. public TestClient() { field value System.out.println("Constructor"); field value } public static void main(String... args) { TestClient client = new TestClient(); while (true) { client.sayHello(); Thread.sleep(1000); } } private void sayHello() { newMethod(); } private void newMethod() { System.out.println(field); }}
  11. 11. JRebel Remote На сервереset JAVA_OPTS=-javaagent:/path/to/jrebel.jar-Drebel.remoting_plugin=true rebel-remote.xml:<rebel-remote> <id>MyFancyApplication</id> <url>http://servername:8080/MyFancyApplication/</url></rebel-remote>
  12. 12.  Редеплоймент - проблема? Каким образом JRebel решает проблему редеплоймента? Стоимость и альтернативы Практика использования JRebel LiveRebel
  13. 13. Альтернативы HotSwap Dynamic Code Evolution VM Javaleon fakereplace Glass Ghost Play! Framework
  14. 14. Альтернативы HotSwap Dynamic Code Evolution VM Javaleon fakereplace Glass Ghost Play! Framework
  15. 15.  Редеплоймент - проблема? Каким образом JRebel решает проблему редеплоймента? Стоимость и альтернативы Практика использования JRebel LiveRebel
  16. 16. Практика использования Нужно знать ограничения и особенности Unlocker @Transactional Служба продажи «Все таки редеплой»
  17. 17. Пример Hello2 Hello2public class TestClient { Hello2 private String field = “field value”; JRebel: Reloading class TestClient. public TestClient() { field value System.out.println("Constructor"); field value } public static void main(String... args) { TestClient client = new TestClient(); while (true) { client.sayHello(); Thread.sleep(1000); } } private void sayHello() { newMethod(); } private void newMethod() { System.out.println(field); }}
  18. 18. Пример Hello2 Hello2public class TestClient { Hello2 private String field = “field value”; JRebel: Reloading class TestClient. public TestClient() { null System.out.println("Constructor"); null } public static void main(String... args) { TestClient client = new TestClient(); while (true) { client.sayHello(); Thread.sleep(1000); } } private void sayHello() { newMethod(); } private void newMethod() { System.out.println(field); }}
  19. 19. Пример Hello2 Hello2public class TestClient { Hello2 private String field; JRebel: Reloading class TestClient. public TestClient() { field value System.out.println("Constructor"); field value } public static void main(String... args) { TestClient client = new TestClient(); while (true) { client.sayHello(); Thread.sleep(1000); } } private void sayHello() { newMethod(); } private void newMethod() { field = "field value"; System.out.println(field); }}
  20. 20. Практика использования Нужно знать ограничения и особенности Unlocker @Transactional Служба продажи «Все таки редеплой»
  21. 21.  Редеплоймент - проблема? Каким образом JRebel решает проблему редеплоймента? Стоимость и альтернативы Практика использования JRebel LiveRebel
  22. 22. Как забыть про редеплойВопросы? Поганшев Сергей

×