Upload
denis-udod
View
752
Download
2
Embed Size (px)
DESCRIPTION
Java Bytecode Fundamentals Anton Arhipov [Estonia] http://goo.gl/GO6Mm Java User Group Latvia March 2011 http://goo.gl/77MhT
Citation preview
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?
JBoss AS startup time
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 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 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
• 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 JRebel works: Integration, Integration, Integration
Specially for JUG Latvia!
Free JRebel license for 60
days
with Enterprise Add-on
http://www.zeroturnaround.com/jrebel/giveaways/?campaign=juglatvia032011
DEMO