indic threads java10-spring-roo-and-the-cloud
TRANSCRIPT
1
Spring Roo and the Cloud
Shekhar GulatiXebia
2
Hi, my name is...Shekhar Gulati
• Work for Xebia India
• Spring enthusiast (these days )
• Blogger and Writer(JavaLobby and Developer.com)
• Twitter : shekhargulati
3
Agenda
• Introducing Roo
• Demo for Unbelievers
• Under the Hood
• Capability areas (lots of demos)
• Cloud Portability
• Removing Roo
• Conclusion and Q&A
4
Spring’s Mission
#J2EE or JavaEE should be easier to use
5
Mission Accomplished !
Now What?
6
Spring Roo
Development Tool
7
Spring Roo Mission
Roo's mission is to
fundamentally and sustainably
improve Java developer
productivity without
compromising engineering
integrity or flexibility
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
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)
10
Demo for Unbelievers
Demo # 1 – A Simple Web Application
11
Features Covered
• Project management
• Entity support
• Field Management
• Persistence
• JUnit testing
• Spring MVC Controllers, Selenium testing
• Logging
12
Under the Hood
• Implementation Overview
• Code Generation
13
Implementation Overview
14
Code Generation Approach
• Passive Generation
• Active Generation
• Roo is a Hybrid code generation
15
Active Generation
16
Demo # 2 Let’s Secure the app
17
Demo # 3 Speaker receive an Email
18
Demo # 4 IllegalAccess Notification
19
Demo # 5 Application speak Dutch
20
Demo # 6 How social is your app?
21
I have an existing Database schema
22
Cloud Portability
23
Changes to be made
• persistence setup
• gwt set up
• add aspects for key generation
• do mvn gwt:compile gae:deploy
24
Issues on Google App Engine
• Spring MVC app does not work
• Relationships does not work
• Integration tests does not work (ROO-1711)
25
Removing Roo from app
• Use AJDT's "push-in refactoring" feature
• This moves the Roo .aj content into normal .java files
• Remove Roo's annotation JAR from your POM
• dependency remove command
• Remove @Roo* annotations from .java files
• Regular expression (\n.*Roo.*\n) find/replace in eclipse
26
Features Not shown
• JSON
• SOLR Support (Search)
• Spring Web Flow
• Add-on creation
• Internationalization addon
• Simple addon
• Advanced addon
27
Future Sneak Peak
• Spring Integration support
• NoSQL support
• ne04j
• redis
28
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
29
Q & A