Spring Roo  and the Cloud Shekhar Gulati
Hi, my name is...Shekhar Gulati <ul><li>Work for Xebia India </li></ul><ul><li>Spring enthusiast (these days   ) </li></u...
Agenda <ul><li>Introducing Roo </li></ul><ul><li>Demo for Unbelievers </li></ul><ul><li>Under the Hood </li></ul><ul><li>C...
Spring’s Mission <ul><li>#J2EE or JavaEE should be easier to use </li></ul>
Mission Accomplished ! <ul><li>Now What? </li></ul>
Spring Roo Development Tool
Spring Roo Mission <ul><li>Roo's mission is to </li></ul><ul><li>fundamentally and sustainably </li></ul><ul><li>improve J...
What is Roo? <ul><li>Rapid Development Tool for Spring </li></ul><ul><li>Development time only </li></ul><ul><ul><li>No Ru...
Why should we use Roo? <ul><li>Easy Configuration </li></ul><ul><li>Great Learning Tool </li></ul><ul><li>Spring Best Prac...
Demo for Unbelievers <ul><li>Demo # 1 – A Simple Web Application </li></ul>
Features Covered <ul><li>Project management </li></ul><ul><li>Persistence </li></ul><ul><li>Entity support </li></ul><ul><...
Under the Hood <ul><li>Implementation Overview </li></ul><ul><li>Code Generation </li></ul>
Implementation Overview
Code Generation Approach <ul><li>Passive Generation </li></ul><ul><li>Active Generation </li></ul><ul><li>Roo is a Hybrid ...
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  <ul><li>Changes to make </li></ul><ul><ul><li>persistence setup (Google App Engine) </li></ul>...
Issues on Google App Engine <ul><li>Spring MVC app does not work </li></ul><ul><li>Relationships do not work </li></ul><ul...
Removing Roo from app <ul><li>Use AJDT's &quot;push-in refactoring&quot; feature </li></ul><ul><ul><li>This moves the Roo ...
Features Not Covered <ul><li>JMS support </li></ul><ul><li>JSON support </li></ul><ul><li>SOLR support (Search) </li></ul>...
Future Sneak Peak <ul><li>Spring Integration support </li></ul><ul><li>Better Google App Engine support </li></ul><ul><li>...
Resources & Links <ul><li>Home  http://www.springsource.org/roo/ </li></ul><ul><li>Forum  http://forum.springsource.org </...
Conclusion and Q & A <ul><li>Roo delivers serious productivity gains for Java </li></ul><ul><li>Popular, mature libraries ...
Upcoming SlideShare
Loading in …5
×

Spring Roo and the Cloud (Tutorial) [5th IndicThreads.com Conference On Java, Pune, India]

2,598 views

Published on

Session Presented at 5th IndicThreads.com Conference On Java held on 10-11 December 2010 in Pune, India
WEB: http://J10.IndicThreads.com

------------
Spring Roo is the rapid development tool for Java. With Roo a full fledged application(maven,Spring, JPA) can be created in minutes. Roo has a low learning curve and is easy to use. Roo does not have any runtime dependency and it can be removed from your application code base in minutes. With current milestone releases, you can also build applications which can be deployed in the cloud(Google App Engine).We will talk in depth about Spring Roo capabilities and which all capabilities are support on Google App Engine.

In this tutorial, we’ll look more closely at Roo and how it integrates with Cloud platforms like Google App Engine. We will also develop a small web application using Spring Roo and then will deploy on Google App Engine.

Takeaways for the Audience
Audience will see the capabilities of spring roo and how they can develop applications which are deployable on cloud (Google App Engine).

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,598
On SlideShare
0
From Embeds
0
Number of Embeds
38
Actions
Shares
0
Downloads
52
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Spring Roo and the Cloud (Tutorial) [5th IndicThreads.com Conference On Java, Pune, India]

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

×