Spring Roo and the Cloud Shekhar Gulati
Hi, my name is...Shekhar Gulati Work for Xebia India Spring enthusiast (these days ) Blogger and Writer(JavaLobby and Developer.com) sgulati@xebia.com Twitter : shekhargulati
Agenda Introducing Roo Demo for Unbelievers Under the Hood Capability areas (lots of demo) Cloud Support Removing Roo Conclusion and Q&A
Spring’s Mission #J2EE or JavaEE should be easier to use
Mission Accomplished ! Now What?
Spring Roo Development Tool
Spring Roo Mission Roo's mission is to fundamentally and sustainably improve Java developer productivity without compromising engineering integrity or flexibility
What is Roo? Rapid Development Tool for Spring Development time only No Runtime No Negative Performance Impact No Memory Overhead No Roo Deployment Uses Best of Breed Spring 3, Spring Security, Spring MVC / Web Flow Junit, Log4J, Maven, AspectJ, Eclipse
Why should we use Roo? Easy Configuration Great Learning Tool Spring Best Practices Restful Web Services, JPA persistence, Security, Integration tests, Selenium test cases, JMS Standards Bean validation, Dependency Injection Powerful Features GWT, SOLR, DBRE, NoSQL, Spring Integration (coming soon)
Demo for Unbelievers Demo # 1 – A Simple Web Application
Features Covered Project management Persistence Entity support Field Management JUnit testing Spring MVC Controllers, Selenium testing Logging
Under the Hood Implementation Overview Code Generation
Implementation Overview
Code Generation Approach Passive Generation Active Generation Roo is a Hybrid code generation
Active Generation
Demo # 2 Let’s Secure the app
Demo # 3 Speaker should get an Email
Demo # 4 Application speak Dutch
Demo # 5 How social is your app?
Demo # 6 Have an Existing Database
Cloud Support
# Demo 7 – Moving to Cloud Changes to make persistence setup (Google App Engine) gwt set up add aspects for key generation Remove constraints (unique) do mvn gwt:compile gae:deploy
Issues on Google App Engine Spring MVC app does not work Relationships do not work Integration tests do not work (ROO-1711) Constraints do not work Enum does not work
Removing Roo from app Use AJDT's "push-in refactoring" feature This moves the Roo .aj content into normal .java files Remove @Roo* annotations from .java files Regular expression (\n.*Roo.*\n) find/replace in eclipse Remove Roo's annotation JAR from your POM dependency remove command
Features Not Covered JMS support JSON support SOLR support (Search) Spring Web Flow Add-on creation
Future Sneak Peak Spring Integration support Better Google App Engine support More view technologies support NoSQL support Ne04j
Resources & Links Home http://www.springsource.org/roo/ Forum http://forum.springsource.org Issues http://jira.springframework.org/browse/ROO Twitter @SpringRoo Twitter #roo hash key https://github.com/shekhargulati/spring-roo- playground
Conclusion and Q & A Roo delivers serious productivity gains for Java Popular, mature libraries you already know Easy to learn and use No runtime, no lock-in, no risk ITDs separate clearly generated from non- generated code Questions?