Presentation is loading. Please wait.

Presentation is loading. Please wait.

JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON PRODUCT MANAGER.

Similar presentations


Presentation on theme: "JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON PRODUCT MANAGER."— 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 MAKE CHANGES BUILD, DEPLOY, WAIT OBSERVE RESULTS AVERAGE: 2.5 min

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

6 ~1 min30 sec – 30 min1-60 sec IN-APPLICATION NAVIGATION APPLICATION STARTUP SERVER STARTUP WASTED TIME

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

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

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

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

11

12 MyObject MyObject.class OldClassL oad er Code 101000101 100010010 Debugger HotSwap New code 111000100 101010010 New code 111000100 101010010 HotSwap Make changes

13 JRebel vs HotSwap HotSwapJRebel Changing method bodies ++ Adding/removing methods -+ Adding/removing constructors -+ Adding/removing fields -+ Adding/removing classes -+ Adding/removing annotations -+ Replacing superclass * -- Adding/removing implemented interfaces * --

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

15 MyObject MyObject.class OldClassL oad er Code 101000101 100010010 New code 111000100 101010010 JRebel Framework Configuration (XML, annotations,..) JRebel Make changes

16 JRebel does NOT create new class loaders to update classes!

17 DEMO TIME!

18 GET AT ECLIPSE MARKETPLACE

19 ADD JREBEL NATURE

20 ENABLE JREBEL AGENT

21 JREBEL CONFIG CENTER

22 By starting the container you will see JRebel messages like below

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

24 INSTANT CLASS RELOADING JRebel reloads only what’s changed

25 FRAMEWORK CONFIGURATIONS JRebel understands framework configuration files

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

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


Download ppt "JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON PRODUCT MANAGER."

Similar presentations


Ads by Google