Your SlideShare is downloading. ×

LatJUG-0311.JRebel-dev2dev

771

Published on

Java Bytecode Fundamentals …

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
771
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
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?
  • Transcript

    • 1.
    • 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. JBoss AS startup time
    • 4. Redeploying sucks, so JRebeleliminates 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?
    • 5. JRebel picks up changes to:A) Class structure
      …monitors the timestamp of classfiles..
      …and reflects those changes in your application, instantly
    • 6. JRebel picks up changes to:B) Framework configurations
      Frameworks
      and others...
      …and reflects those changes in your application, instantly
    • 7. JRebel picks up changes to:C) Java EE technologies
      …and reflects those changes in… well, you get the point…
      .. .. ..but HOW??
    • 8. Part 2
      Tech and Science stuff
      http://xkcd.com
    • 9. How JRebel works:1) Classes
      • JRebel integrates with JVM and rewrites each class to be updateable
      • 10. JRebel versions each class individually, instead of an application or module at a time
      • 11. It does not use classloaders!
      • 12. Changes to classes are always visible in the Reflection API
    • 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
    • 13. How JRebel works:3) Workspace mapping
      petclinic.war
      • JRebel integrates with application servers, frameworks and your IDE
      • 14. When a class or resource is being looked up, JRebel redirects straight to the workspace
      • 15. When an HTTP resource needs to be served, JRebel serves it from the workspace
      IDEs
    • 16. How JRebel works: Integration, Integration, Integration
      IDEs
      Containers
      Frameworks
      Build Tools
    • 17. Specially for JUG Latvia!
       Free JRebel license for 60days
      with Enterprise Add-on
      http://www.zeroturnaround.com/jrebel/giveaways/?campaign=juglatvia032011
    • 18. DEMO

    ×