Your SlideShare is downloading. ×
JRebel
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

JRebel

1,705
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
1,705
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Как забыть про редеплой Поганшев Сергей
  • 2. План Редеплоймент - проблема? Каким образом JRebel решает проблему редеплоймента? Стоимость и альтернативы Практика использования JRebel LiveRebel
  • 3.  Редеплоймент - проблема? Каким образом JRebel решает проблему редеплоймента? Стоимость и альтернативы Практика использования JRebel LiveRebel
  • 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.  Редеплоймент - проблема? Каким образом JRebel решает проблему редеплоймента? Стоимость и альтернативы Практика использования JRebel LiveRebel
  • 6. Настройка (Eclipse) Установить плагин Активировать лицензию Активировать сервер Отметить проекты Запустить сервер Profit!
  • 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. Пример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. Пример 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. Пример 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. 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.  Редеплоймент - проблема? Каким образом JRebel решает проблему редеплоймента? Стоимость и альтернативы Практика использования JRebel LiveRebel
  • 13. Альтернативы HotSwap Dynamic Code Evolution VM Javaleon fakereplace Glass Ghost Play! Framework
  • 14. Альтернативы HotSwap Dynamic Code Evolution VM Javaleon fakereplace Glass Ghost Play! Framework
  • 15.  Редеплоймент - проблема? Каким образом JRebel решает проблему редеплоймента? Стоимость и альтернативы Практика использования JRebel LiveRebel
  • 16. Практика использования Нужно знать ограничения и особенности Unlocker @Transactional Служба продажи «Все таки редеплой»
  • 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. Пример 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. Пример 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. Практика использования Нужно знать ограничения и особенности Unlocker @Transactional Служба продажи «Все таки редеплой»
  • 21.  Редеплоймент - проблема? Каким образом JRebel решает проблему редеплоймента? Стоимость и альтернативы Практика использования JRebel LiveRebel
  • 22. Как забыть про редеплойВопросы? Поганшев Сергей