LatJUG-0311.JRebel-dev2dev

841
-1

Published on

Java Bytecode Fundamentals
Anton Arhipov [Estonia]
http://goo.gl/GO6Mm

Java User Group Latvia
March 2011
http://goo.gl/77MhT

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
841
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • - What is JRebel - Tool from ZeroTurnaround - Maps your app directly to the workspace to skip builds - Reloads class change instantly - Propagates configuration changes - Avoids 95% of builds & redeploys in development- Illustration - Screenshot illustration best? - Suggest quick demo!- Comparison - Don't focus on class reloading! - Is HotSwap important anymore?
  • - How does it work: Classes: - JRebel integrates with JVM and rewrites each class to split its state and behaviour - JRebel versions each class individually, instead of an application/module at a time - Does not use classloaders! - Changes to classes always visible in Reflection API -> Versioning graphic
  • - How does it work: Configuration changes - 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 been contributed
  • - How does it work: Workspace mapping - JRebel integrates with application servers, frameworks and the IDE - When a class or resource is being looked up, JRebel redirects directly to the workspace - When an HTTP resource needs to be serves, JRebel serves it from the workspace -> Mapping graphic!
  • - How does it work: Configuration changes - 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 been contributed
  • - What is JRebel - Tool from ZeroTurnaround - Maps your app directly to the workspace to skip builds - Reloads class change instantly - Propagates configuration changes - Avoids 95% of builds & redeploys in development- Illustration - Screenshot illustration best? - Suggest quick demo!- Comparison - Don't focus on class reloading! - Is HotSwap important anymore?
  • LatJUG-0311.JRebel-dev2dev

    1. 1.
    2. 2. Part I<br />How much of your coding time is spent coding?<br />Seen this before?<br />Also: <br />“My app is…”<br />* Building<br />* Redeploying<br />* Restarting…<br />http://xkcd.com/303/<br />
    3. 3. JBoss AS startup time<br />
    4. 4. Redeploying sucks, so JRebeleliminates it. How?<br />“<br />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.<br />”<br />Umm… What?<br />
    5. 5. JRebel picks up changes to:A) Class structure <br />…monitors the timestamp of classfiles..<br />…and reflects those changes in your application, instantly<br />
    6. 6. JRebel picks up changes to:B) Framework configurations<br />Frameworks<br />and others...<br />…and reflects those changes in your application, instantly<br />
    7. 7. JRebel picks up changes to:C) Java EE technologies<br />…and reflects those changes in… well, you get the point…<br />.. .. ..but HOW??<br />
    8. 8. Part 2<br />Tech and Science stuff<br />http://xkcd.com<br />
    9. 9. How JRebel works:1) Classes<br /><ul><li>JRebel integrates with JVM and rewrites each class to be updateable
    10. 10. JRebel versions each class individually, instead of an application or module at a time
    11. 11. It does not use classloaders!
    12. 12. Changes to classes are always visible in the Reflection API</li></li></ul><li>How JRebel works:2) Framework configuration changes / details<br />JRebel integrates directly with application servers and frameworks to propagate configuration changes from the changed classes and resources<br />Annotation changes are always visible in Reflection API<br />JRebel provides an extensible SDK to allow contributions from third parties. Stripes, Struts 2, Wicket and several other integrations have already been contributed<br />Containers / Application Servers<br />
    13. 13. How JRebel works:3) Workspace mapping<br />petclinic.war<br /><ul><li>JRebel integrates with application servers, frameworks and your IDE
    14. 14. When a class or resource is being looked up, JRebel redirects straight to the workspace
    15. 15. When an HTTP resource needs to be served, JRebel serves it from the workspace</li></ul>IDEs<br />
    16. 16. How JRebel works: Integration, Integration, Integration<br />IDEs<br />Containers<br />Frameworks<br />Build Tools<br />
    17. 17. Specially for JUG Latvia!<br /> Free JRebel license for 60days<br />with Enterprise Add-on <br />http://www.zeroturnaround.com/jrebel/giveaways/?campaign=juglatvia032011<br />
    18. 18. DEMO<br />
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×