1 / 27

JREBEL FOR ECLIPSE

JREBEL FOR ECLIPSE. ECLIPSE DAY CHINA 2013. PRESENTER. ANTON ARHIPOV @ antonarhipov PRODUCT MANAGER. BASED ON JAVAAGENT TECHNOLOGY DISTRIBUTED AS IDE PLUGIN Eclipse , incl. MyEclipse , RAD, etc Also: IntelliJ IDEA, NetBeans , JDeveloper. A PRODUCTIVITY TOOL FOR JAVA DEVELOPERS.

liana
Download Presentation

JREBEL FOR ECLIPSE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013

  2. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER

  3. BASED ON JAVAAGENT TECHNOLOGY • DISTRIBUTED AS IDE PLUGIN • Eclipse, incl. MyEclipse, RAD, etc • Also: IntelliJ IDEA, NetBeans, JDeveloper A PRODUCTIVITY TOOL FOR JAVA DEVELOPERS

  4. THE TURNAROUND MAKE CHANGES BUILD, DEPLOY, WAIT AVERAGE: 2.5 min OBSERVE RESULTS

  5. THE TURNAROUND MAKE CHANGES BUILD, DEPLOY, WAIT OBSERVE RESULTS NO BUILD! NO REDEPLOY! NO WAITING!

  6. WASTED TIME 1-60 sec 30 sec – 30 min ~1min APPLICATION STARTUP SERVER STARTUP IN-APPLICATION NAVIGATION

  7. HOW TO RELOAD A CLASS? Old Class Loader New Class Loader MyClass MyClass’ MyObject MyObject TRANSFER THE STATE

  8. serialize/deserialize init() Session Session Classes Sevlet NewClasses Sevlet App State App State Libraries New Libraries OldClassLoader NewClassLoader THIS IS WHAT EVERY APPLICATION SERVER DOES

  9. Session Session Classes Sevlet NewClasses Sevlet App State App State New Libraries OldClassLoader NewClassLoader CLASS LOADERS ARE EASY TO LEAK!

  10. THE REALITY: CLASS LOADERS ARE NOT GOOD FOR RELOADING CLASSES

  11. HotSwap Make changes OldClassLoader Debugger MyObject.class HotSwap New code 111000100 101010010 Code101000101 100010010 New code 111000100 101010010 MyObject

  12. JRebelvsHotSwap

  13. Maybe one day Java gets a better HotSwap: • JEP 159: Enhanced Class Redefinition • But class reloading is not enough for real applications!

  14. JRebel Make changes OldClassLoader JRebel Framework MyObject.class Code101000101 100010010 New code 111000100 101010010 Configuration (XML, annotations,..) MyObject

  15. JRebel does NOT create new class loaders to update classes!

  16. DEMO TIME!

  17. GET AT ECLIPSE MARKETPLACE

  18. ADD JREBEL NATURE

  19. ENABLE JREBEL AGENT

  20. JREBEL CONFIG CENTER

  21. By starting the container you will see JRebel messages like below

  22. REBEL.XML JRebel monitors directories specified in rebel.xml

  23. INSTANT CLASS RELOADING JRebel reloads only what’s changed

  24. FRAMEWORK CONFIGURATIONS JRebel understands framework configuration files

  25. http://zeroturnaround.com/software/jrebel/features/frameworks/http://zeroturnaround.com/software/jrebel/features/frameworks/

  26. Questions? • @antonarhipov • anton@zerotunraround.com • http://www.jrebel.com

More Related