jrebel for eclipse eclipse day china 2013. presenter anton arhipov @antonarhipov product manager
TRANSCRIPT
![Page 1: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/1.jpg)
JREBEL FOR ECLIPSEECLIPSE DAY CHINA 2013
![Page 2: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/2.jpg)
PRESENTER
ANTON ARHIPOV@antonarhipovPRODUCT MANAGER
![Page 3: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/3.jpg)
• BASED ON JAVAAGENT TECHNOLOGY• DISTRIBUTED AS IDE PLUGIN• Eclipse, incl. MyEclipse, RAD, etc• Also: IntelliJ IDEA, NetBeans, JDeveloper
A PRODUCTIVITY TOOL FOR JAVA DEVELOPERS
![Page 4: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/4.jpg)
THE TURNAROUND
MAKECHANGES
BUILD,DEPLOY,
WAIT
OBSERVERESULTS
AVERAGE: 2.5 min
![Page 5: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/5.jpg)
THE TURNAROUND
MAKECHANGES
BUILD,DEPLOY,
WAIT
OBSERVERESULTS
NO BUILD!NO REDEPLOY!NO WAITING!
![Page 6: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/6.jpg)
~1 min30 sec – 30 min1-60 sec
IN-APPLICATION NAVIGATION
APPLICATION STARTUP
SERVER STARTUP
WASTED TIME
![Page 7: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/7.jpg)
HOW TO RELOAD A CLASS?
Old Class Loader
MyClass
MyObject
NewClass Loader
MyClass’
MyObject
TRANSFER THE STATE
![Page 8: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/8.jpg)
Classes
Libraries
OldClassLoader NewClassLoader
Sevlet New ClassesNew
Libraries
Sevlet
Session Session
init()
App State
App State
serialize/deserialize
THIS IS WHAT EVERY APPLICATION SERVER DOES
![Page 9: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/9.jpg)
Classes
OldClassLoader NewClassLoader
Sevlet New ClassesNew
Libraries
Sevlet
Session Session
App State
App State
CLASS LOADERS ARE EASY TO LEAK!
![Page 10: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/10.jpg)
THE REALITY: CLASS LOADERS ARE NOT GOOD
FOR RELOADING CLASSES
![Page 11: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/11.jpg)
![Page 12: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/12.jpg)
MyObject
MyObject.class
OldClassLoader
Code101000101100010010
Debugger
HotSwap
New code111000100101010010
New code 111000100101010010
HotSwapMake changes
![Page 13: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/13.jpg)
JRebel vs HotSwapHotSwap JRebel
Changing method bodies + +Adding/removing methods - +Adding/removing constructors - +Adding/removing fields - +Adding/removing classes - +Adding/removing annotations - +Replacing superclass * - -Adding/removing implemented interfaces *
- -
![Page 14: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/14.jpg)
• Maybe one day Java gets a better HotSwap:–JEP 159: Enhanced Class Redefinition
• But class reloading is not enough for real applications!
![Page 15: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/15.jpg)
MyObject
MyObject.class
OldClassLoader
Code101000101100010010 New code
111000100101010010
JRebel
Fram
ewor
k
Configuration(XML, annotations,..)
JRebelMake changes
![Page 16: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/16.jpg)
JRebel does NOT create new class loaders to
update classes!
![Page 17: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/17.jpg)
DEMO TIME!
![Page 18: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/18.jpg)
GET AT ECLIPSE MARKETPLACE
![Page 19: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/19.jpg)
ADD JREBEL NATURE
![Page 20: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/20.jpg)
ENABLE JREBEL AGENT
![Page 21: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/21.jpg)
JREBEL CONFIG CENTER
![Page 22: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/22.jpg)
By starting the container you will see JRebel messages like below
![Page 23: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/23.jpg)
REBEL.XML
JRebel monitors directories specified in rebel.xml
![Page 24: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/24.jpg)
INSTANT CLASS RELOADING
JRebel reloads only what’s changed
![Page 25: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/25.jpg)
FRAMEWORK CONFIGURATIONS
JRebel understands framework configuration files
![Page 26: JREBEL FOR ECLIPSE ECLIPSE DAY CHINA 2013. PRESENTER ANTON ARHIPOV @antonarhipov PRODUCT MANAGER](https://reader036.vdocument.in/reader036/viewer/2022062407/56649cab5503460f9496cdf6/html5/thumbnails/26.jpg)
http://zeroturnaround.com/software/jrebel/features/frameworks/