Spring Roo - Reference Documentation


DISID Corporation, S.L , Pivotal Software, Inc


Copyright 2009-2014 VMware, Inc. All Rights Reserved.

Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.

I. Welcome to Spring Roo
1. Introduction
1.1. What is Roo?
1.2. Why Use It
1.2.1. Higher Productivity
1.2.2. Stock-Standard Java
1.2.3. Usable and Learnable
1.2.4. No Engineering Trade-Offs
1.2.5. Easy Roo Removal
1.3. Installation
1.4. Optional ROO_OPTS Configuration
1.5. First Steps: Your Own Web App in Under 10 Minutes
1.6. Exploring the Roo Samples
1.7. Suggested Steps to Roo Productivity
2. Beginning With Roo: The Tutorial
2.1. What You'll Learn
2.2. Alternative Tutorial: The Wedding RSVP Application
2.3. Tutorial Application Details
2.4. Step 1: Starting a Typical Project
2.5. Step 2: Creating Entities and Fields
2.6. Step 3: Integration Tests
2.7. Step 4: Using Your IDE
2.8. Step 5: Creating A Web Tier
2.9. Step 6: Loading the Web Server
2.10. Securing the Application
2.11. Customizing the Look & Feel of the Web UI
2.12. Selenium Tests
2.13. Backups and Deployment
2.14. Where To Next
3. Application Architecture
3.1. Architectural Overview
3.2. Critical Technologies
3.2.1. AspectJ
3.2.2. Spring
3.3. Entity Layer
3.4. Web Layer
3.5. Optional Services Layer
3.6. Goodbye DAOs
3.7. Maven
3.7.1. Packaging
3.7.2. Multi-Module Support Features Limitations
4. Usage and Conventions
4.1. Usability Philosophy
4.2. Shell Features
4.3. IDE Usage
4.3.1. Install the STS Roo Support
4.4. Build System Usage
4.5. File System Conventions
4.6. Add-On Installation and Removal
4.7. Recommended Practices
4.8. Managing Roo Add-Ons
5. Existing Building Blocks
5.1. Existing Projects
5.2. Existing Databases
6. Removing Roo
6.1. How Roo Avoids Lock-In
6.2. Pros and Cons of Removing Roo
6.3. Step-by-Step Removal Instructions
6.3.1. Step 1: Push-In Refactor
6.3.2. Step 2: Annotation Source Code Removal
6.3.3. Step 3: Annotation JAR Removal
6.4. Reenabling Roo After A Removal
II. Base Add-Ons
7. Base Add-On Overview
8. Persistence Add-On
8.1. JPA setup command
8.2. Entity JPA command
8.3. Field commands
9. Incremental Database Reverse Engineering (DBRE) Add-On
9.1. Introduction
9.1.1. What are the benefits of Roo's incremental reverse engineering?
9.1.2. How does DBRE work? Obtaining database metadata Class and field name creation
9.2. Installation
9.3. DBRE Add-On commands
9.4. The @RooDbManaged annotation
9.5. Supported JPA 2.0 features
9.5.1. Simple primary keys
9.5.2. Composite primary keys
9.5.3. Entity relationships Many-valued associations with many-to-many multiplicity Single-valued associations to other entities that have one-to-one multiplicity Many-valued associations with one-to-many multiplicity Single-valued associations to other entities that have many-to-one multiplicity Multiple associations in the same entity
9.5.4. Other fields
9.5.5. Existing fields
9.6. Troubleshooting
10. Application Layering
10.1. The Big Picture
10.2. Persistence Layers
10.2.1. JPA Entities (Active Record style)
10.2.2. JPA Repository
10.2.3. MongoDB Persistence Setup Entities Repository Example & Cloud Foundry Deployment
10.3. Service Layer
11. Web MVC Add-On
11.1. Controller commands
11.2. Application Conversion Service
11.3. JSP Views
12. JavaServer Faces (JSF) Add-On
12.1. JSF commands
12.2. The @RooJsfManagedBean annotation
12.3. The @RooJsfConverter annotation
12.4. The @RooJsfApplicationBean annotation
12.5. The bikeshop example
13. Cloud Foundry Add-On
13.1. Installing the Cloud Foundry Add-On
13.2. Getting Started
13.2.1. Logging In
13.2.2. The Commands
13.2.3. Deploying Your Application
13.2.4. Viewing Your Applications
13.2.5. Binding Services
13.2.6. Provisioning Memory
13.2.7. Starting Your Application
13.3. Conclusion
14. JSON Add-On
14.1. Adding JSON Functionality to Domain Types
14.2. JSON REST Interface in Spring MVC controllers
15. Apache Solr Add-On
15.1. Solr Server Installation
15.2. Solr Add-On Commands
15.3. The @RooSolrSearchable Annotation
III. Internals and Add-On Development
16. Development Processes
16.1. Guidelines We Follow
16.2. Source Repository
16.3. Setting Up for Development
16.4. Submitting Patches
16.5. Path to Committer Status
17. Simple Add-Ons
17.1. Project Setup
17.2. Fast Creation
17.3. Shell Interaction
17.4. Operations
17.5. Packaging & Distribution
17.6. Publishing to RooBot
17.7. Upgrading Spring Roo Add-Ons from 1.0.x to 1.1.0
18. Advanced Add-Ons
18.1. Metadata
18.2. Annotations
18.3. Inter-Type Declarations
18.4. Recommendations
IV. External Add-Ons
19. Tailor Add-On
19.1. Introduction
19.2. How it works
19.3. Tailor Add-On Commands
19.4. Tailor Configuration
19.4.1. Actions execute defaultvalue focus
19.4.2. XML Configuration Example 1: Tailor the "project" command Example 2: Default target modules and default values Example 3: Alias command to create layers
19.4.3. Configuration Addon
V. Appendices
A. Command Index
A.1. Add On Commands
A.1.1. addon feedback bundle
A.1.2. addon info bundle
A.1.3. addon info id
A.1.4. addon install bundle
A.1.5. addon install id
A.1.6. addon list
A.1.7. addon remove
A.1.8. addon search
A.1.9. addon upgrade all
A.1.10. addon upgrade available
A.1.11. addon upgrade bundle
A.1.12. addon upgrade id
A.1.13. addon upgrade settings
A.2. Backup Commands
A.2.1. backup
A.3. Classpath Commands
A.3.1. class
A.3.2. constructor
A.3.3. enum constant
A.3.4. enum type
A.3.5. focus
A.3.6. interface
A.4. Cloud Commands
A.4.1. cloud setup
A.5. Controller Commands
A.5.1. controller all
A.5.2. controller scaffold
A.5.3. web mvc all
A.5.4. web mvc scaffold
A.6. Creator Commands
A.6.1. addon create advanced
A.6.2. addon create i18n
A.6.3. addon create simple
A.6.4. addon create wrapper
A.7. Data On Demand Commands
A.7.1. dod
A.8. Dbre Commands
A.8.1. database introspect
A.8.2. database reverse engineer
A.9. Embedded Commands
A.9.1. web mvc embed document
A.9.2. web mvc embed generic
A.9.3. web mvc embed map
A.9.4. web mvc embed photos
A.9.5. web mvc embed stream video
A.9.6. web mvc embed twitter
A.9.7. web mvc embed video
A.9.8. web mvc embed wave
A.10. Equals Commands
A.10.1. equals
A.11. Felix Delegator
A.11.1. exit
A.11.2. osgi framework command
A.11.3. osgi headers
A.11.4. osgi install
A.11.5. osgi log
A.11.6. osgi obr deploy
A.11.7. osgi obr info
A.11.8. osgi obr list
A.11.9. osgi obr start
A.11.10. osgi obr url add
A.11.11. osgi obr url list
A.11.12. osgi obr url refresh
A.11.13. osgi obr url remove
A.11.14. osgi ps
A.11.15. osgi resolve
A.11.16. osgi scr config
A.11.17. osgi scr disable
A.11.18. osgi scr enable
A.11.19. osgi scr info
A.11.20. osgi scr list
A.11.21. osgi start
A.11.22. osgi uninstall
A.11.23. osgi update
A.12. Field Commands
A.12.1. field boolean
A.12.2. field date
A.12.3. field embedded
A.12.4. field enum
A.12.5. field file
A.12.6. field list
A.12.7. field number
A.12.8. field other
A.12.9. field reference
A.12.10. field set
A.12.11. field string
A.13. Finder Commands
A.13.1. finder add
A.13.2. finder list
A.14. Help Commands
A.14.1. help
A.14.2. reference guide
A.15. Hint Commands
A.15.1. hint
A.16. Integration Test Commands
A.16.1. test integration
A.16.2. test mock
A.16.3. test stub
A.17. J Line Shell Component
A.17.1. */
A.17.2. /*
A.17.3. //
A.17.4. date
A.17.5. flash test
A.17.6. script
A.17.7. system properties
A.17.8. version
A.18. Jms Commands
A.18.1. field jms template
A.18.2. jms listener class
A.18.3. jms setup
A.19. Jpa Commands
A.19.1. database properties list
A.19.2. database properties remove
A.19.3. database properties set
A.19.4. embeddable
A.19.5. entity jpa
A.19.6. jpa setup
A.19.7. persistence setup
A.20. Jsf Commands
A.20.1. web jsf all
A.20.2. web jsf media
A.20.3. web jsf scaffold
A.20.4. web jsf setup
A.21. Json Commands
A.21.1. json add
A.21.2. json all
A.22. Jsp Commands
A.22.1. controller class
A.22.2. web mvc controller
A.22.3. web mvc install language
A.22.4. web mvc install view
A.22.5. web mvc language
A.22.6. web mvc setup
A.22.7. web mvc update tags
A.22.8. web mvc view
A.23. Logging Commands
A.23.1. logging setup
A.24. Mail Commands
A.24.1. email sender setup
A.24.2. email template setup
A.24.3. field email template
A.25. Maven Commands
A.25.1. dependency add
A.25.2. dependency remove
A.25.3. maven repository add
A.25.4. maven repository remove
A.25.5. module create
A.25.6. module focus
A.25.7. perform assembly
A.25.8. perform clean
A.25.9. perform command
A.25.10. perform eclipse
A.25.11. perform package
A.25.12. perform tests
A.25.13. project
A.26. Metadata Commands
A.26.1. metadata cache
A.26.2. metadata for id
A.26.3. metadata for module
A.26.4. metadata for type
A.26.5. metadata status
A.26.6. metadata trace
A.27. Mongo Commands
A.27.1. entity mongo
A.27.2. mongo setup
A.27.3. repository mongo
A.28. Os Commands
A.28.1. !
A.29. Pgp Commands
A.29.1. pgp automatic trust
A.29.2. pgp key view
A.29.3. pgp list trusted keys
A.29.4. pgp refresh all
A.29.5. pgp status
A.29.6. pgp trust
A.29.7. pgp untrust
A.30. Process Manager Commands
A.30.1. development mode
A.30.2. poll now
A.30.3. poll speed
A.30.4. poll status
A.31. Process Manager Diagnostics Listener
A.31.1. process manager debug
A.32. Prop File Commands
A.32.1. properties list
A.32.2. properties remove
A.32.3. properties set
A.33. Proxy Configuration Commands
A.33.1. proxy configuration
A.34. Repository Jpa Commands
A.34.1. repository jpa
A.35. Security Commands
A.35.1. permissionEvaluator
A.35.2. security setup
A.36. Selenium Commands
A.36.1. selenium all
A.36.2. selenium test
A.37. Service Commands
A.37.1. service all
A.37.2. service secure all
A.37.3. service secure type
A.37.4. service type
A.38. Solr Commands
A.38.1. solr add
A.38.2. solr all
A.38.3. solr setup
A.39. Tailor Commands
A.39.1. tailor activate
A.39.2. tailor deactivate
A.39.3. tailor list
A.40. Uaa Commands
A.40.1. download accept terms of use
A.40.2. download privacy level
A.40.3. download reject terms of use
A.40.4. download status
A.40.5. download view
A.41. Web Finder Commands
A.41.1. web mvc finder add
A.41.2. web mvc finder all
A.42. Web Flow Commands
A.42.1. web flow
A.43. Web Json Commands
A.43.1. web mvc json add
A.43.2. web mvc json all
A.43.3. web mvc json setup
B. Upgrade Notes and Known Issues
B.1. Known Issues
B.2. Version Numbering Approach
B.3. Upgrading To Any New Release
B.4. Upgrading to 1.2.0.RC1
B.5. Upgrading to 1.2.0.M1
B.6. Upgrading to 1.1.3.RELEASE
B.7. Upgrading to 1.1.2.RELEASE
B.8. Upgrading to 1.1.1.RELEASE
B.9. Upgrading to 1.1.0.RELEASE
B.10. Upgrading to 1.1.0.RC1
B.11. Upgrading to 1.1.0.M3
B.12. Upgrading to 1.1.0.M2
B.13. Upgrading to 1.1.0.M1
B.14. Upgrading to 1.0.2.RELEASE
B.15. Upgrading to 1.0.1.RELEASE
B.16. Upgrading to 1.0.0.RELEASE
B.17. Upgrading to 1.0.0.RC4
B.18. Upgrading to 1.0.0.RC3
C. Project Background
C.1. History
C.2. Mission Statement
D. Roo Resources
D.1. Project Home Page
D.2. Downloads and Maven Repositories
D.3. Community Forums
D.4. Twitter
D.5. Issue Tracking
D.6. Source Repository
D.7. Source Web Browsing
D.8. Commercial Products and Services
D.9. Other