Rails On Spring

Preview:

DESCRIPTION

A look at the impossible, the marriage between Ruby and Spring.integrallis.com

Citation preview

Rails on SpringUsing JRuby as the Secret Sauce

Brian Sam-Bodden

Agenda

The State of Java and JEE

Ruby on Rails to the Rescue

Ruby makes Rails possible

The Spring Framework

Agenda

JRuby - Ruby on Steroids

JRuby on Rails

JRuby for Rapid Spring Prototyping

JRuby on Rails and Spring

The State of Java and JEE

Java & JEE

the most prevalent language

the most complete enterprise platform

a rich ecosystem of web frameworks

a vibrant open source community

plagued by mediocre web frameworks

not well suited for rapid prototyping

in need of a dynamic language web framework

one level of abstraction too low for the web

Java & JEE

Who could help Java on the Web Tier?

Ruby on Rails

a revolutionary web framework

complete MVC solution

fast prototyping

killer AJAX support

a DSL for the web

leading the pack on the web 2.0 front

born from a product, not a committee

a vibrant open source community

Ruby on Rails

Ruby makes Rails possible

Rubyis...

✓Object-Oriented

✓Reflective ✓Dynamic

✓ Interpreted

✓General Purpose

✓ Multi-paradigm

✓ Garbage-collected

✓Elegant

The Spring Framework A breath of fresh air for Java

The Spring Framework

is a lightweight IoC and AOP framework

is the leading framework to build enterprise applications

is one level of abstraction up from JEE

is a layered Java/J2EE application framework

The Spring Framework

let’s you use all of the power of JEE

integrates seamlessly with Hibernate

POJO-based development keeps your code clean

harnesses the power of IoC and AOP

The Spring Framework

Spring 2.0 supports dynamic languages

support for JRuby, Groovy and BeanShell

beans can be backed by dynamic languages

scripted MVC controllers

JRubyRuby on Steroids

JRuby

100% pure-Java implementation of Ruby

brings Ruby to the JVM

started in 2002, now under Sun’s auspice

open source with a growing community

JRuby

call Ruby from Java or Java from Ruby

lots of sub-projects emerging

better scalability with native threading

native unicode support

JRuby

specialized JRuby offerings are appearing...

The good gets better

JRuby on Rails

the agility of rails - the scalability of Java

JRuby likely to surpass Ruby in speed

sneak Ruby and RoR into the enterprise!

JRuby on Rails

JRuby on Rails

JRuby on Rails

JEE servers are good at scaling up

no more multi-process management

use JRuby “multi-VM” support

leverage the maturity of the JVM and JEE servers

JRuby on Rails

deploy your Rails app as a WAR

leverage JDBC from ActiveRecord

JRubyFor Rapid Spring Prototyping

...one way of sneaking Ruby in through the back door

JRuby+Spring RAD

a simple example by the folks at jobster

use JRuby for rapid prototyping

Spring controller that delegates to a JRuby controller

JRuby controllers live alongside your JSPs

JRuby+Spring RAD

Simple JRuby controller

JRuby+Spring RAD

JSP view provides input to the Ruby controller

JRuby+Spring RAD

JSP view provides input to the Ruby controller

JRuby+Spring RAD

this experimental library supports:

✓access to Spring beans from JRuby code

✓ access to Hibernate queries

The Perfect Pairing for a Java ShopJRuby on Rails + Spring

JRoR on Spring

✓use rails-integration plugin

✓ expose WebApplicationContext in a RoR controller

Chris Nelson’s work

✓include Spring - Spring plugin for JRuby

JRoR on Spring

✓install goldspike rails-integration plugin on you JRoR app

✓ rake war:standalone:create to package a WAR with:

➡Your RoR app

➡JRuby and Rails libraries

JRoR on Spring

rake war:standalone:create in action:

JRoR on Spring

generated WARs work on many servers:

✓Tomcat

✓Jetty

✓Glassfish

✓JBoss

JRoR on Spring✓ add Chris’ Spring module:

JRoR on Spring

✓Add Spring application

✓Expand the generated WAR

➡Application Code

➡ Libraries (Jars)

➡Config Files

JRoR on Spring

✓ access your Spring beans from a RoR controller

JRoR on Spring

✓add a new face to your Spring applications

✓ leverage thousands of open source projects

✓leverage the good parts of JEE like JDBC and JMS

ResourcesJRuby

www.jruby.orgrubyforge.org/projects/jruby-extras

JRuby Rails Integrationwww.headius.com/jrubywiki/index.php/Rails_Integration

headius.blogspot.com/2006/11/advanced-rails-deployment-with-jruby.html

RAD Spring Prototyping with JRubythebogles.com/blog/projects/ruby-on-spring/

www.botspiritcompany.com/src/springruby/example_ruby_spring.html

Chris Nelson’s Workmysterycoder.blogspot.com/2007/06/spring-jruby.html

mysterycoder.blogspot.com/2007/06/include-spring.html

Books by Integrallis

Yes, they are all Java books :-(

Thanks!