• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
LatJUG-0311.JRebel-dev2dev
 

LatJUG-0311.JRebel-dev2dev

on

  • 900 views

Java Bytecode Fundamentals

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

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

Statistics

Views

Total Views
900
Views on SlideShare
846
Embed Views
54

Actions

Likes
0
Downloads
12
Comments
0

5 Embeds 54

http://jujo00obo2o234ungd3t8qjfcjrs3o6k-a-sites-opensocial.googleusercontent.com 40
http://www.jug.lv 7
https://jujo00obo2o234ungd3t8qjfcjrs3o6k-a-sites-opensocial.googleusercontent.com 3
http://jug.lv 3
http://jugpreview.tumblr.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • - 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 LatJUG-0311.JRebel-dev2dev Presentation Transcript

  • 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/
  • JBoss AS startup time
  • 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?
  • JRebel picks up changes to:A) Class structure
    …monitors the timestamp of classfiles..
    …and reflects those changes in your application, instantly
  • JRebel picks up changes to:B) Framework configurations
    Frameworks
    and others...
    …and reflects those changes in your application, instantly
  • JRebel picks up changes to:C) Java EE technologies
    …and reflects those changes in… well, you get the point…
    .. .. ..but HOW??
  • Part 2
    Tech and Science stuff
    http://xkcd.com
  • 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
  • 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
  • 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
  • How JRebel works: Integration, Integration, Integration
    IDEs
    Containers
    Frameworks
    Build Tools
  • Specially for JUG Latvia!
     Free JRebel license for 60days
    with Enterprise Add-on
    http://www.zeroturnaround.com/jrebel/giveaways/?campaign=juglatvia032011
  • DEMO