spring roo and the cloud
DESCRIPTION
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) [email protected] Twitter : shekhargulati. Agenda. Introducing Roo Demo for Unbelievers Under the Hood - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/1.jpg)
1
Spring Roo and the Cloud
Shekhar Gulati
![Page 2: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/2.jpg)
2
Hi, my name is...Shekhar Gulati
• Work for Xebia India
• Spring enthusiast (these days )
• Blogger and Writer(JavaLobby and Developer.com)
• Twitter : shekhargulati
![Page 3: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/3.jpg)
3
Agenda
• Introducing Roo
• Demo for Unbelievers
• Under the Hood
• Capability areas (lots of demo)
• Cloud Support
• Removing Roo
• Conclusion and Q&A
![Page 4: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/4.jpg)
4
Spring’s Mission
#J2EE or JavaEE should be easier to use
![Page 5: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/5.jpg)
5
Mission Accomplished !
Now What?
![Page 6: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/6.jpg)
6
Spring Roo
Development Tool
![Page 7: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/7.jpg)
7
Spring Roo Mission
Roo's mission is to
fundamentally and sustainably
improve Java developer
productivity without
compromising engineering
integrity or flexibility
![Page 8: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/8.jpg)
8
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
![Page 9: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/9.jpg)
9
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)
![Page 10: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/10.jpg)
10
Demo for Unbelievers
Demo # 1 – A Simple Web Application
![Page 11: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/11.jpg)
11
Features Covered
• Project management
• Persistence
• Entity support
• Field Management
• JUnit testing
• Spring MVC Controllers, Selenium testing
• Logging
![Page 12: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/12.jpg)
12
Under the Hood
• Implementation Overview
• Code Generation
![Page 13: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/13.jpg)
13
Implementation Overview
![Page 14: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/14.jpg)
14
Code Generation Approach
• Passive Generation
• Active Generation
• Roo is a Hybrid code generation
![Page 15: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/15.jpg)
15
Active Generation
![Page 16: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/16.jpg)
16
Demo # 2 Let’s Secure the app
![Page 17: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/17.jpg)
17
Demo # 3 Speaker should get an Email
![Page 18: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/18.jpg)
18
Demo # 4 Application speak Dutch
![Page 19: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/19.jpg)
19
Demo # 5 How social is your app?
![Page 20: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/20.jpg)
20
Demo # 6 Have an Existing Database
![Page 21: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/21.jpg)
21
Cloud Support
![Page 22: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/22.jpg)
22
# 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
![Page 23: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/23.jpg)
23
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
![Page 24: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/24.jpg)
24
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
![Page 25: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/25.jpg)
25
Features Not Covered
• JMS support
• JSON support
• SOLR support (Search)
• Spring Web Flow
• Add-on creation
![Page 26: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/26.jpg)
26
Future Sneak Peak
• Spring Integration support
• Better Google App Engine support
• More view technologies support
• NoSQL support
• Ne04j
![Page 27: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/27.jpg)
27
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
![Page 28: Spring Roo and the Cloud](https://reader035.vdocuments.net/reader035/viewer/2022062410/5681596b550346895dc6ac4c/html5/thumbnails/28.jpg)
28
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?