Download presentation
Presentation is loading. Please wait.
Published byRachael Putt Modified over 9 years ago
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
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.