Spring Roo
description
Transcript of Spring Roo
![Page 2: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/2.jpg)
What?
Why?
How?
![Page 3: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/3.jpg)
What is Roo?
Version 1.2
![Page 4: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/4.jpg)
No Lock In
High Quality
Rapid App Development
Tool
Spring Roo
![Page 5: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/5.jpg)
Setting Expectations Right?
Java SpringJPA
MavenJSP
GWTFlex
![Page 6: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/6.jpg)
Spring Roo
Runtime Library IDE Plugin Annotatins
Unlike Others Spring Roo is not
![Page 7: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/7.jpg)
What does roo look like?
![Page 8: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/8.jpg)
![Page 9: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/9.jpg)
10 minute Test
![Page 10: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/10.jpg)
Step 1: Create Roo Project
![Page 11: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/11.jpg)
![Page 12: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/12.jpg)
Step 2: Setup Persistence Layer
![Page 13: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/13.jpg)
![Page 14: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/14.jpg)
Step 3: Declare Entities
![Page 15: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/15.jpg)
![Page 16: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/16.jpg)
Step 4: Add Fields
![Page 17: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/17.jpg)
![Page 18: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/18.jpg)
Step 5: Build Project
![Page 19: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/19.jpg)
![Page 20: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/20.jpg)
Step 6: Browse Project
![Page 21: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/21.jpg)
Spring Roo Projects are Maven Project
![Page 22: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/22.jpg)
Step 7: Generate Web App Scaffoldng
![Page 23: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/23.jpg)
![Page 24: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/24.jpg)
![Page 25: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/25.jpg)
![Page 26: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/26.jpg)
Step 8: Deploy
![Page 27: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/27.jpg)
![Page 28: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/28.jpg)
![Page 29: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/29.jpg)
![Page 30: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/30.jpg)
![Page 31: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/31.jpg)
![Page 32: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/32.jpg)
Step 9: Create Selenium Test Cases
![Page 33: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/33.jpg)
![Page 34: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/34.jpg)
![Page 35: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/35.jpg)
Step 10: Test UI
![Page 36: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/36.jpg)
![Page 37: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/37.jpg)
Why Spring Roo?
![Page 38: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/38.jpg)
Shell/Command Based
Has a Context and this is Better than any Wizard
![Page 39: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/39.jpg)
Active Code Generation
Lets add one more field to Employee, and see what happens?
![Page 40: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/40.jpg)
Domain Driven Design
![Page 41: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/41.jpg)
All Source Code is there
No Runtime as we said earlier
![Page 42: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/42.jpg)
Add your own Plugins
Create Organization wide plugins or make them OpenSource
![Page 43: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/43.jpg)
TypicalSecurity Plugin
Typical = ConvensionWhat all of us do most of time
![Page 44: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/44.jpg)
Install Plugin on Roo Shell
osgi start --url http://spring-roo-addon-typical-security.googlecode.com/files/com.xsoftwarelabs.spring.roo.addon.typicalsecurity-0.1.5.BUILD-SNAPSHOT.jar
![Page 45: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/45.jpg)
Run TypicalSecurity• project --topLevelPackage com.testproject2 --projectName
TestProject2
• //Typical Security Addon needs persistence, other wise it doesn't show itself
• persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY
• Usage
• //Run the TypicalSecurity setup addon in default mode• typicalsecurity setup
![Page 46: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/46.jpg)
What do we get?
• User Role Model classes• Sign up – With Captcha• Activation Email• Forgot Password
![Page 47: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/47.jpg)
![Page 48: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/48.jpg)
How to?
![Page 49: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/49.jpg)
Adding Security
![Page 50: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/50.jpg)
![Page 51: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/51.jpg)
![Page 52: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/52.jpg)
![Page 53: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/53.jpg)
![Page 54: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/54.jpg)
![Page 55: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/55.jpg)
![Page 56: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/56.jpg)
Adding Finders
![Page 57: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/57.jpg)
![Page 58: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/58.jpg)
![Page 59: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/59.jpg)
![Page 60: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/60.jpg)
![Page 61: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/61.jpg)
Adding Custom Controller
![Page 62: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/62.jpg)
Adding Custom Controller
![Page 63: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/63.jpg)
![Page 64: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/64.jpg)
![Page 65: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/65.jpg)
![Page 66: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/66.jpg)
![Page 67: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/67.jpg)
![Page 68: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/68.jpg)
![Page 69: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/69.jpg)
Conclusion
![Page 70: Spring Roo](https://reader035.fdocuments.in/reader035/viewer/2022062501/5681637d550346895dd45d91/html5/thumbnails/70.jpg)
• Use Roo for – Database Modeling Stage– Rapid Prototyping
• Remove Roo if– After prototyping you want a simple Java Project– Recommended keep things for reactive scaffolding
• Build Organization wise/Feature wise Addon– Add Ons are very powerful– Any Project can use it (as long as at the beginning
they are Spring Roo)