2. Part I
How much of your coding time is spent coding?
Seen this
before?
Also:
“My app is…”
* Building
* Redeploying
* Restarting…
http://xkcd.com/303/
3. Redeploying sucks, so JRebel
eliminates it. How?
“ JRebel maps your project workspace directly to the
application under development. When you change any
class or resource in your IDE, the change is immediately
reflected in the application, skipping the build and
redeploy phases.
”
Umm… What?
4. JRebel picks up changes to:
A) Class structure
…monitors the
timestamp of
classfiles..
…and reflects
those changes in
your application,
instantly
5. JRebel picks up changes to:
B) Framework configurations
Frameworks
and 25+ others...
…and reflects
those changes in
your application,
instantly
6. JRebel picks up changes to:
C) Java EE technologies
…and reflects those
changes in… well, you
get the point…
.. .. ..but HOW??
8. How JRebel works:
1) Classes
• JRebel integrates with the JVM and rewrites each class to be
updateable
• JRebel versions each class individually, instead of an application or
module at a time
• It does not use classloaders!
• Changes to classes are always visible in the Reflection API
MyObject.clas
MyObject.clas
ss
MyClass MyClass’ MyClass_3
9. How JRebel works:
2) Framework configuration changes / details
• JRebel integrates directly with application servers and frameworks
to propagate configuration changes from the changed classes and
resources
• Annotation changes are always visible in Reflection API
• JRebel provides an extensible SDK to allow contributions from third
parties. Stripes, Struts 2, Wicket and several other integrations have
already been contributed
Containers / Application Servers
10. How JRebel works:
3) Workspace mapping
petclinic.war
• JRebel integrates with application servers,
frameworks and your IDE
• When a class or resource is being looked up,
JRebel redirects straight to the workspace
• When an HTTP resource needs to be served,
JRebel serves it from the workspace
IDEs
11. How does JRebel work?
Integration, Integration, Integration
IDEs Containers Frameworks
Build Tools
12. Part 3
Getting JRebel for yourself and your team
• Eclipse fans can get JRebel for Eclipse directly from the For Eclipse
IDE users
Eclipse Marketplace (search “jrebel”) or here:
• http://www.zeroturnaround.com/jrebel/eclipse-eval/
• MyEclipse users can get JRebel for MyEclipse free for 30
days:
For
• http://www.zeroturnaround.com/jrebel/myeclipse/ MyEclipse
IDE users
• Everyone can get the same free 30-day evaluation from:
• http://www.zeroturnaround.com/jrebel/current/ For
everyone!
• NEW! Use it for free at home for non-commercial development:
• http://social.jrebel.com - for students, open source committers
13. Part 4
Getting the P.H.B. (Pointy Haired Boss) on board
How do I talk
about JRebel
with my boss?
14. Talking about JRebel with your boss(es)
• This depends on their level of technical understanding
• Non-technical people understand the “Email Example” -
• Try telling them that redeploying a container to see changes that you make to code
is like restarting their computer every time they want to send/receive email. It can
take a similar amount of time, and is similarly disruptive.
• Or show them this presentation:
www.zeroturnaround.com/jrebel/documentation (JRebel for Bosses)
• More technical people like to know more about what’s going on –
send them this presentation here:
• www.zeroturnaround.com/jrebel/documentation (JRebel for Developers)
Nice. But my boss likes stats
and charts - got any of those?
15. Resources
• Java EE Productivity Report 2011
• Includes lots of stats & charts on the popularity of Java development
tools & technologies – plus a section on Turnaround Time (builds,
redeploys, restarts).
• http://www.zeroturnaround.com/java-ee-productivity-report-2011/
• Want to see how fast JRebel will pay for itself? (for finance
guys)
• http://www.zeroturnaround.com/jrebel
• ROI calculator is on the right side of the page
I don’t have much
time to read reports.
Have you got some
quick stats I can
reference?
16. Quick Stats
• Here are some cool stats taken from the Java EE
Productivity Report:
• 17.5% - the average percentage of coding time spent
redeploying (this varies by app size and container used - check
out the report for details on yours)
• 10.5 - the # of minutes wasted per hour of coding
• 4.38 - the # of hours wasted per week
• 5.25 - number of full work weeks wasted per year (40-hour
weeks).
• ...and over 18 hours per month….
Interesting…anything
else cool?
17. (also cool)
Over 39 Million builds, redeploys & restarts
prevented for 11,000+ Java developers