Spring-Roo-and-the

Download Report

Transcript Spring-Roo-and-the

Spring Roo
and the Cloud
Shekhar Gulati
1
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
2
Agenda
•
Introducing Roo
•
Demo for Unbelievers
•
Under the Hood
•
Capability areas (lots of demo)
•
Cloud Support
•
Removing Roo
•
Conclusion and Q&A
3
Spring’s Mission
#J2EE or JavaEE should be easier to use
4
Mission Accomplished !
Now What?
5
Spring Roo
Development Tool
6
Spring Roo Mission
Roo's mission is to
fundamentally and sustainably
improve Java developer
productivity without
compromising engineering
integrity or flexibility
7
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
8
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)
9
Demo for Unbelievers
Demo # 1 – A Simple Web Application
10
Features Covered
• Project management
• Persistence
• Entity support
• Field Management
• JUnit testing
• Spring MVC Controllers, Selenium testing
• Logging
11
Under the Hood
• Implementation Overview
• Code Generation
12
Implementation Overview
13
Code Generation Approach
• Passive Generation
• Active Generation
• Roo is a Hybrid code generation
14
Active Generation
15
Demo # 2 Let’s Secure the app
16
Demo # 3 Speaker should get an Email
17
Demo # 4 Application speak Dutch
18
Demo # 5 How social is your app?
19
Demo # 6 Have an Existing Database
20
Cloud Support
21
# 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
22
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
23
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
24
Features Not Covered
• JMS support
• JSON support
• SOLR support (Search)
• Spring Web Flow
• Add-on creation
25
Future Sneak Peak
• Spring Integration support
• Better Google App Engine support
• More view technologies support
• NoSQL support
• Ne04j
26
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-rooplayground
27
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 nongenerated code
• Questions?
28