280 likes | 429 Views
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
E N D
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
Code Generation Approach • Passive Generation • Active Generation • Roo is a Hybrid code generation
# 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?