Post on 10-May-2015
description
transcript
Part I
http://xkcd.com/303/
Seen this before?
Also: “My app is…” * Building * Redeploying * Restarting…
How much of your coding time is spent coding?
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?
“
”
JRebel picks up changes to: A) Class structure
…and reflects those changes in your application,
instantly
…monitors the timestamp of classfiles..
JRebel picks up changes to: B) Framework configurations
and 25+ others...
Frameworks
…and reflects those changes in your application,
instantly
…and reflects those changes in… well, you
get the point… .. .. ..but HOW??
JRebel picks up changes to: C) Java EE technologies
Part 2
http://xkcd.com
Tech and Science stuff
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
s
MyObject.clas
s MyClass_3 MyClass’ MyClass
• 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
How JRebel works: 2) Framework configuration changes / details
Containers / Application Servers
How JRebel works: 3) Workspace mapping
• 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
petclinic.war
IDEs
IDEs Containers Frameworks
Build Tools
How does JRebel work? Integration, Integration, Integration
Getting JRebel for yourself and your team
• Eclipse fans can get JRebel for Eclipse directly from the Eclipse Marketplace (search “jrebel”) or here: • http://www.zeroturnaround.com/jrebel/eclipse-eval/
• MyEclipse users can get JRebel for MyEclipse free for 30 days: • http://www.zeroturnaround.com/jrebel/myeclipse/
• Everyone can get the same free 30-day evaluation from: • http://www.zeroturnaround.com/jrebel/current/
• NEW! Use it for free at home for non-commercial development: • http://social.jrebel.com - for students, open source committers
Part 3
For Eclipse IDE users
For everyone!
For MyEclipse IDE users
Part 4
How do I talk about JRebel with my boss?
Getting the P.H.B. (Pointy Haired Boss) on board
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?
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?
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?
Over 39 Million builds, redeploys & restarts prevented for 11,000+ Java developers
(also cool)