2.0.0.M2
© 2016 The original authors.
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.
Preface
1. Overview
Spring Roo is an easy-to-use development tool for quickly building web applications in the Java programming language, which can be used as an standalone application or as an Eclipse or STS plugin. It allows you to build high-quality, high-performance, lock-in-free enterprise applications in just minutes.
Best of all, Roo works alongside your existing Java and Spring knowledge, skills and experience. You probably won’t need to learn anything new to use Roo, as there’s no new language or runtime platform needed. You simply program in your normal Java way and Roo just works, sitting in the background taking care of the things you don’t want to worry about.
2. Requirements
To get started, please ensure you have the following system dependencies:
-
A Linux, Apple or Windows-based operating system (other operating systems may work but are not guaranteed).
-
A Java JDK 6 or newer installed. Java JDK 7 is recommended.
-
Apache Maven 3.0 or above installed and in the path.
We always recommend you use the latest version of Java and Maven that are available for your platform. We also recommend that you use Spring Tool Suite (STS) which includes a number of features that make working with Roo even easier (you can of course use Roo without an IDE at all if you prefer).
3. Download Spring Roo
You can download the current release from Spring Roo project page downloads section.
You can also build a distribution ZIP yourself from our source control repository.
4. Install Spring Roo
Once you have satisfied the initial requirements, you can install Roo by following these steps:
-
Unzip the distribution which will unpack to a single installation directory; this will be known as $ROO_HOME in the directions below
-
If using Windows, add
$ROO_HOME\binto your PATH environment variable -
If using Linux or Apple, create a symbolic link using a command such as
sudo ln -s $ROO_HOME/bin/roo.sh /usr/bin/roo
Next verify Roo has been installed correctly. This can be done using the following commands:
$ mkdir roo-test
$ cd roo-test
$ roo quit
____ ____ ____
/ __ \/ __ \/ __ \
/ /_/ / / / / / / /
/ _, _/ /_/ / /_/ /
/_/ |_|\____/\____/ W.X.Y.ZZ [rev RRR]
Welcome to Spring Roo. For assistance press TAB or type "hint" then hit ENTER.
$ cd ..
$ rmdir roo-test
If you see the logo appear, you’ve installed Roo successfully. For those curious, the "[rev RRR]" refers to the Git commit ID used to compile that particular build of Roo.
5. Command Index
This appendix was automatically built from Roo 2.0.0.M2
Commands are listed in alphabetic order, and are shown in monospaced font with any mandatory options you must specify when using the command. Most commands accept a large number of options, and all of the possible options for each command are presented in this appendix.
Addon Suite Commands
Addon Suite Commands are contained in org.springframework.roo.addon.suite.AddonSuiteCommands.
addon suite install name
Install some 'Roo Addon Suite' from installed OBR Repository
addon suite install name --symbolicName
- --symbolicName
-
Name that identifies the 'Roo Addon Suite'; default: 'NULL' (mandatory)
addon suite install url
Install some 'Roo Addon Suite' from URL
addon suite install url --url
- --url
-
URL of Roo Addon Suite .esa file; default: 'NULL' (mandatory)
addon suite list
Lists all installed 'Roo Addon Suite'. If you want to list all available 'Roo Addon Suites' on Repository, use --repository parameter
addon suite list
- --repository
-
OBR Repository where the 'Roo Addon Suite' are located; default: 'NULL'
addon suite start
Start some installed 'Roo Addon Suite'
addon suite start --symbolicName
- --symbolicName
-
Name that identifies the 'Roo Addon Suite'; default: 'NULL' (mandatory)
Audit Commands
Audit Commands are contained in org.springframework.roo.addon.security.addon.audit.AuditCommands.
audit add
Adds support for auditing a JPA entity
audit add --entity --createdDateColumn --modifiedDateColumn --createdByColumn --modifiedByColumn
- --entity
-
The entity which should be audited; default: 'NULL' (mandatory)
- --createdDateColumn
-
The DB column used for storing created date info; default: 'NULL' (mandatory)
- --modifiedDateColumn
-
The DB column used for storing modified date info; default: 'NULL' (mandatory)
- --createdByColumn
-
The DB column used for storing created by info; default: 'NULL' (mandatory)
- --modifiedByColumn
-
The DB column used for storing modified by info; default: 'NULL' (mandatory)
Classpath Commands
Classpath Commands are contained in org.springframework.roo.classpath.operations.ClasspathCommands.
class
Creates a new Java class source file in any project path
class --class
- --class
-
The name of the class to create; default: 'NULL' (mandatory)
- --rooAnnotations
-
Whether the generated class should have common Roo annotations; default if option present: 'true'; default if option not present: 'false'
- --path
-
Source directory to create the class in; default: 'FOCUSED:SRC_MAIN_JAVA'
- --extends
-
The superclass (defaults to java.lang.Object); default if option not present: 'java.lang.Object'
- --implements
-
The interface to implement; default: 'NULL'
- --abstract
-
Whether the generated class should be marked as abstract; default if option present: 'true'; default if option not present: 'false'
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
constructor
Creates a class constructor
constructor
- --class
-
The name of the class to receive this constructor; default if option not present: '*'
- --fields
-
The fields to include in the constructor. Multiple field names must be a double-quoted list separated by spaces
enum constant
Inserts a new enum constant into an enum
enum constant --name
- --class
-
The name of the enum class to receive this field; default if option not present: '*'
- --name
-
The name of the constant; default: 'NULL' (mandatory)
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
enum type
Creates a new Java enum source file in any project path
enum type --class
- --class
-
The name of the enum to create; default: 'NULL' (mandatory)
- --path
-
Source directory to create the enum in; default: 'FOCUSED:SRC_MAIN_JAVA'
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
focus
Changes focus to a different type
focus --class
- --class
-
The type to focus on; default: 'NULL' (mandatory)
interface
Creates a new Java interface source file in any project path
interface --class
- --class
-
The name of the interface to create; default: 'NULL' (mandatory)
- --path
-
Source directory to create the interface in; default: 'FOCUSED:SRC_MAIN_JAVA'
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
Controller Commands
Controller Commands are contained in org.springframework.roo.addon.web.mvc.controller.addon.ControllerCommands.
web mvc controller
Generates new @RooController inside current project
web mvc controller --package --entity --service --path
- --all
-
Indicates if developer wants to generate controllers for every entity of current project ; default if option present: 'true'; default if option not present: 'false'
- --package
-
This param will be mandatory if --all parameter has been specified. Indicates which package should be used to include generated controllers; default: 'NULL' (mandatory)
- --controller
-
Indicates the new controller class to generate. Also, you can indicates an existing controller to update it.; default: 'NULL'
- --entity
-
This param will be mandatory if --controller parameter has been specified with a new controller to generate. Indicates the entity that new controller will be manage.; default: 'NULL' (mandatory)
- --service
-
This param will be mandatory if --entity parameter has been specified. Indicates the service that new controller will use to access to negotiation layer.; default: 'NULL' (mandatory)
- --path
-
Indicates @ResquestMapping to be used on this controller. Is not necessary to specify '/'. Spring Roo shell will include it automatically.; default: 'NULL' (mandatory)
- --responseType
-
Indicates the responseType to be used by generated controller. Depending of the selected responseType, generated methods and views will vary.; default: 'JSON'
- --formattersPackage
-
Indicates project package where formatters should be generated. By default they will be generated inside the same controllers package.; default: 'NULL'
Creator Commands
Creator Commands are contained in org.springframework.roo.addon.creator.CreatorCommands.
addon create advanced
Create a new advanced add-on for Spring Roo (commands + operations
metadata + trigger annotation + dependencies)
addon create advanced --topLevelPackage
- --topLevelPackage
-
The top level package of the new addon; default: 'NULL' (mandatory)
- --description
-
Description of your addon (surround text with double quotes); default: 'NULL'
- --projectName
-
Provide a custom project name (if not provided the top level package name will be used instead); default: 'NULL'
addon create i18n
Create a new Internationalization add-on for Spring Roo
addon create i18n --topLevelPackage --locale --messageBundle
- --topLevelPackage
-
The top level package of the new addon; default: 'NULL' (mandatory)
- --locale
-
The locale abbreviation (ie: en, or more specific like en_AU, or de_DE); default: 'NULL' (mandatory)
- --messageBundle
-
Fully qualified path to the messages_xx.properties file; default: 'NULL' (mandatory)
- --language
-
The full name of the language (used as a label for the UI); default: 'NULL'
- --flagGraphic
-
Fully qualified path to flag xx.png file; default: 'NULL'
- --description
-
Description of your addon (surround text with double quotes); default: 'NULL'
- --projectName
-
Provide a custom project name (if not provided the top level package name will be used instead); default: 'NULL'
addon create simple
Create a new simple add-on for Spring Roo (commands + operations)
addon create simple --topLevelPackage
- --topLevelPackage
-
The top level package of the new addon; default: 'NULL' (mandatory)
- --description
-
Description of your addon (surround text with double quotes); default: 'NULL'
- --projectName
-
Provide a custom project name (if not provided the top level package name will be used instead); default: 'NULL'
addon create suite
Create a new Spring Roo Addon Suite for Spring Roo (two sample addons
repository + suite generator)
addon create suite --topLevelPackage
- --topLevelPackage
-
The top level package of all Spring Roo Addon Suite; default: 'NULL' (mandatory)
- --description
-
Description of your Roo Addon Suite (surround text with double quotes); default: 'NULL'
- --projectName
-
Provide a custom project name (if not provided the top level package name will be used instead); default: 'NULL'
addon create wrapper
Create a new add-on for Spring Roo which wraps a maven artifact to create a OSGi compliant bundle
addon create wrapper --topLevelPackage --groupId --artifactId --version --vendorName --licenseUrl
- --topLevelPackage
-
The top level package of the new wrapper bundle; default: 'NULL' (mandatory)
- --groupId
-
Dependency group id; default: 'NULL' (mandatory)
- --artifactId
-
Dependency artifact id); default: 'NULL' (mandatory)
- --version
-
Dependency version; default: 'NULL' (mandatory)
- --vendorName
-
Dependency vendor name); default: 'NULL' (mandatory)
- --licenseUrl
-
Dependency license URL; default: 'NULL' (mandatory)
- --docUrl
-
Dependency documentation URL; default: 'NULL'
- --description
-
Description of the bundle (use keywords with #-tags for better search integration); default: 'NULL'
- --projectName
-
Provide a custom project name (if not provided the top level package name will be used instead); default: 'NULL'
- --osgiImports
-
Contents of Import-Package in OSGi manifest; default: 'NULL'
dod
- --entity
-
The entity which this data on demand class will create and modify as required; default if option not present: '*'
- --class
-
The class which will be created to hold this data on demand provider (defaults to the entity name + 'DataOnDemand'); default: 'NULL'
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
Dto Commands
Dto Commands are contained in org.springframework.roo.addon.dto.addon.DtoCommands.
dto
Creates a new DTO class in SRC_MAIN_JAVA
dto --class
- --class
-
Name of the DTO class to create, including package and module (if multimodule project); default: 'NULL' (mandatory)
- --entity
-
Name of the entity which can be used to create DTO from; default: 'NULL'
- --all
-
Whether should create one DTO per each entity in the project; default if option present: 'true'; default if option not present: 'false'
- --fields
-
Comma separated list of entity fields to be included into the DTO; default: 'NULL'
- --excludeFields
-
Comma separated list of entity fields to be excluded into the DTO; default: 'NULL'
- --immutable
-
Whether the DTO should be inmutable; default if option present: 'true'; default if option not present: 'false'
- --utilityMethods
-
Whether the DTO should implement 'toString', 'hashCode' and 'equals' methods; default if option present: 'true'; default if option not present: 'false'
- --serializable
-
Whether the DTO should implement Serializable; default if option present: 'true'; default if option not present: 'false'
Equals Commands
Equals Commands are contained in org.springframework.roo.addon.javabean.addon.EqualsCommands.
equals
Add equals and hashCode methods to a class
equals
- --class
-
The name of the class; default if option not present: '*'
- --appendSuper
-
Whether to call the super class equals and hashCode methods; default if option present: 'true'; default if option not present: 'false'
- --excludeFields
-
The fields to exclude in the equals and hashcode methods. Multiple field names must be a double-quoted list separated by spaces
Felix Delegator
Field Commands
Field Commands are contained in org.springframework.roo.addon.field.addon.FieldCommands.
field boolean
Adds a private boolean field to an existing Java source file
field boolean --fieldName --class --column
- --fieldName
-
The name of the field to add; default: 'NULL' (mandatory)
- --class
-
The name of the class to receive this field; default if option not present: '*' (mandatory)
- --notNull
-
Whether this value cannot be null; default if option present: 'true'; default if option not present: 'false'
- --nullRequired
-
Whether this value must be null; default if option present: 'true'; default if option not present: 'false'
- --assertFalse
-
Whether this value must assert false; default if option present: 'true'; default if option not present: 'false'
- --assertTrue
-
Whether this value must assert true; default if option present: 'true'; default if option not present: 'false'
- --column
-
The JPA @Column name; default: 'NULL' (mandatory)
- --value
-
Inserts an optional Spring @Value annotation with the given content; default: 'NULL'
- --comment
-
An optional comment for JavaDocs; default: 'NULL'
- --primitive
-
Indicates to use a primitive type; default if option present: 'true'; default if option not present: 'false'
- --transient
-
Indicates to mark the field as transient; default if option present: 'true'; default if option not present: 'false'
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
field date
Adds a private date field to an existing Java source file
field date --fieldName --type --class --column
- --fieldName
-
The name of the field to add; default: 'NULL' (mandatory)
- --type
-
The Java type of the entity; default: 'NULL' (mandatory)
- --persistenceType
-
The type of persistent storage to be used; default: 'NULL'
- --class
-
The name of the class to receive this field; default if option not present: '*' (mandatory)
- --notNull
-
Whether this value cannot be null; default if option present: 'true'; default if option not present: 'false'
- --nullRequired
-
Whether this value must be null; default if option present: 'true'; default if option not present: 'false'
- --future
-
Whether this value must be in the future; default if option present: 'true'; default if option not present: 'false'
- --past
-
Whether this value must be in the past; default if option present: 'true'; default if option not present: 'false'
- --column
-
The JPA @Column name; default: 'NULL' (mandatory)
- --comment
-
An optional comment for JavaDocs; default: 'NULL'
- --value
-
Inserts an optional Spring @Value annotation with the given content; default: 'NULL'
- --transient
-
Indicates to mark the field as transient; default if option present: 'true'; default if option not present: 'false'
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
- --dateFormat
-
Indicates the style of the date format (ignored if dateTimeFormatPattern is specified); default: 'MEDIUM'
- --timeFormat
-
Indicates the style of the time format (ignored if dateTimeFormatPattern is specified); default: 'NONE'
- --dateTimeFormatPattern
-
Indicates a DateTime format pattern such as yyyy-MM-dd hh:mm:ss a; default: 'NULL'
field embedded
Adds a private @Embedded field to an existing Java source file
field embedded --fieldName --type --class
- --fieldName
-
The name of the field to add; default: 'NULL' (mandatory)
- --type
-
The Java type of the @Embeddable class; default: 'NULL' (mandatory)
- --class
-
The name of the @Entity class to receive this field; default if option not present: '*' (mandatory)
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
field enum
Adds a private enum field to an existing Java source file
field enum --fieldName --type --class --column
- --fieldName
-
The name of the field to add; default: 'NULL' (mandatory)
- --type
-
The enum type of this field; default: 'NULL' (mandatory)
- --class
-
The name of the class to receive this field; default if option not present: '*' (mandatory)
- --column
-
The JPA @Column name; default: 'NULL' (mandatory)
- --notNull
-
Whether this value cannot be null; default if option present: 'true'; default if option not present: 'false'
- --nullRequired
-
Whether this value must be null; default if option present: 'true'; default if option not present: 'false'
- --enumType
-
The fetch semantics at a JPA level; default: 'NULL'
- --comment
-
An optional comment for JavaDocs; default: 'NULL'
- --transient
-
Indicates to mark the field as transient; default if option present: 'true'; default if option not present: 'false'
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
field file
Adds a byte array field for storing uploaded file contents (JSF-scaffolded UIs only)
field file --fieldName --class --contentType --column
- --fieldName
-
The name of the file upload field to add; default: 'NULL' (mandatory)
- --class
-
The name of the class to receive this field; default if option not present: '*' (mandatory)
- --contentType
-
The content type of the file; default: 'NULL' (mandatory)
- --autoUpload
-
Whether the file is uploaded automatically when selected; default if option present: 'true'; default if option not present: 'false'
- --column
-
The JPA @Column name; default: 'NULL' (mandatory)
- --notNull
-
Whether this value cannot be null; default if option present: 'true'; default if option not present: 'false'
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
field list
Adds a private List field to an existing Java source file (eg the 'one' side of a many-to-one)
field list --fieldName --type --class --joinTable --joinColumns --referencedColumns --inverseJoinColumns --inverseReferencedColumns
- --fieldName
-
The name of the field to add; default: 'NULL' (mandatory)
- --type
-
The entity which will be contained within the Set; default: 'NULL' (mandatory)
- --class
-
The name of the class to receive this field; default if option not present: '*' (mandatory)
- --mappedBy
-
The field name on the referenced type which owns the relationship; default: 'NULL'
- --notNull
-
Whether this value cannot be null; default if option present: 'true'; default if option not present: 'false'
- --nullRequired
-
Whether this value must be null; default if option present: 'true'; default if option not present: 'false'
- --sizeMin
-
The minimum number of elements in the collection; default: 'NULL'
- --sizeMax
-
The maximum number of elements in the collection; default: 'NULL'
- --cardinality
-
The relationship cardinality at a JPA level; default: 'ONE_TO_MANY'
- --fetch
-
The fetch semantics at a JPA level; default: 'NULL'
- --comment
-
An optional comment for JavaDocs; default: 'NULL'
- --transient
-
Indicates to mark the field as transient; default if option present: 'true'; default if option not present: 'false'
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
- --joinTable
-
Join table name. Most usually used in @ManyToMany relations. If name not specified it will take default @JoinTable name value.; default if option present: 'ROO_JOIN_TABLE' (mandatory)
- --joinColumns
-
Comma separated list of join table’s foreign key columns which references the table of the entity owning the relation; default: 'NULL' (mandatory)
- --referencedColumns
-
Comma separated list of foreign key referenced columns in the table of the entity owning the relation; default: 'NULL' (mandatory)
- --inverseJoinColumns
-
Comma separated list of join table’s foreign key columns which references the table of the entity that does not own the relation; default: 'NULL' (mandatory)
- --inverseReferencedColumns
-
Comma separated list of foreign key referenced columns in the table of the entity that does not own the relation; default: 'NULL' (mandatory)
- --cascadeType
-
CascadeType. Possible values are ALL, DETACH, MERGE, PERSIST, REFRESH and REMOVE.; default: 'ALL'
field number
Adds a private numeric field to an existing Java source file
field number --fieldName --type --class --column
- --fieldName
-
The name of the field to add; default: 'NULL' (mandatory)
- --type
-
The Java type of the entity; default: 'NULL' (mandatory)
- --class
-
The name of the class to receive this field; default if option not present: '*' (mandatory)
- --notNull
-
Whether this value cannot be null; default if option present: 'true'; default if option not present: 'false'
- --nullRequired
-
Whether this value must be null; default if option present: 'true'; default if option not present: 'false'
- --decimalMin
-
The BigDecimal string-based representation of the minimum value; default: 'NULL'
- --decimalMax
-
The BigDecimal string based representation of the maximum value; default: 'NULL'
- --digitsInteger
-
Maximum number of integral digits accepted for this number; default: 'NULL'
- --digitsFraction
-
Maximum number of fractional digits accepted for this number; default: 'NULL'
- --min
-
The minimum value; default: 'NULL'
- --max
-
The maximum value; default: 'NULL'
- --column
-
The JPA @Column name; default: 'NULL' (mandatory)
- --comment
-
An optional comment for JavaDocs; default: 'NULL'
- --value
-
Inserts an optional Spring @Value annotation with the given content; default: 'NULL'
- --transient
-
Indicates to mark the field as transient; default if option present: 'true'; default if option not present: 'false'
- --primitive
-
Indicates to use a primitive type if possible; default if option present: 'true'; default if option not present: 'false'
- --unique
-
Indicates whether to mark the field with a unique constraint; default if option present: 'true'; default if option not present: 'false'
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
field other
Inserts a private field into the specified file
field other --fieldName --type --class --column
- --fieldName
-
The name of the field; default: 'NULL' (mandatory)
- --type
-
The Java type of this field; default: 'NULL' (mandatory)
- --class
-
The name of the class to receive this field; default if option not present: '*' (mandatory)
- --notNull
-
Whether this value cannot be null; default if option present: 'true'; default if option not present: 'false'
- --nullRequired
-
Whether this value must be null; default if option present: 'true'; default if option not present: 'false'
- --comment
-
An optional comment for JavaDocs; default: 'NULL'
- --column
-
The JPA @Column name; default: 'NULL' (mandatory)
- --value
-
Inserts an optional Spring @Value annotation with the given content; default: 'NULL'
- --transient
-
Indicates to mark the field as transient; default if option present: 'true'; default if option not present: 'false'
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
field reference
Adds a private reference field to an existing Java source file (eg the 'many' side of a many-to-one)
field reference --fieldName --type --class --joinColumnName
- --fieldName
-
The name of the field to add; default: 'NULL' (mandatory)
- --type
-
The Java type of the entity to reference; default: 'NULL' (mandatory)
- --class
-
The name of the class to receive this field; default if option not present: '*' (mandatory)
- --notNull
-
Whether this value cannot be null; default if option present: 'true'; default if option not present: 'false'
- --nullRequired
-
Whether this value must be null; default if option present: 'true'; default if option not present: 'false'
- --joinColumnName
-
The JPA @JoinColumn name; default: 'NULL' (mandatory)
- --referencedColumnName
-
The JPA @JoinColumn referencedColumnName; default: 'NULL'
- --cardinality
-
The relationship cardinality at a JPA level; default: 'MANY_TO_ONE'
- --fetch
-
The fetch semantics at a JPA level; default: 'NULL'
- --comment
-
An optional comment for JavaDocs; default: 'NULL'
- --transient
-
Indicates to mark the field as transient; default if option present: 'true'; default if option not present: 'false'
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
- --cascadeType
-
CascadeType. Possible values are ALL, DETACH, MERGE, PERSIST, REFRESH and REMOVE.; default if option present: 'ALL'
field set
Adds a private Set field to an existing Java source file (eg the 'one' side of a many-to-one)
field set --fieldName --type --class --joinTable --joinColumns --referencedColumns --inverseJoinColumns --inverseReferencedColumns
- --fieldName
-
The name of the field to add; default: 'NULL' (mandatory)
- --type
-
The entity which will be contained within the Set; default: 'NULL' (mandatory)
- --class
-
The name of the class to receive this field; default if option not present: '*' (mandatory)
- --mappedBy
-
The field name on the referenced type which owns the relationship; default: 'NULL'
- --notNull
-
Whether this value cannot be null; default if option present: 'true'; default if option not present: 'false'
- --nullRequired
-
Whether this value must be null; default if option present: 'true'; default if option not present: 'false'
- --sizeMin
-
The minimum number of elements in the collection; default: 'NULL'
- --sizeMax
-
The maximum number of elements in the collection; default: 'NULL'
- --cardinality
-
The relationship cardinality at a JPA level; default: 'ONE_TO_MANY'
- --fetch
-
The fetch semantics at a JPA level; default: 'NULL'
- --comment
-
An optional comment for JavaDocs; default: 'NULL'
- --transient
-
Indicates to mark the field as transient; default if option present: 'true'; default if option not present: 'false'
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
- --joinTable
-
Join table name. Most usually used in @ManyToMany relations. If name not specified it will take default @JoinTable name value.; default if option present: 'ROO_JOIN_TABLE' (mandatory)
- --joinColumns
-
Comma separated list of join table’s foreign key columns which references the table of the entity owning the relation; default: 'NULL' (mandatory)
- --referencedColumns
-
Comma separated list of foreign key referenced columns in the table of the entity owning the relation; default: 'NULL' (mandatory)
- --inverseJoinColumns
-
Comma separated list of join table’s foreign key columns which references the table of the entity that does not own the relation; default: 'NULL' (mandatory)
- --inverseReferencedColumns
-
Comma separated list of foreign key referenced columns in the table of the entity that does not own the relation; default: 'NULL' (mandatory)
- --cascadeType
-
CascadeType. Possible values are ALL, DETACH, MERGE, PERSIST, REFRESH and REMOVE.; default: 'ALL'
field string
Adds a private string field to an existing Java source file
field string --fieldName --class --column
- --fieldName
-
The name of the field to add; default: 'NULL' (mandatory)
- --class
-
The name of the class to receive this field; default if option not present: '*' (mandatory)
- --notNull
-
Whether this value cannot be null; default if option present: 'true'; default if option not present: 'false'
- --nullRequired
-
Whether this value must be null; default if option present: 'true'; default if option not present: 'false'
- --sizeMin
-
The minimum string length; default: 'NULL'
- --sizeMax
-
The maximum string length; default: 'NULL'
- --regexp
-
The required regular expression pattern; default: 'NULL'
- --column
-
The JPA @Column name; default: 'NULL' (mandatory)
- --value
-
Inserts an optional Spring @Value annotation with the given content; default: 'NULL'
- --comment
-
An optional comment for JavaDocs; default: 'NULL'
- --transient
-
Indicates to mark the field as transient; default if option present: 'true'; default if option not present: 'false'
- --unique
-
Indicates whether to mark the field with a unique constraint; default if option present: 'true'; default if option not present: 'false'
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
- --lob
-
Indicates that this field is a Large Object; default if option present: 'true'; default if option not present: 'false'
Finder Commands
Finder Commands are contained in org.springframework.roo.addon.finder.addon.FinderCommands.
I18n Commands
I18n Commands are contained in org.springframework.roo.addon.web.mvc.i18n.I18nCommands.
Integration Test Commands
Integration Test Commands are contained in org.springframework.roo.addon.test.addon.integration.IntegrationTestCommands.
test integration
Creates a new integration test for the specified entity
test integration
- --entity
-
The name of the entity to create an integration test for; default if option not present: '*'
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
- --transactional
-
Indicates whether the created test cases should be run withing a Spring transaction; default: 'true'
J Line Shell Component
J Line Shell Component are contained in org.springframework.roo.shell.jline.osgi.JLineShellComponent.
*/ ~~
End of block comment
*/
This command does not accept any options.
/* ~~
Start of block comment
/*
This command does not accept any options.
~~
Inline comment markers (start of line only)
This command does not accept any options.
script
Parses the specified resource file and executes its commands
script --file
- --file
-
The file to locate and execute; default: 'NULL' (mandatory)
- --lineNumbers
-
Display line numbers when executing the script; default if option present: 'true'; default if option not present: 'false'
Jpa Commands
Jpa Commands are contained in org.springframework.roo.addon.jpa.addon.JpaCommands.
embeddable
Creates a new Java class source file with the JPA @Embeddable annotation in SRC_MAIN_JAVA
embeddable --class
- --class
-
The name of the class to create; default: 'NULL' (mandatory)
- --serializable
-
Whether the generated class should implement java.io.Serializable; default if option present: 'true'; default if option not present: 'false'
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
entity jpa
Creates a new JPA persistent entity in SRC_MAIN_JAVA
entity jpa --class --table --identifierColumn --versionField --versionColumn --versionType --sequenceName --identifierStrategy
- --class
-
Name of the entity to create; default: 'NULL' (mandatory)
- --extends
-
The superclass (defaults to java.lang.Object); default if option not present: 'java.lang.Object'
- --implements
-
The interface to implement; default: 'NULL'
- --abstract
-
Whether the generated class should be marked as abstract; default if option present: 'true'; default if option not present: 'false'
- --testAutomatically
-
Create automatic integration tests for this entity; default if option present: 'true'; default if option not present: 'false'
- --table
-
The JPA table name to use for this entity; default: 'NULL' (mandatory)
- --schema
-
The JPA table schema name to use for this entity; default: 'NULL'
- --catalog
-
The JPA table catalog name to use for this entity; default: 'NULL'
- --identifierField
-
The JPA identifier field name to use for this entity; default: 'NULL'
- --identifierColumn
-
The JPA identifier field column to use for this entity; default: 'NULL' (mandatory)
- --identifierType
-
The data type that will be used for the JPA identifier field (defaults to java.lang.Long); default: 'java.lang.Long'
- --versionField
-
The JPA version field name to use for this entity; default: 'NULL' (mandatory)
- --versionColumn
-
The JPA version field column to use for this entity; default: 'NULL' (mandatory)
- --versionType
-
The data type that will be used for the JPA version field (defaults to java.lang.Integer); default if option not present: 'java.lang.Integer' (mandatory)
- --inheritanceType
-
The JPA @Inheritance value (apply to base class); default: 'NULL'
- --mappedSuperclass
-
Apply @MappedSuperclass for this entity; default if option present: 'true'; default if option not present: 'false'
- --equals
-
Whether the generated class should implement equals and hashCode methods; default if option present: 'true'; default if option not present: 'false'
- --serializable
-
Whether the generated class should implement java.io.Serializable; default if option present: 'true'; default if option not present: 'false'
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
- --entityName
-
The name used to refer to the entity in queries; default: 'NULL'
- --sequenceName
-
The name of the sequence for incrementing sequence-driven primary keys; default: 'NULL' (mandatory)
- --identifierStrategy
-
The generation value strategy to be used; default if option present: 'AUTO' (mandatory)
- --readOnly
-
Whether the generated entity should be used for read operations only.; default if option present: 'true'; default if option not present: 'false'
jpa setup
Install or updates a JPA persistence provider in your project
jpa setup --provider --database --module
- --provider
-
The persistence provider to support; default: 'NULL' (mandatory)
- --database
-
The database to support; default: 'NULL' (mandatory)
- --module
-
The application module where to install the persistence; default if option not present: '.' (mandatory)
- --jndiDataSource
-
The JNDI datasource to use; default: 'NULL'
- --hostName
-
The host name to use; default: 'NULL'
- --databaseName
-
The database name to use; default: 'NULL'
- --userName
-
The username to use; default: 'NULL'
- --password
-
The password to use; default: 'NULL'
Maven Commands
Maven Commands are contained in org.springframework.roo.project.MavenCommands.
dependency add
Adds a new dependency to the Maven project object model (POM)
dependency add --groupId --artifactId --version
- --groupId
-
The group ID of the dependency; default: 'NULL' (mandatory)
- --artifactId
-
The artifact ID of the dependency; default: 'NULL' (mandatory)
- --version
-
The version of the dependency; default: 'NULL' (mandatory)
- --classifier
-
The classifier of the dependency; default: 'NULL'
- --scope
-
The scope of the dependency; default: 'NULL'
dependency remove
Removes an existing dependency from the Maven project object model (POM)
dependency remove --groupId --artifactId --version
- --groupId
-
The group ID of the dependency; default: 'NULL' (mandatory)
- --artifactId
-
The artifact ID of the dependency; default: 'NULL' (mandatory)
- --version
-
The version of the dependency; default: 'NULL' (mandatory)
- --classifier
-
The classifier of the dependency; default: 'NULL'
maven repository add
Adds a new repository to the Maven project object model (POM)
maven repository add --id --url
- --id
-
The ID of the repository; default: 'NULL' (mandatory)
- --name
-
The name of the repository; default: 'NULL'
- --url
-
The URL of the repository; default: 'NULL' (mandatory)
maven repository remove
Removes an existing repository from the Maven project object model (POM)
maven repository remove --id --url
- --id
-
The ID of the repository; default: 'NULL' (mandatory)
- --url
-
The URL of the repository; default: 'NULL' (mandatory)
module create
Creates a new Maven module
module create --moduleName --parent
- --moduleName
-
The name of the module; default: 'NULL' (mandatory)
- --parent
-
The parent module name. By default is the current module; default: 'NULL' (mandatory)
- --packaging
-
The Maven packaging of this module; default if option not present: 'jar'
- --artifactId
-
The artifact ID of this module (defaults to moduleName if not specified); default: 'NULL'
module focus
Changes focus to a different project module
module focus --moduleName
- --moduleName
-
The module to focus on; default: 'NULL' (mandatory)
perform assembly
Executes the assembly goal via Maven
perform assembly
This command does not accept any options.
perform clean
Executes a full clean (including Eclipse files) via Maven
perform clean
This command does not accept any options.
perform command
Executes a user-specified Maven command
perform command --mavenCommand
- --mavenCommand
-
User-specified Maven command (eg test:test); default: 'NULL' (mandatory)
perform eclipse
Sets up Eclipse configuration via Maven (only necessary if you have not installed the m2eclipse plugin in Eclipse)
perform eclipse
This command does not accept any options.
Metadata Commands
Metadata Commands are contained in org.springframework.roo.classpath.MetadataCommands.
metadata cache
Shows detailed metadata for the indicated type
metadata cache --maximumCapacity
- --maximumCapacity
-
The maximum number of metadata items to cache; default: 'NULL' (mandatory)
metadata for id
Shows detailed information about the metadata item
metadata for id --metadataId
- --metadataId
-
The metadata ID (should start with MID:); default: 'NULL' (mandatory)
metadata for module
Shows the ProjectMetadata for the indicated project module
metadata for module
- --module
-
The module for which to retrieve the metadata (defaults to the focused module); default: 'NULL'
Obr Add On Commands
Obr Add On Commands are contained in org.springframework.roo.obr.addon.search.ObrAddOnCommands.
addon info bundle
Provide information about a specific Spring Roo Add-on
addon info bundle --bundleSymbolicName
- --bundleSymbolicName
-
The bundle symbolic name for the add-on of interest; default: 'NULL' (mandatory)
addon install bundle
Install Spring Roo Add-on
addon install bundle --bundleSymbolicName
- --bundleSymbolicName
-
The bundle symbolic name for the add-on of interest; default: 'NULL' (mandatory)
addon install url
Install Spring Roo Add-on using url
addon install url --url
- --url
-
The url for the add-on of interest; default: 'NULL' (mandatory)
Obr Repository Commands
Obr Repository Commands are contained in org.springframework.roo.obr.addon.search.ObrRepositoryCommands.
addon repository add
Adds a new OBR Repository to ROO Shell
addon repository add --url
- --url
-
URL file that defines repository. Ex: 'http://localhost/repo/index.xml'; default: 'NULL' (mandatory)
addon repository introspect
Introspects all installed OBR Repositories and list all their addons
addon repository introspect
This command does not accept any options.
Os Commands
Os Commands are contained in org.springframework.roo.addon.oscommands.OsCommands.
! ~
Allows execution of operating system (OS) commands.
- ! -
- --command
-
The command to execute; default: ''
Pgp Commands
Pgp Commands are contained in org.springframework.roo.felix.pgp.PgpCommands.
pgp automatic trust
Indicates to automatically trust all keys encountered until the command is invoked again
pgp automatic trust
This command does not accept any options.
pgp key view
Downloads a remote key and displays it to the user (does not change any trusts)
pgp key view --keyId
- --keyId
-
The key ID to view (eg 00B5050F or 0x00B5050F); default: 'NULL' (mandatory)
pgp list trusted keys
Lists the keys you currently trust and have not been revoked at the time last downloaded from a public key server
pgp list trusted keys
This command does not accept any options.
pgp refresh all
Refreshes all keys from public key servers
pgp refresh all
This command does not accept any options.
pgp status
Displays the status of the PGP environment
pgp status
This command does not accept any options.
Project Commands
Project Commands are contained in org.springframework.roo.project.ProjectCommands.
development mode
Switches the system into development mode (greater diagnostic information)
development mode
- --enabled
-
Activates development mode; default: 'true'
project scan now
Perform a manual file system scan
project scan now
This command does not accept any options.
project scan speed
Changes the file system scanning speed
project scan speed --ms
- --ms
-
The number of milliseconds between each scan; default: 'NULL' (mandatory)
project scan status
Display file system scanning information
project scan status
This command does not accept any options.
project setup
Creates a new Maven project
project setup --topLevelPackage
- --topLevelPackage
-
The uppermost package name (this becomes the <groupId> in Maven and also the '~' value when using Roo’s shell); default: 'NULL' (mandatory)
- --projectName
-
The name of the project (last segment of package name used as default); default: 'NULL'
- --multimodule
-
Option to use a multmodule architecture; default if option present: 'STANDARD'
- --java
-
Forces a particular major version of Java to be used (DEFAULT: 8); default: 'NULL'
- --packaging
-
The Maven packaging of this project; default if option not present: 'jar'
Prop File Commands
Prop File Commands are contained in org.springframework.roo.addon.propfiles.PropFileCommands.
property add
Adds or updates a particular property from application config properties file.
property add --key --value --module
- --key
-
The property key that should be changed; default: 'NULL' (mandatory)
- --value
-
The new vale for this property key; default: 'NULL' (mandatory)
- --module
-
Module where property will be added; default if option not present: '.' (mandatory)
Push In Commands
Push In Commands are contained in org.springframework.roo.addon.pushin.PushInCommands.
push-in
Push-in all methods, fields, annotations, imports, extends, etc.. declared on ITDs to its .java files. You could specify --all parameter to apply push-in on every component of generated project, or you could define package, class or method where wants to apply push-in.
push-in
- --all
-
Parameter that indicates if push-in process should be applied to entire project. If specified, all the other parameters will be unavailable. It doesn’t allow any value.
- --package
-
JavaPackage with the specified package where developers wants to make push-in; default: 'NULL'
- --class
-
JavaType with the specified class where developer wants to make push-in; default: 'NULL'
- --method
-
String with the specified name of the method that developer wants to push-in. You could use a Regular Expression to make push-in of more than one method on the same execution.; default: 'NULL'
Repository Jpa Commands
Repository Jpa Commands are contained in org.springframework.roo.addon.layers.repository.jpa.addon.RepositoryJpaCommands.
repository jpa
Generates new Spring Data repository for specified entity.
repository jpa --interface --package
- --all
-
Indicates if developer wants to generate repositories for every entity of current project ; default if option present: 'true'; default if option not present: 'false'
- --interface
-
The java Spring Data repository to generate.; default: 'NULL' (mandatory)
- --entity
-
The domain entity this repository should expose; default: 'NULL'
- --package
-
The package where repositories will be generated; default: 'NULL' (mandatory)
Security Commands
Security Commands are contained in org.springframework.roo.addon.security.addon.security.SecurityCommands.
Service Commands
Service Commands are contained in org.springframework.roo.addon.layers.service.addon.ServiceCommands.
service
Creates new service interface and its implementation.
service --repository --interface --apiPackage --implPackage
- --all
-
Indicates if developer wants to generate service interfaces and their implementations for every entity of current project ; default if option present: 'true'; default if option not present: 'false'
- --entity
-
The domain entity this service should expose; default: 'NULL'
- --repository
-
The repository this service should expose; default: 'NULL' (mandatory)
- --interface
-
The service interface to be generated; default: 'NULL' (mandatory)
- --class
-
The service implementation to be generated; default: 'NULL'
- --apiPackage
-
The java interface package; default: 'NULL' (mandatory)
- --implPackage
-
The java package of the implementation classes for the interfaces; default: 'NULL' (mandatory)
Settings Commands
Settings Commands are contained in org.springframework.roo.settings.SettingsCommands.
settings add
Adds or updates a particular setting
settings add --name --value
- --name
-
The setting name that should be changed; default: 'NULL' (mandatory)
- --value
-
The new vale for this settings name; default: 'NULL' (mandatory)
Unit Test Commands
Unit Test Commands are contained in org.springframework.roo.addon.test.addon.unit.UnitTestCommands.
test unit
Creates a unit test class for the specified class
test unit --class
- --class
-
The name of the project class which this unit test class is targeting; default: 'NULL' (mandatory)
- --permitReservedWords
-
Indicates whether reserved words are ignored by Roo; default if option present: 'true'; default if option not present: 'false'
View Commands
View Commands are contained in org.springframework.roo.addon.web.mvc.views.ViewCommands.
web mvc templates setup
Includes view generation templates on current project. Will allow developers to customize view generation.
web mvc templates setup --type
- --type
-
View identifier of templates you want to install. Only installed views are available.; default: 'NULL' (mandatory)
web mvc view setup
Includes all necessary resources of provided responseType on generated project
web mvc view setup --type --module
- --type
-
View identifier you want to install. Install your necessary views before to be used on controller generation command; default: 'NULL' (mandatory)
- --module
-
The application module where to install views; default if option not present: '.' (mandatory)
Web Finder Commands
Web Finder Commands are contained in org.springframework.roo.addon.web.mvc.controller.addon.finder.WebFinderCommands.
web mvc finder
Adds @RooWebFinder annotation to MVC controller type
web mvc finder --controller --responseType
- --controller
-
The controller java type to apply this annotation to.; default: 'NULL' (mandatory)
- --all
-
Indicates if developer wants to generate all finders of the service related to the controller; default if option present: 'true'; default if option not present: 'false'
- --finder
-
Indicates the name of the finder to add into controller; default: 'NULL'
- --responseType
-
Indicates the responseType to be used by generated controller. Depending of the selected responseType, generated methods and views will vary.; default: 'NULL' (mandatory)
6. Roo Resources
As an open source project, Spring Roo offers a large number of resources to assist the community learn, interact with one another and become more involved in the project. Below you’ll find a short summary of the official project resources.
Spring Roo Project Home Page
The definitive source of information about Spring Roo is the Spring Roo Home at http://spring.io.
That site provides a brief summary of Roo’s main features and links to most of the other project resources. The project home page serves as a hub of information and is the best place to find up-to-date announcements about the project as well as links to articles, blogs and new documentation.
Please use this URI if you are referring other people to the Spring Roo project, as it is the main landing point for the project.
Downloads and Maven Repositories
You can always access the latest Spring Roo release ZIP by visiting Downloads section at Spring Roo Home Page.
We publish all Roo modules to Maven Central, the default repository from which Maven will download the Spring Roo artifacts automatically.
StackOverFlow
Because Roo is an official top-level Spring project, of course you’ll find there is a dedicated "Spring Roo" tag at Stack Overflow for all your questions, comments and experiences.
If you have any question about Spring Roo project and its functionalities, you can check and ask a questions at Spring Roo tagged questions at Stack Overflow. We monitor stackoverflow.com for questions tagged with spring-roo.
http://forum.springsource.org is now a read-only archive. All commenting, posting, registration services have been turned off.
The Roo project does not have a "mailing list" or "newsgroup" as you might be familiar with from other open source projects, although commercial support options are available.
Extensive search facilities are provided on the community forums, and the Roo developers routinely answer user questions. One excellent way of contributing to the Roo project is to simply keep an eye on the forum messages and help other people. Even recommendations along the lines of, "I don’t know how to do what you’re trying to do, but we usually tackle the problem this way instead…." are very helpful to other community members.
When you ask a question on the forum, it’s highly recommended you include a small Roo sample script that can be used to reproduce your problem. If that’s infeasible, using Roo’s "backup" command is another alternative and you can attach the resulting ZIP file to your post. Other tips include always specifying the version of Roo that you’re running (as can be obtained from the "version" command), and if you’re having trouble with IDE integration, the exact version of the IDE you are using (and, if an Eclipse-based IDE, the version of AspectJ Development Tools in use). Another good source of advice on how to ask questions on the forum can be found in Eric Raymond’s often-cited essay, "How to Ask Smart Questions".
If you believe you have found a bug or are experiencing an issue, it is recommended you first log a message on the forum. This allows other experienced users to comment on whether it appears there is a problem with Roo or perhaps just needs to be used a different way. Someone will usually offer a solution or recommend you log a bug report (usually by saying "please log this in Jira"). When you do log a bug report, please ensure you link to the fully-qualified URI to the forum post. That way the developer who attempts to solve your bug will have background information. Please also post the issue tracking link back in thread you started on the forum, as it will help other people cross-reference the two systems.
Roo Hash Code (please include in your tweets, and also follow for low-volume announcements): #SpringRoo
If you use Twitter, you’re encouraged to follow @SpringRoo. Also please use @SpringRoo in your tweets so everyone can easily see them.
The Roo team also uses and monitors tweets that include #SpringRoo, so if you’re tweeting about Roo, please remember to include #SpringRoo somewhere in the tweet. If you like Roo or have found it helpful on a project, please tweet about it and help spread the word!
Follow the core Roo development team for interesting Roo news and progress (higher volume than just following @SpringRoo, but only a few Tweets per week): @disid_corp, @juanCaFX, @enrique_ruiz_.
Many people who use Roo also use Twitter, including the core Roo development team. If you’re a Twitter user, you’re welcome to follow the Roo development team (using the Twitter IDs above) to receive up-to-the-minute Tweets on Roo activities, usage and events.
We do request that you use the StackOverFlow if you have a question or issue with Roo, as 140 characters doesn’t allow us to provide in-depth technical support or provide a growing archive of historical answers that people can search against.
Issue Tracking
Spring projects use Atlassian Jira for tracking bugs, improvements, feature requests and tasks. Roo uses a public Jira instance you’re welcome to use in order to log issues, watch existing issues, vote for existing issues and review the changes made between particular versions.
As discussed in the StackOverFlow section, we ask that you refrain from logging bug reports until you’ve first discussed them on stackoverflow. This allows others to comment on whether a bug actually exists. When logging an issue in Jira, there is a field explicitly provided so you can link the forum discussion to the Jira issue.
Please note that every commit into the Roo source repository will be prefixed with a particular Jira issue number. All Jira issue numbers for the Roo project commence with "ROO-", providing you an easy way to determine the rationale of any change.
Because open source projects receive numerous enhancement requests, we generally prioritise enhancements that have patches included, are quick to complete or those which have received a large number of votes. You can vote for a particular issue by logging into Jira (it’s fast, easy and free to create an account) and click the "vote" link against any issue. Similarly you can monitor the progress on any issue you’re interested in by clicking "watch".
Enhancement requests are easier to complete (and therefore more probable to be actioned) if they represent fine-grained units of work that include as much detail as possible. Enhancement requests should describe a specific use case or user story that is trying to be achieved. It is usually helpful to provide a Roo sample script that can be used to explain the issue. You should also consider whether a particular enhancement is likely to appeal to most Roo users, and if not, whether perhaps writing it as an add-on would be a good alternative.
Source Repository
Read repository: https://github.com/spring-projects/spring-roo.git
The Git source control system is currently used by Roo for mainline development.
Historical releases of Roo can be accessed by browsing the tags branches within our Git repository. The mainline development of Roo occurs on the "master" branch.
"gh-pages" branch is used to build and publish Spring Roo’s project page site based on Jekyll and GitHub Pages.
To detailed information about how to check out and build Roo from Subversion, please refer to the Development Processes chapter.
Commercial Products and Services
DISID Corporation employs the Roo development team and offers a wide range of products and professional services around Roo and the technologies which Roo enables. Available professional services include software factory, geographic information systems, web application development, mobile application development, training, consulting and mentoring. Please visit the above URI to learn more about DISID products and services.
Web: http://spring.io/
Pivotal Software offers a wide range of products and professional services around Roo and the technologies which Roo enables. Available professional services include training, consulting, design reviews and mentoring, with products including service level agreement (SLA) backed support subscriptions, certified builds, indemnification and integration with various commercial products. Please visit the above URI to learn more about SpringSource products and services and how these can add value to your build-run-manage application lifecycle.